Переглянути джерело

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

xingzai 1 рік тому
батько
коміт
c68e5ba5b5

+ 2 - 1
controllers/activity_special.go

@@ -287,7 +287,8 @@ func (this *ActivitySpecialController) SpecialTripAdd() {
 			itemMeeting.RealName = user.RealName
 
 			go services.ActivitySpecialUserRmind(user, activityId, 2)
-			//判断是添加还是删除
+			go services.ActivitySpecialUserAddTrip(user, activityId)
+			//判断是删除还是添加
 			if total == 0 {
 				//获取销售信息
 				sellerItem, err := models.GetSellerByCompanyIdCheckFicc(user.CompanyId, 2)

+ 5 - 0
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 = "获取信息失败"

+ 58 - 0
models/user_yanxuan_permission.go

@@ -0,0 +1,58 @@
+package models
+
+import (
+	"github.com/beego/beego/v2/client/orm"
+	"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
+}

+ 6 - 0
services/activity.go

@@ -1283,6 +1283,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] {
@@ -1300,6 +1301,11 @@ 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

+ 65 - 0
services/activity_special_trip.go

@@ -557,3 +557,68 @@ func GetChartPermissionSpecialSurplusByCompany(companyId int) (userType int, tri
 	}
 	return
 }
+
+// 确定行程用户报名模版消息推送
+func ActivitySpecialUserAddTrip(user *models.WxUserItem, activityId int) (err error) {
+	defer func() {
+		if err != nil {
+			go utils.SendAlarmMsg("确定行程用户报名模版消息推送,模板消息推送失败"+err.Error(), 2)
+		}
+	}()
+	var first string
+	var keyword1 string
+	var keyword2 string
+	var keyword3 string
+	var keyword4 string
+	var remark string
+	//获取销售手机号
+	sellerItemQy, err := models.GetSellerByCompanyIdCheckFicc(user.CompanyId, 2)
+	if err != nil && err.Error() != utils.ErrNoRow() {
+		return err
+	}
+	cnf, _ := models.GetConfigByCode("tpl_msg")
+
+	if cnf != nil && sellerItemQy != nil {
+		openIdList, e := models.GetWxOpenIdByMobileList(cnf.ConfigValue + "," + sellerItemQy.Mobile)
+		if e != nil {
+			err = errors.New("GetSellerByAdminId, Err: " + e.Error())
+			return
+		}
+		activityInfo, e := models.GetCygxActivitySpecialDetailById(user.UserId, activityId)
+		if e != nil {
+			err = errors.New("GetCygxActivitySpecialDetailById, Err: " + e.Error())
+			return
+		}
+		if activityInfo == nil {
+			return
+		}
+		keyword1 = fmt.Sprint(user.RealName, "--", user.CompanyName, "(所属销售:", sellerItemQy.RealName, ")")
+		keyword2 = user.Mobile
+		keyword3 = time.Now().Format(utils.FormatDateTime)
+		keyword4 = "报名专项调研【" + activityInfo.ResearchTheme + "】 "
+		remark = ""
+		openIdArr := make([]string, 0)
+		for _, v := range openIdList {
+			openIdArr = append(openIdArr, v.OpenId)
+		}
+		redirectUrl := utils.WX_MSG_PATH_ACTIVITY_SPECIAL_DETAIL + strconv.Itoa(activityId)
+		sendInfo := new(SendWxTemplate)
+		sendInfo.First = first
+		sendInfo.Keyword1 = keyword1
+		sendInfo.Keyword2 = keyword2
+		sendInfo.Keyword3 = keyword3
+		sendInfo.Keyword4 = keyword4
+		sendInfo.Remark = remark
+		sendInfo.TemplateId = utils.WxMsgTemplateIdApplyXzs
+		sendInfo.RedirectUrl = redirectUrl
+		sendInfo.RedirectTarget = 3
+		sendInfo.Resource = strconv.Itoa(activityId)
+		sendInfo.SendType = utils.TEMPLATE_MSG_CYGX_ARTICLE_ADD
+		sendInfo.OpenIdArr = openIdArr
+		err = PublicSendTemplateMsg(sendInfo)
+		if err != nil {
+			return
+		}
+	}
+	return
+}

+ 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
+}