瀏覽代碼

帮我带问,实时提问模板消息修改

xingzai 2 年之前
父節點
當前提交
02667830fd

+ 1 - 1
controllers/activity.go

@@ -2269,7 +2269,7 @@ func (this *ActivityCoAntroller) AskAdd() {
 		if sellerItem != nil {
 			openIpItem, _ := models.GetUserRecordByMobile(4, sellerItem.Mobile)
 			if openIpItem != nil && openIpItem.OpenId != "" {
-				services.SendActivityAskApplyTemplateMsg(user.RealName+"——"+user.CompanyName+"(所属销售:"+sellerItem.RealName+")", time.Now().Format(utils.FormatDateTime), req.Content, activityInfo.ActivityName, activityInfo.ActivityId, openIpItem)
+				services.SendActivityAskApplyTemplateMsgV2(user.RealName+"——"+user.CompanyName, "所属销售:"+sellerItem.RealName, time.Now().Format(utils.FormatDateTime), req.Content, activityInfo.ActivityName, openIpItem, activityInfo.ActivityId)
 			}
 		}
 	}

+ 2 - 1
controllers/home.go

@@ -273,10 +273,11 @@ func (this *BaseHomeController) ListHomePublic() {
 		page = paging.GetPaging(currentIndex, pageSize, total)
 		if categoryId != "" {
 			condition += ` AND category_id IN(` + categoryId + `)`
-			condition += ` OR ( category_name  LIKE '%` + utils.CHART_PERMISSION_NAME_YANXUAN + `%' AND publish_status = 1 AND is_summary = 1 )`
+			//condition += ` OR ( category_name  LIKE '%` + utils.CHART_PERMISSION_NAME_YANXUAN + `%' AND publish_status = 1 AND is_summary = 1 )`
 		} else {
 			condition += ` AND  category_name   LIKE '%` + utils.CHART_PERMISSION_NAME_YANXUAN + `%'`
 		}
+
 	}
 	//永续客户无法查看研选分类的内容
 	if userType == 1 {

+ 8 - 6
models/activity_special_signup.go

@@ -73,18 +73,20 @@ type CygxActivitySpecialSignupResp struct {
 }
 
 //列表
-func GetActivityListSpecialGroupByMobile() (items []*CygxActivitySpecialSignupResp, err error) {
+func GetActivityListSpecialGroupByMobile(condition string, pars []interface{}) (items []*CygxActivitySpecialSignupResp, err error) {
 	o := orm.NewOrm()
-	sql := `SELECT *,	COUNT( 1 ) AS count   FROM cygx_activity_special_signup   GROUP BY mobile`
-	_, err = o.Raw(sql).QueryRows(&items)
+	sql := `SELECT s.*,	COUNT( 1 ) AS count   FROM cygx_activity_special_signup as s INNER JOIN cygx_activity_special AS a ON a.activity_id = s.activity_id
+			INNER JOIN wx_user AS u ON u.user_id = s.user_id ` + condition + `  GROUP BY s.mobile`
+	_, err = o.Raw(sql, pars).QueryRows(&items)
 	return
 }
 
 //列表
-func GetActivityListSpecialGroupByCompanyId() (items []*CygxActivitySpecialSignupResp, err error) {
+func GetActivityListSpecialGroupByCompanyId(condition string, pars []interface{}) (items []*CygxActivitySpecialSignupResp, err error) {
 	o := orm.NewOrm()
-	sql := `SELECT *,	COUNT( 1 ) AS count   FROM cygx_activity_special_signup   GROUP BY company_id`
-	_, err = o.Raw(sql).QueryRows(&items)
+	sql := `SELECT *,	COUNT( 1 ) AS count   FROM cygx_activity_special_signup   as s INNER JOIN cygx_activity_special AS a ON a.activity_id = s.activity_id
+			INNER JOIN wx_user AS u ON u.user_id = s.user_id ` + condition + `  GROUP BY s.company_id`
+	_, err = o.Raw(sql, pars).QueryRows(&items)
 	return
 }
 

+ 8 - 0
models/article.go

@@ -644,3 +644,11 @@ func GetSubjectIds(articleId int) (subjects string, err error) {
 	err = o.Raw(sql, articleId).QueryRow(&subjects)
 	return
 }
+
+//修改发布状态
+func UpdateIsClassFail(articleId int) (err error) {
+	sql := `UPDATE cygx_article SET  is_class_fail=1  WHERE article_id=? `
+	o := orm.NewOrm()
+	_, err = o.Raw(sql, articleId).Exec()
+	return
+}

+ 7 - 2
services/activity_special.go

@@ -5,6 +5,7 @@ import (
 	"fmt"
 	"hongze/hongze_cygx/models"
 	"hongze/hongze_cygx/utils"
+	"time"
 )
 
 //func init() {
@@ -21,7 +22,11 @@ func UpdateCygxActivitySpecialSignupNum(cont context.Context) (err error) {
 		}
 	}()
 	//根据手机号分组获取列表以及数量
-	listSpecial, err := models.GetActivityListSpecialGroupByMobile()
+	var condition string
+	var pars []interface{}
+	condition += ` AND  s.create_time < ? `
+	pars = append(pars, time.Now().Format(utils.FormatDate))
+	listSpecial, err := models.GetActivityListSpecialGroupByMobile(condition, pars)
 	if err != nil {
 		return err
 	}
@@ -49,7 +54,7 @@ func UpdateCygxActivitySpecialSignupNum(cont context.Context) (err error) {
 	}
 
 	//根据CompanyId分组获取列表以及数量
-	listSpecialByCompanyId, err := models.GetActivityListSpecialGroupByCompanyId()
+	listSpecialByCompanyId, err := models.GetActivityListSpecialGroupByCompanyId(condition, pars)
 	if err != nil {
 		return err
 	}

+ 1 - 0
services/article.go

@@ -994,6 +994,7 @@ func HandleArticleListByApi(artcleId int) (err error) {
 							keyword3 = v.Title
 							keyword4 = v.PublishDate.Format(utils.FormatDateTime)
 							SendWxMsgWithArticleClassToAdmin(keyword1, keyword2, keyword3, keyword4, openIdList, articleIdInt)
+							go models.UpdateIsClassFail(artcleId)
 						}
 					}
 				}

+ 66 - 0
services/wx_template_msg.go

@@ -352,6 +352,72 @@ func SendActivityAskApplyTemplateMsg(applyName, applyTime, askContent, activityN
 	return
 }
 
+//活动带问提醒
+func SendActivityAskApplyTemplateMsgV2(keyword1, keyword2, keyword3, keyword4, remark string, itemOpenid *models.OpenIdList, activityId int) (err error) {
+	var msg string
+	defer func() {
+		if err != nil {
+			go utils.SendEmail("发送模版消息失败"+time.Now().Format("2006-01-02 15:04:05"), msg+";Err:"+err.Error(), utils.EmailSendToUsers)
+			go utils.SendAlarmMsg("活动带问提醒发送模版消息失败"+remark, 2)
+		}
+		if msg != "" {
+			utils.FileLog.Info("发送模版消息失败,msg:%s", msg)
+		}
+	}()
+
+	var accessToken string
+	if utils.RunMode == "release" {
+		accessToken, err = models.GetWxAccessTokenByXzs()
+		if err != nil {
+			msg = "GetWxAccessToken Err:" + err.Error()
+			return
+		}
+		if accessToken == "" {
+			msg = "accessToken is empty"
+			return
+		}
+	} else {
+		accessToken, err = models.GetWxAccessToken()
+		if err != nil {
+			msg = "GetWxAccessToken Err:" + err.Error()
+			return
+		}
+		if accessToken == "" {
+			msg = "accessToken is empty"
+			return
+		}
+	}
+
+	sendUrl := "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=" + accessToken
+
+	sendMap := make(map[string]interface{})
+	sendData := make(map[string]interface{})
+
+	first := "有新的客户提问"
+	//keyword1 := applyName
+	//keyword2 := "-"
+	//keyword3 := applyTime
+	//keyword4 := askContent
+	//remark := activityName
+	fontColor := "#D9001B"
+	sendData["first"] = map[string]interface{}{"value": first, "color": fontColor}
+	sendData["keyword1"] = map[string]interface{}{"value": keyword1, "color": fontColor}
+	sendData["keyword2"] = map[string]interface{}{"value": keyword2, "color": fontColor}
+	sendData["keyword3"] = map[string]interface{}{"value": keyword3, "color": fontColor}
+	sendData["keyword4"] = map[string]interface{}{"value": keyword4, "color": fontColor}
+	sendData["remark"] = map[string]interface{}{"value": remark, "color": fontColor}
+	if utils.RunMode == "release" {
+		sendMap["template_id"] = utils.WxMsgTemplateIdApplyXzs
+	} else {
+		sendMap["template_id"] = utils.WxMsgTemplateIdApply
+	}
+	sendMap["miniprogram"] = map[string]interface{}{"appid": utils.WxAppId, "pagepath": "activityPages/activityDetail/activityDetail?id=" + strconv.Itoa(activityId)}
+	sendMap["data"] = sendData
+	sendTemplateMsg(sendUrl, sendMap, itemOpenid, strconv.Itoa(activityId), utils.TEMPLATE_MSG_CYGX_ACTIVITY_ADD)
+	fmt.Println("send end")
+	return
+}
+
 //专项产业调研模板消息推送
 func SendSpecialTemplateMsg(applyName, applyTime, mobile, activityName, resource string, itemOpenid *models.OpenIdList) (err error) {
 	var msg string