feat: product number
CI / changes (push) Successful in 36s
CI / docker-bff (push) Successful in 3m8s
CI / docker-product (push) Successful in 3m36s
CI / docker-admin (push) Successful in 3m35s
CI / docker-user (push) Successful in 9s
CI / docker-ad (push) Successful in 29s
CI / docker-chore (push) Failing after 4s

This commit is contained in:
zzw
2026-08-26 16:53:50 +08:00
parent 0ca3f6d84f
commit 72d55d396d
39 changed files with 1284 additions and 363 deletions
@@ -2,6 +2,7 @@ package logic
import (
"context"
"lone-services/pkg/utils"
"lone-services/pkg/validate"
product "lone-services/rpc/product/pb"
@@ -10,6 +11,8 @@ import (
"lone-services/services/product/validator"
"github.com/zeromicro/go-zero/core/logx"
"google.golang.org/grpc/codes"
"google.golang.org/grpc/status"
)
type NumberAddLogic struct {
@@ -37,5 +40,25 @@ func (l *NumberAddLogic) NumberAdd(in *product.NumberAddReq) (*product.Response,
return failResponse(utils.ErrorNoLoginInfo), nil
}
return changeProductNumber(l.Logger, req.Id, dao.NumberTypeAdd, req.Number)
if err := changeProductNumber(l.Logger, req.Id, dao.NumberTypeAdd, req.Number); err != nil {
return mapNumberErr(err), nil
}
return okResponse(utils.StringEmpty), nil
}
func mapNumberErr(err error) *product.Response {
st, ok := status.FromError(err)
if !ok {
return failResponse(utils.Fail)
}
switch st.Code() {
case codes.InvalidArgument:
return outResponse(utils.ErrorParams, st.Message())
case codes.NotFound:
return failResponse(utils.ErrorNotFund)
case codes.FailedPrecondition:
return failResponse(utils.ErrorStockNotEnough)
default:
return failResponse(utils.Fail)
}
}