user.go 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238
  1. package gn
  2. import (
  3. "eta_gn/eta_bridge/global"
  4. "eta_gn/eta_bridge/models/eta"
  5. "eta_gn/eta_bridge/models/gn"
  6. "eta_gn/eta_bridge/utils"
  7. "fmt"
  8. "time"
  9. )
  10. func AddAccount(userReq gn.UserEntity) (errMsg string, err error) {
  11. adminName := *userReq.UserId
  12. userInfo, e := eta.GetSysUserByAdminName(adminName)
  13. if e != nil && !utils.IsErrNoRow(e) {
  14. errMsg = "用户不存在"
  15. err = fmt.Errorf("获取用户是否存在失败, %v", e)
  16. return
  17. }
  18. if userInfo != nil && userInfo.AdminId > 0 {
  19. if e = UpdateUser(userInfo, userReq); e != nil {
  20. errMsg = "操作失败"
  21. err = fmt.Errorf("更新用户数据失败, %v", e)
  22. return
  23. }
  24. return
  25. }
  26. newUser := new(eta.Admin)
  27. newUser.AdminName = adminName
  28. newUser.RealName = fmt.Sprint(*userReq.LastName, *userReq.FirstName)
  29. newUser.Password = utils.MD5(*userReq.Password)
  30. statsMap := map[string]int{gn.UserStatusActive: 1, gn.UserStatusDisable: 0}
  31. newUser.Enabled = statsMap[*userReq.UserStatus]
  32. newUser.Email = *userReq.Mail
  33. newUser.Mobile = *userReq.Mobile
  34. newUser.Position = *userReq.TitleName
  35. departmentId, groupId, departmentName, groupName, e := GetDepartmentGroupIdByMdmCode(*userReq.DepartmentNum)
  36. if e != nil {
  37. errMsg = "操作失败"
  38. err = fmt.Errorf("根据MDM编码获取ETA部门失败, %v", e)
  39. return
  40. }
  41. newUser.DepartmentId = departmentId
  42. newUser.DepartmentName = departmentName
  43. newUser.GroupId = groupId
  44. newUser.GroupName = groupName
  45. newUser.CreatedTime = time.Now()
  46. newUser.LastUpdatedTime = time.Now()
  47. newUser.OutID = *userReq.EmpNumber // 这里用工号
  48. if global.CONFIG.Gn.DefaultRoleId > 0 {
  49. roleInfo, tmpErr := eta.GetSysRoleById(global.CONFIG.Gn.DefaultRoleId)
  50. if tmpErr == nil {
  51. newUser.RoleId = roleInfo.RoleId
  52. newUser.RoleName = roleInfo.RoleName
  53. newUser.RoleTypeCode = roleInfo.RoleTypeCode
  54. }
  55. }
  56. if e = newUser.Create(); e != nil {
  57. errMsg = "操作失败"
  58. err = fmt.Errorf("新增用户失败, %v", e)
  59. return
  60. }
  61. return
  62. }
  63. func UpdateUser(originUser *eta.Admin, userReq gn.UserEntity) (err error) {
  64. if originUser == nil {
  65. err = fmt.Errorf("用户信息有误")
  66. return
  67. }
  68. updateCols := make([]string, 0)
  69. if userReq.Password != nil {
  70. originUser.Password = utils.MD5(*userReq.Password)
  71. updateCols = append(updateCols, "Password")
  72. }
  73. if userReq.DepartmentNum != nil {
  74. departmentId, groupId, departmentName, groupName, e := GetDepartmentGroupIdByMdmCode(*userReq.DepartmentNum)
  75. if e != nil {
  76. err = fmt.Errorf("根据MDM编码获取ETA部门失败, %v", e)
  77. return
  78. }
  79. originUser.DepartmentId = departmentId
  80. originUser.DepartmentName = departmentName
  81. originUser.GroupId = groupId
  82. originUser.GroupName = groupName
  83. updateCols = append(updateCols, "DepartmentId", "DepartmentName", "GroupId", "GroupName")
  84. }
  85. if userReq.FirstName != nil && userReq.LastName != nil {
  86. originUser.RealName = fmt.Sprint(*userReq.LastName, *userReq.FirstName)
  87. updateCols = append(updateCols, "RealName")
  88. }
  89. if userReq.UserStatus != nil {
  90. statsMap := map[string]int{gn.UserStatusActive: 1, gn.UserStatusDisable: 0}
  91. originUser.Enabled = statsMap[*userReq.UserStatus]
  92. updateCols = append(updateCols, "Enabled")
  93. }
  94. if userReq.Mail != nil {
  95. originUser.Email = *userReq.Mail
  96. updateCols = append(updateCols, "Email")
  97. }
  98. if userReq.Mobile != nil {
  99. originUser.Mobile = *userReq.Mobile
  100. updateCols = append(updateCols, "Mobile")
  101. }
  102. if userReq.TitleName != nil {
  103. originUser.Position = *userReq.TitleName
  104. updateCols = append(updateCols, "Position")
  105. }
  106. originUser.LastUpdatedTime = time.Now()
  107. updateCols = append(updateCols, "LastUpdatedTime")
  108. if e := originUser.Update(updateCols); e != nil {
  109. err = fmt.Errorf("更新用户数据失败, %v", e)
  110. return
  111. }
  112. return
  113. }
  114. func ModifyAccount(userReq gn.UserEntity) (errMsg string, err error) {
  115. adminName := *userReq.UserId
  116. userInfo, e := eta.GetSysUserByAdminName(adminName)
  117. if e != nil {
  118. if utils.IsErrNoRow(e) {
  119. errMsg = "用户不存在"
  120. err = fmt.Errorf("用户不存在")
  121. return
  122. }
  123. errMsg = "操作失败"
  124. err = fmt.Errorf("获取用户是否存在失败, %v", e)
  125. return
  126. }
  127. if e = UpdateUser(userInfo, userReq); e != nil {
  128. errMsg = "操作失败"
  129. err = fmt.Errorf("更新用户数据失败, %v", e)
  130. return
  131. }
  132. return
  133. }
  134. func DeleteAccount(userId string) (errMsg string, err error) {
  135. _, e := eta.GetSysUserByAdminName(userId)
  136. if e != nil {
  137. if utils.IsErrNoRow(e) {
  138. return
  139. }
  140. errMsg = "操作失败"
  141. err = fmt.Errorf("获取用户是否存在失败, %v", e)
  142. return
  143. }
  144. if e = eta.DeleteSysUserByName(userId); e != nil {
  145. errMsg = "操作失败"
  146. err = fmt.Errorf("删除用户失败, %v", e)
  147. return
  148. }
  149. return
  150. }
  151. func SuspendAccount(userId string) (errMsg string, err error) {
  152. userInfo, e := eta.GetSysUserByAdminName(userId)
  153. if e != nil {
  154. if utils.IsErrNoRow(e) {
  155. errMsg = "用户不存在"
  156. err = fmt.Errorf("用户不存在")
  157. return
  158. }
  159. errMsg = "操作失败"
  160. err = fmt.Errorf("获取用户是否存在失败, %v", e)
  161. return
  162. }
  163. userInfo.Enabled = 0
  164. userInfo.LastUpdatedTime = time.Now()
  165. updateCols := []string{"Enabled", "LastUpdatedTime"}
  166. if e := userInfo.Update(updateCols); e != nil {
  167. errMsg = "操作失败"
  168. err = fmt.Errorf("禁用用户失败, %v", e)
  169. return
  170. }
  171. return
  172. }
  173. func RestoreAccount(userId string) (errMsg string, err error) {
  174. userInfo, e := eta.GetSysUserByAdminName(userId)
  175. if e != nil {
  176. if utils.IsErrNoRow(e) {
  177. errMsg = "用户不存在"
  178. err = fmt.Errorf("用户不存在")
  179. return
  180. }
  181. errMsg = "操作失败"
  182. err = fmt.Errorf("获取用户是否存在失败, %v", e)
  183. return
  184. }
  185. userInfo.Enabled = 1
  186. userInfo.LastUpdatedTime = time.Now()
  187. updateCols := []string{"Enabled", "LastUpdatedTime"}
  188. if e := userInfo.Update(updateCols); e != nil {
  189. errMsg = "操作失败"
  190. err = fmt.Errorf("启用用户失败, %v", e)
  191. return
  192. }
  193. return
  194. }
  195. func ChangePassword(userId, newPassword string) (errMsg string, err error) {
  196. userInfo, e := eta.GetSysUserByAdminName(userId)
  197. if e != nil {
  198. if utils.IsErrNoRow(e) {
  199. errMsg = "用户不存在"
  200. err = fmt.Errorf("用户不存在")
  201. return
  202. }
  203. errMsg = "操作失败"
  204. err = fmt.Errorf("获取用户是否存在失败, %v", e)
  205. return
  206. }
  207. userInfo.Password = utils.MD5(newPassword)
  208. userInfo.LastUpdatedTime = time.Now()
  209. userInfo.LastUpdatedPasswordTime = time.Now()
  210. updateCols := []string{"Password", "LastUpdatedTime", "LastUpdatedPasswordTime"}
  211. if e := userInfo.Update(updateCols); e != nil {
  212. errMsg = "操作失败"
  213. err = fmt.Errorf("用户密码修改失败, %v", e)
  214. return
  215. }
  216. return
  217. }