diff --git a/business/bidding/bidding.go b/business/bidding/bidding.go index dcb2524c0..3d556f7f2 100644 --- a/business/bidding/bidding.go +++ b/business/bidding/bidding.go @@ -2,6 +2,7 @@ package bidding import ( "git.rosy.net.cn/baseapi/utils" + "git.rosy.net.cn/jx-callback/business/jxcallback/orderman" "git.rosy.net.cn/jx-callback/business/jxutils/jxcontext" "git.rosy.net.cn/jx-callback/business/model" "git.rosy.net.cn/jx-callback/business/model/dao" @@ -39,3 +40,45 @@ func GetBiddingMsg(ctx *jxcontext.Context, param map[string]interface{}) (result } return } + +func GetBrandPayOrder(brandID int, created string) (map[string]interface{}, error) { + payOder, err := dao.GetBrandBill2(dao.GetDB(), brandID, "", model.BrandBillTypeExpend, model.BrandBillFeeTypeDelivery, "", created) + if err != nil { + return nil, err + } + + result := make(map[string]interface{}, 0) + for _, v := range payOder { + // 获取运单记录 + orderStatusList, err := orderman.GetOrderStatusCancelList(v.OrderId) + if err != nil { + return nil, err + } + + isRefund := false + for _, v2 := range orderStatusList { + if v2.VendorID == model.VendorIDMTPS && v2.VendorStatus == "50" { + isRefund = true + break + } + + if v2.VendorID == model.VendorIDFengNiao && v2.VendorStatus == "3" { + isRefund = true + break + } + if v2.VendorID == model.VendorIDDada && v2.VendorStatus == "4" { + isRefund = true + break + } + } + + if isRefund { + // 三方配送已经送达了,不退费 + continue + } else { + result[v.OrderId] = "ok" + } + + } + return result, nil +} diff --git a/business/jxcallback/orderman/orderman_ext.go b/business/jxcallback/orderman/orderman_ext.go index d756afe9c..d4ba1f31e 100644 --- a/business/jxcallback/orderman/orderman_ext.go +++ b/business/jxcallback/orderman/orderman_ext.go @@ -737,6 +737,25 @@ func GetOrderStatusList2(refVendorOrderID string, wayBillId string, orderType in return statusList, nil } +// GetOrderStatusCancelList 取消订单 +func GetOrderStatusCancelList(refVendorOrderID string) (statusList []*model.OrderStatus, err error) { + sql := ` + SELECT * + FROM order_status t1 + WHERE t1.ref_vendor_order_id = ? AND t1.vendor_order_id = ? AND t1.vendor_id = ? + ` + sqlParams := []interface{}{ + refVendorOrderID, + } + sql += " ORDER BY t1.status_time, t1.order_type DESC, t1.status" + + db := dao.GetDB() + if err = dao.GetRows(db, &statusList, sql, sqlParams...); err != nil { + return nil, err + } + return statusList, nil +} + func (c *OrderManager) GetOrdersFinancial(ctx *jxcontext.Context, fromDateStr, toDateStr string, params map[string]interface{}, offset, pageSize int) (pagedInfo *model.PagedInfo, err error) { globals.SugarLogger.Debugf("GetOrdersFinancial from:%s to:%s", fromDateStr, toDateStr) pageSize = jxutils.FormalizePageSize(pageSize) diff --git a/business/model/dao/store.go b/business/model/dao/store.go index 2ec42be80..2618de08f 100644 --- a/business/model/dao/store.go +++ b/business/model/dao/store.go @@ -1517,3 +1517,20 @@ func InsertBrandCategories(db *DaoDB, userName string, brandID int) (err error) // return courierStoreList, nil // } //} + +type RefundOrder struct { + OrderId string +} + +func GetBrandBill2(db *DaoDB, brandID int, vendorOrderID string, billType, feeType int, vendorWaybillOrderID string, createAt string) (result []*RefundOrder, err error) { + sql := ` + select a.vendor_order_id order_id from brand_bill a + inner JOIN order_status os on a.vendor_order_id = os.ref_vendor_order_id and os.status = 115 and os.vendor_id in (101,102,103) + WHERE a.brand_id in (131,132,137,139) and a.bill_type <> 1 and os.remark <> "没有及时抢单" and os.status <> -100 GROUP BY a.vendor_order_id +` + var data []*RefundOrder + if err := GetRows(GetDB(), &data, sql, nil); err != nil { + return nil, err + } + return data, err +} diff --git a/controllers/bidding.go b/controllers/bidding.go index 72565b9e7..8ac6d8747 100644 --- a/controllers/bidding.go +++ b/controllers/bidding.go @@ -27,3 +27,19 @@ func (c *BiddingController) GetBiddingMsg() { return retVal, "", err }) } + +// 获取退货账单 +// @Title 获取招标信息 +// @Description 获取招标信息 +// @Param token header string true "认证token" +// @Param brandId query int true "品牌" +// @Param start query string true "开始时间" +// @Success 200 {object} controllers.CallResult +// @Failure 200 {object} controllers.CallResult +// @router /GetRefundOrderList [get] +func (c *BiddingController) GetRefundOrderList() { + c.callGetRefundOrderList(func(params *tBindGetRefundOrderListParams) (interface{}, string, error) { + data, err := bidding.GetBrandPayOrder(params.BrandId, params.Start) + return data, "", err + }) +} diff --git a/routers/commentsRouter_controllers.go b/routers/commentsRouter_controllers.go index aaae36c3b..30a51f685 100644 --- a/routers/commentsRouter_controllers.go +++ b/routers/commentsRouter_controllers.go @@ -4043,6 +4043,14 @@ func init() { MethodParams: param.Make(), Filters: nil, Params: nil}) + web.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:BiddingController"] = append(web.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:BiddingController"], + web.ControllerComments{ + Method: "GetRefundOrderList", + Router: `/GetRefundOrderList`, + AllowHTTPMethods: []string{"get"}, + MethodParams: param.Make(), + Filters: nil, + Params: nil}) // 创建会话,客户群 web.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:SessionController"] = append(web.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:SessionController"],