Parcourir la source

Merge remote-tracking branch 'origin/debug' into debug

zwxi il y a 1 an
Parent
commit
0b51e39731

+ 1 - 3
controllers/company.go

@@ -1713,9 +1713,7 @@ func (this *CompanyController) List() {
 				todoButtonColor = "gray"
 			}
 			//永续客户X类试用客户出参转换
-			if v.StatusStr == utils.COMPANY_STATUS_FOREVER {
-				v.StatusStr = utils.COMPANY_STATUS_X_CLASS_TRY_OUT
-			}
+			v.StatusStr = strings.Replace(v.StatusStr, utils.COMPANY_STATUS_FOREVER, utils.COMPANY_STATUS_X_CLASS_TRY_OUT, -1)
 
 			companyList := &company.CompanyListItem{
 				CompanyId:        v.CompanyId,

+ 35 - 77
controllers/company_apply.go

@@ -2013,11 +2013,28 @@ func (this *CompanyApplyController) ApplyContract() {
 			return
 		}
 
+		totalForever, err := company.GetCompanyProductRaiForeverCount(companyId) //判断是否是权益的永续客户
+		if err != nil {
+			br.Msg = "获取失败"
+			br.ErrMsg = "获取客户信息失败,Err:" + err.Error()
+			return
+		}
 		// 大套餐
 		bigPackage70, bigPackage45 := new(company.PermissionLookItem), new(company.PermissionLookItem)
-		bigPackage70.PermissionName = utils.CHART_PERMISSION_NAME_70W
-		bigPackage45.PermissionName = utils.CHART_PERMISSION_NAME_45W
-		plist.Items = append(plist.Items, bigPackage45, bigPackage70)
+		if totalForever > 0 {
+			//filterPermissionName := []string{"专家", "路演服务", "调研", "研选订阅", "研选扣点包"} //权益的永续客户这些不展示
+			//for _, v := range items {
+			//	if utils.InArrayByStr(filterPermissionName, v.PermissionName) {
+			//		continue
+			//	}
+			//	p.Items = append(p.Items, v)
+			//}
+
+		} else {
+			bigPackage70.PermissionName = utils.CHART_PERMISSION_NAME_70W
+			bigPackage45.PermissionName = utils.CHART_PERMISSION_NAME_45W
+			plist.Items = append(plist.Items, bigPackage45, bigPackage70)
+		}
 
 		// 是否为内部人员, 内部人员需要拆分行业主客观
 		isRai, e := services.CheckRaiAdmin(sysUser.AdminId)
@@ -2071,21 +2088,20 @@ func (this *CompanyApplyController) ApplyContract() {
 		}
 		//mapChartPermissionId := make(map[int]int)
 		mapChartPermissionName := make(map[string]string) // 行业主客观防止重复写入Items用的
+		filterPermissionName := []string{}
+		if totalForever == 0 {
+			filterPermissionName = []string{"专家", "路演服务"} // 需要过滤不展示的行业
+		} else {
+			filterPermissionName = []string{"专家", "路演服务", "调研", "研选订阅", "研选扣点包"} //权益的永续客户这些不展示
+		}
 		for _, n := range items {
-			//count, err := company.GetCompanyContractPermissionCheckByContractId(companyId, contractItem.CompanyContractId, n.ChartPermissionId)
-			//if err != nil {
-			//	br.Msg = "获取失败"
-			//	br.ErrMsg = "获取权限信息失败,Err:" + err.Error()
-			//	return
-			//}
-
-			filterPermissionName := []string{"专家", "路演服务"} // 需要过滤不展示的行业
 			if utils.InArrayByStr(filterPermissionName, n.PermissionName) {
 				continue
 			}
-
+			if n.PermissionType == 2 && totalForever > 0 {
+				continue
+			}
 			if utils.InArrayByInt(permissionIds, n.ChartPermissionId) {
-				fmt.Println(1)
 				n.Checked = true
 				if _, ok := mapUpgrade[n.ChartPermissionId]; ok {
 					checkList = append(checkList, n.ChartPermissionId+utils.PERMISSION_ID_UPGRADE)
@@ -2108,7 +2124,6 @@ func (this *CompanyApplyController) ApplyContract() {
 						}
 					}
 				}
-				//mapChartPermissionId[n.ChartPermissionId] = n.ChartPermissionId
 			}
 
 			// 买方研选3w/5w/10w
@@ -2120,20 +2135,7 @@ func (this *CompanyApplyController) ApplyContract() {
 
 				continue
 			}
-
-			//if mapChartPermissionName[n.PermissionName] == "" {
-			//	plist.Items = append(plist.Items, n)
-			//	mapChartPermissionName[n.PermissionName] = n.PermissionName
-			//	if strings.Contains("医药消费科技智造", n.PermissionName) {
-			//		vS := new(company.PermissionLookItem)
-			//		vS.ChartPermissionId = n.ChartPermissionId + utils.PERMISSION_ID_UPGRADE
-			//		vS.PermissionName = n.PermissionName + "(升级)"
-			//		vS.PermissionType = n.PermissionType
-			//		vS.Checked = n.Checked
-			//		plist.Items = append(plist.Items, vS)
-			//	}
-			//}
-
+			//if totalForever == 0 {
 			// 四行业主客观/升级
 			if mapChartPermissionName[n.PermissionName] == "" {
 				mapChartPermissionName[n.PermissionName] = n.PermissionName
@@ -2142,7 +2144,7 @@ func (this *CompanyApplyController) ApplyContract() {
 					continue
 				}
 				// 内部人员需要拆分主客观权限
-				if isRai {
+				if isRai && totalForever == 0 {
 					n.Child = make([]*company.PermissionLookItem, 0)
 					n.Child = append(n.Child, &company.PermissionLookItem{
 						ChartPermissionId: childSubMap[n.PermissionName],
@@ -2154,9 +2156,11 @@ func (this *CompanyApplyController) ApplyContract() {
 						PermissionType:    2,
 					})
 				}
+			}
 
-				plist.Items = append(plist.Items, n)
+			plist.Items = append(plist.Items, n)
 
+			if totalForever == 0 {
 				t := new(company.PermissionLookItem)
 				t.ChartPermissionId = n.ChartPermissionId + utils.PERMISSION_ID_UPGRADE
 				t.PermissionName = n.PermissionName + "(升级)"
@@ -2165,52 +2169,6 @@ func (this *CompanyApplyController) ApplyContract() {
 				plist.Items = append(plist.Items, t)
 			}
 		}
-		//itemsType, err := company.GetPermissionSetItemsType(2, v)
-		//if err != nil {
-		//	br.Msg = "获取失败"
-		//	br.ErrMsg = "获取权限信息失败,Err:" + err.Error()
-		//	return
-		//}
-		//含有主客观的权限处理
-		//mapChartPermission := make(map[string]int)
-		//pType := new(company.PermissionSetItemType)
-		//for _, v := range itemsType {
-		//	if mapChartPermission[v.PermissionName] == 0 {
-		//		mapChartPermission[v.PermissionName] = v.ChartPermissionId
-		//		pType = new(company.PermissionSetItemType)
-		//		pType.PermissionName = v.PermissionName
-		//	}
-		//	if mapChartPermissionId[v.ChartPermissionId] > 0 {
-		//		v.Checked = true
-		//	}
-		//	pType.Items = append(pType.Items, v)
-		//	if len(pType.Items) == 2 {
-		//		var checkedMinateBool bool
-		//		pType.Checked = true
-		//		for _, pv := range pType.Items {
-		//			if pv.Checked == false {
-		//				pType.Checked = false
-		//			} else {
-		//				checkedMinateBool = true
-		//				pType.NoClicking = true
-		//			}
-		//		}
-		//		if checkedMinateBool == true && pType.Checked == false {
-		//			pType.CheckedMinate = true
-		//		}
-		//		pListType.Items = append(pListType.Items, pType)
-		//	}
-		//}
-
-		////没有主客观的权限处理
-		//for _, v := range items {
-		//	fmt.Println(v)
-		//	if strings.Index(v.Remark, "主观") == -1 && strings.Index(v.Remark, "客观") == -1 {
-		//		if mapChartPermissionId[v.ChartPermissionId] > 0 {
-		//			v.Checked = true
-		//		}
-		//		plist.Items = append(plist.Items, v)
-		//	}
 		//}
 
 		// 如果checklist 里的值 没有在items里,则不返回给前端
@@ -2247,7 +2205,7 @@ func (this *CompanyApplyController) ApplyContract() {
 		//plist.CheckList = finalCheckList
 		plist.CheckList = checkList
 		contractItem.PermissionList = append(contractItem.PermissionList, plist)
-		contractItem.Quarter, _ = utils.GetQuarterStrStartDatesInRangeHaveYear(contractItem.StartDate, contractItem.EndDate)
+		contractItem.Quarter, _ = utils.GetQuarterStrStartDatesInRangeHaveYear(contractItem.StartDate, contractItem.EndDate) //季度信息
 	}
 
 	resp := new(company.ApplyContractResp)

+ 1 - 1
controllers/company_permission.go

@@ -45,7 +45,7 @@ func (this *CompanyPermissionController) List() {
 	noUpgrade, _ := this.GetBool("NoUpgrade", false)                       // 添加客户、领取客户=true; 申请转正、续约申请=false
 	isShowYanXuanKouDian, _ := this.GetBool("IsShowYanXuanKouDian", false) // 是否展示研选扣点
 	companyStatus := this.GetString("CompanyStatus")                       // 客户状态
-	if companyStatus == utils.COMPANY_STATUS_X_CLASS_TRY_OUT {
+	if companyStatus == utils.COMPANY_STATUS_X_CLASS_TRY_OUT || strings.Contains(companyStatus, utils.COMPANY_STATUS_FOREVER) {
 		companyStatus = utils.COMPANY_STATUS_FOREVER
 	}
 	var productId int

+ 26 - 11
controllers/cygx/enter_score.go

@@ -712,7 +712,6 @@ func (this *EnterScoreController) EnterScoreScoreOverview() {
 				mapenterScoreTypeCompanyIds[v.CompanyId] = true //记录按照百分比录入的公司
 			}
 		}
-		fmt.Println(enterScoreIds)
 		var companyCondition string
 		var companypars []interface{}
 		companyCondition += ` AND b.product_name = ? `
@@ -727,17 +726,28 @@ func (this *EnterScoreController) EnterScoreScoreOverview() {
 			br.ErrMsg = "获取失败,GetAdminLookUserCompanyIds Err:" + err.Error()
 			return
 		}
+		var newcompanyIds []int
+		lencompanyIds := len(companyIds)
+		var searchcompanyIds []int
 		//如果机构搜索做了限制 ,那么公司列表的纵向展示也做限制
 		if keyWord != "" {
 			for _, v := range list {
-				companyIds = append(companyIds, v.CompanyId)
+				searchcompanyIds = append(searchcompanyIds, v.CompanyId)
+			}
+			if lencompanyIds > 0 {
+				newcompanyIds = utils.IntersectInt(searchcompanyIds, companyIds) //获取销售可见权限,与搜索权限的交集
+			} else {
+				newcompanyIds = searchcompanyIds
 			}
+		} else {
+			newcompanyIds = companyIds
 		}
 
-		lencompanyIds := len(companyIds)
-		if lencompanyIds > 0 {
-			companyCondition += ` AND a.company_id IN (` + utils.GetOrmInReplace(lencompanyIds) + `)`
-			companypars = append(companypars, companyIds)
+		newlencompanyIds := len(newcompanyIds)
+
+		if newlencompanyIds > 0 {
+			companyCondition += ` AND a.company_id IN (` + utils.GetOrmInReplace(newlencompanyIds) + `)`
+			companypars = append(companypars, newcompanyIds)
 		}
 
 		if city != "" {
@@ -754,8 +764,8 @@ func (this *EnterScoreController) EnterScoreScoreOverview() {
 			br.ErrMsg = "获取失败,Err:" + err.Error()
 			return
 		}
-
-		listResearcher, err := cygx.GeCygxEnterScoreResearcherListByIds(enterScoreIds) //获取所有的研究员
+		//fmt.Println(enterScoreIds)
+		listResearcher, err := cygx.GeCygxEnterScoreResearcherListByIds(enterScoreIds, newcompanyIds) //获取所有的研究员
 		if err != nil {
 			br.Msg = "获取失败"
 			br.ErrMsg = "获取失败,GetCygxEnterScorePermissionListByIds Err:" + err.Error()
@@ -770,6 +780,7 @@ func (this *EnterScoreController) EnterScoreScoreOverview() {
 			if v.Proportion == 0 {
 				continue
 			}
+
 			if !mapResearcherbool[v.RealName] {
 				researcherArr = append(researcherArr, v.RealName)
 				mapResearcherbool[v.RealName] = true
@@ -1095,14 +1106,18 @@ func (this *EnterScoreController) EnterScoreRankingOverview() {
 		companyCondition += ` AND b.seller_id IN (` + adminId + `) `
 	}
 	if city != "" {
-		companyCondition += ` AND a.city = ? `
-		companypars = append(companypars, city)
+		//传过来多个城市的时候的筛选
+		citySlice := strings.Split(city, ",")
+		city = strings.Join(citySlice, "','")
+		city = "'" + city + "'"
+		companyCondition += ` AND a.city  IN  (` + city + `) `
 	}
+
 	//权益申请销售只能看到自己名下的客户的申请
 	companyIds, err := cygxService.GetAdminLookUserCompanyIdsBySelf(AdminUser)
 	if err != nil {
 		br.Msg = "获取失败"
-		br.ErrMsg = "获取失败,GetAdminLookUserCompanyIds Err:" + err.Error()
+		br.ErrMsg = "获取失败,GetAdminLookUserCompanyIdsBySelf Err:" + err.Error()
 		return
 	}
 	lencompanyIds := len(companyIds)

+ 17 - 4
models/company/company_approval.go

@@ -297,7 +297,8 @@ func TryOutToFormalXClassRai(companyId, productId, sellerId, companyApprovalId,
 			err = to.Commit()
 		}
 	}()
-
+	//123月份申请转正通过时,将试用期限延长(更新)至4.30。456月份申请转正通过时,将试用期限延长至7.31。789月份申请转正通过时,将试用期限延长至10.31。101112月份申请转正通过时,将试用期限延长至次年1.31。
+	endDate = utils.GetLastDayOfQuarter(time.Now()).Format(utils.FormatDate)
 	// 套餐类型为0时, 不更新套餐类型,权益与FICC开始与结束时间一起修改
 	sql := `UPDATE company_product SET status='永续',try_out_time=NULL,last_description_time=NULL,freeze_time=NULL,renewal_intention=0,is_suspend=0,is_formal=1,approve_status='已审批',end_date=?,rai_package_type=?,modify_time=NOW(),formal_time=NOW(),try_stage=1  WHERE company_id=?  `
 	_, err = to.Raw(sql, endDate, raiPackageType, companyId).Exec()
@@ -331,8 +332,8 @@ func TryOutToFormalXClassRai(companyId, productId, sellerId, companyApprovalId,
 		go AddCompanyPermissionLog(cpLog)
 	}
 
-	sql = `UPDATE company_report_permission SET end_date=? WHERE  company_id=?  ` // 更改权限的开始时间结束时间
-	_, err = to.Raw(sql, endDate, companyId).Exec()
+	sql = `DELETE FROM company_report_permission WHERE company_id=? AND product_id=?`
+	_, err = to.Raw(sql, companyId, productId).Exec()
 	if err != nil {
 		return
 	}
@@ -352,7 +353,7 @@ func TryOutToFormalXClassRai(companyId, productId, sellerId, companyApprovalId,
 			LastUpdatedTime:    time.Now(),
 			ChartPermissionId:  pv.ChartPermissionId,
 			StartDate:          pv.StartDate,
-			EndDate:            pv.EndDate,
+			EndDate:            endDate,
 			ProductId:          productId,
 			ProductName:        productName,
 			CompanyContractId:  companyContractId,
@@ -361,8 +362,20 @@ func TryOutToFormalXClassRai(companyId, productId, sellerId, companyApprovalId,
 			IsUpgrade:          pv.IsUpgrade,
 			ExpensiveYx:        pv.ExpensiveYx,
 		}
+		newId, tmpErr := to.Insert(tmpCompanyReportPermission)
+		if tmpErr != nil {
+			err = tmpErr
+			return
+		}
+		tmpCompanyReportPermission.CompanyReportPermissionId = newId
 		newCompanyReportPermissionList = append(newCompanyReportPermissionList, tmpCompanyReportPermission)
 	}
+	sql = `UPDATE company_report_permission SET  status='永续', end_date=? WHERE  company_id=?  ` // 更改权限的开始时间结束时间
+	_, err = to.Raw(sql, endDate, companyId).Exec()
+	if err != nil {
+		return
+	}
+
 	sql = `UPDATE company_contract SET status=1 WHERE company_contract_id=? AND company_id=? AND product_id=? `
 	_, err = to.Raw(sql, companyContractId, companyId, productId).Exec()
 	if err != nil {

+ 10 - 2
models/cygx/enter_score.go

@@ -319,14 +319,22 @@ func GeCygxEnterScoreResearcherListById(enterScoreId int) (items []*CygxEnterSco
 }
 
 // 根据多个录分ID获取研究员列表
-func GeCygxEnterScoreResearcherListByIds(enterScoreIds []int) (items []*CygxEnterScoreResearcher, err error) {
+func GeCygxEnterScoreResearcherListByIds(enterScoreIds, newcompanyIds []int) (items []*CygxEnterScoreResearcher, err error) {
 	lenArr := len(enterScoreIds)
 	if lenArr == 0 {
 		return
 	}
 	o := orm.NewOrmUsingDB("hz_cygx")
 	sql := `SELECT * FROM cygx_enter_score_researcher  WHERE  enter_score_id IN  (` + utils.GetOrmInReplace(lenArr) + `)  AND  proportion > 0  `
-	_, err = o.Raw(sql, enterScoreIds).QueryRows(&items)
+
+	//过滤销售可见的公司与研究员
+	lenCompany := len(newcompanyIds)
+	if lenCompany > 0 {
+		sql += ` AND  company_id IN  (` + utils.GetOrmInReplace(lenCompany) + `) `
+		_, err = o.Raw(sql, enterScoreIds, newcompanyIds).QueryRows(&items)
+	} else {
+		_, err = o.Raw(sql, enterScoreIds).QueryRows(&items)
+	}
 	return
 }
 

+ 2 - 2
services/company_apply/company_approval.go

@@ -670,8 +670,8 @@ func afterApproved(companyApprovalId int, opUserId int, opUserName string) (err
 		//}
 		//如果是权益的用户客户转正审批单独走
 		if companyProduct.Status == utils.COMPANY_STATUS_FOREVER && companyProduct.ProductId == 2 {
-			contractInfo.StartDate = contractStartDate.AddDate(0, 4, 0).Format(utils.FormatDate) // 开始时间与结束时间都加三个月
-			contractInfo.EndDate = contractEndDate.AddDate(0, 4, 0).Format(utils.FormatDate)
+			//contractInfo.StartDate = contractStartDate.AddDate(0, 4, 0).Format(utils.FormatDate) // 开始时间与结束时间都加三个月
+			//contractInfo.EndDate = contractEndDate.AddDate(0, 4, 0).Format(utils.FormatDate)
 			startDate = contractInfo.StartDate
 			endDate = contractInfo.EndDate
 			companyReportPermissionList, tmpErr = company.TryOutToFormalXClassRai(recodeInfo.CompanyId, recodeInfo.ProductId, opUser.AdminId, recodeInfo.CompanyApprovalId, contractInfo.CompanyContractId, contractInfo.StartDate, contractInfo.EndDate, opUser.RealName, companyProduct.ProductName, contractInfo.RaiPackageType)

+ 14 - 0
utils/common.go

@@ -2339,3 +2339,17 @@ func GetQuarterStrStartDatesInRangeHaveYear(startTimeStr, endTimeStr string) (qu
 	quartersStar = strings.Join(quarters, ",")
 	return quartersStar, nil
 }
+
+// 获取当前时间所属季度的最后一天,并往后推一个月
+func GetLastDayOfQuarter(t time.Time) time.Time {
+	month := (t.Month()-1)/3*3 + 1 // 计算当前季度的第一个月份
+	nextQuarter := month + 3
+	year := t.Year()
+	if nextQuarter > 12 {
+		nextQuarter -= 12
+		year++
+	}
+	// 构建当前季度的最后一天
+	lastDay := time.Date(year, time.Month(nextQuarter), 1, 0, 0, 0, 0, time.UTC).AddDate(0, 1, 0).Add(-time.Second)
+	return lastDay
+}