1
This commit is contained in:
@@ -42,7 +42,7 @@ const (
|
||||
)
|
||||
|
||||
const (
|
||||
DefTokenDuration = 7 * 24 * time.Hour // 正式TOKEN,7天有效期
|
||||
DefTokenDuration = 7 * 24 * 2 * time.Hour // 正式TOKEN,7天有效期
|
||||
TmpTokenDuration = 30 * time.Minute // 临时TOKEN,30分钟有效期
|
||||
MinCaptchaLen = 4
|
||||
MaxCaptchaWidth = 400
|
||||
|
||||
@@ -2152,8 +2152,7 @@ func RefreshOrderSkuInfo(ctx *jxcontext.Context, vendorOrderID string, vendorID,
|
||||
return fmt.Errorf("未找到此门店商品!")
|
||||
}
|
||||
storeSku := storeSkus[0]
|
||||
//if v.ShopPrice == v.EarningPrice {
|
||||
if beego.BConfig.RunMode == "jxgy" || beego.BConfig.RunMode == "jxpet" {
|
||||
if beego.BConfig.RunMode == model.ServerTypeFruits || beego.BConfig.RunMode == model.ServerTypePet {
|
||||
if v.SalePrice > v.ShopPrice {
|
||||
v.EarningPrice = int64(math.Round(float64(storeSku.Price) * float64(order.OrderPayPercentage) / 100))
|
||||
} else {
|
||||
@@ -2162,7 +2161,6 @@ func RefreshOrderSkuInfo(ctx *jxcontext.Context, vendorOrderID string, vendorID,
|
||||
} else {
|
||||
v.EarningPrice = int64(math.Round(float64(storeSku.Price) * float64(order.OrderPayPercentage) / 100))
|
||||
}
|
||||
//}
|
||||
v.ShopPrice = int64(storeSku.Price)
|
||||
dao.UpdateEntity(db, v, "ShopPrice", "EarningPrice")
|
||||
return err
|
||||
|
||||
@@ -471,7 +471,7 @@ func (c *OrderManager) ExportOrders(ctx *jxcontext.Context, fromDateStr, toDateS
|
||||
}
|
||||
if v.SkuCount2 > 0 {
|
||||
var skuStr string
|
||||
if beego.BConfig.RunMode == "jxgy" || beego.BConfig.RunMode == "jxpet" {
|
||||
if beego.BConfig.RunMode == model.ServerTypeFruits || beego.BConfig.RunMode == model.ServerTypePet {
|
||||
skuStr = strings.Join([]string{
|
||||
utils.Int2Str(v.SkuID),
|
||||
utils.Int2Str(v.SkuCount2),
|
||||
@@ -1676,9 +1676,9 @@ func RefreshJdShopOrdersEarningPrice(ctx *jxcontext.Context, orderStartTime, ord
|
||||
db = dao.GetDB()
|
||||
appOrgCode string
|
||||
)
|
||||
if beego.BConfig.RunMode == "jxgy" {
|
||||
if beego.BConfig.RunMode == model.ServerTypeFruits {
|
||||
appOrgCode = "339032"
|
||||
} else if beego.BConfig.RunMode == "jxpet" {
|
||||
} else if beego.BConfig.RunMode == model.ServerTypePet {
|
||||
appOrgCode = "jxpet_apporg_code"
|
||||
} else {
|
||||
appOrgCode = "320406"
|
||||
|
||||
@@ -1107,15 +1107,15 @@ func (s *DefScheduler) swtich2SelfDeliverWithRetry(savedOrderInfo *WatchOrderInf
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if order.VendorID == model.VendorIDEBAI && strings.Contains(order.ConsigneeAddress, "隐私保护") {
|
||||
orderMap, err := api.EbaiAPI.OrderGet(order.VendorOrderID)
|
||||
if err == nil {
|
||||
// 部分订单在隐私条约的保护下会隐藏用户收货地址,转自送成功自后才可以获取到正确的地址.
|
||||
userMap := orderMap["user"].(map[string]interface{})
|
||||
order.ConsigneeAddress = utils.Interface2String(userMap["address"])
|
||||
partner.CurOrderManager.UpdateOrderFields(order, []string{"ConsigneeAddress"})
|
||||
}
|
||||
}
|
||||
//if order.VendorID == model.VendorIDEBAI && strings.Contains(order.ConsigneeAddress, "隐私保护") {
|
||||
// orderMap, err := api.EbaiAPI.OrderGet(order.VendorOrderID)
|
||||
// if err == nil {
|
||||
// // 部分订单在隐私条约的保护下会隐藏用户收货地址,转自送成功自后才可以获取到正确的地址.
|
||||
// userMap := orderMap["user"].(map[string]interface{})
|
||||
// order.ConsigneeAddress = utils.Interface2String(userMap["address"])
|
||||
// partner.CurOrderManager.UpdateOrderFields(order, []string{"ConsigneeAddress"})
|
||||
// }
|
||||
//}
|
||||
s.notify3rdPartyWaybill(order, bill, false)
|
||||
s.removeWaybillFromMap(savedOrderInfo, order.VendorID)
|
||||
data := "断点打印"
|
||||
|
||||
@@ -18,12 +18,6 @@ const (
|
||||
TimerStatusTypeWaybill = 1
|
||||
)
|
||||
|
||||
const (
|
||||
JXC4B_RAND_JXGY = 1 // 京西菜市和果园品牌id
|
||||
JXC4B_SHOP = 7 // 京西超市
|
||||
JXC4B_ZHIGONG = 8 // 京西直供
|
||||
)
|
||||
|
||||
var (
|
||||
CurrentScheduler IScheduler
|
||||
)
|
||||
|
||||
@@ -1153,9 +1153,9 @@ type aa struct {
|
||||
func getCategoryByName(name string) string {
|
||||
handler, _ := partner.GetPurchasePlatformFromVendorID(model.VendorIDJD).(partner.IPurchasePlatformStoreSkuHandler)
|
||||
vendorOrgCode := ""
|
||||
if beego.BConfig.RunMode == "jxgy" {
|
||||
if beego.BConfig.RunMode == model.ServerTypeFruits {
|
||||
vendorOrgCode = "339032"
|
||||
} else if beego.BConfig.RunMode == "jxpet" {
|
||||
} else if beego.BConfig.RunMode == model.ServerTypePet {
|
||||
vendorOrgCode = "jxpet_apporg_code"
|
||||
} else {
|
||||
vendorOrgCode = "320406"
|
||||
@@ -1175,9 +1175,9 @@ func getCategoryByImg(img ...string) string {
|
||||
}
|
||||
handler, _ := partner.GetPurchasePlatformFromVendorID(model.VendorIDDD).(partner.IPurchasePlatformStoreSkuHandler)
|
||||
vendorOrgCode := ""
|
||||
if beego.BConfig.RunMode == "jxgy" {
|
||||
if beego.BConfig.RunMode == model.ServerTypeFruits {
|
||||
vendorOrgCode = "57939570"
|
||||
} else if beego.BConfig.RunMode == "jxpet" {
|
||||
} else if beego.BConfig.RunMode == model.ServerTypePet {
|
||||
vendorOrgCode = "57939570"
|
||||
} else {
|
||||
vendorOrgCode = "57939570"
|
||||
|
||||
@@ -4667,7 +4667,7 @@ func RefreshTiktokShopToken(ctx *jxcontext.Context) (err error) {
|
||||
v.UpdatedAt = time.Now()
|
||||
v.StoreBrandName = "定时任务更新"
|
||||
dao.UpdateEntity(db, v, "Token", "UpdatedAt", "StoreBrandName")
|
||||
tiktok_store.HttpToGuoYuan(utils.Struct2MapByJson(v), tiktok_store.CaiShiPushGyTagToken)
|
||||
tiktok_store.HttpToGuoYuan(utils.Struct2MapByJson(v), tiktok_store.CaiShiPushGyTagToken, model.ServerTypeFruits)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1726,7 +1726,7 @@ func UpdateStoreSkus(ctx *jxcontext.Context, causeFlag, storeID int, skuBindInfo
|
||||
}
|
||||
|
||||
func UpdateStoresSkus(ctx *jxcontext.Context, causeFlag int, storeIDs []int, skuBindInfos []*StoreSkuBindInfo, isScale, isRefreshHigh, isAsync, isContinueWhenError bool) (hint string, err error) {
|
||||
if beego.BConfig.RunMode == "jxgy" || beego.BConfig.RunMode == "jxpet" {
|
||||
if beego.BConfig.RunMode == model.ServerTypeFruits || beego.BConfig.RunMode == model.ServerTypePet {
|
||||
doStoreSkuAuditForGy(ctx, storeIDs, skuBindInfos)
|
||||
var num int64
|
||||
db := dao.GetDB()
|
||||
|
||||
@@ -76,10 +76,10 @@ func SyncStoreCategories(ctx *jxcontext.Context, parentTask tasksch.ITask, vendo
|
||||
if storeID != 668594 && storeID != 668469 && vendorID == model.VendorIDTaoVegetable {
|
||||
var totalCategory []*model.StoreSkuCategoryMap
|
||||
switch beego.BConfig.RunMode {
|
||||
case "dev":
|
||||
case model.ServerTypeVegetable: // "dev"
|
||||
totalCategory, _ = dao.GetDetailStoreSkuCategoryMap(db, 668469)
|
||||
case "jxgy":
|
||||
case "jxpet":
|
||||
case model.ServerTypeFruits:
|
||||
case model.ServerTypePet:
|
||||
|
||||
default:
|
||||
totalCategory, _ = dao.GetDetailStoreSkuCategoryMap(db, 668594)
|
||||
@@ -390,7 +390,7 @@ func formalizeStoreSkuList(inSkuList []*dao.StoreSkuSyncInfo) []*dao.StoreSkuSyn
|
||||
skuItem.SkuName = jxutils.ComposeSkuNameSync(skuItem.Prefix, skuItem.Name, skuItem.Comment, skuItem.Unit, skuItem.SpecQuality, skuItem.SpecUnit, 0, skuItem.ExPrefix, skuItem.ExPrefixBegin, skuItem.ExPrefixEnd, (skuItem.BrandID == skuItem.ExBrandID && skuItem.ExBrandID != 0) || skuItem.ExBrandID == 0)
|
||||
}
|
||||
//水果美团标品用原名字
|
||||
if skuItem.VendorID == model.VendorIDMTWM && web.BConfig.RunMode == "jxgy" && skuItem.Unit != model.UnitNames[0] {
|
||||
if skuItem.VendorID == model.VendorIDMTWM && web.BConfig.RunMode == model.ServerTypeFruits && skuItem.Unit != model.UnitNames[0] {
|
||||
skuItem.SkuName = skuItem.Name
|
||||
}
|
||||
skuItem.SkuNameOrigin = jxutils.ComposeSkuNameOriginal(skuItem.Prefix, skuItem.Name, skuItem.Comment, skuItem.Unit, skuItem.SpecQuality, skuItem.SpecUnit, 0)
|
||||
|
||||
@@ -1280,7 +1280,7 @@ func SendQywxPeopleCount(ctx *jxcontext.Context) (err error) {
|
||||
db = dao.GetDB()
|
||||
groupIDMap = make(map[string][]interface{})
|
||||
)
|
||||
if beego.BConfig.RunMode == "jxgy" {
|
||||
if beego.BConfig.RunMode == model.ServerTypeFruits {
|
||||
groupIDMap[qywxapi.GyGroupID] = []interface{}{1, "京西果园"}
|
||||
} else {
|
||||
groupIDMap[qywxapi.BldGroupID] = []interface{}{7, "京西超市"}
|
||||
|
||||
@@ -294,7 +294,7 @@ func Init() {
|
||||
// }, []string{"13:00:00"})
|
||||
//}
|
||||
|
||||
if beego.BConfig.RunMode != "jxgy" {
|
||||
if beego.BConfig.RunMode != model.ServerTypeFruits && beego.BConfig.RunMode != model.ServerTypePet {
|
||||
ScheduleTimerFunc("RefreshSyncSkuListTao", func() {
|
||||
syncStoreSkuTao()
|
||||
}, []string{
|
||||
@@ -303,7 +303,7 @@ func Init() {
|
||||
}
|
||||
|
||||
// 刷新抖音门店token
|
||||
if beego.BConfig.RunMode != "jxgy" {
|
||||
if beego.BConfig.RunMode != model.ServerTypeFruits && beego.BConfig.RunMode != model.ServerTypePet {
|
||||
ScheduleTimerFuncByInterval(func() {
|
||||
cms.RefreshTiktokShopToken(jxcontext.AdminCtx)
|
||||
}, 60*time.Second, 30*time.Minute)
|
||||
@@ -495,7 +495,8 @@ func Init() {
|
||||
cms.AutoSaleStoreSku(jxcontext.AdminCtx, nil, true)
|
||||
}, autoSaleStoreSkuTimeList)
|
||||
|
||||
if beego.BConfig.RunMode == "jxgy" {
|
||||
// 菜市无聊信息同步到果园
|
||||
if beego.BConfig.RunMode == model.ServerTypeFruits {
|
||||
ScheduleTimerFunc("SyncMatterC4ToGy", func() {
|
||||
cms.SyncMatterC4ToGy(jxcontext.AdminCtx, true, true)
|
||||
}, dailyWorkTimeList)
|
||||
@@ -579,11 +580,7 @@ func Init() {
|
||||
|
||||
func syncStoreSku() {
|
||||
syncFlag := 0
|
||||
if beego.BConfig.RunMode == "jxgy" {
|
||||
syncFlag |= model.SyncFlagPriceMask // SyncFlagSaleMask
|
||||
} else {
|
||||
syncFlag |= model.SyncFlagPriceMask // SyncFlagSaleMask
|
||||
}
|
||||
task := tasksch.NewParallelTask("同步京西与平台数据", nil, jxcontext.AdminCtx,
|
||||
func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
|
||||
step := batchItemList[0].(int)
|
||||
@@ -591,7 +588,7 @@ func syncStoreSku() {
|
||||
db := dao.GetDB()
|
||||
switch step {
|
||||
case 0:
|
||||
if beego.BConfig.RunMode != "jxgy" {
|
||||
if beego.BConfig.RunMode != model.ServerTypeFruits && beego.BConfig.RunMode != model.ServerTypePet {
|
||||
errList.AddErr(cms.DeleteSkuNameExPrefixOverdue(db))
|
||||
errList.AddErr(cms.SetMultiStoreSkuSyncModifyStatus(db, partner.GetMultiStoreVendorIDs()))
|
||||
|
||||
@@ -640,7 +637,7 @@ func syncStoreSkuTiktok() {
|
||||
db := dao.GetDB()
|
||||
switch step {
|
||||
case 0:
|
||||
if beego.BConfig.RunMode != "jxgy" {
|
||||
if beego.BConfig.RunMode != model.ServerTypeFruits && beego.BConfig.RunMode != model.ServerTypePet {
|
||||
_, err = cms.CurVendorSync.SyncStoresSkus2(jxcontext.AdminCtx, nil, 0, db, []int{model.VendorIDDD}, nil, false, nil, nil, syncFlag, true, true)
|
||||
errList.AddErr(err)
|
||||
}
|
||||
|
||||
@@ -508,7 +508,7 @@ func GetVendorName(vendorID int) (vendorName string) {
|
||||
func CaculateSkuEarningPrice(shopPrice, salePrice int64, storePayPercentage int) (earningPrice int64) {
|
||||
//TODO 2021-07-05 16:50菜市和果园一样,取低的
|
||||
//TODO 2021-07-05 18:48 还是改回来
|
||||
if beego.BConfig.RunMode == "jxgy" {
|
||||
if beego.BConfig.RunMode == model.ServerTypeFruits || beego.BConfig.RunMode == model.ServerTypePet {
|
||||
earningPrice = salePrice
|
||||
if salePrice != 0 {
|
||||
if shopPrice > 0 && shopPrice < earningPrice {
|
||||
|
||||
@@ -497,7 +497,7 @@ func NotifyOrderCanceled(order *model.GoodsOrder) (err error) {
|
||||
}
|
||||
title := fmt.Sprintf(suffix+"老板,您的订单%s第%d号订单, %s被取消了!", model.VendorChineseNames[order.VendorID], order.OrderSeq, order.VendorOrderID)
|
||||
var price int64
|
||||
if beego.BConfig.RunMode == "jxgy" {
|
||||
if beego.BConfig.RunMode == model.ServerTypeFruits || beego.BConfig.RunMode == model.ServerTypePet {
|
||||
price = order.NewEarningPrice
|
||||
} else {
|
||||
if order.EarningType == model.EarningTypePoints {
|
||||
|
||||
@@ -499,6 +499,9 @@ const (
|
||||
DISABLED = -1
|
||||
B2BTag = "B2B"
|
||||
B2BNumberId = 10
|
||||
ServerTypeVegetable = "prod"
|
||||
ServerTypeFruits = "jxgy"
|
||||
ServerTypePet = "jxpet"
|
||||
)
|
||||
|
||||
const (
|
||||
|
||||
@@ -2047,9 +2047,11 @@ func GetDetailStoreSkuCategoryMap(db *DaoDB, storeId int) (storeSkuCategoryMap [
|
||||
sqlParams = append(sqlParams, storeId)
|
||||
} else {
|
||||
switch beego.BConfig.RunMode {
|
||||
case "jxgy":
|
||||
case model.ServerTypeFruits:
|
||||
storeId = 0
|
||||
case "dev":
|
||||
case model.ServerTypePet:
|
||||
storeId = 0
|
||||
case model.ServerTypeVegetable:
|
||||
storeId = 668469 // 测试服芬姐(淘宝所有门店公用分类)
|
||||
default:
|
||||
storeId = 668594 // 正式服印象汇
|
||||
|
||||
@@ -90,8 +90,11 @@ func (c *DeliveryHandler) OnWaybillExcept(msg *mtpsapi.CallbackOrderExceptionMsg
|
||||
func (c *DeliveryHandler) onWaybillMsg(msg *mtpsapi.CallbackOrderMsg) (retVal *mtpsapi.CallbackResponse) {
|
||||
order, goodsOrder := c.callbackMsg2Waybill(msg)
|
||||
//查不到订单可能就是果园的订单
|
||||
if goodsOrder == nil && beego.BConfig.RunMode != "jxgy" {
|
||||
c.pushToGy(msg)
|
||||
if goodsOrder == nil && beego.BConfig.RunMode == model.ServerTypeVegetable {
|
||||
c.pushToGy(msg, model.ServerTypeFruits)
|
||||
return mtpsapi.SuccessResponse
|
||||
} else if goodsOrder == nil && beego.BConfig.RunMode == model.ServerTypeFruits {
|
||||
c.pushToGy(msg, model.ServerTypePet)
|
||||
return mtpsapi.SuccessResponse
|
||||
}
|
||||
// 多次取消,送达,只处理第一次
|
||||
@@ -195,7 +198,7 @@ func pushMTPSToTiktok(msgStatus int, order *model.Waybill, lng, lat, vendorOrgCo
|
||||
}
|
||||
}
|
||||
|
||||
func (c *DeliveryHandler) pushToGy(msg *mtpsapi.CallbackOrderMsg) {
|
||||
func (c *DeliveryHandler) pushToGy(msg *mtpsapi.CallbackOrderMsg, serverType string) {
|
||||
cl := http.Client{}
|
||||
params := make(map[string]interface{})
|
||||
params["mt_peisong_id"] = msg.MtPeisongID
|
||||
@@ -211,10 +214,22 @@ func (c *DeliveryHandler) pushToGy(msg *mtpsapi.CallbackOrderMsg) {
|
||||
urls := utils.Map2URLValues(params)
|
||||
sign := signParams(urls)
|
||||
params["sign"] = sign
|
||||
request, err := http.NewRequest(http.MethodPost, "http://callback-jxgy.jxc4.com/mtps/status", strings.NewReader(utils.Map2URLValues(params).Encode()))
|
||||
|
||||
var request *http.Request
|
||||
var err error
|
||||
switch serverType {
|
||||
case model.ServerTypeFruits:
|
||||
request, err = http.NewRequest(http.MethodPost, "http://callback-jxgy.jxc4.com/mtps/status", strings.NewReader(utils.Map2URLValues(params).Encode()))
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
case model.ServerTypePet:
|
||||
request, err = http.NewRequest(http.MethodPost, "http://callback-jxpet.jxc4.com/mtps/status", strings.NewReader(utils.Map2URLValues(params).Encode()))
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
request.Header.Set("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8")
|
||||
cl.Do(request)
|
||||
}
|
||||
|
||||
@@ -391,8 +391,12 @@ func OnWaybillMsg(urlIndex string, msg interface{}) (resp *sfps2.CallbackRespons
|
||||
|
||||
order, goodsOrder := GetWaybillByStatus(urlIndex, msg)
|
||||
//判断是否是果园
|
||||
if goodsOrder == nil && beego.BConfig.RunMode != "jxgy" {
|
||||
pushCallbackToGy(urlIndex, msg)
|
||||
if goodsOrder == nil && beego.BConfig.RunMode == model.ServerTypeVegetable {
|
||||
pushCallbackToGy(urlIndex, msg, model.ServerTypeFruits)
|
||||
return sfps2.SuccessResponse
|
||||
}
|
||||
if goodsOrder == nil && beego.BConfig.RunMode == model.ServerTypeFruits {
|
||||
pushCallbackToGy(urlIndex, msg, model.ServerTypePet)
|
||||
return sfps2.SuccessResponse
|
||||
}
|
||||
//多次取消回调只取第一次
|
||||
@@ -470,7 +474,7 @@ func OnWaybillMsg(urlIndex string, msg interface{}) (resp *sfps2.CallbackRespons
|
||||
}
|
||||
|
||||
//转发到果园
|
||||
func pushCallbackToGy(urlIndex string, msg interface{}) {
|
||||
func pushCallbackToGy(urlIndex string, msg interface{}, serverType string) {
|
||||
var (
|
||||
err error
|
||||
client = &http.Client{}
|
||||
@@ -478,7 +482,7 @@ func pushCallbackToGy(urlIndex string, msg interface{}) {
|
||||
)
|
||||
|
||||
b, _ := json.Marshal(msg)
|
||||
|
||||
if serverType == model.ServerTypeFruits {
|
||||
switch urlIndex {
|
||||
case sfps2.UrlIndexRiderException:
|
||||
request, err = http.NewRequest(http.MethodPost, "http://callback-jxgy.jxc4.com/SFPS/SfAbnormal", strings.NewReader(string(b)))
|
||||
@@ -487,6 +491,16 @@ func pushCallbackToGy(urlIndex string, msg interface{}) {
|
||||
//request, err = http.NewRequest(http.MethodPost, fullUrl, strings.NewReader(string(b)))
|
||||
request, err = http.NewRequest(http.MethodPost, "http://callback-jxgy.jxc4.com/SFPS/SfOrder", strings.NewReader(string(b)))
|
||||
}
|
||||
} else if serverType == model.ServerTypePet {
|
||||
switch urlIndex {
|
||||
case sfps2.UrlIndexRiderException:
|
||||
request, err = http.NewRequest(http.MethodPost, "http://callback-jxpet.jxc4.com/SFPS/SfAbnormal", strings.NewReader(string(b)))
|
||||
default:
|
||||
//fullUrl := utils.GenerateGetURL("http://callback-jxgy.jxc4.com/SFPS/SfOrder", "", map[string]interface{}{"sign": sign})
|
||||
//request, err = http.NewRequest(http.MethodPost, fullUrl, strings.NewReader(string(b)))
|
||||
request, err = http.NewRequest(http.MethodPost, "http://callback-jxpet.jxc4.com/SFPS/SfOrder", strings.NewReader(string(b)))
|
||||
}
|
||||
}
|
||||
|
||||
if err != nil {
|
||||
globals.SugarLogger.Debugf("pushCallbackToGy req err=%v", err)
|
||||
|
||||
@@ -368,7 +368,7 @@ func (p *PurchaseHandler) AcceptOrRefuseOrder(order *model.GoodsOrder, isAcceptI
|
||||
if isAcceptIt {
|
||||
if globals.EnableEbaiStoreWrite {
|
||||
err = api.EbaiAPI.OrderConfirm(order.VendorOrderID)
|
||||
if beego.BConfig.RunMode == "jxgy" {
|
||||
if beego.BConfig.RunMode == model.ServerTypeFruits || beego.BConfig.RunMode == model.ServerTypePet {
|
||||
utils.AfterFuncWithRecover(time.Minute*10, func() {
|
||||
err = api.EbaiAPI.OrderPickComplete(order.VendorOrderID)
|
||||
})
|
||||
@@ -502,6 +502,15 @@ func (p *PurchaseHandler) SelfDeliverDelivering(order *model.GoodsOrder, userNam
|
||||
err = api.EbaiAPI.OrderselfDeliveryStateSync2(param2)
|
||||
}
|
||||
if err == nil {
|
||||
if order.VendorID == model.VendorIDEBAI && strings.Contains(order.ConsigneeAddress, "隐私保护") {
|
||||
// 部分订单在隐私条约的保护下会隐藏用户收货地址,转自送成功自后才可以获取到正确的地址.
|
||||
orderMap, err := api.EbaiAPI.OrderGet(order.VendorOrderID)
|
||||
if err == nil {
|
||||
userMap := orderMap["user"].(map[string]interface{})
|
||||
order.ConsigneeAddress = utils.Interface2String(userMap["address"])
|
||||
partner.CurOrderManager.UpdateOrderFields(order, []string{"ConsigneeAddress"})
|
||||
}
|
||||
}
|
||||
// 饿百不会发送配送中,模拟发送
|
||||
p.postFakeMsg(order.VendorOrderID, ebaiapi.OrderStatusCourierAccepted)
|
||||
}
|
||||
|
||||
@@ -25,7 +25,7 @@ const (
|
||||
)
|
||||
|
||||
func getDefJdCategoryID() int {
|
||||
if beego.BConfig.RunMode == "jxgy" {
|
||||
if beego.BConfig.RunMode == model.ServerTypeFruits {
|
||||
return DefJdCategoryID4Jxgy
|
||||
}
|
||||
return DefJdCategoryID
|
||||
|
||||
@@ -55,8 +55,10 @@ func pay4OrderByKs(ctx *jxcontext.Context, order *model.GoodsOrder, vendorPayTyp
|
||||
CancelOrder: 0,
|
||||
}
|
||||
|
||||
if beego.BConfig.RunMode == "jxgy" {
|
||||
if beego.BConfig.RunMode == model.ServerTypeFruits {
|
||||
param.NotifyUrl = "https://callback-jxgy.jxc4.com/kuaishou/kuaiShouCallback"
|
||||
} else if beego.BConfig.RunMode == model.ServerTypePet {
|
||||
param.NotifyUrl = "https://callback.jxpet.com/kuaishou/kuaiShouCallback"
|
||||
} else {
|
||||
param.NotifyUrl = "https://callback.jxc4.com/kuaishou/kuaiShouCallback"
|
||||
}
|
||||
|
||||
@@ -66,14 +66,18 @@ func GetVendorAppIdFromMsg(msg *mtwmapi.CallbackMsg) string {
|
||||
// OnImMsg im消息回调
|
||||
func OnImMsg(msg *mtwmapi.ImCallbackMsg) (response *mtwmapi.CallbackResponse) {
|
||||
if str, err := json.Marshal(msg.PushContent); err == nil {
|
||||
if beego.BConfig.RunMode != "jxgy" {
|
||||
var PushContentReq = mtwmapi.PushContentReq{}
|
||||
if err = json.Unmarshal(str, &PushContentReq); err != nil {
|
||||
return mtwmapi.SignatureIsNotOk
|
||||
}
|
||||
storeDetail, err2 := dao.GetStoreDetailByVendorStoreID(dao.GetDB(), PushContentReq.AppPoiCode, model.VendorIDMTWM, utils.Int2Str(PushContentReq.AppID))
|
||||
if err2 != nil || storeDetail == nil {
|
||||
pushIMToGy(msg)
|
||||
switch beego.BConfig.RunMode {
|
||||
case model.ServerTypeFruits:
|
||||
pushIMToGyOrPet(msg, model.ServerTypePet)
|
||||
return mtwmapi.SuccessResponse
|
||||
case model.ServerTypeVegetable:
|
||||
pushIMToGyOrPet(msg, model.ServerTypeFruits)
|
||||
return mtwmapi.SuccessResponse
|
||||
}
|
||||
}
|
||||
@@ -87,18 +91,32 @@ func OnImMsg(msg *mtwmapi.ImCallbackMsg) (response *mtwmapi.CallbackResponse) {
|
||||
return mtwmapi.SuccessResponse
|
||||
}
|
||||
|
||||
func pushIMToGy(msg *mtwmapi.ImCallbackMsg) {
|
||||
cl := http.Client{}
|
||||
func pushIMToGyOrPet(msg *mtwmapi.ImCallbackMsg, serverType string) {
|
||||
var (
|
||||
cl = http.Client{}
|
||||
request = &http.Request{}
|
||||
err error
|
||||
)
|
||||
params := make(map[string]interface{})
|
||||
params["timestamp"] = msg.Timestamp
|
||||
params["sign"] = msg.Sig
|
||||
params["app_id"] = msg.AppID
|
||||
params["biz_type"] = msg.BizType
|
||||
params["push_content"] = msg.PushContent
|
||||
request, err := http.NewRequest(http.MethodPost, "http://callback-jxgy.jxc4.com/mtwm/iMCallback", strings.NewReader(utils.Map2URLValues(params).Encode()))
|
||||
|
||||
switch serverType {
|
||||
case model.ServerTypeFruits:
|
||||
request, err = http.NewRequest(http.MethodPost, "http://callback-jxgy.jxc4.com/mtwm/iMCallback", strings.NewReader(utils.Map2URLValues(params).Encode()))
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
case model.ServerTypePet:
|
||||
request, err = http.NewRequest(http.MethodPost, "http://callback-jxpet.jxc4.com/mtwm/iMCallback", strings.NewReader(utils.Map2URLValues(params).Encode()))
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
request.Header.Set("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8")
|
||||
cl.Do(request)
|
||||
}
|
||||
|
||||
@@ -343,8 +343,11 @@ func (p *PurchaseHandler) onStoreStatusChanged(msg *mtwmapi.CallbackMsg) (respon
|
||||
}
|
||||
|
||||
if err == nil && storeStatus == model.StoreStatusDisabled {
|
||||
if beego.BConfig.RunMode == "jxgy" {
|
||||
if beego.BConfig.RunMode == model.ServerTypeFruits {
|
||||
ddmsg.SendUserMessage(dingdingapi.MsgTyeText, model.DefaultUserIdGuoYuan, "美团果园门店下线通知", fmt.Sprintf("果园美团门店被下线了:门店id[%s],平台门店id[%s]", "暂未获取", vendorStoreID))
|
||||
} else if beego.BConfig.RunMode == model.ServerTypePet {
|
||||
// todo 暂无服务部署,后面补
|
||||
//ddmsg.SendUserMessage(dingdingapi.MsgTyeText, model.DefaultUserIdGuoYuan, "美团果园门店下线通知", fmt.Sprintf("果园美团门店被下线了:门店id[%s],平台门店id[%s]", "暂未获取", vendorStoreID))
|
||||
} else {
|
||||
ddmsg.SendUserMessage(dingdingapi.MsgTyeText, model.DefaultUserIdCaiShi, "美团果菜市店下线通知", fmt.Sprintf("菜市美团门店被下线了:门店id[%s],平台门店id[%s]", "暂未获取", vendorStoreID))
|
||||
}
|
||||
@@ -511,8 +514,11 @@ func (c *PurchaseHandler) UpdateStoreLineStatus(ctx *jxcontext.Context, vendorOr
|
||||
err = mtwmApi.PoiOffline(vendorStoreID)
|
||||
// 通知给石锋
|
||||
switch beego.BConfig.RunMode {
|
||||
case "jxgy":
|
||||
case model.ServerTypeFruits:
|
||||
err = ddmsg.SendUserMessage(dingdingapi.MsgTyeText, model.DefaultUserIdGuoYuan, fmt.Sprintf("(果园)美团门店被关闭了:门店id[%d],平台门店id[%s]", storeID, vendorStoreID), "!")
|
||||
case model.ServerTypePet:
|
||||
// todo 暂无服务器部署
|
||||
//err = ddmsg.SendUserMessage(dingdingapi.MsgTyeText, model.DefaultUserIdGuoYuan, fmt.Sprintf("(果园)美团门店被关闭了:门店id[%d],平台门店id[%s]", storeID, vendorStoreID), "!")
|
||||
default:
|
||||
err = ddmsg.SendUserMessage(dingdingapi.MsgTyeText, model.DefaultUserIdCaiShi, fmt.Sprintf("(菜市)美团门店被关闭了:门店id[%d],平台门店id[%s]", storeID, vendorStoreID), "!")
|
||||
}
|
||||
|
||||
@@ -9,6 +9,7 @@ import (
|
||||
"git.rosy.net.cn/jx-callback/business/model/dao"
|
||||
"git.rosy.net.cn/jx-callback/globals"
|
||||
"git.rosy.net.cn/jx-callback/globals/api"
|
||||
beego "github.com/astaxie/beego/server/web"
|
||||
"io/ioutil"
|
||||
"net/http"
|
||||
"strings"
|
||||
@@ -40,10 +41,11 @@ func OnOrderMsg(msgId string, msg interface{}) (response *tiktokShop.CallbackRes
|
||||
if vendorStoreID != "" {
|
||||
storeDetail, err := dao.GetStoreDetailByVendorStoreID(dao.GetDB(), vendorStoreID, model.VendorIDDD, "")
|
||||
if err != nil || storeDetail == nil || storeDetail.Store.ID == 0 {
|
||||
// 当前订单所属门店不属于菜市时,将消息推送到果园
|
||||
gyMsg := map[string]interface{}{"tag": msgId, "msg_id": utils.Int64ToStr(time.Now().Unix()) + msgId, "data": msg}
|
||||
// 通知到果园
|
||||
gyResult, err := HttpToGuoYuan(gyMsg, CaiShiPushGyTagOrder)
|
||||
switch beego.BConfig.RunMode {
|
||||
case model.ServerTypeFruits:
|
||||
// 当前订单所属门店不属于菜市时,将消息推送到果园
|
||||
gyResult, err := HttpToGuoYuan(gyMsg, CaiShiPushGyTagOrder, model.ServerTypePet)
|
||||
if err != nil {
|
||||
return tiktokShop.Err2CallbackResponse(err, "")
|
||||
}
|
||||
@@ -53,6 +55,21 @@ func OnOrderMsg(msgId string, msg interface{}) (response *tiktokShop.CallbackRes
|
||||
return tiktokShop.Err2CallbackResponse(err2, "")
|
||||
}
|
||||
return guoYuan
|
||||
case model.ServerTypeVegetable:
|
||||
// 当前订单所属门店不属于菜市时,将消息推送到果园
|
||||
gyResult, err := HttpToGuoYuan(gyMsg, CaiShiPushGyTagOrder, model.ServerTypeFruits)
|
||||
if err != nil {
|
||||
return tiktokShop.Err2CallbackResponse(err, "")
|
||||
}
|
||||
result, _ := ioutil.ReadAll(gyResult.Body)
|
||||
var guoYuan *tiktokShop.CallbackResponse
|
||||
if err2 := json.Unmarshal(result, guoYuan); err2 != nil {
|
||||
return tiktokShop.Err2CallbackResponse(err2, "")
|
||||
}
|
||||
return guoYuan
|
||||
case model.ServerTypePet:
|
||||
return nil
|
||||
}
|
||||
}
|
||||
}
|
||||
jxutils.CallMsgHandler(func() {
|
||||
@@ -64,7 +81,9 @@ func OnOrderMsg(msgId string, msg interface{}) (response *tiktokShop.CallbackRes
|
||||
return response
|
||||
}
|
||||
|
||||
func HttpToGuoYuan(param map[string]interface{}, requestType string) (*http.Response, error) {
|
||||
// HttpToGuoYuan 暂时还未开通果园和宠物的抖音
|
||||
func HttpToGuoYuan(param map[string]interface{}, requestType string, serverType string) (*http.Response, error) {
|
||||
return nil, nil
|
||||
var paramData []byte
|
||||
var err error
|
||||
if requestType == "order" || requestType == "waybill" {
|
||||
@@ -81,6 +100,7 @@ func HttpToGuoYuan(param map[string]interface{}, requestType string) (*http.Resp
|
||||
}
|
||||
body := strings.NewReader(string(paramData))
|
||||
url := ""
|
||||
if serverType == model.ServerTypeFruits {
|
||||
switch requestType {
|
||||
case CaiShiPushGyTagOrder: // 订单相关
|
||||
url = "http://callback-jxgy.jxc4.com/tiktok/callbackTiktokOrderMsg"
|
||||
@@ -93,6 +113,21 @@ func HttpToGuoYuan(param map[string]interface{}, requestType string) (*http.Resp
|
||||
case CaiShiPushGyTagWayBill: // 运单消息
|
||||
url = "http://callback-jxgy.jxc4.com/tiktok/callbackTiktokOrderMsg"
|
||||
}
|
||||
} else if serverType == model.ServerTypePet {
|
||||
switch requestType {
|
||||
case CaiShiPushGyTagOrder: // 订单相关
|
||||
url = "http://callback-jxpet.jxc4.com/tiktok/callbackTiktokOrderMsg"
|
||||
case CaiShiPushGyTagToken: // 授权相关
|
||||
url = "http://callback-jxpet.jxc4.com/tiktokShop/jxcsToGyTiktokToken"
|
||||
case CaiShiPushGyTagDeliveryRegister: // 配送查询注册
|
||||
url = "http://callback-jxpet.jxc4.com/logistics/logisticsRegister"
|
||||
case CaiShiPushGyTagDeliveryDetail: // 配送查询详情
|
||||
url = "http://callback-jxpet.jxc4.com/logistics/logisticsQuery"
|
||||
case CaiShiPushGyTagWayBill: // 运单消息
|
||||
url = "http://callback-jxpet.jxc4.com/tiktok/callbackTiktokOrderMsg"
|
||||
}
|
||||
}
|
||||
|
||||
httpReq, err := http.NewRequest(http.MethodPost, url, body)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
|
||||
@@ -170,11 +170,7 @@ func (c *Auth2Controller) Login() {
|
||||
// @router /GetTokenInfo [get]
|
||||
func (c *Auth2Controller) GetTokenInfo() {
|
||||
c.callGetTokenInfo(func(params *tAuth2GetTokenInfoParams) (retVal interface{}, errCode string, err error) {
|
||||
if true { //auth2.IsV2Token(params.Token) {
|
||||
retVal, err = auth2.GetTokenInfo(params.Token)
|
||||
} else {
|
||||
// retVal, err = auth.GetUserInfo(params.Token)
|
||||
}
|
||||
if err == model.ErrTokenIsInvalid {
|
||||
errCode = model.ErrCodeTokenIsInvalid
|
||||
}
|
||||
|
||||
@@ -10,6 +10,7 @@ import (
|
||||
"git.rosy.net.cn/jx-callback/business/partner/purchase/tiktok_store"
|
||||
"github.com/astaxie/beego/server/web"
|
||||
"io/ioutil"
|
||||
"net/http"
|
||||
"time"
|
||||
)
|
||||
|
||||
@@ -60,25 +61,30 @@ func (c *LogisticsController) LogisticsRegister() {
|
||||
data, err := dao.GetWayBillsByWayBillId(dao.GetDB(), register.TrackNo)
|
||||
|
||||
// 此订单可能是果园订单
|
||||
if web.BConfig.RunMode != "jxgy" && (len(data) == 0 || err != nil) {
|
||||
resp, err := tiktok_store.HttpToGuoYuan(utils.Struct2Map(register, "", true), tiktok_store.CaiShiPushGyTagDeliveryRegister)
|
||||
if len(data) == 0 || err != nil {
|
||||
var resp *http.Response
|
||||
var err error
|
||||
switch web.BConfig.RunMode {
|
||||
case model.ServerTypeVegetable:
|
||||
resp, err = tiktok_store.HttpToGuoYuan(utils.Struct2Map(register, "", true), tiktok_store.CaiShiPushGyTagDeliveryRegister, model.ServerTypeFruits)
|
||||
if err != nil {
|
||||
c.Data["json"] = LogisticsRegisterResp{
|
||||
Result: false,
|
||||
ReturnCode: "1002",
|
||||
Message: "单号不存在",
|
||||
}
|
||||
c.Data["json"] = LogisticsQueryRestMsg("单号不存在", "1002")
|
||||
c.ServeJSON()
|
||||
return
|
||||
}
|
||||
case model.ServerTypeFruits:
|
||||
resp, err = tiktok_store.HttpToGuoYuan(utils.Struct2Map(register, "", true), tiktok_store.CaiShiPushGyTagDeliveryRegister, model.ServerTypePet)
|
||||
if err != nil {
|
||||
c.Data["json"] = LogisticsQueryRestMsg("单号不存在", "1002")
|
||||
c.ServeJSON()
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
gyData := &LogisticsRegisterResp{}
|
||||
gyBody, _ := ioutil.ReadAll(resp.Body)
|
||||
if err := json.Unmarshal(gyBody, gyData); err != nil {
|
||||
c.Data["json"] = LogisticsRegisterResp{
|
||||
Result: false,
|
||||
ReturnCode: "1002",
|
||||
Message: "单号不存在",
|
||||
}
|
||||
c.Data["json"] = LogisticsQueryRestMsg("单号不存在", "1002")
|
||||
c.ServeJSON()
|
||||
return
|
||||
}
|
||||
@@ -86,16 +92,6 @@ func (c *LogisticsController) LogisticsRegister() {
|
||||
c.ServeJSON()
|
||||
}
|
||||
|
||||
if len(data) == 0 || err != nil {
|
||||
c.Data["json"] = LogisticsRegisterResp{
|
||||
Result: false,
|
||||
ReturnCode: "1002",
|
||||
Message: "单号不存在",
|
||||
}
|
||||
c.ServeJSON()
|
||||
return
|
||||
}
|
||||
|
||||
c.Data["json"] = LogisticsRegisterResp{
|
||||
Result: true,
|
||||
ReturnCode: "200",
|
||||
@@ -159,46 +155,47 @@ func (c *LogisticsController) LogisticsQuery() {
|
||||
body, _ := ioutil.ReadAll(c.Ctx.Request.Body)
|
||||
param := &LogisticsQueryReq{}
|
||||
if err := json.Unmarshal(body, param); err != nil {
|
||||
c.Data["json"] = LogisticsQueryRest{
|
||||
Result: false,
|
||||
ReturnCode: "1005",
|
||||
Message: "数据解析错误",
|
||||
}
|
||||
c.Data["json"] = LogisticsQueryRestMsg("数据解析错误", "1005")
|
||||
c.ServeJSON()
|
||||
return
|
||||
}
|
||||
|
||||
if param.TrackNo == "" {
|
||||
c.Data["json"] = LogisticsQueryRest{
|
||||
Result: false,
|
||||
ReturnCode: "1002",
|
||||
Message: "运单账号不存在",
|
||||
}
|
||||
c.Data["json"] = LogisticsQueryRestMsg("运单账号不存在", "1002")
|
||||
c.ServeJSON()
|
||||
return
|
||||
}
|
||||
|
||||
// 查询订单的运单是否存在
|
||||
data, err := dao.GetWayBillsByWayBillId(dao.GetDB(), param.TrackNo)
|
||||
if (err != nil || len(data) == 0) && web.BConfig.RunMode != "jxgy" {
|
||||
resp, err := tiktok_store.HttpToGuoYuan(utils.Struct2Map(param, "", true), tiktok_store.CaiShiPushGyTagDeliveryDetail)
|
||||
if err != nil || len(data) == 0 {
|
||||
var resp *http.Response
|
||||
var err error
|
||||
switch web.BConfig.RunMode {
|
||||
case model.ServerTypeVegetable:
|
||||
resp, err = tiktok_store.HttpToGuoYuan(utils.Struct2Map(param, "", true), tiktok_store.CaiShiPushGyTagDeliveryDetail, model.ServerTypeFruits)
|
||||
if err != nil {
|
||||
c.Data["json"] = LogisticsQueryRest{
|
||||
Result: false,
|
||||
ReturnCode: "1002",
|
||||
Message: "运单账号不存在",
|
||||
}
|
||||
c.Data["json"] = LogisticsQueryRestMsg("运单账号不存在", "1002")
|
||||
c.ServeJSON()
|
||||
return
|
||||
}
|
||||
case model.ServerTypeFruits:
|
||||
resp, err = tiktok_store.HttpToGuoYuan(utils.Struct2Map(param, "", true), tiktok_store.CaiShiPushGyTagDeliveryDetail, model.ServerTypePet)
|
||||
if err != nil {
|
||||
c.Data["json"] = LogisticsQueryRestMsg("运单账号不存在", "1002")
|
||||
c.ServeJSON()
|
||||
return
|
||||
}
|
||||
case "jxpet":
|
||||
c.Data["json"] = LogisticsQueryRestMsg("运单账号不存在", "1002")
|
||||
c.ServeJSON()
|
||||
return
|
||||
}
|
||||
|
||||
wayBillDetail := &LogisticsQueryRest{}
|
||||
gyBody, _ := ioutil.ReadAll(resp.Body)
|
||||
if err := json.Unmarshal(gyBody, wayBillDetail); err != nil {
|
||||
c.Data["json"] = LogisticsQueryRest{
|
||||
Result: false,
|
||||
ReturnCode: "1002",
|
||||
Message: "json unmarshal",
|
||||
}
|
||||
c.Data["json"] = LogisticsQueryRestMsg("json unmarshal", "1002")
|
||||
c.ServeJSON()
|
||||
return
|
||||
}
|
||||
@@ -271,4 +268,19 @@ func (c *LogisticsController) LogisticsQuery() {
|
||||
c.ServeJSON()
|
||||
}
|
||||
|
||||
func LogisticsQueryRestMsg(err string, errCode string) LogisticsQueryRest {
|
||||
if err == "" {
|
||||
return LogisticsQueryRest{
|
||||
Result: false,
|
||||
ReturnCode: errCode,
|
||||
Message: err,
|
||||
}
|
||||
}
|
||||
return LogisticsQueryRest{
|
||||
Result: false,
|
||||
ReturnCode: "1002",
|
||||
Message: "json unmarshal",
|
||||
}
|
||||
}
|
||||
|
||||
//#endregion
|
||||
|
||||
@@ -13,8 +13,10 @@ func Init() {
|
||||
//正式服务器
|
||||
orm.RegisterDataBase("default", "mysql", web.AppConfig.DefaultString("dbConnectStr", ""))
|
||||
orm.RegisterDataBase("c4beta", "mysql", "ubuntu:WebServer@1@tcp(111.231.218.230:3306)/jxd_dev_0?charset=utf8mb4&loc=Local&parseTime=true")
|
||||
orm.RegisterDataBase("api", "mysql", "root:WebServer@1@tcp(127.0.0.1:3306)/api?charset=utf8mb4&loc=Local&parseTime=true")
|
||||
|
||||
err := orm.RegisterDataBase("api", "mysql", "root:WebServer@1@tcp(127.0.0.1:3306)/api?charset=utf8mb4&loc=Local&parseTime=true")
|
||||
if err != nil {
|
||||
globals.SugarLogger.Debugf("db err %v", err)
|
||||
}
|
||||
// 本地测试服调试
|
||||
//orm.RegisterDataBase("default", "mysql", web.AppConfig.DefaultString("dbConnectStr", ""))
|
||||
//orm.RegisterDataBase("c4beta", "mysql", "ubuntu:WebServer@1@tcp(127.0.0.1:3306)/jxd_dev_0?charset=utf8mb4&loc=Local&parseTime=true")
|
||||
|
||||
@@ -181,9 +181,9 @@ func IsCallbackAlwaysReturnSuccess() bool {
|
||||
}
|
||||
|
||||
func IsMainProductEnv() bool {
|
||||
return web.BConfig.RunMode == "prod"
|
||||
return web.BConfig.RunMode == "prod" // model.ServerTypeVegetable
|
||||
}
|
||||
|
||||
func IsProductEnv() bool {
|
||||
return IsMainProductEnv() || web.BConfig.RunMode == "jxgy"
|
||||
return IsMainProductEnv() || web.BConfig.RunMode == "jxgy" || web.BConfig.RunMode == "jxpet"
|
||||
}
|
||||
|
||||
3
main.go
3
main.go
@@ -3,6 +3,7 @@ package main
|
||||
import (
|
||||
"flag"
|
||||
"fmt"
|
||||
"git.rosy.net.cn/jx-callback/business/model"
|
||||
"net/http"
|
||||
_ "net/http/pprof"
|
||||
"os"
|
||||
@@ -154,7 +155,7 @@ func main() {
|
||||
return
|
||||
}
|
||||
|
||||
if web.BConfig.RunMode != "jxgy" && web.BConfig.RunMode != "jxpet" {
|
||||
if web.BConfig.RunMode != model.ServerTypeFruits && web.BConfig.RunMode != model.ServerTypePet {
|
||||
if err := tasks.RefreshFnToken(); err != nil {
|
||||
globals.SugarLogger.Errorf("RefreshFnToken failed with error:%s", err)
|
||||
return
|
||||
|
||||
Reference in New Issue
Block a user