Browse Source

no message

xingzai 8 months ago
parent
commit
ebf398658a

+ 45 - 1
controllers/yanxuan_special_message.go

@@ -78,12 +78,18 @@ func (this *YanxuanSpecialMessageController) MessageAdd() {
 	item.ModifyTime = time.Now()
 	item.RegisterPlatform = utils.REGISTER_PLATFORM
 
-	err = models.AddCygxYanxuanSpecialMessage(item)
+	messageId, err := models.AddCygxYanxuanSpecialMessage(item)
 	if err != nil {
 		br.Msg = "留言失败!"
 		br.ErrMsg = "留言失败,Err:" + err.Error()
 		return
 	}
+
+	if parentId == 0 {
+		go services.SendWxCategoryMsgByYanxuanSpecialMassageByAuthor(content, yanxuanSpecialBySpeciaDetail)
+	} else {
+		go services.SendWxCategoryMsgByYanxuanSpecialMassage(parentId, int(messageId), content, yanxuanSpecialBySpeciaDetail)
+	}
 	br.Ret = 200
 	br.Success = true
 	br.Msg = "留言成功"
@@ -602,3 +608,41 @@ func (this *YanxuanSpecialMessageController) MessageSpecialList() {
 	br.Success = true
 	br.Msg = "获取成功"
 }
+
+// @Title 通过模版消息查看留言详情
+// @Description 通过模版消息查看留言详情接口
+// @Param   MessageId   query   int  true       "留言ID"
+// @Success 200 {object} models.SpecialListResp
+// @router /message/detail/wxtmp [get]
+func (this *YanxuanSpecialMessageController) MessageDetailWxtmp() {
+	br := new(models.BaseResponse).Init()
+	defer func() {
+		this.Data["json"] = br
+		this.ServeJSON()
+	}()
+	user := this.User
+	if user == nil {
+		br.Msg = "请登录"
+		br.ErrMsg = "请登录,用户信息为空"
+		br.Ret = 408
+		return
+	}
+	messageId, _ := this.GetInt("MessageId")
+	messagerDetail, err := models.GetCygxYanxuanSpecialMessagerDetailById(messageId)
+	if err != nil {
+		br.Msg = "获取失败"
+		br.ErrMsg = "获取失败, Err:" + err.Error()
+		return
+	}
+	resp := new(models.MessageDetailWxtmpResp)
+	if messagerDetail.Status == -1 {
+		resp.IsDelete = true
+	} else {
+		resp.Content = messagerDetail.Content
+	}
+	resp.YanxuanSpecialId = messagerDetail.YanxuanSpecialId
+	br.Data = resp
+	br.Ret = 200
+	br.Success = true
+	br.Msg = "获取成功"
+}

+ 11 - 4
models/cygx_yanxuan_special_message.go

@@ -51,16 +51,17 @@ type TopCygxYanxuanSpecialMessageReq struct {
 }
 
 // 新增
-func AddCygxYanxuanSpecialMessage(item *CygxYanxuanSpecialMessage) (err error) {
+func AddCygxYanxuanSpecialMessage(item *CygxYanxuanSpecialMessage) (newId int64, err error) {
 	o := orm.NewOrm()
-	_, err = o.Insert(item)
+	newId, err = o.Insert(item)
 	return
 }
 
-// 删除
+// 删除(软删除)
 func DeleteCygxYanxuanSpecialMessage(messageId int) (err error) {
 	o := orm.NewOrm()
-	sql := `DELETE FROM cygx_yanxuan_special_message WHERE message_id = ?  `
+	//sql := `DELETE FROM cygx_yanxuan_special_message WHERE message_id = ?  `
+	sql := `UPDATE cygx_yanxuan_special_message SET status = -1  WHERE message_id = ?  `
 	_, err = o.Raw(sql, messageId).Exec()
 	return
 }
@@ -151,3 +152,9 @@ type YanxuanSpecialMessageManageRespListResp struct {
 	Paging             *paging.PagingItem `description:"分页数据"`
 	List               []*CygxYanxuanSpecialMessageManageResp
 }
+
+type MessageDetailWxtmpResp struct {
+	YanxuanSpecialId int    `comment:"cygx_yanxuan_special 表主键ID"`
+	Content          string `comment:"留言内容"`
+	IsDelete         bool   `comment:"是否删除"`
+}

+ 9 - 0
routers/commentsRouter.go

@@ -997,6 +997,15 @@ func init() {
             Filters: nil,
             Params: nil})
 
+    beego.GlobalControllerRouter["hongze/hongze_mfyx/controllers:YanxuanSpecialMessageController"] = append(beego.GlobalControllerRouter["hongze/hongze_mfyx/controllers:YanxuanSpecialMessageController"],
+        beego.ControllerComments{
+            Method: "MessageDetailWxtmp",
+            Router: `/message/detail/wxtmp`,
+            AllowHTTPMethods: []string{"get"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
     beego.GlobalControllerRouter["hongze/hongze_mfyx/controllers:YanxuanSpecialMessageController"] = append(beego.GlobalControllerRouter["hongze/hongze_mfyx/controllers:YanxuanSpecialMessageController"],
         beego.ControllerComments{
             Method: "MessageLike",

+ 118 - 0
services/wx_category_template_msg.go

@@ -981,3 +981,121 @@ func SendWxCategoryMsgWxPay(orderDetail *order.CygxOrder) (err error) {
 	}
 	return
 }
+
+// 专栏文章有留言时,模板消息通知作者
+func SendWxCategoryMsgByYanxuanSpecialMassageByAuthor(content string, yanxuanSpecialBySpeciaDetail *models.CygxYanxuanSpecialItem) (err error) {
+	defer func() {
+		if err != nil {
+			go utils.SendAlarmMsg(fmt.Sprint(" 作者回复读者留言时,模板消息通知作者 发送模板消息失败:yanxuanSpecialBySpeciaDetail , messageId :", "Err:", err.Error()), 2)
+		}
+	}()
+	var keyword1 string
+	var keyword2 string
+
+	var redirectUrl string
+	var mobile string
+	//mobile = utils.WxMsgTemplateIdAskMsgMobilePublic
+	keyword1 = "专栏文章有新的留言"
+	keyword2 = content
+
+	userInfo, e := models.GetWxUserItemByUserId(yanxuanSpecialBySpeciaDetail.UserId)
+	if e != nil {
+		err = errors.New("GetMfyxWxOpenIdByMobileList, Err: " + e.Error())
+		return
+	}
+	mobile = userInfo.Mobile
+	mobile = utils.WxMsgTemplateIdAskMsgMobilePublic
+	if utils.RunMode == "" {
+		redirectUrl = utils.WX_MSG_PATH_YX_SPECIAL_MASSAGE_MANAGE_LIST
+	}
+
+	openIdList, e := models.GetMfyxWxOpenIdByMobileList(mobile)
+	if e != nil && e.Error() != utils.ErrNoRow() {
+		err = errors.New("GetMfyxWxOpenIdByMobileList, Err: " + e.Error())
+		return
+	}
+	if len(openIdList) == 0 {
+		err = nil
+		return
+	}
+
+	openIdArr := make([]string, 0)
+	for _, v := range openIdList {
+		openIdArr = append(openIdArr, v.OpenId)
+	}
+	keyword1 = utils.TruncateActivityNameString(keyword1)
+	keywords := []string{keyword1, keyword2}
+
+	sendInfo := new(SendWxCategoryTemplate)
+	sendInfo.Keywords = keywords
+	sendInfo.TemplateId = utils.WxMsgCategoryTemplateIdAddMessage
+	sendInfo.RedirectTarget = 4
+	sendInfo.SendType = utils.TEMPLATE_MSG_CYGX_ARTICLE_ADD
+	sendInfo.OpenIdArr = openIdArr
+	sendInfo.RedirectUrl = redirectUrl
+	err = SendCategoryTemplateMsg(sendInfo)
+	if err != nil {
+		return
+	}
+	return
+}
+
+// 作者回复读者留言时,模板消息通知读者
+func SendWxCategoryMsgByYanxuanSpecialMassage(parentId, messageId int, content string, yanxuanSpecialBySpeciaDetail *models.CygxYanxuanSpecialItem) (err error) {
+	defer func() {
+		if err != nil {
+			go utils.SendAlarmMsg(fmt.Sprint(" 作者回复读者留言时,模板消息通知读者 发送模板消息失败:SendWxCategoryMsgByYanxuanSpecialMassage , messageId :", messageId, "Err:", err.Error()), 2)
+		}
+	}()
+	var keyword1 string
+	var keyword2 string
+	var keyword3 string
+	var keyword4 string
+	var redirectUrl string
+	var mobile string
+	//mobile = utils.WxMsgTemplateIdAskMsgMobilePublic
+	keyword1 = yanxuanSpecialBySpeciaDetail.Title
+	keyword2 = "作者回复了您的留言"
+	keyword3 = content
+	keyword4 = time.Now().Format(utils.FormatDateTimeMinute2)
+	if utils.RunMode == "" {
+		redirectUrl = utils.WX_MSG_PATH_YX_SPECIAL_MASSAGE_DETAIL + strconv.Itoa(messageId)
+	}
+
+	messagerDetail, e := models.GetCygxYanxuanSpecialMessagerDetailById(parentId)
+	if e != nil {
+		err = errors.New("GetMfyxWxOpenIdByMobileList, Err: " + e.Error())
+		return
+	}
+	mobile = messagerDetail.Mobile
+	openIdList, e := models.GetMfyxWxOpenIdByMobileList(mobile)
+	if e != nil && e.Error() != utils.ErrNoRow() {
+		err = errors.New("GetMfyxWxOpenIdByMobileList, Err: " + e.Error())
+		return
+	}
+	if len(openIdList) == 0 {
+		err = nil
+		return
+	}
+
+	openIdArr := make([]string, 0)
+	for _, v := range openIdList {
+		openIdArr = append(openIdArr, v.OpenId)
+	}
+	keyword1 = utils.TruncateActivityNameString(keyword1)
+	keyword3 = utils.TruncateActivityNameString(keyword3)
+	keywords := []string{keyword1, keyword2, keyword3, keyword4}
+
+	sendInfo := new(SendWxCategoryTemplate)
+	sendInfo.Keywords = keywords
+	sendInfo.TemplateId = utils.WxMsgCategoryTemplateIdActivityPublishApply
+	sendInfo.RedirectTarget = 4
+	sendInfo.SendType = utils.TEMPLATE_MSG_CYGX_ARTICLE_ADD
+	sendInfo.OpenIdArr = openIdArr
+	sendInfo.RedirectUrl = redirectUrl
+	err = SendCategoryTemplateMsg(sendInfo)
+	if err != nil {
+		return
+	}
+	return
+}

+ 3 - 0
utils/config.go

@@ -54,6 +54,7 @@ var (
 	WxCategoryMsgTemplateIdActivitySign              string //买方研选活动签到通知-类目模板ID(买方研选)
 	WxMsgCategoryTemplateIdCompanyApprovalMessageRai string //权益销售签约成功通知买方研选类目模版消息通知-类目模板ID
 	WxMsgCategoryTemplateIdActivityPublishApply      string //买方研选关注的产业下,单个活动/研选报告发布通知-类目模板ID
+	WxMsgCategoryTemplateIdAddMessage                string //专栏文章留言-类目模板ID
 
 	//权益内容组手机号
 	RAI_MOBILE_GAO_YI_WEN string // 权益高亦文手机号
@@ -266,6 +267,7 @@ func init() {
 		WxCategoryMsgTemplateIdActivitySign = "aczgUYZASO97UJiCD_nDmD1eNWZAWudzw3JYcvjJ2x4"
 		WxMsgCategoryTemplateIdCompanyApprovalMessageRai = "wU4x_c5XruwuA44VZelyklRNOfq4XrU9ILckTtDs6hg" //权益销售签约成功通知买方研选类目模版消息通知-类目模板ID
 		WxMsgCategoryTemplateIdActivityPublishApply = "wLeV7tVK4ZJBoAvsmfXkHveVW8yefGAkwnVKQWRi8uQ"
+		WxMsgCategoryTemplateIdAddMessage = "Ery3Y-cBtPqdpXJd07jKqbZdxkcTpK_74wAQNWYDOvY"
 
 		//权益内容组手机号测试环境没什么用,配合测试切换他们的手机号
 		RAI_MOBILE_GAO_YI_WEN = "17706316791" //权益高亦文手机号
@@ -289,6 +291,7 @@ func init() {
 		WxCategoryMsgTemplateIdActivitySign = "11rITVC5Gl8qwetxl92NqY887Uk14kg3nPtEA_i_zLo"
 		WxMsgCategoryTemplateIdCompanyApprovalMessageRai = "t1CcxcOkoZkWZrDRs6zYUlceBGYMV3mhkBYUa8a6Mx0" //权益销售签约成功通知买方研选类目模版消息通知-类目模板ID
 		WxMsgCategoryTemplateIdActivityPublishApply = "IBMqiE61lVgUfFM4rsH0XCH57R_G3PbWvRbnzg9JHPI"
+		WxMsgCategoryTemplateIdAddMessage = "_SzJRvXmlIp4Uh7Xbyem9G2pOqMDsHRsL0BQkCPFslk"
 
 		//权益内容组手机号
 		RAI_MOBILE_GAO_YI_WEN = "15000123056" //权益高亦文手机号

+ 9 - 7
utils/constants.go

@@ -206,13 +206,15 @@ const (
 	WX_MSG_PATH_YX_SURVEY_DETAIL         = "pages-purchaser/survey/surveyDetail?surveyId="                //用户提交研选调研需求
 	WX_MSG_PATH_APPLY_COLLECTION_DETAIL  = "reportPages/bulletinDetail/bulletinDetail?id="                //精选看板申请详情页
 
-	WX_MSG_PATH_YX_SPECIAL_DETAIL        = "pages-purchaser/noteAndViewpoint/noteAndViewpoint?id="       //研选专栏详情
-	WX_MSG_PATH_YX_SPECIAL_ENABLE_DETAIL = "pages-purchaser/toExamine/toExamine?isMessage=模板&id="        //研选专栏审核详情页面
-	WX_MSG_PATH_YX_SPECIAL_CENTER        = "pages-purchaser/contentAllPage/contentAllPage?Status=4"      //研选专栏内容中心
-	WX_MSG_PATH_YX_COMMENT_DETAIL        = "pages-activity/generationAsk/generationAsk?id="              //研选报告留言详情
-	WX_MSG_PATH_YX_ACTIVITY_DETAIL       = "pages-activity/activityDetail/activityDetail?IsSendWx=1&id=" //研选活动详情
-	WX_MSG_PATH_YX_SIGNUP_DETAIL         = "pages-message/activityTemplate/activityTemplate?id="         //研选报名详情
-	WX_MSG_PATH_YX_ARTICLE_DETAIL        = "pages-user/reportDetail/reportDetail?IsSendWx=1&id="         //研选纪要详情
+	WX_MSG_PATH_YX_SPECIAL_DETAIL              = "pages-purchaser/noteAndViewpoint/noteAndViewpoint?id="       //研选专栏详情
+	WX_MSG_PATH_YX_SPECIAL_ENABLE_DETAIL       = "pages-purchaser/toExamine/toExamine?isMessage=模板&id="        //研选专栏审核详情页面
+	WX_MSG_PATH_YX_SPECIAL_CENTER              = "pages-purchaser/contentAllPage/contentAllPage?Status=4"      //研选专栏内容中心
+	WX_MSG_PATH_YX_COMMENT_DETAIL              = "pages-activity/generationAsk/generationAsk?id="              //研选报告留言详情
+	WX_MSG_PATH_YX_ACTIVITY_DETAIL             = "pages-activity/activityDetail/activityDetail?IsSendWx=1&id=" //研选活动详情
+	WX_MSG_PATH_YX_SIGNUP_DETAIL               = "pages-message/activityTemplate/activityTemplate?id="         //研选报名详情
+	WX_MSG_PATH_YX_ARTICLE_DETAIL              = "pages-user/reportDetail/reportDetail?IsSendWx=1&id="         //研选纪要详情
+	WX_MSG_PATH_YX_SPECIAL_MASSAGE_DETAIL      = ""                                                            //研选专栏留言详情
+	WX_MSG_PATH_YX_SPECIAL_MASSAGE_MANAGE_LIST = ""                                                            //研选专栏留言管理列表
 )
 
 //2:文章详情  https://web.hzinsights.com/material/info/8436  小程序路径:/pageMy/reportDetail/reportDetail?id=