Browse Source

Merge branch 'crm_14.7' of http://8.136.199.33:3000/hongze/hongze_cygx into debug

xingzai 1 year ago
parent
commit
fa196db9fa

+ 6 - 0
controllers/article.go

@@ -211,6 +211,12 @@ func (this *ArticleController) Detail() {
 			return
 		}
 
+		//判断用户是否开通了个人研选权限,如果有权限后缀拼接权限名称
+		mfyxUserPermissionTotal := services.GetMfyxUserPermissionTotal(uid)
+		if mfyxUserPermissionTotal == 1 {
+			companyPermission += "," + utils.CHART_PERMISSION_NAME_MF_YANXUAN
+		}
+
 		if companyPermission == "" {
 			if applyCount > 0 {
 				hasPermission = 5

+ 18 - 0
controllers/user.go

@@ -407,6 +407,24 @@ func (this *UserController) Detail() {
 	if detail.Headimgurl == "" {
 		detail.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 {
+		detail.MfyxStatus = userYanxunaDetail.Status
+		detail.MfyxStartDate = userYanxunaDetail.StartDate
+		detail.MfyxEndDate = userYanxunaDetail.EndDate
+		if !strings.Contains(detail.PermissionName, utils.CHART_PERMISSION_NAME_MF_YANXUAN) {
+			detail.PermissionName += "," + utils.CHART_PERMISSION_NAME_MF_YANXUAN
+		}
+	} else {
+		detail.MfyxHasPermission = 1
+	}
 	br.Ret = 200
 	br.Success = true
 	br.Msg = "获取成功"

+ 4 - 0
models/user.go

@@ -26,6 +26,10 @@ type UserDetail struct {
 	ConNum              int    `description:"收藏"`
 	HistoryNum          int    `description:"足迹"`
 	ScheduleNum         int    `description:"活动日程"`
+	MfyxStartDate       string `description:"买方研选权限开始日期"`
+	MfyxEndDate         string `description:"买方研选权限结束日期"`
+	MfyxStatus          string `description:"买方研选状态'试用','未开通'"`
+	MfyxHasPermission   int    `description:"0:有权限,1:无该行业权限"`
 }
 
 func GetUserDetailByUserId(userId int) (item *UserDetail, err error) {

+ 105 - 0
models/user_yanxuan_permission.go

@@ -0,0 +1,105 @@
+package models
+
+import (
+	"github.com/beego/beego/v2/client/orm"
+	"hongze/hongze_cygx/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:"修改时间"`
+}
+
+// 添加
+func AddCygxUserYanxuanPermission(item *CygxUserYanxuanPermission) (lastId int64, err error) {
+	o := orm.NewOrm()
+	lastId, err = o.Insert(item)
+	return
+}
+
+// 添加日志记录
+func AddCygxUserYanxuanPermissionLog(item *CygxUserYanxuanPermissionLog) (lastId int64, err error) {
+	o := orm.NewOrm()
+	lastId, err = o.Insert(item)
+	return
+}
+
+// 根据用户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
+}
+
+// 将研选权限状态改为未开通
+func UpdateCygxUserYanxuanPermissionClose(userId int) (err error) {
+	o := orm.NewOrm()
+	sql := ` UPDATE cygx_user_yanxuan_permission
+			SET
+			  status ='未开通',
+			  modify_time = ?
+			WHERE user_id = ? `
+	_, err = o.Raw(sql, time.Now(), userId).Exec()
+	return
+}
+
+// 列表
+func GetCygxUserYanxuanPermissionList(condition string, pars []interface{}, startSize, pageSize int) (items []*CygxUserYanxuanPermission, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT * FROM cygx_user_yanxuan_permission WHERE 1= 1 `
+	if condition != "" {
+		sql += condition
+	}
+	sql += ` LIMIT ?,?  `
+	_, err = o.Raw(sql, pars, startSize, pageSize).QueryRows(&items)
+	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
+}
+
+// UpdateCygxUserYanxuanPermissionToClose 把权限到期的状态进行更新
+func UpdateCygxUserYanxuanPermissionToClose() (err error) {
+	o := orm.NewOrm()
+	sql := `UPDATE cygx_user_yanxuan_permission SET status = '未开通' WHERE  status = '试用'  AND end_date < ? `
+	_, err = o.Raw(sql, time.Now().Format(utils.FormatDate)).Exec()
+	return
+}

+ 7 - 0
services/activity.go

@@ -556,6 +556,7 @@ func GetUserTypeZhengShi(companyId int) (userType int, permissionStrnew, permiss
 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] {
@@ -573,6 +574,12 @@ 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

+ 3 - 0
services/task.go

@@ -126,6 +126,9 @@ func Task() {
 		updateIndustrialManagementOneMonthFollowNum := task.NewTask("updateIndustrialManagementOneMonthFollowNum", "0 10 1 * * *", UpdateIndustrialManagementOneMonthFollowNum)
 		task.AddTask("updateIndustrialManagementOneMonthFollowNum", updateIndustrialManagementOneMonthFollowNum) //更新产业近一个月被关注的数量
 
+		updateCygxUserYanxuanPermissionToClose := task.NewTask("updateCygxUserYanxuanPermissionToClose", "0 10 1 * * *", UpdateCygxUserYanxuanPermissionToClose)
+		task.AddTask("updateCygxUserYanxuanPermissionToClose", updateCygxUserYanxuanPermissionToClose) //关闭到期个人用户研选权限
+
 	}
 	if utils.RunMode != "release" {
 		getArticleListByApi := task.NewTask("getArticleListByApi", "0 */60 * * * *", GetArticleListByApi) //通过三方接口获取策略平台上的文章

+ 43 - 0
services/user_yanxuan_permission.go

@@ -0,0 +1,43 @@
+package services
+
+import (
+	"context"
+	"errors"
+	"fmt"
+	"hongze/hongze_cygx/models"
+	"hongze/hongze_cygx/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
+}
+
+// UpdateCygxUserYanxuanPermissionToClose 关闭到期个人用户研选权限
+func UpdateCygxUserYanxuanPermissionToClose(cont context.Context) (err error) {
+	defer func() {
+		if err != nil {
+			fmt.Println(err)
+			go utils.SendAlarmMsg(fmt.Sprint("关闭个人用户研选权限失败 UpdateCygxUserYanxuanPermissionToClose ,err:", err.Error()), 2)
+		}
+	}()
+	e := models.UpdateCygxUserYanxuanPermissionToClose()
+	if e != nil {
+		err = errors.New("UpdateCygxUserYanxuanPermissionToClose, Err: " + e.Error())
+		return
+	}
+	return
+}