品牌余额不足10快发通知
This commit is contained in:
@@ -3,10 +3,12 @@ package cms
|
|||||||
import (
|
import (
|
||||||
"git.rosy.net.cn/baseapi/utils"
|
"git.rosy.net.cn/baseapi/utils"
|
||||||
"git.rosy.net.cn/jx-callback/business/jxutils/jxcontext"
|
"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"
|
||||||
"git.rosy.net.cn/jx-callback/business/model/dao"
|
"git.rosy.net.cn/jx-callback/business/model/dao"
|
||||||
"git.rosy.net.cn/jx-callback/business/partner"
|
"git.rosy.net.cn/jx-callback/business/partner"
|
||||||
"git.rosy.net.cn/jx-callback/globals"
|
"git.rosy.net.cn/jx-callback/globals"
|
||||||
|
"git.rosy.net.cn/jx-callback/globals/api"
|
||||||
)
|
)
|
||||||
|
|
||||||
type StoreAcctManager struct {
|
type StoreAcctManager struct {
|
||||||
@@ -198,7 +200,14 @@ func (s *StoreAcctManager) InsertBrandBill(ctx *jxcontext.Context, brandID, pric
|
|||||||
OrderID: orderID,
|
OrderID: orderID,
|
||||||
}
|
}
|
||||||
dao.WrapAddIDCULEntity(brandBill, ctx.GetUserName())
|
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
|
return err
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,6 +7,7 @@ import (
|
|||||||
aliyunsmsclient "github.com/KenmyZhang/aliyun-communicate"
|
aliyunsmsclient "github.com/KenmyZhang/aliyun-communicate"
|
||||||
dyvmsapiclient "github.com/alibabacloud-go/dyvmsapi-20170525-2.0.2/client"
|
dyvmsapiclient "github.com/alibabacloud-go/dyvmsapi-20170525-2.0.2/client"
|
||||||
"github.com/alibabacloud-go/tea/tea"
|
"github.com/alibabacloud-go/tea/tea"
|
||||||
|
"time"
|
||||||
|
|
||||||
"git.rosy.net.cn/baseapi/utils"
|
"git.rosy.net.cn/baseapi/utils"
|
||||||
"git.rosy.net.cn/baseapi/utils/errlist"
|
"git.rosy.net.cn/baseapi/utils/errlist"
|
||||||
@@ -54,7 +55,7 @@ func SendSMSMsg(mobileList []string, signName, templateCode string, templatePara
|
|||||||
return err
|
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 {
|
if len(mobileList) > 0 {
|
||||||
errList := errlist.New()
|
errList := errlist.New()
|
||||||
mobileList = jxutils.StringMap2List(jxutils.StringList2Map(mobileList))
|
mobileList = jxutils.StringMap2List(jxutils.StringList2Map(mobileList))
|
||||||
@@ -62,7 +63,7 @@ func SendVoiceMsg(mobileList []string, templateParam map[string]interface{}) (er
|
|||||||
if mobileNum != "" {
|
if mobileNum != "" {
|
||||||
request := &dyvmsapiclient.SingleCallByTtsRequest{
|
request := &dyvmsapiclient.SingleCallByTtsRequest{
|
||||||
CalledNumber: tea.String(mobileNum),
|
CalledNumber: tea.String(mobileNum),
|
||||||
TtsCode: tea.String(globals.SMSVoicePickOrderTemplate),
|
TtsCode: tea.String(templateCode),
|
||||||
TtsParam: tea.String(string(utils.MustMarshal(templateParam))),
|
TtsParam: tea.String(string(utils.MustMarshal(templateParam))),
|
||||||
}
|
}
|
||||||
res, _err := api.VoiceClient.SingleCallByTts(request)
|
res, _err := api.VoiceClient.SingleCallByTts(request)
|
||||||
@@ -150,7 +151,7 @@ func NotifyPickOrder(order *model.GoodsOrder) (err error) {
|
|||||||
store.MarketManPhone = "18048531223"
|
store.MarketManPhone = "18048531223"
|
||||||
}
|
}
|
||||||
if store.BrandIsOpen&model.BrandOpenVoice != 0 && balance >= model.BrandBalanceLimit {
|
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,
|
"tel": store.MarketManPhone,
|
||||||
}); err == nil {
|
}); err == nil {
|
||||||
err = updateSth(order, store, model.BrandBillFeeTypeVoice)
|
err = updateSth(order, store, model.BrandBillFeeTypeVoice)
|
||||||
@@ -300,3 +301,45 @@ func NotifyJxOrder(order *model.GoodsOrder, bill *model.Waybill) (err error) {
|
|||||||
}, order)
|
}, order)
|
||||||
return err
|
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"
|
smsNewUserOrderTemplate = "SMS_190284055"
|
||||||
smsJxOrderDelivering = "SMS_217235545"
|
smsJxOrderDelivering = "SMS_217235545"
|
||||||
smsPickOrderTemplate = "SMS_222861531"
|
smsPickOrderTemplate = "SMS_222861531"
|
||||||
|
smsBrandBalanceTemplate = "SMS_223190142"
|
||||||
smsVoicePickOrderTemplate = "TTS_222871733"
|
smsVoicePickOrderTemplate = "TTS_222871733"
|
||||||
|
smsVoiceBrandBalanceTemplate = "TTS_223200132"
|
||||||
|
|
||||||
addEvent = true
|
addEvent = true
|
||||||
|
|
||||||
|
|||||||
@@ -46,15 +46,17 @@ var (
|
|||||||
StoreNameEbai string
|
StoreNameEbai string
|
||||||
StoreNameEbai2 string
|
StoreNameEbai2 string
|
||||||
|
|
||||||
SMSSignName string
|
SMSSignName string
|
||||||
SMSMobileVerifyTemplate string
|
SMSMobileVerifyTemplate string
|
||||||
SMSNewOrderTemplate string
|
SMSNewOrderTemplate string
|
||||||
SMSNewOrderTemplateQ string
|
SMSNewOrderTemplateQ string
|
||||||
SMSOrderCanceledTemplate string
|
SMSOrderCanceledTemplate string
|
||||||
SMSNewUserOrderTemplate string
|
SMSNewUserOrderTemplate string
|
||||||
SMSJxOrderDelivering string
|
SMSJxOrderDelivering string
|
||||||
SMSPickOrderTemplate string
|
SMSPickOrderTemplate string
|
||||||
SMSVoicePickOrderTemplate string
|
SMSBrandBalanceTemplate string
|
||||||
|
SMSVoicePickOrderTemplate string
|
||||||
|
SMSVoiceBrandBalanceTemplate string
|
||||||
|
|
||||||
EnableWXAuth2 bool
|
EnableWXAuth2 bool
|
||||||
DisableWXAuth1 bool
|
DisableWXAuth1 bool
|
||||||
@@ -139,7 +141,9 @@ func Init() {
|
|||||||
SMSOrderCanceledTemplate = web.AppConfig.DefaultString("smsOrderCanceledTemplate", "")
|
SMSOrderCanceledTemplate = web.AppConfig.DefaultString("smsOrderCanceledTemplate", "")
|
||||||
SMSNewUserOrderTemplate = web.AppConfig.DefaultString("smsNewUserOrderTemplate", "")
|
SMSNewUserOrderTemplate = web.AppConfig.DefaultString("smsNewUserOrderTemplate", "")
|
||||||
SMSJxOrderDelivering = web.AppConfig.DefaultString("smsJxOrderDelivering", "")
|
SMSJxOrderDelivering = web.AppConfig.DefaultString("smsJxOrderDelivering", "")
|
||||||
|
SMSBrandBalanceTemplate = web.AppConfig.DefaultString("smsBrandBalanceTemplate", "")
|
||||||
SMSVoicePickOrderTemplate = web.AppConfig.DefaultString("smsVoicePickOrderTemplate", "")
|
SMSVoicePickOrderTemplate = web.AppConfig.DefaultString("smsVoicePickOrderTemplate", "")
|
||||||
|
SMSVoiceBrandBalanceTemplate = web.AppConfig.DefaultString("smsVoiceBrandBalanceTemplate", "")
|
||||||
|
|
||||||
EnableWXAuth2 = true // web.BConfig.RunMode == "beta"
|
EnableWXAuth2 = true // web.BConfig.RunMode == "beta"
|
||||||
DisableWXAuth1 = true
|
DisableWXAuth1 = true
|
||||||
|
|||||||
Reference in New Issue
Block a user