This commit is contained in:
suyl
2021-08-26 18:26:57 +08:00
parent 8bdf11d62b
commit 8ddfab29c0
5 changed files with 95 additions and 33 deletions

View File

@@ -88,8 +88,8 @@ type StoreSkuBindInfo struct {
IsFocus int `json:"isFocus"` // -1不关注0忽略1关注
IsSale int `json:"isSale"` // -1不可售0忽略1可售
SubStoreID int `json:"subStoreID,omitempty"`
StatusSaleBegin int16 `json:"statusSaleBegin" validate:"max=2359,min=1,ltfield=StatusSaleEnd"` //商品可售时间范围
StatusSaleEnd int16 `json:"statusSaleEnd" validate:"max=2359,min=1"`
StatusSaleBegin *int16 `json:"statusSaleBegin" validate:"max=2359,min=1,ltfield=StatusSaleEnd"` //商品可售时间范围
StatusSaleEnd *int16 `json:"statusSaleEnd" validate:"max=2359,min=1"`
UPC string `json:"upc"`
MtLadderBoxPrice int `json:"mtLadderBoxPrice"`
Skus []*StoreSkuBindSkuInfo `json:"skus,omitempty"`
@@ -1764,26 +1764,26 @@ func updateStoresSkusWithoutSync(ctx *jxcontext.Context, db *dao.DaoDB, storeIDs
// checkActDirectDown(ctx, skuBind, beforeMsg)
}
}
if skuBindInfo.StatusSaleBegin != 0 && skuBindInfo.StatusSaleEnd != 0 {
if skuBindInfo.StatusSaleBegin != nil && skuBindInfo.StatusSaleEnd != nil {
if err := ValidateStruct(skuBindInfo); err != nil {
globals.SugarLogger.Infof("更改商品:%s, 可售时间不合法!时间范围:[%v] 至 [%v]", allBinds[0].Name, skuBindInfo.StatusSaleBegin, skuBindInfo.StatusSaleEnd)
} else {
if skuBind.StatusSaleBegin != skuBindInfo.StatusSaleBegin || skuBind.StatusSaleEnd != skuBindInfo.StatusSaleEnd {
if skuBind.StatusSaleBegin != *skuBindInfo.StatusSaleBegin || skuBind.StatusSaleEnd != *skuBindInfo.StatusSaleEnd {
updateFieldMap["StatusSaleBegin"] = 1
updateFieldMap["StatusSaleEnd"] = 1
}
skuBind.StatusSaleBegin = skuBindInfo.StatusSaleBegin
skuBind.StatusSaleEnd = skuBindInfo.StatusSaleEnd
skuBind.StatusSaleBegin = *skuBindInfo.StatusSaleBegin
skuBind.StatusSaleEnd = *skuBindInfo.StatusSaleEnd
}
}
if skuBindInfo.StatusSaleBegin == 0 && skuBindInfo.StatusSaleEnd == 0 {
if skuBind.StatusSaleBegin != skuBindInfo.StatusSaleBegin || skuBind.StatusSaleEnd != skuBindInfo.StatusSaleEnd {
updateFieldMap["StatusSaleBegin"] = 1
updateFieldMap["StatusSaleEnd"] = 1
}
skuBind.StatusSaleBegin = skuBindInfo.StatusSaleBegin
skuBind.StatusSaleEnd = skuBindInfo.StatusSaleEnd
}
//if skuBindInfo.StatusSaleBegin == 0 && skuBindInfo.StatusSaleEnd == 0 {
// if skuBind.StatusSaleBegin != skuBindInfo.StatusSaleBegin || skuBind.StatusSaleEnd != skuBindInfo.StatusSaleEnd {
// updateFieldMap["StatusSaleBegin"] = 1
// updateFieldMap["StatusSaleEnd"] = 1
// }
// skuBind.StatusSaleBegin = skuBindInfo.StatusSaleBegin
// skuBind.StatusSaleEnd = skuBindInfo.StatusSaleEnd
//}
if globals.IsAddEvent {
if len(updateFieldMap) > 0 {

View File

@@ -2,8 +2,9 @@ package smsmsg
import (
"fmt"
aliyunsmsclient "github.com/KenmyZhang/aliyun-communicate"
dyvmsapiclient "github.com/alibabacloud-go/Dyvmsapi-20170525/client"
"github.com/alibabacloud-go/tea/tea"
"git.rosy.net.cn/baseapi/utils"
"git.rosy.net.cn/baseapi/utils/errlist"
@@ -30,7 +31,7 @@ func SendSMSMsg(mobileList []string, signName, templateCode string, templatePara
for _, mobileNum := range mobileList {
if mobileNum != "" {
globals.SugarLogger.Debugf("SendSMSMsg mobileNum:%s, templateCode:%s", mobileNum, templateCode)
if true { //globals.EnableStoreWrite {
if true {
if response, err := api.SMSClient.Execute(globals.AliKey, globals.AliSecret, mobileNum, signName, templateCode, string(utils.MustMarshal(templateParam))); err != nil {
globals.SugarLogger.Warnf("SendSMSMsg mobileNum:%s failed with error:%v", mobileNum, err)
errList.AddErr(err)
@@ -43,11 +44,32 @@ func SendSMSMsg(mobileList []string, signName, templateCode string, templatePara
globals.SugarLogger.Infof(errMsg)
}
}
// else {
// if order != nil {
// err = updateStoreSMSNotifyMark(order)
// }
// }
}
}
}
err = errList.GetErrListAsOne()
}
return err
}
func SendVoiceMsg(mobileList []string, templateParam map[string]interface{}) (err error) {
if len(mobileList) > 0 {
errList := errlist.New()
mobileList = jxutils.StringMap2List(jxutils.StringList2Map(mobileList))
for _, mobileNum := range mobileList {
if mobileNum != "" {
request := &dyvmsapiclient.SingleCallByTtsRequest{
CalledNumber: tea.String(mobileNum),
TtsCode: tea.String(globals.SMSVoicePickOrderTemplate),
TtsParam: tea.String(string(utils.MustMarshal(templateParam))),
}
res, _err := api.VoiceClient.SingleCallByTts(request)
if _err != nil {
errList.AddErr(err)
}
if res.Body.Code != tea.String("OK") {
globals.SugarLogger.Debugf("SendVoiceMsg mobileNum:%s failed with response:%s", mobileNum, utils.Format4Output(res, true))
errList.AddErr(fmt.Errorf(*res.Body.Message))
}
}
}
@@ -91,9 +113,29 @@ func NotifyNewOrder(order *model.GoodsOrder) (err error) {
}
func NotifyPickOrder(order *model.GoodsOrder) (err error) {
if isPushSMS(order) {
err = SendSMSMsg(getOrderNotifyPhone(order), globals.SMSSignName, globals.SMSPickOrderTemplate, nil, order)
//if isPushSMS(order) {
store, _ := dao.GetStoreDetail(dao.GetDB(), jxutils.GetSaleStoreIDFromOrder(order), order.VendorID, order.VendorOrgCode)
mobileList := []string{}
if store.Tel1 != "" {
mobileList = append(mobileList, store.Tel1)
}
if store.Tel2 != "" {
mobileList = append(mobileList, store.Tel2)
}
if store.SMSNotify != 0 && store.IsOrder == model.NO && store.ID != model.MatterStoreID && store.ID != model.JdShopMainStoreID && len(mobileList) > 0 {
switch store.SMSNotify {
case 1:
err = SendSMSMsg(mobileList, globals.SMSSignName, globals.SMSPickOrderTemplate, nil, order)
case 2:
if store.MarketManPhone == "" {
store.MarketManPhone = "18048531223"
}
err = SendVoiceMsg(mobileList, map[string]interface{}{
"tel": store.MarketManPhone,
})
}
}
//}
return err
}

View File

@@ -144,6 +144,7 @@ smsOrderCanceledTemplate = "SMS_175573134"
smsNewUserOrderTemplate = "SMS_190284055"
smsJxOrderDelivering = "SMS_217235545"
smsPickOrderTemplate = "SMS_222861531"
smsVoicePickOrderTemplate = "TTS_222871733"
addEvent = true

View File

@@ -3,6 +3,7 @@ package api
import (
"git.rosy.net.cn/baseapi/platformapi/jxprintapi"
"git.rosy.net.cn/baseapi/platformapi/qywxapi"
"github.com/alibabacloud-go/tea/tea"
"time"
"git.rosy.net.cn/baseapi/platformapi/fnpsapi"
@@ -19,6 +20,8 @@ import (
"git.rosy.net.cn/baseapi/platformapi/tonglianpayapi"
aliyunsmsclient "github.com/KenmyZhang/aliyun-communicate"
"github.com/alibabacloud-go/darabonba-openapi/client"
dyvmsapiclient "github.com/alibabacloud-go/dyvmsapi-20170525/client"
"git.rosy.net.cn/baseapi/platformapi"
"git.rosy.net.cn/baseapi/platformapi/alipayapi"
@@ -105,8 +108,9 @@ var (
PushAPI *unipushapi.API
Cacher cache.ICacher
SMSClient *aliyunsmsclient.SmsClient
Cacher cache.ICacher
SMSClient *aliyunsmsclient.SmsClient
VoiceClient *dyvmsapiclient.Client
)
func init() {
@@ -284,6 +288,19 @@ func Init() {
JxPrintAPI = jxprintapi.New(beego.AppConfig.DefaultString("jxPrintAppID", ""), beego.AppConfig.DefaultString("jxPrintAppKey", ""))
SMSClient = aliyunsmsclient.New("http://dysmsapi.aliyuncs.com/")
VoiceClient, _ = CreateClient(tea.String(beego.AppConfig.DefaultString("aliKey", "")), tea.String(beego.AppConfig.DefaultString("aliSecret", "")))
QywxAPI = qywxapi.New(beego.AppConfig.DefaultString("qywxID", ""), beego.AppConfig.DefaultString("qywxSecret", ""), "")
}
func CreateClient(accessKeyId *string, accessKeySecret *string) (_result *dyvmsapiclient.Client, _err error) {
config := &client.Config{}
// 您的AccessKey ID
config.AccessKeyId = accessKeyId
// 您的AccessKey Secret
config.AccessKeySecret = accessKeySecret
config.Endpoint = tea.String("dysmsapi.aliyuncs.com/")
_result = &dyvmsapiclient.Client{}
_result, _err = dyvmsapiclient.NewClient(config)
return _result, _err
}

View File

@@ -46,14 +46,15 @@ var (
StoreNameEbai string
StoreNameEbai2 string
SMSSignName string
SMSMobileVerifyTemplate string
SMSNewOrderTemplate string
SMSNewOrderTemplateQ string
SMSOrderCanceledTemplate string
SMSNewUserOrderTemplate string
SMSJxOrderDelivering string
SMSPickOrderTemplate string
SMSSignName string
SMSMobileVerifyTemplate string
SMSNewOrderTemplate string
SMSNewOrderTemplateQ string
SMSOrderCanceledTemplate string
SMSNewUserOrderTemplate string
SMSJxOrderDelivering string
SMSPickOrderTemplate string
SMSVoicePickOrderTemplate string
EnableWXAuth2 bool
DisableWXAuth1 bool
@@ -138,6 +139,7 @@ func Init() {
SMSOrderCanceledTemplate = web.AppConfig.DefaultString("smsOrderCanceledTemplate", "")
SMSNewUserOrderTemplate = web.AppConfig.DefaultString("smsNewUserOrderTemplate", "")
SMSJxOrderDelivering = web.AppConfig.DefaultString("smsJxOrderDelivering", "")
SMSVoicePickOrderTemplate = web.AppConfig.DefaultString("smsVoicePickOrderTemplate", "")
EnableWXAuth2 = true // web.BConfig.RunMode == "beta"
DisableWXAuth1 = true