This commit is contained in:
邹宗楠
2025-02-06 16:55:28 +08:00
parent 5f268e3746
commit 70e6ba71a0
6 changed files with 73 additions and 57 deletions

View File

@@ -144,6 +144,7 @@ func (c *OrderManager) GetOrderSkuInfo(ctx *jxcontext.Context, vendorOrderID str
t3.img4 image4,
t3.img5 image5,
t3.desc_img descImg,
t3.price price,
t3.upc
FROM order_sku t1
LEFT JOIN goods_order t6 ON t6.vendor_order_id = t1.vendor_order_id AND t6.vendor_id = t1.vendor_id
@@ -354,36 +355,71 @@ func (c *OrderManager) GetOrders(ctx *jxcontext.Context, isIncludeFake bool, fro
task := tasksch.NewParallelTask("RefreshOrderFinancial", tasksch.NewParallelConfig().SetIsContinueWhenError(true), ctx,
func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
order := batchItemList[0].(*model.GoodsOrderExt)
var afsOrder *AfsOrderExt
sql := `
SELECT t1.afs_total_shop_money, t2.shop_price
FROM afs_order t1
LEFT JOIN (
SELECT a.afs_order_id, SUM(a.shop_price*a.count) shop_price
FROM order_sku_financial a
LEFT JOIN (
SELECT MAX(created_at), afs_order_id
FROM afs_order
WHERE status = ?
AND vendor_order_id = ?
GROUP BY 2
) b ON a.afs_order_id = b.afs_order_id
WHERE a.afs_order_id = b.afs_order_id AND a.is_afs_order = ?
GROUP BY 1) t2 ON t1.afs_order_id = t2.afs_order_id
WHERE t1.afs_order_id = t2.afs_order_id
`
sqlParams := []interface{}{model.AfsOrderStatusFinished, order.VendorOrderID,
model.YES}
if err = dao.GetRow(db, &afsOrder, sql, sqlParams); err == nil && afsOrder != nil {
if afsOrder.AfsTotalShopMoney != 0 && afsOrder.AfsTotalShopMoney != order.TotalShopMoney {
//报价,要减去商品的京西价
if order.EarningType == model.EarningTypeQuote {
order.JxIncome = afsOrder.AfsTotalShopMoney - order.EarningPrice - order.DesiredFee + (afsOrder.ShopPrice * int64(order.OrderPayPercentage) / int64(100))
} else {
order.JxIncome = afsOrder.AfsTotalShopMoney * int64(order.OrderPayPercentage/2) / 100
switch beego.BConfig.RunMode {
case model.ServerTypeFruits, model.ServerTypeVegetable:
var afsOrder *AfsOrderExt
sql := `
SELECT t1.afs_total_shop_money, t2.shop_price
FROM afs_order t1
LEFT JOIN (
SELECT a.afs_order_id, SUM(a.shop_price*a.count) shop_price
FROM order_sku_financial a
LEFT JOIN (
SELECT MAX(created_at), afs_order_id
FROM afs_order
WHERE status = ?
AND vendor_order_id = ?
GROUP BY 2
) b ON a.afs_order_id = b.afs_order_id
WHERE a.afs_order_id = b.afs_order_id AND a.is_afs_order = ?
GROUP BY 1) t2 ON t1.afs_order_id = t2.afs_order_id
WHERE t1.afs_order_id = t2.afs_order_id
`
sqlParams := []interface{}{model.AfsOrderStatusFinished, order.VendorOrderID, model.YES}
if err = dao.GetRow(db, &afsOrder, sql, sqlParams); err == nil && afsOrder != nil {
if afsOrder.AfsTotalShopMoney != 0 && afsOrder.AfsTotalShopMoney != order.TotalShopMoney {
//报价,要减去商品的京西价
if order.EarningType == model.EarningTypeQuote {
order.JxIncome = afsOrder.AfsTotalShopMoney - order.EarningPrice - order.DesiredFee + (afsOrder.ShopPrice * int64(order.OrderPayPercentage) / int64(100))
} else {
order.JxIncome = afsOrder.AfsTotalShopMoney * int64(order.OrderPayPercentage/2) / 100
}
}
}
case model.ServerTypePet:
afsSkuIDList := make([]int, 0, 0)
skuFinancial, _ := dao.GetStoreAfsOrderSkuList(db, []int{order.JxStoreID}, []int{model.AfsOrderStatusFinished, model.AfsOrderStatusNew})
if len(skuFinancial) != model.NO {
for _, v := range skuFinancial {
afsSkuIDList = append(afsSkuIDList, v.JxSkuID)
}
}
sql := `
SELECT sum(o.sale_price*o.count) - sum(n.price*o.count ) inCome
FROM order_sku o
INNER JOIN sku s on s.id = o.sku_id
INNER JOIN sku_name n ON n.id = s.name_id
WHERE o.vendor_order_id = ? `
incomeParam := []interface{}{order.VendorOrderID}
if len(afsSkuIDList) != model.NO {
sql += `AND o.sku_id NOT IN (
SELECT t1.sku_id
FROM order_sku_financial t1
JOIN afs_order t2 ON t2.vendor_order_id = t1.vendor_order_id AND t2.vendor_id = t1.vendor_id AND t2.afs_order_id = t1.afs_order_id
WHERE t2.vendor_order_id = ? AND IF(t2.jx_store_id > 0, t2.jx_store_id, t2.store_id) = ? AND t1.is_afs_order = 1 AND t2.status IN (` + dao.GenQuestionMarks(2) + `)
)`
incomeParam = append(incomeParam, order.VendorOrderID, order.JxStoreID, model.AfsOrderStatusFinished, model.AfsOrderStatusNew)
}
// 百货收益算法
var baiHuo = &struct {
Income int64 `json:"income"`
}{}
if err = dao.GetRow(db, baiHuo, sql, incomeParam); err == nil {
order.JxIncome = baiHuo.Income
}
}
// 统计订单的违约金
var damages = &struct {
Damages int64 `json:"damages"`

View File

@@ -750,11 +750,11 @@ func getGetStoresSkusBaseSQL(db *dao.DaoDB, storeIDs, skuIDs []int, upcs []strin
sqlParams = append(sqlParams, params["minimumPrice"])
}
}
if params["minStock"] != 0 && params["minStock"] != nil {
if params["minStock"] != nil {
sql += " AND t4.stock >= ? "
sqlParams = append(sqlParams, params["minStock"])
}
if params["maxStock"] != 0 && params["maxStock"] != nil {
if params["maxStock"] != nil {
sql += " AND t4.stock <= ? "
sqlParams = append(sqlParams, params["maxStock"])
}

View File

@@ -84,7 +84,8 @@ type OrderSkuExt struct {
Img4 string `orm:"size(512)" json:"image4"` //第三张图片
Img5 string `orm:"size(512)" json:"image5"` //第三张图片
DescImg string `orm:"size(255)" json:"descImg"` // 商品详情图片描述
Upc string `json:"upc"`
Upc string `json:"upc"` //
Price int64 `json:"price"` // 商品库价格
// RealEarningPrice int64 `json:"realEarningPrice"` // 实际单品结算给门店老板钱
}

View File

@@ -518,22 +518,14 @@ func GetStoreOrderSkuList4Afs2(db *DaoDB, vendorOrderIDs []string) (skuList []*O
return skuList, err
}
func GetStoreAfsOrderSkuList(db *DaoDB, storeIDs []int, finishedAtBegin, finishedAtEnd time.Time, statusList []int, isFinish bool) (afsSkuList []*model.OrderSkuFinancial, err error) {
func GetStoreAfsOrderSkuList(db *DaoDB, storeIDs []int, statusList []int) (afsSkuList []*model.OrderSkuFinancial, err error) {
sql := `
SELECT t1.*
FROM order_sku_financial t1
JOIN afs_order t2 ON t2.vendor_order_id = t1.vendor_order_id AND t2.vendor_id = t1.vendor_id AND t2.afs_order_id = t1.afs_order_id
WHERE t1.is_afs_order = 1
`
if isFinish {
sql += " AND t2.afs_finished_at >= ? AND t2.afs_finished_at <= ?"
} else {
sql += " AND t2.afs_created_at >= ? AND t2.afs_created_at <= ?"
}
sqlParams := []interface{}{
finishedAtBegin,
finishedAtEnd,
}
sqlParams := []interface{}{}
if len(storeIDs) > 0 {
sql += " AND IF(t2.jx_store_id > 0, t2.jx_store_id, t2.store_id) IN (" + GenQuestionMarks(len(storeIDs)) + ")"
sqlParams = append(sqlParams, storeIDs)

View File

@@ -535,12 +535,7 @@ func genStoreMapFromStore(store *tEbaiStoreInfo) map[string]interface{} {
// // params["phone"] = tel // 外卖客服联系电话,这个有时能修改,有时不能修改,暂时统一不改
// params["ivr_phone"] = tel // 订单提醒电话
// }
phone := ""
if store.MarketManPhone != "" {
phone = store.MarketManPhone
} else {
phone = model.VendorStoreTel
}
phone := store.Tel1
params["ivr_phone"] = phone //统一改为这个电话
if store.VendorStoreID != "" {
@@ -722,20 +717,12 @@ func (p *PurchaseHandler) CreateStore2(db *dao.DaoDB, storeID int, userName stri
//placeCounty, err := dao.GetPlaceByCode(db, storeDetail.DistrictCode)
//param["county"] = placeCounty.EbaiCode
phone := ""
if storeDetail.MarketManPhone != "" {
phone = storeDetail.MarketManPhone
} else {
phone = model.VendorStoreTel
}
phone := storeDetail.Tel1
ebaiInfo := EbaiSupplierInfo[params["supplierID"].(string)]
param["name"] = params["vendorStoreName"]
param["phone"] = phone
param["ivr_phone"] = phone
param["service_phone"] = storeDetail.Tel1
// param["phone"] = "18160030913"
// param["ivr_phone"] = "18160030913"
// param["service_phone"] = "18160030913"
param["service_phone"] = phone
param["address"] = storeDetail.Address
param["longitude"] = jxutils.IntCoordinate2Standard(storeDetail.Lng)
param["latitude"] = jxutils.IntCoordinate2Standard(storeDetail.Lat)

View File

@@ -67,7 +67,7 @@ func (c *EbaiController) EBaiMsgPush2FruitsOrPet(serverType string, msg map[stri
case model.ServerTypeFruits:
request, err = http.NewRequest(http.MethodPost, "http://callback-jxgy.jxc4.com/ebai/msg", strings.NewReader(utils.Map2URLValues(msg).Encode()))
case model.ServerTypePet:
request, err = http.NewRequest(http.MethodPost, "http://callback-gblm.jxc4.com/mtps/status", strings.NewReader(utils.Map2URLValues(msg).Encode()))
request, err = http.NewRequest(http.MethodPost, "http://callback-gblm.jxc4.com/ebai/msg", strings.NewReader(utils.Map2URLValues(msg).Encode()))
}
if err != nil {
return api.EbaiAPI.Err2CallbackResponse(ebaiapi.GetCmd(c.Ctx.Request), err, nil)