Răsfoiți Sursa

Merge branch 'crm_14.7' of http://8.136.199.33:3000/cxzhang/hongze_clpt

xingzai 1 an în urmă
părinte
comite
cc70cf1b72

+ 7 - 1
controllers/article.go

@@ -134,6 +134,11 @@ func (this *ArticleController) Detail() {
 			br.ErrMsg = "判断是否已申请访谈失败,Err:" + strconv.Itoa(uid) + ";articleId" + strconv.Itoa(articleId)
 			return
 		}
+		//判断用户是否开通了个人研选权限,如果有权限后缀拼接权限名称
+		mfyxUserPermissionTotal := services.GetMfyxUserPermissionTotal(uid)
+		if mfyxUserPermissionTotal == 1 {
+			companyPermission += "," + utils.CHART_PERMISSION_NAME_MF_YANXUAN
+		}
 		detail, err = models.GetArticleDetailById(articleId)
 		if err != nil {
 			br.Msg = "获取信息失败"
@@ -185,7 +190,8 @@ func (this *ArticleController) Detail() {
 				br.ErrMsg = "获取用户信息失败,Err:" + err.Error()
 				return
 			}
-			if userType == 1 && strings.Contains(detail.CategoryName, "研选") {
+			//永续客户,无法查看研选权限,但是下面的联系人,单独开通研选后,也可以查看研选内容
+			if userType == 1 && strings.Contains(detail.CategoryName, "研选") && mfyxUserPermissionTotal == 0 {
 				hasPersion = false
 			}
 			//if detail.IsReport == 1 {

+ 12 - 0
controllers/user.go

@@ -248,6 +248,18 @@ func (this *UserController) Detail() {
 	if resp.Headimgurl == "" {
 		resp.Headimgurl = utils.DefaultHeadimgurl
 	}
+	userYanxunaDetail, err := models.GetCygxUserYanxuanPermissionDetailByUserId(user.UserId)
+
+	if err != nil && err.Error() != utils.ErrNoRow() {
+		br.Msg = "获取信息失败"
+		br.ErrMsg = "获取信息失败,GetCygxUserYanxuanPermissionDetailByUserId Err:" + err.Error()
+		return
+	}
+	if userYanxunaDetail != nil {
+		if !utils.InArrayByStr(resp.PermissionName, utils.CHART_PERMISSION_NAME_MF_YANXUAN) {
+			resp.PermissionName = append(resp.PermissionName, utils.CHART_PERMISSION_NAME_MF_YANXUAN)
+		}
+	}
 	br.Ret = 200
 	br.Success = true
 	br.Msg = "获取成功"

+ 59 - 0
models/user_yanxuan_permission.go

@@ -0,0 +1,59 @@
+package models
+
+import (
+	"github.com/beego/beego/v2/client/orm"
+	"hongze/hongze_clpt/utils"
+	"time"
+)
+
+type CygxUserYanxuanPermission struct {
+	UserYanxuanPermissionId int64     `orm:"column(user_yanxuan_permission_id);pk"`
+	UserId                  int       `description:"用户ID"`
+	CompanyId               int       `description:"权限开始日期"`
+	StartDate               string    `description:"权限开始日期"`
+	EndDate                 string    `description:"权限结束日期"`
+	Status                  string    `description:"'试用','未开通'"`
+	Mobile                  string    `description:"手机号"`
+	Email                   string    `description:"邮箱"`
+	RealName                string    `description:"用户实际名称"`
+	CompanyName             string    `description:"公司名称"`
+	AdminId                 int       `description:"后台添加人员ID"`
+	AdminRealName           string    `description:"后台添加人员姓名"`
+	CreatedTime             time.Time `description:"创建时间"`
+	LastUpdatedTime         time.Time `description:"修改时间根据时间戳自动更新"`
+	ModifyTime              time.Time `description:"修改时间"`
+}
+
+type CygxUserYanxuanPermissionLog struct {
+	UserYanxuanPermissionId int64     `orm:"column(user_yanxuan_permission_log_id);pk"`
+	UserId                  int       `description:"用户ID"`
+	CompanyId               int       `description:"权限开始日期"`
+	StartDate               string    `description:"权限开始日期"`
+	EndDate                 string    `description:"权限结束日期"`
+	Status                  string    `description:"'试用','未开通'"`
+	Mobile                  string    `description:"手机号"`
+	Email                   string    `description:"邮箱"`
+	RealName                string    `description:"用户实际名称"`
+	CompanyName             string    `description:"公司名称"`
+	AdminId                 int       `description:"后台添加人员ID"`
+	AdminRealName           string    `description:"后台添加人员姓名"`
+	CreatedTime             time.Time `description:"创建时间"`
+	LastUpdatedTime         time.Time `description:"修改时间根据时间戳自动更新"`
+	ModifyTime              time.Time `description:"修改时间"`
+}
+
+// 根据用户ID获取是否开通过研选权限
+func GetCygxUserYanxuanPermissionCountByUserId(userId int) (count int, err error) {
+	o := orm.NewOrm()
+	sql := ` SELECT COUNT(1) FROM cygx_user_yanxuan_permission WHERE  status = '试用'  AND user_id = ?  `
+	err = o.Raw(sql, userId).QueryRow(&count)
+	return
+}
+
+// 根据用户ID获取研选开通详情
+func GetCygxUserYanxuanPermissionDetailByUserId(userId int) (item *CygxUserYanxuanPermission, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT * FROM cygx_user_yanxuan_permission  WHERE status = '试用' AND user_id = ? `
+	err = o.Raw(sql, userId).QueryRow(&item)
+	return
+}

+ 13 - 0
services/activity.go

@@ -1285,6 +1285,7 @@ func GetIndustryNewLabelMap(industryIds []int) (labelMap map[int]bool, err error
 func GetActivityDetailUserPower(user *models.WxUserItem, activityInfo *models.ActivityDetail) (havePower, isResearchSpecial bool, err error) {
 	var companyDetailStatus string
 	var userTypeStr string
+	userId := user.UserId
 	activityPointsByUserAllMap := GetActivityPointsByUserAllMap() // 获取对用户进行研选扣点的活动
 	//勾选【研选扣点】且扣点对象为参会人的活动,需要有买方研选的正式权限
 	if strings.Contains(activityInfo.ChartPermissionName, utils.CHART_PERMISSION_NAME_YANXUAN) && activityPointsByUserAllMap[activityInfo.ActivityId] {
@@ -1302,10 +1303,22 @@ func GetActivityDetailUserPower(user *models.WxUserItem, activityInfo *models.Ac
 		err = errors.New("GetCompanyPermissionUpgrade, Err: " + e.Error())
 		return
 	}
+	//判断用户是否开通了个人研选权限,如果有权限后缀拼接权限名称
+	mfyxUserPermissionTotal := GetMfyxUserPermissionTotal(userId)
+	if mfyxUserPermissionTotal == 1 {
+		permissionStr += "," + utils.CHART_PERMISSION_NAME_MF_YANXUAN
+	}
 	//如果一个权限都没有就返回无权限
 	if permissionStr == "" {
 		return
 	}
+
+	//永续客户,无法查看研选权限,但是下面的联系人,单独开通研选后,也可以查看研选内容
+	if userType == 1 && strings.Contains(activityInfo.ChartPermissionName, utils.CHART_PERMISSION_NAME_YANXUAN) && mfyxUserPermissionTotal == 0 {
+		havePower = false
+		return
+	}
+
 	permissionStr += "," + utils.HONG_GUAN_NAME // 添加一个宏观权限
 	if permissionStrZhengShi == "" {
 		permissionStrZhengShi = utils.HONG_GUAN_NAME // 添加一个宏观权限

+ 12 - 0
services/user_permission.go

@@ -160,11 +160,23 @@ func GetUserRaiPermissionInfo(userId, companyId int) (authInfo models.UserPermis
 	// 有基本的权益权限
 	authInfo.HasPermission = 1
 	permissionArr = strings.Split(permissions, ",")
+
+	//判断用户是否开通了个人研选权限,如果有权限后缀拼接权限名称
+	mfyxUserPermissionTotal := GetMfyxUserPermissionTotal(userId)
+	if mfyxUserPermissionTotal == 1 {
+		permissionArr = append(permissionArr, utils.CHART_PERMISSION_NAME_MF_YANXUAN)
+	}
 	return
 }
 
 // 查询研选的权限状态
 func GetUserRaiPermissionYanXuanInfo(user *models.WxUserItem) (hasPermission int, err error) {
+	//判断用户是否开通了个人研选权限
+	mfyxUserPermissionTotal := GetMfyxUserPermissionTotal(user.UserId)
+	if mfyxUserPermissionTotal == 1 {
+		hasPermission = 1
+		return
+	}
 	var condition string
 	var pars []interface{}
 	condition = " AND company_id = ?  AND status  IN ('正式','试用')  AND chart_permission_id = ?   ORDER BY company_report_permission_id DESC LIMIT 1  "

+ 26 - 0
services/user_yanxuan_permission.go

@@ -0,0 +1,26 @@
+package services
+
+import (
+	"errors"
+	"fmt"
+	"hongze/hongze_clpt/models"
+	"hongze/hongze_clpt/utils"
+)
+
+// 判断用户是否开通了个人研选权限
+func GetMfyxUserPermissionTotal(userId int) (toatal int) {
+	var err error
+	defer func() {
+		if err != nil {
+			fmt.Println(err)
+			go utils.SendAlarmMsg(fmt.Sprint("判断用户是否开通了个人研选权限失败 GetMfyxUserPermissionTotal userId", userId, ",err:", err.Error()), 2)
+		}
+	}()
+	//判断用户是否开通了个人研选权限,如果有权限后缀拼接权限名称
+	toatal, e := models.GetCygxUserYanxuanPermissionCountByUserId(userId)
+	if e != nil {
+		err = errors.New("GetCygxUserYanxuanPermissionCountByUserId, Err: " + e.Error())
+		return
+	}
+	return
+}