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

This commit is contained in:
richboo111
2023-04-27 14:30:59 +08:00
10 changed files with 119 additions and 12 deletions

View File

@@ -3,6 +3,11 @@ package delivery
import (
"crypto/rand"
"fmt"
"git.rosy.net.cn/baseapi"
"git.rosy.net.cn/baseapi/platformapi/mtwmapi"
"git.rosy.net.cn/jx-callback/business/jxutils/jxcontext"
"git.rosy.net.cn/jx-callback/business/jxutils/tasksch"
"git.rosy.net.cn/jx-callback/business/partner/purchase/mtwm"
"math/big"
"time"
@@ -35,7 +40,7 @@ func GetOrderRiderInfoToPlatform(orderId string, wayBillStatus int) {
params["isIncludeFake"] = true
params["mustInvoice"] = false
params["adjustCount"] = 0
params["waybillVendorIDs"] = `[101,102,103,105]`
//params["waybillVendorIDs"] = `[101,102,103,105]`
if orderId != "" { // 订单id会忽略其他参数
params["keyword"] = orderId
} else {
@@ -84,9 +89,14 @@ func GetOrderRiderInfoToPlatform(orderId string, wayBillStatus int) {
if riderInfo == nil || wayBillStatus == model.OrderStatusNew || wayBillStatus == model.OrderStatusCanceled || (riderInfo.CourierName == "" && v.WaybillVendorID == -1 && v.DeliveryType == "store") { // 真商家自送
riderInfo.OrderId = v.VendorOrderID
riderInfo.CourierName = "石锋"
riderInfo.CourierName = "门店老板"
riderInfo.CourierPhone = "18048531223"
riderInfo.LogisticsProviderCode = "10017"
riderInfo.LogisticsStatus = v.Status
storeDetail, err := dao.GetStoreDetail(dao.GetDB(), v.JxStoreID, 0, "")
if err != nil {
riderInfo.CourierPhone = storeDetail.Tel1
}
}
switch riderInfo.LogisticsStatus {
@@ -208,7 +218,7 @@ func PullTiktokRiderInfo(riderInfo *mtpsapi.RiderInfo) {
}
}
//将以过期订单状态为配送中的订单修改为完成状态
// UpdateOrder2Complete 将以过期订单状态为配送中的订单修改为完成状态
func UpdateOrder2Complete() {
sql := `UPDATE goods_order g SET g.status=110 WHERE g.status=20 AND g.order_created_at < ?`
sqlParams := []interface{}{
@@ -352,3 +362,66 @@ func UpdateFakeWayBillToTiktok() {
}
}
// LoadingStoreOrderSettleAmount 获取平台门店的结算信息(订单的配送费和准时保险费)
func LoadingStoreOrderSettleAmount(startTime, endTime int64, jxStoreId []int) error {
var (
db = dao.GetDB()
now = time.Now()
from = time.Date(now.Year(), now.Month(), now.Day()-2, 0, 0, 0, 0, time.Local).Unix()
to = time.Date(now.Year(), now.Month(), now.Day()-1, 23, 59, 59, 59, time.Local).Unix()
)
if startTime != 0 && endTime != 0 {
from = startTime
to = endTime
}
storeMapList, err := dao.GetStoresMapList(db, []int{model.VendorIDMTWM}, jxStoreId, []int{model.StoreStatusClosed, model.StoreStatusHaveRest, model.StoreStatusOpened}, model.StoreStatusAll, 0, "", "", "")
if err != nil || len(storeMapList) == model.NO {
globals.SugarLogger.Errorf("获取美团门店列表异常: %v", err)
return err
}
taskFunc := func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
storeListValue := batchItemList[0].([]*model.StoreMap)
for _, v := range storeListValue {
storeOrder, err := mtwm.GetAPI(v.VendorOrgCode, v.StoreID, v.VendorStoreID).GetStoreBillList(&mtwmapi.Bill{
AppPoiCode: v.VendorStoreID,
StartDate: from,
EndDate: to,
Offset: 0,
Limit: 200,
})
if err != nil {
return nil, err
}
for _, so := range storeOrder {
// 更新订单的结算信息
if so.PlatformSettlement > 0 {
goodsOrderSql := `UPDATE goods_order g SET g.total_shop_money = ? WHERE g.vendor_order_id = ? `
if _, err := dao.ExecuteSQL(db, goodsOrderSql, []interface{}{so.PlatformSettlement + so.TimingFee + so.DeliveryFee, so.OrderId}...); err != nil {
globals.SugarLogger.Debugf("更新订单结算信息错误: %v", err)
}
}
// 更新订单的配送信息
if so.TimingFee != 0 || so.DeliveryFee != 0 {
wayBillSql := `UPDATE waybill w SET w.desired_fee = ?,w.punctual_fee = ? WHERE g.vendor_order_id = ? AND g.vendor_waybill_id = ? `
if _, err := dao.ExecuteSQL(db, wayBillSql, []interface{}{so.DeliveryFee * -1, so.TimingFee * -1, so.OrderId, so.OrderId}...); err != nil {
globals.SugarLogger.Debugf("更新订单物流结算信息错误: %v", err)
}
}
}
}
return retVal, err
}
task := tasksch.NewParallelTask("更新美团订单配送费/保险费/结算信息", tasksch.NewParallelConfig().SetParallelCount(4), jxcontext.AdminCtx, taskFunc, storeMapList)
tasksch.HandleTask(task, nil, true).Run()
if _, err = task.GetResult(0); err != nil {
baseapi.SugarLogger.Debugf("LoadingStoreOrderSettleAmount :%v", err)
return err
}
return nil
}