diff --git a/business/jxcallback/orderman/orderman_ext.go b/business/jxcallback/orderman/orderman_ext.go index f30ed7958..aa24fe2b4 100644 --- a/business/jxcallback/orderman/orderman_ext.go +++ b/business/jxcallback/orderman/orderman_ext.go @@ -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"` diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index 530e04959..a91974d9d 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -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"]) } diff --git a/business/model/api.go b/business/model/api.go index ce5b25814..940ded83f 100644 --- a/business/model/api.go +++ b/business/model/api.go @@ -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"` // 实际单品结算给门店老板钱 } diff --git a/business/model/dao/dao_order.go b/business/model/dao/dao_order.go index 3f321fb63..60984b4ec 100644 --- a/business/model/dao/dao_order.go +++ b/business/model/dao/dao_order.go @@ -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) diff --git a/business/partner/purchase/ebai/store.go b/business/partner/purchase/ebai/store.go index 844038ba2..ebfe6e15b 100644 --- a/business/partner/purchase/ebai/store.go +++ b/business/partner/purchase/ebai/store.go @@ -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) diff --git a/controllers/ebai_callback.go b/controllers/ebai_callback.go index 1e780fbf6..3b5e91f2d 100644 --- a/controllers/ebai_callback.go +++ b/controllers/ebai_callback.go @@ -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)