Browse Source

no message

xingzai 2 years ago
parent
commit
1a51564ef4
3 changed files with 74 additions and 33 deletions
  1. 22 0
      models/company_user_type.go
  2. 30 29
      services/activity.go
  3. 22 4
      services/user.go

+ 22 - 0
models/company_user_type.go

@@ -0,0 +1,22 @@
+package models
+
+import (
+	"github.com/beego/beego/v2/client/orm"
+	"time"
+)
+
+type CygxCompanyUserType struct {
+	Id             int `orm:"column(id);pk" description:"分析师id"`
+	CompanyId      int
+	CustomerTypeId int       `description:"用户身份ID"`
+	CreateTime     time.Time `description:"创建时间"`
+	ModifyTime     time.Time `description:"创建时间"`
+}
+
+// 通过活动ID获取详情
+func GetCygxCompanyUserType(companyId int) (item *CygxCompanyUserType, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT *  FROM cygx_company_user_type AS a WHERE a.company_id=?  `
+	err = o.Raw(sql, companyId).QueryRow(&item)
+	return
+}

+ 30 - 29
services/activity.go

@@ -215,38 +215,19 @@ func GetActivityonditionList(user *models.WxUserItem, activityTypeId, chartPermi
 	//查询全部可见的数据(是否全部客户可见)
 	//condition += ` AND art.visible_range != 1  AND art.publish_status = 1 `
 	condition += `   AND art.publish_status = 1 `
-
-	// 8: 行业升级套餐客户:该活动对应行业为升级权限的客户
-
-	////9:其他行业正式客户:前述所有正式客户以外的正式客户 查询处理
-
-	conditionShengji, conditionZhengshi, conditionHangYe, e := ActivityLabelSpecialUserSql(user)
-	if e != nil {
-		err = errors.New("ActivityLabelSpecialUserSql, Err: " + e.Error())
-		return
-	}
-
-	if conditionShengji != "" {
-		conditionOr += ` OR (  art.is_limit_people = 1 AND ` + conditionShengji + condition + ` ) `
-	}
-	if conditionZhengshi != "" {
-		conditionOr += ` OR (  art.is_limit_people = 1 AND ` + conditionZhengshi + condition + ` ) `
-	}
-	if conditionHangYe != "" {
-		conditionOr += ` OR (  art.is_limit_people = 1 AND ` + conditionHangYe + condition + ` ) `
-	}
-	fmt.Println(conditionShengji)
-	fmt.Println(conditionZhengshi)
-	fmt.Println(conditionHangYe)
-
+	//if adminIds == "" {
+	//	//condition += `  AND art.visible_range != 1 `
+	//} else {
+	//	condition += ` 	AND ( art.visible_range != 1  OR  (	 art.admin_id IN ( ` + adminIds + ` )  AND art.visible_range = 1 ))  `
+	//}
+	condition += ` 	AND ( art.visible_range != 1  OR  (	 art.admin_id IN ( ` + adminIds + ` )  AND art.visible_range = 1 ))  `
 	conditionHz = condition
-
 	//活动仅决策人可见
 	if isMaker == 0 {
 		condition += ` AND art.is_maker_show = 0  `
 	}
 	conditionAdmin = condition + `  AND art.visible_range = 1 `
-	condition += `  AND art.visible_range != 1 `
+	//condition += `  AND art.visible_range != 1 `
 	if (userType == 2 || userType == 3 || userType == 4) && strings.Contains(permissionStr, "专家") {
 		conditionOr += ` OR (  art.is_limit_people = 1 AND art.customer_type_ids LIKE '%4%'	 ` + condition + `) `
 	}
@@ -268,7 +249,10 @@ func GetActivityonditionList(user *models.WxUserItem, activityTypeId, chartPermi
 	}
 
 	if adminIds != "" {
-		conditionOr += ` OR (  art.customer_type_ids LIKE '%` + strconv.Itoa(userType) + `%' ` + ` AND  art.admin_id IN (` + adminIds + `) ` + conditionAdmin + `) `
+		if userType == 3 {
+			conditionAdmin += `  AND art.chart_permission_name  IN (` + permissionNameStr + `) `
+		}
+		conditionOr += ` OR (  art.customer_type_ids LIKE '%` + userTypeStr + `%' ` + ` AND  art.admin_id IN (` + adminIds + `) ` + conditionAdmin + `) `
 		if companyProduct != nil {
 			if companyProduct.Scale != "" {
 				conditionOr += ` OR (  art.scale LIKE '%` + companyProduct.Scale + `%'` + ` AND  art.admin_id IN (` + adminIds + `) ` + conditionAdmin + `) `
@@ -276,8 +260,23 @@ func GetActivityonditionList(user *models.WxUserItem, activityTypeId, chartPermi
 		}
 	}
 
+	conditionShengji, conditionZhengshi, conditionHangYe, e := ActivityLabelSpecialUserSql(user)
+	if e != nil {
+		err = errors.New("ActivityLabelSpecialUserSql, Err: " + e.Error())
+		return
+	}
+	if conditionShengji != "" {
+		conditionOr += ` OR (  art.is_limit_people = 1 AND ` + conditionShengji + condition + ` ) `
+	}
+	if conditionZhengshi != "" {
+		conditionOr += ` OR (  art.is_limit_people = 1 AND ` + conditionZhengshi + condition + ` ) `
+	}
+	if conditionHangYe != "" {
+		conditionOr += ` OR (  art.is_limit_people = 1 AND ` + conditionHangYe + condition + ` ) `
+	}
+
 	//弘则研究下的客户不做权限,限制,C类电话会,仅本组销售、部门管理员、admin、权益研究员账号能看到
-	if user.CompanyId == 16 {
+	if user.CompanyId == utils.HZ_COMPANY_ID {
 		mapMobile, e := GetAdminMobileMap()
 		if e != nil {
 			err = e
@@ -287,7 +286,9 @@ func GetActivityonditionList(user *models.WxUserItem, activityTypeId, chartPermi
 			conditionOr += ` OR (  art.publish_status = 1 ` + conditionHz + `) `
 		}
 	}
-
+	if userType == 3 {
+		condition += `  AND art.chart_permission_name  IN (` + permissionNameStr + `) `
+	}
 	conditionActivity = condition + permissionSqlStr + sqlExport + conditionOr
 	return
 }

+ 22 - 4
services/user.go

@@ -71,6 +71,19 @@ func GetUserType(companyId int) (userType int, permissionStrnew string, err erro
 				err = errs
 				return
 			}
+			permissionStrnew = permissionStr
+			//大套餐客户,数据库添加标识,
+			companyUserTypeDetail, errs := models.GetCygxCompanyUserType(companyId)
+			if errs != nil && errs.Error() != utils.ErrNoRow() {
+				err = errs
+				return
+			}
+			if companyUserTypeDetail != nil {
+				if companyUserTypeDetail.CustomerTypeId != 0 {
+					userType = companyUserTypeDetail.CustomerTypeId
+					return
+				}
+			}
 			permissionZhengShiStr, errs = models.GetCompanyPermissionByUserZhengShi(companyId)
 			if errs != nil {
 				err = errs
@@ -105,12 +118,17 @@ func GetUserType(companyId int) (userType int, permissionStrnew string, err erro
 				if strings.Count(permissionZhengShiStr, "策略") == 1 {
 					permissionZhegnshiNum++
 				}
-				if permissionZhegnshiNum == 5 {
-					userType = 2
-				} else if permissionZhegnshiNum == 4 {
+				if strings.Count(permissionZhengShiStr, "路演服务") == 1 {
+					permissionZhegnshiNum++
+				}
+				//if permissionZhegnshiNum == 6 {
+				//	userType = 2
+				//} else
+				//大套餐客户,数据库添加标识,条件大于等于四的都是 30W套餐客户
+				if permissionZhegnshiNum >= 4 {
 					userType = 10
 				} else {
-					userType = 9
+					userType = 3
 				}
 			}
 		}