Эх сурвалжийг харах

Merge branch 'cygx/cygx_13.2' of http://8.136.199.33:3000/hongze/hz_crm_api

xingzai 1 жил өмнө
parent
commit
56fad06362

+ 55 - 35
controllers/company_apply.go

@@ -121,6 +121,7 @@ func (this *CompanyApplyController) ApplyContractHistoryList() {
 			//	return
 			//}
 			var expensiveYx int
+			var pints float64 // 现在就一个行业有点数,先这么写吧
 			hasPermissions, e := company.GetCompanyContractPermissionByCompanyContractId(companyContract.CompanyContractId)
 			if e != nil {
 				br.Msg = "获取失败"
@@ -133,8 +134,11 @@ func (this *CompanyApplyController) ApplyContractHistoryList() {
 				if p.ExpensiveYx > 0 {
 					expensiveYx = p.ExpensiveYx
 				}
-			}
 
+				if p.Points > 0 {
+					pints = p.Points
+				}
+			}
 			checkItems := make([]*company.PermissionLookItem, 0)
 			raiPermissions, e := company.GetPermissionLookItemsExt("2", utils.COMPANY_PRODUCT_RAI_NAME)
 			if e != nil {
@@ -158,17 +162,21 @@ func (this *CompanyApplyController) ApplyContractHistoryList() {
 					if match == nil {
 						continue
 					}
-					//研选、专家也要单独处理
-					if n.ChartPermissionId == utils.CHART_PERMISSION_ID_YANXUAN || n.ChartPermissionId == utils.ZHUAN_JIA_ID {
+					//研选订阅、研选扣点包、专家也要单独处理
+					if n.ChartPermissionId == utils.CHART_PERMISSION_ID_YANXUAN || n.ChartPermissionId == utils.YAN_XUAN_KOU_DIAN_BAO_ID || n.ChartPermissionId == utils.ZHUAN_JIA_ID {
 						if n.ChartPermissionId == utils.CHART_PERMISSION_ID_YANXUAN {
 							if expensiveYx == 1 {
 								n.PermissionName += "(5w)"
 							} else if expensiveYx == 2 {
 								n.PermissionName += "(10w)"
 							} else if expensiveYx == 0 {
-								n.PermissionName += "(3w)"
+								//n.PermissionName += "(3w)"
 							}
 						}
+
+						if n.ChartPermissionId == utils.YAN_XUAN_KOU_DIAN_BAO_ID && pints > 0 {
+							n.PermissionName += "(" + fmt.Sprint(pints) + "点)"
+						}
 						checkList = append(checkList, n.ChartPermissionId)
 						checkItems = append(checkItems, n)
 					}
@@ -189,14 +197,18 @@ func (this *CompanyApplyController) ApplyContractHistoryList() {
 						checkItems = append(checkItems, n)
 						continue
 					}
-					// 买方研选(3w/5w)
-					if n.PermissionName == utils.CHART_PERMISSION_NAME_MF_YANXUAN {
+					// 买方研选(3w/5w)、 研选扣点包,拼接点数
+					if n.PermissionName == utils.CHART_PERMISSION_NAME_MF_YANXUAN || n.ChartPermissionId == utils.YAN_XUAN_KOU_DIAN_BAO_ID {
 						if expensiveYx == 1 {
 							n.PermissionName += "(5w)"
 						} else if expensiveYx == 2 {
 							n.PermissionName += "(10w)"
 						} else if expensiveYx == 0 {
-							n.PermissionName += "(3w)"
+							//n.PermissionName += "(3w)"
+						}
+
+						if n.ChartPermissionId == utils.YAN_XUAN_KOU_DIAN_BAO_ID && pints > 0 {
+							n.PermissionName += "(" + fmt.Sprint(pints) + "点)"
 						}
 						//n.PermissionName += expMap[match.ExpensiveYx]
 						checkList = append(checkList, n.ChartPermissionId)
@@ -435,8 +447,9 @@ func (this *CompanyApplyController) ApplyContractDetail() {
 		permissions := make([]int, 0) // 合同权限IDs
 		checkItems := make([]*company.PermissionLookItem, 0)
 		//expMap := map[bool]string{false: "(3w)", true: "(5w)"} // 买方研选价格
-		var expensiveYx int
+		//var expensiveYx int
 		// 未选大套餐, 走老逻辑
+		var points float64
 		if detail.RaiPackageType == 0 {
 			mapUpgrade := make(map[int]bool) // 通过合同获取所勾选的升级行业权限
 
@@ -446,11 +459,18 @@ func (this *CompanyApplyController) ApplyContractDetail() {
 				}
 				if v.ExpensiveYx > 0 {
 					mapExpensive[v.ChartPermissionId] = true
-					expensiveYx = v.ExpensiveYx
+					//expensiveYx = v.ExpensiveYx
+				}
+
+				if v.Points > 0 && v.ChartPermissionId == utils.YAN_XUAN_KOU_DIAN_BAO_ID {
+					points = v.Points
 				}
 				permissions = append(permissions, v.ChartPermissionId)
 			}
 			for _, n := range items {
+				if points > 0 && n.ChartPermissionId == utils.YAN_XUAN_KOU_DIAN_BAO_ID {
+					n.PermissionName += fmt.Sprint("(", points, "点)")
+				}
 				if utils.InArrayByInt(permissions, n.ChartPermissionId) {
 					checkList = append(checkList, n.ChartPermissionId)
 					checkItems = append(checkItems, n)
@@ -482,14 +502,14 @@ func (this *CompanyApplyController) ApplyContractDetail() {
 						continue
 					}
 					// 买方研选
-					if p.ChartPermissionId == utils.CHART_PERMISSION_ID_YANXUAN {
-						if expensiveYx == 1 {
-							p.PermissionName += "(5w)"
-						} else if expensiveYx == 2 {
-							p.PermissionName += "(10w)"
-						}
-						//p.PermissionName += expMap[mapExpensive[p.ChartPermissionId]]
-					}
+					//if p.ChartPermissionId == utils.CHART_PERMISSION_ID_YANXUAN {
+					//	if expensiveYx == 1 {
+					//		p.PermissionName += "(5w)"
+					//	} else if expensiveYx == 2 {
+					//		p.PermissionName += "(10w)"
+					//	}
+					//	//p.PermissionName += expMap[mapExpensive[p.ChartPermissionId]]
+					//}
 				}
 			}
 
@@ -516,20 +536,27 @@ func (this *CompanyApplyController) ApplyContractDetail() {
 				if v.ExpensiveYx == 1 {
 					mapExpensive[v.ChartPermissionId] = true
 				}
+				if v.Points > 0 && v.ChartPermissionId == utils.YAN_XUAN_KOU_DIAN_BAO_ID {
+					points = v.Points
+				}
 				permissions = append(permissions, v.ChartPermissionId)
 			}
-			// 专家和研选
+			// 专家、研选订阅、研选扣点包
 			for _, n := range items {
-				if n.ChartPermissionId != utils.ZHUAN_JIA_ID && n.ChartPermissionId != utils.CHART_PERMISSION_ID_YANXUAN {
+				if n.ChartPermissionId != utils.ZHUAN_JIA_ID && n.ChartPermissionId != utils.CHART_PERMISSION_ID_YANXUAN && n.ChartPermissionId != utils.YAN_XUAN_KOU_DIAN_BAO_ID {
 					continue
 				}
-				if n.ChartPermissionId == utils.CHART_PERMISSION_ID_YANXUAN {
-					//n.PermissionName += expMap[mapExpensive[n.ChartPermissionId]]
-					if expensiveYx == 1 {
-						n.PermissionName += "(5w)"
-					} else if expensiveYx == 2 {
-						n.PermissionName += "(10w)"
-					}
+				//if n.ChartPermissionId == utils.CHART_PERMISSION_ID_YANXUAN {
+				//	//n.PermissionName += expMap[mapExpensive[n.ChartPermissionId]]
+				//	if expensiveYx == 1 {
+				//		n.PermissionName += "(5w)"
+				//	} else if expensiveYx == 2 {
+				//		n.PermissionName += "(10w)"
+				//	}
+				//}
+
+				if n.ChartPermissionId == utils.YAN_XUAN_KOU_DIAN_BAO_ID {
+					n.PermissionName += fmt.Sprint("(", points, "点)")
 				}
 				if utils.InArrayByInt(permissions, n.ChartPermissionId) {
 					checkList = append(checkList, n.ChartPermissionId)
@@ -2030,18 +2057,11 @@ func (this *CompanyApplyController) ApplyContract() {
 
 			// 买方研选3w/5w/10w
 			if n.PermissionName == utils.CHART_PERMISSION_NAME_MF_YANXUAN {
-				m3, m5, m10 := new(company.PermissionLookItem), new(company.PermissionLookItem), new(company.PermissionLookItem)
+				m3 := new(company.PermissionLookItem)
 				m3.ChartPermissionId = n.ChartPermissionId
-				m3.PermissionName = fmt.Sprint(n.PermissionName, "(3w)")
+				m3.PermissionName = n.PermissionName
 				plist.Items = append(plist.Items, m3)
 
-				m5.ChartPermissionId = n.ChartPermissionId + utils.PERMISSION_ID_YANXUAN_DIFF
-				m5.PermissionName = fmt.Sprint(n.PermissionName, "(5w)")
-				plist.Items = append(plist.Items, m5)
-
-				m10.ChartPermissionId = utils.PERMISSION_ID_YANXUAN_10W_DIFF
-				m10.PermissionName = fmt.Sprint(n.PermissionName, "(10w)")
-				plist.Items = append(plist.Items, m10)
 				continue
 			}
 

+ 33 - 3
controllers/company_apply_v2.go

@@ -256,6 +256,13 @@ func (this *CompanyApplyController) ApplyServiceUpdate() {
 		}
 		permissionArr := strings.Split(req.PermissionIds, ",")
 		permissionMap := make(map[int]int) //权限id的map集合,用来避免重复添加权限校验
+
+		permissionNameMap, err := services.GetPermissionNameMap()
+		if err != nil {
+			br.Msg = "新增合同失败"
+			br.ErrMsg = "获取权限名称失败,Err:" + err.Error()
+			return
+		}
 		for _, v := range permissionArr {
 			item := new(company.CompanyContractPermission)
 			item.CompanyId = req.CompanyId
@@ -274,7 +281,11 @@ func (this *CompanyApplyController) ApplyServiceUpdate() {
 			permissionMap[chartPermissionId] = chartPermissionId
 
 			item.ChartPermissionId = chartPermissionId
-
+			item.PermissionName = permissionNameMap[chartPermissionId]
+			//如果是研选扣点包的权限,写入扣点点数
+			if chartPermissionId == utils.YAN_XUAN_KOU_DIAN_BAO_ID {
+				item.Points = req.Points
+			}
 			item.StartDate = req.StartDate
 			item.EndDate = req.EndDate
 			item.IsUpgrade = mapPermissionIdUpgrade[chartPermissionId]
@@ -437,8 +448,8 @@ func (this *CompanyApplyController) ApplyTurnPositive() {
 		}
 	}
 
-	// 权益主客观、行业升级、买方研选的处理
-	mapPermissionIdUpgrade := make(map[int]int)
+	mapPermissionIdUpgrade := make(map[int]int) // 权益主客观、行业升级、买方研选的处理
+	permissionNameMap := make(map[int]string)   // 权益行业名称处理
 	permissionNames := req.PermissionNames
 	expensiveYx := 0
 	if productId == 2 {
@@ -527,6 +538,13 @@ func (this *CompanyApplyController) ApplyTurnPositive() {
 				return
 			}
 		}
+
+		permissionNameMap, err = services.GetPermissionNameMap()
+		if err != nil {
+			br.Msg = "新增合同失败"
+			br.ErrMsg = "获取权限名称失败,Err:" + err.Error()
+			return
+		}
 	}
 
 	companyProduct, err := company.GetCompanyProductByCompanyIdAndProductId(req.CompanyId, productId)
@@ -697,6 +715,7 @@ func (this *CompanyApplyController) ApplyTurnPositive() {
 		permissionMap := make(map[int]int) //权限id的map集合,用来避免重复添加权限校验
 		permissionItems := make([]*company.CompanyContractPermission, 0)
 		permissionLogs := make([]*company.CompanyContractPermissionLog, 0)
+
 		for _, v := range permissionArr {
 			item := new(company.CompanyContractPermission)
 			item.CompanyId = req.CompanyId
@@ -722,6 +741,17 @@ func (this *CompanyApplyController) ApplyTurnPositive() {
 			if chartPermissionId == utils.CHART_PERMISSION_ID_YANXUAN {
 				item.ExpensiveYx = expensiveYx
 			}
+			//如果是研选扣点包,这个行业权限的ID;那么就对点数进行赋值。目前就研选扣点包 这一个行业有点数,先不用数组类型处理。v:查研观向13.2
+			if chartPermissionId == utils.YAN_XUAN_KOU_DIAN_BAO_ID {
+				if req.Points <= 0 {
+					br.Msg = "点数不能为空"
+					return
+				}
+				item.Points = req.Points
+			}
+
+			item.PermissionName = permissionNameMap[chartPermissionId]
+
 			item.StartDate = req.StartDate
 			item.EndDate = req.EndDate
 			item.ModifyTime = time.Now()

+ 24 - 16
controllers/company_permission.go

@@ -21,6 +21,7 @@ type CompanyPermissionController struct {
 // @Description 获取权限设置基础信息接口
 // @Param   CompanyType   query   string  true       "客户类型:传空字符串或者不传为全部,'ficc','权益'"
 // @Param   NoUpgrade   query   bool  false       "是否不展示升级权限,默认为 false"
+// @Param   IsShowYanXuanKouDian   query   bool  false       "是否展示研选扣点包,默认为 false"
 // @Success 200 {object} company.PermissionSetResp
 // @router /permission/list [get]
 func (this *CompanyPermissionController) List() {
@@ -39,7 +40,8 @@ func (this *CompanyPermissionController) List() {
 	// Tips:目前这个接口权益在添加客户、申请转正、领取客户、续约申请均有用到
 
 	companyType := this.GetString("CompanyType")
-	noUpgrade, _ := this.GetBool("NoUpgrade", false) // 添加客户、领取客户=true; 申请转正、续约申请=false
+	noUpgrade, _ := this.GetBool("NoUpgrade", false)                       // 添加客户、领取客户=true; 申请转正、续约申请=false
+	isShowYanXuanKouDian, _ := this.GetBool("IsShowYanXuanKouDian", false) // 添加客户、领取客户=true; 申请转正、续约申请=false
 	var productId int
 	resp := new(company.PermissionSetResp)
 
@@ -85,6 +87,9 @@ func (this *CompanyPermissionController) List() {
 		// 原始版的权限
 		if noUpgrade {
 			for _, v := range items {
+				if !isShowYanXuanKouDian && v.ChartPermissionId == utils.YAN_XUAN_KOU_DIAN_BAO_ID {
+					continue
+				}
 				p.Items = append(p.Items, v)
 			}
 		}
@@ -127,6 +132,9 @@ func (this *CompanyPermissionController) List() {
 			}
 
 			for _, v := range items {
+				if !isShowYanXuanKouDian && v.ChartPermissionId == utils.YAN_XUAN_KOU_DIAN_BAO_ID {
+					continue
+				}
 				// 处理四大行业的升级展示
 				if strings.Contains("医药消费科技智造", v.PermissionName) {
 					// 内部人员需要拆分主客观权限
@@ -154,21 +162,21 @@ func (this *CompanyPermissionController) List() {
 				}
 
 				// 买方研选划分为3w和5w,10W三种
-				if v.PermissionName == utils.CHART_PERMISSION_NAME_MF_YANXUAN {
-					m3, m5, m10 := new(company.PermissionSetItem), 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)
-
-					m10.ChartPermissionId = utils.PERMISSION_ID_YANXUAN_10W_DIFF
-					m10.PermissionName = fmt.Sprint(v.PermissionName, "(10w)")
-					p.Items = append(p.Items, m10)
-					continue
-				}
+				//if v.PermissionName == utils.CHART_PERMISSION_NAME_MF_YANXUAN {
+				//	m3, m5, m10 := new(company.PermissionSetItem), 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)
+				//
+				//	m10.ChartPermissionId = utils.PERMISSION_ID_YANXUAN_10W_DIFF
+				//	m10.PermissionName = fmt.Sprint(v.PermissionName, "(10w)")
+				//	p.Items = append(p.Items, m10)
+				//	continue
+				//}
 
 				p.Items = append(p.Items, v)
 			}

+ 66 - 17
controllers/cygx/contract_allocation.go

@@ -507,7 +507,7 @@ func (this *ContractAllocationController) CompanyContracDetail() {
 	}
 
 	//var contractPermissionList []*company.ContractPermissionList
-	expMap := map[int]string{0: "(3w)", 1: "(5w)", 2: "(10w)"} // 买方研选价格
+	//expMap := map[int]string{0: "(3w)", 1: "(5w)", 2: "(10w)"} // 买方研选价格
 	hasPermissions, e := company.GetCompanyContractPermissionByCompanyContractId(companyContractId)
 	if e != nil {
 		br.Msg = "获取失败"
@@ -515,8 +515,12 @@ func (this *ContractAllocationController) CompanyContracDetail() {
 		return
 	}
 	hasMap := make(map[int]*company.CompanyContractPermission)
+	var pointMoney float64
 	for _, p := range hasPermissions {
 		hasMap[p.ChartPermissionId] = p
+		if p.ChartPermissionId == utils.YAN_XUAN_KOU_DIAN_BAO_ID {
+			pointMoney = 0.2 * p.Points
+		}
 	}
 
 	raiPermissions, e := company.GetPermissionLookItemsExt("2", utils.COMPANY_PRODUCT_RAI_NAME)
@@ -528,6 +532,7 @@ func (this *ContractAllocationController) CompanyContracDetail() {
 	mapPermissionNameHave := make(map[string]bool) // 判断合同是否存在某一行业权限种类
 	var expensiveYx int
 	for _, n := range raiPermissions {
+
 		match := hasMap[n.ChartPermissionId]
 		if match == nil {
 			continue
@@ -537,32 +542,57 @@ func (this *ContractAllocationController) CompanyContracDetail() {
 		// 买方研选(3w/5w/10w)
 		if n.PermissionName == utils.CHART_PERMISSION_NAME_MF_YANXUAN {
 			expensiveYx = match.ExpensiveYx
-			n.PermissionName += expMap[match.ExpensiveYx]
+			//n.PermissionName += expMap[match.ExpensiveYx]
 			continue
 		}
 	}
 
 	resp.Money = contractItem.Money / 10000
 	//有研选时,对研选套餐类型做文案处理
-	respItemYx := new(cygx.AllocationPermissionListResp)
-	if mapPermissionNameHave[utils.CHART_PERMISSION_NAME_MF_YANXUAN] {
+	respItemYx := new(cygx.AllocationPermissionListResp)        // 研选订阅
+	respItemYxKouDian := new(cygx.AllocationPermissionListResp) //  研选扣点
+	if mapPermissionNameHave[utils.CHART_PERMISSION_NAME_MF_YANXUAN] || mapPermissionNameHave[utils.YAN_XUAN_KOU_DIAN_BAO_NAME] {
 		var moneyYx float64
-		if expensiveYx == 0 {
-			moneyYx = 3
-		} else if expensiveYx == 1 {
-			moneyYx = 5
-		} else if expensiveYx == 2 {
-			moneyYx = 10
+		if mapPermissionNameHave[utils.CHART_PERMISSION_NAME_MF_YANXUAN] {
+			if expensiveYx == 0 {
+				moneyYx = 3
+			} else if expensiveYx == 1 {
+				moneyYx = 5
+			} else if expensiveYx == 2 {
+				moneyYx = 10
+			}
+			respItemYx.Proportion = 0
+			respItemYx.Money = moneyYx
+			respItemYx.ChartPermissionName = utils.CHART_PERMISSION_NAME_MF_YANXUAN
+			respItemYx.ChartPermissionId = utils.CHART_PERMISSION_ID_YANXUAN
+
+			//手动拼接研选订阅的数据类型
+			listYxItem := new(cygx.AllocationRealNameListResp)
+			listYxItem.RealName = utils.CHART_PERMISSION_NAME_MF_YANXUAN
+			listYxItem.Money = moneyYx
+			listYxItem.ChartPermissionId = utils.CHART_PERMISSION_ID_YANXUAN
+			respItemYx.List = append(respItemYx.List, listYxItem)
+		}
+
+		if mapPermissionNameHave[utils.YAN_XUAN_KOU_DIAN_BAO_NAME] {
+			respItemYxKouDian.Proportion = 0
+			respItemYxKouDian.Money = pointMoney
+			respItemYxKouDian.ChartPermissionName = utils.YAN_XUAN_KOU_DIAN_BAO_NAME
+			respItemYxKouDian.ChartPermissionId = utils.YAN_XUAN_KOU_DIAN_BAO_ID
+
+			listKouDianItem := new(cygx.AllocationRealNameListResp)
+			listKouDianItem.RealName = utils.YAN_XUAN_KOU_DIAN_BAO_NAME
+			listKouDianItem.Money = pointMoney
+			listKouDianItem.ChartPermissionId = utils.YAN_XUAN_KOU_DIAN_BAO_ID
+			respItemYxKouDian.List = append(respItemYxKouDian.List, listKouDianItem)
 		}
-		resp.TotalPointsContent = fmt.Sprint(resp.Money, "W,", "其中", moneyYx, "w默认归属买方研选,请对剩余", resp.Money-moneyYx, "w按照100%进行比值分配")
+
+		resp.TotalPointsContent = fmt.Sprint(resp.Money, "W,", "其中", moneyYx+pointMoney, "w默认归属买方研选,请对剩余", resp.Money-moneyYx-pointMoney, "w按照100%进行比值分配")
 		if showDetail {
 			resp.TotalPointsContent = fmt.Sprint(resp.Money, "W")
 		}
 		resp.Money = resp.Money - moneyYx
-		respItemYx.Proportion = 0
-		respItemYx.Money = moneyYx
-		respItemYx.ChartPermissionName = utils.CHART_PERMISSION_NAME_MF_YANXUAN
-		respItemYx.List = append(respItemYx.List, &cygx.AllocationRealNameListResp{utils.CHART_PERMISSION_NAME_MF_YANXUAN, 0, moneyYx})
+
 	} else {
 		resp.TotalPointsContent = fmt.Sprint(resp.Money, "W")
 	}
@@ -573,7 +603,16 @@ func (this *ContractAllocationController) CompanyContracDetail() {
 		return
 	}
 	mapPermissionUser := make(map[string][]*cygx.AllocationRealNameListResp)
-
+	listPermission, err := cygx.GetChartPermissionAll()
+	if err != nil {
+		br.Msg = "获取信息失败"
+		br.ErrMsg = "获取品种信息失败,Err:" + err.Error()
+		return
+	}
+	mapPermissionId := make(map[string]int)
+	for _, v := range listPermission {
+		mapPermissionId[v.PermissionName] = v.ChartPermissionId
+	}
 	var respList []*cygx.AllocationPermissionListResp
 	if total == 0 {
 		for _, v := range sysUserList {
@@ -582,18 +621,26 @@ func (this *ContractAllocationController) CompanyContracDetail() {
 			}
 			item := new(cygx.AllocationRealNameListResp)
 			item.RealName = v.Name
+			item.ChartPermissionId = mapPermissionId[v.ChartPermissionName]
 			mapPermissionUser[v.ChartPermissionName] = append(mapPermissionUser[v.ChartPermissionName], item)
 		}
 
 		for k, v := range mapPermissionUser {
 			respItem := new(cygx.AllocationPermissionListResp)
 			respItem.ChartPermissionName = k
+			respItem.ChartPermissionId = mapPermissionId[k]
 			respItem.List = v
 			respList = append(respList, respItem)
 		}
+		//研选订阅
 		if respItemYx.ChartPermissionName != "" {
 			respList = append(respList, respItemYx)
 		}
+		//研选扣点
+		if respItemYxKouDian.ChartPermissionName != "" {
+			respList = append(respList, respItemYxKouDian)
+		}
+
 	} else {
 		listUser, err := cygx.GetCygxAllocationCompanyContractListById(companyContractId)
 		if err != nil {
@@ -609,6 +656,7 @@ func (this *ContractAllocationController) CompanyContracDetail() {
 			item.RealName = v.RealName
 			item.Money = v.Money
 			item.Proportion = v.Proportion
+			item.ChartPermissionId = mapPermissionId[v.ChartPermissionName]
 			mapPermissionUser[v.ChartPermissionName] = append(mapPermissionUser[v.ChartPermissionName], item)
 		}
 		listPermission, err := cygx.GetCygxAllocationCompanyContractPermissionListById(companyContractId)
@@ -623,6 +671,7 @@ func (this *ContractAllocationController) CompanyContracDetail() {
 			}
 			respItem := new(cygx.AllocationPermissionListResp)
 			respItem.ChartPermissionName = v.ChartPermissionName
+			respItem.ChartPermissionId = mapPermissionId[v.ChartPermissionName]
 			respItem.Money = v.Money
 			respItem.Proportion = v.Proportion
 			respItem.List = mapPermissionUser[v.ChartPermissionName]
@@ -637,7 +686,7 @@ func (this *ContractAllocationController) CompanyContracDetail() {
 		return
 	}
 
-	permissionNameArr := []string{"医药", "消费", "科技", "智造", "策略", "买方研选"}
+	permissionNameArr := []string{"医药", "消费", "科技", "智造", "策略", utils.CHART_PERMISSION_NAME_MF_YANXUAN, utils.YAN_XUAN_KOU_DIAN_BAO_NAME}
 	for _, v := range permissionNameArr {
 		for _, v2 := range respList {
 			if v2.ChartPermissionName == v {

+ 1 - 1
controllers/cygx/industrial_management.go

@@ -64,7 +64,7 @@ func (this *IndustrialManagementController) ChartPermissionList() {
 		resp.List = append(resp.List, item)
 	} else {
 		for _, v := range list {
-			if v.PermissionName == utils.CHART_PERMISSION_NAME_MF_YANXUAN && isHideResearch {
+			if (v.PermissionName == utils.CHART_PERMISSION_NAME_MF_YANXUAN || v.PermissionName == utils.YAN_XUAN_KOU_DIAN_BAO_NAME) && isHideResearch {
 				continue
 			}
 			resp.List = append(resp.List, v)

+ 5 - 5
controllers/statistic_company_merge.go

@@ -804,7 +804,7 @@ func (this *StatisticCompanyMergerController) CompanyContractPermissionList() {
 	//}
 
 	//if permissionName == "" {
-	condition += ` AND  d.permission_name IN ('医药','消费','科技','智造','策略','买方研选')`
+	condition += ` AND  d.permission_name IN ('医药','消费','科技','智造','策略','研选订阅','研选扣点包')`
 	//}
 
 	var err error
@@ -826,7 +826,7 @@ func (this *StatisticCompanyMergerController) CompanyContractPermissionList() {
 		if dataType == "行业新签" {
 			conditionPerssion := condition1
 			parsPerssion := pars1
-			conditionPerssion += ` AND  d.permission_name IN ('医药','消费','科技','智造','策略','买方研选')`
+			conditionPerssion += ` AND  d.permission_name IN ('医药','消费','科技','智造','策略','研选订阅','研选扣点包')`
 
 			listPessionGroup, err = models.GetCompanyContractPermissionNameGroupCount(conditionPerssion, parsPerssion)
 			if err != nil && err.Error() != utils.ErrNoRow() {
@@ -883,7 +883,7 @@ func (this *StatisticCompanyMergerController) CompanyContractPermissionList() {
 		if dataType == "行业续约" {
 			conditionPerssion := condition1
 			parsPerssion := pars1
-			conditionPerssion += ` AND  d.permission_name IN ('医药','消费','科技','智造','策略','买方研选')`
+			conditionPerssion += ` AND  d.permission_name IN ('医药','消费','科技','智造','策略','研选订阅','研选扣点包')`
 
 			listPessionGroup, err = models.GetCompanyContractPermissionNameGroupCount(conditionPerssion, parsPerssion)
 			if err != nil && err.Error() != utils.ErrNoRow() {
@@ -942,7 +942,7 @@ func (this *StatisticCompanyMergerController) CompanyContractPermissionList() {
 		if dataType == "行业未续约" {
 			conditionPerssion := condition1
 			parsPerssion := pars1
-			conditionPerssion += ` AND  d.permission_name IN ('医药','消费','科技','智造','策略','买方研选')`
+			conditionPerssion += ` AND  d.permission_name IN ('医药','消费','科技','智造','策略','研选订阅','研选扣点包')`
 
 			listPessionGroup, err = models.GetCompanyContractPermissionNameGroupCount(conditionPerssion, parsPerssion)
 			if err != nil && err.Error() != utils.ErrNoRow() {
@@ -1025,7 +1025,7 @@ func (this *StatisticCompanyMergerController) CompanyContractPermissionList() {
 	}
 
 	//处理展示顺序
-	permissionNameSlice := []string{"医药", "消费", "科技", "智造", "策略", "买方研选"}
+	permissionNameSlice := []string{"医药", "消费", "科技", "智造", "策略", utils.CHART_PERMISSION_NAME_MF_YANXUAN, utils.YAN_XUAN_KOU_DIAN_BAO_NAME}
 	var itemspermissionNameSlice []*models.CompanyContractPermissionNameGroupCountResp
 	for _, vName := range permissionNameSlice {
 		item := new(models.CompanyContractPermissionNameGroupCountResp)

+ 2 - 0
models/company/company_apply.go

@@ -22,6 +22,7 @@ type CompanyApplyServiceUpdateReq struct {
 	ImgUrl            string  `description:"合同图片,多个用英文#隔开"`
 	PackageType       int     `description:"套餐类型,0:无,1:大套餐,2:小套餐"`
 	RaiPackageType    int     `description:"权益套餐类型: 0-无; 1-70w套餐; 2-45w套餐"`
+	Points            float64 `description:"研选扣点包点数"`
 }
 
 type ApproveUser struct {
@@ -268,6 +269,7 @@ type CompanyApplyTurnPositiveReq struct {
 	ImgUrl            string  `description:"合同图片,多个用英文#隔开"`
 	PackageType       int     `description:"套餐类型,0:无,1:大套餐,2:小套餐"`
 	RaiPackageType    int     `description:"权益套餐类型: 0-无; 1-70w大套餐; 2-45w大套餐"`
+	Points            float64 `description:"研选扣点包点数"`
 }
 
 // 申请转正请求参数

+ 1 - 0
models/company/company_contract.go

@@ -68,6 +68,7 @@ type CompanyContractPermission struct {
 	ModifyTime        time.Time `description:"修改时间"`
 	ContractType      string    `description:"签约合同时,当前行业类型:枚举值:'行业新签','行业续约'"`
 	PermissionName    string    `description:"权限名称"`
+	Points            float64   `description:"研选扣点包点数"`
 }
 
 // 新增客户合同

+ 1 - 0
models/company/company_permission.go

@@ -163,6 +163,7 @@ type PermissionLookItem struct {
 	RaiBothHas         bool                  `description:"权益-是否主客观都有"`
 	IsUpgrade          int                   `description:"是否升级,1是,0否"`
 	ExpensiveYx        int                   `description:"权益研选: 0-3w; 1-5w ,2: 10W"`
+	Points             float64               `description:"研选扣点包点数"`
 	Child              []*PermissionLookItem `description:"子权限"`
 }
 

+ 10 - 9
models/cygx/activity_points_set.go

@@ -6,15 +6,16 @@ import (
 )
 
 type YanXuanActivityPointsRedis struct {
-	UserId           int       `description:"用户ID"`
-	ComapnyId        int       `description:"公司ID"`
-	ActivityId       int       `description:"活动ID"`
-	PublishStatus    int       `description:"发布状态 1已发布,0未发布"`
-	SourceType       int       `description:"1:报名、 2:取消报名、3:活动编辑、4:活动发布,取消发布、5:活动到会。"`
-	AdminId          int       `description:"管理员、销售ID"`
-	Source           int       `description:" 来源,1客户端,2后台添加, 3开发人员手动添加、4定时任务"`
-	RegisterPlatform int       `description:"来源 1小程序,2:网页"`
-	CreateTime       time.Time `description:"创建时间"`
+	UserId            int       `description:"用户ID"`
+	ComapnyId         int       `description:"公司ID"`
+	CompanyContractId int       `description:"合同id"`
+	ActivityId        int       `description:"活动ID"`
+	PublishStatus     int       `description:"发布状态 1已发布,0未发布"`
+	SourceType        int       `description:"1:报名、 2:取消报名、3:活动编辑、4:活动发布,取消发布、5:活动到会。"`
+	AdminId           int       `description:"管理员、销售ID"`
+	Source            int       `description:" 来源,1客户端,2后台添加, 3开发人员手动添加、4定时任务"`
+	RegisterPlatform  int       `description:"来源 1小程序,2:网页"`
+	CreateTime        time.Time `description:"创建时间"`
 }
 
 type CygxActivityPointsSet struct {

+ 5 - 3
models/cygx/allocation_company_contract.go

@@ -169,6 +169,7 @@ type CygxAllocationCompanyContractDetailResp struct {
 // 行业
 type AllocationPermissionListResp struct {
 	ChartPermissionName string  `description:"行业名称"`
+	ChartPermissionId   int     `description:"行业id"`
 	Proportion          float64 `description:"占比"`
 	Money               float64 `description:"金额(单位万)"`
 	MoneyAvg            float64 `description:"行业所占合同的平均金额"`
@@ -177,9 +178,10 @@ type AllocationPermissionListResp struct {
 
 // 行业
 type AllocationRealNameListResp struct {
-	RealName   string  `description:"研究员姓名"`
-	Proportion float64 `description:"占比"`
-	Money      float64 `description:"金额(单位万)"`
+	RealName          string  `description:"研究员姓名"`
+	Proportion        float64 `description:"占比"`
+	Money             float64 `description:"金额(单位万)"`
+	ChartPermissionId int     `description:"行业id"`
 }
 
 // 获取数量

+ 2 - 2
models/statistic_report.go

@@ -987,8 +987,8 @@ func GetCompanyContractPermissionNameGroupCount(condition string, pars []interfa
 			AND a.product_id = c.product_id
 			JOIN company_contract_permission d ON d.company_contract_id = a.company_contract_id 
 		WHERE
-			1 = 1 
-			AND d.permission_name IN ( '医药', '消费', '科技', '智造', '策略', '买方研选' ) `
+			1 = 1 `
+	//AND d.permission_name IN ( '医药', '消费', '科技', '智造', '策略','研选订阅','研选扣点包' ) `
 
 	if condition != "" {
 		sql += condition

+ 4 - 4
services/company_apply/company_approval.go

@@ -420,10 +420,10 @@ func Approved(approvalRecord *contract.ContractApprovalRecord, opUser *system.Ad
 
 				//客户研选行业转正时(王芳审批通过),模板消息提醒汪洋
 				services.AddCompanyApprovalMessageWangYang(recordInfo.CompanyId, recordInfo.CompanyContractId, recordInfo.ApplyRealName, companyInfo.CompanyName)
-				cygxService.YanXuanCompanyApproval(recordInfo.CompanyId)                              //研选审批通过的时候研选扣点更新
-				cygxService.HandleAllocationCompanyContractByYanXuan(recordInfo.CompanyContractId)    //如果合同只有研选的时候,自动处理派点
-				cygxService.HandleCompanyContractPackageDifference(recordInfo.CompanyContractId)      // 更新与上一份合同的金额的对比 '增加套餐','减少套餐','维持套餐'
-				cygxService.HandleCompanyContractPermissionContractType(recordInfo.CompanyContractId) // 更新合同权限表中的权限名称,以及对应的行业权限类型(行业新签、行业续约)
+				cygxService.YanXuanCompanyApproval(recordInfo.CompanyId, recordInfo.CompanyContractId) //研选审批通过的时候研选扣点更新
+				cygxService.HandleAllocationCompanyContractByYanXuan(recordInfo.CompanyContractId)     //如果合同只有研选的时候,自动处理派点
+				cygxService.HandleCompanyContractPackageDifference(recordInfo.CompanyContractId)       // 更新与上一份合同的金额的对比 '增加套餐','减少套餐','维持套餐'
+				cygxService.HandleCompanyContractPermissionContractType(recordInfo.CompanyContractId)  // 更新合同权限表中的权限名称,以及对应的行业权限类型(行业新签、行业续约)
 			}
 		}()
 	} else {

+ 42 - 17
services/company_approval_message.go

@@ -8,6 +8,7 @@ import (
 	"hongze/hz_crm_api/models/system"
 	"hongze/hz_crm_api/services/alarm_msg"
 	"hongze/hz_crm_api/utils"
+	"strings"
 	"time"
 )
 
@@ -224,32 +225,56 @@ func AddCompanyApprovalMessageWangYang(companyId, companyContractId int, applyRe
 			go alarm_msg.SendAlarmMsg("客户研选行业转正时(王芳审批通过),模板消息提醒汪洋,Err:"+err.Error()+fmt.Sprint("companyId:", companyId, "companyContractId:", companyContractId, "applyRealName:", applyRealName, "companyName:", companyName), 3)
 		}
 	}()
-	//如果是研选的就推送给汪洋
-	count, e := company.GetCompanyContractPermissionCheckByContractId(companyId, companyContractId, utils.CHART_PERMISSION_ID_YANXUAN)
+	var mobiles []string
+	cnf, e := cygx.GetCygxConfigDetailByCode(utils.TPL_MSG_YANXAUN_APPROVAL)
 	if e != nil {
-		err = errors.New("GetCompanyContractPermissionCheckByContractId, Err: " + e.Error())
+		err = errors.New("GetCygxConfigDetailByCode, Err: " + e.Error())
 		return
 	}
-	if count == 0 {
+	mobiles = strings.Split(cnf.ConfigValue, ",")
+	openIdList, e := cygx.GetUserRecordListByMobileArr(mobiles)
+	if e != nil && e.Error() != utils.ErrNoRow() {
+		err = errors.New("GetUserRecordListByMobileArr, Err: " + e.Error())
 		return
 	}
-	var keyword1, keyword2, keyword3, keyword4 string
-	keyword1 = companyName + "(" + applyRealName + ")"
-	keyword2 = "买方研选转正"
-	var mobiles []string
-	cnf, e := cygx.GetCygxConfigDetailByCode(utils.TPL_MSG_WANG_YANG)
-	if e != nil {
-		err = errors.New("GetConfigByCode, Err: " + e.Error())
+	if len(openIdList) == 0 {
 		return
 	}
-	mobiles = append(mobiles, cnf.ConfigValue)
-	openIdList, err := cygx.GetUserRecordListByMobileArr(mobiles)
-	if err != nil && err.Error() != utils.ErrNoRow() {
-		return err
+
+	list, e := company.GetCompanyContractPermissionByCompanyContractId(companyContractId)
+	if e != nil && e.Error() != utils.ErrNoRow() {
+		err = errors.New("GetCompanyContractPermissionByCompanyContractId, Err: " + e.Error())
+		return
 	}
-	if len(openIdList) == 0 {
+
+	if len(list) == 0 {
 		return
 	}
-	go SendWxMsgWithRaiWangYang(keyword1, keyword2, keyword3, keyword4, openIdList)
+
+	var haveDingYue bool // 是否签约了研选订阅
+	var points float64   // 是否签约了研选扣点包,以及对应的点数
+	for _, v := range list {
+		if v.ChartPermissionId == utils.CHART_PERMISSION_ID_YANXUAN {
+			haveDingYue = true
+		}
+		if v.ChartPermissionId == utils.YAN_XUAN_KOU_DIAN_BAO_ID {
+			points = v.Points
+		}
+	}
+	var keyword1, keyword2, keyword3, keyword4 string
+	if haveDingYue {
+		keyword1 = companyName + "(" + applyRealName + ")"
+		keyword2 = time.Now().Format(utils.FormatDateTime)
+		keyword3 = "签约【研选订阅】"
+		go SendWxMsgWithRaiWangYang(keyword1, keyword2, keyword3, keyword4, openIdList)
+	}
+
+	if points > 0 {
+		keyword1 = companyName + "(" + applyRealName + ")"
+		keyword2 = time.Now().Format(utils.FormatDateTime)
+		keyword3 = "签约【研选扣点包(" + fmt.Sprint(points) + "个点)】"
+		go SendWxMsgWithRaiWangYang(keyword1, keyword2, keyword3, keyword4, openIdList)
+	}
+
 	return
 }

+ 13 - 9
services/company_permission.go

@@ -67,15 +67,15 @@ func RaiCompanyPermissionAndCheckList(companyId int, unify bool) (resp *company.
 			v.ExpireDay = expireDay
 
 			// 正式/永续-买方研选划分为3w和5w两种
-			if v.PermissionName == utils.CHART_PERMISSION_NAME_MF_YANXUAN && strings.Contains("正式,永续", v.Status) {
-				if p.ExpensiveYx == 1 {
-					v.PermissionName = fmt.Sprint(v.PermissionName, "(5w)")
-				} else if p.ExpensiveYx == 2 {
-					v.PermissionName = fmt.Sprint(v.PermissionName, "(10w)")
-				} else {
-					v.PermissionName = fmt.Sprint(v.PermissionName, "(3w)")
-				}
-			}
+			//if v.PermissionName == utils.CHART_PERMISSION_NAME_MF_YANXUAN && strings.Contains("正式,永续", v.Status) {
+			//	if p.ExpensiveYx == 1 {
+			//		v.PermissionName = fmt.Sprint(v.PermissionName, "(5w)")
+			//	} else if p.ExpensiveYx == 2 {
+			//		v.PermissionName = fmt.Sprint(v.PermissionName, "(10w)")
+			//	} else {
+			//		v.PermissionName = fmt.Sprint(v.PermissionName, "(3w)")
+			//	}
+			//}
 		}
 		if v.IsUpgrade == 1 && strings.Contains("正式,永续", v.Status) {
 			v.RaiBothHas = true
@@ -158,6 +158,10 @@ func RaiCompanyPermissionAndCheckList(companyId int, unify bool) (resp *company.
 	} else {
 		upgradeMap := make(map[string]int)
 		for _, v := range permissionItems {
+			//研选扣点包不展示
+			//if v.ChartPermissionId == utils.YAN_XUAN_KOU_DIAN_BAO_ID {
+			//	continue
+			//}
 			if _, ok := upgradeMap[v.PermissionName]; !ok {
 				newpPermissionItems = append(newpPermissionItems, v)
 				if strings.Contains(v.PermissionName, "升级") {

+ 3 - 2
services/cygx/activity_points_set.go

@@ -15,6 +15,7 @@ import (
 // 获取公司剩余点数
 func GetCygxActivityPointsCompanyByCompanyId(companyId int) (points string) {
 	var err error
+	points = "0" // 默认都展示 0
 	defer func() {
 		if err != nil {
 			go alarm_msg.SendAlarmMsg("获取公司剩余点数失败:"+err.Error(), 2)
@@ -310,7 +311,7 @@ func YanXuanActivityPointsBillSubmitMeeting(activityId, adminId int) (err error)
 }
 
 // 6 研选审批通过的时候研选扣点更新
-func YanXuanCompanyApproval(comapnyId int) (err error) {
+func YanXuanCompanyApproval(comapnyId, companyContractId int) (err error) {
 	defer func() {
 		if err != nil {
 			fmt.Println(err)
@@ -319,7 +320,7 @@ func YanXuanCompanyApproval(comapnyId int) (err error) {
 		}
 	}()
 	//SourceType int       `description:"1:报名、 2:取消报名、3:活动编辑、4:活动发布,取消发布、5:活动到会。"`
-	log := &cygx.YanXuanActivityPointsRedis{ComapnyId: comapnyId, SourceType: 6, Source: 2, CreateTime: time.Now()}
+	log := &cygx.YanXuanActivityPointsRedis{ComapnyId: comapnyId, CompanyContractId: companyContractId, SourceType: 6, Source: 2, CreateTime: time.Now()}
 	if utils.Re == nil {
 		err := utils.Rc.LPush(utils.CYGX_YANXUAN_POINTS_KEY, log)
 		if err != nil {

+ 24 - 1
services/cygx/activity_power_check.go

@@ -218,7 +218,7 @@ func GetActivityDetailUserPowerold(user *models.WxUser, adminInfo *system.Admin,
 func GetActivityDetailUserPower(user *models.WxUser, adminInfo *system.Admin, activityInfo *cygx.ActivityDetail) (havePower bool, err error) {
 	var companyDetailStatus string
 	var userTypeStr string
-
+	userId := int(user.UserId)
 	//如果是弘则的用户或者宏观的权限不做校验
 	//if user.CompanyId == utils.HZ_COMPANY_ID || activityInfo.ChartPermissionName == "宏观" {
 	if user.CompanyId == utils.HZ_COMPANY_ID {
@@ -237,6 +237,29 @@ func GetActivityDetailUserPower(user *models.WxUser, adminInfo *system.Admin, ac
 		return
 	}
 
+	//判断用户是否开通了个人研选权限,如果有权限后缀拼接权限名称
+	// 查询用户是否开通过
+	mfyxUserPermissionTotal, e := cygx.GetCygxUserYanxuanPermissionCountByUserId(userId)
+	if e != nil {
+		err = errors.New("GetCygxUserYanxuanPermissionCountByUserId, Err: " + e.Error())
+		return
+	}
+
+	if mfyxUserPermissionTotal == 1 {
+		permissionStr += "," + utils.CHART_PERMISSION_NAME_MF_YANXUAN
+	}
+
+	//如果正式权限有开通 研选扣点包 ,那么就拼接一个 研选订阅的权限
+	if strings.Contains(permissionStrZhengShi, utils.YAN_XUAN_KOU_DIAN_BAO_NAME) {
+		permissionStr += "," + utils.CHART_PERMISSION_NAME_MF_YANXUAN
+		permissionStrZhengShi += "," + utils.CHART_PERMISSION_NAME_MF_YANXUAN
+	}
+
+	//如果测试权限有开通 研选扣点包 ,那么就拼接一个 研选订阅的权限
+	if strings.Contains(permissionStr, utils.YAN_XUAN_KOU_DIAN_BAO_NAME) {
+		permissionStr += "," + utils.CHART_PERMISSION_NAME_MF_YANXUAN
+	}
+
 	//如果一个权限都没有就返回无权限
 	if permissionStr == "" {
 		return

+ 110 - 38
services/cygx/contract_allocation.go

@@ -120,7 +120,7 @@ func GetCompanyContractPermissionNameMapById(companyContractIds []int) (mapContr
 				} else if v.ExpensiveYx == 2 {
 					mapContractIdPerssion[(v.CompanyContractId)] += utils.CHART_PERMISSION_NAME_MF_YANXUAN + "(10w),"
 				} else {
-					mapContractIdPerssion[(v.CompanyContractId)] += utils.CHART_PERMISSION_NAME_MF_YANXUAN + "(3w),"
+					mapContractIdPerssion[(v.CompanyContractId)] += utils.CHART_PERMISSION_NAME_MF_YANXUAN + ","
 				}
 			} else {
 				mapContractIdPerssion[(v.CompanyContractId)] += mappermissionName[v.ChartPermissionId] + ","
@@ -142,9 +142,13 @@ func GetCompanyContractPermissionNameMapById(companyContractIds []int) (mapContr
 				} else if v.ExpensiveYx == 2 {
 					mapContractIdPerssion[(v.CompanyContractId)] += utils.CHART_PERMISSION_NAME_MF_YANXUAN + "(10w),"
 				} else {
-					mapContractIdPerssion[(v.CompanyContractId)] += utils.CHART_PERMISSION_NAME_MF_YANXUAN + "(3w),"
+					mapContractIdPerssion[(v.CompanyContractId)] += utils.CHART_PERMISSION_NAME_MF_YANXUAN + ","
 				}
 			}
+
+			if v.ChartPermissionId == utils.YAN_XUAN_KOU_DIAN_BAO_ID {
+				mapContractIdPerssion[(v.CompanyContractId)] += utils.YAN_XUAN_KOU_DIAN_BAO_NAME + ","
+			}
 		}
 	}
 	//合并客观权限
@@ -306,51 +310,66 @@ func HandleAllocationCompanyContractByYanXuan(companyContractId int) (err error)
 		return
 	}
 
-	if len(companyContractPermissionList) > 1 {
+	if len(companyContractPermissionList) > 2 {
 		return
 	}
 	var expensiveYxmoney float64
+	//for _, v := range companyContractPermissionList {
+	//	if v.ChartPermissionId != utils.CHART_PERMISSION_ID_YANXUAN {
+	//		err = errors.New("没有发现研选权限: ")
+	//		return
+	//	}
+	//	if v.ExpensiveYx == 1 {
+	//		expensiveYxmoney = 5
+	//	} else if v.ExpensiveYx == 2 {
+	//		expensiveYxmoney = 10
+	//	} else {
+	//		expensiveYxmoney = 3
+	//	}
+	//}
+
+	var items []*cygx.CygxAllocationCompanyContract
+	var itemsPermission []*cygx.CygxAllocationCompanyContractPermission
+
 	for _, v := range companyContractPermissionList {
-		if v.ChartPermissionId != utils.CHART_PERMISSION_ID_YANXUAN {
-			err = errors.New("没有发现研选权限: ")
+		if v.ChartPermissionId != utils.CHART_PERMISSION_ID_YANXUAN && v.ChartPermissionId != utils.YAN_XUAN_KOU_DIAN_BAO_ID {
 			return
 		}
-		if v.ExpensiveYx == 1 {
-			expensiveYxmoney = 5
-		} else if v.ExpensiveYx == 2 {
-			expensiveYxmoney = 10
-		} else {
+
+		if v.ChartPermissionId == utils.CHART_PERMISSION_ID_YANXUAN {
 			expensiveYxmoney = 3
 		}
-	}
-
-	var items []*cygx.CygxAllocationCompanyContract
-	var itemsPermission []*cygx.CygxAllocationCompanyContractPermission
-
-	itemPermission := new(cygx.CygxAllocationCompanyContractPermission)
-	itemPermission.CompanyContractId = companyContractId
-	//itemPermission.AdminId = sysUser.AdminId
-	//itemPermission.AdminName = sysUser.RealName
-	itemPermission.Proportion = 0
-	itemPermission.Money = expensiveYxmoney
-	itemPermission.MoneyAvg = 0
-	itemPermission.ChartPermissionName = utils.CHART_PERMISSION_NAME_MF_YANXUAN
-	itemPermission.CreateTime = time.Now()
-	itemPermission.ModifyTime = time.Now()
-	itemsPermission = append(itemsPermission, itemPermission)
-
-	item := new(cygx.CygxAllocationCompanyContract)
-	item.CompanyContractId = companyContractId
-	//item.AdminId = sysUser.AdminId
-	//item.AdminName = sysUser.RealName
-	item.Proportion = 0
-	item.Money = expensiveYxmoney
-	item.RealName = utils.CHART_PERMISSION_NAME_MF_YANXUAN
-	item.ChartPermissionName = utils.CHART_PERMISSION_NAME_MF_YANXUAN
-	item.CreateTime = time.Now()
-	item.ModifyTime = time.Now()
-	items = append(items, item)
 
+		if v.ChartPermissionId == utils.YAN_XUAN_KOU_DIAN_BAO_ID {
+			expensiveYxmoney = 0.2 * v.Points
+		}
+		itemPermission := new(cygx.CygxAllocationCompanyContractPermission)
+		itemPermission.CompanyContractId = companyContractId
+		//itemPermission.AdminId = sysUser.AdminId
+		//itemPermission.AdminName = sysUser.RealName
+		itemPermission.Proportion = 0
+		itemPermission.Money = expensiveYxmoney
+		itemPermission.MoneyAvg = 0
+		itemPermission.ChartPermissionName = v.PermissionName
+		itemPermission.CreateTime = time.Now()
+		itemPermission.ModifyTime = time.Now()
+		itemsPermission = append(itemsPermission, itemPermission)
+
+		item := new(cygx.CygxAllocationCompanyContract)
+		item.CompanyContractId = companyContractId
+		//item.AdminId = sysUser.AdminId
+		//item.AdminName = sysUser.RealName
+		item.Proportion = 0
+		item.Money = expensiveYxmoney
+		item.RealName = v.PermissionName
+		item.ChartPermissionName = v.PermissionName
+		item.CreateTime = time.Now()
+		item.ModifyTime = time.Now()
+		items = append(items, item)
+	}
+	if len(items) == 0 {
+		return
+	}
 	e = cygx.AddAndUpdateCygxAllocationCompanyContract(items, itemsPermission, companyContractId)
 	if e != nil {
 		err = errors.New("AddAndUpdateCygxAllocationCompanyContract, Err: " + e.Error())
@@ -568,3 +587,56 @@ func initCRM14_4() {
 	//}
 
 }
+
+func initCrm13_2() {
+	var condition string
+	var pars []interface{}
+	condition = " AND   chart_permission_id = 31   AND `status` IN ('正式','试用') AND product_id = 2 "
+
+	//获取所有开通买方研选正式试用的客户列表
+	listCompanyPermissionYx, e := company.GetCompanyReportPermissionList(condition, pars, 0, 0)
+	if e != nil && e.Error() != utils.ErrNoRow() {
+		fmt.Println(e)
+		return
+	}
+
+	condition = " AND   chart_permission_id = 52   "
+	listCompanyPermissionKouDian, e := company.GetCompanyReportPermissionList(condition, pars, 0, 0)
+	if e != nil && e.Error() != utils.ErrNoRow() {
+		fmt.Println(e)
+		return
+	}
+	mapKoud := make(map[int]bool)
+
+	for _, v := range listCompanyPermissionKouDian {
+		mapKoud[v.CompanyId] = true
+	}
+	//var i int
+	var items []*company.CompanyReportPermission
+	for k, v := range listCompanyPermissionYx {
+		if mapKoud[v.CompanyId] {
+			continue
+		}
+		permission := new(company.CompanyReportPermission)
+		permission.CompanyId = v.CompanyId
+		permission.ReportPermissionId = v.ReportPermissionId
+		permission.CreatedTime = time.Now()
+		permission.LastUpdatedTime = time.Now()
+		permission.ChartPermissionId = 52
+		permission.StartDate = v.StartDate
+		permission.EndDate = v.EndDate
+		permission.ProductId = 2
+		permission.ProductName = "权益"
+		permission.ModifyTime = time.Now()
+		permission.Status = v.Status
+		err := company.AddCompanyReportPermission(permission)
+		if err != nil {
+			return
+		}
+		fmt.Println(k)
+
+		items = append(items, permission)
+	}
+
+	fmt.Println(len(items))
+}

+ 1 - 1
services/wechat_send_msg.go

@@ -2201,7 +2201,7 @@ func SendWxMsgWithRaiWangYang(keyword1, keyword2, keyword3, keyword4 string, ope
 	sendInfo.Keyword2 = keyword2
 	sendInfo.Keyword3 = keyword3
 	sendInfo.Keyword4 = keyword4
-	sendInfo.TemplateId = utils.WxMsgTemplateIdActivityChangeApply
+	sendInfo.TemplateId = utils.WxMsgTemplateIdCompanyApprovalMessageRai
 	sendInfo.RedirectUrl = ""
 	sendInfo.RedirectTarget = 3
 	sendInfo.SendType = utils.TEMPLATE_MSG_APPLY

+ 5 - 2
utils/constants.go

@@ -373,10 +373,12 @@ func GetFiccAdminDepartmentIds() (idStr string) {
 }
 
 const (
-	CHART_PERMISSION_NAME_MF_YANXUAN        string = "买方研选"
+	CHART_PERMISSION_NAME_MF_YANXUAN        string = "研选订阅"
 	LU_YAN_FU_WU                            string = "路演服务"
 	CHART_PERMISSION_NAME_YANXUAN           string = "研选"
-	CHART_PERMISSION_ID_YANXUAN             int    = 31
+	CHART_PERMISSION_ID_YANXUAN             int    = 31      //权限研选订阅id
+	YAN_XUAN_KOU_DIAN_BAO_ID                int    = 52      //研选扣点包ID
+	YAN_XUAN_KOU_DIAN_BAO_NAME              string = "研选扣点包" //研选扣点包名称
 	CE_LUE_NAME                             string = "策略"
 	CE_LUE_ID                               int    = 23
 	YI_YAO_NAME                             string = "医药"
@@ -401,6 +403,7 @@ const (
 	YI_DONG_ZHENG_TONG_YUN_TOKEN_KEY        string = "YI_DONG_ZHENG_TONG_YUN_TOKEN_KEY" //易董证通云的token,存Redis使用
 	CYGX_USER_KEY_LABEL                            = "CYGX_USER_KEY_LABEL"              //查研观向用户标签
 	TPL_MSG_WANG_YANG                              = "tpl_msg_wang_yang"                //汪洋手机号地址参数
+	TPL_MSG_YANXAUN_APPROVAL                       = "tpl_msg_yanxaun_approval"         //【研选订阅】和【研选扣点包】转正/续约审批通过后,给冯柯然和汪洋和沈涛发送模板消息
 	MicroRoadshowDefaultImgKey                     = "micro_roadshow_default_img"       // 音视频封面图
 	TPL_MSG_NEI_RONG_ZU                            = "tpl_msg_nei_rong_zu"              //内容组四人
 	TPL_MSG_WANG_FANG_WANG_YANG                    = "tpl_msg_wang_fang_wang_yang"      //权限模板消息接收人,王芳,汪洋