浏览代码

no message

zhangchuanxing 3 天之前
父节点
当前提交
0b7b7ca033
共有 4 个文件被更改,包括 177 次插入1 次删除
  1. 29 0
      models/cygx_template_record_source.go
  2. 1 0
      models/db.go
  3. 146 0
      services/cygx_template_record_source.go
  4. 1 1
      services/wx_user_rai_label.go

+ 29 - 0
models/cygx_template_record_source.go

@@ -0,0 +1,29 @@
+package models
+
+import (
+	"github.com/beego/beego/v2/client/orm"
+	"time"
+)
+
+type CygxTemplateRecordSource struct {
+	TemplateId int       `orm:"column(template_id);pk"`
+	UserId     int       `description:"用户ID"`
+	SourceId   int       `description:"资源ID"`
+	Source     string    `description:"资源类型 报告 :article 、图表 :newchart、活动 :activity、活动视频:activityvideo、活动音频:activityvoice"`
+	CreateTime time.Time `description:"创建时间"`
+}
+
+// 添加
+func AddCygxTemplateRecordSource(item *CygxTemplateRecordSource) (err error) {
+	o := orm.NewOrm()
+	_, err = o.Insert(item)
+	return
+}
+
+// 获取数量
+func GetCygxTemplateRecordSourceCount(userId, sourceId int, source, startDate, endDate string) (count int, err error) {
+	sqlCount := `SELECT COUNT(1) AS count FROM cygx_template_record_source    WHERE  user_id = ? AND  source_id = ?  AND  source = ?  AND  create_time >= ?  AND  create_time < ?      `
+	o := orm.NewOrm()
+	err = o.Raw(sqlCount, userId, sourceId, source, startDate, endDate).QueryRow(&count)
+	return
+}

+ 1 - 0
models/db.go

@@ -199,6 +199,7 @@ func init() {
 		new(WxUserRaiLabel),
 		new(WxUserRaiLabelLog),
 		new(WxUserRaiArticleLabel),
+		new(CygxTemplateRecordSource),
 		//new(WxUserEndDateLog),
 	)
 

+ 146 - 0
services/cygx_template_record_source.go

@@ -0,0 +1,146 @@
+package services
+
+import (
+	"errors"
+	"fmt"
+	"hongze/hongze_cygx/models"
+	"hongze/hongze_cygx/models/company"
+	"hongze/hongze_cygx/utils"
+	"strconv"
+	"strings"
+	"time"
+)
+
+// Kp互动提醒
+func SendCygxTemplateRecordSource(log models.WxUserRaiLabelRedis) (err error) {
+	userId := log.UserId
+	sourceId := log.SourceId
+	sourceType := log.SourceType
+
+	defer func() {
+		if err != nil {
+			go utils.SendAlarmMsg(fmt.Sprint("Kp互动提醒失败,SendCygxTemplateRecordSource err", err.Error()), 2)
+		}
+	}()
+
+	var keyword1 string
+	var keyword2 string
+	var keyword3 string
+	var keyword4 string
+	var keyword5 string
+	var redirectUrl string
+
+	wxUser, e := models.GetWxUserItemByUserId(userId)
+	if e != nil {
+		err = errors.New("GetWxUserItemByUserId" + e.Error())
+		return
+	}
+
+	if wxUser.IsMaker == 0 {
+		return
+	}
+	companyProduct, e := company.GetCompanyProductByCompanyIdAndProductId(wxUser.CompanyId, utils.COMPANY_PRODUCT_RAI_ID)
+	if e != nil {
+		err = errors.New("GetCompanyProductByCompanyIdAndProductId, Err:" + e.Error())
+		return
+	}
+	var adminIds []int
+
+	adminIds = append(adminIds, companyProduct.SellerId, companyProduct.ShareSellerId)
+	listAdmin, e := models.GetAdminByAdminIds(adminIds)
+	if e != nil {
+		err = errors.New("GetAdminByAdminIds, Err: " + e.Error())
+		return
+	}
+
+	var mobiles []string
+
+	for _, v := range listAdmin {
+		mobiles = append(mobiles, v.Mobile)
+	}
+	fmt.Println(mobiles)
+
+	var source string
+	switch sourceType {
+	case 1:
+		detail, e := models.GetArticleDetailById(sourceId)
+		if e != nil {
+			err = errors.New("GetArticleDetailById, Err: " + e.Error())
+			return
+		}
+		keyword2 = "阅读报告:" + detail.Title
+		redirectUrl = utils.WX_MSG_PATH_ARTICLE_DETAIL + strconv.Itoa(sourceId)
+		source = utils.CYGX_OBJ_ARTICLE
+	case 4:
+		activityDetail, e := models.GetAddActivityDetailByActivityId(sourceId)
+		if e != nil {
+			err = errors.New("GetAddActivityDetailByActivityId" + e.Error())
+			return
+		}
+		keyword2 = "参与线上活动:" + activityDetail.ActivityName
+		redirectUrl = utils.WX_MSG_PATH_ACTIVITY_DETAIL + strconv.Itoa(sourceId)
+		source = utils.CYGX_OBJ_ACTIVITY
+	case 9:
+		activityDetail, e := models.GetAddActivityDetailByActivityId(sourceId)
+		if e != nil {
+			err = errors.New("GetAddActivityDetailByActivityId" + e.Error())
+			return
+		}
+		keyword2 = "参与线上活动:" + activityDetail.ActivityName
+		redirectUrl = utils.WX_MSG_PATH_ACTIVITY_DETAIL + strconv.Itoa(sourceId)
+		source = utils.CYGX_OBJ_ACTIVITYVIDEO
+	case 10:
+
+	default:
+		return
+	}
+
+	var startDate, endDate string
+	startDate = time.Now().Format(utils.FormatDate)
+	startDate = time.Now().AddDate(0, 0, 1).Format(utils.FormatDate)
+	tatal, e := models.GetCygxTemplateRecordSourceCount(userId, sourceId, source, startDate, endDate)
+	if e != nil {
+		err = errors.New("GetCygxTemplateRecordSourceCount, Err: " + e.Error())
+		return
+	}
+	if tatal > 0 {
+		return // 一天只推送一次
+	}
+
+	item := new(models.CygxTemplateRecordSource)
+	item.UserId = userId
+	item.Source = source
+	item.SourceId = sourceId
+	item.CreateTime = time.Now()
+	e = models.AddCygxTemplateRecordSource(item)
+	if e != nil {
+		err = errors.New("AddCygxTemplateRecordSource, Err: " + e.Error())
+		return
+	}
+
+	var keywords []string
+	keywords = append(keywords, keyword1, keyword2, keyword3, keyword4, keyword5)
+
+	openIdList, e := models.GetMfyxWxOpenIdByMobileList(strings.Join(mobiles, ","))
+	if e != nil {
+		err = errors.New("GetMfyxWxOpenIdByMobileList, Err: " + e.Error())
+		return
+	}
+	if len(openIdList) == 0 {
+		return
+	}
+	openIdArr := make([]string, 0)
+	for _, v := range openIdList {
+		openIdArr = append(openIdArr, v.OpenId)
+	}
+	//redirectUrl = utils.WX_MSG_PATH_TEMPLATE_MSG + "SourceId=" + strconv.Itoa(msgId) + "&SourceType=1"
+	sendInfo := new(SendWxCategoryTemplate)
+	sendInfo.Keywords = keywords
+	sendInfo.TemplateId = utils.WxMsgTemplateIdArticleUserRemind
+	sendInfo.RedirectTarget = 4
+	sendInfo.SendType = utils.TEMPLATE_MSG_CYGX_APPLY
+	sendInfo.OpenIdArr = openIdArr
+	sendInfo.RedirectUrl = redirectUrl
+	err = SendCategoryTemplateMsg(sendInfo)
+	return
+}

+ 1 - 1
services/wx_user_rai_label.go

@@ -115,7 +115,7 @@ func UpdateWxUserRaiLabelRedis() (err error) {
 				fmt.Println("json unmarshal wrong!")
 				go utils.SendAlarmMsg("用户更新相关标签处理Redis队列消息失败:"+err.Error()+string(b), 2)
 			}
-
+			go SendCygxTemplateRecordSource(log)
 			if log.TableName == "" {
 				switch log.SourceType {
 				case 1: