Просмотр исходного кода

后台专项调研活动模板消息推送

xingzai 2 лет назад
Родитель
Сommit
2699ec2292
3 измененных файлов с 103 добавлено и 5 удалено
  1. 28 1
      controllers/activity.go
  2. 11 3
      models/activity_special_signup.go
  3. 64 1
      services/activity.go

+ 28 - 1
controllers/activity.go

@@ -4045,8 +4045,35 @@ func (this *ActivityCoAntroller) SpecialSignupAdd() {
 				return
 			}
 			resp.Status = 1
+
+			//获取销售信息
+			sellerItem, _ := models.GetSellerByCompanyIdCheckFicc(user.CompanyId, 2)
+			////给所属销售发送消息
+			if sellerItem.Mobile != "" {
+				openIpItem, _ := models.GetUserRecordByMobile(4, sellerItem.Mobile)
+				if openIpItem != nil && openIpItem.OpenId != "" {
+					if sellerItem != nil {
+						go services.SendSpecialTemplateMsg(user.RealName+"【"+user.CompanyName+"】", time.Now().Format(utils.FormatDateTime), user.Mobile, activityInfo.ResearchTheme, openIpItem.OpenId, "sale")
+					}
+				}
+			}
+			// 给芳姐发消息
+			cnf, _ := models.GetConfigByCode("tpl_msg")
+			if cnf != nil {
+				openIpItem, _ := models.GetUserRecordByMobile(4, cnf.ConfigValue)
+				if openIpItem != nil && openIpItem.OpenId != "" {
+					actList, _ := models.GetActivityListSpecialAll(activityId)
+					if len(actList) == 5 {
+						var companyName string
+						for _, v := range actList {
+							companyName += "【" + v.CompanyName + "】"
+						}
+						go services.SendSpecialTemplateMsg(companyName, "", "", activityInfo.ResearchTheme, openIpItem.OpenId, "")
+					}
+				}
+			}
 		} else {
-			err = models.DeleteCygxActivitySpecialSignup(activityId)
+			err = models.DeleteCygxActivitySpecialSignup(user.UserId, activityId)
 			if err != nil {
 				br.Msg = "操作失败"
 				br.ErrMsg = "操作失败,Err:" + err.Error()

+ 11 - 3
models/activity_special_signup.go

@@ -43,9 +43,17 @@ func GetUserCygxActivitySpecialSignup(uid, activityId int) (count int, err error
 }
 
 //删除
-func DeleteCygxActivitySpecialSignup(activityId int) (err error) {
+func DeleteCygxActivitySpecialSignup(uid, activityId int) (err error) {
 	o := orm.NewOrm()
-	sql := `DELETE  FROM cygx_activity_special_signup   WHERE  activity_id=? `
-	_, err = o.Raw(sql, activityId).Exec()
+	sql := `DELETE  FROM cygx_activity_special_signup   WHERE   user_id=?   AND  activity_id=?    `
+	_, err = o.Raw(sql, uid, activityId).Exec()
+	return
+}
+
+//列表
+func GetActivityListSpecialAll(activityId int) (items []*CygxActivitySpecialSignup, err error) {
+	o := orm.NewOrm()
+	sql := `SELECT art.*  FROM cygx_activity_special_signup as art WHERE 1= 1 AND  activity_id = ?  GROUP BY company_id`
+	_, err = o.Raw(sql, activityId).QueryRows(&items)
 	return
 }

+ 64 - 1
services/activity.go

@@ -864,7 +864,6 @@ func SendActivityAskApplyTemplateMsg(applyName, applyTime, askContent, activityN
 	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["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
@@ -877,3 +876,67 @@ func SendActivityAskApplyTemplateMsg(applyName, applyTime, askContent, activityN
 	fmt.Println("send end")
 	return
 }
+
+//专项产业调研模板消息推送
+func SendSpecialTemplateMsg(applyName, applyTime, mobile, activityName, openId, resource string) (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)
+		}
+		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{})
+	var first string
+	if resource == "sale" {
+		first = "有客户对专项调研感兴趣"
+	} else {
+		first = "有5家公司预报名专项调研"
+	}
+
+	keyword1 := applyName
+	keyword2 := mobile
+	keyword3 := applyTime
+	keyword4 := 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}
+	if utils.RunMode == "release" {
+		sendMap["template_id"] = utils.WxMsgTemplateIdApplyXzs
+	} else {
+		sendMap["template_id"] = utils.WxMsgTemplateIdApply
+	}
+	sendMap["data"] = sendData
+	sendTemplateMsg(sendUrl, openId, sendMap)
+	return
+}