瀏覽代碼

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

zwxi 1 年之前
父節點
當前提交
2c9883517f

+ 5 - 1
controllers/company.go

@@ -1712,7 +1712,11 @@ func (this *CompanyController) List() {
 			} else if strings.Contains(v.TodoStatuss, "无任务") {
 				todoButtonColor = "gray"
 			}
-			//if str
+			//永续客户X类试用客户出参转换
+			if v.StatusStr == utils.COMPANY_STATUS_FOREVER {
+				v.StatusStr = utils.COMPANY_STATUS_X_CLASS_TRY_OUT
+			}
+
 			companyList := &company.CompanyListItem{
 				CompanyId:        v.CompanyId,
 				CompanyName:      v.CompanyName,

+ 1 - 0
controllers/company_apply.go

@@ -2247,6 +2247,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)
 	}
 
 	resp := new(company.ApplyContractResp)

+ 4 - 0
controllers/company_approval.go

@@ -509,6 +509,10 @@ func (this *CompanyApprovalController) List() {
 				opButton.Cancel = true
 			}
 
+			if item.CompanyProductStatus == utils.COMPANY_STATUS_FOREVER {
+				item.CompanyProductStatus = utils.COMPANY_STATUS_X_CLASS_TRY_OUT
+			}
+
 			respTmp := &company.CompanyApprovalList{
 				CompanyId:         item.CompanyId,
 				ProductId:         item.ProductId,

+ 74 - 38
controllers/cygx/enter_score.go

@@ -57,6 +57,20 @@ func (this *EnterScoreController) CompanySearchList() {
 	if keyWord != "" {
 		companyCondition += ` AND a.company_name LIKE '%` + keyWord + `%' `
 	}
+
+	//权益申请销售只能看到自己名下的客户的申请
+	companyIds, err := cygxService.GetAdminLookUserCompanyIdsBySelf(sysUser)
+	if err != nil {
+		br.Msg = "获取失败"
+		br.ErrMsg = "获取失败,GetAdminLookUserCompanyIds Err:" + err.Error()
+		return
+	}
+	lencompanyIds := len(companyIds)
+	if lencompanyIds > 0 {
+		companyCondition += ` AND a.company_id IN (` + utils.GetOrmInReplace(lencompanyIds) + `)`
+		companypars = append(companypars, companyIds)
+	}
+
 	companyList, err := company.GetCompanyIdListByproductName(companyCondition, companypars)
 	if err != nil {
 		br.Msg = "获取失败"
@@ -336,6 +350,13 @@ func (this *EnterScoreController) EnterScoreUpdate() {
 		return
 	}
 
+	startDate := req.StartDate
+	endDate := req.EndDate
+	if startDate == "" || endDate == "" {
+		br.Msg = "请选择季度信息"
+		return
+	}
+
 	companyProduct, err := company.GetCompanyProductByCompanyIdAndProductId(companyId, utils.COMPANY_PRODUCT_RAI_ID)
 	if err != nil {
 		br.Msg = "查询客户产品信息失败"
@@ -653,45 +674,10 @@ func (this *EnterScoreController) EnterScoreScoreOverview() {
 		return
 	}
 
-	var companyCondition string
-	var companypars []interface{}
-	companyCondition += ` AND b.product_name = ? `
-	companypars = append(companypars, "权益")
-	companyCondition += ` AND b.status = ? `
-	companypars = append(companypars, "永续")
-
-	//权益申请销售只能看到自己名下的客户的申请
-	companyIds, err := cygxService.GetAdminLookUserCompanyIdsBySelf(AdminUser)
-	if err != nil {
-		br.Msg = "获取失败"
-		br.ErrMsg = "获取失败,GetAdminLookUserCompanyIds Err:" + err.Error()
-		return
-	}
-	lencompanyIds := len(companyIds)
-	if lencompanyIds > 0 {
-		companyCondition += ` AND a.company_id IN (` + utils.GetOrmInReplace(lencompanyIds) + `)`
-		companypars = append(companypars, companyIds)
-	}
-
-	if keyWord != "" {
-		companyCondition += ` AND a.company_name LIKE '%` + keyWord + `%' `
-	}
-	if city != "" {
-		companyCondition += ` AND a.city = ? `
-		companypars = append(companypars, city)
-	}
-
-	companyList, err := company.GetCompanyIdListByproductName(companyCondition, companypars)
-	if err != nil {
-		br.Msg = "获取失败"
-		br.ErrMsg = "获取失败,Err:" + err.Error()
-		return
-	}
-
 	var condition string
 	var pars []interface{}
 	if endDate != "" {
-		condition += ` AND start_date >= ? AND start_date <= ? `
+		condition += ` AND start_date <= ? AND end_date >= ? `
 		pars = append(pars, startDate, endDate)
 	}
 
@@ -699,6 +685,10 @@ func (this *EnterScoreController) EnterScoreScoreOverview() {
 		condition += ` AND enter_score_type = 2 `
 	}
 
+	if keyWord != "" {
+		condition += ` AND securities_firms_name LIKE '%` + keyWord + `%' `
+	}
+
 	total, err := cygx.GetCygxEnterScoreCount(condition, pars)
 	if err != nil {
 		br.Msg = "获取失败"
@@ -722,6 +712,48 @@ func (this *EnterScoreController) EnterScoreScoreOverview() {
 				mapenterScoreTypeCompanyIds[v.CompanyId] = true //记录按照百分比录入的公司
 			}
 		}
+		fmt.Println(enterScoreIds)
+		var companyCondition string
+		var companypars []interface{}
+		companyCondition += ` AND b.product_name = ? `
+		companypars = append(companypars, "权益")
+		companyCondition += ` AND b.status = ? `
+		companypars = append(companypars, "永续")
+
+		//权益申请销售只能看到自己名下的客户的申请
+		companyIds, err := cygxService.GetAdminLookUserCompanyIdsBySelf(AdminUser)
+		if err != nil {
+			br.Msg = "获取失败"
+			br.ErrMsg = "获取失败,GetAdminLookUserCompanyIds Err:" + err.Error()
+			return
+		}
+		//如果机构搜索做了限制 ,那么公司列表的纵向展示也做限制
+		if keyWord != "" {
+			for _, v := range list {
+				companyIds = append(companyIds, v.CompanyId)
+			}
+		}
+
+		lencompanyIds := len(companyIds)
+		if lencompanyIds > 0 {
+			companyCondition += ` AND a.company_id IN (` + utils.GetOrmInReplace(lencompanyIds) + `)`
+			companypars = append(companypars, companyIds)
+		}
+
+		if city != "" {
+			//传过来多个城市的时候的筛选
+			citySlice := strings.Split(city, ",")
+			city = strings.Join(citySlice, "','")
+			city = "'" + city + "'"
+			companyCondition += ` AND a.city  IN  (` + city + `) `
+		}
+
+		companyList, err := company.GetCompanyIdListByproductName(companyCondition, companypars)
+		if err != nil {
+			br.Msg = "获取失败"
+			br.ErrMsg = "获取失败,Err:" + err.Error()
+			return
+		}
 
 		listResearcher, err := cygx.GeCygxEnterScoreResearcherListByIds(enterScoreIds) //获取所有的研究员
 		if err != nil {
@@ -748,6 +780,7 @@ func (this *EnterScoreController) EnterScoreScoreOverview() {
 		mapResearcherProportionText := make(map[string][]string)
 		for _, vC := range companyList {
 			for _, vR := range researcherArr {
+
 				var proportionText string
 				if mapResearcherProportion[fmt.Sprint(vR, "_", vC.CompanyId)] != "" {
 					proportionText = mapResearcherProportion[fmt.Sprint(vR, "_", vC.CompanyId)]
@@ -904,9 +937,12 @@ func (this *EnterScoreController) EnterScoreScoreOverview() {
 
 		resp.ListPermission = itemsP
 		resp.ListGroup = itemsG
+		resp.ListCompany = companyList
+	} else {
+		resp.ListPermission = make([]*cygx.EnterScorePermissionListResp, 0)
+		resp.ListGroup = make([]*cygx.EnterScoreGroupListResp, 0)
+		resp.ListCompany = make([]*company.CompanyNameAndId, 0)
 	}
-	resp.ListCompany = companyList
-
 	//导出excel
 	if isExport {
 		EnterScoreScoreOverviewExport(this, resp, br)

+ 1 - 1
models/company/company_apply.go

@@ -105,7 +105,7 @@ type CompanyContractDetail struct {
 	ContractType      string    `description:"合同类型:枚举值:'新签合同','续约合同','补充协议'"`
 	StartDate         string    `description:"合同开始时间"`
 	EndDate           string    `description:"合同结束时间"`
-	Quarter           string    `comment:"季度(X类试用客户使用)"`
+	Quarter           string    `description:"季度(X类试用客户使用)"`
 	Money             float64   `description:"合同金额"`
 	PayMethod         string    `description:"支付方式"`
 	PayChannel        string    `description:"支付渠道"`

+ 3 - 3
services/company.go

@@ -1146,7 +1146,7 @@ func GetCompanyPermissionButton(roleTypeCode, status, itemSellerIds, itemGroupId
 
 			//如果是自己客户,那么拥有查看权限
 			if hasSellerId {
-				if sellerId == sysUserId ||utils.InArrayByStr(shareSellerIdArr, strconv.Itoa(sysUserId)) || shareSellerId == sysUserId {
+				if sellerId == sysUserId || utils.InArrayByStr(shareSellerIdArr, strconv.Itoa(sysUserId)) || shareSellerId == sysUserId {
 					button.BtnView = true                             //显示权限、详情
 					if productStatus == utils.COMPANY_STATUS_FORMAL { //正式
 						button.BtnUpdate = true
@@ -1204,7 +1204,7 @@ func GetCompanyPermissionButton(roleTypeCode, status, itemSellerIds, itemGroupId
 					button.BtnModifySeller = true
 					button.BtnRemarkView = true
 				} else if productStatus == utils.COMPANY_STATUS_LOSE { //流失
-					if sellerId == sysUserId || groupId == sysUserGroupId ||utils.InArrayByStr(shareSellerIdArr, strconv.Itoa(sysUserId)) || shareSellerId == sysUserId {
+					if sellerId == sysUserId || groupId == sysUserGroupId || utils.InArrayByStr(shareSellerIdArr, strconv.Itoa(sysUserId)) || shareSellerId == sysUserId {
 						button.BtnApplyReceive = true
 					} else {
 						button.BtnReceive = true
@@ -2433,7 +2433,7 @@ func GetShareCompanyPermissionButton(roleTypeCode, statuses string, productId in
 	// 销售
 	sellerArr := []string{
 		utils.ROLE_TYPE_CODE_FICC_GROUP, utils.ROLE_TYPE_CODE_FICC_TEAM, utils.ROLE_TYPE_CODE_FICC_SELLER,
-		utils.ROLE_TYPE_CODE_RAI_GROUP,utils.ROLE_TYPE_CODE_RAI_SELLER,utils.ROLE_TYPE_CODE_RAI_ADMIN,
+		utils.ROLE_TYPE_CODE_RAI_GROUP, utils.ROLE_TYPE_CODE_RAI_SELLER, utils.ROLE_TYPE_CODE_RAI_ADMIN,
 	}
 	if !utils.InArrayByStr(sellerArr, roleTypeCode) {
 		return

+ 34 - 0
utils/common.go

@@ -2305,3 +2305,37 @@ func GetQuarterStrStartDatesInRange(startTimeStr, endTimeStr string) (quartersSt
 	quartersStar = strings.Join(quarters, "+")
 	return quartersStar, nil
 }
+
+// 通过开始时间,结束时间,获取对应季度的拼接字符串 为啥一样的代码要写两遍,因为产品有的地方要求展示 2024Q1有的地方要求展示24Q1
+func GetQuarterStrStartDatesInRangeHaveYear(startTimeStr, endTimeStr string) (quartersStar string, err error) {
+	startTime, err := time.Parse("2006-01-02", startTimeStr)
+	if err != nil {
+		return
+	}
+
+	endTime, err := time.Parse("2006-01-02", endTimeStr)
+	if err != nil {
+		return
+	}
+
+	adjustedStartTime := startTime.AddDate(0, -int(startTime.Month()-1)%3, -startTime.Day()+1)
+
+	startYear, _, _ := adjustedStartTime.Date()
+	endYear, _, _ := endTime.Date()
+
+	var quarters []string
+	for year := startYear; year <= endYear; year++ {
+		for quarter := 1; quarter <= 4; quarter++ {
+			firstMonth := (quarter-1)*3 + 1
+			quarterStartDate := time.Date(year, time.Month(firstMonth), 1, 0, 0, 0, 0, time.UTC)
+			if quarterStartDate.After(endTime) || quarterStartDate.AddDate(0, 3, -1).Before(adjustedStartTime) {
+				continue
+			}
+			quartersYear := quarterStartDate.Year()
+			yearStr := strconv.Itoa(quartersYear)
+			quarters = append(quarters, fmt.Sprint(yearStr, "Q", quarter))
+		}
+	}
+	quartersStar = strings.Join(quarters, ",")
+	return quartersStar, nil
+}