浏览代码

Merge branch 'CRM6.0' into debug

longyu 3 年之前
父节点
当前提交
9fa2dfda90
共有 3 个文件被更改,包括 107 次插入2 次删除
  1. 32 2
      controllers/roadshow/calendar.go
  2. 62 0
      services/wechat_send_msg.go
  3. 13 0
      utils/config.go

+ 32 - 2
controllers/roadshow/calendar.go

@@ -6,6 +6,7 @@ import (
 	"hongze/hongze_mobile_admin/controllers"
 	"hongze/hongze_mobile_admin/models"
 	"hongze/hongze_mobile_admin/models/roadshow"
+	"hongze/hongze_mobile_admin/models/tables/admin"
 	"hongze/hongze_mobile_admin/services"
 	"hongze/hongze_mobile_admin/utils"
 	"strconv"
@@ -95,7 +96,7 @@ func (this *CalendarController) Accept() {
 		this.FailWithMessage("参数错误!", "RsCalendarId 或 RsCalendarResearcherId 小于等于0:")
 		return
 	}
-	_, err = roadshow.GetRsCalendarById(req.RsCalendarId)
+	rsCalendar, err := roadshow.GetRsCalendarById(req.RsCalendarId)
 	if err != nil {
 		this.FailWithMessage("获取数据失败!", "GetRsCalendarById Err:"+err.Error())
 		return
@@ -133,6 +134,20 @@ func (this *CalendarController) Accept() {
 		this.FailWithMessage("获取数据失败!", "UpdateCalendarResearcher Err:"+err.Error())
 		return
 	}
+	//模板消息通知
+	{
+
+		if rsCalendar != nil {
+			sysAdmin, _ := admin.GetAdminById(rsCalendar.SysUserId)
+			first := "【" + this.AdminWx.RealName + "】接受了你的【" + rsCalendar.ActivityType + "】申请"
+			keyword1 := rsCalendar.CompanyName + "," + rsCalendar.RoadshowType
+			keyword2 := "已接受"
+			remark := ""
+			if sysAdmin.Mobile != "" {
+				go services.SendWxMsgWithRoadshowDetailResult(first, keyword1, keyword2, remark, sysAdmin.Mobile, "", "")
+			}
+		}
+	}
 	this.OkDetailed(nil, "保存成功")
 }
 
@@ -155,7 +170,7 @@ func (this *CalendarController) Refuse() {
 		this.FailWithMessage("参数错误!", "参数错误!RsCalendarId:"+strconv.Itoa(req.RsCalendarId)+";RsCalendarResearcherId:"+strconv.Itoa(req.RsCalendarResearcherId))
 		return
 	}
-	_, err = roadshow.GetRsCalendarById(req.RsCalendarId)
+	rsCalendar, err := roadshow.GetRsCalendarById(req.RsCalendarId)
 	if err != nil {
 		this.FailWithMessage("获取数据失败!", "GetRsCalendarById,Err:"+err.Error())
 		return
@@ -196,6 +211,21 @@ func (this *CalendarController) Refuse() {
 		this.FailWithMessage("保存失败", "保存失败!UpdateCalendarResearcher:"+err.Error())
 		return
 	}
+
+	//模板消息通知
+	{
+
+		if rsCalendar != nil {
+			sysAdmin, _ := admin.GetAdminById(rsCalendar.SysUserId)
+			first := "【" + this.AdminWx.RealName + "】拒绝了你的【" + rsCalendar.ActivityType + "】申请"
+			keyword1 := rsCalendar.CompanyName + "," + rsCalendar.RoadshowType
+			keyword2 := "已拒绝"
+			remark := req.RefuseReason
+			if sysAdmin.Mobile != "" {
+				go services.SendWxMsgWithRoadshowDetailResult(first, keyword1, keyword2, remark, sysAdmin.Mobile, "", "")
+			}
+		}
+	}
 	this.OkDetailed(nil, "保存成功")
 }
 

+ 62 - 0
services/wechat_send_msg.go

@@ -206,3 +206,65 @@ func SendCompanyApplyWxTemplateMsg(mobile, redirectUrl, wxAppPath string, wxMsgM
 	utils.FileLog.Info("send end")
 	return
 }
+
+
+// 路演->销售收到处理结果
+func SendWxMsgWithRoadshowDetailResult(first, keyword1, keyword2, remark,mobile, redirectUrl, wxAppPath 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)
+			utils.FileLog.Info("发送模版消息失败,Err:%s,%s", err.Error(), msg)
+		}
+		if msg != "" {
+			utils.FileLog.Info("发送模版消息失败,msg:%s", msg)
+		}
+	}()
+	utils.FileLog.Info("%s", "services SendMsg")
+
+	accessToken, err := WxGetAccessToken()
+	if err != nil {
+		msg = "GetWxAccessToken Err:" + err.Error()
+		return
+	}
+	if accessToken == "" {
+		msg = "accessToken is empty"
+		return
+	}
+	utils.FileLog.Info("mobile:%s", mobile)
+
+	//获取openid列表
+	openIdStr := WxUsersGet()
+	openIdList, err := wx_user.GetOpenIdListByMobile(mobile, openIdStr)
+	if err != nil {
+		msg = "get openIdList err:" + err.Error()
+		return
+	}
+	utils.FileLog.Info("openIdListCount:%s", len(openIdList))
+	//fmt.Println("openIdListCount:", len(openIdList))
+	if len(openIdList) > 0 && utils.TemplateIdByCompanyApply != "" {
+		utils.FileLog.Info("start send")
+		sendUrl := "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=" + accessToken
+		fmt.Println("send start")
+		utils.FileLog.Info("send start")
+		sendMap := make(map[string]interface{})
+		sendData := make(map[string]interface{})
+
+
+		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"}
+		sendData["remark"] = map[string]interface{}{"value": remark, "color": "#173177"}
+
+		sendMap["template_id"] = utils.TemplateIdByCompanyApply
+		sendMap["url"] = redirectUrl
+		sendMap["data"] = sendData
+		//小程序信息
+		if wxAppPath != "" {
+			sendMap["miniprogram"] = map[string]interface{}{"appid": utils.WxAppId2, "pagepath": wxAppPath}
+		}
+		sendTemplateMsg(sendUrl, sendMap, openIdList)
+	}
+	utils.FileLog.Info("send end")
+	return
+}

+ 13 - 0
utils/config.go

@@ -29,6 +29,10 @@ var (
 	WxAppId2     string
 	WxAppSecret2 string
 	WxPlatform2  int //用户来源,需要入库,用来保存该用户来自哪个平台,默认是:1
+
+	WxMsgTemplateIdWithRoadshowPending      string //路演->研究员收到待处理的申请
+	WxMsgTemplateIdWithRoadshowDetailResult string //路演->销售收到处理结果
+	WxMsgTemplateIdWithRoadshowDeleteNotice string //路演->研究员收到活动删除通知
 )
 
 var (
@@ -104,6 +108,10 @@ func init() {
 		STATIC_DIR = "/home/static/imgs/"
 		Endpoint = "oss-cn-shanghai-internal.aliyuncs.com"
 
+		//路演
+		WxMsgTemplateIdWithRoadshowPending = "qfNuops-sKrfIkbA7U97A7gSrX03mUpoEpJksRUdloo"      //路演->研究员收到待处理的申请
+		WxMsgTemplateIdWithRoadshowDetailResult = "CB7bOl7f3viMG4s1uhRo7WM0Jbx3WvodKuIZ8A_z8fM" //路演->销售收到处理结果
+		WxMsgTemplateIdWithRoadshowDeleteNotice = "CB7bOl7f3viMG4s1uhRo7WM0Jbx3WvodKuIZ8A_z8fM" //路演->研究员收到活动删除通知
 	} else {
 		WxAppId = "wx9b5d7291e581233a"
 		WxAppSecret = "f4d52e34021eee262dce9682b31f8861"
@@ -117,6 +125,11 @@ func init() {
 		//oss配置
 		STATIC_DIR = "static/imgs/"
 		Endpoint = "oss-cn-shanghai.aliyuncs.com"
+
+		//路演
+		WxMsgTemplateIdWithRoadshowPending = "qfNuops-sKrfIkbA7U97A7gSrX03mUpoEpJksRUdloo"      //路演->研究员收到待处理的申请
+		WxMsgTemplateIdWithRoadshowDetailResult = "CB7bOl7f3viMG4s1uhRo7WM0Jbx3WvodKuIZ8A_z8fM" //路演->销售收到处理结果
+		WxMsgTemplateIdWithRoadshowDeleteNotice = "CB7bOl7f3viMG4s1uhRo7WM0Jbx3WvodKuIZ8A_z8fM" //路演->研究员收到活动删除通知
 	}
 
 	tmpLibreOfficePath, err := web.AppConfig.String("libreOfficePath")