品牌余额不足10快发通知
This commit is contained in:
@@ -3,10 +3,12 @@ package cms
|
||||
import (
|
||||
"git.rosy.net.cn/baseapi/utils"
|
||||
"git.rosy.net.cn/jx-callback/business/jxutils/jxcontext"
|
||||
"git.rosy.net.cn/jx-callback/business/jxutils/smsmsg"
|
||||
"git.rosy.net.cn/jx-callback/business/model"
|
||||
"git.rosy.net.cn/jx-callback/business/model/dao"
|
||||
"git.rosy.net.cn/jx-callback/business/partner"
|
||||
"git.rosy.net.cn/jx-callback/globals"
|
||||
"git.rosy.net.cn/jx-callback/globals/api"
|
||||
)
|
||||
|
||||
type StoreAcctManager struct {
|
||||
@@ -198,7 +200,14 @@ func (s *StoreAcctManager) InsertBrandBill(ctx *jxcontext.Context, brandID, pric
|
||||
OrderID: orderID,
|
||||
}
|
||||
dao.WrapAddIDCULEntity(brandBill, ctx.GetUserName())
|
||||
err = dao.CreateEntity(db, brandBill)
|
||||
//扣除后,如果余额小于10元要发消息通知 ,每天通知一次
|
||||
if err = dao.CreateEntity(db, brandBill); err == nil {
|
||||
if mark := api.Cacher.Get("brandID" + utils.Int2Str(brandID)); mark == nil {
|
||||
if balance, _ := s.GetBrandBalance(brandID); balance < model.BrandBalanceLimit {
|
||||
smsmsg.NotifyBrandBalance(brandID)
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
return err
|
||||
}
|
||||
|
||||
@@ -7,6 +7,7 @@ import (
|
||||
aliyunsmsclient "github.com/KenmyZhang/aliyun-communicate"
|
||||
dyvmsapiclient "github.com/alibabacloud-go/dyvmsapi-20170525-2.0.2/client"
|
||||
"github.com/alibabacloud-go/tea/tea"
|
||||
"time"
|
||||
|
||||
"git.rosy.net.cn/baseapi/utils"
|
||||
"git.rosy.net.cn/baseapi/utils/errlist"
|
||||
@@ -54,7 +55,7 @@ func SendSMSMsg(mobileList []string, signName, templateCode string, templatePara
|
||||
return err
|
||||
}
|
||||
|
||||
func SendVoiceMsg(mobileList []string, templateParam map[string]interface{}) (err error) {
|
||||
func SendVoiceMsg(mobileList []string, templateCode string, templateParam map[string]interface{}) (err error) {
|
||||
if len(mobileList) > 0 {
|
||||
errList := errlist.New()
|
||||
mobileList = jxutils.StringMap2List(jxutils.StringList2Map(mobileList))
|
||||
@@ -62,7 +63,7 @@ func SendVoiceMsg(mobileList []string, templateParam map[string]interface{}) (er
|
||||
if mobileNum != "" {
|
||||
request := &dyvmsapiclient.SingleCallByTtsRequest{
|
||||
CalledNumber: tea.String(mobileNum),
|
||||
TtsCode: tea.String(globals.SMSVoicePickOrderTemplate),
|
||||
TtsCode: tea.String(templateCode),
|
||||
TtsParam: tea.String(string(utils.MustMarshal(templateParam))),
|
||||
}
|
||||
res, _err := api.VoiceClient.SingleCallByTts(request)
|
||||
@@ -150,7 +151,7 @@ func NotifyPickOrder(order *model.GoodsOrder) (err error) {
|
||||
store.MarketManPhone = "18048531223"
|
||||
}
|
||||
if store.BrandIsOpen&model.BrandOpenVoice != 0 && balance >= model.BrandBalanceLimit {
|
||||
if err = SendVoiceMsg(mobileList, map[string]interface{}{
|
||||
if err = SendVoiceMsg(mobileList, globals.SMSPickOrderTemplate, map[string]interface{}{
|
||||
"tel": store.MarketManPhone,
|
||||
}); err == nil {
|
||||
err = updateSth(order, store, model.BrandBillFeeTypeVoice)
|
||||
@@ -300,3 +301,45 @@ func NotifyJxOrder(order *model.GoodsOrder, bill *model.Waybill) (err error) {
|
||||
}, order)
|
||||
return err
|
||||
}
|
||||
|
||||
//品牌余额不足发送
|
||||
func NotifyBrandBalance(brandID int) (err error) {
|
||||
var (
|
||||
db = dao.GetDB()
|
||||
)
|
||||
bindUsers, err := dao.GetBrandUser(db, brandID, "")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
list := errlist.New()
|
||||
count := 0
|
||||
for _, v := range bindUsers {
|
||||
if user, err := dao.GetUserByID(db, "user_id", v.UserID); err == nil && user != nil {
|
||||
if err = SendVoiceMsg([]string{*user.Mobile}, globals.SMSVoiceBrandBalanceTemplate, map[string]interface{}{
|
||||
"money": model.BrandBalanceLimit,
|
||||
}); err != nil {
|
||||
list.AddErr(err)
|
||||
} else {
|
||||
count++
|
||||
}
|
||||
if err = SendSMSMsg([]string{*user.Mobile}, globals.SMSSignName, globals.SMSBrandBalanceTemplate, map[string]interface{}{
|
||||
"money": model.BrandBalanceLimit,
|
||||
}, nil); err != nil {
|
||||
list.AddErr(err)
|
||||
} else {
|
||||
count++
|
||||
}
|
||||
}
|
||||
}
|
||||
err = list.GetErrListAsOne()
|
||||
if err == nil {
|
||||
//每个品牌每天通知一次,用redis吧
|
||||
if mark := api.Cacher.Get("brandID" + utils.Int2Str(brandID)); mark == nil {
|
||||
err = api.Cacher.Set("brandID"+utils.Int2Str(brandID), 1, utils.Str2Time(time.Now().AddDate(0, 0, 1).Format("2006-01-02")+"00:00:00").Sub(time.Now()))
|
||||
}
|
||||
if count > 0 {
|
||||
partner.CurStoreAcctManager.InsertBrandBill(jxcontext.AdminCtx, brandID, 5*count, model.BrandBillTypeExpend, model.BrandBillFeeTypeSys, "", "")
|
||||
}
|
||||
}
|
||||
return err
|
||||
}
|
||||
|
||||
@@ -144,7 +144,9 @@ smsOrderCanceledTemplate = "SMS_175573134"
|
||||
smsNewUserOrderTemplate = "SMS_190284055"
|
||||
smsJxOrderDelivering = "SMS_217235545"
|
||||
smsPickOrderTemplate = "SMS_222861531"
|
||||
smsBrandBalanceTemplate = "SMS_223190142"
|
||||
smsVoicePickOrderTemplate = "TTS_222871733"
|
||||
smsVoiceBrandBalanceTemplate = "TTS_223200132"
|
||||
|
||||
addEvent = true
|
||||
|
||||
|
||||
@@ -46,15 +46,17 @@ var (
|
||||
StoreNameEbai string
|
||||
StoreNameEbai2 string
|
||||
|
||||
SMSSignName string
|
||||
SMSMobileVerifyTemplate string
|
||||
SMSNewOrderTemplate string
|
||||
SMSNewOrderTemplateQ string
|
||||
SMSOrderCanceledTemplate string
|
||||
SMSNewUserOrderTemplate string
|
||||
SMSJxOrderDelivering string
|
||||
SMSPickOrderTemplate string
|
||||
SMSVoicePickOrderTemplate string
|
||||
SMSSignName string
|
||||
SMSMobileVerifyTemplate string
|
||||
SMSNewOrderTemplate string
|
||||
SMSNewOrderTemplateQ string
|
||||
SMSOrderCanceledTemplate string
|
||||
SMSNewUserOrderTemplate string
|
||||
SMSJxOrderDelivering string
|
||||
SMSPickOrderTemplate string
|
||||
SMSBrandBalanceTemplate string
|
||||
SMSVoicePickOrderTemplate string
|
||||
SMSVoiceBrandBalanceTemplate string
|
||||
|
||||
EnableWXAuth2 bool
|
||||
DisableWXAuth1 bool
|
||||
@@ -139,7 +141,9 @@ func Init() {
|
||||
SMSOrderCanceledTemplate = web.AppConfig.DefaultString("smsOrderCanceledTemplate", "")
|
||||
SMSNewUserOrderTemplate = web.AppConfig.DefaultString("smsNewUserOrderTemplate", "")
|
||||
SMSJxOrderDelivering = web.AppConfig.DefaultString("smsJxOrderDelivering", "")
|
||||
SMSBrandBalanceTemplate = web.AppConfig.DefaultString("smsBrandBalanceTemplate", "")
|
||||
SMSVoicePickOrderTemplate = web.AppConfig.DefaultString("smsVoicePickOrderTemplate", "")
|
||||
SMSVoiceBrandBalanceTemplate = web.AppConfig.DefaultString("smsVoiceBrandBalanceTemplate", "")
|
||||
|
||||
EnableWXAuth2 = true // web.BConfig.RunMode == "beta"
|
||||
DisableWXAuth1 = true
|
||||
|
||||
Reference in New Issue
Block a user