This commit is contained in:
邹宗楠
2025-06-24 13:50:48 +08:00
parent 7fd163485c
commit b2d23c1587
15 changed files with 3268 additions and 72 deletions

View File

@@ -0,0 +1,146 @@
package lakala
import (
"encoding/json"
"fmt"
"git.rosy.net.cn/baseapi/platformapi/lakala"
"git.rosy.net.cn/baseapi/utils"
"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"
"time"
)
// CreateSeparateShop 商户分账业务回调(创建/修改)
func CreateSeparateShop(callback *lakala.SeparateCallback) error {
var (
db = dao.GetDB()
)
merchantInfo, err := dao.GetStoreInfoByMerchantID(db, callback.MerCupNo, 0, callback.ApplyId, "")
if err != nil {
return err
}
if callback.AuditStatus == utils.Int2Str(model.YES) {
merchantInfo.OperateStatus = model.OperateStatusSuccess
} else {
merchantInfo.OperateStatus = model.OperateStatusFail
}
_, err = dao.UpdateEntity(db, merchantInfo, "OperateStatus")
if err != nil {
return err
}
return nil
}
// BindSeparateBand 绑定/解绑业务
func BindSeparateBand(callback *lakala.SeparateBindCallback) error {
var (
db = dao.GetDB()
)
bindInfo, err := dao.GetStoreInfoByMerchantID(db, callback.MerCupNo, 0, callback.ApplyId, "")
if err != nil {
return err
}
unBind := make(map[string]*model.BindAccountObj, 0)
if err = json.Unmarshal([]byte(bindInfo.BindAccount), &unBind); err != nil {
return err
}
if unBind[callback.ReceiverNo].ApplyId == callback.ApplyId {
unBind[callback.ReceiverNo] = &model.BindAccountObj{
ApplyId: callback.ApplyId,
Status: callback.AuditStatus,
Remark: fmt.Sprintf(callback.AuditStatusText + ":" + callback.Remark),
}
}
byteBind, err := json.Marshal(unBind)
if err != nil {
return err
}
bindInfo.BindAccount = string(byteBind)
if _, err = dao.UpdateEntity(db, bindInfo, "BindAccount"); err != nil {
return err
}
return nil
}
// GetSeparateRecordsCallback 分账结果回调
func GetSeparateRecordsCallback(callback *lakala.SeparateResult) error {
var (
db = dao.GetDB()
)
separateRecord, err := dao.GetSeparateRecords(db, "", callback.SeparateNo, callback.CmdType)
if err != nil {
return err
}
separateRecord.CmdType = callback.CmdType
separateRecord.FinishDate = callback.FinishDate
separateRecord.TotalAmt = callback.TotalAmt
separateRecord.Status = callback.Status
separateRecord.FinalStatus = callback.FinalStatus
separateRecord.UpdatedAt = time.Now()
_, err = dao.UpdateEntity(db, separateRecord, "CmdType", "FinishDate", "TotalAmt", "Status1", "Status2", "Status3", "FinalStatus", "UpdatedAt")
return err
}
// EwalletWithdrawD1Callback 结算信息回调
func EwalletWithdrawD1Callback(param *lakala.EwalletWithdrawD1CallBack) error {
var (
db = dao.GetDB()
)
withDraw, err := dao.GetEwalletWithDraw(db, param.MercId, param.DrawJnl)
if err != nil {
return err
}
withDraw.ReqDate = param.ReqDate
withDraw.DrawAmt = param.DrawAmt
withDraw.DrawFee = param.DrawFee
withDraw.BatchAutoSettle = param.BatchAutoSettle
withDraw.AcctNo = param.AcctNo
withDraw.AcctName = param.AcctName
withDraw.DrawState = param.DrawState
withDraw.Memo = param.Memo
withDraw.CreatedTime = utils.Str2Time(param.CreatedTime)
withDraw.CompleteTime = utils.Str2Time(param.CompleteTime)
_, err = dao.UpdateEntity(db, withDraw)
return err
}
// OrderStatusCallback 订单状态回调 todo param.OrderStatus=6 时暂时无法区分全部退款还是部分退款
func OrderStatusCallback(param *lakala.QueryOrderCallBackResp) error {
var (
db = dao.GetDB()
)
order, err := partner.CurOrderManager.LoadOrder(param.OrderCreateTime, model.VendorIDJX)
if err != nil {
return err
}
// 0:待支付 1:支付中 2:支付成功 3:支付失败 4:已过期 5:已取消 6部分退款或者全部退款
switch param.OrderStatus {
case "0", "1":
order.Status = model.OrderStatusWait4Pay
case "2":
if order.DeliveryType == model.OrderDeliveryTypeSelfTake {
order.Status = model.OrderStatusFinished
order.OrderFinishedAt = time.Now()
} else {
order.Status = model.OrderStatusAccepted
}
case "3":
order.Status = model.OrderStatusWait4Pay
case "4", "5":
order.Status = model.OrderStatusCanceled
order.OrderFinishedAt = time.Now()
case "6":
}
order.VendorStatus = param.OrderStatus
_, err = dao.UpdateEntity(db, order, "Status", "VendorStatus", "OrderFinishedAt")
return err
}