Merge branch 'jdshop' of https://e.coding.net/rosydev/jx-callback into jdshop

This commit is contained in:
richboo111
2023-08-09 10:35:14 +08:00
15 changed files with 420 additions and 579 deletions

View File

@@ -2686,17 +2686,16 @@ func UpdateTiktokShopTotalMoney() {
func UpdateTaoSettleInfo() {
db := dao.GetDB()
storeMaps, err := dao.GetStoresMapList(db, []int{model.VendorIDTaoVegetable}, []int{667321}, nil, -9, -1, "", "", "")
storeMaps, err := dao.GetStoresMapList(db, []int{model.VendorIDTaoVegetable}, nil, nil, -9, -1, "", "", "")
if err != nil {
return
}
globals.SugarLogger.Debugf("GetStoresMapList ========== %s", utils.Format4Output(storeMaps, false))
timeStart := time.Now().Add(-72 * time.Hour)
timeStart := time.Now().Add(-24 * 90 * time.Hour)
startTime := time.Date(timeStart.Year(), timeStart.Month(), timeStart.Day(), 0, 0, 0, 0, timeStart.Location())
timeEnd := time.Now()
endTiem := time.Date(timeEnd.Year(), timeEnd.Month(), timeEnd.Day()-1, 23, 59, 59, 0, timeStart.Location())
for _, v := range storeMaps {
globals.SugarLogger.Debugf("=============UpdateTaoSettleInfo := %s", utils.Format4Output(v, false))
settleInfo, err := tao.GetOrderTotalShopMoney(v.VendorOrgCode, v.VendorStoreID, startTime, endTiem)
if err != nil {
globals.SugarLogger.Errorf("获取淘鲜达结算信息异常 := %v", err)
@@ -2708,7 +2707,6 @@ func UpdateTaoSettleInfo() {
}
for orderId2, settle := range settleInfo {
globals.SugarLogger.Debugf("=============settleInfo := %s,%s", utils.Format4Output(orderId2, false), settle)
goodsOrder, err := partner.CurOrderManager.LoadOrder2(orderId2, model.VendorIDTaoVegetable)
if err != nil || goodsOrder == nil {
globals.SugarLogger.Debugf("门店[%d:%s],订单查询异常[%s:%v]", v.StoreID, v.StoreName, orderId2, err)
@@ -2728,160 +2726,11 @@ func UpdateTaoSettleInfo() {
}
}
}
if _, err := dao.UpdateEntity(db, v, "TotalShopMoney", "NewEarningPrice"); err != nil {
globals.SugarLogger.Debugf("更新本地订单结算信息 := %s,%d", goodsOrder.VendorOrderID, goodsOrder.TotalShopMoney)
if _, err := dao.UpdateEntity(db, goodsOrder, "TotalShopMoney", "NewEarningPrice"); err != nil {
globals.SugarLogger.Errorf("更新本地订单结算信息错误 : %s", err)
continue
}
}
}
}
var storeList = []int64{
//669053,
//103074,
//668985,
//103065,
//668960,
//668959,
//668953,
//103029,
//668949,
//103002,
//102999,
//668932,
//668931,
//668917,
//102969,
//102966,
//668909,
//668908,
//668905,
//668901,
//102946,
//102939,
//102938,
//668894,
//102934,
//102933,
//102930,
//668884,
//668878,
//102903,
//668757,
//102293,
//668622,
//668618,
//668592,
//100945,
//668583,
//100943,
//100935,
//100905,
//668498,
//668476,
//668462,
//100309,
100299,
100292,
668276,
668180,
667320,
667237,
667036,
668691,
668673,
668282,
667447,
667354,
667335,
667319,
667316,
667269,
667268,
667267,
667260,
667132,
667030,
666965,
666714,
666708,
666705,
103437,
103349,
103123,
103121,
103106,
103038,
103028,
103019,
102831,
102751,
102683,
102542,
102514,
102382,
102182,
102178,
102173,
102098,
102094,
102080,
102072,
102069,
101870,
101869,
101868,
101867,
101866,
101865,
100956,
100930,
100871,
100786,
100746,
100744,
100705,
100400,
100111,
100108,
100106,
100104,
100103,
100102,
100100,
100097,
100096,
100095,
100093,
100092,
100089,
100087,
100086,
100085,
100083,
100082,
100081,
100079,
100078,
}
func UpdateTaoSkuUpdateOffShelf() {
// 标准模板店
//skuCodeList := dao.GetStoreSkuBindList(dao.GetDB(), 100102)
for _, storeId := range storeList {
ddmsg.SendUserMessage(dingdingapi.MsgTyeText, "2452A93EEB9111EC9B06525400E86DC0", "开始下架:", utils.Int64ToStr(storeId))
storeSkuMap := dao.GetStoreSkuBindList(dao.GetDB(), storeId)
resultErr := tao.UpdateStoreSku(storeId, storeSkuMap)
if len(resultErr) > 0 {
ddmsg.SendUserMessage(dingdingapi.MsgTyeText, "2452A93EEB9111EC9B06525400E86DC0", "下架商品错误消息:", utils.Format4Output(resultErr, false))
}
}
//for _,storeId := range storeList {
// resultErr := tao.UpdateStoreSkuGrounding(storeId, skuCodeList)
// if len(resultErr) > 0 {
// ddmsg.SendUserMessage(dingdingapi.MsgTyeText, "2452A93EEB9111EC9B06525400E86DC0", "上架架商品错误消息:", utils.Format4Output(resultErr, false))
// }
//}
}

View File

@@ -982,7 +982,6 @@ func (s *DefScheduler) createWaybillOn3rdProviders(savedOrderInfo *WatchOrderInf
break
}
}
partner.CurOrderManager.OnOrderMsg(order, fmt.Sprintf("发起自动创建三方运单,目标创建运单平台[%s],排除平台[%s]", jxutils.GetVendorName(vendorID), utils.Format4Output(excludeVendorIDs, false)), "")
if _, err = s.CreateWaybillOnProviders4SavedOrder(jxcontext.AdminCtx, savedOrderInfo, nil, excludeVendorIDs, false, maxDeliveryFee); err == nil {
savedOrderInfo.retryCount++
} else {

View File

@@ -32,9 +32,19 @@ func (s *DefScheduler) OnAfsOrderNew(order *model.AfsOrder, isPending bool) (err
}
}
}
msghub.OnNewWait4ApproveAfsOrder(order)
weixinmsg.NotifyAfsOrderStatus(order)
push.NotifyAfsOrder(order)
if order != nil && order.VendorID == model.VendorIDTaoVegetable {
result, _ := dao.GetAfsOrders(dao.GetDB(), model.VendorIDTaoVegetable, order.VendorOrderID, "")
if len(result) <= model.YES {
msghub.OnNewWait4ApproveAfsOrder(order)
weixinmsg.NotifyAfsOrderStatus(order)
push.NotifyAfsOrder(order)
}
} else {
msghub.OnNewWait4ApproveAfsOrder(order)
weixinmsg.NotifyAfsOrderStatus(order)
push.NotifyAfsOrder(order)
}
// 京西云打印机打印数据-如果门店使用京西打印机才使用如下代码块
store, err := dao.GetStoreDetail(dao.GetDB(), order.JxStoreID, order.VendorID, order.VendorOrgCode)

View File

@@ -1744,7 +1744,6 @@ func UpdateStoresSkus(ctx *jxcontext.Context, causeFlag int, storeIDs []int, sku
}
} else {
flag, _ := doStoreSkuAudit(ctx, storeIDs, skuBindInfos)
globals.SugarLogger.Debugf("========falg := %s", utils.Format4Output(flag, false))
if !flag {
var num int64
db := dao.GetDB()

View File

@@ -486,6 +486,9 @@ func (v *VendorSync) SyncStoresCategory(ctx *jxcontext.Context, db *dao.DaoDB, v
//
func (v *VendorSync) SyncStoresSkus2(ctx *jxcontext.Context, parentTask tasksch.ITask, causeFlag int, db *dao.DaoDB, vendorIDs []int, storeIDs []int, syncDisabled bool, skuIDs, excludeSkuIDs []int, setSyncStatus int, isAsync, isContinueWhenError bool) (hint string, err error) {
if len(vendorIDs) > 0 && vendorIDs[0] == model.VendorIDTaoVegetable {
globals.SugarLogger.Debugf("=====================storeIDs: %s", utils.Format4Output(storeIDs, false))
}
isManageIt := len(storeIDs) != 1 || len(skuIDs) == 0 || len(skuIDs) > 8
funcParam := func(t *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (interface{}, error) {
loopMapInfo := batchItemList[0].(*LoopStoreMapInfo)

View File

@@ -2,6 +2,7 @@ package misc
import (
"fmt"
"git.rosy.net.cn/jx-callback/business/jxutils/enterprise_msg"
"sync"
"time"
@@ -209,13 +210,6 @@ func Init() {
"18:10:00",
})
// 下架所有北京上海门店商品
ScheduleTimerFunc("UpdateTaoSkuUpdateOffShelf", func() {
orderman.UpdateTaoSkuUpdateOffShelf()
}, []string{
"09:13:00",
})
// 每分钟轮询一次,推送骑手信息
ScheduleTimerFuncByInterval(func() {
delivery.UpdateFakeWayBillToTiktok()
@@ -286,341 +280,29 @@ func Init() {
// syncStoreSkuTiktok()
// }, []string{"13:00:00"})
//}
// 淘鲜达更新门店商品 ,接口收费暂不使用
if beego.BConfig.RunMode != "jxgy" {
ScheduleTimerFunc("RefreshSyncSkuList_tao", func() {
var hangzhou = []int{
// 杭州
//669073,
//668930,
//668922,
//668916,
//668915,
//668756,
//668705,
//668702,
//668681,
//668422,
//668417,
//668191,
//667996,
//667991,
//667985,
//667553,
//667044,
//103083,
//103073,
//103033,
//103032,
//102963,
//102923,
//102785,
//102594,
//102578,
//102329,
//101734,
//100229,
//100224,
//100217,
//100215,
//100210,
//100206,
//// 武汉
//668352, 103200, 102958, 100887, 100236,
//// 广州
// 668871, 668602, 668575, 668262, 103425, 101755, 101176, 100557, 100369, 100361, 100351, 100350,
//成都
669172,
669171,
669170,
669169,
669168,
669165,
669164,
669163,
669162,
669157,
669156,
669155,
669154,
669153,
669150,
669149,
669148,
669147,
669146,
669144,
669141,
669139,
669138,
669137,
669134,
669132,
669127,
669124,
669122,
669121,
669120,
669119,
669114,
669113,
669111,
669110,
669109,
669108,
669107,
669106,
669103,
669100,
669099,
669098,
669097,
669096,
669095,
669094,
669093,
669092,
669091,
669087,
669086,
669085,
669084,
669083,
669082,
669079,
669078,
669077,
669075,
669074,
669072,
669070,
669067,
669064,
669063,
669062,
669060,
669059,
669056,
669055,
669054,
669050,
669049,
669047,
669046,
669045,
669042,
669041,
669038,
669036,
669035,
669033,
669032,
669031,
669027,
669025,
669024,
669022,
669021,
669020,
669017,
669015,
669014,
669012,
669009,
669007,
669002,
669000,
668999,
668997,
668996,
668993,
668988,
668986,
668984,
668966,
668963,
668961,
668958,
668954,
668950,
668948,
668946,
668943,
668938,
668928,
668910,
668907,
668900,
668897,
668896,
668891,
668889,
668883,
668882,
668868,
668860,
668855,
668853,
668850,
668849,
668843,
668838,
668807,
668802,
668784,
668773,
668771,
668767,
668766,
668755,
668749,
668728,
668724,
668722,
668721,
668716,
668706,
668704,
668699,
668697,
668695,
668693,
668692,
668688,
668686,
668682,
668680,
668679,
668678,
668672,
668666,
668662,
668660,
668659,
668656,
668655,
668654,
668649,
668648,
668643,
668642,
668640,
668636,
668632,
668631,
668629,
668624,
668616,
668613,
668608,
668594,
668548,
668543,
668540,
668537,
668530,
668512,
668258,
668257,
668256,
668254,
668203,
668190,
668186,
668185,
668182,
668170,
668169,
668168,
668166,
668165,
668164,
668157,
668156,
668125,
668121,
668095,
668094,
668071,
667959,
667745,
667744,
667743,
667563,
667562,
667561,
667560,
667559,
667558,
667556,
667420,
667332,
667308,
667305,
667304,
667299,
667292,
667285,
667281,
667278,
667263,
667001,
666975,
666677,
666667,
666666,
103408,
103184,
103174,
103127,
103113,
102925,
102740,
102736,
102630,
102383,
102180,
101942,
101897,
101875,
101036,
100840,
100743,
100654,
100471,
100144,
100135,
100129,
100126,
100123,
100115,
}
syncStoreSkuTao(hangzhou)
ScheduleTimerFunc("RefreshSyncSkuListTao", func() {
syncStoreSkuTao()
}, []string{
"00:30:00",
"01:30:00",
"02:30:00",
"03:30:00",
"04:30:00",
"05:30:00",
"06:30:00",
"07:30:00",
"08:30:00",
"09:35:00",
"10:30:00",
"11:30:00",
"12:30:00",
"13:30:00",
"14:30:00",
"15:30:00",
"16:30:00",
"17:30:00",
"18:30:00",
"19:30:00",
"20:30:00",
"21:30:00",
"22:30:00",
"23:30:00",
"14:25:00",
"16:25:00",
"18:52:00",
"20:25:00",
"21:25:00",
"22:25:00",
"23:25:00",
"00:25:00",
"01:25:00",
"02:25:00",
"03:25:00",
"04:25:00",
"05:25:00",
"06:25:00",
"07:25:00",
"08:25:00",
"10:25:00",
"12:25:00",
})
}
@@ -976,31 +658,264 @@ func syncStoreSkuTiktok() {
}
var syncLen = 0
var beijin = []int{
//669113,
//669111,
//669110,
//669109,
//669108,
//669107,
//669106,
//669103,
//669100,
//669099,
//669098,
//669097,
//669096,
//669095,
//669094,
//669093,
//669092,
//669091,
//669087,
//669086,
//669085,
//669084, // zheer
//669083,
//669082,
//669079,
//669078,
//669077,
//669075,
//669074,
//669072,
//669070,
//669067,
//669064,
//669063,
//669062,
//669060,
//669059,
//669056,
//669055,
//669054,
//669050,
//669049,
//669047, //
//669046,
//669045,
//669042,
//669041,
//669038,
//669036,
//669035,
//669033,
//669032, // zher
//669031,
//669027,
//669025,
//669024,
//669022,
//669021,
//669020,
//669017,
//669015, /// zher
//669014,
//669012,
//669009,
//669007,
//669002,
//669000,
//668999,
//668997,
//668996,
//668993, //
//668988,
//668986,
//668984,
//668966,
//668963,
//668961,
//668958,
//668954,
//668950,
//668948,
//668946,
//668943, ///
//668938,
//668928,
//668910,
//668907,
//668900,
//668897,
668896,
668891,
668889,
668883,
668882,
668868,
668860,
668855,
668853,
668850,
668849,
668843,
668838,
668807,
668802,
668784,
668773,
668771,
668767,
668766,
668755,
668749,
668728,
668724,
668722,
668721,
668716,
668706,
668704,
668699,
668697,
668695,
668693,
668692,
668688,
668686,
668682,
668680,
668679,
668678,
668672,
668666,
668662,
668660,
668659,
668656,
668655,
668654,
668649,
668648,
668643,
668642,
668640,
668636,
668632,
668631,
668629,
668624,
668616,
668613,
668608,
668594,
668548,
668543,
668540,
668537,
668530,
668512,
668258,
668257,
668256,
668254,
668203,
668190,
668186,
668185,
668182,
668170,
668169,
668168,
668166,
668165,
668164,
668157,
668156,
668125,
668121,
668095,
668094,
668071,
667959,
667745,
667744,
667743,
667563,
667562,
667561,
667560,
667559,
667558,
667556,
667420,
667332,
667308,
667305,
667304,
667299,
667292,
667285,
667281,
667278,
667263,
667001,
666975,
666677,
666667,
666666,
103408,
103184,
103174,
103127,
103113,
102925,
102740,
102736,
102630,
102383,
102180,
101942,
101897,
101875,
101036,
100840,
100743,
100654,
100471,
100144,
100135,
100129,
100126,
100123,
100115,
}
// syncStoreSkuTao 同步商品到淘鲜达
func syncStoreSkuTao(beijin []int) {
func syncStoreSkuTao() {
syncFlag := 0
task := tasksch.NewParallelTask("同步京西商品到淘鲜达平台,方案二使用", nil, jxcontext.AdminCtx,
task := tasksch.NewParallelTask("syncStoreSkuTao ", nil, jxcontext.AdminCtx,
func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
step := batchItemList[0].(int)
errList := errlist.New()
db := dao.GetDB()
switch step {
case 0:
if beego.BConfig.RunMode != "jxgy" {
ddmsg.SendUserMessage(dingdingapi.MsgTyeText, "2452A93EEB9111EC9B06525400E86DC0", "淘鲜达消息:", utils.Format4Output(beijin[syncLen:syncLen+3], false))
_, err = cms.CurVendorSync.SyncStoresSkus2(jxcontext.AdminCtx, nil, 0, db, []int{model.VendorIDTaoVegetable}, beijin[syncLen:syncLen+3], false, nil, nil, syncFlag, true, true)
errList.AddErr(err)
if err := ddmsg.SendUserMessage(dingdingapi.MsgTyeText, "2452A93EEB9111EC9B06525400E86DC0", "淘鲜达消息:", utils.Format4Output(beijin[syncLen:syncLen+5], false)); err != nil {
globals.SugarLogger.Debugf("SendUserMessage := %s", utils.Format4Output(err, false))
}
case 1:
enterprise_msg.SendUserMessage("18981810340", "淘鲜达同步消息", utils.Format4Output(beijin[syncLen:syncLen+5], false), utils.Format4Output(beijin[syncLen:syncLen+5], false))
_, err = cms.CurVendorSync.SyncStoresSkus2(jxcontext.AdminCtx, nil, 0, db, []int{model.VendorIDTaoVegetable}, beijin[syncLen:syncLen+5], false, nil, nil, syncFlag, true, true)
errList.AddErr(err)
case 1:
SaveImportantTaskID(TaskNameSyncStoreSku, SpecialTaskID)
}
err = errList.GetErrListAsOne()
return retVal, err
}, []int{0, 1})
tasksch.HandleTask(task, nil, true).Run()
syncLen += 3
syncLen += 5
}
func doDailyWork2() {

View File

@@ -15,4 +15,4 @@ func TestStartOrEndOpStore(t *testing.T) {
func TestIssny(t *testing.T) {
cms.CurVendorSync.SyncStore2(jxcontext.AdminCtx, dao.GetDB(), []int{model.VendorIDMTWM, model.VendorIDJD, model.VendorIDEBAI}, nil, true, true)
}
}

View File

@@ -0,0 +1,16 @@
package dao
import "git.rosy.net.cn/jx-callback/business/model"
func GetVendorImg(skuId, vendorId int) (*model.TaoSkuImg, error) {
result := &model.TaoSkuImg{}
sql := ` SELECT * FROM tao_sku_img WHERE sku_id = ? AND vendor_id = ?`
parma := []interface{}{skuId, vendorId}
if err := GetRow(GetDB(), result, sql, parma); err != nil {
return nil, err
}
return result, nil
}

View File

@@ -162,15 +162,15 @@ type SkuName struct {
ExPrefixBegin *time.Time `orm:"null" json:"exPrefixBegin"`
ExPrefixEnd *time.Time `orm:"null" json:"exPrefixEnd"`
ExVendorID int `orm:"column(ex_vendor_id)" json:"exVendorID"`
BrandID int `orm:"column(brand_id);default(0)" json:"brandID"` // todo此属性暂时没有使用且有问题应该是不同平台都有一个brandid
CategoryID int `orm:"column(category_id);index" json:"categoryID"` // 标准类别
JdCategoryID int64 `orm:"column(jd_category_id)" json:"jdCategoryID"` // 这个是指对应的京东商品类别
IsGlobal int8 `orm:"default(1)" json:"isGlobal"` // 是否是全部全国可见如果否的话可见性由SkuPlace决定
Unit string `orm:"size(8)" json:"unit"`
SpecQuality float32 `json:"-"` // 为份必然为500这个主要作用只是用于确保SkuName的唯一性
SpecUnit string `orm:"size(8)" json:"-"` // 为份必然为克这个主要作用只是用于确保SkuName的唯一性
Price int `json:"price"` // 单位为分标准价不为份的就为实际标准价为份的为每市斤价实际还要乘质量。todo 为份的确定必须有质量
Img string `orm:"size(512)" json:"img"`
BrandID int `orm:"column(brand_id);default(0)" json:"brandID"` // todo此属性暂时没有使用且有问题应该是不同平台都有一个brandid
CategoryID int `orm:"column(category_id);index" json:"categoryID"` // 标准类别
JdCategoryID int64 `orm:"column(jd_category_id)" json:"jdCategoryID"` // 这个是指对应的京东商品类别
IsGlobal int8 `orm:"default(1)" json:"isGlobal"` // 是否是全部全国可见如果否的话可见性由SkuPlace决定
Unit string `orm:"size(8)" json:"unit"` //
SpecQuality float32 `json:"-"` // 为份必然为500这个主要作用只是用于确保SkuName的唯一性
SpecUnit string `orm:"size(8)" json:"-"` // 为份必然为克这个主要作用只是用于确保SkuName的唯一性
Price int `json:"price"` // 单位为分标准价不为份的就为实际标准价为份的为每市斤价实际还要乘质量。todo 为份的确定必须有质量
Img string `orm:"size(512)" json:"img"` //
Img2 string `orm:"size(512)" json:"img2"` // 第二张图片
Img3 string `orm:"size(512)" json:"img3"` //第三张图片
Img4 string `orm:"size(512)" json:"img4"` //第三张图片

View File

@@ -0,0 +1,19 @@
package model
type TaoSkuImg struct {
ID int64 `orm:"column(id)" json:"id"`
SkuID int `orm:"column(sku_id)"`
VendorID int `orm:"column(vendor_id)" json:"vendorID"`
Img string `orm:"size(512)" json:"img"`
Img2 string `orm:"size(512)" json:"img2"` // 第二张图片
Img3 string `orm:"size(512)" json:"img3"` //第三张图片
Img4 string `orm:"size(512)" json:"img4"` //第三张图片
Img5 string `orm:"size(512)" json:"img5"` //第三张图片
DescImg string `orm:"size(512)" json:"descImg"` // 商品详情图片描述
}
func (*TaoSkuImg) TableUnique() [][]string {
return [][]string{
[]string{"SkuID", "VendorID"},
}
}

View File

@@ -515,13 +515,14 @@ func (c *PurchaseHandler) AcceptOrRefuseOrder(order *model.GoodsOrder, isAcceptI
func (c *PurchaseHandler) PickupGoods(order *model.GoodsOrder, isSelfDelivery bool, userName string) (err error) {
isSelfDelivery = model.IsOrderDeliveryByStore(order) || model.IsOrderDeliveryBySelf(order)
if !isSelfDelivery {
if isSelfDelivery {
if globals.EnableMtwmStoreWrite {
err = getAPI(order.VendorOrgCode, jxutils.GetSaleStoreIDFromOrder(order), "").PreparationMealComplete(utils.Str2Int64(order.VendorOrderID))
}
}
if err == nil {
if err == nil || strings.Contains(err.Error(), "808") { // 配送类型只能为美团配送或美团企客配送 level:0, code:808
c.postFakeMsg(order.VendorOrderID, FakeMsgType, fakeFinishedPickup)
return nil
}
return err
}

View File

@@ -10,8 +10,6 @@ import (
"git.rosy.net.cn/baseapi/platformapi/tao_vegetable"
domain3156 "git.rosy.net.cn/baseapi/platformapi/tao_vegetable/sdk/ability3156/domain"
request3156 "git.rosy.net.cn/baseapi/platformapi/tao_vegetable/sdk/ability3156/request"
domain587 "git.rosy.net.cn/baseapi/platformapi/tao_vegetable/sdk/ability587/domain"
request587 "git.rosy.net.cn/baseapi/platformapi/tao_vegetable/sdk/ability587/request"
domain591 "git.rosy.net.cn/baseapi/platformapi/tao_vegetable/sdk/ability591/domain"
request591 "git.rosy.net.cn/baseapi/platformapi/tao_vegetable/sdk/ability591/request"
"git.rosy.net.cn/baseapi/platformapi/tao_vegetable/sdk/util"
@@ -845,31 +843,6 @@ func (c *PurchaseHandler) GetOrderSettleAccounts(order *model.GoodsOrder) (int64
return 0, nil
}
// 下架
func UpdateStoreSku(storeId int64, skuCode []string) []string {
api := getAPI("34402634", 0, "")
return api.StoreSkuUpdateOffShelfList(storeId, skuCode)
}
// 上架
func UpdateStoreSkuGrounding(storeId int64, skuCode []string) []string {
api := getAPI("34402634", 0, "")
result := make([]string, 0, 0)
for _, v := range skuCode {
param := &request587.AlibabaAxChannelSkuStatusUpdateRequest{ChannelSkuUpdateStatusReq: &domain587.AlibabaAxChannelSkuStatusUpdateChannelSkuUpdateStatusReq{
SkuCode: utils.String2Pointer(v),
StoreId: utils.String2Pointer(fmt.Sprintf("JX%d", storeId)),
ChannelCode: utils.String2Pointer("31"),
OnlineSaleFlag: utils.Int64ToPointer(1),
}}
if err := api.StoreSkuUpdateOffShelf(param); err != nil {
result = append(result, fmt.Sprintf(" [storeId:%d,skuCode:%s]"+err.Error(), storeId, v))
}
}
return result
}
// GetOrderTotalShopMoney 获取门店结算信息
func GetOrderTotalShopMoney(appOrgCode string, vendorStoreID string, start, end time.Time) (map[string]string, error) {
if appOrgCode == "" || vendorStoreID == "" {

View File

@@ -41,19 +41,19 @@ var (
func (p *PurchaseHandler) GetStoreSkusBatchSize(funcID int) (batchSize int) {
switch funcID {
case partner.FuncUpdateStoreSkusStock, partner.FuncUpdateStoreSkusStatus, partner.FuncUpdateStoreSkusPrice:
batchSize = 5
batchSize = 20
case partner.FuncDeleteStoreSkus:
batchSize = 5
batchSize = 20
case partner.FuncCreateStoreSkus:
batchSize = 5 // 可考虑用批量操作
batchSize = 20 // 可考虑用批量操作
case partner.FuncUpdateStoreSkus:
batchSize = 5 // mtwmapi.MaxStoreSkuBatchSize
batchSize = 20 // mtwmapi.MaxStoreSkuBatchSize
case partner.FuncGetStoreSkusFullInfo:
batchSize = 5
batchSize = 20
case partner.FuncCreateActs:
batchSize = 5
batchSize = 20
case partner.FuncCancelActs:
batchSize = 5
batchSize = 20
}
return batchSize
}
@@ -253,7 +253,10 @@ func UpdateTaoVegetable(api *tao_vegetable.API, storeSkuList []*dao.StoreSkuSync
updateSku.PurchaseQuantity = utils.Int64ToPointer(int64(v.MinOrderCount)) // 起购单位
}
// 修改暂时不修改图片,保持效率
//updateSku.SkuPicUrls = uploadImg(api, []string{v.Img, v.Img2, v.Img3, v.Img4, v.Img5, v.DescImg})
updateSku.SkuPicUrls = uploadImg(api, v.SkuID, model.VendorIDTaoVegetable, []string{v.Img, v.Img2, v.Img3, v.Img4, v.Img5, v.DescImg})
if updateSku.SkuPicUrls == nil {
continue
}
updateSkuList = append(updateSkuList, updateSku)
}
@@ -320,7 +323,11 @@ func createTaoVegetable(ctx *jxcontext.Context, api *tao_vegetable.API, storeSku
RichText: utils.String2Pointer(storeSku.Name),
AllowAppSale: utils.Int64ToPointer(tao_vegetable.IsAllowAppSale),
}
sku.SkuPicUrls = uploadImg(api, []string{storeSku.Img, storeSku.Img2, storeSku.Img3, storeSku.Img4, storeSku.Img5, storeSku.DescImg})
// 赠品专区
if storeSku.VendorCatID == "175" {
sku.MerchantCatCode = utils.String2Pointer("1751")
}
sku.SkuPicUrls = uploadImg(api, storeSku.SkuID, model.VendorIDTaoVegetable, []string{storeSku.Img, storeSku.Img2, storeSku.Img3, storeSku.Img4, storeSku.Img5, storeSku.DescImg})
if sku.SkuPicUrls == nil {
continue
}
@@ -438,34 +445,80 @@ func checkNameLength(name string, weight int, uint string) string {
return lastName[0:60]
}
func uploadImg(api *tao_vegetable.API, imgs []string) *string {
func uploadImg(api *tao_vegetable.API, skuId, vendorId int, imgs []string) *string {
vendorImg, _ := dao.GetVendorImg(skuId, vendorId)
result := make([]string, 0, 0)
for _, v := range imgs {
if v == "" {
continue
}
taoImgs := &model.TaoSkuImg{}
isCreate := false
if vendorImg == nil || (vendorImg.Img == "" && vendorImg.Img2 == "" && vendorImg.Img3 == "" && vendorImg.Img4 == "" && vendorImg.Img5 == "" && vendorImg.DescImg == "") {
isCreate = true
for i := 0; i < len(imgs); i++ {
if imgs[i] == "" {
continue
}
inputTitle := strings.LastIndex(v, "/")
title := strings.LastIndex(v, ".")
resp, err := http.Get(v)
if err != nil {
continue
inputTitle := strings.LastIndex(imgs[i], "/")
title := strings.LastIndex(imgs[i], ".")
resp, err := http.Get(imgs[i])
if err != nil {
continue
}
body, _ := ioutil.ReadAll(resp.Body)
// 图片失效
if strings.Contains(string(body), "Document not found") || len(body) == 0 {
continue
}
newImg, _ := api.UploadImg(&request1475.AlibabaWdkPictureUploadRequest{
PictureCategoryId: utils.Int64ToPointer(0),
Img: &body,
ImgInputTitle: utils.String2Pointer(imgs[i][inputTitle:]),
Title: utils.String2Pointer(imgs[i][inputTitle:title]),
})
if newImg != "" {
result = append(result, newImg)
switch i {
case 0:
taoImgs.Img = newImg
case 1:
taoImgs.Img2 = newImg
case 2:
taoImgs.Img3 = newImg
case 3:
taoImgs.Img4 = newImg
case 4:
taoImgs.Img5 = newImg
case 5:
taoImgs.DescImg = newImg
}
}
}
body, _ := ioutil.ReadAll(resp.Body)
// 图片失效
if strings.Contains(string(body), "Document not found") || len(body) == 0 {
continue
} else {
if vendorImg.Img != "" {
result = append(result, vendorImg.Img)
}
if newImg, _ := api.UploadImg(&request1475.AlibabaWdkPictureUploadRequest{
PictureCategoryId: utils.Int64ToPointer(0),
Img: &body,
ImgInputTitle: utils.String2Pointer(v[inputTitle:]),
Title: utils.String2Pointer(v[inputTitle:title]),
}); newImg != "" {
result = append(result, newImg)
if vendorImg.Img2 != "" {
result = append(result, vendorImg.Img2)
}
if vendorImg.Img3 != "" {
result = append(result, vendorImg.Img3)
}
if vendorImg.Img4 != "" {
result = append(result, vendorImg.Img4)
}
if vendorImg.Img5 != "" {
result = append(result, vendorImg.Img5)
}
if vendorImg.DescImg != "" {
result = append(result, vendorImg.DescImg)
}
}
if isCreate {
taoImgs.SkuID = skuId
taoImgs.VendorID = vendorId
dao.CreateEntity(dao.GetDB(), taoImgs)
}
// 商品图片最多五张
if len(result) > 5 {
return utils.String2Pointer(strings.Join(result[1:], ","))
@@ -539,6 +592,8 @@ func (p *PurchaseHandler) UpdateStoreSkusPrice(ctx *jxcontext.Context, vendorOrg
CleanSkuMemberPrice: utils.Int64ToPointer(model.YES),
SubTitle: utils.String2Pointer("小时达"),
}
// 临时更新上传图片错误的,或图片上传失败的商品
updateSku.SkuPicUrls = uploadImg(api, v.SkuID, model.VendorIDTaoVegetable, nil)
updateSkuList = append(updateSkuList, updateSku)
}
param.ParamList = &updateSkuList

View File

@@ -111,6 +111,7 @@ func (c *DjswController) OrderCommentPush() {
func (c *DjswController) Token() {
urlValues, err := utils.HTTPBody2Values(c.Ctx.Input.RequestBody, false)
globals.SugarLogger.Info(utils.Format4Output(utils.Format4Output(err, false), false))
globals.SugarLogger.Info(utils.Format4Output(utils.Format4Output(urlValues, false), false))
jd.OnTokenChange(urlValues)
c.Data["json"] = c.transferResponse("Token", nil)
c.ServeJSON()

View File

@@ -67,6 +67,7 @@ func Init() {
orm.RegisterModel(&model.Brand{}, &model.BrandCategoryMap{})
orm.RegisterModel(&model.BrandStore{})
orm.RegisterModel(&model.BrandBill{}, &model.BrandOrder{}, &model.BrandUser{})
orm.RegisterModel(&model.TaoSkuImg{})
orm.RegisterModel(&model.AuthBind{}, &model.User{})