From f8e6fd4bdd4fc09453f85792e79ec23bac0b1b66 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Thu, 26 Dec 2019 09:24:14 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E6=A0=B9=E6=8D=AEexcel=E4=B8=ADskuid?= =?UTF-8?q?=E5=85=B3=E6=B3=A8=E5=95=86=E5=93=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store_sku.go | 110 +++++++++++++++++------------- 1 file changed, 63 insertions(+), 47 deletions(-) diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index 410a94c76..b5ecb5ee1 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -2766,57 +2766,73 @@ func FocusStoreSkusByExcelBin(ctx *jxcontext.Context, reader io.Reader, isAsync, SkuRow: 1, } // xlsx, err := excelize.OpenFile("111.xlsx") - xlsx, err := excelize.OpenReader(reader) - if err != nil { - return "", err - } - rows, _ := xlsx.GetRows(xlsx.GetSheetName(1)) - for rowNum, row := range rows { - if rowNum < sheetParam.SkuRow { - continue - } - GetCellForFocusStoreSkus(db, rowNum, row, sheetParam, skuMap) - } - for k, _ := range skuMap { - skuIDs = append(skuIDs, k) - } - skuList, err := dao.GetSkus(db, skuIDs, nil, nil, nil) - if err != nil && len(skuList) == 0 { - return - } - for _, v := range skuList { - var ( - price int - specQuality float64 - ) - if v.Unit == model.SpecialUnit { - if v.SpecUnit == model.SpecUnitNames[1] || v.SpecUnit == model.SpecUnitNames[2] { - specQuality = float64(v.SpecQuality) * 1000 - } else { - specQuality = float64(v.SpecQuality) + taskSeqFunc := func(task *tasksch.SeqTask, step int, params ...interface{}) (result interface{}, err error) { + switch step { + case 0: + xlsx, err := excelize.OpenReader(reader) + if err != nil { + return result, err } - price = int(utils.Float64TwoInt64(utils.Int2Float64(model.SpecialSpecQuality) / specQuality * utils.Int2Float64(skuMap[v.ID]))) - } else { - price = skuMap[v.ID] - } - if skuNameMap[v.NameID] < price { - skuNameMap[v.NameID] = price + rows, _ := xlsx.GetRows(xlsx.GetSheetName(1)) + for rowNum, row := range rows { + if rowNum < sheetParam.SkuRow { + continue + } + GetCellForFocusStoreSkus(db, rowNum, row, sheetParam, skuMap) + } + case 1: + for k, _ := range skuMap { + skuIDs = append(skuIDs, k) + } + skuList, err := dao.GetSkus(db, skuIDs, nil, nil, nil) + if err != nil && len(skuList) == 0 { + return result, err + } + for _, v := range skuList { + var ( + price int + specQuality float64 + ) + if v.Unit == model.SpecialUnit { + if v.SpecUnit == model.SpecUnitNames[1] || v.SpecUnit == model.SpecUnitNames[2] { + specQuality = float64(v.SpecQuality) * 1000 + } else { + specQuality = float64(v.SpecQuality) + } + price = int(utils.Float64TwoInt64(utils.Int2Float64(model.SpecialSpecQuality) / specQuality * utils.Int2Float64(skuMap[v.ID]))) + } else { + price = skuMap[v.ID] + } + if skuNameMap[v.NameID] < price { + skuNameMap[v.NameID] = price + } + } + for k, v := range skuNameMap { + skuBindInfo := &StoreSkuBindInfo{ + NameID: k, + UnitPrice: v, + IsFocus: 1, + IsSale: 1, + } + skuBindInfos = append(skuBindInfos, skuBindInfo) + } + storeList, err := dao.GetStoreList(db, nil, nil, "") + for _, v := range storeList { + storeIDs = append(storeIDs, v.ID) + } + case 2: + UpdateStoresSkus(ctx, storeIDs, skuBindInfos, false, isAsync, isContinueWhenError) } + return result, err } - for k, v := range skuNameMap { - skuBindInfo := &StoreSkuBindInfo{ - NameID: k, - UnitPrice: v, - IsFocus: 1, - IsSale: 1, - } - skuBindInfos = append(skuBindInfos, skuBindInfo) + taskSeq := tasksch.NewSeqTask2("根据Excel中skuID批量关注商品", ctx, isContinueWhenError, taskSeqFunc, 3) + tasksch.HandleTask(taskSeq, nil, true).Run() + if !isAsync { + _, err = taskSeq.GetResult(0) + hint = "1" + } else { + hint = taskSeq.GetID() } - storeList, err := dao.GetStoreList(db, nil, nil, "") - for _, v := range storeList { - storeIDs = append(storeIDs, v.ID) - } - hint, err = UpdateStoresSkus(ctx, storeIDs, skuBindInfos, false, isAsync, isContinueWhenError) return hint, err } From 9a05638ad292fc74c6947542d900b46fb571fd7d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Thu, 26 Dec 2019 09:43:24 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E6=8A=95=E8=AF=89=E9=AA=91=E6=89=8B?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=B5=8B=E8=AF=95=E5=88=A4=E6=96=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/delivery/dada/waybill.go | 4 +++- business/partner/delivery/mtps/waybill.go | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/business/partner/delivery/dada/waybill.go b/business/partner/delivery/dada/waybill.go index e9e732629..5e9fce77d 100644 --- a/business/partner/delivery/dada/waybill.go +++ b/business/partner/delivery/dada/waybill.go @@ -388,7 +388,9 @@ func limitOrderWeight(weight int) int { } func (c *DeliveryHandler) ComplaintRider(bill *model.Waybill, resonID int, resonContent string) (err error) { - err = api.DadaAPI.ComplaintRider(bill.VendorOrderID, resonID) + if globals.EnableStoreWrite { + err = api.DadaAPI.ComplaintRider(bill.VendorOrderID, resonID) + } return err } diff --git a/business/partner/delivery/mtps/waybill.go b/business/partner/delivery/mtps/waybill.go index 3f5bd9713..20c18c817 100644 --- a/business/partner/delivery/mtps/waybill.go +++ b/business/partner/delivery/mtps/waybill.go @@ -253,7 +253,9 @@ func limitOrderWeight(weight int) int { } func (c *DeliveryHandler) ComplaintRider(bill *model.Waybill, resonID int, resonContent string) (err error) { - err = api.MtpsAPI.EvaluateRider(utils.Str2Int64(bill.VendorWaybillID2), bill.VendorWaybillID, 1, resonContent) + if globals.EnableStoreWrite { + err = api.MtpsAPI.EvaluateRider(utils.Str2Int64(bill.VendorWaybillID2), bill.VendorWaybillID, 1, resonContent) + } return err } From d1a8d459334e876d332c5fd8f0ea34504c36dfd7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Thu, 26 Dec 2019 10:37:09 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E9=83=A8=E5=88=86=E5=85=B3=E6=B3=A8?= =?UTF-8?q?=E5=95=86=E5=93=81=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store_sku.go | 72 +++++++++++++++++++------------ business/model/order.go | 5 +++ 2 files changed, 49 insertions(+), 28 deletions(-) diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index b5ecb5ee1..b9dee32f5 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -2861,35 +2861,51 @@ func FocusStoreSkusBySku(ctx *jxcontext.Context, skuIDs []int, isAsync, isContin db := dao.GetDB() skuList, err := dao.GetSkus(db, skuIDs, nil, nil, nil) storeList, err := dao.GetStoreList(db, nil, nil, "") - for _, v := range storeList { - storeIDs = append(storeIDs, v.ID) - } - for _, v := range skuList { - skuNameMap[v.NameID] = append(skuNameMap[v.NameID], &StoreSkuBindSkuInfo{ - SkuID: v.ID, - IsSale: 1, - }) - } - task := tasksch.NewParallelTask("根据skuID部分关注商品", tasksch.NewParallelConfig().SetIsContinueWhenError(isContinueWhenError), ctx, - func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) { - store := batchItemList[0].(*model.Store) - for k, v := range skuNameMap { - midPrice, _ := dao.GetMidPriceByNameID(db, store.CityCode, k, utils.Time2Date(time.Now().AddDate(0, 0, -1))) - skuBindInfo := &StoreSkuBindInfo{ - NameID: k, - UnitPrice: midPrice, - IsFocus: 1, - Skus: v, - } - retVal = []*StoreSkuBindInfo{skuBindInfo} + taskSeqFunc := func(task *tasksch.SeqTask, step int, params ...interface{}) (result interface{}, err error) { + switch step { + case 0: + for _, v := range storeList { + storeIDs = append(storeIDs, v.ID) } - return retVal, err - }, storeList) - tasksch.HandleTask(task, nil, true).Run() - result, err := task.GetResult(0) - for _, v := range result { - skuBindInfos = append(skuBindInfos, v.(*StoreSkuBindInfo)) + for _, v := range skuList { + skuNameMap[v.NameID] = append(skuNameMap[v.NameID], &StoreSkuBindSkuInfo{ + SkuID: v.ID, + IsSale: 1, + }) + } + case 1: + taskFunc := func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) { + store := batchItemList[0].(*model.Store) + for k, v := range skuNameMap { + midPrice, _ := dao.GetMidPriceByNameID(db, store.CityCode, k, utils.Time2Date(time.Now().AddDate(0, 0, -1))) + skuBindInfo := &StoreSkuBindInfo{ + NameID: k, + UnitPrice: midPrice, + IsFocus: 1, + Skus: v, + } + retVal = []*StoreSkuBindInfo{skuBindInfo} + } + return retVal, err + } + taskParallel := tasksch.NewParallelTask("根据skuID部分关注商品", tasksch.NewParallelConfig().SetIsContinueWhenError(isContinueWhenError), ctx, taskFunc, storeList) + tasksch.HandleTask(taskParallel, task, true).Run() + result1, _ := taskParallel.GetResult(0) + for _, v := range result1 { + skuBindInfos = append(skuBindInfos, v.(*StoreSkuBindInfo)) + } + case 2: + UpdateStoresSkus(ctx, storeIDs, skuBindInfos, false, isAsync, isContinueWhenError) + } + return result, err + } + taskSeq := tasksch.NewSeqTask2("根据skuID批量部分关注商品", ctx, isContinueWhenError, taskSeqFunc, 3) + tasksch.HandleTask(taskSeq, nil, true).Run() + if !isAsync { + _, err = taskSeq.GetResult(0) + hint = "1" + } else { + hint = taskSeq.GetID() } - hint, err = UpdateStoresSkus(ctx, storeIDs, skuBindInfos, false, isAsync, isContinueWhenError) return hint, err } diff --git a/business/model/order.go b/business/model/order.go index 264140f9d..0bc2c4d3f 100644 --- a/business/model/order.go +++ b/business/model/order.go @@ -343,6 +343,11 @@ type OrderPayRefund struct { OriginalData string `orm:"type(text)" json:"-"` } +type OrderSupplementFee struct { + ModelIDCULD + VendorOrderID string `orm:"column(vendor_order_id);index;size(48)" json:"vendorOrderID"` +} + // 判断是否是购买平台自有物流 // 对于京东,饿百来说,就是其自有的物流,对于微商城来说,是达达 func IsWaybillPlatformOwn(bill *Waybill) bool { From 0f4ed3f31ec211a4dd0fa48c01f5ae49efeb2872 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Thu, 26 Dec 2019 16:23:28 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E6=8A=95=E8=AF=89=E5=8E=9F=E5=9B=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/cms.go | 1 + business/model/const.go | 25 +++++++++++++++++++++++++ 2 files changed, 26 insertions(+) diff --git a/business/jxstore/cms/cms.go b/business/jxstore/cms/cms.go index eda6d1610..68258f6cb 100644 --- a/business/jxstore/cms/cms.go +++ b/business/jxstore/cms/cms.go @@ -101,6 +101,7 @@ func InitServiceInfo(version string, buildTime time.Time, gitCommit string) { "payStatusName": model.PayStatusName, "refundStatusName": model.RefundStatusName, "autoReplyTypeName": model.AutoReplyTypeName, + "complaintReasons": model.ComplaintReasons, }, } } diff --git a/business/model/const.go b/business/model/const.go index 2c85c1ee3..45907bdf5 100644 --- a/business/model/const.go +++ b/business/model/const.go @@ -85,6 +85,18 @@ var ( OrderTypeAfsOrder: "售后单", } + ComplaintReasons = map[int]string{ + ComplaintReasons1: "骑手态度恶劣", + ComplaintReasons2: "骑手接单后未取货", + ComplaintReasons3: "骑手取货太慢", + ComplaintReasons4: "骑手送货太慢", + ComplaintReasons5: "货品未送达", + ComplaintReasons6: "货品有损坏", + ComplaintReasons7: "骑手违规收取顾客其他费用", + ComplaintReasons69: "骑手恶意取消订单", + ComplaintReasons71: "骑手提前点击取货/送达", + } + MultiStoresVendorMap = map[int]int{ VendorIDJD: 1, VendorIDMTWM: 0, @@ -201,6 +213,19 @@ const ( LockStatusLocked = 1 ) +//投诉原因 +const ( + ComplaintReasons1 = 1 //"骑手态度恶劣", + ComplaintReasons2 = 2 //"骑手接单后未取货" + ComplaintReasons3 = 3 //"骑手取货太慢", + ComplaintReasons4 = 4 //"骑手送货太慢", + ComplaintReasons5 = 5 //"货品未送达", + ComplaintReasons6 = 6 //"货品有损坏", + ComplaintReasons7 = 7 //"骑手违规收取顾客其他费用", + ComplaintReasons69 = 69 //"骑手恶意取消订单", + ComplaintReasons71 = 71 //"骑手提前点击取货/送达", +) + const ( WaybillStatusRefuseFailedGetGoods = -70 WaybillStatusUnknown = 0