user.go 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238
  1. package controller
  2. import (
  3. "Ic_ouath/app/e"
  4. "Ic_ouath/app/service"
  5. "Ic_ouath/app/service/imp"
  6. "Ic_ouath/global"
  7. "Ic_ouath/models"
  8. "Ic_ouath/page"
  9. "Ic_ouath/simple_zap"
  10. "Ic_ouath/utils"
  11. "context"
  12. "github.com/astaxie/beego/validation"
  13. "github.com/gin-gonic/gin"
  14. "github.com/go-playground/validator/v10"
  15. )
  16. var users service.User = &imp.User{}
  17. // PhoneRegist 手机号注册
  18. // @Tags 用户管理
  19. // @Summary 手机号注册
  20. // @Success 200 {object} e.R
  21. // @Fail 400 {object} e.R
  22. // @Param req body models.UserRegist true "注册信息"
  23. // @Accept application/json
  24. // @Router /user [post]
  25. func PhoneRegist(c *gin.Context) {
  26. var userRegist models.UserRegist
  27. err := c.ShouldBindJSON(&userRegist)
  28. if err != nil {
  29. e.ResponseError(c, e.JSONParsingFailed)
  30. return
  31. }
  32. rescode := users.PhoneRegist(userRegist)
  33. e.ResponseError(c, rescode)
  34. }
  35. // SendCode 发送验证码
  36. // @Tags 用户管理
  37. // @Summary 发送验证码
  38. // @Success 200 {object} e.R
  39. // @Fail 400 {object} e.R
  40. // @Param phone query string true "手机号"
  41. // @Accept application/json
  42. // @Router /sendcode [post]
  43. func SendCode(c *gin.Context) {
  44. phone := c.PostForm("phone")
  45. utils.SendModel(phone)
  46. v := validation.Validation{}
  47. v.Mobile(phone, "phone")
  48. v.Required(phone, "phone")
  49. if v.HasErrors() {
  50. e.ResponseWithMsg(c, e.ThePhoneNumberIsWrong, "手机号码格式不正确")
  51. return
  52. } else {
  53. rescode := utils.SendModel(phone)
  54. if rescode != e.SUCCESS {
  55. e.ResponseWithMsg(c, rescode, rescode.GetMsg())
  56. return
  57. } else {
  58. e.ResponseSuccess(c, "发送成功")
  59. }
  60. }
  61. }
  62. // Login 账号登录
  63. // @Tags 用户管理
  64. // @Summary 账号密码登录
  65. // @Success 200 {object} e.R
  66. // @Fail 400 {object} e.R
  67. // @Param req body models.UserRegist true "账号信息"
  68. // @Accept application/json
  69. // @Router /user [post]
  70. func Login(c *gin.Context) {
  71. var userRegist models.UserRegist
  72. err := c.ShouldBindJSON(&userRegist)
  73. if err != nil {
  74. e.ResponseWithMsg(c, e.JSONParsingFailed, e.JSONParsingFailed.GetMsg())
  75. simple_zap.WithCtx(context.Background()).Sugar().Warn(err, e.JSONParsingFailed.GetMsg())
  76. return
  77. } else {
  78. login, rescode := users.Login(userRegist)
  79. if rescode == e.SUCCESS {
  80. e.ResponseSuccess(c, login)
  81. return
  82. } else {
  83. e.ResponseWithMsg(c, rescode, rescode.GetMsg())
  84. simple_zap.WithCtx(context.Background()).Sugar().Warn(err, rescode.GetMsg())
  85. return
  86. }
  87. }
  88. }
  89. // CodeLogin 验证码登录
  90. // @Tags 用户管理
  91. // @Summary 验证码登录
  92. // @Success 200 {object} e.R
  93. // @Fail 400 {object} e.R
  94. // @Param req body models.UserRegist true "账号信息"
  95. // @Accept application/json
  96. // @Router /codelogin [post]
  97. func CodeLogin(c *gin.Context) {
  98. var userRegist models.UserRegist
  99. err := c.ShouldBindJSON(&userRegist)
  100. if err != nil {
  101. e.ResponseWithMsg(c, e.JSONParsingFailed, e.JSONParsingFailed.GetMsg())
  102. simple_zap.WithCtx(context.Background()).Sugar().Warn(err, e.JSONParsingFailed.GetMsg())
  103. return
  104. }
  105. login, rescode := users.CodeLogin(userRegist)
  106. if rescode == e.SUCCESS {
  107. e.ResponseSuccess(c, login)
  108. return
  109. } else {
  110. e.ResponseWithMsg(c, rescode, rescode.GetMsg())
  111. simple_zap.WithCtx(context.Background()).Sugar().Warn(err, rescode.GetMsg())
  112. return
  113. }
  114. }
  115. // GetUserAll 获取所有用户
  116. func GetUserAll(c *gin.Context) {
  117. user, rescode := users.GetUserAll()
  118. if rescode == e.SUCCESS {
  119. e.ResponseSuccess(c, user)
  120. return
  121. } else {
  122. e.ResponseWithMsg(c, rescode, rescode.GetMsg())
  123. return
  124. }
  125. }
  126. // GetUserAlls 获取所有用户
  127. // @Tags 用户管理
  128. // @Summary 获取所有用户
  129. // @Success 200 {object} e.R
  130. // @Fail 400 {object} e.R
  131. // @Param req body page.PageParams true "分页信息"
  132. // @Accept application/json
  133. // @Router /admin/getalluser [post]
  134. func GetUserAlls(c *gin.Context) {
  135. var pages page.PageParams
  136. err := c.ShouldBindJSON(&pages)
  137. if err != nil {
  138. e.ResponseWithMsg(c, e.JSONParsingFailed, e.JSONParsingFailed.GetMsg())
  139. simple_zap.WithCtx(context.Background()).Sugar().Warn(err, e.JSONParsingFailed.GetMsg())
  140. return
  141. }
  142. result, total, err := page.Paginate(global.DBLink, pages, models.User{})
  143. if err != nil {
  144. e.ResponseWithMsg(c, e.PaginationFailed, e.PaginationFailed.GetMsg())
  145. simple_zap.WithCtx(context.Background()).Sugar().Warn(err, e.PaginationFailed.GetMsg())
  146. return
  147. }
  148. e.ResPonsePage(c, result, total, pages)
  149. }
  150. // UpdateUserById 修改用户信息
  151. // @Tags 用户管理
  152. // @Summary 获取所有用户
  153. // @Success 200 {object} e.R
  154. // @Fail 400 {object} e.R
  155. // @Param req body page.PageParams true "分页信息"
  156. // @Accept application/json
  157. // @Router /admin/user [post]
  158. func UpdateUserById(c *gin.Context) {
  159. var userVo models.UserVo
  160. userId := c.MustGet("user_id")
  161. err := c.ShouldBindJSON(&userVo)
  162. if err != nil {
  163. e.ResponseWithMsg(c, e.JSONParsingFailed, e.JSONParsingFailed.GetMsg())
  164. simple_zap.WithCtx(context.Background()).Sugar().Warn(err, e.JSONParsingFailed.GetMsg())
  165. return
  166. }
  167. recode := users.UpdateUser(userId, userVo)
  168. if recode == e.SUCCESS {
  169. e.ResponseSuccess(c, "修改成功")
  170. return
  171. } else {
  172. e.ResponseWithMsg(c, recode, recode.GetMsg())
  173. simple_zap.WithCtx(context.Background()).Sugar().Info(err, recode.GetMsg())
  174. return
  175. }
  176. }
  177. // DeleteUserById 删除用户信息
  178. // @Tags 用户管理
  179. // @Summary 删除用户
  180. // @Success 200 {object} e.R
  181. // @Fail 400 {object} e.R
  182. // @Param id query string true "id"
  183. // @Accept application/json
  184. // @Router /admin/user [delete]
  185. func DeleteUserById(c *gin.Context) {
  186. ids := c.QueryArray("ids")
  187. recode := users.DeleteUser(ids)
  188. if recode == e.SUCCESS {
  189. e.ResponseSuccess(c, "删除成功")
  190. return
  191. } else {
  192. e.ResponseWithMsg(c, recode, recode.GetMsg())
  193. simple_zap.WithCtx(context.Background()).Sugar().Info(recode.GetMsg())
  194. return
  195. }
  196. }
  197. // UpdatePassword 修改账号密码
  198. // @Tags 用户管理
  199. // @Summary 手机号注册
  200. // @Success 200 {object} e.R
  201. // @Fail 400 {object} e.R
  202. // @Param req body models.UserRegist true "注册信息"
  203. // @Accept application/json
  204. // @Router /user [post]
  205. func UpdatePassword(c *gin.Context) {
  206. var userRegist models.UserUpdate
  207. err := c.ShouldBindJSON(&userRegist)
  208. if err != nil {
  209. e.ResponseError(c, e.JSONParsingFailed)
  210. return
  211. }
  212. validate := validator.New()
  213. err = validate.Struct(userRegist)
  214. if err != nil {
  215. e.ResponseWithMsg(c, e.ERROR, err.Error())
  216. return
  217. }
  218. rescode := users.UpdatePassword(userRegist)
  219. if rescode == e.SUCCESS {
  220. e.ResponseSuccess(c, nil)
  221. return
  222. } else {
  223. e.ResponseWithMsg(c, rescode, rescode.GetMsg())
  224. return
  225. }
  226. }