浏览代码

Merge branch 'crm/crm_16.2.2' of http://8.136.199.33:3000/hongze/hz_crm_api

zhangchuanxing 4 月之前
父节点
当前提交
a66148f42a
共有 3 个文件被更改,包括 83 次插入61 次删除
  1. 46 44
      controllers/company_apply_v2.go
  2. 23 0
      services/contract/contract.go
  3. 14 17
      services/cygx/activity_special.go

+ 46 - 44
controllers/company_apply_v2.go

@@ -77,6 +77,49 @@ func (this *CompanyApplyController) ApplyServiceUpdate() {
 		br.ErrMsg = "客户类型为:" + req.CompanyType
 		return
 	}
+
+	//添加缓存,避免多次点击提交
+	{
+		deleteCache := true
+		cacheKey := "CACHE_COMPANY_APPLY_" + strconv.Itoa(req.CompanyId) + "_" + strconv.Itoa(productId)
+		defer func() {
+			if deleteCache {
+				utils.Rc.Delete(cacheKey)
+			}
+		}()
+		if !utils.Rc.SetNX(cacheKey, 1, 30*time.Second) {
+			deleteCache = false
+			br.Msg = "系统处理中,请勿重复操作"
+			br.ErrMsg = "系统处理中,请勿重复操作" + sysUser.RealName + ";data:" + string(this.Ctx.Input.RequestBody)
+			return
+		}
+	}
+
+	approveRoleTypeCode := ""
+	if productId == 1 {
+		approveRoleTypeCode = utils.ROLE_TYPE_CODE_FICC_ADMIN
+	} else {
+		approveRoleTypeCode = utils.ROLE_TYPE_CODE_RAI_ADMIN
+	}
+	companyProduct, err := company.GetCompanyProductByCompanyIdAndProductId(req.CompanyId, productId)
+	if err != nil {
+		br.Msg = "获取客户信息失败"
+		br.ErrMsg = "获取客户信息失败"
+		return
+	}
+	if companyProduct.Status != utils.COMPANY_STATUS_FORMAL && companyProduct.Status != utils.COMPANY_STATUS_TRY_OUT {
+		br.Msg = "客户状态为:" + companyProduct.Status + ";不可进行服务更新申请"
+		br.ErrMsg = "客户状态为:" + companyProduct.Status + ";不可进行服务更新申请"
+		return
+	}
+
+	//客户归属判断-当前销售/咨询组共享销售
+	if companyProduct.SellerId != sysUser.AdminId && companyProduct.ShareSellerId != sysUser.AdminId {
+		br.Msg = "客户信息异常"
+		br.ErrMsg = "客户信息异常,不是当前所属销售,客户所属销售:" + companyProduct.SellerName + ";当前销售:" + sysUser.AdminName
+		return
+	}
+
 	mapPermissionIdUpgrade := make(map[int]int, 0)
 	mapPermissionIdExpensive := make(map[int]int, 0)
 	var raicontractType string
@@ -100,7 +143,7 @@ func (this *CompanyApplyController) ApplyServiceUpdate() {
 
 		//权益的新签合同重新定义,如果合同起始时间在新签合同起始日期 1年之内的,仍为新签合同。
 		raicontractType = req.ContractType
-		if raicontractType != "新签合同" {
+		if raicontractType != "新签合同" && companyProduct.Status != utils.COMPANY_STATUS_FOREVER {
 			//startDateTime, _ := time.Parse(utils.FormatDate, req.StartDate)
 			//startDateTime = startDateTime.AddDate(-1, 0, 0)
 			totalLastYear, err := contractService.GetCompanyContractCountRaiByLastYear(req.CompanyId, req.StartDate)
@@ -124,47 +167,6 @@ func (this *CompanyApplyController) ApplyServiceUpdate() {
 		req.PermissionIds = permissionStr
 	}
 
-	//添加缓存,避免多次点击提交
-	{
-		deleteCache := true
-		cacheKey := "CACHE_COMPANY_APPLY_" + strconv.Itoa(req.CompanyId) + "_" + strconv.Itoa(productId)
-		defer func() {
-			if deleteCache {
-				utils.Rc.Delete(cacheKey)
-			}
-		}()
-		if !utils.Rc.SetNX(cacheKey, 1, 30*time.Second) {
-			deleteCache = false
-			br.Msg = "系统处理中,请勿重复操作"
-			br.ErrMsg = "系统处理中,请勿重复操作" + sysUser.RealName + ";data:" + string(this.Ctx.Input.RequestBody)
-			return
-		}
-	}
-
-	approveRoleTypeCode := ""
-	if productId == 1 {
-		approveRoleTypeCode = utils.ROLE_TYPE_CODE_FICC_ADMIN
-	} else {
-		approveRoleTypeCode = utils.ROLE_TYPE_CODE_RAI_ADMIN
-	}
-	companyProduct, err := company.GetCompanyProductByCompanyIdAndProductId(req.CompanyId, productId)
-	if err != nil {
-		br.Msg = "获取客户信息失败"
-		br.ErrMsg = "获取客户信息失败"
-		return
-	}
-	if companyProduct.Status != utils.COMPANY_STATUS_FORMAL && companyProduct.Status != utils.COMPANY_STATUS_TRY_OUT {
-		br.Msg = "客户状态为:" + companyProduct.Status + ";不可进行服务更新申请"
-		br.ErrMsg = "客户状态为:" + companyProduct.Status + ";不可进行服务更新申请"
-		return
-	}
-
-	//客户归属判断-当前销售/咨询组共享销售
-	if companyProduct.SellerId != sysUser.AdminId && companyProduct.ShareSellerId != sysUser.AdminId {
-		br.Msg = "客户信息异常"
-		br.ErrMsg = "客户信息异常,不是当前所属销售,客户所属销售:" + companyProduct.SellerName + ";当前销售:" + sysUser.AdminName
-		return
-	}
 	var approveUserId int
 	var approveUserRealName string
 	applyMethod := 5 //续约服务
@@ -616,7 +618,7 @@ func (this *CompanyApplyController) ApplyTurnPositive() {
 		if productId == 2 {
 			//权益的新签合同重新定义,如果合同起始时间在新签合同起始日期 1年之内的,仍为新签合同。
 			raicontractType = contractType
-			if raicontractType != "新签合同" {
+			if raicontractType != "新签合同" && companyProduct.Status != utils.COMPANY_STATUS_FOREVER {
 				//startDateTime, _ := time.Parse(utils.FormatDate, req.StartDate)
 				//startDateTime = startDateTime.AddDate(-1, 0, 0)
 				totalLastYear, err := contractService.GetCompanyContractCountRaiByLastYear(req.CompanyId, req.StartDate)
@@ -1141,7 +1143,7 @@ func (this *CompanyApplyController) ApplyBySystemContract() {
 	if productId == 2 {
 		//权益的新签合同重新定义,如果合同起始时间在新签合同起始日期 1年之内的,仍为新签合同。
 		raicontractType = contractType
-		if raicontractType != "新签合同" {
+		if raicontractType != "新签合同" && companyProduct.Status != utils.COMPANY_STATUS_FOREVER {
 			//startDateTime := contractDetail.StartDate.AddDate(-1, 0, 0)
 			totalLastYear, err := contractService.GetCompanyContractCountRaiByLastYear(req.CompanyId, contractDetail.StartDate.Format(utils.FormatDate))
 			if err != nil {

+ 23 - 0
services/contract/contract.go

@@ -86,6 +86,29 @@ func AddContract(req request.AddContractReq, sellerId, productId int, sellerName
 		err = errors.New(fmt.Sprint("合同编号生成异常,Err:", err))
 		return
 	}
+
+	//权益的新签合同重新定义,如果合同起始时间在第一份新签合同起始日期 1年之内的,仍为新签合同。
+	if productId == utils.COMPANY_PRODUCT_RAI_ID && req.ContractType == "" {
+		//根据社会信用码获取客户信息
+		companyInfo, tmpErr := company.GetCompanyByCreditCode(creditCode)
+		//如果查询异常,且并不是在系统中找不到该社会信用码,那么就异常返回
+		if tmpErr != nil {
+			err = errors.New(fmt.Sprint("根据社会信用码获取客户信息,Err:", tmpErr))
+			return
+		}
+		totalLastYear, tmpErr := GetCompanyContractCountRaiByLastYear(companyInfo.CompanyId, req.StartDate)
+		if tmpErr != nil {
+			err = errors.New(fmt.Sprint("获取第一份新签合同起始日期是否1年之内失败,Err:", tmpErr))
+			return
+		}
+		if totalLastYear > 0 {
+			req.ContractType = "新签合同"
+		} else {
+			req.ContractType = "续约合同"
+		}
+
+	}
+
 	contractInfo := &contract.Contract{
 		ContractCode:         contractCode,
 		SellerId:             sellerId,

+ 14 - 17
services/cygx/activity_special.go

@@ -557,13 +557,21 @@ func GetChartPermissionSpecialSurplusByCompany(companyId int) (userType int, tri
 
 // 审批通过的时候专项调研次数更新
 func ActivitySpecialCompanyApproval(companyId, companyContractId int, companyName string) (err error) {
-	userType, packageType, _, _, _ := GetUserType(companyId)
+	//userType, packageType, _, _, _ := GetUserType(companyId)
 	// 获取继承点数
 	//inheritList, e := cygx.GetCygxActivitySpecialInheritPointsByCompanyId(companyId)
 	//if e != nil && e.Error() != utils.ErrNoRow() {
 	//	err = errors.New("GetCygxActivitySpecialInheritPointsByCompanyId, Err: " + e.Error())
 	//}
 	//chartNameMap := map[string]int{utils.YI_YAO_NAME: 0, utils.XIAO_FEI_NAME: 0, utils.KE_JI_NAME: 0, utils.ZHI_ZAO_NAME: 0}
+
+	// 获取合同信息-套餐信息
+	companyContract, e := company.GetCompanyContractById(companyContractId)
+	if e != nil {
+		err = errors.New("GetCompanyContractById, Err: " + e.Error())
+		return
+	}
+	packageType := companyContract.RaiPackageType
 	var items []*cygx.CygxActivitySpecialPermissionPoints
 
 	itemBill := new(cygx.CygxActivitySpecialTripBill)
@@ -573,12 +581,12 @@ func ActivitySpecialCompanyApproval(companyId, companyContractId int, companyNam
 	itemBill.Source = 2
 	itemBill.DoType = 2
 	itemBill.Way = 3
-	if userType == 2 {
-		packageTypeMap := map[int]int{1: 16, 2: 10}
+	if packageType > 0 {
+		packageTypeMap := map[int]int{1: 16, 2: 12}
 		totalTrip := packageTypeMap[packageType]
 		itemBill.BillDetailed = totalTrip
 		itemBill.Total = strconv.Itoa(itemBill.BillDetailed) + "次"
-		if totalTrip == 10 {
+		if packageType == 2 {
 			itemBill.Content = "45w大套餐转正"
 		} else {
 			itemBill.Content = "70w大套餐转正"
@@ -594,13 +602,6 @@ func ActivitySpecialCompanyApproval(companyId, companyContractId int, companyNam
 		items = append(items, item)
 
 	} else {
-		//list, e := company.GetCompanyReportPermissionByCompanyIdAndProductId(companyId, 2)
-		//if e != nil && e.Error() != utils.ErrNoRow() {
-		//	err = errors.New("GetCompanyReportPermissionUpgrade, Err: " + e.Error())
-		//}
-		//if len(list) == 0 {
-		//	return
-		//}
 
 		var condition string
 		var pars []interface{}
@@ -612,10 +613,6 @@ func ActivitySpecialCompanyApproval(companyId, companyContractId int, companyNam
 			err = errors.New("GetCompanyContractPermissionList, Err: " + e.Error())
 			return
 		}
-		if e != nil && e.Error() != utils.ErrNoRow() {
-			err = errors.New("GetCygxAllocationCompanyContractPermissionListById, Err: " + e.Error())
-			return
-		}
 
 		if len(list) == 0 {
 			return
@@ -649,12 +646,12 @@ func ActivitySpecialCompanyApproval(companyId, companyContractId int, companyNam
 		itemBill.Content = "行业升级套餐转正"
 	}
 
-	e := cygx.MultiAddCygxActivitySpecialPermissionPoints(items)
+	e = cygx.MultiAddCygxActivitySpecialPermissionPoints(items)
 	if e != nil {
 		err = errors.New("MultiAddCygxActivitySpecialPermissionPoints, Err:" + e.Error())
 		return
 	}
-	if userType != 2 && len(items) > 0 {
+	if packageType == 0 && len(items) > 0 {
 		var condition string
 		var pars []interface{}
 		pars = make([]interface{}, 0)