Merge branch 'mark' of e.coding.net:rosydev/jx-callback into mark

This commit is contained in:
gazebo
2019-12-23 15:44:42 +08:00
7 changed files with 119 additions and 0 deletions

View File

@@ -1,11 +1,17 @@
package orderman
import (
"fmt"
"time"
"git.rosy.net.cn/jx-callback/business/partner"
"git.rosy.net.cn/baseapi/platformapi/dadaapi"
"git.rosy.net.cn/baseapi/utils"
"git.rosy.net.cn/jx-callback/business/jxcallback/scheduler"
"git.rosy.net.cn/jx-callback/business/jxutils"
"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"
"git.rosy.net.cn/jx-callback/globals"
@@ -19,6 +25,17 @@ var (
model.WaybillStatusRefuseFailedGetGoods: model.OrderStatusRefuseFailedGetGoods,
model.WaybillStatusDeliverFailed: model.OrderStatusDeliverFailed,
}
complaintReasonsMap = map[int]string{
1: "骑手态度恶劣",
2: "骑手接单后未取货",
3: "骑手取货太慢",
4: "骑手送货太慢",
5: "货品未送达",
6: "货品有损坏",
7: "骑手违规收取顾客其他费用",
69: "骑手恶意取消订单",
71: "骑手提前点击取货/送达",
}
)
func (w *OrderManager) LoadPendingWaybills() []*model.Waybill {
@@ -220,3 +237,26 @@ func (c *OrderManager) LoadWaybill(vendorWaybillID string, waybillVendorID int)
}
return bill, err
}
func GetComplaintReasons() (complaintReasonList []*dadaapi.ComplaintReason) {
for k, v := range complaintReasonsMap {
complaintReason := &dadaapi.ComplaintReason{
ID: k,
Reason: v,
}
complaintReasonList = append(complaintReasonList, complaintReason)
}
return complaintReasonList
}
func ComplaintRider(ctx *jxcontext.Context, orderID string, vendorID, complaintID int) (err error) {
db := dao.GetDB()
p := partner.GetDeliveryPlatformFromVendorID(vendorID).Handler
wayBillList, err := dao.GetWayBillByOrderID(db, model.OrderStatusFinished, vendorID, orderID)
if err == nil && len(wayBillList) > 0 {
err = p.ComplaintRider(wayBillList[0], complaintID, complaintReasonsMap[complaintID])
} else {
return fmt.Errorf("未查询到到相关订单,订单状态要求必须是完成!订单号:[%v] ,厂商:[%v]", orderID, vendorID)
}
return err
}

View File

@@ -1027,3 +1027,23 @@ func LoadPendingOrders(db *DaoDB, orderCreatedAfter time.Time, beforStatus int)
err = GetRows(db, &orderList, sql, sqlParams...)
return orderList, err
}
func GetWayBillByOrderID(db *DaoDB, orderStatus, waybillVendorID int, vendorOrderID string) (wayBillList []*model.Waybill, err error) {
sql := `
SELECT b.*
FROM goods_order a
LEFT JOIN waybill b ON IF(a.waybill_vendor_id = -1,a.vendor_order_id,a.vendor_waybill_id) = b.vendor_waybill_id
WHERE a.vendor_order_id = ?
`
sqlParams := []interface{}{vendorOrderID}
if orderStatus > 0 {
sql += ` AND a.status = ?`
sqlParams = append(sqlParams, orderStatus)
}
if waybillVendorID > 0 {
sql += ` AND b.waybill_vendor_id = ?`
sqlParams = append(sqlParams, waybillVendorID)
}
err = GetRows(db, &wayBillList, sql, sqlParams...)
return wayBillList, err
}

View File

@@ -363,3 +363,8 @@ func limitOrderWeight(weight int) int {
}
return weight
}
func (c *DeliveryHandler) ComplaintRider(bill *model.Waybill, resonID int, resonContent string) (err error) {
err = api.DadaAPI.ComplaintRider(bill.VendorOrderID, resonID)
return err
}

View File

@@ -246,3 +246,8 @@ func limitOrderWeight(weight int) int {
}
return weight
}
func (c *DeliveryHandler) ComplaintRider(bill *model.Waybill, resonID int, resonContent string) (err error) {
err = api.MtpsAPI.EvaluateRider(utils.Str2Int64(bill.VendorWaybillID2), bill.VendorWaybillID, 1, resonContent)
return err
}

View File

@@ -38,6 +38,8 @@ type IDeliveryPlatformHandler interface {
CreateWaybill(order *model.GoodsOrder, maxDeliveryFee int64) (bill *model.Waybill, err error)
CancelWaybill(bill *model.Waybill, cancelReasonID int, cancelReason string) (err error)
GetWaybillFee(order *model.GoodsOrder) (deliveryFeeInfo *WaybillFeeInfo, err error)
//投诉骑手
ComplaintRider(bill *model.Waybill, resonID int, resonContent string) (err error)
}
type IDeliveryUpdateStoreHandler interface {

View File

@@ -875,3 +875,32 @@ func (c *OrderController) RefreshOrdersWithoutJxStoreID() {
return retVal, "", err
})
}
// @Title 获取投诉原因
// @Description 获取投诉原因
// @Param token header string true "认证token"
// @Success 200 {object} controllers.CallResult
// @Failure 200 {object} controllers.CallResult
// @router /GetComplaintReasons [get]
func (c *OrderController) GetComplaintReasons() {
c.callGetComplaintReasons(func(params *tOrderGetComplaintReasonsParams) (retVal interface{}, errCode string, err error) {
retVal = orderman.GetComplaintReasons()
return retVal, "", err
})
}
// @Title 投诉骑手(三方运送)
// @Description 投诉骑手(三方运送)
// @Param token header string true "认证token"
// @Param orderID formData string true "订单号"
// @Param vendorID formData int true "平台厂商ID"
// @Param complaintID formData int true "投诉原因ID"
// @Success 200 {object} controllers.CallResult
// @Failure 200 {object} controllers.CallResult
// @router /ComplaintRider [post]
func (c *OrderController) ComplaintRider() {
c.callComplaintRider(func(params *tOrderComplaintRiderParams) (retVal interface{}, errCode string, err error) {
err = orderman.ComplaintRider(params.Ctx, params.OrderID,params.VendorID, params.ComplaintID)
return retVal, "", err
})
}

View File

@@ -783,6 +783,15 @@ func init() {
Filters: nil,
Params: nil})
beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:OrderController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:OrderController"],
beego.ControllerComments{
Method: "ComplaintRider",
Router: `/ComplaintRider`,
AllowHTTPMethods: []string{"post"},
MethodParams: param.Make(),
Filters: nil,
Params: nil})
beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:OrderController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:OrderController"],
beego.ControllerComments{
Method: "ConfirmReceiveGoods",
@@ -864,6 +873,15 @@ func init() {
Filters: nil,
Params: nil})
beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:OrderController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:OrderController"],
beego.ControllerComments{
Method: "GetComplaintReasons",
Router: `/GetComplaintReasons`,
AllowHTTPMethods: []string{"get"},
MethodParams: param.Make(),
Filters: nil,
Params: nil})
beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:OrderController"] = append(beego.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:OrderController"],
beego.ControllerComments{
Method: "GetOrderInfo",