|
@@ -4,20 +4,18 @@ import (
|
|
|
"encoding/json"
|
|
|
"eta/eta_api/controllers"
|
|
|
"eta/eta_api/models"
|
|
|
+ "eta/eta_api/models/company"
|
|
|
"eta/eta_api/models/system"
|
|
|
"eta/eta_api/models/system/request"
|
|
|
"eta/eta_api/models/system/response"
|
|
|
"eta/eta_api/utils"
|
|
|
+ "fmt"
|
|
|
"github.com/rdlucklib/rdluck_tools/paging"
|
|
|
"strconv"
|
|
|
"strings"
|
|
|
"time"
|
|
|
)
|
|
|
|
|
|
-var EnglishAuthRoles = []string{
|
|
|
- system.EnglishAuthCompanyRole, system.EnglishAuthReportRole, system.EnglishAuthPPTRole, system.EnglishAuthDayNewRole,
|
|
|
-}
|
|
|
-
|
|
|
// EnglishAuthController 英文销售权限
|
|
|
type EnglishAuthController struct {
|
|
|
controllers.BaseAuthController
|
|
@@ -31,6 +29,9 @@ type EnglishAuthController struct {
|
|
|
func (this *EnglishAuthController) List() {
|
|
|
br := new(models.BaseResponse).Init()
|
|
|
defer func() {
|
|
|
+ if br.ErrMsg == "" {
|
|
|
+ br.IsSendEmail = false
|
|
|
+ }
|
|
|
this.Data["json"] = br
|
|
|
this.ServeJSON()
|
|
|
}()
|
|
@@ -53,11 +54,35 @@ func (this *EnglishAuthController) List() {
|
|
|
}
|
|
|
startSize = paging.StartIndex(currentIndex, pageSize)
|
|
|
|
|
|
+ // 获取英文角色配置
|
|
|
+ confRoles := make([]company.ConfEnAuthRole, 0)
|
|
|
+ authKey := company.ConfEnAuthRoleKey
|
|
|
+ confAuth, e := company.GetConfigDetailByCode(authKey)
|
|
|
+ if e != nil {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取英文权限角色配置失败, Err: " + e.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if confAuth.ConfigValue == "" {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "英文权限角色配置为空"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if e := json.Unmarshal([]byte(confAuth.ConfigValue), &confRoles); e != nil {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "英文权限角色配置有误"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ roleCodes := make([]string, 0)
|
|
|
+ for _, v := range confRoles {
|
|
|
+ roleCodes = append(roleCodes, v.RoleCode)
|
|
|
+ }
|
|
|
+
|
|
|
// 获取权限列表
|
|
|
var cond string
|
|
|
var pars []interface{}
|
|
|
- cond += ` AND r.role_type_code IN (` + utils.GetOrmInReplace(len(EnglishAuthRoles)) + `)`
|
|
|
- pars = append(pars, EnglishAuthRoles)
|
|
|
+ cond += ` AND r.role_type_code IN (` + utils.GetOrmInReplace(len(roleCodes)) + `)`
|
|
|
+ pars = append(pars, roleCodes)
|
|
|
total, adminList, err := system.GetEnglishAuthRoleAdminList(cond, pars, startSize, pageSize)
|
|
|
if err != nil {
|
|
|
br.Msg = "获取管理账号列表失败!"
|
|
@@ -166,10 +191,12 @@ func (this *EnglishAuthController) List() {
|
|
|
func (this *EnglishAuthController) BatchAdd() {
|
|
|
br := new(models.BaseResponse).Init()
|
|
|
defer func() {
|
|
|
+ if br.ErrMsg == "" {
|
|
|
+ br.IsSendEmail = false
|
|
|
+ }
|
|
|
this.Data["json"] = br
|
|
|
this.ServeJSON()
|
|
|
}()
|
|
|
-
|
|
|
sysUser := this.SysUser
|
|
|
if sysUser == nil {
|
|
|
br.Msg = "请登录"
|
|
@@ -177,6 +204,13 @@ func (this *EnglishAuthController) BatchAdd() {
|
|
|
br.Ret = 408
|
|
|
return
|
|
|
}
|
|
|
+ if utils.BusinessCode != utils.BusinessCodeRelease {
|
|
|
+ br.Ret = 200
|
|
|
+ br.Success = true
|
|
|
+ br.Msg = "操作成功"
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
var req request.AddEnglishAuthRoleAdminReq
|
|
|
err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
|
|
|
if err != nil {
|
|
@@ -210,14 +244,38 @@ func (this *EnglishAuthController) BatchAdd() {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
- // 获取英文权限角色IDs
|
|
|
- roleIds, e := system.GetEnglishAuthRoleIds(EnglishAuthRoles)
|
|
|
+ // 获取英文角色配置
|
|
|
+ confRoles := make([]company.ConfEnAuthRole, 0)
|
|
|
+ authKey := company.ConfEnAuthRoleKey
|
|
|
+ confAuth, e := company.GetConfigDetailByCode(authKey)
|
|
|
+ if e != nil {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取英文权限角色配置失败, Err: " + e.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if confAuth.ConfigValue == "" {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "英文权限角色配置为空"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if e := json.Unmarshal([]byte(confAuth.ConfigValue), &confRoles); e != nil {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "英文权限角色配置有误"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ roleCodes := make([]string, 0)
|
|
|
+ for _, v := range confRoles {
|
|
|
+ roleCodes = append(roleCodes, v.RoleCode)
|
|
|
+ }
|
|
|
+
|
|
|
+ // 获取英文权限角色
|
|
|
+ roleItems, e := system.GetEnglishAuthRoleItems(roleCodes)
|
|
|
if e != nil {
|
|
|
br.Msg = "新增失败"
|
|
|
br.ErrMsg = "获取英文权限角色IDs失败, Err: " + e.Error()
|
|
|
return
|
|
|
}
|
|
|
- if len(roleIds) == 0 || len(roleIds) != len(EnglishAuthRoles) {
|
|
|
+ if len(roleItems) == 0 || len(roleItems) != len(roleCodes) {
|
|
|
br.Msg = "英文权限角色信息有误"
|
|
|
return
|
|
|
}
|
|
@@ -225,7 +283,7 @@ func (this *EnglishAuthController) BatchAdd() {
|
|
|
// 查询已绑定的管理员账号
|
|
|
var noBindIds []int
|
|
|
bindMap := make(map[int]bool)
|
|
|
- hasBindList, e := system.CheckEnglishAuthRoleAdminByAdminIds(adminIds, EnglishAuthRoles)
|
|
|
+ hasBindList, e := system.CheckEnglishAuthRoleAdminByAdminIds(adminIds, roleCodes)
|
|
|
if e != nil {
|
|
|
br.Msg = "新增失败"
|
|
|
br.ErrMsg = "查询已绑定英文权限的账号失败, Err:" + e.Error()
|
|
@@ -245,24 +303,50 @@ func (this *EnglishAuthController) BatchAdd() {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
+ // 获取未绑定的用户列表
|
|
|
+ unboundAdmins := make([]*system.Admin, 0)
|
|
|
+ {
|
|
|
+ cond := fmt.Sprintf(` AND admin_id IN (%s)`, utils.GetOrmInReplace(len(noBindIds)))
|
|
|
+ pars := make([]interface{}, 0)
|
|
|
+ pars = append(pars, noBindIds)
|
|
|
+ admins, e := system.GetSysAdminList(cond, pars, []string{}, "")
|
|
|
+ if e != nil {
|
|
|
+ br.Msg = "操作失败"
|
|
|
+ br.ErrMsg = "获取未绑定的用户列表失败, Err: " + e.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ unboundAdmins = admins
|
|
|
+ }
|
|
|
+
|
|
|
// 新增绑定关系
|
|
|
+ var syncRoles []system.SyncAdminEnRole
|
|
|
nowTime := time.Now().Local()
|
|
|
- newBinds := make([]*system.SysRoleAdmin, 0)
|
|
|
- for i := range noBindIds {
|
|
|
- for r := range roleIds {
|
|
|
+ newBounds := make([]*system.SysRoleAdmin, 0)
|
|
|
+ for _, a := range unboundAdmins {
|
|
|
+ var d system.SyncAdminEnRole
|
|
|
+ d.AdminName = a.AdminName
|
|
|
+ for r := range roleItems {
|
|
|
v := &system.SysRoleAdmin{
|
|
|
- AdminId: noBindIds[i],
|
|
|
- RoleId: roleIds[r],
|
|
|
+ AdminId: a.AdminId,
|
|
|
+ RoleId: roleItems[r].RoleId,
|
|
|
CreateTime: nowTime,
|
|
|
}
|
|
|
- newBinds = append(newBinds, v)
|
|
|
+ newBounds = append(newBounds, v)
|
|
|
+ d.RoleCodes = append(d.RoleCodes, roleItems[r].RoleTypeCode)
|
|
|
}
|
|
|
+ syncRoles = append(syncRoles, d)
|
|
|
}
|
|
|
- if e = system.AddRoleAdminBatch(newBinds); e != nil {
|
|
|
+ if e = system.AddRoleAdminBatch(newBounds); e != nil {
|
|
|
br.Msg = "新增失败"
|
|
|
br.ErrMsg = "新增英文权限绑定关系失败, Err:" + e.Error()
|
|
|
return
|
|
|
}
|
|
|
+
|
|
|
+ // 写入同步缓存
|
|
|
+ for _, v := range syncRoles {
|
|
|
+ _ = utils.Rc.LPush(utils.CACHE_SYNC_USER_EN_ROLE, v)
|
|
|
+ }
|
|
|
+
|
|
|
br.Ret = 200
|
|
|
br.Success = true
|
|
|
br.Msg = "操作成功"
|
|
@@ -277,6 +361,9 @@ func (this *EnglishAuthController) BatchAdd() {
|
|
|
func (this *EnglishAuthController) Detail() {
|
|
|
br := new(models.BaseResponse).Init()
|
|
|
defer func() {
|
|
|
+ if br.ErrMsg == "" {
|
|
|
+ br.IsSendEmail = false
|
|
|
+ }
|
|
|
this.Data["json"] = br
|
|
|
this.ServeJSON()
|
|
|
}()
|
|
@@ -293,8 +380,32 @@ func (this *EnglishAuthController) Detail() {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
+ // 获取英文角色配置
|
|
|
+ confRoles := make([]company.ConfEnAuthRole, 0)
|
|
|
+ authKey := company.ConfEnAuthRoleKey
|
|
|
+ confAuth, e := company.GetConfigDetailByCode(authKey)
|
|
|
+ if e != nil {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取英文权限角色配置失败, Err: " + e.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if confAuth.ConfigValue == "" {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "英文权限角色配置为空"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if e := json.Unmarshal([]byte(confAuth.ConfigValue), &confRoles); e != nil {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "英文权限角色配置有误"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ roleCodes := make([]string, 0)
|
|
|
+ for _, v := range confRoles {
|
|
|
+ roleCodes = append(roleCodes, v.RoleCode)
|
|
|
+ }
|
|
|
+
|
|
|
resp := make([]*response.EnglishAuthRoleDetailResp, 0)
|
|
|
- authList, e := system.GetAdminEnglishAuthRoleDetail(adminId, EnglishAuthRoles)
|
|
|
+ authList, e := system.GetAdminEnglishAuthRoleDetail(adminId, roleCodes)
|
|
|
if e != nil {
|
|
|
br.Msg = "获取失败"
|
|
|
br.ErrMsg = "获取管理员英文权限详情失败, Err:" + e.Error()
|
|
@@ -305,18 +416,12 @@ func (this *EnglishAuthController) Detail() {
|
|
|
authMap[authList[i].RoleTypeCode] = true
|
|
|
}
|
|
|
|
|
|
- var englishAuthRolesMap = map[string]string{
|
|
|
- system.EnglishAuthCompanyRole: "英文客户列表",
|
|
|
- system.EnglishAuthReportRole: "英文研报",
|
|
|
- system.EnglishAuthPPTRole: "英文PPT",
|
|
|
- system.EnglishAuthDayNewRole: "每日资讯",
|
|
|
- }
|
|
|
- for i, v := range englishAuthRolesMap {
|
|
|
+ for _, v := range confRoles {
|
|
|
resp = append(resp, &response.EnglishAuthRoleDetailResp{
|
|
|
AdminId: adminId,
|
|
|
- AuthName: v,
|
|
|
- RoleTypeCode: i,
|
|
|
- AuthOk: authMap[i],
|
|
|
+ AuthName: v.RoleName,
|
|
|
+ RoleTypeCode: v.RoleCode,
|
|
|
+ AuthOk: authMap[v.RoleCode],
|
|
|
})
|
|
|
}
|
|
|
br.Ret = 200
|
|
@@ -334,6 +439,9 @@ func (this *EnglishAuthController) Detail() {
|
|
|
func (this *EnglishAuthController) Edit() {
|
|
|
br := new(models.BaseResponse).Init()
|
|
|
defer func() {
|
|
|
+ if br.ErrMsg == "" {
|
|
|
+ br.IsSendEmail = false
|
|
|
+ }
|
|
|
this.Data["json"] = br
|
|
|
this.ServeJSON()
|
|
|
}()
|
|
@@ -344,6 +452,12 @@ func (this *EnglishAuthController) Edit() {
|
|
|
br.Ret = 408
|
|
|
return
|
|
|
}
|
|
|
+ if utils.BusinessCode != utils.BusinessCodeRelease {
|
|
|
+ br.Ret = 200
|
|
|
+ br.Success = true
|
|
|
+ br.Msg = "操作成功"
|
|
|
+ return
|
|
|
+ }
|
|
|
var req request.EditEnglishAuthRoleAdminReq
|
|
|
err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
|
|
|
if err != nil {
|
|
@@ -364,15 +478,49 @@ func (this *EnglishAuthController) Edit() {
|
|
|
br.Msg = "请选择权限"
|
|
|
return
|
|
|
}
|
|
|
+
|
|
|
+ // 若用户不存在, 则忽略
|
|
|
+ admin, e := system.GetSysAdminById(req.AdminId)
|
|
|
+ if e != nil {
|
|
|
+ br.Ret = 200
|
|
|
+ br.Success = true
|
|
|
+ br.Msg = "操作成功"
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ // 获取英文角色配置
|
|
|
+ confRoles := make([]company.ConfEnAuthRole, 0)
|
|
|
+ authKey := company.ConfEnAuthRoleKey
|
|
|
+ confAuth, e := company.GetConfigDetailByCode(authKey)
|
|
|
+ if e != nil {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取英文权限角色配置失败, Err: " + e.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if confAuth.ConfigValue == "" {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "英文权限角色配置为空"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if e := json.Unmarshal([]byte(confAuth.ConfigValue), &confRoles); e != nil {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "英文权限角色配置有误"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ roleCodes := make([]string, 0)
|
|
|
+ for _, v := range confRoles {
|
|
|
+ roleCodes = append(roleCodes, v.RoleCode)
|
|
|
+ }
|
|
|
+
|
|
|
for i := range roleArr {
|
|
|
- if !utils.InArrayByStr(EnglishAuthRoles, roleArr[i]) {
|
|
|
+ if !utils.InArrayByStr(roleCodes, roleArr[i]) {
|
|
|
br.Msg = "权限信息有误"
|
|
|
return
|
|
|
}
|
|
|
}
|
|
|
|
|
|
// 获取英文权限角色IDs
|
|
|
- roleIds, e := system.GetEnglishAuthRoleIds(EnglishAuthRoles)
|
|
|
+ roleIds, e := system.GetEnglishAuthRoleIds(roleCodes)
|
|
|
if e != nil {
|
|
|
br.Msg = "新增失败"
|
|
|
br.ErrMsg = "获取英文权限角色IDs失败, Err: " + e.Error()
|
|
@@ -384,27 +532,32 @@ func (this *EnglishAuthController) Edit() {
|
|
|
}
|
|
|
|
|
|
// 获取编辑的权限角色IDs
|
|
|
- editRoleIds, e := system.GetEnglishAuthRoleIds(roleArr)
|
|
|
+ editRoles, e := system.GetEnglishAuthRoleItems(roleArr)
|
|
|
if e != nil {
|
|
|
br.Msg = "新增失败"
|
|
|
br.ErrMsg = "获取编辑英文权限角色IDs失败, Err: " + e.Error()
|
|
|
return
|
|
|
}
|
|
|
- if len(editRoleIds) != len(roleArr) {
|
|
|
+ if len(editRoles) != len(roleArr) {
|
|
|
br.Msg = "权限角色信息有误"
|
|
|
return
|
|
|
}
|
|
|
|
|
|
+ // 同步缓存
|
|
|
+ var syncData system.SyncAdminEnRole
|
|
|
+ syncData.AdminName = admin.AdminName
|
|
|
+
|
|
|
// 编辑权限
|
|
|
nowTime := time.Now().Local()
|
|
|
newBinds := make([]*system.SysRoleAdmin, 0)
|
|
|
- for r := range editRoleIds {
|
|
|
+ for _, r := range editRoles {
|
|
|
v := &system.SysRoleAdmin{
|
|
|
AdminId: req.AdminId,
|
|
|
- RoleId: editRoleIds[r],
|
|
|
+ RoleId: r.RoleId,
|
|
|
CreateTime: nowTime,
|
|
|
}
|
|
|
newBinds = append(newBinds, v)
|
|
|
+ syncData.RoleCodes = append(syncData.RoleCodes, r.RoleTypeCode)
|
|
|
}
|
|
|
if e = system.EditEnglishAuthRoleAdmin(req.AdminId, roleIds, newBinds); e != nil {
|
|
|
br.Msg = "编辑失败"
|
|
@@ -412,6 +565,9 @@ func (this *EnglishAuthController) Edit() {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
+ // 写入同步缓存
|
|
|
+ _ = utils.Rc.LPush(utils.CACHE_SYNC_USER_EN_ROLE, syncData)
|
|
|
+
|
|
|
br.Ret = 200
|
|
|
br.Success = true
|
|
|
br.Msg = "操作成功"
|
|
@@ -426,10 +582,12 @@ func (this *EnglishAuthController) Edit() {
|
|
|
func (this *EnglishAuthController) Del() {
|
|
|
br := new(models.BaseResponse).Init()
|
|
|
defer func() {
|
|
|
+ if br.ErrMsg == "" {
|
|
|
+ br.IsSendEmail = false
|
|
|
+ }
|
|
|
this.Data["json"] = br
|
|
|
this.ServeJSON()
|
|
|
}()
|
|
|
-
|
|
|
sysUser := this.SysUser
|
|
|
if sysUser == nil {
|
|
|
br.Msg = "请登录"
|
|
@@ -437,6 +595,12 @@ func (this *EnglishAuthController) Del() {
|
|
|
br.Ret = 408
|
|
|
return
|
|
|
}
|
|
|
+ if utils.BusinessCode != utils.BusinessCodeRelease {
|
|
|
+ br.Ret = 200
|
|
|
+ br.Success = true
|
|
|
+ br.Msg = "操作成功"
|
|
|
+ return
|
|
|
+ }
|
|
|
var req request.DelEnglishAuthRoleAdminReq
|
|
|
err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
|
|
|
if err != nil {
|
|
@@ -449,8 +613,41 @@ func (this *EnglishAuthController) Del() {
|
|
|
return
|
|
|
}
|
|
|
|
|
|
+ // 若用户不存在, 则忽略
|
|
|
+ admin, e := system.GetSysAdminById(req.AdminId)
|
|
|
+ if e != nil {
|
|
|
+ br.Ret = 200
|
|
|
+ br.Success = true
|
|
|
+ br.Msg = "操作成功"
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ // 获取英文角色配置
|
|
|
+ confRoles := make([]company.ConfEnAuthRole, 0)
|
|
|
+ authKey := company.ConfEnAuthRoleKey
|
|
|
+ confAuth, e := company.GetConfigDetailByCode(authKey)
|
|
|
+ if e != nil {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "获取英文权限角色配置失败, Err: " + e.Error()
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if confAuth.ConfigValue == "" {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "英文权限角色配置为空"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if e := json.Unmarshal([]byte(confAuth.ConfigValue), &confRoles); e != nil {
|
|
|
+ br.Msg = "获取失败"
|
|
|
+ br.ErrMsg = "英文权限角色配置有误"
|
|
|
+ return
|
|
|
+ }
|
|
|
+ roleCodes := make([]string, 0)
|
|
|
+ for _, v := range confRoles {
|
|
|
+ roleCodes = append(roleCodes, v.RoleCode)
|
|
|
+ }
|
|
|
+
|
|
|
// 获取英文权限角色IDs
|
|
|
- roleIds, e := system.GetEnglishAuthRoleIds(EnglishAuthRoles)
|
|
|
+ roleIds, e := system.GetEnglishAuthRoleIds(roleCodes)
|
|
|
if e != nil {
|
|
|
br.Msg = "删除失败"
|
|
|
br.ErrMsg = "获取英文权限角色IDs失败, Err: " + e.Error()
|
|
@@ -468,6 +665,12 @@ func (this *EnglishAuthController) Del() {
|
|
|
br.ErrMsg = "解除英文权限角色绑定关系失败, Err:" + e.Error()
|
|
|
return
|
|
|
}
|
|
|
+
|
|
|
+ // 写入同步缓存
|
|
|
+ var syncData system.SyncAdminEnRole
|
|
|
+ syncData.AdminName = admin.AdminName
|
|
|
+ _ = utils.Rc.LPush(utils.CACHE_SYNC_USER_EN_ROLE, syncData)
|
|
|
+
|
|
|
br.Ret = 200
|
|
|
br.Success = true
|
|
|
br.Msg = "操作成功"
|