This commit is contained in:
邹宗楠
2024-07-01 09:01:18 +08:00
parent 851d30cbc0
commit 741773cb3e
3 changed files with 27 additions and 26 deletions

View File

@@ -235,15 +235,23 @@ func (c *OrderManager) addAfsOrderStatus(db *dao.DaoDB, orderStatus *model.Order
}
}
}
utils.CallFuncLogError(func() error {
_, err = dao.UpdateEntity(db, order, updateFields...)
return err
}, "addAfsOrderStatus update orderID:%s, status:%v", order.VendorOrderID, orderStatus)
_, err = dao.UpdateEntity(db, order, updateFields...)
//utils.CallFuncLogError(func() error {
// _, err = dao.UpdateEntity(db, order, updateFields...)
// return err
//}, "addAfsOrderStatus update orderID:%s, status:%v", order.VendorOrderID, orderStatus)
} else {
isDuplicated = true
}
} else {
// 这是发现有部分订单已经完成,但是没有完成时间影响到导出结果错误
if model.IsAfsOrderFinalStatus(orderStatus.Status) || orderStatus.Status == model.AfsOrderStatusNew && order.VendorID == model.VendorIDMTWM {
if afsOrderObj, _ := partner.CurOrderManager.LoadAfsOrder(orderStatus.VendorOrderID, orderStatus.VendorID); afsOrderObj != nil {
afsOrderObj.AfsFinishedAt = time.Now()
afsOrderObj.Status = orderStatus.Status
dao.UpdateEntity(db, afsOrderObj, "AfsFinishedAt", "Status")
}
}
if dao.IsNoRowsError(err) { // todo 消息错序
err = nil
} else {

View File

@@ -452,15 +452,20 @@ func (c *OrderManager) ExportOrders(ctx *jxcontext.Context, fromDateStr, toDateS
var order *model.GoodsOrderExt
var orders2 []*model.GoodsOrderExt
for _, v := range orders {
globals.SugarLogger.Debugf("========orders := %s", utils.Format4Output(orders, false))
globals.SugarLogger.Debugf("========afsSkuMap := %s", utils.Format4Output(afsSkuMap, false))
if afsInfo := afsSkuMap[jxutils.ComposeUniversalOrderID(v.VendorOrderID, v.VendorID)]; afsInfo != nil {
if afsInfo[v.SkuID] != nil && afsInfo[v.SkuID].Count > 0 {
if afsInfo[v.SkuID] != nil && afsInfo[v.SkuID].Count >= 0 {
minus := afsInfo[v.SkuID].Count
if minus > v.SkuCount2 {
minus = v.SkuCount2
}
v.SkuCount2 -= minus
if minus == 0 { // 有售后单,且通过,部分商品缺重等情况
if v.EarningType == model.EarningTypeQuote {
v.SkuShopPrice = v.SkuShopPrice - utils.Float64TwoInt(float64(afsInfo[v.SkuID].UserMoney)/float64(v.SkuSalePrice)*float64(v.SkuShopPrice))
v.SkuSalePrice = v.SkuSalePrice - int(afsInfo[v.SkuID].UserMoney)
v.SkuEarningPrice = v.SkuEarningPrice - utils.Float64TwoInt(float64(afsInfo[v.SkuID].UserMoney)/float64(v.SkuSalePrice)*float64(v.SkuEarningPrice))
}
}
afsInfo[v.SkuID].Count -= minus
}
}
@@ -485,9 +490,9 @@ func (c *OrderManager) ExportOrders(ctx *jxcontext.Context, fromDateStr, toDateS
skuStr = strings.Join([]string{
utils.Int2Str(v.SkuID),
utils.Int2Str(v.SkuCount2),
utils.Int2Str(v.SkuShopPrice),
utils.Int2Str(v.SkuSalePrice),
utils.Int2Str(earningPrice),
utils.Int2Str(v.SkuShopPrice), // 本地结算金额
utils.Int2Str(v.SkuSalePrice), // 售卖金额
utils.Int2Str(earningPrice), //
}, ",")
} else { // 扣点
skuStr = strings.Join([]string{
@@ -1293,12 +1298,13 @@ func (c *OrderManager) getAfsOrderSkuInfo4ExportOrders(ctx *jxcontext.Context, f
SELECT t2.*
FROM afs_order t1
JOIN order_sku_financial t2 ON t2.vendor_order_id = t1.vendor_order_id AND t2.vendor_id = t1.vendor_id AND t2.is_afs_order = 1 AND t1.afs_order_id = t2.afs_order_id
WHERE t1.afs_finished_at >= ? AND t1.afs_finished_at <= ? AND t1.status = ?
WHERE t1.afs_finished_at >= ? AND t1.afs_finished_at <= ? AND (t1.status = ? OR t1.status = ?)
`
sqlParams := []interface{}{
fromDate,
toDate,
model.AfsOrderStatusFinished,
model.AfsOrderStatusNew,
}
var skus []*model.OrderSkuFinancial
if err = dao.GetRows(dao.GetDB(), &skus, sql, sqlParams...); err == nil {
@@ -1313,6 +1319,7 @@ func (c *OrderManager) getAfsOrderSkuInfo4ExportOrders(ctx *jxcontext.Context, f
skuMap[key][skuID] = v
} else {
skuMap[key][skuID].Count += v.Count
skuMap[key][skuID].UserMoney += v.UserMoney
}
}
}

View File

@@ -197,20 +197,6 @@ func (c *PurchaseHandler) onAfsOrderMsg(msg *mtwmapi.CallbackMsg) (retVal *mtwma
}
// 已经审核过的售后单子
if orderStatus.Status == model.AfsOrderStatusNew || orderStatus.Status == model.AfsOrderStatusFinished {
// 平台结算金额
/*vendorSettle, err := mtmApi.OrderGetOrderDetail(utils.Str2Int64(order.VendorOrderID), true) // 退款列表
if err == nil {
if poiReceiveDetailStr := utils.Interface2String(vendorSettle["poi_receive_detail"]); poiReceiveDetailStr != "" {
var poiReceiveDetail *mtwmapi.PoiReceiveDetailInfo
utils.UnmarshalUseNumber([]byte(poiReceiveDetailStr), &poiReceiveDetail)
if poiReceiveDetail != nil {
}
}
} else {
globals.SugarLogger.Debugf("美团平台售后获取结算信息错误: = %v", err)
ddmsg.SendUserMessage(dingdingapi.MsgTyeText, "2452A93EEB9111EC9B06525400E86DC0", "美团平台售后获取结算信息错误", fmt.Sprintf("orderid := %d,%s", model.VendorIDMTWM, order.VendorOrderID))
}*/
// 售后金额
refundDetail, err := mtmApi.GetOrderRefundDetail(utils.Str2Int64(order.VendorOrderID), 0)
if err == nil && len(refundDetail) > 0 {