xingzai il y a 1 an
Parent
commit
dc7daaf12f

+ 100 - 0
controllers/cygx/activity_special.go

@@ -1186,3 +1186,103 @@ func (this *ActivitySpecialCoAntroller) Offline() {
 	br.Msg = "操作成功"
 	br.IsAddLog = true
 }
+
+// @Title 发送模版消息
+// @Description 发送模版消息接口
+// @Param	request	body cygx.AddOutboundPersonnelItm true "type json string"
+// @Success 200 操作成功
+// @router /special/trip/tempMsg [post]
+func (this *ActivitySpecialTripCoAntroller) TempMsg() {
+	br := new(models.BaseResponse).Init()
+	defer func() {
+		this.Data["json"] = br
+		this.ServeJSON()
+	}()
+	AdminUser := this.SysUser
+	if AdminUser == nil {
+		br.Msg = "请登录"
+		br.ErrMsg = "请登录,SysUser Is Empty"
+		return
+	}
+	var req cygx.ActivitySpecialSignupTempMsgReq
+	err := json.Unmarshal(this.Ctx.Input.RequestBody, &req)
+	if err != nil {
+		br.Msg = "参数解析异常!"
+		br.ErrMsg = "参数解析失败,Err:" + err.Error()
+		return
+	}
+	idSlice := strings.Split(req.ActivityIds, ",")
+	for _, sId := range idSlice {
+		id, e := strconv.Atoi(sId)
+		if e != nil {
+			br.Msg = "活动Id参数异常"
+			br.ErrMsg = "参数解析异常, Err:" + e.Error()
+			return
+		}
+		var openIdList []*models.OpenIdList
+		idMap := make(map[string]string, 0)
+		//1已报名
+		if strings.Contains(req.SendGroup, "1") {
+			listSignup, err := cygx.GetCygxActivitySpecialTripListByActivityId(id)
+			if err != nil {
+				br.Msg = "查询报名信息失败失败"
+				br.ErrMsg = "GetCygxActivitySpecialTripListByActivityId,Err:" + err.Error()
+				return
+			}
+			if len(listSignup) == 0 {
+				continue
+			}
+			var mobileArr []string
+			for _, v := range listSignup {
+				if v.Mobile != "" {
+					mobileArr = append(mobileArr, v.Mobile)
+				}
+			}
+			mobileLen := len(mobileArr)
+			var condition string
+			var pars []interface{}
+			if mobileLen > 0 {
+				condition += ` AND u.mobile IN (` + utils.GetOrmInReplace(mobileLen) + `)`
+				pars = append(pars, mobileArr)
+			}
+			list, err := models.GetActivitySpecialOpenIdListMobile(condition, pars)
+			if err != nil {
+				br.Msg = "查询openId失败"
+				br.ErrMsg = "查询openId失败,Err:" + err.Error()
+				return
+			}
+			for _, idList := range list {
+				openIdList = append(openIdList, idList)
+				idMap[idList.OpenId] = idList.OpenId
+			}
+		}
+
+		if len(openIdList) > 0 {
+			openIdArr := make([]string, len(openIdList))
+			for i, v := range openIdList {
+				openIdArr[i] = v.OpenId
+			}
+			sendInfo := new(services.SendWxTemplate)
+			sendInfo.Keyword1 = req.ResearchTheme
+			sendInfo.Keyword2 = req.Content
+			sendInfo.TemplateId = utils.WxMsgTemplateIdActivityChangeApplyXzs
+			sendInfo.RedirectUrl = utils.WX_MSG_PATH_ACTIVITY_SPECIAL_DETAIL + strconv.Itoa(id)
+			if utils.RunMode == "debug" {
+				sendInfo.RedirectUrl = utils.WX_MSG_PATH_ACTIVITY_SPECIAL_DETAIL + strconv.Itoa(110) //测试环境调正式的ID
+			}
+			sendInfo.RedirectTarget = 3
+			sendInfo.Resource = strconv.Itoa(id)
+			sendInfo.SendType = utils.TEMPLATE_MSG_CYGX_ACTIVITY_CUSTOMIZE
+			sendInfo.OpenIdArr = openIdArr
+			e = services.SendTemplateMsg(sendInfo)
+			if e != nil {
+				br.Msg = "推送模板消息失败!"
+				br.ErrMsg = "参数解析失败,Err:" + e.Error()
+				return
+			}
+		}
+	}
+	br.Ret = 200
+	br.Success = true
+	br.Msg = "发送成功"
+}

+ 8 - 1
models/cygx/activity_special_trip.go

@@ -2,7 +2,7 @@ package cygx
 
 import (
 
-	//"hongze/hz_crm_api/models"
+	//"hongze/hongze_admin/models"
 	"github.com/beego/beego/v2/client/orm"
 	"time"
 )
@@ -232,3 +232,10 @@ func GetCygxActivitySpecialTripAirborneListByComapnyId(companyId int) (item []*C
 	_, err = o.Raw(sql, companyId).QueryRows(&item)
 	return
 }
+
+type ActivitySpecialSignupTempMsgReq struct {
+	ActivityIds   string `description:"活动id,用,隔开"`
+	SendGroup     string `description:"发送对象,1已报名 用,隔开"`
+	ResearchTheme string `description:"调研主题"`
+	Content       string `description:"推送内容"`
+}

+ 9 - 0
routers/commentsRouter.go

@@ -1114,6 +1114,15 @@ func init() {
             Filters: nil,
             Params: nil})
 
+    beego.GlobalControllerRouter["hongze/hz_crm_api/controllers/cygx:ActivitySpecialTripCoAntroller"] = append(beego.GlobalControllerRouter["hongze/hz_crm_api/controllers/cygx:ActivitySpecialTripCoAntroller"],
+        beego.ControllerComments{
+            Method: "TempMsg",
+            Router: `/special/trip/tempMsg`,
+            AllowHTTPMethods: []string{"post"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
     beego.GlobalControllerRouter["hongze/hz_crm_api/controllers/cygx:ActivitySpecialTripCoAntroller"] = append(beego.GlobalControllerRouter["hongze/hz_crm_api/controllers/cygx:ActivitySpecialTripCoAntroller"],
         beego.ControllerComments{
             Method: "TripList",

+ 3 - 51
services/cygx/special_wx_msg.go

@@ -231,27 +231,6 @@ func DetermineTripChange(activityId int, changeType, changeMsg string) (err erro
 		fmt.Println(e)
 		return
 	}
-	//var accessToken string
-	//if utils.RunMode == "release" {
-	//	accessToken, e = models.GetWxAccessTokenByXzs()
-	//	if e != nil {
-	//		err = e
-	//		return
-	//	}
-	//	if accessToken == "" {
-	//		return
-	//	}
-	//} else {
-	//	accessToken, e = models.GetWxAccessToken()
-	//	if e != nil {
-	//		return
-	//	}
-	//	if accessToken == "" {
-	//		msg = "accessToken is empty"
-	//		return
-	//	}
-	//}
-	//fmt.Println(listSignup)
 	var mobileArr []string
 	for _, v := range listSignup {
 		if v.Mobile != "" {
@@ -259,6 +238,9 @@ func DetermineTripChange(activityId int, changeType, changeMsg string) (err erro
 		}
 	}
 	mobileLen := len(mobileArr)
+	if mobileLen == 0 {
+		return
+	}
 	var condition string
 	var pars []interface{}
 	if mobileLen > 0 {
@@ -274,36 +256,6 @@ func DetermineTripChange(activityId int, changeType, changeMsg string) (err erro
 	if len(openIdList) == 0 {
 		return
 	}
-	//sendMap := make(map[string]interface{})
-	//sendData := make(map[string]interface{})
-	//var first string
-	//var keyword1 string
-	//var keyword2 string
-	//
-	//if changeType == "City" {
-	//	first = "【" + activityInfo.ResearchTheme + "】专项调研发生了城市变更"
-	//} else if changeType == "dateList" {
-	//	first = "【" + activityInfo.ResearchTheme + "】专项调研发生了时间变更"
-	//} else {
-	//	first = "【" + activityInfo.ResearchTheme + "】专项调研发生了调研形式变更"
-	//}
-	//keyword1 = activityInfo.ResearchTheme
-	//keyword2 = changeMsg
-	//redirectUrl := ""
-	//sendData["first"] = map[string]interface{}{"value": first, "color": "#173177"}
-	//sendData["keyword1"] = map[string]interface{}{"value": keyword1, "color": "#173177"}
-	//sendData["keyword2"] = map[string]interface{}{"value": keyword2, "color": "#173177"}
-	//sendUrl := "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=" + accessToken
-	//if utils.RunMode == "release" {
-	//	sendMap["template_id"] = utils.WxMsgTemplateIdActivityChangeApplyXzs
-	//} else {
-	//	sendMap["template_id"] = utils.WxMsgTemplateIdActivityChangeApply
-	//}
-	//sendMap["url"] = redirectUrl
-	//sendMap["data"] = sendData
-	//sendMap["miniprogram"] = map[string]interface{}{"appid": utils.WxCygxAppId, "pagepath": "activityPages/specialDetail/specialDetail?id=" + strconv.Itoa(activityId)}
-	//services.PublicsendTemplateMsg(sendUrl, sendMap, openIdList, strconv.Itoa(activityId), utils.TEMPLATE_MSG_CYGX_ACTIVITY_UPDATE)
-
 	openIdArr := make([]string, len(openIdList))
 	for i, v := range openIdList {
 		openIdArr[i] = v.OpenId