|
|
- package controllers
-
- import (
- "lapp_-wy/conf"
- "lapp_-wy/utils"
- "lapp_-wy/web/middleware/glog"
- "lapp_-wy/web/middleware/jwts"
- "lapp_-wy/web/models"
- "lapp_-wy/web/supports"
- "lapp_-wy/web/supports/vo"
- "github.com/kataras/iris"
- "io"
- "log"
- "net/http"
- "strings"
- "time"
- )
-
- //用户登录
- func Login(ctx iris.Context) {
- user := new(models.Usertab)
- if err := ctx.ReadJSON(user); err != nil {
- log := new(models.LeitServerLog)
- log.File = "user_controller.go"
- log.Level = "debug1"
- log.Function = "Login"
- log.Message = error.Error(err)
- log.Operator = user.Userid
- log.TimeStamp = utils.TimeFormat(time.Now(), "yyyyMMddHHmmss")
- log.InsertRecord()
- supports.Error(ctx, iris.StatusPaymentRequired, supports.LoginFailur, nil)
- return
- }
- //日志
- glog.InfoExt("日志测试","开始1")
- mUser := new(models.Usertab)
- mUser.Pid = user.Pid
- mUser.Userid = user.Userid
- has, err := mUser.GetUserByUsername()
- mUser.Clipped()
- if err != nil {
- log := new(models.LeitServerLog)
- log.File = "user_controller.go"
- log.Level = "debug2"
- log.Function = "Login"
- log.Message = error.Error(err)
- log.Operator = user.Userid
- log.TimeStamp = utils.TimeFormat(time.Now(), "yyyyMMddHHmmss")
- log.InsertRecord()
- supports.Error(ctx, iris.StatusPaymentRequired, supports.LoginFailur, nil)
- return
- }
-
- if !has { // 用户名不正确
- supports.Error(ctx, iris.StatusPaymentRequired, supports.UsernameFailur, nil)
- return
- }
-
- ckPassword, err := utils.CompareHashAndPassword(mUser.Password, user.Password)
- if !ckPassword {
- supports.Error(ctx, iris.StatusPaymentRequired, supports.PasswordFailur, nil)
- return
- }
-
- token, err := jwts.GenerateToken(mUser)
- if err != nil {
- log := new(models.LeitServerLog)
- log.File = "user_controller.go"
- log.Level = "debug"
- log.Function = "Login"
- log.Message = "创建token失败"
- log.Operator = user.Userid
- log.TimeStamp = utils.TimeFormat(time.Now(), "yyyyMMddHHmmss")
- log.InsertRecord()
- supports.Error(ctx, iris.StatusInternalServerError, supports.TokenCreateFailur, nil)
- return
- }
- log := new(models.LeitServerLog)
- log.File = "user_controller.go"
- log.Level = "info"
- log.Function = "Login"
- log.Message = "登录成功"
- log.Operator = user.Userid
- log.TimeStamp = utils.TimeFormat(time.Now(), "yyyyMMddHHmmss")
- log.InsertRecord()
- supports.Ok(ctx, supports.LoginSuccess, vo.TansformUserVO(token, mUser))
- return
- }
-
- //车间列表
- func CourtsTable(ctx iris.Context) {
- me := new(models.Courttab)
- plants, err := me.GetCourts()
- if err != nil {
- log := new(models.LeitServerLog)
- log.File = "user_controller.go"
- log.Level = "debug"
- log.Function = "PlantsTable"
- log.Message = "车间查询失败"
- log.Operator = ""
- log.TimeStamp = utils.TimeFormat(time.Now(), "yyyyMMddHHmmss")
- log.InsertRecord()
- supports.Error(ctx, iris.StatusBadRequest, supports.ParseParamsFailur, nil)
- return
- }
- supports.Ok(ctx, supports.Success, plants)
- }
-
- // @Summary 获取用户角色和职位
- // @Description 获取JSON
- // @Tags 用户
- // @Success 200 {object} supports.Ok "{"code": 200,msg, "data": [...]}"
- // @Router /user/getuserinfo [get]
- // @Security
- func GetUserInfo(ctx iris.Context) {
-
- var roles = make([]string, 1)
- user, ok := jwts.ParseToken(ctx)
- utils.TrimStruct(user, *user)
- if !ok {
- supports.Error(ctx, iris.StatusBadRequest, supports.ParseParamsFailur, nil)
- return
- }
- roles[0] = user.Role
-
- var permissions = make([]string, 1)
- permissions[0] = "*:*:*"
- RoleMenu := models.RoleMenu{}
- RoleMenu.RoleId = user.RoleId
-
- var mp = make(map[string]interface{})
- mp["roles"] = roles
- if user.Userid == "admin" {
- mp["permissions"] = permissions
- } else {
- list, _ := RoleMenu.GetPermis()
- mp["permissions"] = list
- }
-
- mUser := new(models.Usertab)
- mUser.Pid = user.Pid
- mUser.Userid = user.Userid
- ok, err := mUser.GetUserByUsername()
- mUser.Clipped()
- if !ok || err != nil {
- supports.Error(ctx, iris.StatusBadRequest, supports.ParseParamsFailur, nil)
- return
- }
- mp["introduction"] = " am a super administrator"
-
- mp["avatar"] = "https://wpimg.wallstcn.com/f778738c-e4f8-4870-b634-56703b4acafe.gif"
- if mUser.Avatar != "" {
- mp["avatar"] = mUser.Avatar
- }
- mp["name"] = mUser.Nickname
- utils.TrimStruct(&mp, mp)
- supports.Ok(ctx, supports.Success, mp)
- }
-
- // @Summary 列表数据
- // @Description 获取JSON
- // @Tags 用户
- // @Param username query string false "username"
- // @Success 200 {string} string "{"code": 200, "data": [...]}"
- // @Success 200 {string} string "{"code": -1, "message": "抱歉未找到相关信息"}"
- // @Router /api/v1/sysUserList [get]
- // @Security Bearer
- func GetSysUserList(ctx iris.Context) {
- user, ok := jwts.ParseToken(ctx)
- utils.TrimStruct(user, *user)
- if !ok {
- supports.Error(ctx, iris.StatusBadRequest, supports.ParseParamsFailur, nil)
- return
- }
- var data models.Usertab
- var err error
- var pageSize = 10
- var pageIndex = 1
-
- size := ctx.URLParam("pageSize")
- if size != "" {
- pageSize = utils.ValueToInt(size, 0)
- }
-
- index := ctx.URLParam("pageIndex")
- if index != "" {
- pageIndex = utils.ValueToInt(index, 0)
- }
-
- data.Userid = ctx.URLParam("userid")
- data.Status = ctx.URLParam("status")
- data.Phone = ctx.URLParam("phone")
- data.Pid = user.Pid
- result, count, err := data.GetPage(pageSize, pageIndex)
- if err != nil {
- supports.Error(ctx, iris.StatusBadRequest, "抱歉未找到相关信息", nil)
- return
- }
- res := make(map[string]interface{})
- res["result"] = result
- res["count"] = count
- res["pageIndex"] = pageIndex
- res["pageSize"] = pageSize
- supports.Ok(ctx, "成功", res)
- }
-
- // @Summary 获取用户
- // @Description 获取JSON
- // @Tags 用户
- // @Param userId path int true "用户编码"
- // @Success 200 {object} app.Response "{"code": 200, "data": [...]}"
- // @Router /api/v1/sysUser/{userId} [get]
- // @Security
- func GetSysUser(ctx iris.Context) {
- user, ok := jwts.ParseToken(ctx)
- utils.TrimStruct(user, *user)
- if !ok {
- supports.Error(ctx, iris.StatusBadRequest, supports.ParseParamsFailur, nil)
- return
- }
- var SysUser models.Usertab
- SysUser.Userid = ctx.Params().Get("userId")
- SysUser.Pid = user.Pid
- result, err := SysUser.Get()
- if err != nil {
- supports.Error(ctx, iris.StatusBadRequest, "抱歉未找到相关信息", nil)
- return
- }
- var SysRole models.Roletab
- roles, err := SysRole.GetList()
-
- roleIds := make([]int, 0)
- roleIds = append(roleIds, result.RoleId)
-
- data := make(map[string]interface{})
- data["data"] = result
- data["roleIds"] = roleIds
- data["roles"] = roles
- supports.Ok(ctx, supports.OptionSuccess, data)
- }
-
- // @Summary 获取当前登录用户
- // @Description 获取JSON
- // @Tags 个人中心
- // @Success 200 {object} app.Response "{"code": 200, "data": [...]}"
- // @Router /admin/user/profile [get]
- // @Security
- func GetSysUserProfile(ctx iris.Context) {
-
- user, ok := jwts.ParseToken(ctx)
- utils.TrimStruct(user, *user)
- if !ok {
- supports.Error(ctx, iris.StatusBadRequest, supports.ParseParamsFailur, nil)
- return
- }
-
- var SysUser models.Usertab
- SysUser.Userid = user.Userid
- result, err := SysUser.Get()
- if err != nil {
- supports.Error(ctx, iris.StatusBadRequest, "抱歉未找到相关信息", nil)
- return
- }
- var SysRole models.Roletab
- //获取角色列表
- roles, err := SysRole.GetList()
-
- roleIds := make([]int, 0)
- roleIds = append(roleIds, result.RoleId)
-
- data := make(map[string]interface{})
- data["data"] = result
- data["roleIds"] = roleIds
- data["roles"] = roles
- supports.Ok(ctx, supports.OptionSuccess, data)
- }
-
- // @Summary 获取用户角色
- // @Description 获取JSON
- // @Tags 用户
- // @Success 200 {object} app.Response "{"code": 200, "data": [...]}"
- // @Router /api/v1/sysUser [get]
- // @Security
- func GetSysUserInit(ctx iris.Context) {
- var SysRole models.Roletab
- roles, err := SysRole.GetList()
- if err != nil {
- supports.Error(ctx, iris.StatusBadRequest, "抱歉未找到相关信息", nil)
- return
- }
- mp := make(map[string]interface{}, 0)
- mp["roles"] = roles
- supports.Ok(ctx, supports.OptionSuccess, mp)
- }
-
- // @Summary 创建用户
- // @Description 获取JSON
- // @Tags 用户
- // @Accept application/json
- // @Product application/json
- // @Param data body models.SysUser true "用户数据"
- // @Success 200 {string} string "{"code": 200, "message": "添加成功"}"
- // @Success 200 {string} string "{"code": -1, "message": "添加失败"}"
- // @Router /api/v1/sysUser [post]
- func InsertSysUser(ctx iris.Context) {
- user, ok := jwts.ParseToken(ctx)
- utils.TrimStruct(user, *user)
- if !ok {
- supports.Error(ctx, iris.StatusBadRequest, supports.ParseParamsFailur, nil)
- return
- }
- uinfo := new(models.Usertab)
- if err := ctx.ReadJSON(uinfo); err != nil {
- log := new(models.LeitServerLog)
- log.File = "user_controller.go"
- log.Level = "debug"
- log.Function = "InsertSysUser"
- log.Message = "json解析失败"
- log.Operator = ""
- log.TimeStamp = utils.TimeFormat(time.Now(), "yyyyMMddHHmmss")
- log.InsertRecord()
- supports.Error(ctx, iris.StatusInternalServerError, "json解析错误", nil)
- return
- }
-
- uinfo.Lastmodify = user.Lastmodify
- uinfo.Password = "123456"
- uinfo.Createtime = utils.TimeFormat(time.Now(), "yyyyMMddHHmmss")
- uinfo.Pid = user.Pid
- id, err := uinfo.Insert()
- if err != nil {
- supports.Error(ctx, iris.StatusInternalServerError, "添加失败", nil)
- return
- }
- supports.Ok(ctx, supports.OptionSuccess, id)
- }
-
- // @Summary 修改用户数据
- // @Description 获取JSON
- // @Tags 用户
- // @Accept application/json
- // @Product application/json
- // @Param data body models.SysUser true "body"
- // @Success 200 {string} string "{"code": 200, "message": "修改成功"}"
- // @Success 200 {string} string "{"code": -1, "message": "修改失败"}"
- // @Router /api/v1/sysuser/{userId} [put]
- func UpdateSysUser(ctx iris.Context) {
- user, ok := jwts.ParseToken(ctx)
- utils.TrimStruct(user, *user)
- if !ok {
- supports.Error(ctx, iris.StatusBadRequest, supports.ParseParamsFailur, nil)
- return
- }
-
- data := new(models.Usertab)
- if err := ctx.ReadJSON(data); err != nil {
- supports.Error(ctx, iris.StatusInternalServerError, "json解析错误", nil)
- return
- }
- data.Pid = user.Pid
- data.Lastmodify = user.Userid
- result, err := data.Update(data.Userid)
- if err != nil {
- supports.Error(ctx, iris.StatusInternalServerError, "更新失败", nil)
- return
- }
- supports.Ok(ctx, supports.OptionSuccess, result)
- }
-
- // @Summary 删除用户数据
- // @Description 删除数据
- // @Tags 用户
- // @Param userId path int true "userId"
- // @Success 200 {string} string "{"code": 200, "message": "删除成功"}"
- // @Success 200 {string} string "{"code": -1, "message": "删除失败"}"
- // @Router /api/v1/sysuser/{userId} [delete]
- func DeleteSysUser(ctx iris.Context) {
- user, ok := jwts.ParseToken(ctx)
- utils.TrimStruct(user, *user)
- if !ok {
- supports.Error(ctx, iris.StatusBadRequest, supports.ParseParamsFailur, nil)
- return
- }
- var data models.Usertab
- data.Lastmodify = user.Userid
- userId := ctx.Params().Get("userId")
- ids := strings.Split(userId, ",")
- result, err := data.BatchDelete(ids)
- if err != nil {
- supports.Error(ctx, iris.StatusInternalServerError, "删除失败", nil)
- return
- }
- supports.Ok(ctx, supports.OptionSuccess, result)
- }
-
- // @Summary 修改头像
- // @Description 获取JSON
- // @Tags 用户
- // @Accept multipart/form-data
- // @Param file formData file true "file"
- // @Success 200 {string} string "{"code": 200, "message": "添加成功"}"
- // @Success 200 {string} string "{"code": -1, "message": "添加失败"}"
- // @Router /api/v1/user/profileAvatar [post]
- func InsetSysUserAvatar(ctx iris.Context) {
- user, ok := jwts.ParseToken(ctx)
- utils.TrimStruct(user, *user)
- if !ok {
- supports.Error(ctx, iris.StatusBadRequest, supports.ParseParamsFailur, nil)
- return
- }
-
- //获取通过iris.WithPostMaxMemory获取的最大上传值大小。
- maxSize := ctx.Application().ConfigurationReadOnly().GetPostMaxMemory()
- err := ctx.Request().ParseMultipartForm(maxSize)
- if err != nil {
- ctx.StatusCode(iris.StatusInternalServerError)
- ctx.WriteString(err.Error())
- return
- }
- form := ctx.Request().MultipartForm
- files := form.File["upload[]"]
-
- guid := utils.MakeOrderSn(user.Userid)
- filPath := "public/uploadfile/" + guid + ".jpg"
- savePath := "web/public/uploadfile/" + guid + ".jpg"
-
- for _, file := range files {
- // 上传文件至指定目录
- savePath,_ := utils.GetCurrentPath(savePath)
- err := utils.SaveUploadedFile(file, savePath)
- if err != nil {
- log.Printf("上传图片错误:%v", err)
- return
- }
- }
-
- sysuser := new(models.Usertab)
- sysuser.Userid = user.Userid
- sysuser.Pid = user.Pid
- sysuser.Avatar = "/" + filPath
- sysuser.Lastmodify = user.Userid
- _, err = sysuser.Update(sysuser.Userid)
- if err != nil {
- supports.Error(ctx, iris.StatusBadRequest, supports.ParseParamsFailur, nil)
- return
- }
- supports.Ok(ctx, "修改成功", filPath)
- }
-
- func SysUserUpdatePwd(ctx iris.Context) {
- user, ok := jwts.ParseToken(ctx)
- utils.TrimStruct(user, *user)
- if !ok {
- supports.Error(ctx, iris.StatusBadRequest, supports.ParseParamsFailur, nil)
- return
- }
- pwd := new(models.SysUserPwd)
- if err := ctx.ReadJSON(pwd); err != nil {
- log := new(models.LeitServerLog)
- log.File = "user_controller.go"
- log.Level = "debug"
- log.Function = "SysUserUpdatePwd"
- log.Message = "json解析失败"
- log.Operator = ""
- log.TimeStamp = utils.TimeFormat(time.Now(), "yyyyMMddHHmmss")
- log.InsertRecord()
- supports.Error(ctx, iris.StatusInternalServerError, "json解析错误", nil)
- return
- }
- sysuser := models.Usertab{}
- sysuser.Userid = user.Userid
- sysuser.Pid = user.Pid
- _, err := sysuser.SetPwd(pwd)
- if err != nil {
- supports.Error(ctx, iris.StatusBadRequest, supports.ParseParamsFailur, nil)
- return
- }
- supports.Ok(ctx, "密码修改成功", "")
- }
-
- //反代理图片
- func GetImg(ctx iris.Context) {
- imgpath := ctx.URLParam("imgpath")
- url := conf.Baseurl + imgpath
- res, err := http.Get(url)
- defer res.Body.Close() //不要泄露资源
- if err != nil {
- log.Println("获取文件错误")
- }
- io.Copy(ctx.ResponseWriter(), res.Body)
- }
-
- //查询所有用户
- func GetAllUsers(ctx iris.Context) {
- user, ok := jwts.ParseToken(ctx)
- utils.TrimStruct(user, *user)
- if !ok {
- supports.Error(ctx, iris.StatusBadRequest, supports.ParseParamsFailur, nil)
- return
- }
- sysuser := models.Usertab{}
- data, err := sysuser.AllUsers()
- if err != nil {
- supports.Error(ctx, iris.StatusBadRequest, supports.ParseParamsFailur, nil)
- return
- }
- supports.Ok(ctx, "成功", data)
- }
|