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