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

This commit is contained in:
gazebo
2019-12-26 17:29:03 +08:00
8 changed files with 196 additions and 80 deletions

View File

@@ -254,12 +254,12 @@ func GetComplaintReasons() (complaintReasonList []*dadaapi.ComplaintReason) {
func ComplaintRider(ctx *jxcontext.Context, vendorOrderID string, vendorID, waybillVendorID, complaintID int) (err error) { func ComplaintRider(ctx *jxcontext.Context, vendorOrderID string, vendorID, waybillVendorID, complaintID int) (err error) {
db := dao.GetDB() db := dao.GetDB()
p := partner.GetDeliveryPlatformFromVendorID(vendorID).Handler p := partner.GetDeliveryPlatformFromVendorID(waybillVendorID).Handler
wayBillList, err := dao.GetWayBillByOrderID(db, model.OrderStatusFinished, vendorID, waybillVendorID, vendorOrderID) wayBillList, err := dao.GetWayBillByOrderID(db, model.OrderStatusFinished, vendorID, waybillVendorID, vendorOrderID)
if err == nil && len(wayBillList) > 0 { if err == nil && len(wayBillList) > 0 {
err = p.ComplaintRider(wayBillList[0], complaintID, complaintReasonsMap[complaintID]) err = p.ComplaintRider(wayBillList[0], complaintID, complaintReasonsMap[complaintID])
} else { } else {
return fmt.Errorf("未查询到到相关订单,订单状态要求必须是完成!订单号:[%v] ,厂商:[%v]", vendorOrderID, waybillVendorID) return fmt.Errorf("未查询到到相关订单,订单状态要求必须是完成!订单号:[%v] ,厂商:[%v],运送厂商:[%v]", vendorOrderID, vendorID, waybillVendorID)
} }
return err return err
} }

View File

@@ -101,6 +101,7 @@ func InitServiceInfo(version string, buildTime time.Time, gitCommit string) {
"payStatusName": model.PayStatusName, "payStatusName": model.PayStatusName,
"refundStatusName": model.RefundStatusName, "refundStatusName": model.RefundStatusName,
"autoReplyTypeName": model.AutoReplyTypeName, "autoReplyTypeName": model.AutoReplyTypeName,
"complaintReasons": model.ComplaintReasons,
}, },
} }
} }

View File

@@ -2766,9 +2766,12 @@ func FocusStoreSkusByExcelBin(ctx *jxcontext.Context, reader io.Reader, isAsync,
SkuRow: 1, SkuRow: 1,
} }
// xlsx, err := excelize.OpenFile("111.xlsx") // xlsx, err := excelize.OpenFile("111.xlsx")
taskSeqFunc := func(task *tasksch.SeqTask, step int, params ...interface{}) (result interface{}, err error) {
switch step {
case 0:
xlsx, err := excelize.OpenReader(reader) xlsx, err := excelize.OpenReader(reader)
if err != nil { if err != nil {
return "", err return result, err
} }
rows, _ := xlsx.GetRows(xlsx.GetSheetName(1)) rows, _ := xlsx.GetRows(xlsx.GetSheetName(1))
for rowNum, row := range rows { for rowNum, row := range rows {
@@ -2777,12 +2780,13 @@ func FocusStoreSkusByExcelBin(ctx *jxcontext.Context, reader io.Reader, isAsync,
} }
GetCellForFocusStoreSkus(db, rowNum, row, sheetParam, skuMap) GetCellForFocusStoreSkus(db, rowNum, row, sheetParam, skuMap)
} }
case 1:
for k, _ := range skuMap { for k, _ := range skuMap {
skuIDs = append(skuIDs, k) skuIDs = append(skuIDs, k)
} }
skuList, err := dao.GetSkus(db, skuIDs, nil, nil, nil) skuList, err := dao.GetSkus(db, skuIDs, nil, nil, nil)
if err != nil && len(skuList) == 0 { if err != nil && len(skuList) == 0 {
return return result, err
} }
for _, v := range skuList { for _, v := range skuList {
var ( var (
@@ -2816,7 +2820,19 @@ func FocusStoreSkusByExcelBin(ctx *jxcontext.Context, reader io.Reader, isAsync,
for _, v := range storeList { for _, v := range storeList {
storeIDs = append(storeIDs, v.ID) storeIDs = append(storeIDs, v.ID)
} }
hint, err = UpdateStoresSkus(ctx, storeIDs, skuBindInfos, false, isAsync, isContinueWhenError) case 2:
UpdateStoresSkus(ctx, storeIDs, skuBindInfos, false, isAsync, isContinueWhenError)
}
return result, err
}
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()
}
return hint, err return hint, err
} }
@@ -2845,6 +2861,9 @@ func FocusStoreSkusBySku(ctx *jxcontext.Context, skuIDs []int, isAsync, isContin
db := dao.GetDB() db := dao.GetDB()
skuList, err := dao.GetSkus(db, skuIDs, nil, nil, nil) skuList, err := dao.GetSkus(db, skuIDs, nil, nil, nil)
storeList, err := dao.GetStoreList(db, nil, nil, "") storeList, err := dao.GetStoreList(db, nil, nil, "")
taskSeqFunc := func(task *tasksch.SeqTask, step int, params ...interface{}) (result interface{}, err error) {
switch step {
case 0:
for _, v := range storeList { for _, v := range storeList {
storeIDs = append(storeIDs, v.ID) storeIDs = append(storeIDs, v.ID)
} }
@@ -2854,8 +2873,8 @@ func FocusStoreSkusBySku(ctx *jxcontext.Context, skuIDs []int, isAsync, isContin
IsSale: 1, IsSale: 1,
}) })
} }
task := tasksch.NewParallelTask("根据skuID部分关注商品", tasksch.NewParallelConfig().SetIsContinueWhenError(isContinueWhenError), ctx, case 1:
func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) { taskFunc := func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
store := batchItemList[0].(*model.Store) store := batchItemList[0].(*model.Store)
for k, v := range skuNameMap { for k, v := range skuNameMap {
midPrice, _ := dao.GetMidPriceByNameID(db, store.CityCode, k, utils.Time2Date(time.Now().AddDate(0, 0, -1))) midPrice, _ := dao.GetMidPriceByNameID(db, store.CityCode, k, utils.Time2Date(time.Now().AddDate(0, 0, -1)))
@@ -2868,12 +2887,25 @@ func FocusStoreSkusBySku(ctx *jxcontext.Context, skuIDs []int, isAsync, isContin
retVal = []*StoreSkuBindInfo{skuBindInfo} retVal = []*StoreSkuBindInfo{skuBindInfo}
} }
return retVal, err return retVal, err
}, storeList) }
tasksch.HandleTask(task, nil, true).Run() taskParallel := tasksch.NewParallelTask("根据skuID部分关注商品", tasksch.NewParallelConfig().SetIsContinueWhenError(isContinueWhenError), ctx, taskFunc, storeList)
result, err := task.GetResult(0) tasksch.HandleTask(taskParallel, task, true).Run()
for _, v := range result { result1, _ := taskParallel.GetResult(0)
for _, v := range result1 {
skuBindInfos = append(skuBindInfos, v.(*StoreSkuBindInfo)) skuBindInfos = append(skuBindInfos, v.(*StoreSkuBindInfo))
} }
hint, err = UpdateStoresSkus(ctx, storeIDs, skuBindInfos, false, isAsync, isContinueWhenError) 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()
}
return hint, err return hint, err
} }

View File

@@ -86,6 +86,18 @@ var (
OrderTypeAfsOrder: "售后单", OrderTypeAfsOrder: "售后单",
} }
ComplaintReasons = map[int]string{
ComplaintReasons1: "骑手态度恶劣",
ComplaintReasons2: "骑手接单后未取货",
ComplaintReasons3: "骑手取货太慢",
ComplaintReasons4: "骑手送货太慢",
ComplaintReasons5: "货品未送达",
ComplaintReasons6: "货品有损坏",
ComplaintReasons7: "骑手违规收取顾客其他费用",
ComplaintReasons69: "骑手恶意取消订单",
ComplaintReasons71: "骑手提前点击取货/送达",
}
MultiStoresVendorMap = map[int]int{ MultiStoresVendorMap = map[int]int{
VendorIDJD: 1, VendorIDJD: 1,
VendorIDMTWM: 0, VendorIDMTWM: 0,
@@ -204,6 +216,19 @@ const (
LockStatusLocked = 1 LockStatusLocked = 1
) )
//投诉原因
const (
ComplaintReasons1 = 1 //"骑手态度恶劣",
ComplaintReasons2 = 2 //"骑手接单后未取货"
ComplaintReasons3 = 3 //"骑手取货太慢",
ComplaintReasons4 = 4 //"骑手送货太慢",
ComplaintReasons5 = 5 //"货品未送达",
ComplaintReasons6 = 6 //"货品有损坏",
ComplaintReasons7 = 7 //"骑手违规收取顾客其他费用",
ComplaintReasons69 = 69 //"骑手恶意取消订单",
ComplaintReasons71 = 71 //"骑手提前点击取货/送达",
)
const ( const (
WaybillStatusRefuseFailedGetGoods = -70 WaybillStatusRefuseFailedGetGoods = -70
WaybillStatusUnknown = 0 WaybillStatusUnknown = 0

View File

@@ -1032,7 +1032,7 @@ func GetWayBillByOrderID(db *DaoDB, orderStatus, vendorID, waybillVendorID int,
sql := ` sql := `
SELECT b.* SELECT b.*
FROM goods_order a FROM goods_order a
JOIN waybill b ON IF(a.waybill_vendor_id = -1,a.vendor_order_id,a.vendor_waybill_id) = b.vendor_waybill_id AND b.vendor_id = a.vendor_id JOIN waybill b ON IF(a.waybill_vendor_id = -1,a.vendor_order_id,a.vendor_waybill_id) = b.vendor_waybill_id AND b.order_vendor_id = a.vendor_id
WHERE a.vendor_order_id = ? WHERE a.vendor_order_id = ?
AND a.vendor_id = ? AND a.vendor_id = ?
` `
@@ -1051,3 +1051,52 @@ func GetWayBillByOrderID(db *DaoDB, orderStatus, vendorID, waybillVendorID int,
err = GetRows(db, &wayBillList, sql, sqlParams...) err = GetRows(db, &wayBillList, sql, sqlParams...)
return wayBillList, err return wayBillList, err
} }
func GetOrdersSupplement(db *DaoDB, storIDs, vendorIDs []int, vendorOrderID string, fromTime, toTime time.Time, status, stype, offset, pageSize int) (orderSupplementFee []*model.OrderSupplementFee, totalCount int, err error) {
sql := `
SELECT SQL_CALC_FOUND_ROWS *
FROM order_supplement_fee
WHERE 1=1
AND deleted_at = ?
`
sqlParams := []interface{}{
utils.DefaultTimeValue,
}
if !utils.IsTimeZero(fromTime) {
sql += " AND supplement_time >= ?"
sqlParams = append(sqlParams, fromTime)
}
if !utils.IsTimeZero(toTime) {
sql += " AND supplement_time <= ?"
sqlParams = append(sqlParams, toTime)
}
if len(storIDs) > 0 {
sql += " AND store_id IN (" + GenQuestionMarks(len(storIDs)) + ")"
sqlParams = append(sqlParams, storIDs)
}
if len(vendorIDs) > 0 {
sql += " AND store_id IN (" + GenQuestionMarks(len(vendorIDs)) + ")"
sqlParams = append(sqlParams, vendorIDs)
}
if vendorOrderID != "" {
sql += " AND vendor_order_id = ?"
sqlParams = append(sqlParams, vendorOrderID)
}
if status >= 0 {
sql += " AND status = ?"
sqlParams = append(sqlParams, status)
}
if stype >= 0 {
sql += " AND type = ?"
sqlParams = append(sqlParams, stype)
}
sql += `
LIMIT ? OFFSET ?`
sqlParams = append(sqlParams, pageSize, offset)
Begin(db)
defer Commit(db)
if err = GetRows(db, &orderSupplementFee, sql, sqlParams...); err == nil {
totalCount = GetLastTotalRowCount(db)
}
return orderSupplementFee, totalCount, err
}

View File

@@ -344,6 +344,11 @@ type OrderPayRefund struct {
OriginalData string `orm:"type(text)" json:"-"` 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 { func IsWaybillPlatformOwn(bill *Waybill) bool {

View File

@@ -388,7 +388,9 @@ func limitOrderWeight(weight int) int {
} }
func (c *DeliveryHandler) ComplaintRider(bill *model.Waybill, resonID int, resonContent string) (err error) { func (c *DeliveryHandler) ComplaintRider(bill *model.Waybill, resonID int, resonContent string) (err error) {
if globals.EnableStoreWrite {
err = api.DadaAPI.ComplaintRider(bill.VendorOrderID, resonID) err = api.DadaAPI.ComplaintRider(bill.VendorOrderID, resonID)
}
return err return err
} }

View File

@@ -253,7 +253,9 @@ func limitOrderWeight(weight int) int {
} }
func (c *DeliveryHandler) ComplaintRider(bill *model.Waybill, resonID int, resonContent string) (err error) { func (c *DeliveryHandler) ComplaintRider(bill *model.Waybill, resonID int, resonContent string) (err error) {
if globals.EnableStoreWrite {
err = api.MtpsAPI.EvaluateRider(utils.Str2Int64(bill.VendorWaybillID2), bill.VendorWaybillID, 1, resonContent) err = api.MtpsAPI.EvaluateRider(utils.Str2Int64(bill.VendorWaybillID2), bill.VendorWaybillID, 1, resonContent)
}
return err return err
} }