From 5a658dd64652f7ddbb836e193efafa74c572f995 Mon Sep 17 00:00:00 2001 From: suyl <770236076@qq.com> Date: Tue, 31 Aug 2021 14:52:49 +0800 Subject: [PATCH] =?UTF-8?q?=E5=93=81=E7=89=8C=E4=BD=99=E9=A2=9D=E4=B8=8D?= =?UTF-8?q?=E8=B6=B310=E5=BF=AB=E5=8F=91=E9=80=9A=E7=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store_acct.go | 11 ++++++- business/jxutils/smsmsg/smsmsg.go | 49 ++++++++++++++++++++++++++++-- conf/app.conf | 2 ++ globals/globals.go | 22 ++++++++------ 4 files changed, 71 insertions(+), 13 deletions(-) diff --git a/business/jxstore/cms/store_acct.go b/business/jxstore/cms/store_acct.go index f80416b7b..ce4ed3ef1 100644 --- a/business/jxstore/cms/store_acct.go +++ b/business/jxstore/cms/store_acct.go @@ -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 } diff --git a/business/jxutils/smsmsg/smsmsg.go b/business/jxutils/smsmsg/smsmsg.go index b5c6a08ea..a1800a9a8 100644 --- a/business/jxutils/smsmsg/smsmsg.go +++ b/business/jxutils/smsmsg/smsmsg.go @@ -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 +} diff --git a/conf/app.conf b/conf/app.conf index 13cfc0710..7d3188cf9 100644 --- a/conf/app.conf +++ b/conf/app.conf @@ -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 diff --git a/globals/globals.go b/globals/globals.go index 0a2a100ec..6914e1405 100644 --- a/globals/globals.go +++ b/globals/globals.go @@ -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