123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238 |
- package gn
- import (
- "eta_gn/eta_bridge/global"
- "eta_gn/eta_bridge/models/eta"
- "eta_gn/eta_bridge/models/gn"
- "eta_gn/eta_bridge/utils"
- "fmt"
- "time"
- )
- func AddAccount(userReq gn.UserEntity) (errMsg string, err error) {
- adminName := *userReq.UserId
- userInfo, e := eta.GetSysUserByAdminName(adminName)
- if e != nil && !utils.IsErrNoRow(e) {
- errMsg = "用户不存在"
- err = fmt.Errorf("获取用户是否存在失败, %v", e)
- return
- }
- if userInfo != nil && userInfo.AdminId > 0 {
- if e = UpdateUser(userInfo, userReq); e != nil {
- errMsg = "操作失败"
- err = fmt.Errorf("更新用户数据失败, %v", e)
- return
- }
- return
- }
- newUser := new(eta.Admin)
- newUser.AdminName = adminName
- newUser.RealName = fmt.Sprint(*userReq.LastName, *userReq.FirstName)
- newUser.Password = utils.MD5(*userReq.Password)
- statsMap := map[string]int{gn.UserStatusActive: 1, gn.UserStatusDisable: 0}
- newUser.Enabled = statsMap[*userReq.UserStatus]
- newUser.Email = *userReq.Mail
- newUser.Mobile = *userReq.Mobile
- newUser.Position = *userReq.TitleName
- departmentId, groupId, departmentName, groupName, e := GetDepartmentGroupIdByMdmCode(*userReq.DepartmentNum)
- if e != nil {
- errMsg = "操作失败"
- err = fmt.Errorf("根据MDM编码获取ETA部门失败, %v", e)
- return
- }
- newUser.DepartmentId = departmentId
- newUser.DepartmentName = departmentName
- newUser.GroupId = groupId
- newUser.GroupName = groupName
- newUser.CreatedTime = time.Now()
- newUser.LastUpdatedTime = time.Now()
- newUser.OutID = *userReq.EmpNumber // 这里用工号
- if global.CONFIG.Gn.DefaultRoleId > 0 {
- roleInfo, tmpErr := eta.GetSysRoleById(global.CONFIG.Gn.DefaultRoleId)
- if tmpErr == nil {
- newUser.RoleId = roleInfo.RoleId
- newUser.RoleName = roleInfo.RoleName
- newUser.RoleTypeCode = roleInfo.RoleTypeCode
- }
- }
- if e = newUser.Create(); e != nil {
- errMsg = "操作失败"
- err = fmt.Errorf("新增用户失败, %v", e)
- return
- }
- return
- }
- func UpdateUser(originUser *eta.Admin, userReq gn.UserEntity) (err error) {
- if originUser == nil {
- err = fmt.Errorf("用户信息有误")
- return
- }
- updateCols := make([]string, 0)
- if userReq.Password != nil {
- originUser.Password = utils.MD5(*userReq.Password)
- updateCols = append(updateCols, "Password")
- }
- if userReq.DepartmentNum != nil {
- departmentId, groupId, departmentName, groupName, e := GetDepartmentGroupIdByMdmCode(*userReq.DepartmentNum)
- if e != nil {
- err = fmt.Errorf("根据MDM编码获取ETA部门失败, %v", e)
- return
- }
- originUser.DepartmentId = departmentId
- originUser.DepartmentName = departmentName
- originUser.GroupId = groupId
- originUser.GroupName = groupName
- updateCols = append(updateCols, "DepartmentId", "DepartmentName", "GroupId", "GroupName")
- }
- if userReq.FirstName != nil && userReq.LastName != nil {
- originUser.RealName = fmt.Sprint(*userReq.LastName, *userReq.FirstName)
- updateCols = append(updateCols, "RealName")
- }
- if userReq.UserStatus != nil {
- statsMap := map[string]int{gn.UserStatusActive: 1, gn.UserStatusDisable: 0}
- originUser.Enabled = statsMap[*userReq.UserStatus]
- updateCols = append(updateCols, "Enabled")
- }
- if userReq.Mail != nil {
- originUser.Email = *userReq.Mail
- updateCols = append(updateCols, "Email")
- }
- if userReq.Mobile != nil {
- originUser.Mobile = *userReq.Mobile
- updateCols = append(updateCols, "Mobile")
- }
- if userReq.TitleName != nil {
- originUser.Position = *userReq.TitleName
- updateCols = append(updateCols, "Position")
- }
- originUser.LastUpdatedTime = time.Now()
- updateCols = append(updateCols, "LastUpdatedTime")
- if e := originUser.Update(updateCols); e != nil {
- err = fmt.Errorf("更新用户数据失败, %v", e)
- return
- }
- return
- }
- func ModifyAccount(userReq gn.UserEntity) (errMsg string, err error) {
- adminName := *userReq.UserId
- userInfo, e := eta.GetSysUserByAdminName(adminName)
- if e != nil {
- if utils.IsErrNoRow(e) {
- errMsg = "用户不存在"
- err = fmt.Errorf("用户不存在")
- return
- }
- errMsg = "操作失败"
- err = fmt.Errorf("获取用户是否存在失败, %v", e)
- return
- }
- if e = UpdateUser(userInfo, userReq); e != nil {
- errMsg = "操作失败"
- err = fmt.Errorf("更新用户数据失败, %v", e)
- return
- }
- return
- }
- func DeleteAccount(userId string) (errMsg string, err error) {
- _, e := eta.GetSysUserByAdminName(userId)
- if e != nil {
- if utils.IsErrNoRow(e) {
- return
- }
- errMsg = "操作失败"
- err = fmt.Errorf("获取用户是否存在失败, %v", e)
- return
- }
- if e = eta.DeleteSysUserByName(userId); e != nil {
- errMsg = "操作失败"
- err = fmt.Errorf("删除用户失败, %v", e)
- return
- }
- return
- }
- func SuspendAccount(userId string) (errMsg string, err error) {
- userInfo, e := eta.GetSysUserByAdminName(userId)
- if e != nil {
- if utils.IsErrNoRow(e) {
- errMsg = "用户不存在"
- err = fmt.Errorf("用户不存在")
- return
- }
- errMsg = "操作失败"
- err = fmt.Errorf("获取用户是否存在失败, %v", e)
- return
- }
- userInfo.Enabled = 0
- userInfo.LastUpdatedTime = time.Now()
- updateCols := []string{"Enabled", "LastUpdatedTime"}
- if e := userInfo.Update(updateCols); e != nil {
- errMsg = "操作失败"
- err = fmt.Errorf("禁用用户失败, %v", e)
- return
- }
- return
- }
- func RestoreAccount(userId string) (errMsg string, err error) {
- userInfo, e := eta.GetSysUserByAdminName(userId)
- if e != nil {
- if utils.IsErrNoRow(e) {
- errMsg = "用户不存在"
- err = fmt.Errorf("用户不存在")
- return
- }
- errMsg = "操作失败"
- err = fmt.Errorf("获取用户是否存在失败, %v", e)
- return
- }
- userInfo.Enabled = 1
- userInfo.LastUpdatedTime = time.Now()
- updateCols := []string{"Enabled", "LastUpdatedTime"}
- if e := userInfo.Update(updateCols); e != nil {
- errMsg = "操作失败"
- err = fmt.Errorf("启用用户失败, %v", e)
- return
- }
- return
- }
- func ChangePassword(userId, newPassword string) (errMsg string, err error) {
- userInfo, e := eta.GetSysUserByAdminName(userId)
- if e != nil {
- if utils.IsErrNoRow(e) {
- errMsg = "用户不存在"
- err = fmt.Errorf("用户不存在")
- return
- }
- errMsg = "操作失败"
- err = fmt.Errorf("获取用户是否存在失败, %v", e)
- return
- }
- userInfo.Password = utils.MD5(newPassword)
- userInfo.LastUpdatedTime = time.Now()
- userInfo.LastUpdatedPasswordTime = time.Now()
- updateCols := []string{"Password", "LastUpdatedTime", "LastUpdatedPasswordTime"}
- if e := userInfo.Update(updateCols); e != nil {
- errMsg = "操作失败"
- err = fmt.Errorf("用户密码修改失败, %v", e)
- return
- }
- return
- }
|