Browse Source

no message

xingzai 1 năm trước cách đây
mục cha
commit
00d7b7243f

+ 12 - 0
controllers/cygx/contract_allocation.go

@@ -506,6 +506,18 @@ func (this *ContractAllocationController) CompanyContracDetail() {
 		return
 	}
 
+	companyProduct, err := company.GetCompanyProductByCompanyIdAndProductId(contractItem.CompanyId, utils.COMPANY_PRODUCT_RAI_ID)
+	if err != nil {
+		br.Msg = "查询客户产品信息失败"
+		br.ErrMsg = "查询客户产品信息失败,Err:" + err.Error()
+		return
+	}
+
+	//判断客户是否是永续(X类试用客户)
+	if companyProduct.Status == utils.COMPANY_STATUS_FOREVER {
+		resp.IsXClass = true
+	}
+
 	//var contractPermissionList []*company.ContractPermissionList
 	//expMap := map[int]string{0: "(3w)", 1: "(5w)", 2: "(10w)"} // 买方研选价格
 	hasPermissions, e := company.GetCompanyContractPermissionByCompanyContractId(companyContractId)

+ 77 - 1
models/cygx/allocation_company_contract.go

@@ -88,7 +88,6 @@ func AddAndUpdateCygxAllocationCompanyContract(items []*CygxAllocationCompanyCon
 		item.ChartPermissionName = v.ChartPermissionName
 		item.Proportion = v.Proportion
 		item.Money = v.Money
-		item.Money = v.Money
 		item.CreateTime = time.Now()
 		item.ModifyTime = time.Now()
 		itemsLog = append(itemsLog, item)
@@ -163,6 +162,7 @@ type CygxAllocationCompanyContractDetailResp struct {
 	Money              float64 `description:"金额(单位万)"`
 	TotalPointsContent string  `description:"总点数描述"`
 	IsGray             bool    `description:"是否置灰"`
+	IsXClass           bool    `description:"是否是X类试用客户"`
 	List               []*AllocationPermissionListResp
 }
 
@@ -173,6 +173,7 @@ type AllocationPermissionListResp struct {
 	Proportion          float64 `description:"占比"`
 	Money               float64 `description:"金额(单位万)"`
 	MoneyAvg            float64 `description:"行业所占合同的平均金额"`
+	CompanyContractId   int     `description:"合同ID"`
 	List                []*AllocationRealNameListResp
 }
 
@@ -250,3 +251,78 @@ type AllocationRealNameStatisticsListResp struct {
 	GroupProportion      string  `description:"组内占比"`
 	DepartmentProportion string  `description:"部门占比"`
 }
+
+// 行业列表
+func GetCygxAllocationCompanyContractPermissionListByIdInitYx(companyContractId int) (items []*CygxAllocationCompanyContractPermission, err error) {
+	o := orm.NewOrmUsingDB("hz_cygx")
+	sql := ` SELECT * FROM cygx_allocation_company_contract_permission WHERE company_contract_id = ? AND  chart_permission_name  IN ('研选扣点包','研选订阅','买方研选')  `
+	_, err = o.Raw(sql, companyContractId).QueryRows(&items)
+	return
+}
+
+// 行业列表
+func GetCygxAllocationCompanyContractPermissionListByIdInit(companyContractId int) (items []*CygxAllocationCompanyContractPermission, err error) {
+	o := orm.NewOrmUsingDB("hz_cygx")
+	sql := ` SELECT * FROM cygx_allocation_company_contract_permission WHERE company_contract_id = ?  `
+	_, err = o.Raw(sql, companyContractId).QueryRows(&items)
+	return
+}
+
+// 更新派点信息
+func AddAndUpdateCygxAllocationCompanyContractInit(items []*CygxAllocationCompanyContract, itemsPermission []*CygxAllocationCompanyContractPermission, companyContractId int) (err error) {
+	o := orm.NewOrmUsingDB("hz_cygx")
+	to, err := o.Begin()
+	if err != nil {
+		return
+	}
+	defer func() {
+		if err != nil {
+			_ = to.Rollback()
+		} else {
+			_ = to.Commit()
+		}
+	}()
+
+	//删除原有的研究员派点信息
+	sql := `DELETE FROM cygx_allocation_company_contract WHERE company_contract_id = ? AND  chart_permission_name  IN ('研选扣点包','研选订阅','买方研选') `
+	_, err = to.Raw(sql, companyContractId).Exec()
+	if err != nil {
+		return
+	}
+	//删除原有的行业派点信息
+	sql = `	DELETE FROM cygx_allocation_company_contract_permission WHERE company_contract_id = ? AND  chart_permission_name  IN ('研选扣点包','研选订阅','买方研选') `
+	_, err = to.Raw(sql, companyContractId).Exec()
+	if err != nil {
+		return
+	}
+
+	//批量添加研究员派点信息
+	_, err = to.InsertMulti(len(items), items)
+	if err != nil {
+		return
+	}
+
+	//批量添加行业派点信息
+	_, err = to.InsertMulti(len(itemsPermission), itemsPermission)
+	if err != nil {
+		return
+	}
+
+	return
+}
+
+// 修改
+func Cygx_allocation_company_contractEdit(proportion float64, allocation_company_contract_id int) (err error) {
+	o := orm.NewOrmUsingDB("hz_cygx")
+	sql := `UPDATE cygx_allocation_company_contract SET proportion =?  WHERE allocation_company_contract_id=? `
+	_, err = o.Raw(sql, proportion, allocation_company_contract_id).Exec()
+	return
+}
+
+// 修改
+func Cygx_allocation_company_contract_permissionEdit(proportion, moneyAvg float64, allocation_company_contract_id int) (err error) {
+	o := orm.NewOrmUsingDB("hz_cygx")
+	sql := `UPDATE cygx_allocation_company_contract_permission SET proportion =?,money_avg = ?  WHERE allocation_company_contract_id=? `
+	_, err = o.Raw(sql, proportion, moneyAvg, allocation_company_contract_id).Exec()
+	return
+}

+ 161 - 0
services/cygx/contract_allocation.go

@@ -640,3 +640,164 @@ func initCrm13_2() {
 
 	fmt.Println(len(items))
 }
+
+func initCRM_15_4() {
+	var conditionAllocation string
+	var parsAllocation []interface{}
+	conditionAllocation = "  AND company_contract_id  IN  (SELECT   company_contract_id  FROM  cygx_allocation_company_contract_permission  WHERE chart_permission_name  LIKE '%研选%')  GROUP BY company_contract_id  "
+	allocationCompanyContractPermissionList, err := cygx.GetCygxAllocationCompanyContractPermissionList(conditionAllocation, parsAllocation)
+	if err != nil {
+		fmt.Println(err)
+		return
+	}
+	var companyContractIds []int
+	for _, v := range allocationCompanyContractPermissionList {
+		companyContractIds = append(companyContractIds, v.CompanyContractId)
+	}
+	lenCon := len(companyContractIds)
+	for _, v := range companyContractIds {
+		UpdateInitAvg(v)
+	}
+	fmt.Println("lenCon", lenCon)
+	return
+}
+
+//func init() {
+//	UpdateInitAvg(1249)
+//}
+
+// 合并研选订阅与研选扣点包,为买方研选
+func UpdateInit(companyContractId int) {
+	fmt.Println(companyContractId)
+
+	allocationNames := []string{"董衡", "高亦文", "吴昂迪", "冯柯然", "汪洋"}
+	fmt.Println(allocationNames)
+	listPerssion, err := cygx.GetCygxAllocationCompanyContractPermissionListByIdInitYx(companyContractId)
+	if err != nil {
+		fmt.Println(err)
+		return
+	}
+
+	//listUser, err := cygx.GetCygxAllocationCompanyContractListById(companyContractId)
+	//if err != nil {
+	//	fmt.Println(err)
+	//	return
+	//}
+
+	var totalMoney float64
+	var items []*cygx.CygxAllocationCompanyContract
+	var itemsPermission []*cygx.CygxAllocationCompanyContractPermission
+
+	//var proportionSum float64 // 校验前端传过来的占比使用
+	var AdminId int
+	var AdminName string
+	for _, v := range listPerssion {
+		totalMoney += v.Money
+		AdminId = v.AdminId
+		AdminName = v.AdminName
+	}
+
+	fmt.Println(totalMoney)
+	//return
+
+	itemPermission := new(cygx.CygxAllocationCompanyContractPermission)
+	itemPermission.CompanyContractId = companyContractId
+	itemPermission.AdminId = AdminId
+	itemPermission.AdminName = AdminName
+	//itemPermission.Proportion = v.Money / totalMoney * 100
+	itemPermission.Money = totalMoney
+	itemPermission.ChartPermissionName = utils.CHART_PERMISSION_NAME_MAI_FANG_YANXUAN
+	itemPermission.CreateTime = time.Now()
+	itemPermission.ModifyTime = time.Now()
+	itemsPermission = append(itemsPermission, itemPermission)
+	for _, v := range allocationNames {
+		item := new(cygx.CygxAllocationCompanyContract)
+		item.CompanyContractId = companyContractId
+		item.AdminId = AdminId
+		item.AdminName = AdminName
+		//item.Proportion =
+		item.Money = totalMoney / 5
+		item.RealName = v
+		item.ChartPermissionName = utils.CHART_PERMISSION_NAME_MAI_FANG_YANXUAN
+		item.CreateTime = time.Now()
+		item.ModifyTime = time.Now()
+		items = append(items, item)
+	}
+	fmt.Println(len(items))
+	fmt.Println(len(itemsPermission))
+	//return
+	err = cygx.AddAndUpdateCygxAllocationCompanyContractInit(items, itemsPermission, companyContractId)
+	fmt.Println(err)
+}
+
+func UpdateInitAvg(companyContractId int) {
+	fmt.Println(companyContractId)
+	listPerssion, err := cygx.GetCygxAllocationCompanyContractPermissionListByIdInit(companyContractId)
+	if err != nil {
+		fmt.Println(err)
+		return
+	}
+
+	listUser, err := cygx.GetCygxAllocationCompanyContractListById(companyContractId)
+	if err != nil {
+		fmt.Println(err)
+		return
+	}
+
+	var totalMoney float64
+	var items []*cygx.CygxAllocationCompanyContract
+	var itemsPermission []*cygx.CygxAllocationCompanyContractPermission
+
+	//var proportionSum float64 // 校验前端传过来的占比使用
+	for _, v := range listPerssion {
+		totalMoney += v.Money
+	}
+	moneyAvg := totalMoney / float64(len(listPerssion))
+	for _, v := range listPerssion {
+		itemPermission := new(cygx.CygxAllocationCompanyContractPermission)
+		itemPermission.CompanyContractId = companyContractId
+		itemPermission.AdminId = v.AdminId
+		itemPermission.AdminName = v.AdminName
+		itemPermission.Proportion = v.Money / totalMoney * 100
+		itemPermission.Money = v.Money
+		itemPermission.MoneyAvg = moneyAvg
+		itemPermission.ChartPermissionName = v.ChartPermissionName
+		itemPermission.CreateTime = time.Now()
+		itemPermission.ModifyTime = time.Now()
+		itemsPermission = append(itemsPermission, itemPermission)
+		fmt.Println(v.Money, "___", itemPermission.Proportion, "___", v.AllocationCompanyContractId)
+		err = cygx.Cygx_allocation_company_contract_permissionEdit(itemPermission.Proportion, itemPermission.MoneyAvg, v.AllocationCompanyContractId)
+		//fmt.Println("AllocationCompanyContractId", v.AllocationCompanyContractId)
+		if err != nil {
+			fmt.Println(err)
+			return
+		}
+	}
+
+	//return
+	fmt.Println("研究员修改")
+	//var userProportionSum float64 // 校验前端传过来的占比使用
+	for _, v2 := range listUser {
+		item := new(cygx.CygxAllocationCompanyContract)
+		item.CompanyContractId = companyContractId
+		item.AdminId = v2.AdminId
+		item.AdminName = v2.RealName
+		item.Proportion = v2.Money / totalMoney * 100
+		item.Money = v2.Money
+		item.RealName = v2.RealName
+		item.ChartPermissionName = v2.ChartPermissionName
+		item.CreateTime = time.Now()
+		item.ModifyTime = time.Now()
+		items = append(items, item)
+
+		err = cygx.Cygx_allocation_company_contractEdit(item.Proportion, v2.AllocationCompanyContractId)
+		fmt.Println("AllocationCompanyContractId", v2.AllocationCompanyContractId)
+		if err != nil {
+			fmt.Println(err)
+			return
+		}
+	}
+
+	//err = cygx.AddAndUpdateCygxAllocationCompanyContractInit(items, itemsPermission, companyContractId)
+	//fmt.Println(err)
+}