This commit is contained in:
邹宗楠
2026-07-06 10:56:17 +08:00
parent 5bbc71a47f
commit 7e0cd4a82c
20 changed files with 57544 additions and 57232 deletions

View File

@@ -4,12 +4,14 @@ import (
"encoding/json"
"errors"
"fmt"
"git.rosy.net.cn/baseapi/platformapi/mtwmapi"
"git.rosy.net.cn/baseapi/utils"
"git.rosy.net.cn/jx-callback/business/jxutils"
"git.rosy.net.cn/jx-callback/business/model"
"git.rosy.net.cn/jx-callback/business/model/dao"
"git.rosy.net.cn/jx-callback/business/partner"
"git.rosy.net.cn/jx-callback/business/partner/purchase/jx/localjx"
"git.rosy.net.cn/jx-callback/business/partner/purchase/mtwm"
"github.com/astaxie/beego/server/web"
"net"
"strings"
@@ -595,17 +597,24 @@ func (c *JxOrderController) CreateBrandOrder() {
// @Description 上传订单拣货图片
// @Param token header string true "认证token"
// @Param orderId formData string true "订单ID"
// @Param vendorID formData int false "平台ID"
// @Param imgs formData string true "图片url,图片大小限制为10M长宽比例需要限制为4:3[1,3,2]"
// @Param vendorID formData int true "平台ID"
// @Param mediaList formData string true "返图参数"
// @Success 200 {object} controllers.CallResult
// @Failure 200 {object} controllers.CallResult
// @router /UploadOrderPicking [post]
func (c *JxOrderController) UploadOrderPicking() {
c.callUploadOrderPicking(func(params *tJxorderUploadOrderPickingParams) (retVal interface{}, errCode string, err error) {
var imgList []string
if err = jxutils.Strings2Objs(params.Imgs, &imgList); err != nil {
return retVal, "", err
var mediaList = make([]*mtwmapi.UploadMedia, 0, 0)
if err = json.Unmarshal([]byte(params.MediaList), &mediaList); err != nil {
return nil, "", err
}
var imgList []string
for _, v := range mediaList {
imgList = append(imgList, v.Url)
}
localOrder, err := partner.CurOrderManager.LoadOrder(params.OrderId, params.VendorID)
if err != nil {
return retVal, "", err
@@ -614,12 +623,12 @@ func (c *JxOrderController) UploadOrderPicking() {
if handler == nil {
return retVal, "", fmt.Errorf("不存在的厂商ID:%d", params.VendorID)
}
err = handler.UploadPickingImg(localOrder, imgList)
err = handler.UploadPickingImg(localOrder, mediaList)
if err == nil {
originalOrder := &model.GoodsOrderImg{
VendorOrderID: localOrder.VendorOrderID,
VendorID: localOrder.VendorID,
OriginalData: params.Imgs,
OriginalData: string(utils.MustMarshal(imgList)),
CreatedAt: time.Now(),
}
dao.CreateEntity(dao.GetDB(), originalOrder)
@@ -633,3 +642,22 @@ func (c *JxOrderController) UploadOrderPicking() {
return retVal, "", err
})
}
// @Title 获取订单返图详情
// @Description 获取订单返图详情
// @Param token header string true "认证token"
// @Param orderId formData string true "订单ID"
// @Param vendorID formData int false "平台ID"
// @Success 200 {object} controllers.CallResult
// @Failure 200 {object} controllers.CallResult
// @router /GetOrderRequirePicture [get]
func (c *JxOrderController) GetOrderRequirePicture() {
c.callGetOrderRequirePicture(func(params *tJxorderGetOrderRequirePictureParams) (retVal interface{}, errCode string, err error) {
localOrder, err := partner.CurOrderManager.LoadOrder(params.OrderId, params.VendorID)
if err != nil {
return nil, "", err
}
retVal, err = mtwm.GetVendorDetail(localOrder)
return retVal, errCode, err
})
}

View File

@@ -2,8 +2,11 @@ package controllers
import (
"encoding/json"
"fmt"
"git.rosy.net.cn/baseapi/platformapi/dingdingapi"
"git.rosy.net.cn/baseapi/platformapi/mtwmapi"
"git.rosy.net.cn/baseapi/utils"
"git.rosy.net.cn/jx-callback/business/jxutils/ddmsg"
"git.rosy.net.cn/jx-callback/business/model"
"git.rosy.net.cn/jx-callback/business/model/dao"
"git.rosy.net.cn/jx-callback/business/partner/purchase/mtwm"
@@ -156,7 +159,6 @@ func (c *MtwmController) Invoice() {
data := &mtwmapi.InvoiceCallback{}
utils.Map2StructByJson(utils.URLValues2Map(msg.FormData), data, false)
// 消息通知
if err := mtwm.InvoiceCallback(data); err != nil {
globals.SugarLogger.Errorf("mtwm Invoice err := %v", err)
@@ -217,3 +219,75 @@ func pushMTWMOrder2GY(value url.Values, msgType string, serverType string) *mtwm
return &result
}
// ImgCheckOutCallback 针对返图订单,当实拍审核失败时,通过该消息通知三方重新修改实拍
// http://callback.jxc4.com//mtwm/imgCheckOutCallback
func (c *MtwmController) ImgCheckOutCallback() {
data, err := ioutil.ReadAll(c.Ctx.Request.Body)
if err != nil {
c.Data["json"] = map[string]interface{}{"result_code": -1}
c.ServeJSON()
return
}
ddmsg.SendUserMessage(dingdingapi.MsgTyeText, "2452A93EEB9111EC9B06525400E86DC0", "美团返图审核通知", fmt.Sprintf("美团返图审核:%s", string(data)))
globals.SugarLogger.Debugf("-----data := %s", string(data))
callback := &CheckBackParam{}
if err = json.Unmarshal(data, callback); err != nil {
globals.SugarLogger.Debugf("-----data := %s", string(data))
c.Data["json"] = map[string]interface{}{"result_code": -1}
c.ServeJSON()
return
}
globals.SugarLogger.Debugf("-----data := %s", utils.Format4Output(callback, false))
c.Data["json"] = map[string]interface{}{"result_code": 1}
c.ServeJSON()
}
type CheckBackParam struct {
OrderViewId string `json:"order_view_id"` // 订单号,商家可根据订单号查询订单当前的详细信息。
AuditStatus int `json:"audit_status"` // 审核状态2:审核失败 3:审核通过
RiskInfoList []struct {
RiskInfo int `json:"risk_info"` // 1.含违规信息 2.重复上传 3.图片模糊
RiskDesc string `json:"risk_desc"` // 含违规信息
Url string `json:"url"` // 审核失败的图片url注意为美团侧转换后的url
} `json:"risk_info_list"`
}
// OrderImgStatusCallback 针对强制返图订单,当订单返图就绪满足发配条件时,通过该消息通知三方是否可发配
// http://callback.jxc4.com//mtwm/orderImgStatusCallback
func (c *MtwmController) OrderImgStatusCallback() {
data, err := ioutil.ReadAll(c.Ctx.Request.Body)
if err != nil {
c.Data["json"] = map[string]interface{}{"result_code": -1}
c.ServeJSON()
return
}
ddmsg.SendUserMessage(dingdingapi.MsgTyeText, "2452A93EEB9111EC9B06525400E86DC0", "美团返图发货通知", fmt.Sprintf("美团发货审核:%s", string(data)))
globals.SugarLogger.Debugf("-----data := %s", string(data))
callback := &CanSendDelivery{}
if err = json.Unmarshal(data, callback); err != nil {
globals.SugarLogger.Debugf("-----data := %s", string(data))
c.Data["json"] = map[string]interface{}{"result_code": -1}
c.ServeJSON()
return
}
globals.SugarLogger.Debugf("-----data := %s", utils.Format4Output(callback, false))
c.Data["json"] = map[string]interface{}{"result_code": 1}
c.ServeJSON()
}
type CanSendDelivery struct {
OrderViewId string `json:"order_view_id"` // 订单号,商家可根据订单号查询订单当前的详细信息。
SendTime string `json:"send_time"` // 消息发送时间,秒级时间戳
EnableDispatch bool `json:"enable_dispatch"` // true-可发配 false-不可发配
DispatchConditionDetail []struct {
ConditionType int `json:"condition_type"` // 发配条件限制类型 1-强制返图
EnableDispatch bool `json:"enable_dispatch"` // 某个发配条件限制类型是否已经满足
} // 发货条件明细
}