1
This commit is contained in:
@@ -144,6 +144,7 @@ func (c *OrderManager) GetOrderSkuInfo(ctx *jxcontext.Context, vendorOrderID str
|
|||||||
t3.img4 image4,
|
t3.img4 image4,
|
||||||
t3.img5 image5,
|
t3.img5 image5,
|
||||||
t3.desc_img descImg,
|
t3.desc_img descImg,
|
||||||
|
t3.price price,
|
||||||
t3.upc
|
t3.upc
|
||||||
FROM order_sku t1
|
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
|
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,
|
task := tasksch.NewParallelTask("RefreshOrderFinancial", tasksch.NewParallelConfig().SetIsContinueWhenError(true), ctx,
|
||||||
func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
|
func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) {
|
||||||
order := batchItemList[0].(*model.GoodsOrderExt)
|
order := batchItemList[0].(*model.GoodsOrderExt)
|
||||||
var afsOrder *AfsOrderExt
|
switch beego.BConfig.RunMode {
|
||||||
sql := `
|
case model.ServerTypeFruits, model.ServerTypeVegetable:
|
||||||
SELECT t1.afs_total_shop_money, t2.shop_price
|
var afsOrder *AfsOrderExt
|
||||||
FROM afs_order t1
|
sql := `
|
||||||
LEFT JOIN (
|
SELECT t1.afs_total_shop_money, t2.shop_price
|
||||||
SELECT a.afs_order_id, SUM(a.shop_price*a.count) shop_price
|
FROM afs_order t1
|
||||||
FROM order_sku_financial a
|
LEFT JOIN (
|
||||||
LEFT JOIN (
|
SELECT a.afs_order_id, SUM(a.shop_price*a.count) shop_price
|
||||||
SELECT MAX(created_at), afs_order_id
|
FROM order_sku_financial a
|
||||||
FROM afs_order
|
LEFT JOIN (
|
||||||
WHERE status = ?
|
SELECT MAX(created_at), afs_order_id
|
||||||
AND vendor_order_id = ?
|
FROM afs_order
|
||||||
GROUP BY 2
|
WHERE status = ?
|
||||||
) b ON a.afs_order_id = b.afs_order_id
|
AND vendor_order_id = ?
|
||||||
WHERE a.afs_order_id = b.afs_order_id AND a.is_afs_order = ?
|
GROUP BY 2
|
||||||
GROUP BY 1) t2 ON t1.afs_order_id = t2.afs_order_id
|
) b ON a.afs_order_id = b.afs_order_id
|
||||||
WHERE t1.afs_order_id = t2.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
|
||||||
sqlParams := []interface{}{model.AfsOrderStatusFinished, order.VendorOrderID,
|
WHERE t1.afs_order_id = t2.afs_order_id
|
||||||
model.YES}
|
`
|
||||||
if err = dao.GetRow(db, &afsOrder, sql, sqlParams); err == nil && afsOrder != nil {
|
sqlParams := []interface{}{model.AfsOrderStatusFinished, order.VendorOrderID, model.YES}
|
||||||
if afsOrder.AfsTotalShopMoney != 0 && afsOrder.AfsTotalShopMoney != order.TotalShopMoney {
|
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))
|
if order.EarningType == model.EarningTypeQuote {
|
||||||
} else {
|
order.JxIncome = afsOrder.AfsTotalShopMoney - order.EarningPrice - order.DesiredFee + (afsOrder.ShopPrice * int64(order.OrderPayPercentage) / int64(100))
|
||||||
order.JxIncome = afsOrder.AfsTotalShopMoney * int64(order.OrderPayPercentage/2) / 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 {
|
var damages = &struct {
|
||||||
Damages int64 `json:"damages"`
|
Damages int64 `json:"damages"`
|
||||||
|
|||||||
@@ -750,11 +750,11 @@ func getGetStoresSkusBaseSQL(db *dao.DaoDB, storeIDs, skuIDs []int, upcs []strin
|
|||||||
sqlParams = append(sqlParams, params["minimumPrice"])
|
sqlParams = append(sqlParams, params["minimumPrice"])
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if params["minStock"] != 0 && params["minStock"] != nil {
|
if params["minStock"] != nil {
|
||||||
sql += " AND t4.stock >= ? "
|
sql += " AND t4.stock >= ? "
|
||||||
sqlParams = append(sqlParams, params["minStock"])
|
sqlParams = append(sqlParams, params["minStock"])
|
||||||
}
|
}
|
||||||
if params["maxStock"] != 0 && params["maxStock"] != nil {
|
if params["maxStock"] != nil {
|
||||||
sql += " AND t4.stock <= ? "
|
sql += " AND t4.stock <= ? "
|
||||||
sqlParams = append(sqlParams, params["maxStock"])
|
sqlParams = append(sqlParams, params["maxStock"])
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -84,7 +84,8 @@ type OrderSkuExt struct {
|
|||||||
Img4 string `orm:"size(512)" json:"image4"` //第三张图片
|
Img4 string `orm:"size(512)" json:"image4"` //第三张图片
|
||||||
Img5 string `orm:"size(512)" json:"image5"` //第三张图片
|
Img5 string `orm:"size(512)" json:"image5"` //第三张图片
|
||||||
DescImg string `orm:"size(255)" json:"descImg"` // 商品详情图片描述
|
DescImg string `orm:"size(255)" json:"descImg"` // 商品详情图片描述
|
||||||
Upc string `json:"upc"`
|
Upc string `json:"upc"` //
|
||||||
|
Price int64 `json:"price"` // 商品库价格
|
||||||
// RealEarningPrice int64 `json:"realEarningPrice"` // 实际单品结算给门店老板钱
|
// RealEarningPrice int64 `json:"realEarningPrice"` // 实际单品结算给门店老板钱
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -518,22 +518,14 @@ func GetStoreOrderSkuList4Afs2(db *DaoDB, vendorOrderIDs []string) (skuList []*O
|
|||||||
return skuList, err
|
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 := `
|
sql := `
|
||||||
SELECT t1.*
|
SELECT t1.*
|
||||||
FROM order_sku_financial 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
|
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
|
WHERE t1.is_afs_order = 1
|
||||||
`
|
`
|
||||||
if isFinish {
|
sqlParams := []interface{}{}
|
||||||
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,
|
|
||||||
}
|
|
||||||
if len(storeIDs) > 0 {
|
if len(storeIDs) > 0 {
|
||||||
sql += " AND IF(t2.jx_store_id > 0, t2.jx_store_id, t2.store_id) IN (" + GenQuestionMarks(len(storeIDs)) + ")"
|
sql += " AND IF(t2.jx_store_id > 0, t2.jx_store_id, t2.store_id) IN (" + GenQuestionMarks(len(storeIDs)) + ")"
|
||||||
sqlParams = append(sqlParams, storeIDs)
|
sqlParams = append(sqlParams, storeIDs)
|
||||||
|
|||||||
@@ -535,12 +535,7 @@ func genStoreMapFromStore(store *tEbaiStoreInfo) map[string]interface{} {
|
|||||||
// // params["phone"] = tel // 外卖客服联系电话,这个有时能修改,有时不能修改,暂时统一不改
|
// // params["phone"] = tel // 外卖客服联系电话,这个有时能修改,有时不能修改,暂时统一不改
|
||||||
// params["ivr_phone"] = tel // 订单提醒电话
|
// params["ivr_phone"] = tel // 订单提醒电话
|
||||||
// }
|
// }
|
||||||
phone := ""
|
phone := store.Tel1
|
||||||
if store.MarketManPhone != "" {
|
|
||||||
phone = store.MarketManPhone
|
|
||||||
} else {
|
|
||||||
phone = model.VendorStoreTel
|
|
||||||
}
|
|
||||||
params["ivr_phone"] = phone //统一改为这个电话
|
params["ivr_phone"] = phone //统一改为这个电话
|
||||||
|
|
||||||
if store.VendorStoreID != "" {
|
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)
|
//placeCounty, err := dao.GetPlaceByCode(db, storeDetail.DistrictCode)
|
||||||
//param["county"] = placeCounty.EbaiCode
|
//param["county"] = placeCounty.EbaiCode
|
||||||
|
|
||||||
phone := ""
|
phone := storeDetail.Tel1
|
||||||
if storeDetail.MarketManPhone != "" {
|
|
||||||
phone = storeDetail.MarketManPhone
|
|
||||||
} else {
|
|
||||||
phone = model.VendorStoreTel
|
|
||||||
}
|
|
||||||
ebaiInfo := EbaiSupplierInfo[params["supplierID"].(string)]
|
ebaiInfo := EbaiSupplierInfo[params["supplierID"].(string)]
|
||||||
param["name"] = params["vendorStoreName"]
|
param["name"] = params["vendorStoreName"]
|
||||||
param["phone"] = phone
|
param["phone"] = phone
|
||||||
param["ivr_phone"] = phone
|
param["ivr_phone"] = phone
|
||||||
param["service_phone"] = storeDetail.Tel1
|
param["service_phone"] = phone
|
||||||
// param["phone"] = "18160030913"
|
|
||||||
// param["ivr_phone"] = "18160030913"
|
|
||||||
// param["service_phone"] = "18160030913"
|
|
||||||
param["address"] = storeDetail.Address
|
param["address"] = storeDetail.Address
|
||||||
param["longitude"] = jxutils.IntCoordinate2Standard(storeDetail.Lng)
|
param["longitude"] = jxutils.IntCoordinate2Standard(storeDetail.Lng)
|
||||||
param["latitude"] = jxutils.IntCoordinate2Standard(storeDetail.Lat)
|
param["latitude"] = jxutils.IntCoordinate2Standard(storeDetail.Lat)
|
||||||
|
|||||||
@@ -67,7 +67,7 @@ func (c *EbaiController) EBaiMsgPush2FruitsOrPet(serverType string, msg map[stri
|
|||||||
case model.ServerTypeFruits:
|
case model.ServerTypeFruits:
|
||||||
request, err = http.NewRequest(http.MethodPost, "http://callback-jxgy.jxc4.com/ebai/msg", strings.NewReader(utils.Map2URLValues(msg).Encode()))
|
request, err = http.NewRequest(http.MethodPost, "http://callback-jxgy.jxc4.com/ebai/msg", strings.NewReader(utils.Map2URLValues(msg).Encode()))
|
||||||
case model.ServerTypePet:
|
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 {
|
if err != nil {
|
||||||
return api.EbaiAPI.Err2CallbackResponse(ebaiapi.GetCmd(c.Ctx.Request), err, nil)
|
return api.EbaiAPI.Err2CallbackResponse(ebaiapi.GetCmd(c.Ctx.Request), err, nil)
|
||||||
|
|||||||
Reference in New Issue
Block a user