123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277 |
- 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
- }
|