|
@@ -579,3 +579,91 @@ func HandleSyncGroup(data SyncGroupData) (err error) {
|
|
|
}
|
|
|
return
|
|
|
}
|
|
|
+
|
|
|
+// SyncAdminEnRole 同步用户英文权限角色
|
|
|
+type SyncAdminEnRole struct {
|
|
|
+ AdminName string `description:"用户名"`
|
|
|
+ RoleCodes []string `description:"角色Codes"`
|
|
|
+}
|
|
|
+
|
|
|
+// HandleSyncUserEnRole 同步用户英文权限角色
|
|
|
+func HandleSyncUserEnRole(data SyncAdminEnRole) (err error) {
|
|
|
+ if data.AdminName == "" {
|
|
|
+ return
|
|
|
+ }
|
|
|
+ defer func() {
|
|
|
+ if err != nil {
|
|
|
+ j, _ := json.Marshal(data)
|
|
|
+ tips := fmt.Sprintf("ETA同步至CRM英文权限角色失败, errMsg: %s\ndata: %s", err.Error(), string(j))
|
|
|
+ go alarm_msg.SendAlarmMsg(tips, 3)
|
|
|
+ }
|
|
|
+ }()
|
|
|
+
|
|
|
+ crmAdmin, e := crm.GetSysUserByAdminName(data.AdminName)
|
|
|
+ if e != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ // 获取英文权限角色配置
|
|
|
+ confRoles := make([]eta.ConfEnAuthRole, 0)
|
|
|
+ conf, e := eta.GetCrmConfByCode(eta.ConfEnAuthRoleKey)
|
|
|
+ if e != nil {
|
|
|
+ err = fmt.Errorf("获取英文权限角色配置失败, Err: %s", e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if conf.ConfigValue == "" {
|
|
|
+ err = fmt.Errorf("英文权限角色配置为空")
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if e := json.Unmarshal([]byte(conf.ConfigValue), &confRoles); e != nil {
|
|
|
+ err = fmt.Errorf("英文权限角色配置有误, Err: %s", e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ roleCodes := make([]string, 0)
|
|
|
+ for _, v := range confRoles {
|
|
|
+ roleCodes = append(roleCodes, v.RoleCode)
|
|
|
+ }
|
|
|
+
|
|
|
+ // 获取CRM英文权限角色
|
|
|
+ roles := make([]*crm.SysRole, 0)
|
|
|
+ {
|
|
|
+ ob := new(crm.SysRole)
|
|
|
+ cond := ` role_type_code IN (?)`
|
|
|
+ pars := make([]interface{}, 0)
|
|
|
+ pars = append(pars, roleCodes)
|
|
|
+ rs, e := ob.GetItemsByCondition(cond, pars)
|
|
|
+ if e != nil {
|
|
|
+ err = fmt.Errorf("获取英文权限角色失败, Err: %s", e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ roles = rs
|
|
|
+ }
|
|
|
+ if len(roles) == 0 {
|
|
|
+ err = fmt.Errorf("英文权限角色为空")
|
|
|
+ return
|
|
|
+ }
|
|
|
+ roleIds := make([]int, 0)
|
|
|
+ roleCodeId := make(map[string]int)
|
|
|
+ for _, v := range roles {
|
|
|
+ roleIds = append(roleIds, v.RoleId)
|
|
|
+ roleCodeId[v.RoleTypeCode] = v.RoleId
|
|
|
+ }
|
|
|
+
|
|
|
+ // 清空并新增
|
|
|
+ items := make([]*crm.SysRoleAdmin, 0)
|
|
|
+ for _, v := range data.RoleCodes {
|
|
|
+ if roleCodeId[v] > 0 {
|
|
|
+ items = append(items, &crm.SysRoleAdmin{
|
|
|
+ AdminId: crmAdmin.AdminId,
|
|
|
+ RoleId: roleCodeId[v],
|
|
|
+ CreateTime: time.Now().Local(),
|
|
|
+ })
|
|
|
+ }
|
|
|
+ }
|
|
|
+ relateOb := new(crm.SysRoleAdmin)
|
|
|
+ if e = relateOb.DeleteAndCreate(crmAdmin.AdminId, roleIds, items); e != nil {
|
|
|
+ err = fmt.Errorf("新增用户英文权限角色失败, Err: %s", e.Error())
|
|
|
+ return
|
|
|
+ }
|
|
|
+ return
|
|
|
+}
|