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 }