feat: 记录下单请求数据
This commit is contained in:
parent
d715eb4a30
commit
dbbe1acbc2
|
|
@ -9,7 +9,6 @@ import (
|
|||
"rs/cmd/api/internal/svc"
|
||||
"rs/cmd/api/internal/types"
|
||||
"rs/rpc/transfer"
|
||||
"strconv"
|
||||
"time"
|
||||
)
|
||||
|
||||
|
|
@ -33,17 +32,20 @@ func (l *GetOrderLogic) GetOrder(req *types.GetOrderReq) (resp *types.GetOrderRs
|
|||
status int
|
||||
)
|
||||
|
||||
order, err := l.svcCtx.BaseServiceContext.YlOrderMarketRepo.FindOneByDeliverOrderNoSupplierOrderNo(l.ctx, req.DeliverOrderNo, req.SupplierOrderNo)
|
||||
order, err := l.svcCtx.BaseServiceContext.YlOrdersMarketRepo.FindOneByDeliverOrderNoSupplierOrderNo(l.ctx, req.DeliverOrderNo, req.SupplierOrderNo)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
if order.Status != 1 {
|
||||
return nil, fmt.Errorf("订单发货失败")
|
||||
}
|
||||
|
||||
// 响应参数
|
||||
data := transfer.MarketKeySendRes{}
|
||||
err = json.Unmarshal([]byte(order.Resp), &data)
|
||||
err = json.Unmarshal([]byte(order.Resp.String), &data)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
if data.Data.ShortUrl != "" {
|
||||
status = 1
|
||||
}
|
||||
|
|
@ -56,18 +58,23 @@ func (l *GetOrderLogic) GetOrder(req *types.GetOrderReq) (resp *types.GetOrderRs
|
|||
endTime = startTime.AddDate(0, 0, 30).Add(23*time.Hour + 59*time.Minute + 59*time.Second)
|
||||
}
|
||||
|
||||
accouont, _ := strconv.Atoi(order.Account)
|
||||
supplierId, _ := strconv.Atoi(order.SupplierId)
|
||||
// 请求参数
|
||||
asyncReq := types.AsyncReq{}
|
||||
err = json.Unmarshal([]byte(order.Request), &asyncReq)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
resp = &types.GetOrderRsp{
|
||||
DeliverOrderNo: req.DeliverOrderNo,
|
||||
SupplierOrderNo: req.SupplierOrderNo,
|
||||
SupplierSkuId: order.SupplierSkuId,
|
||||
Account: int64(accouont),
|
||||
SupplierSkuId: asyncReq.SupplierSkuId,
|
||||
Account: asyncReq.Account,
|
||||
SendStatus: status,
|
||||
Price: order.Price,
|
||||
Price: asyncReq.Price,
|
||||
StatusTime: order.UpdateTime.Unix(),
|
||||
Msg: "",
|
||||
SupplierId: int64(supplierId),
|
||||
SupplierId: asyncReq.SupplierId,
|
||||
CardNo: "",
|
||||
CardKey: "",
|
||||
CardExpireTime: endTime.Add(23*time.Hour + 59*time.Minute + 59*time.Second).Format(time.DateTime),
|
||||
|
|
|
|||
|
|
@ -42,7 +42,21 @@ func (l *YlAsyncLogic) YlAsync(req *types.AsyncReq) (resp *types.AsyncResp, err
|
|||
var (
|
||||
reqData transfer.MarketKeySendReq
|
||||
VoucherId string
|
||||
supplierOrderNo = req.DeliverOrderNo
|
||||
result *transfer.MarketKeySendRes
|
||||
)
|
||||
defer func() {
|
||||
var status int64
|
||||
var msg string
|
||||
if err != nil {
|
||||
status = 2
|
||||
msg = err.Error()
|
||||
} else {
|
||||
status = 1
|
||||
}
|
||||
// 记录订单
|
||||
l.saveOrder(req, result, supplierOrderNo, VoucherId, msg, status)
|
||||
}()
|
||||
|
||||
if v, ok := l.svcCtx.Config.MarketConfig.SupplierSkuId[strconv.Itoa(int(req.SupplierSkuId))]; ok {
|
||||
VoucherId = v
|
||||
|
|
@ -67,7 +81,7 @@ func (l *YlAsyncLogic) YlAsync(req *types.AsyncReq) (resp *types.AsyncResp, err
|
|||
}
|
||||
|
||||
reqData.Sign = l.svcCtx.Config.Sys.PrimaryKey
|
||||
result, err := l.svcCtx.TransferRpc.MarketKeySend(l.ctx, &reqData)
|
||||
result, err = l.svcCtx.TransferRpc.MarketKeySend(l.ctx, &reqData)
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("rpc请求失败:%v", err.Error())
|
||||
}
|
||||
|
|
@ -84,9 +98,6 @@ func (l *YlAsyncLogic) YlAsync(req *types.AsyncReq) (resp *types.AsyncResp, err
|
|||
return nil, fmt.Errorf("请求失败未取到数据:%v", result.Msg)
|
||||
}
|
||||
|
||||
supplierOrderNo := req.DeliverOrderNo
|
||||
// 记录订单
|
||||
l.saveOrder(req, result, supplierOrderNo, VoucherId)
|
||||
// 异步通知
|
||||
go func() {
|
||||
time.Sleep(2 * time.Second)
|
||||
|
|
@ -169,9 +180,72 @@ func (l *YlAsyncLogic) asyncSendMarket(supplierOrderNo string, asyncReq *types.A
|
|||
return
|
||||
}
|
||||
|
||||
func (l *YlAsyncLogic) saveOrder(req *types.AsyncReq, rsp *transfer.MarketKeySendRes, supplierOrderNo, VoucherId string) {
|
||||
// 写入数据
|
||||
func (l *YlAsyncLogic) saveOrder(req *types.AsyncReq, rsp *transfer.MarketKeySendRes, supplierOrderNo, VoucherId, msg string, status int64) {
|
||||
// 查询订单
|
||||
order, err := l.svcCtx.BaseServiceContext.YlOrdersMarketRepo.FindOneByDeliverOrderNoSupplierOrderNo(l.ctx, req.DeliverOrderNo, supplierOrderNo)
|
||||
if err != nil {
|
||||
if !errors.Is(err, genModel.ErrNotFound) {
|
||||
l.Logger.Errorf("supplierOrderNo = %s 查询订单失败:%v", supplierOrderNo, err.Error())
|
||||
}
|
||||
}
|
||||
|
||||
order, err := l.svcCtx.BaseServiceContext.YlOrderMarketRepo.FindOneByDeliverOrderNoSupplierOrderNo(l.ctx, req.DeliverOrderNo, supplierOrderNo)
|
||||
b, _ := json.Marshal(req)
|
||||
rp, _ := json.Marshal(rsp)
|
||||
if order != nil {
|
||||
// 订单存在,更新
|
||||
if order.Status != status {
|
||||
order.Status = status
|
||||
}
|
||||
if order.Resp.String != string(rp) {
|
||||
order.Resp.String = string(rp)
|
||||
order.Resp.Valid = true
|
||||
}
|
||||
if order.Request != string(b) {
|
||||
order.Request = string(b)
|
||||
}
|
||||
if msg != "" {
|
||||
order.ErrMsg.String += msg
|
||||
order.ErrMsg.Valid = true
|
||||
}
|
||||
if VoucherId != order.VoucherId {
|
||||
order.VoucherId = VoucherId
|
||||
}
|
||||
|
||||
err = l.svcCtx.BaseServiceContext.YlOrdersMarketRepo.Update(l.ctx, order)
|
||||
if err != nil {
|
||||
l.Logger.Errorf("DeliverOrderNo = %s 更新订单失败:%v", order.DeliverOrderNo, err.Error())
|
||||
}
|
||||
} else {
|
||||
// 订单不存在,插入
|
||||
|
||||
data := &genModel.YlOrdersMarket{
|
||||
DeliverOrderNo: req.DeliverOrderNo,
|
||||
SupplierOrderNo: supplierOrderNo,
|
||||
Request: string(b),
|
||||
Resp: sql.NullString{
|
||||
String: string(rp),
|
||||
Valid: true,
|
||||
},
|
||||
ErrMsg: sql.NullString{
|
||||
String: msg,
|
||||
Valid: true,
|
||||
},
|
||||
Status: status,
|
||||
VoucherId: VoucherId,
|
||||
}
|
||||
|
||||
_, err = l.svcCtx.BaseServiceContext.YlOrdersMarketRepo.Insert(l.ctx, data)
|
||||
if err != nil {
|
||||
l.Logger.Errorf("data = %s 插入订单失败:%v", data, err.Error())
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 更新状态和响应数据
|
||||
func (l *YlAsyncLogic) updateOrder(req *types.AsyncReq, rsp *transfer.MarketKeySendRes, supplierOrderNo string, status int64) {
|
||||
|
||||
order, err := l.svcCtx.BaseServiceContext.YlOrdersMarketRepo.FindOneByDeliverOrderNoSupplierOrderNo(l.ctx, req.DeliverOrderNo, supplierOrderNo)
|
||||
if err != nil {
|
||||
if !errors.Is(err, genModel.ErrNotFound) {
|
||||
l.Logger.Errorf("data = %s 查询订单失败:%v", order, err.Error())
|
||||
|
|
@ -182,26 +256,15 @@ func (l *YlAsyncLogic) saveOrder(req *types.AsyncReq, rsp *transfer.MarketKeySen
|
|||
return
|
||||
}
|
||||
|
||||
b, _ := json.Marshal(rsp)
|
||||
data := &genModel.YlOrderMarket{
|
||||
DeliverOrderNo: req.DeliverOrderNo,
|
||||
SupplierOrderNo: supplierOrderNo,
|
||||
SupplierId: fmt.Sprintf("%d", req.SupplierId),
|
||||
Price: req.Price,
|
||||
SkuId: req.SkuId,
|
||||
SupplierSkuId: req.SupplierSkuId,
|
||||
Account: req.Account,
|
||||
VoucherId: sql.NullString{
|
||||
String: VoucherId,
|
||||
r, _ := json.Marshal(rsp)
|
||||
order.Status = status
|
||||
order.Resp = sql.NullString{
|
||||
String: string(r),
|
||||
Valid: true,
|
||||
},
|
||||
Resp: string(b),
|
||||
Status: 1,
|
||||
//CreateTime: time.Now(),
|
||||
}
|
||||
|
||||
_, err = l.svcCtx.BaseServiceContext.YlOrderMarketRepo.Insert(l.ctx, data)
|
||||
err = l.svcCtx.BaseServiceContext.YlOrdersMarketRepo.Update(l.ctx, order)
|
||||
if err != nil {
|
||||
l.Logger.Errorf("data = %s 插入订单失败:%v", data, err.Error())
|
||||
l.Logger.Errorf("order = %s 插入订单失败:%v", order, err.Error())
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ func NewServiceContext(c config.Config) *ServiceContext {
|
|||
base := types.BaseServiceContext{
|
||||
Config: c,
|
||||
TransferRpc: client,
|
||||
YlOrderMarketRepo: genModel.NewYlOrderMarketModel(sqlConn, c.Cache),
|
||||
YlOrdersMarketRepo: genModel.NewYlOrdersMarketModel(sqlConn, c.Cache),
|
||||
}
|
||||
return &ServiceContext{
|
||||
BaseServiceContext: &base,
|
||||
|
|
|
|||
|
|
@ -13,7 +13,7 @@ type BaseServiceContext struct {
|
|||
Merchant genModel.MerchantModel
|
||||
TransferOrder genModel.ServerOrderModel
|
||||
MerchantWechat genModel.MerchantWechatModel
|
||||
YlOrderMarketRepo genModel.YlOrderMarketModel
|
||||
YlOrdersMarketRepo genModel.YlOrdersMarketModel
|
||||
}
|
||||
|
||||
type DecryptReqData struct {
|
||||
|
|
|
|||
|
|
@ -38,7 +38,7 @@ type GetOrderRsp struct {
|
|||
DeliverOrderNo string `json:"deliverOrderNo"` // 平台订单号
|
||||
SupplierOrderNo string `json:"supplierOrderNo"` // 供货商订单号
|
||||
SupplierSkuId int64 `json:"supplierSkuId"` // 供货商sku
|
||||
Account int64 `json:"account"` //充值账号
|
||||
Account string `json:"account"` //充值账号
|
||||
SendStatus int `json:"sendStatus"` // 发货状态: 0-发货中 1-发货成功 2-发货失败
|
||||
Price int64 `json:"price"` //结算价格(单位:厘)
|
||||
StatusTime int64 `json:"statusTime"` // 成功/失败时间
|
||||
|
|
|
|||
|
|
@ -1,27 +0,0 @@
|
|||
package genModel
|
||||
|
||||
import (
|
||||
"github.com/zeromicro/go-zero/core/stores/cache"
|
||||
"github.com/zeromicro/go-zero/core/stores/sqlx"
|
||||
)
|
||||
|
||||
var _ YlOrderMarketModel = (*customYlOrderMarketModel)(nil)
|
||||
|
||||
type (
|
||||
// YlOrderMarketModel is an interface to be customized, add more methods here,
|
||||
// and implement the added methods in customYlOrderMarketModel.
|
||||
YlOrderMarketModel interface {
|
||||
ylOrderMarketModel
|
||||
}
|
||||
|
||||
customYlOrderMarketModel struct {
|
||||
*defaultYlOrderMarketModel
|
||||
}
|
||||
)
|
||||
|
||||
// NewYlOrderMarketModel returns a model for the database table.
|
||||
func NewYlOrderMarketModel(conn sqlx.SqlConn, c cache.CacheConf, opts ...cache.Option) YlOrderMarketModel {
|
||||
return &customYlOrderMarketModel{
|
||||
defaultYlOrderMarketModel: newYlOrderMarketModel(conn, c, opts...),
|
||||
}
|
||||
}
|
||||
|
|
@ -1,157 +0,0 @@
|
|||
// Code generated by goctl. DO NOT EDIT.
|
||||
// versions:
|
||||
// goctl version: 1.7.2
|
||||
|
||||
package genModel
|
||||
|
||||
import (
|
||||
"context"
|
||||
"database/sql"
|
||||
"fmt"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/zeromicro/go-zero/core/stores/builder"
|
||||
"github.com/zeromicro/go-zero/core/stores/cache"
|
||||
"github.com/zeromicro/go-zero/core/stores/sqlc"
|
||||
"github.com/zeromicro/go-zero/core/stores/sqlx"
|
||||
"github.com/zeromicro/go-zero/core/stringx"
|
||||
)
|
||||
|
||||
var (
|
||||
ylOrderMarketFieldNames = builder.RawFieldNames(&YlOrderMarket{})
|
||||
ylOrderMarketRows = strings.Join(ylOrderMarketFieldNames, ",")
|
||||
ylOrderMarketRowsExpectAutoSet = strings.Join(stringx.Remove(ylOrderMarketFieldNames, "`id`", "`create_at`", "`create_time`", "`created_at`", "`update_at`", "`update_time`", "`updated_at`"), ",")
|
||||
ylOrderMarketRowsWithPlaceHolder = strings.Join(stringx.Remove(ylOrderMarketFieldNames, "`id`", "`create_at`", "`create_time`", "`created_at`", "`update_at`", "`update_time`", "`updated_at`"), "=?,") + "=?"
|
||||
|
||||
cacheTransferYlOrderMarketIdPrefix = "cache:transfer:ylOrderMarket:id:"
|
||||
cacheTransferYlOrderMarketDeliverOrderNoSupplierOrderNoPrefix = "cache:transfer:ylOrderMarket:deliverOrderNo:supplierOrderNo:"
|
||||
)
|
||||
|
||||
type (
|
||||
ylOrderMarketModel interface {
|
||||
Insert(ctx context.Context, data *YlOrderMarket) (sql.Result, error)
|
||||
FindOne(ctx context.Context, id uint64) (*YlOrderMarket, error)
|
||||
FindOneByDeliverOrderNoSupplierOrderNo(ctx context.Context, deliverOrderNo string, supplierOrderNo string) (*YlOrderMarket, error)
|
||||
Update(ctx context.Context, data *YlOrderMarket) error
|
||||
Delete(ctx context.Context, id uint64) error
|
||||
}
|
||||
|
||||
defaultYlOrderMarketModel struct {
|
||||
sqlc.CachedConn
|
||||
table string
|
||||
}
|
||||
|
||||
YlOrderMarket struct {
|
||||
Id uint64 `db:"id"`
|
||||
DeliverOrderNo string `db:"deliverOrderNo"` // 平台订单号
|
||||
SupplierOrderNo string `db:"supplierOrderNo"` // 供货商订单号
|
||||
SupplierId string `db:"supplierId"` // 供货商id
|
||||
Price int64 `db:"price"` // 结算价格(单位:厘)
|
||||
SkuId int64 `db:"skuId"` // 平台sku
|
||||
SupplierSkuId int64 `db:"supplierSkuId"` // 供货商sku
|
||||
Account string `db:"account"` // 充值账号
|
||||
Resp string `db:"resp"` // 响应数据
|
||||
CreateTime time.Time `db:"create_time"`
|
||||
UpdateTime time.Time `db:"update_time"`
|
||||
Status int64 `db:"status"` // 状态
|
||||
VoucherId sql.NullString `db:"VoucherId"` // 批次号
|
||||
}
|
||||
)
|
||||
|
||||
func newYlOrderMarketModel(conn sqlx.SqlConn, c cache.CacheConf, opts ...cache.Option) *defaultYlOrderMarketModel {
|
||||
return &defaultYlOrderMarketModel{
|
||||
CachedConn: sqlc.NewConn(conn, c, opts...),
|
||||
table: "`yl_order_market`",
|
||||
}
|
||||
}
|
||||
|
||||
func (m *defaultYlOrderMarketModel) Delete(ctx context.Context, id uint64) error {
|
||||
data, err := m.FindOne(ctx, id)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
transferYlOrderMarketDeliverOrderNoSupplierOrderNoKey := fmt.Sprintf("%s%v:%v", cacheTransferYlOrderMarketDeliverOrderNoSupplierOrderNoPrefix, data.DeliverOrderNo, data.SupplierOrderNo)
|
||||
transferYlOrderMarketIdKey := fmt.Sprintf("%s%v", cacheTransferYlOrderMarketIdPrefix, id)
|
||||
_, err = m.ExecCtx(ctx, func(ctx context.Context, conn sqlx.SqlConn) (result sql.Result, err error) {
|
||||
query := fmt.Sprintf("delete from %s where `id` = ?", m.table)
|
||||
return conn.ExecCtx(ctx, query, id)
|
||||
}, transferYlOrderMarketDeliverOrderNoSupplierOrderNoKey, transferYlOrderMarketIdKey)
|
||||
return err
|
||||
}
|
||||
|
||||
func (m *defaultYlOrderMarketModel) FindOne(ctx context.Context, id uint64) (*YlOrderMarket, error) {
|
||||
transferYlOrderMarketIdKey := fmt.Sprintf("%s%v", cacheTransferYlOrderMarketIdPrefix, id)
|
||||
var resp YlOrderMarket
|
||||
err := m.QueryRowCtx(ctx, &resp, transferYlOrderMarketIdKey, func(ctx context.Context, conn sqlx.SqlConn, v any) error {
|
||||
query := fmt.Sprintf("select %s from %s where `id` = ? limit 1", ylOrderMarketRows, m.table)
|
||||
return conn.QueryRowCtx(ctx, v, query, id)
|
||||
})
|
||||
switch err {
|
||||
case nil:
|
||||
return &resp, nil
|
||||
case sqlc.ErrNotFound:
|
||||
return nil, ErrNotFound
|
||||
default:
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
|
||||
func (m *defaultYlOrderMarketModel) FindOneByDeliverOrderNoSupplierOrderNo(ctx context.Context, deliverOrderNo string, supplierOrderNo string) (*YlOrderMarket, error) {
|
||||
transferYlOrderMarketDeliverOrderNoSupplierOrderNoKey := fmt.Sprintf("%s%v:%v", cacheTransferYlOrderMarketDeliverOrderNoSupplierOrderNoPrefix, deliverOrderNo, supplierOrderNo)
|
||||
var resp YlOrderMarket
|
||||
err := m.QueryRowIndexCtx(ctx, &resp, transferYlOrderMarketDeliverOrderNoSupplierOrderNoKey, m.formatPrimary, func(ctx context.Context, conn sqlx.SqlConn, v any) (i any, e error) {
|
||||
query := fmt.Sprintf("select %s from %s where `deliverOrderNo` = ? and `supplierOrderNo` = ? limit 1", ylOrderMarketRows, m.table)
|
||||
if err := conn.QueryRowCtx(ctx, &resp, query, deliverOrderNo, supplierOrderNo); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return resp.Id, nil
|
||||
}, m.queryPrimary)
|
||||
switch err {
|
||||
case nil:
|
||||
return &resp, nil
|
||||
case sqlc.ErrNotFound:
|
||||
return nil, ErrNotFound
|
||||
default:
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
|
||||
func (m *defaultYlOrderMarketModel) Insert(ctx context.Context, data *YlOrderMarket) (sql.Result, error) {
|
||||
transferYlOrderMarketDeliverOrderNoSupplierOrderNoKey := fmt.Sprintf("%s%v:%v", cacheTransferYlOrderMarketDeliverOrderNoSupplierOrderNoPrefix, data.DeliverOrderNo, data.SupplierOrderNo)
|
||||
transferYlOrderMarketIdKey := fmt.Sprintf("%s%v", cacheTransferYlOrderMarketIdPrefix, data.Id)
|
||||
ret, err := m.ExecCtx(ctx, func(ctx context.Context, conn sqlx.SqlConn) (result sql.Result, err error) {
|
||||
query := fmt.Sprintf("insert into %s (%s) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", m.table, ylOrderMarketRowsExpectAutoSet)
|
||||
return conn.ExecCtx(ctx, query, data.DeliverOrderNo, data.SupplierOrderNo, data.SupplierId, data.Price, data.SkuId, data.SupplierSkuId, data.Account, data.Resp, data.Status, data.VoucherId)
|
||||
}, transferYlOrderMarketDeliverOrderNoSupplierOrderNoKey, transferYlOrderMarketIdKey)
|
||||
return ret, err
|
||||
}
|
||||
|
||||
func (m *defaultYlOrderMarketModel) Update(ctx context.Context, newData *YlOrderMarket) error {
|
||||
data, err := m.FindOne(ctx, newData.Id)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
transferYlOrderMarketDeliverOrderNoSupplierOrderNoKey := fmt.Sprintf("%s%v:%v", cacheTransferYlOrderMarketDeliverOrderNoSupplierOrderNoPrefix, data.DeliverOrderNo, data.SupplierOrderNo)
|
||||
transferYlOrderMarketIdKey := fmt.Sprintf("%s%v", cacheTransferYlOrderMarketIdPrefix, data.Id)
|
||||
_, err = m.ExecCtx(ctx, func(ctx context.Context, conn sqlx.SqlConn) (result sql.Result, err error) {
|
||||
query := fmt.Sprintf("update %s set %s where `id` = ?", m.table, ylOrderMarketRowsWithPlaceHolder)
|
||||
return conn.ExecCtx(ctx, query, newData.DeliverOrderNo, newData.SupplierOrderNo, newData.SupplierId, newData.Price, newData.SkuId, newData.SupplierSkuId, newData.Account, newData.Resp, newData.Status, newData.VoucherId, newData.Id)
|
||||
}, transferYlOrderMarketDeliverOrderNoSupplierOrderNoKey, transferYlOrderMarketIdKey)
|
||||
return err
|
||||
}
|
||||
|
||||
func (m *defaultYlOrderMarketModel) formatPrimary(primary any) string {
|
||||
return fmt.Sprintf("%s%v", cacheTransferYlOrderMarketIdPrefix, primary)
|
||||
}
|
||||
|
||||
func (m *defaultYlOrderMarketModel) queryPrimary(ctx context.Context, conn sqlx.SqlConn, v, primary any) error {
|
||||
query := fmt.Sprintf("select %s from %s where `id` = ? limit 1", ylOrderMarketRows, m.table)
|
||||
return conn.QueryRowCtx(ctx, v, query, primary)
|
||||
}
|
||||
|
||||
func (m *defaultYlOrderMarketModel) tableName() string {
|
||||
return m.table
|
||||
}
|
||||
|
|
@ -0,0 +1,27 @@
|
|||
package genModel
|
||||
|
||||
import (
|
||||
"github.com/zeromicro/go-zero/core/stores/cache"
|
||||
"github.com/zeromicro/go-zero/core/stores/sqlx"
|
||||
)
|
||||
|
||||
var _ YlOrdersMarketModel = (*customYlOrdersMarketModel)(nil)
|
||||
|
||||
type (
|
||||
// YlOrdersMarketModel is an interface to be customized, add more methods here,
|
||||
// and implement the added methods in customYlOrdersMarketModel.
|
||||
YlOrdersMarketModel interface {
|
||||
ylOrdersMarketModel
|
||||
}
|
||||
|
||||
customYlOrdersMarketModel struct {
|
||||
*defaultYlOrdersMarketModel
|
||||
}
|
||||
)
|
||||
|
||||
// NewYlOrdersMarketModel returns a model for the database table.
|
||||
func NewYlOrdersMarketModel(conn sqlx.SqlConn, c cache.CacheConf, opts ...cache.Option) YlOrdersMarketModel {
|
||||
return &customYlOrdersMarketModel{
|
||||
defaultYlOrdersMarketModel: newYlOrdersMarketModel(conn, c, opts...),
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,154 @@
|
|||
// Code generated by goctl. DO NOT EDIT.
|
||||
// versions:
|
||||
// goctl version: 1.7.2
|
||||
|
||||
package genModel
|
||||
|
||||
import (
|
||||
"context"
|
||||
"database/sql"
|
||||
"fmt"
|
||||
"strings"
|
||||
"time"
|
||||
|
||||
"github.com/zeromicro/go-zero/core/stores/builder"
|
||||
"github.com/zeromicro/go-zero/core/stores/cache"
|
||||
"github.com/zeromicro/go-zero/core/stores/sqlc"
|
||||
"github.com/zeromicro/go-zero/core/stores/sqlx"
|
||||
"github.com/zeromicro/go-zero/core/stringx"
|
||||
)
|
||||
|
||||
var (
|
||||
ylOrdersMarketFieldNames = builder.RawFieldNames(&YlOrdersMarket{})
|
||||
ylOrdersMarketRows = strings.Join(ylOrdersMarketFieldNames, ",")
|
||||
ylOrdersMarketRowsExpectAutoSet = strings.Join(stringx.Remove(ylOrdersMarketFieldNames, "`id`", "`create_at`", "`create_time`", "`created_at`", "`update_at`", "`update_time`", "`updated_at`"), ",")
|
||||
ylOrdersMarketRowsWithPlaceHolder = strings.Join(stringx.Remove(ylOrdersMarketFieldNames, "`id`", "`create_at`", "`create_time`", "`created_at`", "`update_at`", "`update_time`", "`updated_at`"), "=?,") + "=?"
|
||||
|
||||
cacheTransferYlOrdersMarketIdPrefix = "cache:transfer:ylOrdersMarket:id:"
|
||||
cacheTransferYlOrdersMarketDeliverOrderNoSupplierOrderNoPrefix = "cache:transfer:ylOrdersMarket:deliverOrderNo:supplierOrderNo:"
|
||||
)
|
||||
|
||||
type (
|
||||
ylOrdersMarketModel interface {
|
||||
Insert(ctx context.Context, data *YlOrdersMarket) (sql.Result, error)
|
||||
FindOne(ctx context.Context, id uint64) (*YlOrdersMarket, error)
|
||||
FindOneByDeliverOrderNoSupplierOrderNo(ctx context.Context, deliverOrderNo string, supplierOrderNo string) (*YlOrdersMarket, error)
|
||||
Update(ctx context.Context, data *YlOrdersMarket) error
|
||||
Delete(ctx context.Context, id uint64) error
|
||||
}
|
||||
|
||||
defaultYlOrdersMarketModel struct {
|
||||
sqlc.CachedConn
|
||||
table string
|
||||
}
|
||||
|
||||
YlOrdersMarket struct {
|
||||
Id uint64 `db:"id"`
|
||||
DeliverOrderNo string `db:"deliver_order_no"` // 平台订单号
|
||||
SupplierOrderNo string `db:"supplier_order_no"` // 供货商订单号
|
||||
Request string `db:"request"` // 请求数据
|
||||
Resp sql.NullString `db:"resp"` // rpc返回数据
|
||||
ErrMsg sql.NullString `db:"err_msg"` // 错误信息
|
||||
Status int64 `db:"status"` // 发货状态: 0-发货中 1-发货成功 2-发货失败
|
||||
VoucherId string `db:"voucher_id"` // 批次号
|
||||
CreateTime time.Time `db:"create_time"`
|
||||
UpdateTime time.Time `db:"update_time"`
|
||||
}
|
||||
)
|
||||
|
||||
func newYlOrdersMarketModel(conn sqlx.SqlConn, c cache.CacheConf, opts ...cache.Option) *defaultYlOrdersMarketModel {
|
||||
return &defaultYlOrdersMarketModel{
|
||||
CachedConn: sqlc.NewConn(conn, c, opts...),
|
||||
table: "`yl_orders_market`",
|
||||
}
|
||||
}
|
||||
|
||||
func (m *defaultYlOrdersMarketModel) Delete(ctx context.Context, id uint64) error {
|
||||
data, err := m.FindOne(ctx, id)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
transferYlOrdersMarketDeliverOrderNoSupplierOrderNoKey := fmt.Sprintf("%s%v:%v", cacheTransferYlOrdersMarketDeliverOrderNoSupplierOrderNoPrefix, data.DeliverOrderNo, data.SupplierOrderNo)
|
||||
transferYlOrdersMarketIdKey := fmt.Sprintf("%s%v", cacheTransferYlOrdersMarketIdPrefix, id)
|
||||
_, err = m.ExecCtx(ctx, func(ctx context.Context, conn sqlx.SqlConn) (result sql.Result, err error) {
|
||||
query := fmt.Sprintf("delete from %s where `id` = ?", m.table)
|
||||
return conn.ExecCtx(ctx, query, id)
|
||||
}, transferYlOrdersMarketDeliverOrderNoSupplierOrderNoKey, transferYlOrdersMarketIdKey)
|
||||
return err
|
||||
}
|
||||
|
||||
func (m *defaultYlOrdersMarketModel) FindOne(ctx context.Context, id uint64) (*YlOrdersMarket, error) {
|
||||
transferYlOrdersMarketIdKey := fmt.Sprintf("%s%v", cacheTransferYlOrdersMarketIdPrefix, id)
|
||||
var resp YlOrdersMarket
|
||||
err := m.QueryRowCtx(ctx, &resp, transferYlOrdersMarketIdKey, func(ctx context.Context, conn sqlx.SqlConn, v any) error {
|
||||
query := fmt.Sprintf("select %s from %s where `id` = ? limit 1", ylOrdersMarketRows, m.table)
|
||||
return conn.QueryRowCtx(ctx, v, query, id)
|
||||
})
|
||||
switch err {
|
||||
case nil:
|
||||
return &resp, nil
|
||||
case sqlc.ErrNotFound:
|
||||
return nil, ErrNotFound
|
||||
default:
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
|
||||
func (m *defaultYlOrdersMarketModel) FindOneByDeliverOrderNoSupplierOrderNo(ctx context.Context, deliverOrderNo string, supplierOrderNo string) (*YlOrdersMarket, error) {
|
||||
transferYlOrdersMarketDeliverOrderNoSupplierOrderNoKey := fmt.Sprintf("%s%v:%v", cacheTransferYlOrdersMarketDeliverOrderNoSupplierOrderNoPrefix, deliverOrderNo, supplierOrderNo)
|
||||
var resp YlOrdersMarket
|
||||
err := m.QueryRowIndexCtx(ctx, &resp, transferYlOrdersMarketDeliverOrderNoSupplierOrderNoKey, m.formatPrimary, func(ctx context.Context, conn sqlx.SqlConn, v any) (i any, e error) {
|
||||
query := fmt.Sprintf("select %s from %s where `deliver_order_no` = ? and `supplier_order_no` = ? limit 1", ylOrdersMarketRows, m.table)
|
||||
if err := conn.QueryRowCtx(ctx, &resp, query, deliverOrderNo, supplierOrderNo); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return resp.Id, nil
|
||||
}, m.queryPrimary)
|
||||
switch err {
|
||||
case nil:
|
||||
return &resp, nil
|
||||
case sqlc.ErrNotFound:
|
||||
return nil, ErrNotFound
|
||||
default:
|
||||
return nil, err
|
||||
}
|
||||
}
|
||||
|
||||
func (m *defaultYlOrdersMarketModel) Insert(ctx context.Context, data *YlOrdersMarket) (sql.Result, error) {
|
||||
transferYlOrdersMarketDeliverOrderNoSupplierOrderNoKey := fmt.Sprintf("%s%v:%v", cacheTransferYlOrdersMarketDeliverOrderNoSupplierOrderNoPrefix, data.DeliverOrderNo, data.SupplierOrderNo)
|
||||
transferYlOrdersMarketIdKey := fmt.Sprintf("%s%v", cacheTransferYlOrdersMarketIdPrefix, data.Id)
|
||||
ret, err := m.ExecCtx(ctx, func(ctx context.Context, conn sqlx.SqlConn) (result sql.Result, err error) {
|
||||
query := fmt.Sprintf("insert into %s (%s) values (?, ?, ?, ?, ?, ?, ?)", m.table, ylOrdersMarketRowsExpectAutoSet)
|
||||
return conn.ExecCtx(ctx, query, data.DeliverOrderNo, data.SupplierOrderNo, data.Request, data.Resp, data.ErrMsg, data.Status, data.VoucherId)
|
||||
}, transferYlOrdersMarketDeliverOrderNoSupplierOrderNoKey, transferYlOrdersMarketIdKey)
|
||||
return ret, err
|
||||
}
|
||||
|
||||
func (m *defaultYlOrdersMarketModel) Update(ctx context.Context, newData *YlOrdersMarket) error {
|
||||
data, err := m.FindOne(ctx, newData.Id)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
transferYlOrdersMarketDeliverOrderNoSupplierOrderNoKey := fmt.Sprintf("%s%v:%v", cacheTransferYlOrdersMarketDeliverOrderNoSupplierOrderNoPrefix, data.DeliverOrderNo, data.SupplierOrderNo)
|
||||
transferYlOrdersMarketIdKey := fmt.Sprintf("%s%v", cacheTransferYlOrdersMarketIdPrefix, data.Id)
|
||||
_, err = m.ExecCtx(ctx, func(ctx context.Context, conn sqlx.SqlConn) (result sql.Result, err error) {
|
||||
query := fmt.Sprintf("update %s set %s where `id` = ?", m.table, ylOrdersMarketRowsWithPlaceHolder)
|
||||
return conn.ExecCtx(ctx, query, newData.DeliverOrderNo, newData.SupplierOrderNo, newData.Request, newData.Resp, newData.ErrMsg, newData.Status, newData.VoucherId, newData.Id)
|
||||
}, transferYlOrdersMarketDeliverOrderNoSupplierOrderNoKey, transferYlOrdersMarketIdKey)
|
||||
return err
|
||||
}
|
||||
|
||||
func (m *defaultYlOrdersMarketModel) formatPrimary(primary any) string {
|
||||
return fmt.Sprintf("%s%v", cacheTransferYlOrdersMarketIdPrefix, primary)
|
||||
}
|
||||
|
||||
func (m *defaultYlOrdersMarketModel) queryPrimary(ctx context.Context, conn sqlx.SqlConn, v, primary any) error {
|
||||
query := fmt.Sprintf("select %s from %s where `id` = ? limit 1", ylOrdersMarketRows, m.table)
|
||||
return conn.QueryRowCtx(ctx, v, query, primary)
|
||||
}
|
||||
|
||||
func (m *defaultYlOrdersMarketModel) tableName() string {
|
||||
return m.table
|
||||
}
|
||||
Loading…
Reference in New Issue