|
@@ -526,6 +526,7 @@ func (this *SysAdminController) Add() {
|
|
|
br.Msg = "新增成功"
|
|
|
}
|
|
|
|
|
|
+// Edit
|
|
|
// @Title 编辑系统用户
|
|
|
// @Description 编辑系统用户接口
|
|
|
// @Param request body system.SysuserEditReq true "type json string"
|
|
@@ -552,13 +553,17 @@ func (this *SysAdminController) Edit() {
|
|
|
}
|
|
|
//根据用户id获取用户信息
|
|
|
adminInfo, err := system.GetSysAdminById(req.AdminId)
|
|
|
- if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
+ if err != nil {
|
|
|
+ if err.Error() == utils.ErrNoRow() {
|
|
|
+ br.Msg = "用户已被删除, 请刷新页面"
|
|
|
+ return
|
|
|
+ }
|
|
|
br.Msg = "获取数据失败"
|
|
|
br.ErrMsg = "获取系统用户数据失败,Err:" + err.Error() + ";AdminId:" + fmt.Sprint(req.AdminId)
|
|
|
return
|
|
|
}
|
|
|
|
|
|
- //根据用户登录用户名获取用户信息
|
|
|
+ // 根据用户登录用户名获取用户信息
|
|
|
item, err := system.GetSysAdminByName(req.AdminName)
|
|
|
if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
br.Msg = "获取数据失败"
|
|
@@ -569,6 +574,8 @@ func (this *SysAdminController) Edit() {
|
|
|
br.Msg = "账号名称已存在,请重新输入"
|
|
|
return
|
|
|
}
|
|
|
+
|
|
|
+ // 手机号
|
|
|
if item != nil {
|
|
|
if req.Mobile != "" && req.Mobile != item.Mobile {
|
|
|
mobileCount, err := system.GetSysAdminCountByMobile(req.Mobile, req.AdminId)
|
|
@@ -597,7 +604,8 @@ func (this *SysAdminController) Edit() {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- var roleName, departmentName, groupName, teamName string
|
|
|
+ // 角色
|
|
|
+ var roleName string
|
|
|
|
|
|
roleItem, err := system.GetSysRoleById(req.RoleId)
|
|
|
if err != nil {
|
|
@@ -613,74 +621,6 @@ func (this *SysAdminController) Edit() {
|
|
|
if roleItem != nil {
|
|
|
roleName = roleItem.RoleName
|
|
|
}
|
|
|
- if req.DepartmentId > 0 {
|
|
|
- departmentItem, err := system.GetSysDepartmentById(req.DepartmentId)
|
|
|
- if err != nil {
|
|
|
- br.Msg = "获取数据失败"
|
|
|
- br.ErrMsg = "获取部门数据失败,Err:" + err.Error()
|
|
|
- return
|
|
|
- }
|
|
|
- if departmentItem != nil {
|
|
|
- departmentName = departmentItem.DepartmentName
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- if req.GroupId > 0 {
|
|
|
- groupItem, err := system.GetSysGroupById(req.GroupId)
|
|
|
- if err != nil {
|
|
|
- br.Msg = "获取数据失败"
|
|
|
- br.ErrMsg = "获取分组数据失败,Err:" + err.Error()
|
|
|
- return
|
|
|
- }
|
|
|
- if groupItem != nil {
|
|
|
- groupName = groupItem.GroupName
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- if req.TeamId > 0 {
|
|
|
- teamItem, err := system.GetSysGroupById(req.TeamId)
|
|
|
- if err != nil {
|
|
|
- br.Msg = "获取数据失败"
|
|
|
- br.ErrMsg = "获取小组数据失败,Err:" + err.Error()
|
|
|
- return
|
|
|
- }
|
|
|
- if teamItem != nil {
|
|
|
- teamName = teamItem.GroupName
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- pwdByte, err := base64.StdEncoding.DecodeString(req.Password)
|
|
|
- if err != nil {
|
|
|
- br.Msg = "解析数据失败"
|
|
|
- br.ErrMsg = "解析数据失败,Err:" + err.Error()
|
|
|
- return
|
|
|
- }
|
|
|
- adminItem, err := system.GetSysAdminById(req.AdminId)
|
|
|
- if err != nil {
|
|
|
- br.Msg = "获取数据失败"
|
|
|
- br.ErrMsg = "获取系统用户数据失败,Err:" + err.Error()
|
|
|
- return
|
|
|
- }
|
|
|
- var newPwd string
|
|
|
- pwdStr := string(pwdByte)
|
|
|
- if adminInfo.Password != pwdStr {
|
|
|
- pwdStr = strings.ToLower(pwdStr)
|
|
|
- if pwdStr == "" {
|
|
|
- if adminItem == nil {
|
|
|
- br.Msg = "系统用户信息不存在"
|
|
|
- return
|
|
|
- }
|
|
|
- newPwd = adminItem.Password
|
|
|
- } else {
|
|
|
- if !utils.CheckPwd(pwdStr) {
|
|
|
- br.Msg = "密码格式错误,请重新输入"
|
|
|
- return
|
|
|
- }
|
|
|
- newPwd = utils.MD5(pwdStr)
|
|
|
- }
|
|
|
- } else {
|
|
|
- newPwd = adminItem.Password
|
|
|
- }
|
|
|
|
|
|
// 员工工号
|
|
|
req.EmployeeId = strings.TrimSpace(req.EmployeeId)
|
|
@@ -702,31 +642,7 @@ func (this *SysAdminController) Edit() {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- admin := new(system.Admin)
|
|
|
- admin.AdminId = req.AdminId
|
|
|
- admin.AdminName = req.AdminName
|
|
|
- admin.RealName = req.RealName
|
|
|
- admin.Password = newPwd
|
|
|
- admin.LastUpdatedPasswordTime = time.Now().Format(utils.FormatDateTime)
|
|
|
- admin.Enabled = 1
|
|
|
- admin.LastLoginTime = time.Now().Format(utils.FormatDateTime)
|
|
|
- admin.CreatedTime = time.Now()
|
|
|
- admin.LastUpdatedTime = time.Now().Format(utils.FormatDateTime)
|
|
|
- admin.Mobile = req.Mobile
|
|
|
- admin.RoleType = 0
|
|
|
- admin.RoleId = req.RoleId
|
|
|
- admin.RoleName = roleName
|
|
|
- admin.DepartmentId = req.DepartmentId
|
|
|
- admin.DepartmentName = departmentName
|
|
|
- admin.AdminAvatar = req.AdminAvatar
|
|
|
- if req.TeamId <= 0 {
|
|
|
- admin.GroupId = req.GroupId
|
|
|
- admin.GroupName = groupName
|
|
|
- } else {
|
|
|
- admin.GroupId = req.TeamId
|
|
|
- admin.GroupName = teamName
|
|
|
- }
|
|
|
- admin.Enabled = req.Enabled
|
|
|
+ // 管理权限
|
|
|
var authority int
|
|
|
if roleItem.RoleTypeCode == utils.ROLE_TYPE_CODE_ADMIN {
|
|
|
authority = 3
|
|
@@ -743,23 +659,33 @@ func (this *SysAdminController) Edit() {
|
|
|
authority = 0
|
|
|
}
|
|
|
}
|
|
|
- admin.Authority = authority
|
|
|
- admin.Position = req.Position
|
|
|
- admin.RoleTypeCode = roleItem.RoleTypeCode
|
|
|
- admin.Province = req.Province
|
|
|
- admin.ProvinceCode = req.ProvinceCode
|
|
|
- admin.City = req.City
|
|
|
- admin.CityCode = req.CityCode
|
|
|
- admin.EmployeeId = req.EmployeeId
|
|
|
- err = system.EditAdmin(admin)
|
|
|
-
|
|
|
- //用户被禁用的情况下,需要将他对应的token给过期
|
|
|
- //if adminItem.Enabled == 1 && req.Enabled == 0 {
|
|
|
- // _ = system.ExpiredSysSessionByAdminId(adminItem.AdminId)
|
|
|
- //}
|
|
|
|
|
|
+ adminInfo.AdminName = req.AdminName
|
|
|
+ adminInfo.RealName = req.RealName
|
|
|
+ adminInfo.LastUpdatedTime = time.Now().Format(utils.FormatDateTime)
|
|
|
+ adminInfo.Mobile = req.Mobile
|
|
|
+ adminInfo.RoleId = req.RoleId
|
|
|
+ adminInfo.RoleName = roleName
|
|
|
+ adminInfo.Enabled = req.Enabled
|
|
|
+ adminInfo.Authority = authority
|
|
|
+ adminInfo.Position = req.Position
|
|
|
+ adminInfo.RoleTypeCode = roleItem.RoleTypeCode
|
|
|
+ adminInfo.Province = req.Province
|
|
|
+ adminInfo.ProvinceCode = req.ProvinceCode
|
|
|
+ adminInfo.City = req.City
|
|
|
+ adminInfo.CityCode = req.CityCode
|
|
|
+ adminInfo.EmployeeId = req.EmployeeId
|
|
|
+ cols := []string{
|
|
|
+ "AdminName", "RealName", "LastUpdatedTime", "Mobile", "RoleId", "RoleName", "Enabled", "Authority",
|
|
|
+ "Position", "RoleTypeCode", "Province", "ProvinceCode", "City", "CityCode", "EmployeeId",
|
|
|
+ }
|
|
|
+ if e := adminInfo.Update(cols); e != nil {
|
|
|
+ br.Msg = "编辑失败"
|
|
|
+ br.ErrMsg = "更新用户信息失败, Err:" + e.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
// 用户登出
|
|
|
- logOutSystemUser(adminItem.AdminId)
|
|
|
+ logOutSystemUser(adminInfo.AdminId)
|
|
|
|
|
|
// 研究方向分组
|
|
|
if e := services.UpdateResearcherTagGroup(req.AdminId, req.ResearchGroupIds); e != nil {
|
|
@@ -768,47 +694,6 @@ func (this *SysAdminController) Edit() {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
- {
|
|
|
- sysUserItem, err := system.GetSysAdminById(req.AdminId)
|
|
|
- fmt.Println("sysUserItem:", sysUserItem)
|
|
|
- fmt.Println("req:", req)
|
|
|
- if err != nil {
|
|
|
- br.Msg = "获取数据失败"
|
|
|
- br.ErrMsg = "获取分组数据失败,Err:" + err.Error()
|
|
|
- return
|
|
|
- }
|
|
|
- if req.TeamId > 0 {
|
|
|
- //修改客户关联的分组
|
|
|
- if req.TeamId != adminItem.GroupId {
|
|
|
- err = company.ModifyCompanyGroupId(req.AdminId, req.TeamId)
|
|
|
- if err != nil {
|
|
|
- br.Msg = "编辑失败"
|
|
|
- br.ErrMsg = "ModifyCompanyGroupId,Err:" + err.Error()
|
|
|
- return
|
|
|
- }
|
|
|
- }
|
|
|
- } else {
|
|
|
- if req.GroupId != adminItem.GroupId {
|
|
|
- //修改客户关联的分组
|
|
|
- err = company.ModifyCompanyGroupId(req.AdminId, req.GroupId)
|
|
|
- if err != nil {
|
|
|
- br.Msg = "编辑失败"
|
|
|
- br.ErrMsg = "ModifyCompanyGroupId,Err:" + err.Error()
|
|
|
- return
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- if req.DepartmentId != adminItem.DepartmentId {
|
|
|
- err = company.ModifyCompanyDepartmentId(req.AdminId, req.DepartmentId)
|
|
|
- if err != nil {
|
|
|
- br.Msg = "编辑失败"
|
|
|
- br.ErrMsg = "ModifyCompanyDepartmentId,Err:" + err.Error()
|
|
|
- return
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
// 清楚系统用户列表缓存key
|
|
|
utils.Rc.Delete(utils.CACHE_KEY_ADMIN)
|
|
|
utils.Rc.Delete(utils.CACHE_KEY_ADMIN_ID)
|
|
@@ -1035,3 +920,211 @@ func logOutSystemUser(adminId int) {
|
|
|
// 退出随手办公小程序
|
|
|
_ = system.UnBindAdminRecordByUserId(adminId)
|
|
|
}
|
|
|
+
|
|
|
+// Move
|
|
|
+// @Title 移动分组
|
|
|
+// @Description 移动分组
|
|
|
+// @Param request body system.SysUserMoveReq true "type json string"
|
|
|
+// @Success 200 编辑成功
|
|
|
+// @router /sysuser/move [post]
|
|
|
+func (this *SysAdminController) Move() {
|
|
|
+ br := new(models.BaseResponse).Init()
|
|
|
+ defer func() {
|
|
|
+ this.Data["json"] = br
|
|
|
+ this.ServeJSON()
|
|
|
+ }()
|
|
|
+ var req system.SysUserMoveReq
|
|
|
+ err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "参数解析异常!"
|
|
|
+ br.ErrMsg = "参数解析失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if req.AdminId <= 0 {
|
|
|
+ br.Msg = "参数有误"
|
|
|
+ br.ErrMsg = "参数有误, AdminId"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if req.DepartmentId <= 0 {
|
|
|
+ br.Msg = "请选择部门"
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ adminInfo, err := system.GetSysAdminById(req.AdminId)
|
|
|
+ if err != nil && err.Error() != utils.ErrNoRow() {
|
|
|
+ br.Msg = "获取数据失败"
|
|
|
+ br.ErrMsg = "获取系统用户数据失败,Err:" + err.Error() + ";AdminId:" + fmt.Sprint(req.AdminId)
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ var departmentName, groupName, teamName string
|
|
|
+ if req.DepartmentId > 0 {
|
|
|
+ departmentItem, err := system.GetSysDepartmentById(req.DepartmentId)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取数据失败"
|
|
|
+ br.ErrMsg = "获取部门数据失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if departmentItem != nil {
|
|
|
+ departmentName = departmentItem.DepartmentName
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if req.GroupId > 0 {
|
|
|
+ groupItem, err := system.GetSysGroupById(req.GroupId)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取数据失败"
|
|
|
+ br.ErrMsg = "获取分组数据失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if groupItem != nil {
|
|
|
+ groupName = groupItem.GroupName
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if req.TeamId > 0 {
|
|
|
+ teamItem, err := system.GetSysGroupById(req.TeamId)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "获取数据失败"
|
|
|
+ br.ErrMsg = "获取小组数据失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if teamItem != nil {
|
|
|
+ teamName = teamItem.GroupName
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ adminInfo.DepartmentId = req.DepartmentId
|
|
|
+ adminInfo.DepartmentName = departmentName
|
|
|
+ if req.TeamId <= 0 {
|
|
|
+ adminInfo.GroupId = req.GroupId
|
|
|
+ adminInfo.GroupName = groupName
|
|
|
+ } else {
|
|
|
+ adminInfo.GroupId = req.TeamId
|
|
|
+ adminInfo.GroupName = teamName
|
|
|
+ }
|
|
|
+ adminInfo.LastUpdatedTime = time.Now().Format(utils.FormatDateTime)
|
|
|
+ if e := adminInfo.Update([]string{"DepartmentId", "DepartmentName", "GroupId", "GroupName", "LastUpdatedTime"}); e != nil {
|
|
|
+ br.Msg = "操作失败"
|
|
|
+ br.ErrMsg = "更新系统用户分组失败, Err: " + e.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ // 修改客户关联的分组
|
|
|
+ {
|
|
|
+ if req.TeamId > 0 {
|
|
|
+ if req.TeamId != adminInfo.GroupId {
|
|
|
+ err = company.ModifyCompanyGroupId(req.AdminId, req.TeamId)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "编辑失败"
|
|
|
+ br.ErrMsg = "ModifyCompanyGroupId,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ if req.GroupId != adminInfo.GroupId {
|
|
|
+ err = company.ModifyCompanyGroupId(req.AdminId, req.GroupId)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "编辑失败"
|
|
|
+ br.ErrMsg = "ModifyCompanyGroupId,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ if req.DepartmentId != adminInfo.DepartmentId {
|
|
|
+ err = company.ModifyCompanyDepartmentId(req.AdminId, req.DepartmentId)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "编辑失败"
|
|
|
+ br.ErrMsg = "ModifyCompanyDepartmentId,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ // 清除系统用户列表缓存key
|
|
|
+ _ = utils.Rc.Delete(utils.CACHE_KEY_ADMIN)
|
|
|
+ _ = utils.Rc.Delete(utils.CACHE_KEY_ADMIN_ID)
|
|
|
+
|
|
|
+ br.Ret = 200
|
|
|
+ br.Success = true
|
|
|
+ br.IsAddLog = true
|
|
|
+ br.Msg = "操作成功"
|
|
|
+}
|
|
|
+
|
|
|
+// ResetPass
|
|
|
+// @Title 重置密码
|
|
|
+// @Description 重置密码
|
|
|
+// @Param request body system.SysUserResetPassReq true "type json string"
|
|
|
+// @Success 200 编辑成功
|
|
|
+// @router /sysuser/reset_pass [post]
|
|
|
+func (this *SysAdminController) ResetPass() {
|
|
|
+ br := new(models.BaseResponse).Init()
|
|
|
+ defer func() {
|
|
|
+ this.Data["json"] = br
|
|
|
+ this.ServeJSON()
|
|
|
+ }()
|
|
|
+ var req system.SysUserResetPassReq
|
|
|
+ err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "参数解析异常!"
|
|
|
+ br.ErrMsg = "参数解析失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if req.AdminId <= 0 {
|
|
|
+ br.Msg = "参数有误"
|
|
|
+ br.ErrMsg = "参数有误, AdminId"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ req.Password = strings.TrimSpace(req.Password)
|
|
|
+ if req.Password == "" {
|
|
|
+ br.Msg = "新密码不能为空"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ req.RePassword = strings.TrimSpace(req.RePassword)
|
|
|
+ if req.RePassword == "" {
|
|
|
+ br.Msg = "确认密码不能为空"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if req.Password != req.RePassword {
|
|
|
+ br.Msg = "两次输入密码不一致,请重新填写"
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ adminInfo, err := system.GetSysAdminById(req.AdminId)
|
|
|
+ if err != nil {
|
|
|
+ if err.Error() == utils.ErrNoRow() {
|
|
|
+ br.Msg = "用户已被删除, 请刷新页面"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ br.Msg = "获取数据失败"
|
|
|
+ br.ErrMsg = "获取系统用户数据失败,Err:" + err.Error() + ";AdminId:" + fmt.Sprint(req.AdminId)
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ b, err := base64.StdEncoding.DecodeString(req.Password)
|
|
|
+ if err != nil {
|
|
|
+ br.Msg = "解析数据失败"
|
|
|
+ br.ErrMsg = "解析数据失败,Err:" + err.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ pwd := string(b)
|
|
|
+ pwd = strings.ToLower(pwd)
|
|
|
+ pwd = utils.MD5(pwd)
|
|
|
+
|
|
|
+ adminInfo.Password = pwd
|
|
|
+ adminInfo.LastUpdatedPasswordTime = time.Now().Format(utils.FormatDateTime)
|
|
|
+ adminInfo.LastUpdatedTime = time.Now().Format(utils.FormatDateTime)
|
|
|
+ if e := adminInfo.Update([]string{"Password", "LastUpdatedPasswordTime", "LastUpdatedTime"}); e != nil {
|
|
|
+ br.Msg = "操作失败"
|
|
|
+ br.ErrMsg = "更新系统用户分组失败, Err: " + e.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ // 清除系统用户列表缓存key
|
|
|
+ _ = utils.Rc.Delete(utils.CACHE_KEY_ADMIN)
|
|
|
+ _ = utils.Rc.Delete(utils.CACHE_KEY_ADMIN_ID)
|
|
|
+
|
|
|
+ br.Ret = 200
|
|
|
+ br.Success = true
|
|
|
+ br.IsAddLog = true
|
|
|
+ br.Msg = "重置密码成功"
|
|
|
+}
|