sysuser.go 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246
  1. package system
  2. import (
  3. "github.com/gin-gonic/gin"
  4. "github.com/gin-gonic/gin/binding"
  5. "github.com/google/uuid"
  6. "device-manage/app/admin/models"
  7. "device-manage/app/admin/models/busmodels"
  8. "device-manage/common/global"
  9. "device-manage/tools"
  10. "device-manage/tools/app"
  11. )
  12. // @Summary 列表用户信息数据
  13. // @Description 获取JSON
  14. // @Tags 用户
  15. // @Param username query string false "username"
  16. // @Success 200 {string} string "{"code": 200, "data": [...]}"
  17. // @Success 200 {string} string "{"code": -1, "message": "抱歉未找到相关信息"}"
  18. // @Router /api/v1/sysUserList [get]
  19. // @Security Bearer
  20. func GetSysUserList(c *gin.Context) {
  21. var data models.SysUser
  22. var err error
  23. var pageSize = 10
  24. var pageIndex = 1
  25. size := c.Request.FormValue("pageSize")
  26. if size != "" {
  27. pageSize, err = tools.StringToInt(size)
  28. }
  29. index := c.Request.FormValue("pageIndex")
  30. if index != "" {
  31. pageIndex, err = tools.StringToInt(index)
  32. }
  33. data.Username = c.Request.FormValue("username")
  34. data.Status = c.Request.FormValue("status")
  35. data.Phone = c.Request.FormValue("phone")
  36. postId := c.Request.FormValue("postId")
  37. data.PostId, _ = tools.StringToInt(postId)
  38. deptId := c.Request.FormValue("deptId")
  39. data.DeptId, _ = tools.StringToInt(deptId)
  40. data.DataScope = tools.GetUserIdStr(c)
  41. result, count, err := data.GetPage(pageSize, pageIndex)
  42. tools.HasError(err, "", -1)
  43. app.PageOK(c, result, count, pageIndex, pageSize, "")
  44. }
  45. // @Summary 获取用户
  46. // @Description 获取JSON
  47. // @Tags 用户
  48. // @Param userId path int true "用户编码"
  49. // @Success 200 {object} app.Response "{"code": 200, "data": [...]}"
  50. // @Router /api/v1/sysUser/{userId} [get]
  51. // @Security Bearer
  52. func GetSysUser(c *gin.Context) {
  53. var SysUser models.SysUser
  54. SysUser.UserId, _ = tools.StringToInt(c.Param("userId"))
  55. result, err := SysUser.Get()
  56. tools.HasError(err, "抱歉未找到相关信息", -1)
  57. var SysRole models.SysRole
  58. var Post models.Post
  59. roles, err := SysRole.GetList()
  60. posts, err := Post.GetList()
  61. postIds := make([]int, 0)
  62. postIds = append(postIds, result.PostId)
  63. roleIds := make([]int, 0)
  64. roleIds = append(roleIds, result.RoleId)
  65. app.Custum(c, gin.H{
  66. "code": 200,
  67. "data": result,
  68. "postIds": postIds,
  69. "roleIds": roleIds,
  70. "roles": roles,
  71. "posts": posts,
  72. })
  73. }
  74. // @Summary 获取个人中心用户
  75. // @Description 获取JSON
  76. // @Tags 个人中心
  77. // @Success 200 {object} app.Response "{"code": 200, "data": [...]}"
  78. // @Router /api/v1/user/profile [get]
  79. // @Security Bearer
  80. func GetSysUserProfile(c *gin.Context) {
  81. var SysUser models.SysUser
  82. userId := tools.GetUserIdStr(c)
  83. SysUser.UserId, _ = tools.StringToInt(userId)
  84. result, err := SysUser.Get()
  85. tools.HasError(err, "抱歉未找到相关信息", -1)
  86. var SysRole models.SysRole
  87. var Post models.Post
  88. var Dept models.SysDept
  89. //获取角色列表
  90. roles, err := SysRole.GetList()
  91. //获取职位列表
  92. posts, err := Post.GetList()
  93. //获取部门列表
  94. Dept.DeptId = result.DeptId
  95. dept, err := Dept.Get()
  96. postIds := make([]int, 0)
  97. postIds = append(postIds, result.PostId)
  98. roleIds := make([]int, 0)
  99. roleIds = append(roleIds, result.RoleId)
  100. app.Custum(c, gin.H{
  101. "code": 200,
  102. "data": result,
  103. "postIds": postIds,
  104. "roleIds": roleIds,
  105. "roles": roles,
  106. "posts": posts,
  107. "dept": dept,
  108. })
  109. }
  110. // @Summary 获取用户角色和职位
  111. // @Description 获取JSON
  112. // @Tags 用户
  113. // @Success 200 {object} app.Response "{"code": 200, "data": [...]}"
  114. // @Router /api/v1/sysUser [get]
  115. // @Security Bearer
  116. func GetSysUserInit(c *gin.Context) {
  117. var SysRole models.SysRole
  118. var Post models.Post
  119. roles, err := SysRole.GetList()
  120. posts, err := Post.GetList()
  121. tools.HasError(err, "抱歉未找到相关信息", -1)
  122. mp := make(map[string]interface{}, 2)
  123. mp["roles"] = roles
  124. mp["posts"] = posts
  125. app.OK(c, mp, "")
  126. }
  127. // @Summary 创建用户
  128. // @Description 获取JSON
  129. // @Tags 用户
  130. // @Accept application/json
  131. // @Product application/json
  132. // @Param data body models.SysUser true "用户数据"
  133. // @Success 200 {string} string "{"code": 200, "message": "添加成功"}"
  134. // @Success 200 {string} string "{"code": -1, "message": "添加失败"}"
  135. // @Router /api/v1/sysUser [post]
  136. func InsertSysUser(c *gin.Context) {
  137. var sysuser models.SysUser
  138. var group busmodels.BusGroup
  139. err := c.MustBindWith(&sysuser, binding.JSON)
  140. tools.HasError(err, "非法数据格式", 500)
  141. group.GroupName = sysuser.GroupName
  142. group.ParentId = 1
  143. group.GroupType = 1
  144. group.CreateBy = tools.GetUserIdStr(c)
  145. if count, _ := group.GetGroupByName(); count > 0 {
  146. tools.HasError(err, "请检查群组", 500)
  147. }
  148. //默认创建的新用户是当前用户的子用户.
  149. sysuser.Pid = tools.GetUserId(c)
  150. sysuser.CreateBy = tools.GetUserIdStr(c)
  151. id, err := sysuser.Insert()
  152. tools.HasError(err, "添加失败", 500)
  153. group.OwnerId = id
  154. group.Insert()
  155. app.OK(c, id, "添加成功")
  156. }
  157. // @Summary 修改用户数据
  158. // @Description 获取JSON
  159. // @Tags 用户
  160. // @Accept application/json
  161. // @Product application/json
  162. // @Param data body models.SysUser true "body"
  163. // @Success 200 {string} string "{"code": 200, "message": "修改成功"}"
  164. // @Success 200 {string} string "{"code": -1, "message": "修改失败"}"
  165. // @Router /api/v1/sysuser/{userId} [put]
  166. func UpdateSysUser(c *gin.Context) {
  167. var data models.SysUser
  168. err := c.Bind(&data)
  169. tools.HasError(err, "数据解析失败", -1)
  170. data.UpdateBy = tools.GetUserIdStr(c)
  171. result, err := data.Update(data.UserId)
  172. tools.HasError(err, "修改失败", 500)
  173. app.OK(c, result, "修改成功")
  174. }
  175. // @Summary 删除用户数据
  176. // @Description 删除数据
  177. // @Tags 用户
  178. // @Param userId path int true "userId"
  179. // @Success 200 {string} string "{"code": 200, "message": "删除成功"}"
  180. // @Success 200 {string} string "{"code": -1, "message": "删除失败"}"
  181. // @Router /api/v1/sysuser/{userId} [delete]
  182. func DeleteSysUser(c *gin.Context) {
  183. var data models.SysUser
  184. data.UpdateBy = tools.GetUserIdStr(c)
  185. IDS := tools.IdsStrToIdsIntGroup("userId", c)
  186. result, err := data.BatchDelete(IDS)
  187. tools.HasError(err, "删除失败", 500)
  188. app.OK(c, result, "删除成功")
  189. }
  190. // @Summary 修改头像
  191. // @Description 获取JSON
  192. // @Tags 用户
  193. // @Accept multipart/form-data
  194. // @Param file formData file true "file"
  195. // @Success 200 {string} string "{"code": 200, "message": "添加成功"}"
  196. // @Success 200 {string} string "{"code": -1, "message": "添加失败"}"
  197. // @Router /api/v1/user/profileAvatar [post]
  198. func InsetSysUserAvatar(c *gin.Context) {
  199. form, _ := c.MultipartForm()
  200. files := form.File["upload[]"]
  201. guid := uuid.New().String()
  202. filPath := "static/uploadfile/" + guid + ".jpg"
  203. for _, file := range files {
  204. global.Logger.Debug(file.Filename)
  205. // 上传文件至指定目录
  206. _ = c.SaveUploadedFile(file, filPath)
  207. }
  208. sysuser := models.SysUser{}
  209. sysuser.UserId = tools.GetUserId(c)
  210. sysuser.Avatar = "/" + filPath
  211. sysuser.UpdateBy = tools.GetUserIdStr(c)
  212. sysuser.Update(sysuser.UserId)
  213. app.OK(c, filPath, "修改成功")
  214. }
  215. func SysUserUpdatePwd(c *gin.Context) {
  216. var pwd models.SysUserPwd
  217. err := c.Bind(&pwd)
  218. tools.HasError(err, "数据解析失败", 500)
  219. sysuser := models.SysUser{}
  220. sysuser.UserId = tools.GetUserId(c)
  221. sysuser.SetPwd(pwd)
  222. app.OK(c, "", "密码修改成功")
  223. }