ziwen 2 anni fa
parent
commit
0b0a9c23fe

+ 59 - 0
controller/contract/service.go

@@ -5,8 +5,11 @@ import (
 	"github.com/go-playground/validator/v10"
 	"hongze/fms_api/controller/resp"
 	"hongze/fms_api/global"
+	"hongze/fms_api/models/crm"
 	"hongze/fms_api/models/fms"
+	"hongze/fms_api/models/system"
 	"strconv"
+	"strings"
 )
 
 // ServiceController 合同套餐
@@ -92,6 +95,62 @@ func (sr *ServiceController) List(c *gin.Context) {
 		}
 		v.Detail = detail
 		v.Children = secFormatList
+
+
+		if v.Title == "FICC小套餐" {
+			//获取ficc小套餐品种
+			sysConf := new(system.SysConfig)
+			confCond := `config_code = ?`
+			confPars := make([]interface{}, 0)
+			confPars = append(confPars, system.ConfigKeyCrmPermissionFiccClassify)
+			confItem, e := sysConf.FetchByCondition(confCond, confPars)
+			if e != nil {
+				resp.FailData("获取失败", "Err:"+e.Error(), c)
+				return
+			}
+			if confItem.ConfigValue == "" {
+				resp.FailData("获取失败", "FICC品种分类配置为空", c)
+				return
+			}
+			classifyArr := strings.Split(confItem.ConfigValue, ",")
+			if len(classifyArr) == 0 {
+				resp.FailData("获取失败", "FICC品种分类配置为空", c)
+				return
+			}
+
+			// 获取FICC权限
+			ficcCond := `enabled = 1 AND permission_type = 0 AND product_id = ? AND classify_name IN ?`
+			ficcPars := make([]interface{}, 0)
+			ficcPars = append(ficcPars, 1, classifyArr)
+			items, e := crm.GetPermissionSetItemsByCondition(ficcCond, ficcPars)
+			if e != nil {
+				resp.FailData("获取失败", "获取FICC权限信息失败, Err: "+e.Error(), c)
+				return
+			}
+			ficcItemMap := make(map[string][]*crm.PermissionSetItem, 0)
+			for i := range items {
+				if ficcItemMap[items[i].ClassifyName] == nil {
+					ficcItemMap[items[i].ClassifyName] = make([]*crm.PermissionSetItem, 0)
+				}
+				ficcItemMap[items[i].ClassifyName] = append(ficcItemMap[items[i].ClassifyName], items[i])
+			}
+
+			for i := range classifyArr {
+				if classifyArr[i] == "市场策略" {
+					continue
+				}
+				checkList := make([]int, 0)
+				if classifyArr[i] == "宏观经济" {
+					checkList = append(checkList, 1)
+				}
+				p := new(crm.PermissionSetList)
+				p.ClassifyName = classifyArr[i]
+				p.Items = ficcItemMap[classifyArr[i]]
+				p.CheckList = make([]int, 0)
+				v.Items = append(v.Items, p)
+			}
+		}
+
 		allMap[item.ProductId] = append(allMap[item.ProductId], v)
 	}
 	allTitleMap := map[int]string{

+ 8 - 8
models/fms/contract_pre_payment.go

@@ -108,14 +108,14 @@ func formatPrePay2Item(item *ContractPrePayment) (formatItem *ContractPrePayment
 
 // PrepayAddReq 新增到款预登记请求体
 type PreRegisterAddReq struct {
-	CompanyName  string                   `json:"company_name" binding:"required" description:"客户名称"`
-	StartDate    string                   `json:"start_date" binding:"required" description:"约定开始日期"`
-	EndDate      string                   `json:"end_date" binding:"required" description:"约定结束日期"`
-	RegisterType int                      `json:"register_type" description:"预登记类型 3-开票预登记 4-到款预登记"`
-	ProductIds   string                   `gorm:"column:product_ids" json:"product_ids" description:"产品ID:1-FICC; 2-权益, 如果两者都有,则用英文逗号拼接"`
-	SellerIds    string                   `json:"seller_ids" binding:"required" description:"CRM系统-销售ID"`
-	List         []*PreRegisterAddReqItem `json:"lists" binding:"required" description:"CRM系统-销售ID"`
-	Services     []ContractServiceAddReq  `json:"services" description:"服务套餐内容"`
+	CompanyName  string                  `json:"company_name" binding:"required" description:"客户名称"`
+	StartDate    string                  `json:"start_date" binding:"required" description:"约定开始日期"`
+	EndDate      string                  `json:"end_date" binding:"required" description:"约定结束日期"`
+	RegisterType int                     `json:"register_type" description:"预登记类型 3-开票预登记 4-到款预登记"`
+	ProductIds   string                  `gorm:"column:product_ids" json:"product_ids" description:"产品ID:1-FICC; 2-权益, 如果两者都有,则用英文逗号拼接"`
+	SellerIds    string                  `json:"seller_ids" binding:"required" description:"CRM系统-销售ID"`
+	List         []PreRegisterAddReqItem `json:"list" binding:"required" description:"预登记列表"`
+	Services     []ContractServiceAddReq `json:"services" description:"服务套餐内容"`
 }
 
 type PreRegisterAddReqItem struct {

+ 4 - 3
models/fms/contract_service_template.go

@@ -2,6 +2,7 @@ package fms
 
 import (
 	"hongze/fms_api/global"
+	"hongze/fms_api/models/crm"
 	"time"
 )
 
@@ -48,7 +49,7 @@ type ContractServiceTemplateItem struct {
 }
 
 type ContractServiceTemplateList struct {
-	Title string `json:"title"`
+	Title    string                             `json:"title"`
 	Children []*ContractServiceTemplateMapItems `json:"children"`
 }
 
@@ -56,6 +57,7 @@ type ContractServiceTemplateMapItems struct {
 	ContractServiceTemplateItem
 	Children []*ContractServiceTemplateMapItems `json:"children"`
 	Detail   []*ContractServiceDetail           `json:"detail"`
+	Items    []*crm.PermissionSetList
 }
 
 type ContractServiceTemplateMapItems2 struct {
@@ -124,7 +126,6 @@ type ContractServiceTemplateFullName struct {
 	ParentTitle string
 }
 
-
 type ContractServiceTemplateFormat struct {
 	FormatTitle        string
 	ServiceTemplateId  int
@@ -161,4 +162,4 @@ func GetContractServiceTemplateByTitle(titles string) (items []*ContractServiceT
 		Where("title IN (?)", titles).
 		Scan(&items).Error
 	return
-}
+}