1
This commit is contained in:
@@ -490,9 +490,7 @@ func SeparateUnBind(param *lakala.SeparateUnBindReq) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// SeparateQueryAmt 可分账金额查询
|
// SeparateQueryAmt 可分账金额查询
|
||||||
func SeparateQueryAmt(merchantNo, logNo, logDate string) (*lakala.SeparateQueryAmtResp, error) {
|
func SeparateQueryAmt(merchantNo, logDate, logNo string) (*lakala.SeparateQueryAmtResp, error) {
|
||||||
logNo = lakala.GetOrderNumber(8)
|
|
||||||
logDate = utils.Time2TimeStrByFormat(time.Now(), "20060102")
|
|
||||||
result, err := api.LaKaLaApi.SeparateQueryAmt(merchantNo, logNo, logDate)
|
result, err := api.LaKaLaApi.SeparateQueryAmt(merchantNo, logNo, logDate)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
@@ -519,7 +517,7 @@ func Separate(ctx *jxcontext.Context, param *lakala.OrderSeparateReq) (string, s
|
|||||||
param.OutSeparateNo = lakala.GetOrderNumber(10)
|
param.OutSeparateNo = lakala.GetOrderNumber(10)
|
||||||
param.NotifyUrl = lakala.CallbackLaKaLaSeparateUrl
|
param.NotifyUrl = lakala.CallbackLaKaLaSeparateUrl
|
||||||
|
|
||||||
status, separateNo, err := api.LaKaLaApi.Separate(param)
|
status, separateNo, logNo, err := api.LaKaLaApi.Separate(param)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return "", "", err
|
return "", "", err
|
||||||
}
|
}
|
||||||
@@ -532,6 +530,7 @@ func Separate(ctx *jxcontext.Context, param *lakala.OrderSeparateReq) (string, s
|
|||||||
FinishDate: "",
|
FinishDate: "",
|
||||||
TotalAmt: param.TotalAmt,
|
TotalAmt: param.TotalAmt,
|
||||||
Status: status,
|
Status: status,
|
||||||
|
LogNo: logNo,
|
||||||
DetailData: string(recv),
|
DetailData: string(recv),
|
||||||
Remark: "分账",
|
Remark: "分账",
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -127,6 +127,7 @@ type LakalaSeparateAmt struct {
|
|||||||
CmdType string `orm:"column(cmd_type);size(32)" json:"cmdType"` // SEPARATE:分账 CANCEL:分账撤销FALLBACK:分账回退
|
CmdType string `orm:"column(cmd_type);size(32)" json:"cmdType"` // SEPARATE:分账 CANCEL:分账撤销FALLBACK:分账回退
|
||||||
SeparateNo string `orm:"column(separate_no);size(32)" json:"separateNo"` // 分账系统生成唯一流水
|
SeparateNo string `orm:"column(separate_no);size(32)" json:"separateNo"` // 分账系统生成唯一流水
|
||||||
Status string `orm:"column(status);size(32)" json:"status1"` // 分账状态
|
Status string `orm:"column(status);size(32)" json:"status1"` // 分账状态
|
||||||
|
LogNo string `orm:"column(log_no);size(32)" json:"logNo"` // 交易流水号
|
||||||
//SeparateNo2 string `orm:"column(separate_no2);size(32)" json:"separateNo2"` // 分账撤销系统生成唯一流水
|
//SeparateNo2 string `orm:"column(separate_no2);size(32)" json:"separateNo2"` // 分账撤销系统生成唯一流水
|
||||||
//Status2 string `orm:"column(status2);size(32)" json:"status2"` // 分账撤销状态
|
//Status2 string `orm:"column(status2);size(32)" json:"status2"` // 分账撤销状态
|
||||||
//SeparateNo3 string `orm:"column(separate_no3);size(32)" json:"separateNo3"` // 分账回退系统生成唯一流水
|
//SeparateNo3 string `orm:"column(separate_no3);size(32)" json:"separateNo3"` // 分账回退系统生成唯一流水
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ import (
|
|||||||
)
|
)
|
||||||
|
|
||||||
// RefundBarCodeScannerOrderByLaKaLa 拉卡拉扫码枪退款
|
// RefundBarCodeScannerOrderByLaKaLa 拉卡拉扫码枪退款
|
||||||
func RefundBarCodeScannerOrderByLaKaLa(ctx *jxcontext.Context, vendorOrderId string, skuIds map[int]int, reason string) (err error) {
|
func RefundBarCodeScannerOrderByLaKaLa(ctx *jxcontext.Context, vendorOrderId string, skuIds map[int]int, reason string, refund string) (resp interface{}, err error) {
|
||||||
db := dao.GetDB()
|
db := dao.GetDB()
|
||||||
txDB, _ := dao.Begin(db)
|
txDB, _ := dao.Begin(db)
|
||||||
defer func() {
|
defer func() {
|
||||||
@@ -29,28 +29,30 @@ func RefundBarCodeScannerOrderByLaKaLa(ctx *jxcontext.Context, vendorOrderId str
|
|||||||
goodsOrder, err := partner.CurOrderManager.LoadOrder(vendorOrderId, model.VendorIDJX)
|
goodsOrder, err := partner.CurOrderManager.LoadOrder(vendorOrderId, model.VendorIDJX)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
dao.Rollback(db, txDB)
|
dao.Rollback(db, txDB)
|
||||||
return err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
// 检查订单售后
|
// 检查订单售后
|
||||||
refundType, refundMoney, err := checkJxAfsOrder(db, goodsOrder, vendorOrderId, skuIds)
|
refundType, refundMoney, err := checkJxAfsOrder(db, goodsOrder, vendorOrderId, skuIds)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
dao.Rollback(db, txDB)
|
dao.Rollback(db, txDB)
|
||||||
return err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
// 本地添加售后数据
|
// 本地添加售后数据
|
||||||
afsOrder, orderSkuFinancial, afsOrderSkuFinancial, err := addRefundSku(ctx, goodsOrder, skuIds, reason, refundType)
|
afsOrder, orderSkuFinancial, afsOrderSkuFinancial, err := addRefundSku(ctx, goodsOrder, skuIds, reason, refundType)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
dao.Rollback(db, txDB)
|
dao.Rollback(db, txDB)
|
||||||
return err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
// 通知退款,等待回传
|
// 通知退款,等待回传
|
||||||
incoming, err := dao.GetStoreInfoByMerchantID(db, "", goodsOrder.JxStoreID, "", "")
|
incoming, err := dao.GetStoreInfoByMerchantID(db, "", goodsOrder.JxStoreID, "", "")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
switch refund {
|
||||||
|
case "toStore": // 收银台
|
||||||
param := &lakala.RefundOrderReq{
|
param := &lakala.RefundOrderReq{
|
||||||
MerchantNo: incoming.MerchantNo,
|
MerchantNo: incoming.MerchantNo,
|
||||||
TermNo: incoming.TermNo,
|
TermNo: incoming.TermNo,
|
||||||
@@ -65,28 +67,45 @@ func RefundBarCodeScannerOrderByLaKaLa(ctx *jxcontext.Context, vendorOrderId str
|
|||||||
RefundType: "",
|
RefundType: "",
|
||||||
}
|
}
|
||||||
|
|
||||||
_, err = api.LaKaLaApi.RefundOrder(param)
|
resp, err = api.LaKaLaApi.RefundOrder(param)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return nil, err
|
||||||
|
}
|
||||||
|
case "aggregate": // 聚合支付
|
||||||
|
param := &lakala.AggregateRefundReq{
|
||||||
|
MerchantNo: incoming.MerchantNo,
|
||||||
|
TermNo: incoming.TermNo,
|
||||||
|
OutTradeNo: afsOrder.AfsOrderID,
|
||||||
|
RefundAmount: utils.Int2Str(refundMoney),
|
||||||
|
RefundReason: reason,
|
||||||
|
OriginOutTradeNo: goodsOrder.VendorOrderID,
|
||||||
|
OriginTradeNo: "",
|
||||||
|
OriginLogNo: "",
|
||||||
|
LocationInfo: lakala.LocationInfoObj{RequestIp: ctx.GetRealRemoteIP()},
|
||||||
|
}
|
||||||
|
resp, err = api.LaKaLaApi.AggregateRefund(param)
|
||||||
|
if err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if err = dao.CreateEntity(db, afsOrder); err != nil {
|
if err = dao.CreateEntity(db, afsOrder); err != nil {
|
||||||
dao.Rollback(db, txDB)
|
dao.Rollback(db, txDB)
|
||||||
return err
|
return nil, err
|
||||||
}
|
}
|
||||||
if err = dao.CreateMultiEntities(db, orderSkuFinancial); err != nil {
|
if err = dao.CreateMultiEntities(db, orderSkuFinancial); err != nil {
|
||||||
dao.Rollback(db, txDB)
|
dao.Rollback(db, txDB)
|
||||||
return err
|
return nil, err
|
||||||
}
|
}
|
||||||
if err = dao.CreateMultiEntities(db, afsOrderSkuFinancial); err != nil {
|
if err = dao.CreateMultiEntities(db, afsOrderSkuFinancial); err != nil {
|
||||||
dao.Rollback(db, txDB)
|
dao.Rollback(db, txDB)
|
||||||
return err
|
return nil, err
|
||||||
}
|
}
|
||||||
goodsOrder.TotalShopMoney -= int64(refundMoney)
|
goodsOrder.TotalShopMoney -= int64(refundMoney)
|
||||||
dao.UpdateEntity(db, goodsOrder, "TotalShopMoney")
|
dao.UpdateEntity(db, goodsOrder, "TotalShopMoney")
|
||||||
dao.Commit(db, txDB)
|
dao.Commit(db, txDB)
|
||||||
|
|
||||||
return nil
|
return resp, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// QueryBarCodeRefundStatus 退款订单状态查询
|
// QueryBarCodeRefundStatus 退款订单状态查询
|
||||||
|
|||||||
@@ -609,7 +609,7 @@ func (c *PurchaseHandler) PickupGoods(order *model.GoodsOrder, isSelfDelivery bo
|
|||||||
// 美团专送、快送、混合送、美团企客
|
// 美团专送、快送、混合送、美团企客
|
||||||
logisticsCode := utils.Interface2String(orderDetail["logistics_code"])
|
logisticsCode := utils.Interface2String(orderDetail["logistics_code"])
|
||||||
isSelfDelivery = logisticsCode == mtwmapi.PeiSongTypeMTZSJM || logisticsCode == mtwmapi.PeiSongTypeMTZSPT ||
|
isSelfDelivery = logisticsCode == mtwmapi.PeiSongTypeMTZSJM || logisticsCode == mtwmapi.PeiSongTypeMTZSPT ||
|
||||||
logisticsCode == mtwmapi.PeiSongTypeMTZSZJ || logisticsCode == mtwmapi.PeiSongTypeKuaiDi ||
|
logisticsCode == mtwmapi.PeiSongTypeMTZSZJ || logisticsCode == mtwmapi.PeiSongTypeKuaiDi || logisticsCode == mtwmapi.PeiSongTypeMTZSDL ||
|
||||||
logisticsCode == mtwmapi.PeiSongTypeMixed || logisticsCode == mtwmapi.PeiSongTypeQiKe ||
|
logisticsCode == mtwmapi.PeiSongTypeMixed || logisticsCode == mtwmapi.PeiSongTypeQiKe ||
|
||||||
logisticsCode == mtwmapi.PeiSongTypeMixedExpressQiKe || logisticsCode == mtwmapi.PeiSongTypeFranchise ||
|
logisticsCode == mtwmapi.PeiSongTypeMixedExpressQiKe || logisticsCode == mtwmapi.PeiSongTypeFranchise ||
|
||||||
logisticsCode == mtwmapi.PeiSongTypeSelf || logisticsCode == mtwmapi.PeiSongTypeWholeCity ||
|
logisticsCode == mtwmapi.PeiSongTypeSelf || logisticsCode == mtwmapi.PeiSongTypeWholeCity ||
|
||||||
|
|||||||
@@ -87,7 +87,7 @@ func (c *JxOrderController) RefundOnlineOrder() {
|
|||||||
case "tonglian":
|
case "tonglian":
|
||||||
err = localjx.RefundBarCodeScannerOrder(params.Ctx, params.VendorOrderID, skuIds, params.Reason)
|
err = localjx.RefundBarCodeScannerOrder(params.Ctx, params.VendorOrderID, skuIds, params.Reason)
|
||||||
case "lakala":
|
case "lakala":
|
||||||
err = localjx.RefundBarCodeScannerOrderByLaKaLa(params.Ctx, params.VendorOrderID, skuIds, params.Reason)
|
retVal, err = localjx.RefundBarCodeScannerOrderByLaKaLa(params.Ctx, params.VendorOrderID, skuIds, params.Reason, "toStore")
|
||||||
}
|
}
|
||||||
|
|
||||||
return retVal, errCode, err
|
return retVal, errCode, err
|
||||||
|
|||||||
@@ -1,9 +1,11 @@
|
|||||||
package controllers
|
package controllers
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"encoding/json"
|
||||||
"git.rosy.net.cn/baseapi/platformapi/lakala"
|
"git.rosy.net.cn/baseapi/platformapi/lakala"
|
||||||
"git.rosy.net.cn/baseapi/utils"
|
"git.rosy.net.cn/baseapi/utils"
|
||||||
lakalaServer "git.rosy.net.cn/jx-callback/business/lakala"
|
lakalaServer "git.rosy.net.cn/jx-callback/business/lakala"
|
||||||
|
"git.rosy.net.cn/jx-callback/business/partner/purchase/jx/localjx"
|
||||||
"github.com/astaxie/beego/server/web"
|
"github.com/astaxie/beego/server/web"
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -548,12 +550,14 @@ func (c *LaKaLaController) SeparateUnBind() {
|
|||||||
// @Description 可分账金额查询
|
// @Description 可分账金额查询
|
||||||
// @Param token header string true "认证token"
|
// @Param token header string true "认证token"
|
||||||
// @Param merchantNo query string true "商户号"
|
// @Param merchantNo query string true "商户号"
|
||||||
|
// @Param logDate query string true "拉卡拉对账单交易日期[yyyyMMdd]"
|
||||||
|
// @Param logNo query string true "交易流水号"
|
||||||
// @Success 200 {object} controllers.CallResult
|
// @Success 200 {object} controllers.CallResult
|
||||||
// @Failure 200 {object} controllers.CallResult
|
// @Failure 200 {object} controllers.CallResult
|
||||||
// @router /SeparateQueryAmt [get]
|
// @router /SeparateQueryAmt [get]
|
||||||
func (c *LaKaLaController) SeparateQueryAmt() {
|
func (c *LaKaLaController) SeparateQueryAmt() {
|
||||||
c.callSeparateQueryAmt(func(params *tLakalaSeparateQueryAmtParams) (retVal interface{}, errCode string, err error) {
|
c.callSeparateQueryAmt(func(params *tLakalaSeparateQueryAmtParams) (retVal interface{}, errCode string, err error) {
|
||||||
retVal, err = lakalaServer.SeparateQueryAmt(params.MerchantNo, "", "")
|
retVal, err = lakalaServer.SeparateQueryAmt(params.MerchantNo, params.LogDate, params.LogNo)
|
||||||
return
|
return
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@@ -1041,3 +1045,25 @@ func (c *LaKaLaController) CloseOrderByMini() {
|
|||||||
return
|
return
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// AggregateRefundOrder 聚合支付退款
|
||||||
|
// @Title 聚合支付退款
|
||||||
|
// @Description 聚合支付退款
|
||||||
|
// @Param token header string true "认证token"
|
||||||
|
// @Param vendorOrderID formData string true "订单ID"
|
||||||
|
// @Param skuIds formData string true "[key:value]退款商品 skuId:count,int"
|
||||||
|
// @Param Reason formData string false "退单原因"
|
||||||
|
// @Success 200 {object} controllers.CallResult
|
||||||
|
// @Failure 200 {object} controllers.CallResult
|
||||||
|
// @router /AggregateRefundOrder [post]
|
||||||
|
func (c *LaKaLaController) AggregateRefundOrder() {
|
||||||
|
c.callAggregateRefundOrder(func(params *tLakalaAggregateRefundOrderParams) (retVal interface{}, errCode string, err error) {
|
||||||
|
skuIds := make(map[int]int, 0)
|
||||||
|
if err = json.Unmarshal([]byte(params.SkuIds), &skuIds); err != nil {
|
||||||
|
return nil, "", err
|
||||||
|
}
|
||||||
|
|
||||||
|
retVal, err = localjx.RefundBarCodeScannerOrderByLaKaLa(params.Ctx, params.VendorOrderID, skuIds, params.Reason, "aggregate")
|
||||||
|
return
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|||||||
@@ -5194,6 +5194,15 @@ func init() {
|
|||||||
MethodParams: param.Make(),
|
MethodParams: param.Make(),
|
||||||
Filters: nil,
|
Filters: nil,
|
||||||
Params: nil})
|
Params: nil})
|
||||||
|
// 聚合支付退款
|
||||||
|
web.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:LaKaLaController"] = append(web.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:LaKaLaController"],
|
||||||
|
web.ControllerComments{
|
||||||
|
Method: "AggregateRefundOrder",
|
||||||
|
Router: `/AggregateRefundOrder`,
|
||||||
|
AllowHTTPMethods: []string{"post"},
|
||||||
|
MethodParams: param.Make(),
|
||||||
|
Filters: nil,
|
||||||
|
Params: nil})
|
||||||
|
|
||||||
//web.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:FnController"] = append(web.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:FnController"],
|
//web.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:FnController"] = append(web.GlobalControllerRouter["git.rosy.net.cn/jx-callback/controllers:FnController"],
|
||||||
// web.ControllerComments{
|
// web.ControllerComments{
|
||||||
|
|||||||
Reference in New Issue
Block a user