浏览代码

专项调研活动详情权限修改

xingzai 2 年之前
父节点
当前提交
0f85c15869
共有 5 个文件被更改,包括 176 次插入222 次删除
  1. 18 193
      controllers/activity_special.go
  2. 0 11
      models/activity.go
  3. 17 0
      models/activity_special.go
  4. 67 18
      services/activity_special.go
  5. 74 0
      services/company_permission.go

+ 18 - 193
controllers/activity_special.go

@@ -68,7 +68,6 @@ func (this *ActivitySpecialCoAntroller) SpecialList() {
 	br.Success = true
 	br.Msg = "获取成功"
 	br.Data = resp
-
 }
 
 // @Title  专项产业调研详情
@@ -97,11 +96,10 @@ func (this *ActivitySpecialCoAntroller) SpecialDetail() {
 	}
 	resp := new(models.CygxActivitySpecialResp)
 	hasPermission := 0
-
 	activityInfo, err := models.GetCygxActivitySpecialDetailById(uid, activityId)
 	if err != nil && err.Error() != utils.ErrNoRow() {
 		br.Msg = "获取信息失败"
-		br.ErrMsg = "判断是否已申请过试用失败,Err:" + err.Error()
+		br.ErrMsg = "活动ID错误,Err:" + "activityId:" + strconv.Itoa(activityId)
 		return
 	}
 	if activityInfo == nil {
@@ -109,200 +107,14 @@ func (this *ActivitySpecialCoAntroller) SpecialDetail() {
 		br.ErrMsg = "活动ID错误,Err:" + "activityId:" + strconv.Itoa(activityId)
 		return
 	}
-
-	applyCount, err := models.GetApplyRecordCount(uid)
-	if err != nil && err.Error() != utils.ErrNoRow() {
-		br.Msg = "获取信息失败"
-		br.ErrMsg = "判断是否已申请过试用失败,Err:" + err.Error()
-		return
-	}
-	//获取FICC销售信息 如果是FICC的客户类型,则默认他申请过
-	sellerItem, err := models.GetSellerByCompanyIdCheckFicc(user.CompanyId, 1)
-	if err != nil && err.Error() != utils.ErrNoRow() {
-		br.Msg = "获取信息失败"
-		br.ErrMsg = "获取销售信息失败,Err:" + err.Error()
-		return
-	}
-	if user.CompanyId <= 1 {
-		//companyDetailStatus = ""
-	} else {
-		companyPermission, err := models.GetCompanyPermission(user.CompanyId)
-		if err != nil {
-			br.Msg = "获取信息失败"
-			br.ErrMsg = "获取客户详情失败,Err:" + err.Error()
-			return
-		}
-		if companyPermission == "" {
-			if applyCount > 0 {
-				hasPermission = 4
-			} else {
-				if sellerItem != nil {
-					hasPermission = 5
-				} else {
-					//获取权益销售信息 如果是FICC的客户类型,则默认他申请过
-					sellerItemQy, err := models.GetSellerByCompanyIdCheckFicc(user.CompanyId, 2)
-					if err != nil && err.Error() != utils.ErrNoRow() {
-						br.Msg = "获取信息失败"
-						br.ErrMsg = "获取销售信息失败,Err:" + err.Error()
-						return
-					}
-					if sellerItemQy != nil {
-						hasPermission = 2
-						resp.SellerMobile = sellerItemQy.Mobile
-						resp.SellerName = sellerItemQy.RealName
-					} else {
-						hasPermission = 3
-					}
-				}
-			}
-			resp.HasPermission = hasPermission
-			resp.OperationMode = "Apply"
-			resp.PopupMsg = "您暂无权限参加此活动,若想参加可以申请开通对应的试用权限"
-			br.Ret = 200
-			br.Success = true
-			br.Msg = "获取成功"
-			br.Data = resp
-			return
-		}
-		companyDetail, err := models.GetCompanyDetailById(user.CompanyId)
-		if err != nil {
-			br.Msg = "获取信息失败!"
-			br.ErrMsg = "获取客户详情失败,Err:" + err.Error()
-			return
-		}
-		if companyDetail == nil {
-			br.Msg = "获取信息失败!"
-			br.ErrMsg = "客户不存在,uid:" + strconv.Itoa(user.UserId) + "CompanyId:" + strconv.Itoa(user.CompanyId)
-			return
-		}
-	}
-	userType, permissionStr, err := services.GetUserType(user.CompanyId)
-	if err != nil {
-		br.Msg = "获取信息失败"
-		br.ErrMsg = "获取客户信息失败,Err:" + err.Error()
-		return
-	}
-	itemAct := new(models.ActivityDetail)
-	itemAct.CustomerTypeIds = activityInfo.CustomerTypeIds
-	noPower, err := services.GetShareNoPowe(itemAct, permissionStr, userType, user)
+	havePower, err := services.GetSpecialDetailUserPower(user, activityInfo)
 	if err != nil {
 		br.Msg = "获取信息失败"
-		br.ErrMsg = "获取客户信息失败,Err:" + err.Error()
-		return
-	}
-
-	//获取用户的产业规模,判断是否允许可见
-	companyProduct, err := models.GetCompanyProductDetail(user.CompanyId, 2)
-	if err != nil && err.Error() != utils.ErrNoRow() {
-		br.Msg = "获取信息失败"
-		br.ErrMsg = "获取客户信息失败,Err:" + err.Error()
-		return
-	}
-	if companyProduct != nil {
-		if companyProduct.Scale != "" {
-			if strings.Count(activityInfo.Scale, companyProduct.Scale) > 0 {
-				noPower = false
-			}
-		}
-	}
-	if noPower {
-		br.Msg = "您暂无查看该活动权限"
-		br.ErrMsg = "被分享客户不可见,获取信息失败"
-		br.IsSendEmail = false
-		return
-	}
-
-	if userType == 1 && strings.Contains(activityInfo.ChartPermissionName, "研选") {
-		br.Msg = "您暂无查看该活动权限"
-		br.ErrMsg = "被分享客户不可见,永续客户无法查看研选行业"
+		br.ErrMsg = "判断是否已申请过试用失败,Err:" + err.Error()
 		return
 	}
-	//判断是否已经申请过
-	if user.CompanyId > 1 {
-		permissionStr, err := models.GetCompanyPermissionByUser(user.CompanyId)
-		if err != nil {
-			br.Msg = "获取信息失败"
-			br.ErrMsg = "获取客户权限信息失败,Err:" + err.Error()
-			return
-		}
-		companyItem, err := models.GetCompanyDetailById(user.CompanyId)
-		//冻结客户
-		if err != nil {
-			if err.Error() == utils.ErrNoRow() {
-				if applyCount > 0 {
-					hasPermission = 4
-				} else {
-					if sellerItem != nil {
-						hasPermission = 5
-					} else {
-						//获取权益销售信息 如果是FICC的客户类型,则默认他申请过
-						sellerItemQy, err := models.GetSellerByCompanyIdCheckFicc(user.CompanyId, 2)
-						if err != nil && err.Error() != utils.ErrNoRow() {
-							br.Msg = "获取信息失败"
-							br.ErrMsg = "获取销售信息失败,Err:" + err.Error()
-							return
-						}
-						if sellerItemQy != nil {
-							hasPermission = 2
-							resp.SellerMobile = sellerItemQy.Mobile
-							resp.SellerName = sellerItemQy.RealName
-						} else {
-							hasPermission = 3
-						}
-					}
-				}
-				resp.HasPermission = hasPermission
-				resp.OperationMode = "Apply"
-				resp.PopupMsg = "您暂无权限参加此活动,若想参加可以申请开通对应的试用权限"
-				br.Ret = 200
-				br.Success = true
-				br.Msg = "获取成功"
-				br.Data = resp
-				return
-			} else {
-				br.Msg = "获取信息失败"
-				br.ErrMsg = "获取客户公司信息失败,Err:" + err.Error()
-				return
-			}
-		}
-		var havePower bool
-		if strings.Contains(permissionStr, activityInfo.ActivityTypeName) {
-			havePower = true
-		}
-		if havePower {
-			hasPermission = 1
-			resp.HaqveJurisdiction = true
-		} else {
-			if permissionStr == "专家" {
-				resp.PopupMsg = "您暂无权限参加此活动,若想参加可以申请开通对应的试用权限"
-				resp.MsgType = "Type"
-			} else {
-				resp.PopupMsg = "您暂无权限参加此活动,若想参加可以申请开通对应的试用权限"
-				resp.MsgType = "Industry"
-			}
-			if companyItem.ProductId == 2 {
-				resp.SellerMobile = companyItem.Mobile
-				resp.SellerName = companyItem.SellerName
-				resp.OperationMode = "Call"
-				hasPermission = 2
-			} else {
-				hasPermission = 5
-			}
-		}
-	} else { //潜在客户
-		if applyCount > 0 {
-			hasPermission = 4
-		} else {
-			if sellerItem != nil {
-				hasPermission = 5
-			} else {
-				hasPermission = 3
-			}
-		}
-		resp.OperationMode = "Apply"
-		resp.PopupMsg = "您暂无权限参加此活动,若想参加可以申请开通对应的试用权限"
-	}
-	if hasPermission == 1 {
+	if havePower {
+		resp.HasPermission = 1
 		count, err := models.GetCygxUserFollowSpecial(user.UserId)
 		if err != nil {
 			br.Msg = "获取数据失败!"
@@ -333,7 +145,20 @@ func (this *ActivitySpecialCoAntroller) SpecialDetail() {
 		activityInfo.TripNum = tripTota
 		activityInfo.ActivityTypeName = "专项调研"
 		resp.Detail = activityInfo
+		resp.Detail = activityInfo
+	} else {
+		hasPermission, sellerName, sellerMobile, err := services.GetUserHasPermission(user)
+		if err != nil {
+			br.Msg = "获取信息失败"
+			br.ErrMsg = "判断是否已申请过试用失败,Err:" + err.Error()
+			return
+		}
+		resp.PopupMsg = "您暂无权限参加此活动,若想参加可以申请开通对应的试用权限"
+		resp.HasPermission = hasPermission
+		resp.SellerName = sellerName
+		resp.SellerMobile = sellerMobile
 	}
+	//判断是否已经申请过
 	resp.HasPermission = hasPermission
 	br.Ret = 200
 	br.Success = true

+ 0 - 11
models/activity.go

@@ -849,17 +849,6 @@ type CygxActivitySpecialResp struct {
 	Detail            *CygxActivitySpecialDetail
 }
 
-//获取数量
-func GetActivitySpecialCount(condition string, pars []interface{}) (count int, err error) {
-	sqlCount := ` SELECT COUNT(1) AS count  FROM cygx_activity_special as art WHERE 1= 1  `
-	if condition != "" {
-		sqlCount += condition
-	}
-	o := orm.NewOrm()
-	err = o.Raw(sqlCount, pars).QueryRow(&count)
-	return
-}
-
 //获取专项调研活动列表
 func GetCygxActivitySpecialDetailList(condition string, pars []interface{}, uid, startSize, pageSize int) (items []*CygxActivitySpecialDetail, err error) {
 	o := orm.NewOrm()

+ 17 - 0
models/activity_special.go

@@ -0,0 +1,17 @@
+package models
+
+import (
+	//"fmt"
+	"github.com/beego/beego/v2/client/orm"
+)
+
+//获取数量
+func GetActivitySpecialCount(condition string, pars []interface{}) (count int, err error) {
+	sqlCount := ` SELECT COUNT(1) AS count  FROM cygx_activity_special as art WHERE 1= 1  `
+	if condition != "" {
+		sqlCount += condition
+	}
+	o := orm.NewOrm()
+	err = o.Raw(sqlCount, pars).QueryRow(&count)
+	return
+}

+ 67 - 18
services/activity_special.go

@@ -123,7 +123,6 @@ func GetActivityLabelSpecialList(user *models.WxUserItem, isPower int, chartPerm
 		specialList[k2].ImgUrlBg = "https://hzstatic.hzinsights.com/static/temp/20220426202204/20220426/XDLLsjC9XAAy8LIzQr7GsjrBbtX6.png"
 		specialList[k2].ImgUrlBg = utils.ACTIVITY_ZXDY_ImgUrl3
 	}
-
 	itemList.ActivityTypeName = "专项产业调研"
 	itemList.Resource = 2
 	itemList.List = specialList
@@ -136,8 +135,14 @@ func GetActivityLabelSpecialList(user *models.WxUserItem, isPower int, chartPerm
 
 //HandleActivityLabelSpecialPermission 处理专项产业调研的查询权限sql 永续
 func HandleActivityLabelSpecialPermission(user *models.WxUserItem) (condition string, err error) {
-	userType, permissionStr, err := GetUserType(user.CompanyId)
-	if err != nil {
+	permissionStr, e := GetCompanyPermission(user.CompanyId)
+	if e != nil {
+		err = errors.New("GetCompanyPermission, Err: " + e.Error())
+		return
+	}
+	userType, e := GetSpecialUserType(user)
+	if e != nil {
+		err = errors.New("GetSpecialUserType, Err: " + e.Error())
 		return
 	}
 	slicePer := strings.Split(permissionStr, ",")
@@ -152,19 +157,19 @@ func HandleActivityLabelSpecialPermission(user *models.WxUserItem) (condition st
 		}
 	}
 	permissionSqlStr = strings.TrimRight(permissionSqlStr, ",")
-	permissionSqlStr = strings.Replace(permissionSqlStr, "(主观)", "", -1)
-	permissionSqlStr = strings.Replace(permissionSqlStr, "(客观)", "", -1)
 	condition = ` AND art.publish_status = 1  AND art.label != ''  AND art.is_offline = 0  `
-	condition += ` AND art.chart_permission_name  IN (` + permissionSqlStr + `) `
+	if permissionSqlStr != "" {
+		condition += ` AND art.chart_permission_name  IN (` + permissionSqlStr + `) `
+	}
 	condition += ` AND  art.customer_type_ids LIKE '%` + strconv.Itoa(userType) + `%' `
 	return
 }
 
-//HandleActivityLabelSpecialPermisseion 处理专项产业调研的查询权限sql 升级
+//HandleActivityLabelSpecialPermisseion 处理专项产业调研的查询权限sql
 func HandleActivityLabelSpecialTripPermission(user *models.WxUserItem) (condition string, err error) {
-	_, permissionStr, e := GetActivitySpecialUserType(user.CompanyId)
+	permissionStr, e := GetCompanyPermission(user.CompanyId)
 	if e != nil {
-		err = errors.New("GetActivitySpecialUserType, Err: " + e.Error())
+		err = errors.New("GetCompanyPermission, Err: " + e.Error())
 		return
 	}
 	userType, e := GetSpecialUserType(user)
@@ -172,7 +177,6 @@ func HandleActivityLabelSpecialTripPermission(user *models.WxUserItem) (conditio
 		err = errors.New("GetSpecialUserType, Err: " + e.Error())
 		return
 	}
-	fmt.Println("userType", userType)
 	slicePer := strings.Split(permissionStr, ",")
 	var permissionSqlStr string
 	for _, v := range slicePer {
@@ -185,8 +189,6 @@ func HandleActivityLabelSpecialTripPermission(user *models.WxUserItem) (conditio
 		}
 	}
 	permissionSqlStr = strings.TrimRight(permissionSqlStr, ",")
-	permissionSqlStr = strings.Replace(permissionSqlStr, "(主观)", "", -1)
-	permissionSqlStr = strings.Replace(permissionSqlStr, "(客观)", "", -1)
 	condition = ` AND art.publish_status = 1  AND art.label != ''  AND art.is_offline = 0  `
 	if permissionSqlStr != "" {
 		condition += ` AND art.chart_permission_name  IN (` + permissionSqlStr + `) `
@@ -264,7 +266,6 @@ func GetActivityLabelSpecialConfirmList(user *models.WxUserItem, startSize, page
 			return
 		}
 	}
-
 	var pars []interface{}
 	condition += ` AND art.days >0  `
 	if state == 1 {
@@ -281,7 +282,6 @@ func GetActivityLabelSpecialConfirmList(user *models.WxUserItem, startSize, page
 		condition += ` AND art.activity_time_end < ? `
 		pars = append(pars, time.Now())
 	}
-
 	if keywords != "" {
 		keywords = "%" + keywords + "%"
 		condition += ` AND art.research_theme LIKE ? `
@@ -298,7 +298,6 @@ func GetActivityLabelSpecialConfirmList(user *models.WxUserItem, startSize, page
 		err = errors.New("GetCygxActivitySpecialDetailList, Err: " + e.Error())
 		return
 	}
-
 	var activityIds []int
 	for k, v := range list {
 		resultTimeStart := utils.StrTimeToTime(v.ActivityTime)  //时间字符串格式转时间格式
@@ -431,11 +430,16 @@ func GetActivitySpecialList(user *models.WxUserItem, currentIndex, pageSize int,
 		mapChart[chartName] = imgUrlChart
 	}
 	for k, v := range list {
-		list[k].ImgUrlText = "https://hongze.oss-cn-shanghai.aliyuncs.com/static/images/202112/20211221/bIdfv8t86xrFRpDOeGGHXOmKEuKl.png"
+		//list[k].ImgUrlText = "https://hongze.oss-cn-shanghai.aliyuncs.com/static/images/202112/20211221/bIdfv8t86xrFRpDOeGGHXOmKEuKl.png"
 		if mapChart[v.ChartPermissionName] != "" {
 			list[k].ImgUrl = mapChart[v.ChartPermissionName]
 		}
 		list[k].ActivityTypeName = "专项调研"
+		if list[k].Days == 0 {
+			list[k].TripStatus = 1
+		} else {
+			list[k].TripStatus = 2
+		}
 	}
 	return
 }
@@ -494,7 +498,7 @@ func GetActivitySpecialSearcheList(user *models.WxUserItem, condition string, st
 	return
 }
 
-//获取 专项调研客户类型   //1、永续客户 //2、大套餐客户(4个行业全开通的正式客户) //3、分行业套餐客户(开通对应行业的正式客户) //4、仅开通专家套餐的正式客户 //5、开通对应行业套餐或专家套餐的试用客户;6、冻结客户;7、流失客户 8:行业升级套餐客户
+//获取 专项调研客户类型   //1、永续客户 //2、大套餐客户(4个行业全开通的正式客户) //8、行业升级套餐客户 //9、其余正式客户;5、试用客户
 func GetActivitySpecialUserType(companyId int) (userType int, permissionStrnew string, err error) {
 	var permissionStr, permissionZhengShiStr string
 	if companyId <= 1 {
@@ -553,6 +557,7 @@ func GetActivitySpecialUserType(companyId int) (userType int, permissionStrnew s
 }
 
 //GetSpecialUserType 获取专项产业调研的用户身份类型
+//获取 专项调研客户类型   //1、永续客户 //2、大套餐客户(4个行业全开通的正式客户) //8、行业升级套餐客户 //9、其余正式客户;5、试用客户
 func GetSpecialUserType(user *models.WxUserItem) (userType int, err error) {
 	companyId := user.CompanyId
 	companyDetail, e := models.GetCompanyDetailByIdGroupTrip(companyId)
@@ -572,7 +577,7 @@ func GetSpecialUserType(user *models.WxUserItem) (userType int, err error) {
 					err = errors.New("GetCompanyReportPermissionUpgrade, Err: " + e.Error())
 				}
 				if len(list) == 0 {
-					return
+					userType = 9
 				}
 				if len(list) == 4 {
 					totalName, e := models.GetCompanyPermissionNameCheck(companyId, 2, "策略")
@@ -588,8 +593,52 @@ func GetSpecialUserType(user *models.WxUserItem) (userType int, err error) {
 				} else {
 					userType = 8
 				}
+			} else if companyDetail.Status == "试用" {
+				userType = 5
 			}
 		}
 	}
 	return
 }
+
+//GetSpecialDetailUserPower 处理用户查看专项调研详情的权限
+func GetSpecialDetailUserPower(user *models.WxUserItem, activityInfo *models.CygxActivitySpecialDetail) (havePower bool, err error) {
+	permissionStr, e := GetCompanyPermissionUpgrade(user.CompanyId)
+	if e != nil {
+		err = errors.New("GetCompanyPermissionUpgrade, Err: " + e.Error())
+		return
+	}
+	if permissionStr == "" {
+		return
+	}
+	userType, e := GetSpecialUserType(user)
+	if e != nil {
+		err = errors.New("GetSpecialUserType, Err: " + e.Error())
+		return
+	}
+	if userType == 0 {
+		return
+	}
+	var pars []interface{}
+	var condition string
+	var userTypes string
+	condition += `  AND art.publish_status = 1 AND art.is_offline = 0   `
+	userTypes = "%" + strconv.Itoa(userType) + "%"
+	condition += ` AND art.research_theme LIKE ? `
+	pars = append(pars, userTypes)
+
+	condition += ` AND art.activity_id = ? `
+	pars = append(pars, activityInfo.ActivityId)
+
+	total, e := models.GetActivitySpecialCount(condition, pars)
+	if e != nil {
+		err = errors.New("GetSpecialUserType, Err: " + e.Error())
+		return
+	}
+	if total == 1 {
+		havePower = true
+	}
+	fmt.Println(permissionStr)
+	fmt.Println(userType)
+	return
+}

+ 74 - 0
services/company_permission.go

@@ -0,0 +1,74 @@
+package services
+
+import (
+	"errors"
+	"hongze/hongze_cygx/models"
+	"hongze/hongze_cygx/utils"
+	"strings"
+)
+
+//GetCompanyPermission 获取公司对应的权限名称
+func GetCompanyPermission(companyId int) (permissionStr string, err error) {
+	permissionStr, err = models.GetCompanyPermission(companyId)
+	if err != nil {
+		return
+	}
+	permissionStr = strings.Replace(permissionStr, "(主观)", "", -1)
+	permissionStr = strings.Replace(permissionStr, "(客观)", "", -1)
+	return
+}
+
+//GetCompanyPermissionUpgrade 获取公司对应的升级权限名称
+func GetCompanyPermissionUpgrade(companyId int) (permissionStr string, err error) {
+	permissionStr, err = models.GetCompanyPermissionByUserTrip(companyId)
+	if err != nil {
+		return
+	}
+	permissionStr = strings.Replace(permissionStr, "(主观)", "", -1)
+	permissionStr = strings.Replace(permissionStr, "(客观)", "", -1)
+	return
+}
+
+//获取用户对应的权限申请状态
+func GetUserHasPermission(user *models.WxUserItem) (hasPermission int, sellerName, sellerMobile string, err error) {
+	//HasPermission     int    `description:"操作方式,1:有该行业权限,正常展示,2:无该行业权限,3:潜在客户,未提交过申请,4:潜在客户,已提交过申请,5:有IFCC、无权益"`
+	uid := user.UserId
+	applyCount, e := models.GetApplyRecordCount(uid)
+	if e != nil {
+		err = errors.New("GetCompanyPermissionUpgrade, Err: " + e.Error())
+		return
+	}
+	if user.CompanyId <= 1 {
+		if applyCount == 0 {
+			hasPermission = 3
+		} else {
+			hasPermission = 4
+		}
+	} else {
+		companyPermission, e := models.GetCompanyPermission(user.CompanyId)
+		if e != nil {
+			err = errors.New("GetCompanyPermission, Err: " + e.Error())
+			return
+		}
+		if companyPermission != "" {
+			if applyCount > 0 {
+				hasPermission = 4
+			} else {
+				//获取权益销售信息 如果是FICC的客户类型,则默认他申请过
+				sellerItemQy, e := models.GetSellerByCompanyIdCheckFicc(user.CompanyId, 2)
+				if e != nil && e.Error() != utils.ErrNoRow() {
+					err = errors.New("GetSellerByCompanyIdCheckFicc, Err: " + e.Error())
+					return
+				}
+				if sellerItemQy != nil {
+					hasPermission = 2
+					sellerName = sellerItemQy.Mobile
+					sellerMobile = sellerItemQy.RealName
+				} else {
+					hasPermission = 3
+				}
+			}
+		}
+	}
+	return
+}