user.go 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473
  1. package eta_trial
  2. import (
  3. "encoding/json"
  4. "eta/eta_forum_hub/controllers"
  5. "eta/eta_forum_hub/models"
  6. "eta/eta_forum_hub/models/eta_trial"
  7. eta_trial2 "eta/eta_forum_hub/services/eta_trial"
  8. "eta/eta_forum_hub/utils"
  9. "time"
  10. )
  11. type EtaTrialController struct {
  12. controllers.BaseAuthController
  13. }
  14. // GetUserByMobile
  15. // @Title 手机号获取用户信息
  16. // @Description 手机号获取用户信息
  17. // @Success 200 {string} string "操作成功"
  18. // @router /user/mobile_fetch [post]
  19. func (this *EtaTrialController) GetUserByMobile() {
  20. br := new(models.BaseResponse).Init()
  21. defer func() {
  22. this.Data["json"] = br
  23. this.ServeJSON()
  24. }()
  25. var req eta_trial.GetUserReq
  26. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  27. if err != nil {
  28. br.Msg = "参数解析异常!"
  29. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  30. return
  31. }
  32. if req.Mobile == "" {
  33. br.Msg = "请输入手机号"
  34. return
  35. }
  36. item, e := models.GetEtaTrialByMobile(req.Mobile)
  37. if e != nil && e.Error() != utils.ErrNoRow() {
  38. br.Msg = "操作失败"
  39. br.ErrMsg = "获取试用客户信息失败, Err:" + e.Error()
  40. return
  41. }
  42. br.Ret = 200
  43. br.Success = true
  44. br.Msg = "操作成功"
  45. br.Data = item
  46. }
  47. // Disable
  48. // @Description 禁用
  49. // @Success 200 {string} string "操作成功"
  50. // @router /user/disable [post]
  51. func (this *EtaTrialController) Disable() {
  52. br := new(models.BaseResponse).Init()
  53. defer func() {
  54. this.Data["json"] = br
  55. this.ServeJSON()
  56. }()
  57. var req eta_trial.GetUserReq
  58. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  59. if err != nil {
  60. br.Msg = "参数解析异常!"
  61. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  62. return
  63. }
  64. if req.Mobile == "" {
  65. br.Msg = "请输入手机号"
  66. return
  67. }
  68. if e := models.DisableEtaTrailByMobile(req.Mobile); e != nil {
  69. br.Msg = "操作失败"
  70. br.ErrMsg = "禁用试用客户失败, Err:" + e.Error()
  71. return
  72. }
  73. br.Ret = 200
  74. br.Success = true
  75. br.Msg = "操作成功"
  76. br.Data = true
  77. }
  78. // Edit
  79. // @Description 编辑
  80. // @Success 200 {string} string "操作成功"
  81. // @router /user/edit [post]
  82. func (this *EtaTrialController) Edit() {
  83. br := new(models.BaseResponse).Init()
  84. defer func() {
  85. this.Data["json"] = br
  86. this.ServeJSON()
  87. }()
  88. var req eta_trial.UserEditReq
  89. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  90. if err != nil {
  91. br.Msg = "参数解析异常!"
  92. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  93. return
  94. }
  95. if e := models.UpdateEtaTrialPositionByMobile(req.RealName, req.Position, req.Mobile, req.Enabled); e != nil {
  96. br.Msg = "操作失败"
  97. br.ErrMsg = "更新试用客户失败, Err:" + e.Error()
  98. return
  99. }
  100. br.Ret = 200
  101. br.Success = true
  102. br.Msg = "操作成功"
  103. br.Data = true
  104. }
  105. // Remove
  106. // @Description 删除用户
  107. // @Success 200 {string} string "操作成功"
  108. // @router /user/remove [post]
  109. func (this *EtaTrialController) Remove() {
  110. br := new(models.BaseResponse).Init()
  111. defer func() {
  112. this.Data["json"] = br
  113. this.ServeJSON()
  114. }()
  115. var req eta_trial.GetUserReq
  116. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  117. if err != nil {
  118. br.Msg = "参数解析异常!"
  119. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  120. return
  121. }
  122. if req.Mobile == "" {
  123. br.Msg = "请输入手机号"
  124. return
  125. }
  126. if e := models.DeleteEtaTrialByMobile(req.Mobile); e != nil {
  127. br.Msg = "操作失败"
  128. br.ErrMsg = "删除试用客户失败, Err:" + e.Error()
  129. return
  130. }
  131. br.Ret = 200
  132. br.Success = true
  133. br.Msg = "操作成功"
  134. br.Data = true
  135. }
  136. // UpdateLogin
  137. // @Title 更新登录时间和次数
  138. // @Description 更新登录时间和次数
  139. // @Param request body eta_trial.UpdateUserLoginReq true "type json string"
  140. // @Success 200 "操作成功"
  141. // @router /user/update_login [post]
  142. func (this *EtaTrialController) UpdateLogin() {
  143. br := new(models.BaseResponse).Init()
  144. defer func() {
  145. this.Data["json"] = br
  146. this.ServeJSON()
  147. }()
  148. var req eta_trial.UpdateUserLoginReq
  149. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  150. if err != nil {
  151. br.Msg = "参数解析异常!"
  152. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  153. return
  154. }
  155. if req.Mobile == "" {
  156. br.Msg = "请输入手机号"
  157. return
  158. }
  159. if e := models.UpdateEtaTrialLoginByMobile(req.Mobile); e != nil {
  160. br.Msg = "操作失败"
  161. br.ErrMsg = "更新试用客户登录时间和次数失败, Err:" + e.Error()
  162. return
  163. }
  164. br.Ret = 200
  165. br.Success = true
  166. br.Msg = "操作成功"
  167. br.Data = true
  168. }
  169. // UpdateIndexNum
  170. // @Description 更新累计新增指标数
  171. // @Success 200 {string} string "操作成功"
  172. // @router /user/update_index_num [post]
  173. func (this *EtaTrialController) UpdateIndexNum() {
  174. br := new(models.BaseResponse).Init()
  175. defer func() {
  176. this.Data["json"] = br
  177. this.ServeJSON()
  178. }()
  179. var req eta_trial.UpdateUserIndexNumReq
  180. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  181. if err != nil {
  182. br.Msg = "参数解析异常!"
  183. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  184. return
  185. }
  186. if req.Mobile == "" {
  187. br.Msg = "请输入手机号"
  188. return
  189. }
  190. if e := models.UpdateEtaTrialIndexNumByMobile(req.Mobile); e != nil {
  191. br.Msg = "操作失败"
  192. br.ErrMsg = "更新试用客户累计新增指标数失败, Err:" + e.Error()
  193. return
  194. }
  195. br.Ret = 200
  196. br.Success = true
  197. br.Msg = "操作成功"
  198. br.Data = true
  199. }
  200. // UpdateChartNum
  201. // @Description 更新累计新增图表数
  202. // @Success 200 {string} string "操作成功"
  203. // @router /user/update_chart_num [post]
  204. func (this *EtaTrialController) UpdateChartNum() {
  205. br := new(models.BaseResponse).Init()
  206. defer func() {
  207. this.Data["json"] = br
  208. this.ServeJSON()
  209. }()
  210. var req eta_trial.UpdateUserIndexNumReq
  211. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  212. if err != nil {
  213. br.Msg = "参数解析异常!"
  214. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  215. return
  216. }
  217. if req.Mobile == "" {
  218. br.Msg = "请输入手机号"
  219. return
  220. }
  221. if e := models.UpdateEtaTrialChartNumByMobile(req.Mobile); e != nil {
  222. br.Msg = "操作失败"
  223. br.ErrMsg = "更新试用客户累计新增图表数失败, Err:" + e.Error()
  224. return
  225. }
  226. br.Ret = 200
  227. br.Success = true
  228. br.Msg = "操作成功"
  229. br.Data = true
  230. }
  231. // UpdateActiveTime
  232. // @Description 更新活跃时间
  233. // @Success 200 {string} string "操作成功"
  234. // @router /user/update_active_time [post]
  235. func (this *EtaTrialController) UpdateActiveTime() {
  236. br := new(models.BaseResponse).Init()
  237. defer func() {
  238. this.Data["json"] = br
  239. this.ServeJSON()
  240. }()
  241. var req eta_trial.UpdateUserActiveTimeReq
  242. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  243. if err != nil {
  244. br.Msg = "参数解析异常!"
  245. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  246. return
  247. }
  248. record := new(models.EtaTrialActiveRecord)
  249. record.UserName = req.UserName
  250. record.Mobile = req.Mobile
  251. record.ActiveTime = req.ActiveTime
  252. record.Part = req.Part
  253. record.CreateTime = time.Now().Local()
  254. if e := record.Create(); e != nil {
  255. br.Msg = "操作失败"
  256. br.ErrMsg = "新增试用客户活跃记录失败, Err:" + e.Error()
  257. return
  258. }
  259. if e := models.UpdateEtaTrailActiveTime(req.ActiveTime, req.Mobile); e != nil {
  260. br.Msg = "操作失败"
  261. br.ErrMsg = "更新试用客户累计活跃时长失败, Err:" + e.Error()
  262. return
  263. }
  264. br.Ret = 200
  265. br.Success = true
  266. br.Msg = "操作成功"
  267. br.Data = true
  268. }
  269. // UpdateLoginDuration
  270. // @Description 更新登录时长
  271. // @Success 200 {string} string "操作成功"
  272. // @router /user/update_login_duration [post]
  273. func (this *EtaTrialController) UpdateLoginDuration() {
  274. br := new(models.BaseResponse).Init()
  275. defer func() {
  276. this.Data["json"] = br
  277. this.ServeJSON()
  278. }()
  279. var req eta_trial.UpdateUserLoginDurationReq
  280. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  281. if err != nil {
  282. br.Msg = "参数解析异常!"
  283. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  284. return
  285. }
  286. record := new(models.EtaTrialLoginDurationRecord)
  287. record.UserName = req.UserName
  288. record.Mobile = req.Mobile
  289. record.Duration = req.ActiveTime
  290. record.CreateTime = time.Now().Local()
  291. if e := record.Create(); e != nil {
  292. br.Msg = "操作失败"
  293. br.ErrMsg = "新增试用客户登录时长记录失败, Err:" + e.Error()
  294. return
  295. }
  296. if e := models.UpdateEtaTrailLastLoginDuration(req.ActiveTime, req.Mobile); e != nil {
  297. br.Msg = "操作失败"
  298. br.ErrMsg = "更新试用客户登录时长失败, Err:" + e.Error()
  299. return
  300. }
  301. br.Ret = 200
  302. br.Success = true
  303. br.Msg = "操作成功"
  304. br.Data = true
  305. }
  306. // AddEtaTrialAdmin
  307. // @Title 新增或者编辑系统用户
  308. // @Description 新增系统用户接口
  309. // @Param request body system.SysuserAddReq true "type json string"
  310. // @Success 200 新增成功
  311. // @router /admin/add [post]
  312. func (this *EtaTrialController) AddEtaTrialAdmin() {
  313. br := new(models.BaseResponse).Init()
  314. defer func() {
  315. this.Data["json"] = br
  316. this.ServeJSON()
  317. }()
  318. var req eta_trial.AddEtaTrialAdminReq
  319. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  320. if err != nil {
  321. br.Msg = "参数解析异常!"
  322. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  323. return
  324. }
  325. //新增至试用平台的Admin
  326. adminItem, err := eta_trial.GetSysUserByRoleAndDepartment("试用", "ETA试用客户")
  327. if err != nil {
  328. br.Msg = "获取用户信息失败"
  329. br.ErrMsg = "获取用户信息失败,Err:" + err.Error()
  330. return
  331. }
  332. admin := new(eta_trial.ETATrialAdmin)
  333. admin.AdminName = req.Account
  334. admin.RealName = req.UserName
  335. admin.Password = utils.MD5(req.Password)
  336. admin.LastUpdatedPasswordTime = time.Now().Format(utils.FormatDateTime)
  337. admin.Enabled = 1
  338. admin.LastLoginTime = time.Now().Format(utils.FormatDateTime)
  339. admin.CreatedTime = time.Now()
  340. admin.LastUpdatedTime = time.Now().Format(utils.FormatDateTime)
  341. admin.Mobile = req.Mobile
  342. admin.RoleType = 0
  343. admin.RoleId = adminItem.RoleId
  344. admin.RoleName = "试用"
  345. admin.RoleTypeCode = "管理员"
  346. admin.DepartmentId = adminItem.DepartmentId
  347. admin.DepartmentName = "ETA试用客户"
  348. admin.Role = "admin"
  349. admin.Position = req.Position
  350. newId, err := eta_trial.AddAdmin(admin)
  351. if err != nil {
  352. br.Msg = "新增失败"
  353. br.ErrMsg = "新增失败,AddAdmin Err:" + err.Error()
  354. return
  355. }
  356. // 新增试用客户手工权限
  357. go func() {
  358. //_ = services.CreateTrialUserManualAuth(newId, admin.RealName)
  359. _ = eta_trial2.EtaTrialManualUserAddAuth(newId, admin.RealName)
  360. }()
  361. br.Ret = 200
  362. br.Success = true
  363. br.Msg = "新增成功"
  364. }
  365. // EnabledEtaTrialAdmin
  366. // @Title 新增或者编辑系统用户
  367. // @Description 新增系统用户接口
  368. // @Param request body system.SysuserAddReq true "type json string"
  369. // @Success 200 新增成功
  370. // @router /admin/enabled [post]
  371. func (this *EtaTrialController) EnabledEtaTrialAdmin() {
  372. br := new(models.BaseResponse).Init()
  373. defer func() {
  374. this.Data["json"] = br
  375. this.ServeJSON()
  376. }()
  377. var req eta_trial.EnabledEtaTrialAdminReq
  378. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  379. if err != nil {
  380. br.Msg = "参数解析异常!"
  381. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  382. return
  383. }
  384. //新增至试用平台的Admin
  385. if req.Mobile == "" {
  386. br.Msg = "参数解析异常!"
  387. br.ErrMsg = "参数解析失败,Err:手机号不能为空"
  388. return
  389. }
  390. err = eta_trial.UpdateAdminEnable(req.Mobile)
  391. if err != nil {
  392. br.Msg = "启用失败"
  393. br.ErrMsg = "启用失败,Err:" + err.Error()
  394. return
  395. }
  396. br.Ret = 200
  397. br.Success = true
  398. br.Msg = "操作成功"
  399. }
  400. // GetMobileCount
  401. // @Title 新增或者编辑系统用户
  402. // @Description 新增系统用户接口
  403. // @Param request body system.SysuserAddReq true "type json string"
  404. // @Success 200 新增成功
  405. // @router /mobile/count [post]
  406. func (this *EtaTrialController) GetMobileCount() {
  407. br := new(models.BaseResponse).Init()
  408. defer func() {
  409. this.Data["json"] = br
  410. this.ServeJSON()
  411. }()
  412. var req eta_trial.GetMobileCountReq
  413. err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
  414. if err != nil {
  415. br.Msg = "参数解析异常!"
  416. br.ErrMsg = "参数解析失败,Err:" + err.Error()
  417. return
  418. }
  419. //新增至试用平台的Admin
  420. if req.Mobile == "" {
  421. br.Msg = "参数解析异常!"
  422. br.ErrMsg = "参数解析失败,Err:手机号不能为空"
  423. return
  424. }
  425. mobileCount, err := eta_trial.GetSysAdminCountByMobile(req.Mobile, 0)
  426. if err != nil {
  427. br.Msg = "启用失败"
  428. br.ErrMsg = "启用失败,Err:" + err.Error()
  429. return
  430. }
  431. data := new(eta_trial.GetMobileCountResp)
  432. data.Count = mobileCount
  433. br.Ret = 200
  434. br.Success = true
  435. br.Msg = "操作成功"
  436. br.Data = data
  437. }