Browse Source

权益套餐

xiexiaoyuan 2 years ago
parent
commit
56ab85b992
3 changed files with 110 additions and 11 deletions
  1. 94 10
      controller/contract/service.go
  2. 15 1
      models/fms/contract_service_template.go
  3. 1 0
      routers/contract.go

+ 94 - 10
controller/contract/service.go

@@ -6,6 +6,7 @@ import (
 	"hongze/fms_api/controller/resp"
 	"hongze/fms_api/global"
 	"hongze/fms_api/models/fms"
+	"strconv"
 )
 
 // ServiceController 合同套餐
@@ -29,20 +30,28 @@ func (sr *ServiceController) List(c *gin.Context) {
 		return
 	}
 
-	productId := req.ProductId
-	if productId == 0 {
-		productId = 1
+	productIdStr := req.ProductId
+	var productId int
+	var list []*fms.ContractServiceTemplateItem
+	var err error
+	if productIdStr == "" {
+		list, err = fms.GetContractServiceTemplateSecond()
+	}else{
+		productId, _ = strconv.Atoi(productIdStr)
+		list, err = fms.GetContractServiceTemplateMapByProductId(productId)
 	}
 
-	list, e := fms.GetContractServiceTemplateMapByProductId(productId)
-	if e != nil {
-		resp.FailData("获取失败", "获取产品套餐失败, Err: "+e.Error(), c)
+	if err != nil {
+		resp.FailData("获取失败", "获取产品套餐失败, Err: "+err.Error(), c)
 		return
 	}
-	respList := make([]*fms.ContractServiceTemplateMapItems, 0)
+	allMap := make(map[int][]*fms.ContractServiceTemplateMapItems)
+	respList := make([]*fms.ContractServiceTemplateList, 0)
+
 	for i := 0; i < len(list); i++ {
+		item := list[i]
 		v := new(fms.ContractServiceTemplateMapItems)
-		v.ContractServiceTemplateItem = *list[i]
+		v.ContractServiceTemplateItem = *item
 
 		secFormatList := make([]*fms.ContractServiceTemplateMapItems, 0)
 		secList, e := fms.GetContractServiceTemplateMapByParentId(v.ServiceTemplateId)
@@ -77,14 +86,89 @@ func (sr *ServiceController) List(c *gin.Context) {
 			secFormatList = append(secFormatList, sec)
 		}
 
-		detail, e := fms.GetContractServiceDetailByTemplateId(list[i].ServiceTemplateId)
+		detail, e := fms.GetContractServiceDetailByTemplateId(item.ServiceTemplateId)
 		if e != nil {
 			resp.FailData("获取失败", "获取详情模板失败, Err:"+e.Error(), c)
 			return
 		}
 		v.Detail = detail
 		v.Children = secFormatList
-		respList = append(respList, v)
+		allMap[item.ProductId] = append(allMap[item.ProductId], v)
+	}
+	allTitleMap := map[int]string{
+		1:"FICC套餐",
+		2:"权益套餐",
+	}
+	if productId == 0 {
+		tmp1 := &fms.ContractServiceTemplateList{
+			Title:    allTitleMap[1],
+			Children: allMap[1],
+		}
+		tmp2 := &fms.ContractServiceTemplateList{
+			Title:    allTitleMap[2],
+			Children: allMap[2],
+		}
+		respList = append(respList, tmp1)
+		respList = append(respList, tmp2)
+	}else{
+		tmp := &fms.ContractServiceTemplateList{
+			Title:    allTitleMap[productId],
+			Children: allMap[productId],
+		}
+		respList = append(respList, tmp)
+	}
+	resp.OkData("获取成功", respList, c)
+}
+
+// ServiceList
+// @Title 合同套餐列表
+// @Description 合同套餐列表
+// @Param   ProductId  query  int  false  "套餐类型: 1-FICC(默认); 2-权益"
+// @Success 200 {object} crm.ContractSearchListResp
+// @router /contract/service/simple [get]
+func (sr *ServiceController) SimpleList(c *gin.Context) {
+	list, err := fms.GetContractServiceTemplateSecond()
+	if err != nil {
+		resp.FailData("获取失败", "获取产品套餐失败, Err: "+err.Error(), c)
+		return
+	}
+	allList := make([]*fms.ContractServiceTemplateItem, 0)
+	allMap := make(map[int][]*fms.ContractServiceTemplateMapItems)
+	respList := make([]*fms.ContractServiceTemplateList, 0)
+	for i := 0; i < len(list); i++ {
+		if list[i].Title == "行业套餐" {
+			industryList, e := fms.GetContractServiceTemplateMapByParentId(list[i].ServiceTemplateId)
+			if e != nil {
+				resp.FailData("获取失败", "Err:"+e.Error(), c)
+				return
+			}
+			for _, sv := range industryList {
+				allList = append(allList, sv)
+			}
+		}else{
+			allList = append(allList, list[i])
+		}
+	}
+
+	for i := 0; i < len(allList); i++ {
+		item := allList[i]
+		v := new(fms.ContractServiceTemplateMapItems)
+		v.ContractServiceTemplateItem = *item
+		allMap[item.ProductId] = append(allMap[item.ProductId], v)
+	}
+	allTitleMap := map[int]string{
+		1:"FICC套餐",
+		2:"权益套餐",
+	}
+	tmp1 := &fms.ContractServiceTemplateList{
+		Title:    allTitleMap[1],
+		Children: allMap[1],
+	}
+	tmp2 := &fms.ContractServiceTemplateList{
+		Title:    allTitleMap[2],
+		Children: allMap[2],
 	}
+	respList = append(respList, tmp1)
+	respList = append(respList, tmp2)
 	resp.OkData("获取成功", respList, c)
 }

+ 15 - 1
models/fms/contract_service_template.go

@@ -46,6 +46,11 @@ type ContractServiceTemplateItem struct {
 	ChartPermissionId int    `json:"chart_permission_id" description:"权限ID"`
 }
 
+type ContractServiceTemplateList struct {
+	Title string
+	Children []*ContractServiceTemplateMapItems
+}
+
 type ContractServiceTemplateMapItems struct {
 	ContractServiceTemplateItem
 	Children []*ContractServiceTemplateMapItems `json:"children"`
@@ -67,7 +72,7 @@ type ContractServiceTemplateMapItems2 struct {
 
 // ContractServiceListReq CRM系统合同套餐-列表请求体
 type ContractServiceListReq struct {
-	ProductId int `json:"product_id" form:"product_id" description:"产品: 1-FICC; 2-权益"`
+	ProductId string `json:"product_id" form:"product_id" description:"产品:空值-全部; 1-FICC; 2-权益"`
 }
 
 func GetContractServiceTemplateMapByProductId(productId int) (items []*ContractServiceTemplateItem, err error) {
@@ -94,3 +99,12 @@ func GetContractServiceTemplateById(templateId int) (item *ContractServiceTempla
 		First(&item).Error
 	return
 }
+
+func GetContractServiceTemplateSecond() (items []*ContractServiceTemplateItem, err error) {
+	items = make([]*ContractServiceTemplateItem, 0)
+	err = global.DEFAULT_MYSQL.Table("contract_service_template").
+		Where("pid = 0 AND is_delete = 0").
+		Order("service_template_id ASC").
+		Find(&items).Error
+	return
+}

+ 1 - 0
routers/contract.go

@@ -27,6 +27,7 @@ func InitContract(rg *gin.RouterGroup) {
 	sr := new(contract.ServiceController)
 	srGroup := rg.Group("service/").Use(middleware.Token())
 	srGroup.GET("list", sr.List)
+	srGroup.GET("simple", sr.SimpleList)
 
 	// 到款登记
 	pay := new(contract.PaymentController)