锁定库存
CI / changes (push) Successful in 13s
CI / docker-bff (push) Has been skipped
CI / docker-product (push) Has been skipped
CI / docker-admin (push) Has been skipped
CI / docker-user (push) Has been skipped
CI / docker-ad (push) Has been skipped
CI / docker-chore (push) Has been skipped
CI / docker-express (push) Has been skipped
CI / docker-sale (push) Successful in 25s
CI / changes (push) Successful in 13s
CI / docker-bff (push) Has been skipped
CI / docker-product (push) Has been skipped
CI / docker-admin (push) Has been skipped
CI / docker-user (push) Has been skipped
CI / docker-ad (push) Has been skipped
CI / docker-chore (push) Has been skipped
CI / docker-express (push) Has been skipped
CI / docker-sale (push) Successful in 25s
This commit is contained in:
@@ -4,6 +4,7 @@ import (
|
||||
"context"
|
||||
"lone-services/pkg/modelbase"
|
||||
"lone-services/pkg/utils"
|
||||
product "lone-services/rpc/product/pb"
|
||||
"lone-services/services/order/internal/dao"
|
||||
"lone-services/services/order/internal/model"
|
||||
"lone-services/services/order/validator"
|
||||
@@ -124,6 +125,8 @@ func (l *WebCreateLogic) WebCreate(in *order.CreateOrderRequest) (*order.Respons
|
||||
var totalPrice float64
|
||||
errData := make(map[int64]int64)
|
||||
productItems := []dao.OrderProductCreate{}
|
||||
|
||||
NumItems := make([]*product.NumberItem, 0)
|
||||
for _, item := range products.Items {
|
||||
if buyNum, ok := ids[item.Id]; ok {
|
||||
if buyNum > int64(item.Number) {
|
||||
@@ -131,6 +134,8 @@ func (l *WebCreateLogic) WebCreate(in *order.CreateOrderRequest) (*order.Respons
|
||||
return l.out(utils.Fail,
|
||||
item.Name+"购买数量超出库存,目前可以够买:"+strconv.Itoa(int(item.Number)))
|
||||
} else {
|
||||
numItem := &product.NumberItem{Id: item.Id, Number: uint32(buyNum)}
|
||||
NumItems = append(NumItems, numItem)
|
||||
keys = append(keys, strconv.Itoa(int(item.Id)))
|
||||
totalPrice += item.Price * float64(buyNum)
|
||||
productItems = append(productItems, dao.OrderProductCreate{
|
||||
@@ -171,20 +176,19 @@ func (l *WebCreateLogic) WebCreate(in *order.CreateOrderRequest) (*order.Respons
|
||||
return l.fail(utils.Fail)
|
||||
}
|
||||
|
||||
//TODO 扣库存接口
|
||||
//cli, err := svc.GetRpcClient(l.svcCtx.ProductSvcName)
|
||||
//if err != nil {
|
||||
// mobileObj.Rollback()
|
||||
// return l.fail(utils.Fail)
|
||||
//}
|
||||
cli, err := svc.GetRpcClient(l.svcCtx.ProductSvcName)
|
||||
if err != nil {
|
||||
mobileObj.Rollback()
|
||||
return l.fail(utils.Fail)
|
||||
}
|
||||
|
||||
//productClient := product.NewProductClient(cli.Conn())
|
||||
//_, err = productClient.Number(l.ctx, &product.NumberReq{Id: item.Id, Type: utils.NumberOne, Number: buyNum})
|
||||
//if err != nil {
|
||||
// mobileObj.Rollback()
|
||||
// logx.Errorf("get products err: %v", err)
|
||||
// return l.fail(utils.Fail, "产品库存不足")
|
||||
//}
|
||||
productClient := product.NewProductClient(cli.Conn())
|
||||
_, err = productClient.NumberItems(l.ctx, &product.NumberItemsReq{Type: utils.NumberOne, Items: NumItems})
|
||||
if err != nil {
|
||||
mobileObj.Rollback()
|
||||
logx.Errorf("get products err: %v", err)
|
||||
return l.out(utils.Fail, "产品库存不足")
|
||||
}
|
||||
|
||||
mobileObj.Commit()
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
login_out_time=43200 #api接口超时时间分
|
||||
login_refresh_out_time=83200
|
||||
name = "sale-service"
|
||||
listenOn = "0.0.0.0:10300"
|
||||
listenOn = "0.0.0.0:10900"
|
||||
mode = "dev"
|
||||
[log]
|
||||
path = "logs"
|
||||
@@ -53,6 +53,3 @@
|
||||
|
||||
[encrypt]
|
||||
data_key = "u2t9T3luZtoRfhBstkFN6TiIMW38BA8a"
|
||||
|
||||
[services]
|
||||
chore = "chore-service"
|
||||
Reference in New Issue
Block a user