diff --git a/business/lakala/lakala_callback.go b/business/lakala/lakala_callback.go index d8a3ca285..de288e41a 100644 --- a/business/lakala/lakala_callback.go +++ b/business/lakala/lakala_callback.go @@ -121,7 +121,6 @@ func GetSeparateRecordsCallback(callback *lakala.SeparateResult) error { } separateRecord.CmdType = callback.CmdType separateRecord.FinishDate = callback.FinishDate - separateRecord.TotalAmt = callback.TotalAmt separateRecord.Status = callback.Status separateRecord.FinalStatus = callback.FinalStatus separateRecord.UpdatedAt = time.Now() diff --git a/business/lakala/lakala_incoming.go b/business/lakala/lakala_incoming.go index 7477bc6aa..ac6fae119 100644 --- a/business/lakala/lakala_incoming.go +++ b/business/lakala/lakala_incoming.go @@ -491,7 +491,7 @@ func SeparateUnBind(param *lakala.SeparateUnBindReq) error { } // SeparateQueryAmt 可分账金额查询 -func SeparateQueryAmt(merchantNo, logDate, logNo, vendorOrderId string) (*lakala.SeparateQueryAmtResp, error) { +func SeparateQueryAmt(ctx *jxcontext.Context, merchantNo, logDate, logNo, vendorOrderId string) (*lakala.SeparateQueryAmtResp, error) { result, err := api.LaKaLaApi.SeparateQueryAmt(merchantNo, logNo, logDate) if err != nil { return nil, err @@ -500,8 +500,31 @@ func SeparateQueryAmt(merchantNo, logDate, logNo, vendorOrderId string) (*lakala separate, err := dao.GetSeparateAmtByOrderID(vendorOrderId, "", logNo) if separate != nil { separate.TotalAmt = result.TotalSeparateAmt - separate.ActualSeparateAmt = result.CanSeparateAmt + separate.CanAmt = result.CanSeparateAmt dao.UpdateEntity(dao.GetDB(), separate, "TotalAmt", "ActualSeparateAmt") + } else { + order, _ := partner.CurOrderManager.LoadOrder(vendorOrderId, model.VendorIDJX) + separate = &model.LakalaSeparateAmt{ + MerchantNo: merchantNo, + VendorOrderID: vendorOrderId, + StoreId: order.JxStoreID, + CmdType: lakala.SeparateType_SEPATRATE, + Status: "1", + LogNo: logNo, + LogDate: time.Now(), + SeparateNo: "", + OutSeparateNo: "", + CalType: "", + FinishDate: "", + TotalAmt: result.TotalSeparateAmt, + CanAmt: result.CanSeparateAmt, + TotalFeeAmt: "", + FinalStatus: "", + DetailData: "", + Remark: "", + } + dao.WrapAddIDCULEntity(separate, ctx.GetUserName()) + err = dao.CreateEntity(dao.GetDB(), separate) } return result, err @@ -526,7 +549,6 @@ func Separate(ctx *jxcontext.Context, param *lakala.OrderSeparateReq, vendorOrde separateObj.OutSeparateNo = param.OutSeparateNo separateObj.SeparateNo = resp.RespData.SeparateNo separateObj.CalType = param.CalType - separateObj.TotalAmt = resp.RespData.TotalAmt separateObj.Status = resp.RespData.Status separateObj.Remark += `->分账` separateObj.DetailData = string(recv) @@ -556,18 +578,22 @@ func SeparateResultQuery(merchantNo, separateNo string) (*lakala.SeparateResultQ return nil, err } recordsObj.UpdatedAt = time.Now() - recordsObj.TotalAmt = result.TotalAmt recordsObj.ActualSeparateAmt = result.ActualSeparateAmt recordsObj.TotalFeeAmt = result.TotalFeeAmt recordsObj.Status = result.Status recordsObj.SeparateNo = result.SeparateNo recordsObj.OutSeparateNo = result.OutSeparateNo - if len(result.DetailDatas) != 0 { - detail, _ := json.Marshal(result.DetailDatas) - recordsObj.DetailData = string(detail) - } - if _, err = dao.UpdateEntity(db, recordsObj, "DetailData", "Status", "TotalFeeAmt", "UpdatedAt", "TotalAmt", "ActualSeparateAmt"); err != nil { + recv := make([]*lakala.RecvDatasParam, 0, 0) + for _, v := range result.DetailDatas { + recv = append(recv, &lakala.RecvDatasParam{ + RecvNo: v.RecvNo, + SeparateValue: utils.Int64ToStr(v.Amt), + }) + } + recvObj, _ := json.Marshal(recv) + recordsObj.DetailData = string(recvObj) + if _, err = dao.UpdateEntity(db, recordsObj, "DetailData", "Status", "TotalFeeAmt", "UpdatedAt", "TotalAmt", "ActualSeparateAmt", "DetailData"); err != nil { return nil, err } diff --git a/business/model/lakala.go b/business/model/lakala.go index 01260a605..c9af6b3f2 100644 --- a/business/model/lakala.go +++ b/business/model/lakala.go @@ -135,6 +135,7 @@ type LakalaSeparateAmt struct { CalType string `orm:"column(cal_type);size(2)" json:"calType"` // 分账计算类型 FinishDate string `orm:"column(finish_date);size(20)" json:"finishDate"` // 完成日期 yyyyMMdd TotalAmt string `orm:"column(total_amt);size(15)" json:"totalAmt"` // 发生总金额 + CanAmt string `orm:"column(can_amt);size(15)" json:"canAmt"` // 可分金额 ActualSeparateAmt string `orm:"column(actual_separate_amt);size(15)" json:"actualSeparateAmt"` // 实分金额 TotalFeeAmt string `orm:"column(total_fee_amt);size(15)" json:"totalFeeAmt"` // 手续费金额 FinalStatus string `orm:"column(final_status);size(32)" json:"finalStatus"` // 处理状态 diff --git a/controllers/lakala.go b/controllers/lakala.go index ef0d15908..62f0352aa 100644 --- a/controllers/lakala.go +++ b/controllers/lakala.go @@ -558,7 +558,7 @@ func (c *LaKaLaController) SeparateUnBind() { // @router /SeparateQueryAmt [get] func (c *LaKaLaController) SeparateQueryAmt() { c.callSeparateQueryAmt(func(params *tLakalaSeparateQueryAmtParams) (retVal interface{}, errCode string, err error) { - retVal, err = lakalaServer.SeparateQueryAmt(params.MerchantNo, params.LogDate, params.LogNo, params.VendorOrderId) + retVal, err = lakalaServer.SeparateQueryAmt(params.Ctx, params.MerchantNo, params.LogDate, params.LogNo, params.VendorOrderId) return }) }