package controllers import ( "fmt" "hongze/hz_eta_api/models" "hongze/hz_eta_api/models/company" "hongze/hz_eta_api/services" "hongze/hz_eta_api/utils" "strings" ) // CompanyPermissionController 客户权限管理 type CompanyPermissionController struct { BaseAuthController } // List // @Title 获取权限设置基础信息 // @Description 获取权限设置基础信息接口 // @Param CompanyType query string true "客户类型:传空字符串或者不传为全部,'ficc','权益'" // @Param NoUpgrade query bool false "是否不展示升级权限,默认为 false" // @Success 200 {object} company.PermissionSetResp // @router /permission/list [get] func (this *CompanyPermissionController) List() { br := new(models.BaseResponse).Init() defer func() { this.Data["json"] = br this.ServeJSON() }() sysUser := this.SysUser if sysUser == nil { br.Msg = "请登录" br.ErrMsg = "请登录,SysUser Is Empty" br.Ret = 408 return } // Tips:目前这个接口权益在添加客户、申请转正、领取客户、续约申请均有用到 companyType := this.GetString("CompanyType") noUpgrade, _ := this.GetBool("NoUpgrade", false) // 添加客户、领取客户=true; 申请转正、续约申请=false var productId int resp := new(company.PermissionSetResp) roleTypeCode := sysUser.RoleTypeCode productId = services.GetProductId(roleTypeCode) // FICC if productId == utils.COMPANY_PRODUCT_FICC_ID || companyType == utils.COMPANY_PRODUCT_FICC_NAME { for _, v := range utils.PermissionFiccClassifyArr { checkList := make([]int, 0) p := new(company.PermissionSetList) p.ClassifyName = v items, err := company.GetPermissionSetItems(utils.COMPANY_PRODUCT_FICC_ID, v) if err != nil { br.Msg = "获取失败" br.ErrMsg = "获取权限信息失败,Err:" + err.Error() return } p.Items = items if v == "宏观经济" { checkList = append(checkList, 1) } p.CheckList = checkList resp.List = append(resp.List, p) } br.Ret = 200 br.Success = true br.Msg = "获取成功" br.Data = resp return } // 权益 if productId == utils.COMPANY_PRODUCT_RAI_ID || companyType == utils.COMPANY_PRODUCT_RAI_NAME { p := new(company.PermissionSetList) items, err := company.GetPermissionSetItemsByType(utils.COMPANY_PRODUCT_RAI_ID, utils.COMPANY_PRODUCT_RAI_NAME) if err != nil { br.Msg = "获取失败" br.ErrMsg = "获取权限信息失败,Err:" + err.Error() return } // 原始版的权限 if noUpgrade { for _, v := range items { p.Items = append(p.Items, v) } } // 展示升级权限, 需要有套餐的展示, 行业可能需要拆分主客观, 买方研选需要分为3w和5w两种 if !noUpgrade { p.Items = append(p.Items, &company.PermissionSetItem{ PermissionName: utils.CHART_PERMISSION_NAME_45W, }, &company.PermissionSetItem{ PermissionName: utils.CHART_PERMISSION_NAME_70W, }) // 是否为内部人员 isRai, e := services.CheckRaiAdmin(sysUser.AdminId) if e != nil { br.Msg = "获取失败" br.ErrMsg = "判断是否为权益内部人员失败, GetRaiAdmin Err: " + e.Error() return } // 获取行业主客观权限ID childSubMap, childObjMap := make(map[string]int), make(map[string]int) { permissions, e := models.GetChartPermissionList() if e != nil { br.Msg = "获取失败" br.ErrMsg = "获取权限列表失败, GetChartPermissionList Err: " + e.Error() return } for _, v := range permissions { if !strings.Contains("医药消费科技智造", v.PermissionName) { continue } if strings.Contains(v.Remark, "主观") { childSubMap[v.PermissionName] = v.ChartPermissionId continue } childObjMap[v.PermissionName] = v.ChartPermissionId } } for _, v := range items { // 处理四大行业的升级展示 if strings.Contains("医药消费科技智造", v.PermissionName) { // 内部人员需要拆分主客观权限 if isRai { v.Child = make([]*company.PermissionSetItem, 0) v.Child = append(v.Child, &company.PermissionSetItem{ ChartPermissionId: childSubMap[v.PermissionName], PermissionName: "主观", PermissionType: 1, }, &company.PermissionSetItem{ ChartPermissionId: childObjMap[v.PermissionName], PermissionName: "客观", PermissionType: 2, }) } p.Items = append(p.Items, v) t := new(company.PermissionSetItem) t.ChartPermissionId = v.ChartPermissionId + utils.PERMISSION_ID_UPGRADE t.PermissionName = v.PermissionName + "(升级)" t.PermissionType = v.PermissionType t.Checked = v.Checked p.Items = append(p.Items, t) continue } // 买方研选划分为3w和5w两种 if v.PermissionName == utils.CHART_PERMISSION_NAME_MF_YANXUAN { m3, m5 := new(company.PermissionSetItem), new(company.PermissionSetItem) m3.ChartPermissionId = v.ChartPermissionId m3.PermissionName = fmt.Sprint(v.PermissionName, "(3w)") p.Items = append(p.Items, m3) m5.ChartPermissionId = v.ChartPermissionId + utils.PERMISSION_ID_YANXUAN_DIFF m5.PermissionName = fmt.Sprint(v.PermissionName, "(5w)") p.Items = append(p.Items, m5) continue } p.Items = append(p.Items, v) } } p.ClassifyName = utils.COMPANY_PRODUCT_RAI_NAME p.CheckList = make([]int, 0) resp.List = append(resp.List, p) } br.Ret = 200 br.Success = true br.Msg = "获取成功" br.Data = resp } // PermissionVariety // @Title 品种 // @Description 品种接口 // @Param CompanyType query string true "客户类型:传空字符串或者不传为全部,'ficc','权益'" // @Success 200 {object} company.PermissionVarietyResp // @router /permission/variety [get] func (this *CompanyPermissionController) PermissionVariety() { br := new(models.BaseResponse).Init() defer func() { this.Data["json"] = br this.ServeJSON() }() sysUser := this.SysUser if sysUser == nil { br.Msg = "请登录" br.ErrMsg = "请登录,SysUser Is Empty" br.Ret = 408 return } companyType := this.GetString("CompanyType") var productId int resp := new(company.PermissionVarietyResp) roleTypeCode := sysUser.RoleTypeCode if roleTypeCode == utils.ROLE_TYPE_CODE_RAI_SELLER || roleTypeCode == utils.ROLE_TYPE_CODE_RAI_ADMIN { productId = 2 } else if roleTypeCode == utils.ROLE_TYPE_CODE_FICC_SELLER || roleTypeCode == utils.ROLE_TYPE_CODE_FICC_ADMIN { productId = 1 } else { productId = 0 } if productId == 1 { for k, v := range utils.PermissionFiccClassifyArr { p := new(company.PermissionVarietyList) p.ClassifyName = v p.ChartPermissionId = k + 100 items, err := company.GetPermissionVarietyItems(productId, v) if err != nil { br.Msg = "获取失败" br.ErrMsg = "获取权限信息失败,Err:" + err.Error() return } p.Items = items resp.List = append(resp.List, p) } } else if productId == 2 { v := "权益" p := new(company.PermissionVarietyList) p.ClassifyName = v p.ChartPermissionId = 105 items, err := company.GetPermissionVarietyItems(productId, v) if err != nil { br.Msg = "获取失败" br.ErrMsg = "获取权限信息失败,Err:" + err.Error() return } p.Items = items resp.List = append(resp.List, p) } else { if companyType == utils.COMPANY_PRODUCT_FICC_NAME { for k, v := range utils.PermissionFiccClassifyArr { p := new(company.PermissionVarietyList) p.ClassifyName = v p.ChartPermissionId = k + 100 items, err := company.GetPermissionVarietyItems(1, v) if err != nil { br.Msg = "获取失败" br.ErrMsg = "获取权限信息失败,Err:" + err.Error() return } p.Items = items resp.List = append(resp.List, p) } } else if companyType == utils.COMPANY_PRODUCT_RAI_NAME { v := "权益" p := new(company.PermissionVarietyList) p.ClassifyName = v p.ChartPermissionId = 105 items, err := company.GetPermissionVarietyItems(2, v) if err != nil { br.Msg = "获取失败" br.ErrMsg = "获取权限信息失败,Err:" + err.Error() return } p.Items = items resp.List = append(resp.List, p) } } br.Ret = 200 br.Success = true br.Msg = "获取成功" br.Data = resp }