删除日志
This commit is contained in:
@@ -12,7 +12,6 @@ import (
|
||||
)
|
||||
|
||||
func SendDDUserMessage(msgType, ddUserID, title, content string) (err error) {
|
||||
globals.SugarLogger.Debugf("SendDDUserMessage ddUserID:%s, title:%s", ddUserID, title)
|
||||
if globals.IsProductEnv() {
|
||||
if msgType == dingdingapi.MsgTyeText {
|
||||
err = api.DingDingAPI.CorpAsyncSendSimple(ddUserID, content)
|
||||
@@ -24,7 +23,6 @@ func SendDDUserMessage(msgType, ddUserID, title, content string) (err error) {
|
||||
}
|
||||
|
||||
func SendUserMessage(msgType, userID, title, content string) (err error) {
|
||||
globals.SugarLogger.Debugf("SendUserMessage userID:%s, title:%s", userID, title)
|
||||
authList, err := auth2.GetUserBindAuthInfo(userID)
|
||||
findOneMethod := false
|
||||
if err == nil {
|
||||
|
||||
@@ -60,11 +60,9 @@ func New(notUsed interface{}, token string, w http.ResponseWriter, r *http.Reque
|
||||
}
|
||||
}
|
||||
} else {
|
||||
globals.SugarLogger.Infof("jxcontext wrong token:%s", token)
|
||||
errCode = model.ErrCodeTokenIsInvalid
|
||||
// userInfo, err2 := auth.GetUserInfo(token)
|
||||
// if err = err2; err == nil {
|
||||
// // globals.SugarLogger.Debugf("jxcontext New, V1 authInfo:%s", utils.Format4Output(userInfo, true))
|
||||
// ctx.userInfo = userInfo
|
||||
// }
|
||||
}
|
||||
@@ -119,7 +117,6 @@ func (ctx *Context) GetLoginInfo() IAuther {
|
||||
|
||||
func (ctx *Context) GetV2AuthInfo() (authInfo *auth2.AuthInfo, err error) {
|
||||
authInfo, ok := ctx.userInfo.(*auth2.AuthInfo)
|
||||
// globals.SugarLogger.Debugf("GetV2AuthInfo, userInfo:%s", utils.Format4Output(ctx.userInfo, false))
|
||||
if ok {
|
||||
return authInfo, nil
|
||||
}
|
||||
|
||||
@@ -233,7 +233,6 @@ func RebindAllPrinters(ctx *jxcontext.Context, isForce, isAsync bool) (hint stri
|
||||
}
|
||||
}
|
||||
|
||||
globals.SugarLogger.Debugf("RebindAllPrinters len(needRebindList):%d", len(needRebindList))
|
||||
if len(needRebindList) > 0 {
|
||||
db := dao.GetDB()
|
||||
task := tasksch.NewParallelTask("RebindAllPrinters", tasksch.NewParallelConfig().SetIsContinueWhenError(true).SetParallelCount(4), ctx,
|
||||
|
||||
@@ -72,7 +72,6 @@ func RefreshConfig(configKey string, expiresTime time.Duration, configGetter fun
|
||||
if handleType != 0 {
|
||||
if curConfig.Token, curConfig.Date, curConfig.RefreshToken = configGetter(); curConfig.Token == "" {
|
||||
if globals.IsProductEnv() {
|
||||
globals.SugarLogger.Infof("RefreshConfig %s get empty token", configKey)
|
||||
sleepDuration = errRefreshGap
|
||||
} else {
|
||||
globals.SugarLogger.Infof("RefreshConfig %s get empty token", configKey)
|
||||
@@ -198,7 +197,6 @@ func RefreshQywxToken() (err error) {
|
||||
func RefreshWeixin2Token() (err error) {
|
||||
if api.WeixinMiniAPI2 != nil {
|
||||
err = RefreshConfig("wechat2", weixinTokenExpires, func() (token string, expireTimeStr string, invalidParameter string) {
|
||||
globals.SugarLogger.Debugf("RefreshWeixin2Token RunMode:%s", beego.BConfig.RunMode)
|
||||
if globals.IsMainProductEnv() {
|
||||
if tokenInfo, err := api.WeixinMiniAPI2.CBRetrieveToken(); err == nil {
|
||||
token = tokenInfo.AccessToken
|
||||
@@ -225,7 +223,6 @@ func RefreshPushToken() (err error) {
|
||||
err = RefreshConfig("push", pushTokenExpires, func() (token string, expireTimeStr string, invalidParameter string) {
|
||||
if globals.IsMainProductEnv() {
|
||||
if tokenInfo, err := api.PushAPI.CBRetrieveToken(); err == nil {
|
||||
globals.SugarLogger.Debugf("RefreshPushToken tokenInfo:%s", utils.Format4Output(tokenInfo, true))
|
||||
token = tokenInfo.Token
|
||||
} else {
|
||||
globals.SugarLogger.Errorf("RefreshPushToken RefreshToken failed with error:%v", err)
|
||||
@@ -248,10 +245,8 @@ func RefreshPushToken() (err error) {
|
||||
func RefreshWeixin3Token() (err error) {
|
||||
// if api.WeixinMiniAPI3 != nil {
|
||||
// err = RefreshConfig("wechat3", weixinTokenExpires, func() (token string, expireTimeStr string) {
|
||||
// globals.SugarLogger.Debugf("RefreshWeixin3Token RunMode:%s", beego.BConfig.RunMode)
|
||||
// if globals.IsMainProductEnv() {
|
||||
// if tokenInfo, err := api.WeixinMiniAPI3.CBRetrieveToken(); err == nil {
|
||||
// globals.SugarLogger.Debugf("RefreshWeixin3Token tokenInfo:%s", utils.Format4Output(tokenInfo, true))
|
||||
// token = tokenInfo.AccessToken
|
||||
// } else {
|
||||
// globals.SugarLogger.Errorf("RefreshWeixin3Token RefreshToken failed with error:%v", err)
|
||||
@@ -264,7 +259,6 @@ func RefreshWeixin3Token() (err error) {
|
||||
// }
|
||||
// return token, expireTimeStr
|
||||
// }, func(value string) {
|
||||
// globals.SugarLogger.Debugf("RefreshWeixinToken setter value:%s", value)
|
||||
// syseventhub.SysEventHub.OnNewWX3Token(value)
|
||||
// api.WeixinMiniAPI3.CBSetToken(value)
|
||||
// })
|
||||
@@ -309,7 +303,6 @@ func RefreshDingDingToken() (err error) {
|
||||
return RefreshConfig("dingding", dingdingTokenExpires, func() (string, string, string) {
|
||||
if true { //globals.IsProductEnv() {
|
||||
if token, err := api.DingDingAPI.RetrieveToken(); err == nil {
|
||||
globals.SugarLogger.Debugf("RefreshDingDingToken tokenInfo:%s", token)
|
||||
return token, "", ""
|
||||
} else {
|
||||
globals.SugarLogger.Errorf("RefreshDingDingToken RefreshToken failed with error:%v", err)
|
||||
@@ -378,7 +371,6 @@ func PollingRemotEvent(remoteURL string, waitSecond int, params map[string]inter
|
||||
if result.Code == "0" {
|
||||
if result.Data != "" {
|
||||
if err = utils.UnmarshalUseNumber([]byte(result.Data), &tokenInfo); err == nil && tokenInfo != nil {
|
||||
globals.SugarLogger.Debugf("PollingRemotEvent %s:%s", remoteURL, utils.Format4Output(tokenInfo, false))
|
||||
break
|
||||
}
|
||||
}
|
||||
@@ -391,7 +383,6 @@ func PollingRemotEvent(remoteURL string, waitSecond int, params map[string]inter
|
||||
err = platformapi.ErrHTTPCodeIsNot200
|
||||
}
|
||||
}
|
||||
globals.SugarLogger.Infof("PollingRemotEvent %s failed with error:%v", remoteURL, err)
|
||||
if err != nil {
|
||||
time.Sleep(errRefreshGap)
|
||||
}
|
||||
@@ -492,7 +483,6 @@ func getWeimobTokenFromRemote(oldToken string) (tokenInfo *syseventhub.TokenInfo
|
||||
// })
|
||||
// return token, expireTimeStr, refreshToken
|
||||
// }, func(value, v2 string) {
|
||||
// globals.SugarLogger.Debugf("RefreshFnToken setter value:[%s],[%s]", value, v2)
|
||||
// api.TiktokStore.SetToken(value)
|
||||
// api.TiktokStore.SetRefreshToken(v2)
|
||||
// })
|
||||
|
||||
@@ -124,10 +124,8 @@ func (task *ParallelTask) Run() {
|
||||
result, successCount, err := task.callWorker2(func() (retVal interface{}, successCount int, err error) {
|
||||
return task.worker(task, job, task.params...)
|
||||
})
|
||||
// globals.SugarLogger.Debugf("ParallelTask.Run %s, after call worker result:%v, err:%v", task.Name, result, err)
|
||||
task.finishedOneJob(len(job), successCount, err)
|
||||
if err != nil { // 出错
|
||||
// globals.SugarLogger.Infof("ParallelTask.Run %s, subtask(job:%s, params:%s) result:%v, failed with error:%v", task.Name, utils.Format4Output(job, true), utils.Format4Output(task.params, true), result, err)
|
||||
if task.IsContinueWhenError {
|
||||
task.AddBatchErr(err)
|
||||
} else {
|
||||
@@ -142,7 +140,6 @@ func (task *ParallelTask) Run() {
|
||||
}
|
||||
}
|
||||
end:
|
||||
// globals.SugarLogger.Debugf("ParallelTask.Run %s, put to chann chanRetVal:%v", task.Name, chanRetVal)
|
||||
task.locker.RLock()
|
||||
if task.Status < TaskStatusEndBegin {
|
||||
task.subFinishChan <- chanRetVal
|
||||
@@ -159,7 +156,6 @@ func (task *ParallelTask) Run() {
|
||||
var taskErr error
|
||||
for i := 0; i < task.ParallelCount; i++ {
|
||||
result := <-task.subFinishChan
|
||||
// globals.SugarLogger.Debugf("ParallelTask.Run %s, received from chann result:%v", taskName, result)
|
||||
if err, ok := result.(error); ok {
|
||||
task.Cancel()
|
||||
taskResult = nil
|
||||
|
||||
@@ -44,7 +44,6 @@ func (task *SeqTask) Run() {
|
||||
})
|
||||
task.finishedOneJob(1, 0, err)
|
||||
if err != nil {
|
||||
// globals.SugarLogger.Infof("SeqTask.Run %s step:%d failed with error:%v", task.Name, i, err)
|
||||
if task.IsContinueWhenError {
|
||||
task.AddBatchErr(err)
|
||||
} else {
|
||||
|
||||
@@ -35,7 +35,6 @@ func pushToSingle(content, title string, storeID int) {
|
||||
Body: content,
|
||||
})
|
||||
if err = err2; err != nil {
|
||||
globals.SugarLogger.Debugf("NotifyNewOrder push error: [%v]", err)
|
||||
continue
|
||||
}
|
||||
if status == unipushapi.SuccessOffLine {
|
||||
@@ -52,7 +51,6 @@ func pushToSingle(content, title string, storeID int) {
|
||||
}
|
||||
|
||||
func NotifyNewOrder(order *model.GoodsOrder) {
|
||||
globals.SugarLogger.Debugf("NotifyNewOrder push begin orderID :[%v]", order.VendorOrderID)
|
||||
if order == nil || len(order.Skus) == 0 {
|
||||
return
|
||||
}
|
||||
@@ -89,7 +87,6 @@ func getOrderDetailBrief(order *model.GoodsOrder) (brief string) {
|
||||
}
|
||||
|
||||
func NotifyAfsOrder(afsOrder *model.AfsOrder) (err error) {
|
||||
globals.SugarLogger.Debugf("NotifyAfsOrder push begin orderID :[%v]", afsOrder.VendorOrderID)
|
||||
pushToSingle("老板,您有新的售后单,请尽快处理!", "京西菜市售后单推送", jxutils.GetSaleStoreIDFromAfsOrder(afsOrder))
|
||||
return err
|
||||
}
|
||||
|
||||
@@ -118,7 +118,6 @@ func GetWeixinOpenIDsFromStoreID(storeID int) (retVal []string) {
|
||||
retVal = jxutils.StringMap2List(openIDMap)
|
||||
if !globals.ReallyCallPlatformAPI {
|
||||
// todo,调试,只发给我
|
||||
globals.SugarLogger.Debugf("GetWeixinOpenIDsFromStoreID store:%d, openids:%v", storeID, retVal)
|
||||
if storeID == 100146 {
|
||||
retVal = []string{"oYN_ust9hXKEvEv0X6Mq6nlAWs_E"}
|
||||
} else {
|
||||
@@ -129,7 +128,6 @@ func GetWeixinOpenIDsFromStoreID(storeID int) (retVal []string) {
|
||||
}
|
||||
|
||||
func SendMsgToStore(storeID int, templateID, downloadURL, miniPageURL string, data interface{}) (err error) {
|
||||
globals.SugarLogger.Debugf("SendMsgToStore storeID:%d, templateID:%s, downloadURL:%s, miniPageURL:%s", storeID, templateID, downloadURL, miniPageURL)
|
||||
if storeID == 0 { // 测试,只发给我
|
||||
// SmartMessageTemplateSend("oYN_ust9hXKEvEv0X6Mq6nlAWs_E", templateID, downloadURL, miniPageURL, data)
|
||||
} else {
|
||||
@@ -137,10 +135,6 @@ func SendMsgToStore(storeID int, templateID, downloadURL, miniPageURL string, da
|
||||
successCount := 0
|
||||
for _, openID := range openIDs {
|
||||
realMiniPageURL := miniPageURL
|
||||
// if testMiniProgramStoreMap[storeID] == 0 && debugOpenIDMap[openID] == 0 {
|
||||
// realMiniPageURL = ""
|
||||
// }
|
||||
globals.SugarLogger.Debugf("SendMsgToStore storeID:%d, openID:%s, templateID:%s, downloadURL:%s, realMiniPageURL:%s", storeID, openID, templateID, downloadURL, realMiniPageURL)
|
||||
if err2 := SmartMessageTemplateSend(openID, templateID, downloadURL, realMiniPageURL, data); err2 == nil {
|
||||
successCount++
|
||||
} else {
|
||||
@@ -165,7 +159,6 @@ func SmartMessageTemplateSend(userOpenID, templateID, downloadURL, miniPageURL s
|
||||
"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)
|
||||
@@ -205,7 +198,6 @@ func getOrderDetailBrief(order *model.GoodsOrder) (brief string) {
|
||||
}
|
||||
|
||||
func NotifyNewOrder(order *model.GoodsOrder) (err error) {
|
||||
globals.SugarLogger.Debugf("NotifyNewOrder orderID:%s", order.VendorOrderID)
|
||||
if order.VendorID == model.VendorIDELM {
|
||||
return nil
|
||||
}
|
||||
@@ -262,7 +254,6 @@ func NotifyNewOrder(order *model.GoodsOrder) (err error) {
|
||||
}
|
||||
|
||||
func NotifyWaybillStatus(bill *model.Waybill, order *model.GoodsOrder, isBillAlreadyCandidate bool) (err error) {
|
||||
globals.SugarLogger.Debugf("NotifyWaybillStatus orderID:%s bill:%v", order.VendorOrderID, bill)
|
||||
if order.VendorID == model.VendorIDELM {
|
||||
return nil
|
||||
}
|
||||
@@ -337,7 +328,6 @@ func NotifyWaybillStatus(bill *model.Waybill, order *model.GoodsOrder, isBillAlr
|
||||
}
|
||||
|
||||
func NotifyUserApplyCancel(order *model.GoodsOrder, cancelReason string) (err error) {
|
||||
globals.SugarLogger.Debugf("NotifyUserApplyCancel orderID:%s", order.VendorOrderID)
|
||||
if order.VendorID == model.VendorIDELM {
|
||||
return nil
|
||||
}
|
||||
@@ -384,7 +374,6 @@ func NotifyUserApplyCancel(order *model.GoodsOrder, cancelReason string) (err er
|
||||
}
|
||||
|
||||
func NotifyOrderChanged(order *model.GoodsOrder) (err error) {
|
||||
globals.SugarLogger.Debugf("NotifyOrderChanged orderID:%s", order.VendorOrderID)
|
||||
if order.VendorID == model.VendorIDELM {
|
||||
return nil
|
||||
}
|
||||
@@ -430,7 +419,6 @@ func NotifyOrderChanged(order *model.GoodsOrder) (err error) {
|
||||
}
|
||||
|
||||
func NotifyOrderCanceled(order *model.GoodsOrder) (err error) {
|
||||
globals.SugarLogger.Debugf("NotifyOrderCanceled orderID:%s", order.VendorOrderID)
|
||||
if order.VendorID == model.VendorIDELM {
|
||||
return nil
|
||||
}
|
||||
@@ -491,7 +479,6 @@ func NotifyOrderCanceled(order *model.GoodsOrder) (err error) {
|
||||
}
|
||||
|
||||
func PushJDBadCommentToWeiXin(comment *legacymodel.JxBadComments, isBadComment bool, order *model.GoodsOrder) (err error) {
|
||||
globals.SugarLogger.Debugf("PushJDBadCommentToWeiXin orderID:%s", comment.OrderId)
|
||||
suffix := ""
|
||||
storeDetail, err := dao.GetStoreDetail(dao.GetDB(), jxutils.GetSaleStoreIDFromOrder(order), order.VendorID, "")
|
||||
if err == nil && storeDetail != nil {
|
||||
@@ -549,7 +536,6 @@ func PushJDBadCommentToWeiXin(comment *legacymodel.JxBadComments, isBadComment b
|
||||
}
|
||||
|
||||
func NotifySaleBill(storeID int, title, shopName, fileURL string) (err error) {
|
||||
globals.SugarLogger.Debugf("NotifySaleBill storeID:%d, fileURL:%s", storeID, fileURL)
|
||||
if title == "" {
|
||||
title = "当期账单"
|
||||
}
|
||||
@@ -582,7 +568,6 @@ func NotifySaleBill(storeID int, title, shopName, fileURL string) (err error) {
|
||||
}
|
||||
|
||||
func NotifyStoreOpRequestStatus(isAccepted bool, storeID, nameID int, spuName string, originalUnitPrice, unitPrice int, rejectReason string) (err error) {
|
||||
globals.SugarLogger.Debugf("NotifyStoreOpRequestStatus isAccepted:%t, storeID:%d, nameID:%d, spuName:%s, originalUnitPrice:%d, unitPrice:%d, rejectReason:%s", isAccepted, storeID, nameID, spuName, originalUnitPrice, unitPrice, rejectReason)
|
||||
templateID := ""
|
||||
fileURL := globals.WxBackstageHost + fmt.Sprintf("%s%d", WX_TO_STORE_SKU_PAGE_URL, storeID)
|
||||
data := make(map[string]interface{})
|
||||
@@ -638,7 +623,6 @@ func NotifyStoreOpRequestStatus(isAccepted bool, storeID, nameID int, spuName st
|
||||
}
|
||||
|
||||
func NotifyStoreMessage(storeID, msgID, msgStatusID int, msg *model.Message) (err error) {
|
||||
globals.SugarLogger.Debugf("NotifyStoreMessage storeID:%d, msgID:%d, title:%s, content:%s", storeID, msgID, msg.Title, msg.Content)
|
||||
templateID := ""
|
||||
fileURL := globals.WxBackstageHost + fmt.Sprintf(WX_TO_SHOW_MSG, msgID, msgStatusID)
|
||||
data := make(map[string]interface{})
|
||||
@@ -692,7 +676,6 @@ func NotifyStoreMessage(storeID, msgID, msgStatusID int, msg *model.Message) (er
|
||||
}
|
||||
|
||||
func NotifyAfsOrderStatus(afsOrder *model.AfsOrder) (err error) {
|
||||
globals.SugarLogger.Debugf("NotifyAfsOrderStatus orderID:%s", afsOrder.VendorOrderID)
|
||||
if afsOrder.VendorID == model.VendorIDELM {
|
||||
return nil
|
||||
}
|
||||
@@ -799,7 +782,6 @@ func NotifyStoreStatusChanged(openUserID, title, content string) (err error) {
|
||||
}
|
||||
|
||||
func NotifyStoreAlertMessage(storeID int, storeName, title, content string) (err error) {
|
||||
globals.SugarLogger.Debugf("NotifyStoreAlertMessage storeID:%d, storeName:%d, title:%s, content:%s", storeID, storeName, title, content)
|
||||
templateID := WX_STORE_ALERT_TEMPLATE_ID
|
||||
data := map[string]interface{}{
|
||||
"first": map[string]interface{}{
|
||||
@@ -896,7 +878,6 @@ func SendStoreMessage(ctx *jxcontext.Context, title, content string, storeIDs []
|
||||
msgStatus.Status = model.MessageStatusSendAllFailed
|
||||
}
|
||||
dao.WrapUpdateULEntity(msgStatus, ctx.GetUserName())
|
||||
// globals.SugarLogger.Debug(utils.Format4Output(msgStatus, false))
|
||||
_, err = dao.UpdateEntity(db, msgStatus)
|
||||
return nil, err
|
||||
}, msgStatusList)
|
||||
@@ -911,7 +892,6 @@ func SendStoreMessage(ctx *jxcontext.Context, title, content string, storeIDs []
|
||||
}
|
||||
|
||||
func NotifyAdjustOrder(order *model.GoodsOrder) (err error) {
|
||||
globals.SugarLogger.Debugf("NotifyAdjustOrder orderID:%s", order.VendorOrderID)
|
||||
if order.VendorID == model.VendorIDELM {
|
||||
return nil
|
||||
}
|
||||
@@ -1010,7 +990,6 @@ func SendStoreMessageKnowledge(ctx *jxcontext.Context, title string, knowIDs, st
|
||||
msgStatus.Status = model.MessageStatusSendAllFailed
|
||||
}
|
||||
dao.WrapUpdateULEntity(msgStatus, ctx.GetUserName())
|
||||
// globals.SugarLogger.Debug(utils.Format4Output(msgStatus, false))
|
||||
_, err = dao.UpdateEntity(db, msgStatus)
|
||||
return nil, err
|
||||
}, msgStatusList)
|
||||
@@ -1024,7 +1003,6 @@ func SendStoreMessageKnowledge(ctx *jxcontext.Context, title string, knowIDs, st
|
||||
}
|
||||
|
||||
func NotifyKnowledge(storeID int, title string) (err error) {
|
||||
globals.SugarLogger.Debugf("NotifyKnowledge storeID:%d, title:%s", storeID, title)
|
||||
templateID := WX_KNOWLEDGE_BASE_TEMPLATE_ID
|
||||
data := map[string]interface{}{
|
||||
"first": map[string]interface{}{
|
||||
@@ -1103,7 +1081,6 @@ func SendUserMessage(ctx *jxcontext.Context, title, content string, userIDs []st
|
||||
}
|
||||
|
||||
func NotifyUserMessage(userID string, title, content string) (err error) {
|
||||
globals.SugarLogger.Debugf("NotifyUserMessage userID:%d, title:%s, content:%s", userID, title, content)
|
||||
templateID := WX_NORMAL_STORE_MSG_TEMPLATE_ID
|
||||
data := map[string]interface{}{
|
||||
"first": map[string]interface{}{
|
||||
@@ -1126,7 +1103,6 @@ func NotifyUserMessage(userID string, title, content string) (err error) {
|
||||
}
|
||||
|
||||
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"}, "", "", []string{"wx2bb99eb5d2c9b82c"})
|
||||
if err != nil {
|
||||
return err
|
||||
@@ -1135,7 +1111,6 @@ func SendMsgToUser(userID string, templateID string, data interface{}) (err erro
|
||||
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 {
|
||||
|
||||
Reference in New Issue
Block a user