xingzai 1 an în urmă
părinte
comite
8c32d5d763
1 a modificat fișierele cu 29 adăugiri și 25 ștergeri
  1. 29 25
      controllers/cygx/contract_allocation.go

+ 29 - 25
controllers/cygx/contract_allocation.go

@@ -162,7 +162,7 @@ func (this *ContractAllocationController) CompanyContractList() {
 	var condition string
 	var pars []interface{}
 
-	condition += ` AND a.create_time >= ? AND a.create_time <= ? `
+	condition += ` AND a.start_date >= ? AND a.end_date <= ? `
 	pars = append(pars, startDate+" 00:00:01", endDate+" 23:59:59")
 
 	//条件
@@ -508,10 +508,6 @@ func (this *ContractAllocationController) CompanyContracDetail() {
 
 	//var contractPermissionList []*company.ContractPermissionList
 	expMap := map[int]string{0: "(3w)", 1: "(5w)"} // 买方研选价格
-
-	//classifyName := "权益"
-
-	//plist := new(company.ContractPermissionList)
 	hasPermissions, e := company.GetCompanyContractPermissionByCompanyContractId(companyContractId)
 	if e != nil {
 		br.Msg = "获取失败"
@@ -522,7 +518,7 @@ func (this *ContractAllocationController) CompanyContracDetail() {
 	for _, p := range hasPermissions {
 		hasMap[p.ChartPermissionId] = p
 	}
-	//checkItems := make([]*company.PermissionLookItem, 0)
+
 	raiPermissions, e := company.GetPermissionLookItemsExt("2", utils.COMPANY_PRODUCT_RAI_NAME)
 	if e != nil {
 		br.Msg = "获取失败"
@@ -536,21 +532,14 @@ func (this *ContractAllocationController) CompanyContracDetail() {
 		if match == nil {
 			continue
 		}
-		// 升级
-		//if match.IsUpgrade == 1 {
-		//	n.IsUpgrade = 1
-		//	checkItems = append(checkItems, n)
-		//	continue
-		//}
+
 		mapPermissionNameHave[n.PermissionName] = true
 		// 买方研选(3w/5w)
 		if n.PermissionName == utils.CHART_PERMISSION_NAME_MF_YANXUAN {
 			expensiveYx = match.ExpensiveYx
 			n.PermissionName += expMap[match.ExpensiveYx]
-			//checkItems = append(checkItems, n)
 			continue
 		}
-		//checkItems = append(checkItems, n)
 	}
 
 	resp.Money = contractItem.Money / 10000
@@ -576,15 +565,12 @@ func (this *ContractAllocationController) CompanyContracDetail() {
 	} else {
 		resp.TotalPointsContent = fmt.Sprint(resp.Money, "W")
 	}
-
 	sysUserList, err := cygx.GetAskEmailList()
-
 	if err != nil {
 		br.Msg = "获取失败"
 		br.ErrMsg = "获取失败,GetAskEmailList Err: " + err.Error()
 		return
 	}
-
 	mapPermissionUser := make(map[string][]*cygx.AllocationRealNameListResp)
 
 	var respList []*cygx.AllocationPermissionListResp
@@ -650,7 +636,7 @@ func (this *ContractAllocationController) CompanyContracDetail() {
 		return
 	}
 
-	permissionNameArr := []string{"医药", "消费", "科技", "智造", "策略"}
+	permissionNameArr := []string{"医药", "消费", "科技", "智造", "策略", "买方研选"}
 	for _, v := range permissionNameArr {
 		for _, v2 := range respList {
 			if v2.ChartPermissionName == v {
@@ -658,7 +644,6 @@ func (this *ContractAllocationController) CompanyContracDetail() {
 			}
 		}
 	}
-
 	resp.IsGray = mapIsGray[companyContractId]
 	//resp.List = respList
 	resp.CompanyContractId = companyContractId
@@ -774,13 +759,26 @@ func (this *ContractAllocationController) CompanyContracUpdate() {
 		itemPermission.AdminName = sysUser.RealName
 		itemPermission.Proportion = v.Proportion
 		itemPermission.Money = v.Money
-		itemPermission.MoneyAvg = moneyAvg
+		if v.ChartPermissionName != utils.CHART_PERMISSION_NAME_MF_YANXUAN {
+			itemPermission.MoneyAvg = moneyAvg
+			if v.Money < moneyAvg/2 {
+				br.Msg = "单行业占比值不得低于平均值的一半"
+				br.ErrMsg = "单行业占比值不得低于平均值的一半,Err:" + fmt.Sprint(proportionSum)
+				return
+			}
+		}
 		itemPermission.ChartPermissionName = v.ChartPermissionName
 		itemPermission.CreateTime = time.Now()
 		itemPermission.ModifyTime = time.Now()
 		itemsPermission = append(itemsPermission, itemPermission)
+		var userProportionSum float64 // 校验前端传过来的占比使用
 
 		for _, v2 := range v.List {
+			if v2.Proportion < -20 {
+				br.Msg = "研究员占比值不得小于总额的20%"
+				br.ErrMsg = "研究员占比值不得小于总额的20%,Err:" + fmt.Sprint(proportionSum)
+				return
+			}
 			item := new(cygx.CygxAllocationCompanyContract)
 			item.CompanyContractId = companyContractId
 			item.AdminId = sysUser.AdminId
@@ -793,14 +791,20 @@ func (this *ContractAllocationController) CompanyContracUpdate() {
 			item.ModifyTime = time.Now()
 			items = append(items, item)
 			proportionSum += v2.Proportion
+			userProportionSum += v2.Proportion
 		}
-		if v.ChartPermissionName == utils.CHART_PERMISSION_NAME_MF_YANXUAN {
-			continue
+		//先添加0.2%的精度校验
+		if userProportionSum > (v.Proportion+0.2) || userProportionSum < (v.Proportion-0.2) {
+			br.Msg = "单行业下的研究员比值之和不等于行业占比值"
+			br.ErrMsg = "单行业下的研究员比值之和不等于行业占比值"
+			return
 		}
 	}
+
+	//先添加0.5%的精度校验
 	if proportionSum > 100.5 || proportionSum < 99.5 {
-		br.Msg = "操作失败,派点填写信息错误"
-		br.ErrMsg = "操作失败,派点填写信息错误,Err:" + fmt.Sprint(proportionSum)
+		br.Msg = "行业总比值相加不等于100%"
+		br.ErrMsg = "行业总比值相加不等于100%,Err:"
 		return
 	}
 
@@ -858,7 +862,7 @@ func (this *ContractAllocationController) CompanyContractStatistics() {
 	var condition string
 
 	var pars []interface{}
-	condition += ` AND a.create_time >= ? AND a.create_time <= ? `
+	condition += ` AND a.start_date >= ? AND a.end_date <= ? `
 	pars = append(pars, startDate+" 00:00:01", endDate+" 23:59:59")
 	//根据当前角色来获取查询条件
 	//condition, pars = getQueryParams(condition, pars, sysUser, "c.")