瀏覽代碼

Merge branch 'master' of http://8.136.199.33:3000/hongze/hz_crm_api into cygx/mfyx_2.0

xingzai 11 月之前
父節點
當前提交
1bc9d507e8

+ 8 - 1
controllers/company.go

@@ -2817,6 +2817,13 @@ func (this *CompanyController) Add() {
 			return
 		}
 	}
+
+	// 每个权益销售手中的试用客户最多30个
+	if productId == utils.COMPANY_PRODUCT_RAI_ID && tryOutCount >= utils.COMPANY_STATUS_TRY_OUT_COUNT_RAI {
+		br.Msg = "您的试用客户总数,已超过上限,不可继续新增"
+		return
+	}
+
 	if seller == nil {
 		br.Msg = "所属销售不存在"
 		return
@@ -3301,7 +3308,7 @@ func (this *CompanyController) Detail() {
 			}
 
 			// CRM8.8-权益权限列表调用较多、统一进行调整
-			plist, e := services.RaiCompanyPermissionAndCheckList(companyId, isEdit)
+			plist, e := services.RaiCompanyPermissionAndCheckList(companyId, isEdit, []string{"调研"})
 			if e != nil {
 				br.Msg = "获取客户权益权限列表信息失败"
 				br.ErrMsg = "获取客户权益权限列表信息失败,Err:" + e.Error()

+ 5 - 0
controllers/company_apply.go

@@ -2028,6 +2028,11 @@ func (this *CompanyApplyController) ApplyContract() {
 			//	return
 			//}
 
+			filterPermissionName := []string{"专家", "路演服务"} // 需要过滤不展示的行业
+			if utils.InArrayByStr(filterPermissionName, n.PermissionName) {
+				continue
+			}
+
 			if utils.InArrayByInt(permissionIds, n.ChartPermissionId) {
 				fmt.Println(1)
 				n.Checked = true

+ 17 - 2
controllers/company_permission.go

@@ -83,13 +83,19 @@ func (this *CompanyPermissionController) List() {
 			br.ErrMsg = "获取权限信息失败,Err:" + err.Error()
 			return
 		}
-
+		filterPermissionName := []string{"专家", "路演服务", "调研"} // 需要过滤不展示的行业
+		if isShowYanXuanKouDian {
+			filterPermissionName = []string{"专家"} //申请转正,或者申请续约的时候 调研 行业需要进行展示
+		}
 		// 原始版的权限
 		if noUpgrade {
 			for _, v := range items {
 				if !isShowYanXuanKouDian && v.ChartPermissionId == utils.YAN_XUAN_KOU_DIAN_BAO_ID {
 					continue
 				}
+				if utils.InArrayByStr(filterPermissionName, v.PermissionName) {
+					continue
+				}
 				p.Items = append(p.Items, v)
 			}
 		}
@@ -135,6 +141,9 @@ func (this *CompanyPermissionController) List() {
 				if !isShowYanXuanKouDian && v.ChartPermissionId == utils.YAN_XUAN_KOU_DIAN_BAO_ID {
 					continue
 				}
+				if utils.InArrayByStr(filterPermissionName, v.PermissionName) {
+					continue
+				}
 				// 处理四大行业的升级展示
 				if strings.Contains("医药消费科技智造", v.PermissionName) {
 					// 内部人员需要拆分主客观权限
@@ -434,6 +443,12 @@ func (this *CompanyPermissionController) PermissionLook() {
 		}
 	}
 
+	var filterPermissionName []string
+	if lookType == 1 {
+		filterPermissionName = []string{"专家", "路演服务", "研选扣点包", "调研"}
+	} else {
+		filterPermissionName = []string{"调研"}
+	}
 	//权益权限类目
 	for _, v := range permissionArr {
 
@@ -443,7 +458,7 @@ func (this *CompanyPermissionController) PermissionLook() {
 			if lookType == 1 {
 				unify = true
 			}
-			p, e := services.RaiCompanyPermissionAndCheckList(companyId, unify)
+			p, e := services.RaiCompanyPermissionAndCheckList(companyId, unify, filterPermissionName)
 			if e != nil {
 				br.Msg = "获取客户权益权限列表信息失败"
 				br.ErrMsg = "获取客户权益权限列表信息失败,Err:" + e.Error()

+ 13 - 11
controllers/company_user.go

@@ -903,21 +903,23 @@ func (this *CompanyUserController) List() {
 		pars = append(pars, productId)
 
 		//流失客户(除非是超级管理员或者是部门管理员,要不然不允许看对应的联系人)
-		var companyProduct *company.CompanyProduct
+		//var companyProduct *company.CompanyProduct
 		//当前是ficc权限,且非ficc管理员
 		//if productId == 1 && sysUser.RoleTypeCode != utils.ROLE_TYPE_CODE_FICC_ADMIN {
 		//	tmpCompanyProduct, _ := company.GetCompanyProductByCompanyIdAndProductId(companyId, 1)
 		//	companyProduct = tmpCompanyProduct
 		//}
-		if productId == 2 && sysUser.RoleTypeCode != utils.ROLE_TYPE_CODE_RAI_ADMIN {
-			// 当前是权益权限,且非 权益管理员
-			tmpCompanyProduct, _ := company.GetCompanyProductByCompanyIdAndProductId(companyId, 2)
-			companyProduct = tmpCompanyProduct
-			if companyProduct != nil && companyProduct.Status == utils.COMPANY_STATUS_LOSE {
-				condition += ` AND seller_id=? `
-				pars = append(pars, sysUser.AdminId)
-			}
-		}
+
+		//权益销售查看流失客户时,可以看到非本人名下流失客户的联系人需求池 930 2024-03-25
+		//if productId == 2 && sysUser.RoleTypeCode != utils.ROLE_TYPE_CODE_RAI_ADMIN {
+		//	// 当前是权益权限,且非 权益管理员
+		//	tmpCompanyProduct, _ := company.GetCompanyProductByCompanyIdAndProductId(companyId, 2)
+		//	companyProduct = tmpCompanyProduct
+		//	if companyProduct != nil && companyProduct.Status == utils.COMPANY_STATUS_LOSE {
+		//		condition += ` AND seller_id=? `
+		//		pars = append(pars, sysUser.AdminId)
+		//	}
+		//}
 	}
 
 	total, err := company.GetCompanyUserListCountV2(condition, pars, companyId)
@@ -1250,7 +1252,7 @@ func (this *CompanyUserController) List() {
 			}
 			// 分产品阅读统计
 			list[i].YbProductViewTotal = userYbViewsMap[int(item.UserId)]
-			list[i].LastViewTimeStr = list[i].RaiLastViewTime.Format(utils.FormatDateTime)
+			//list[i].LastViewTimeStr = list[i].RaiLastViewTime.Format(utils.FormatDateTime)
 		}
 
 		isUserYanXuanButtonShow, err := services.CheckCompanyUserYanXuanButton(sysUser.RoleTypeCode, sysUser.Mobile)

+ 4 - 4
controllers/cygx/activity_special_trip.go

@@ -153,8 +153,8 @@ func (this *ActivitySpecialTripCoAntroller) AddUser() {
 			itemBill.ChartPermissionName = activityInfo.ChartPermissionName
 			itemBill.AdminId = AdminUser.AdminId
 
-			if activityInfo.ChartPermissionName == utils.CE_LUE_NAME {
-				//如果是策略行业,把代扣行业信息放入流水表,取消报名的时候,返点使用
+			if activityInfo.ChartPermissionName == utils.CE_LUE_NAME || activityInfo.ChartPermissionName == utils.GU_SHOU_NAME {
+				//如果是策略、固收行业,把代扣行业信息放入流水表,取消报名的时候,返点使用
 				maxChartPermissionId, maxChartPermissionName, err := cygxService.GetSpecialBillMaxChartPermissionId(infoUser)
 				if err != nil {
 					br.Msg = "操作失败"
@@ -568,8 +568,8 @@ func (this *ActivitySpecialTripCoAntroller) TripCancel() {
 	itemBill.ChartPermissionName = activityInfo.ChartPermissionName
 	itemBill.AdminId = sysUser.AdminId
 
-	if activityInfo.ChartPermissionName == utils.CE_LUE_NAME {
-		//如果是策略行业,把代扣行业信息放入流水表,取消报名的时候,返点使用
+	if activityInfo.ChartPermissionName == utils.CE_LUE_NAME || activityInfo.ChartPermissionName == utils.GU_SHOU_NAME {
+		//如果是策略、固收行业,把代扣行业信息放入流水表,取消报名的时候,返点使用
 		lastTripBill, err := cygx.GetCygxActivitySpecialTripBillLastDetialByActivityId(activityInfo.ActivityId, userId)
 		if err != nil {
 			br.Msg = "操作失败"

+ 10 - 9
controllers/cygx/industrial_management.go

@@ -54,14 +54,15 @@ func (this *IndustrialManagementController) ChartPermissionList() {
 	//判断是否是策略平台的报告类型
 	if isCeLueReport {
 		for _, v := range list {
-			if v.ChartPermissionId != utils.CHART_PERMISSION_ID_YANXUAN {
-				resp.List = append(resp.List, v)
+			if v.ChartPermissionId == utils.CHART_PERMISSION_ID_YANXUAN || v.ChartPermissionId == utils.YAN_XUAN_KOU_DIAN_BAO_ID {
+				continue
 			}
+			resp.List = append(resp.List, v)
 		}
-		item := new(cygx.ChartPermission)
-		item.PermissionName = utils.GU_SHOU_NAME
-		item.ChartPermissionId = utils.GU_SHOU_ID
-		resp.List = append(resp.List, item)
+		//item := new(cygx.ChartPermission)
+		//item.PermissionName = utils.GU_SHOU_NAME
+		//item.ChartPermissionId = utils.GU_SHOU_ID
+		//resp.List = append(resp.List, item)
 	} else {
 		for _, v := range list {
 			if (v.PermissionName == utils.CHART_PERMISSION_NAME_MF_YANXUAN || v.PermissionName == utils.YAN_XUAN_KOU_DIAN_BAO_NAME) && isHideResearch {
@@ -187,7 +188,7 @@ func (this *IndustrialManagementController) ChartPermissionFirstProduct() {
 	}
 	//医药消费科技制造策略
 	for _, v := range list {
-		if v.PermissionName == utils.YI_YAO_NAME || v.PermissionName == utils.XIAO_FEI_NAME || v.PermissionName == utils.KE_JI_NAME || v.PermissionName == utils.ZHI_ZAO_NAME || v.PermissionName == utils.CE_LUE_NAME {
+		if v.PermissionName == utils.YI_YAO_NAME || v.PermissionName == utils.XIAO_FEI_NAME || v.PermissionName == utils.KE_JI_NAME || v.PermissionName == utils.ZHI_ZAO_NAME || v.PermissionName == utils.CE_LUE_NAME || v.PermissionName == utils.GU_SHOU_NAME {
 			resp.List = append(resp.List, v)
 		}
 	}
@@ -214,9 +215,9 @@ func (this *IndustrialManagementController) ChartPermissionListActivitySpecial()
 		br.ErrMsg = "获取品种信息失败,Err:" + err.Error()
 		return
 	}
-	//医药、消费、科技、制造、策略
+	//医药、消费、科技、制造、策略,固收
 	for _, v := range list {
-		if v.PermissionName == utils.YI_YAO_NAME || v.PermissionName == utils.XIAO_FEI_NAME || v.PermissionName == utils.KE_JI_NAME || v.PermissionName == utils.ZHI_ZAO_NAME || v.PermissionName == utils.CE_LUE_NAME {
+		if v.PermissionName == utils.YI_YAO_NAME || v.PermissionName == utils.XIAO_FEI_NAME || v.PermissionName == utils.KE_JI_NAME || v.PermissionName == utils.ZHI_ZAO_NAME || v.PermissionName == utils.CE_LUE_NAME || v.PermissionName == utils.GU_SHOU_NAME {
 			resp.List = append(resp.List, v)
 		}
 	}

+ 2 - 2
controllers/full_company.go

@@ -2446,7 +2446,7 @@ func (this *FullCompanyController) Detail() {
 			}
 
 			// CRM8.8-权益权限列表调用较多、统一进行调整
-			plist, e := services.RaiCompanyPermissionAndCheckList(companyId, isEdit)
+			plist, e := services.RaiCompanyPermissionAndCheckList(companyId, isEdit, []string{"调研"})
 			if e != nil {
 				br.Msg = "获取客户权益权限列表信息失败"
 				br.ErrMsg = "获取客户权益权限列表信息失败,Err:" + e.Error()
@@ -2751,7 +2751,7 @@ func (this *FullCompanyController) PermissionLook() {
 			if lookType == 1 {
 				unify = true
 			}
-			p, e := services.RaiCompanyPermissionAndCheckList(companyId, unify)
+			p, e := services.RaiCompanyPermissionAndCheckList(companyId, unify, []string{"调研"})
 			if e != nil {
 				br.Msg = "获取客户权益权限列表信息失败"
 				br.ErrMsg = "获取客户权益权限列表信息失败,Err:" + e.Error()

+ 12 - 2
services/company_permission.go

@@ -16,7 +16,8 @@ import (
 // 场景:查看客户权限、客户详情、编辑客户、增开试用
 // 非权益客户时, 返回权益权限列表, 但是checkList为空[]int
 // unify: 是否需要统一合并/拆分
-func RaiCompanyPermissionAndCheckList(companyId int, unify bool) (resp *company.PermissionLookList, err error) {
+// filterPermissionName: 需要隐藏的权限名称
+func RaiCompanyPermissionAndCheckList(companyId int, unify bool, filterPermissionName []string) (resp *company.PermissionLookList, err error) {
 	resp = new(company.PermissionLookList)
 	productId := utils.COMPANY_PRODUCT_RAI_ID
 	productName := utils.COMPANY_PRODUCT_RAI_NAME
@@ -154,7 +155,13 @@ func RaiCompanyPermissionAndCheckList(companyId int, unify bool) (resp *company.
 	//有升级权限时只展示一个
 	newpPermissionItems := make([]*company.PermissionLookItem, 0)
 	if unify {
-		newpPermissionItems = permissionItems
+		//newpPermissionItems = permissionItems
+		for _, v := range permissionItems {
+			if utils.InArrayByStr(filterPermissionName, v.PermissionName) {
+				continue
+			}
+			newpPermissionItems = append(newpPermissionItems, v)
+		}
 	} else {
 		upgradeMap := make(map[string]int)
 		for _, v := range permissionItems {
@@ -162,6 +169,9 @@ func RaiCompanyPermissionAndCheckList(companyId int, unify bool) (resp *company.
 			//if v.ChartPermissionId == utils.YAN_XUAN_KOU_DIAN_BAO_ID {
 			//	continue
 			//}
+			if utils.InArrayByStr(filterPermissionName, v.PermissionName) {
+				continue
+			}
 			if _, ok := upgradeMap[v.PermissionName]; !ok {
 				newpPermissionItems = append(newpPermissionItems, v)
 				if strings.Contains(v.PermissionName, "升级") {

+ 1 - 0
services/cygx/acitvity.go

@@ -1367,6 +1367,7 @@ func GetActChartPermissionList() []*cygx.ChartPermissionRepMore {
 		{PermissionName: "科技"},
 		{PermissionName: "智造"},
 		{PermissionName: "策略"},
+		{PermissionName: "固收"},
 		{PermissionName: "宏观"},
 		//{PermissionName: utils.CHART_PERMISSION_NAME_MF_YANXUAN},
 		//{PermissionName: utils.CHART_PERMISSION_NAME_MF_YANXUAN + "(医药)"},

+ 5 - 6
services/cygx/activity_power_check.go

@@ -552,19 +552,18 @@ func GetSpecialDetailUserPower(user *models.WxUser, activityInfo *cygx.ActivityS
 			return
 		}
 	}
-	//如果没有对应的权限,则返回
-	if !strings.Contains(permissionStr, activityInfo.ChartPermissionName) {
-		return
-	}
 	permissionShengji, errs := cygx.GetCompanyPermissionByUserTrip(user.CompanyId)
 	if errs != nil {
 		err = errs
 		return
 	}
-	//如果有升级权限的自动添加策略的升级权限
+	//如果有升级权限的自动添加策略、固收的升级权限
 	if permissionStr != "" {
 		if activityInfo.ChartPermissionName == utils.CE_LUE_NAME {
-			permissionStr += "," + utils.CE_LUE_NAME
+			permissionShengji += "," + utils.CE_LUE_NAME
+		}
+		if activityInfo.ChartPermissionName == utils.GU_SHOU_NAME {
+			permissionShengji += "," + utils.GU_SHOU_NAME
 		}
 	}
 	//如果没有对应的升级权限,则返回

+ 4 - 4
services/cygx/activity_special.go

@@ -793,8 +793,8 @@ func DeductTripRemainingtimesByUser(user *cygx.UserAndCompanyName, activityInfo
 	condition = " AND  company_id  = ?    ORDER BY  points DESC LIMIT 1   "
 	pars = append(pars, companyId)
 
-	//判断是不是策略行业的活动,如果不是策略就获取对应行业的点数 ,策略的任何一个行业有剩余点数都能参加
-	if chartPermissionName != utils.CE_LUE_NAME {
+	//判断是不是策略、固收行业的活动,如果不是策略就获取对应行业的点数 ,策略的任何一个行业有剩余点数都能参加
+	if chartPermissionName != utils.CE_LUE_NAME && chartPermissionName != utils.GU_SHOU_NAME {
 		pars = make([]interface{}, 0)
 		condition = " AND  company_id  = ?   AND  (chart_permission_id  = ?   OR chart_permission_id = 0 )    ORDER BY  points DESC LIMIT 1   "
 		pars = append(pars, companyId, activityInfo.ChartPermissionId)
@@ -882,8 +882,8 @@ func RebateTripRemainingtimesByUser(user *cygx.UserAndCompanyName, activityInfo
 	condition = " AND  company_id  = ?    ORDER BY  points DESC LIMIT 1   "
 	pars = append(pars, companyId)
 
-	//判断是不是策略行业的活动,如果不是策略就获取对应行业的点数 ,策略的任何一个行业有剩余点数都能参加
-	if chartPermissionName != utils.CE_LUE_NAME {
+	//判断是不是策略、固收行业的活动,如果不是策略就获取对应行业的点数 ,策略的任何一个行业有剩余点数都能参加
+	if chartPermissionName != utils.CE_LUE_NAME && chartPermissionName != utils.GU_SHOU_NAME {
 		pars = make([]interface{}, 0)
 		condition = " AND  company_id  = ?  AND  (chart_permission_id  = ?   OR chart_permission_id = 0 )  LIMIT 1   "
 		pars = append(pars, companyId, activityInfo.ChartPermissionId)

+ 12 - 11
utils/constants.go

@@ -92,17 +92,18 @@ const (
 
 // 客户状态
 const (
-	COMPANY_STATUS_TRY_OUT         = "试用"
-	COMPANY_STATUS_X_CLASS_TRY_OUT = "X类试用" //最早定义为永续
-	COMPANY_STATUS_FOREVER         = "永续"
-	COMPANY_STATUS_FREEZE          = "冻结"
-	COMPANY_STATUS_LOSE            = "流失"
-	COMPANY_STATUS_LOSE_FLAG       = "loss"
-	COMPANY_STATUS_FORMAL          = "正式"
-	COMPANY_STATUS_POTENTIAL       = "潜在"
-	COMPANY_STATUS_CLOSE           = "关闭"
-	COMPANY_STATUS_CLOSE_FLAG      = "close"
-	COMPANY_STATUS_TRY_OUT_COUNT   = 60
+	COMPANY_STATUS_TRY_OUT           = "试用"
+	COMPANY_STATUS_X_CLASS_TRY_OUT   = "X类试用" //最早定义为永续
+	COMPANY_STATUS_FOREVER           = "永续"
+	COMPANY_STATUS_FREEZE            = "冻结"
+	COMPANY_STATUS_LOSE              = "流失"
+	COMPANY_STATUS_LOSE_FLAG         = "loss"
+	COMPANY_STATUS_FORMAL            = "正式"
+	COMPANY_STATUS_POTENTIAL         = "潜在"
+	COMPANY_STATUS_CLOSE             = "关闭"
+	COMPANY_STATUS_CLOSE_FLAG        = "close"
+	COMPANY_STATUS_TRY_OUT_COUNT     = 60
+	COMPANY_STATUS_TRY_OUT_COUNT_RAI = 30 // 权益试用客户上限
 
 	COMPANY_APPROVE_STATUS = "待审批"
 )