123 lines
5.6 KiB
Go
123 lines
5.6 KiB
Go
package weixinmsg
|
||
|
||
import (
|
||
"fmt"
|
||
|
||
"git.rosy.net.cn/baseapi/utils"
|
||
"git.rosy.net.cn/jx-callback/business/model"
|
||
"git.rosy.net.cn/jx-callback/business/model/dao"
|
||
"git.rosy.net.cn/jx-callback/globals"
|
||
"git.rosy.net.cn/jx-callback/globals/api"
|
||
)
|
||
|
||
const (
|
||
WX_TO_ORDER_PAGE_URL = "/#/?jxStoreId="
|
||
WX_TO_STORE_SKU_PAGE_URL = "/#/shop?jxStoreId="
|
||
WX_TO_SHOW_COMMENTS_DETAIL_URL = "/#/assess-list?jxStoreId=" //展示差评详情的页面
|
||
WX_TO_SHOW_MSG = "/#/message-detail?msgID=%d&msgStatusID=%d"
|
||
|
||
WX_MINI_TO_ORDER_PAGE_URL = "pages/order-manager/main"
|
||
WX_MINI_TO_STORE_SKU_PAGE_URL = "pages/goods-manager/main"
|
||
WX_MINI_TO_SHOW_COMMENTS_DETAIL_URL = "pages/pagesStore/store-comment/main"
|
||
WX_MINI_TO_SHOW_MSG = "pages/pagesStore/msg-page/main?msgID=%d&msgStatusID=%d"
|
||
|
||
//新订单模板消息文字颜色
|
||
WX_NEW_ORDER_TEMPLATE_COLOR = "#173177"
|
||
WX_HIGHLEVEL_TEMPLATE_COLOR = "#FF0000" //红色
|
||
WX_HIGHLEVEL_TEMPLATE_COLOR2 = "#333333" //黑色
|
||
WX_TEMPLATE_VENDERCOLOR_JDDJ = "#47B34F"
|
||
WX_TEMPLATE_VENDERCOLOR_MT = "#F4A800"
|
||
WX_TEMPLATE_VENDERCOLOR_ELM = "#0191EA" //蓝色
|
||
WX_TEMPLATE_VENDERCOLOR_BAD_COMMENTS = "#4F4DA0"
|
||
|
||
WX_NEWORDER_TEMPLATE_ID = "_DtNGwmOeR6TkkTVUblxLIlkV2MAPOX57TkvfdqG6nY" //微信新订单推送
|
||
WX_ADJUSTORDER_TEMPLATE_ID = "N5rmV2-PDf3opjkv23IdLc76VnFThr_uOKSh5FzT13M" //微信调整订单推送
|
||
WX_MTPS_DELIVERY_GRABDONE_TEMPLATE_ID = "h4dkON6AgnHz1XmaksEUB_8Bcir4V8MSexUhC149pPE" //微信美团配送员接单推送
|
||
WX_MTPS_DELIVERY_DONE_TEMPLATE_ID = "YXdCrQAHZlcZX1htYUiarrLmtkmKAjp7rynjwObgODo" //微信美团配送员配送完成推送
|
||
WX_MTPS_UNABLE_DELIVER_TEMPLATE_ID = "ZFph5Hp7oLlrzVRXbsKIC_StmaBeB9Dlp4tlHeAmUQ8" //微信美团配送配送能力不足推送
|
||
WX_MTPS_DELIVERY_EXCEPTION_TEMPLATE_ID = "RkfOFHgR1N75L4-a6Gv0DljpCsVfOHhLm_vyXh8MR-w" //微信美团配送异常推送
|
||
WX_BAD_COMMENT_PUSH_TEMPLATE_ID = "NaMEzjctvVPQ9ishTI1dKpp5QSYV2FWcWftSSjDrpN8" //微信中差评消息推送
|
||
|
||
WX_DADA_DELIVERY_GRABDONE_TEMPLATE_ID = "h4dkON6AgnHz1XmaksEUB_8Bcir4V8MSexUhC149pPE" //微信达达众包配送员接单推送
|
||
WX_DADA_DELIVERY_DONE_TEMPLATE_ID = "YXdCrQAHZlcZX1htYUiarrLmtkmKAjp7rynjwObgODo" //微信达达众包配送员配送完成推送
|
||
|
||
WX_SALE_BILL_TEMPLATE_ID = "eTUuFZMWH7IsVBfcxNMpmaHYaxRkUaD6zG8wSGJDcic"
|
||
|
||
WX_NORMAL_STORE_MSG_TEMPLATE_ID = "EUeIJEz2TLUAn4TU2EffOGYLd3dEaYndD_y6Sw9FcSU"
|
||
WX_CHANGE_APPROVED_TEMPLATE_ID = "gIG2olBZtQbjXmp6doNB_dESu60By5xuXYOGxksLv3Y"
|
||
WX_CHANGE_REJECTED_TEMPLATE_ID = "OBF4-d5inK95epHcUltpdb1zq9boVp2HESpASVRh1Oo"
|
||
WX_ORDER_APPLY_CANCEL_TEMPLATE_ID = "e6urTtcm4PL0rgDMG_1qWNOwrE3Qxqcm_dx0kWWCmEI"
|
||
WX_ORDER_ORDER_CANCELED_TEMPLATE_ID = "HXjuSAbIk77Xh18hjgwoxHzbciR9jX3Rn2CpLJz9dZw"
|
||
WX_ORDER_CHANGE_INFO_TEMPLATE_ID = "cjmEQFEpvcOuBNqQpTfMU5FeBpGRbQh_gWKz-WPW8Ro"
|
||
|
||
WX_AFS_ORDER_WAIT4APPROVE_TEMPLATE_ID = "X29udtANvhX6x1Lyh-T40NGNjRXBbUj5oSBTfDhZAqU"
|
||
WX_AFS_ORDER_STATUS_CHANGED_TEMPLATE_ID = "99T33rrXX0VboO1hljs4x8dDoLiSj3QX_rOikPHIXkg"
|
||
|
||
WS_NOTIFY_STORE_STATUS_CHHANGED_TEMPLATE_ID = "Fl0vOnBKTQqRFx3-shGKxdCnxMdQXNeODzgkuwd7oxw"
|
||
|
||
WX_STORE_ALERT_TEMPLATE_ID = "0AjzVl1wPl6iO4nFOS4IEsJYSzBymlT37DciIvcCOxE"
|
||
)
|
||
|
||
var (
|
||
VendorColors = map[int]string{
|
||
model.VendorIDJD: WX_TEMPLATE_VENDERCOLOR_JDDJ,
|
||
model.VendorIDMTWM: WX_TEMPLATE_VENDERCOLOR_MT,
|
||
model.VendorIDELM: WX_TEMPLATE_VENDERCOLOR_ELM,
|
||
model.VendorIDEBAI: WX_TEMPLATE_VENDERCOLOR_ELM,
|
||
}
|
||
testMiniProgramStoreMap = map[int]int{
|
||
101089: 1,
|
||
100888: 1,
|
||
100204: 1,
|
||
100205: 1,
|
||
100147: 1,
|
||
}
|
||
debugOpenIDMap = map[string]int{
|
||
"oYN_usk0AeGc_C6VEZfmFQP5VHMQ": 1, // 周小扬
|
||
"oYN_ust9hXKEvEv0X6Mq6nlAWs_E": 1, // me
|
||
"oYN_usqnpGVQ4xxlao_yybsbYJh4": 1, // 朱丹
|
||
}
|
||
)
|
||
|
||
func SmartMessageTemplateSend(userOpenID, templateID, downloadURL, miniPageURL string, data interface{}) (err error) {
|
||
var miniProgram map[string]interface{}
|
||
if miniPageURL != "" {
|
||
miniProgram = map[string]interface{}{
|
||
"appid": api.WeixinMiniAPI.GetAppID(),
|
||
"pagepath": miniPageURL,
|
||
}
|
||
}
|
||
globals.SugarLogger.Debugf("SmartMessageTemplateSend openID:%s, templateID:%s, downloadURL:%s, miniProgram:%s", userOpenID, templateID, downloadURL, utils.Format4Output(miniProgram, true))
|
||
if globals.ReallySendWeixinMsg || debugOpenIDMap[userOpenID] == 1 {
|
||
if err = api.WeixinAPI.CBMessageTemplateSend(userOpenID, templateID, downloadURL, miniProgram, data); err != nil {
|
||
globals.SugarLogger.Debugf("SmartMessageTemplateSend openID:%s, templateID:%s, downloadURL:%s, miniProgram:%s, failed with error:%v", userOpenID, templateID, downloadURL, utils.Format4Output(miniProgram, true), err)
|
||
}
|
||
}
|
||
return err
|
||
}
|
||
|
||
func SendMsgToUser(userID string, templateID string, data interface{}) (err error) {
|
||
globals.SugarLogger.Debugf("SendMsgToUser userID:%d, templateID:%s", userID, templateID)
|
||
authBinds, err := dao.GetUserBindAuthInfo(dao.GetDB(), userID, model.AuthBindTypeAuth, []string{"weixinsns"}, "", "", "wx2bb99eb5d2c9b82c")
|
||
if err != nil {
|
||
return err
|
||
}
|
||
successCount := 0
|
||
if len(authBinds) == 0 {
|
||
return fmt.Errorf("此用户未找到微信认证方式!userID: %v", userID)
|
||
}
|
||
globals.SugarLogger.Debugf("SendMsgToUser userID:%d, openID:%s, templateID:%s", userID, authBinds[0].AuthID, templateID)
|
||
if err2 := SmartMessageTemplateSend(authBinds[0].AuthID, templateID, "", "", data); err2 == nil {
|
||
successCount++
|
||
} else {
|
||
err = err2
|
||
}
|
||
if successCount > 0 {
|
||
err = nil // 只要成功一个都当成成功
|
||
}
|
||
if err != nil {
|
||
globals.SugarLogger.Debugf("SendMsgToUser all failed userID:%d, templateID:%s, error:%v", userID, templateID, err)
|
||
}
|
||
return err
|
||
}
|