add order service logic

This commit is contained in:
daniel.w 2024-10-28 01:54:05 +08:00
parent ea419a9943
commit af6b700f9b
2 changed files with 8 additions and 26 deletions

View File

@ -5,8 +5,9 @@ import (
"app-cloudep-trade-service/internal/domain"
"app-cloudep-trade-service/internal/domain/usecase"
"app-cloudep-trade-service/internal/svc"
ers "code.30cm.net/digimon/library-go/errs"
"context"
ers "code.30cm.net/digimon/library-go/errs"
"github.com/zeromicro/go-zero/core/logx"
)
@ -61,8 +62,8 @@ type createOrderReq struct { // 訂單ID
OrderNote *string `json:"order_note,omitempty" validate:"omitempty"`
}
//nolint:gocyclo,gocognit
func buildCreateOrderReq(in *trade.CreateOrderReq) (*createOrderReq, error) {
//nolint:gocyclo
func buildCreateOrderReq(in *trade.CreateOrderReq) *createOrderReq {
createOrderReq := &createOrderReq{
BusinessID: in.BusinessId,
OrderType: int8(in.OrderType),
@ -160,7 +161,7 @@ func buildCreateOrderReq(in *trade.CreateOrderReq) (*createOrderReq, error) {
createOrderReq.OrderNote = in.OrderNote
}
return createOrderReq, nil
return createOrderReq
}
// toCreateOrderReq 將 createOrderReq 轉換為 CreateOrderReq
@ -206,12 +207,7 @@ func toCreateOrderUseCase(req *createOrderReq) usecase.CreateOrderReq {
// CreateOrder 建立訂單
func (l *CreateOrderLogic) CreateOrder(in *trade.CreateOrderReq) (*trade.OKResp, error) {
req, err := buildCreateOrderReq(in)
if err != nil {
// 錯誤代碼 06-011-00
return nil, ers.InvalidFormat(err.Error())
}
req := buildCreateOrderReq(in)
// 驗證資料
if err := l.svcCtx.Validate.ValidateAll(req); err != nil {
@ -219,7 +215,7 @@ func (l *CreateOrderLogic) CreateOrder(in *trade.CreateOrderReq) (*trade.OKResp,
return nil, ers.InvalidFormat(err.Error())
}
err = l.svcCtx.OrderUseCase.CreateOrder(l.ctx, toCreateOrderUseCase(req))
err := l.svcCtx.OrderUseCase.CreateOrder(l.ctx, toCreateOrderUseCase(req))
if err != nil {
return nil, err
}

View File

@ -2,28 +2,14 @@ package orderservicelogic
import (
"github.com/shopspring/decimal"
"github.com/zeromicro/go-zero/core/logx"
)
func decimalPtrFromString(val string) *decimal.Decimal {
if val == "" {
return nil
}
dec, err := decimal.NewFromString(val)
if err != nil {
logx.Errorf("Failed to convert string to decimal: %v", err)
return nil
}
return &dec
}
// getInt64Value 將 *int64 的值返回,如果為 nil 則返回 0
func getInt64Value(val *int64) int64 {
if val == nil {
return 0
}
return *val
}