1、商城列表接口优化;
2、租赁订单排序优化; 3、新增商城购物车接口(待完善);
This commit is contained in:
parent
c1803207bf
commit
8c0cd8e574
|
@ -17,6 +17,14 @@ import (
|
|||
"time"
|
||||
)
|
||||
|
||||
// MallGoodsList 商品列表
|
||||
// @Summary 商品列表
|
||||
// @Tags 商城, V1.4.5
|
||||
// @Produce json
|
||||
// @Accept json
|
||||
// @Param request body model.GoodsListReq true "新建商品列表模型"
|
||||
// @Success 200 {object} model.GoodsListResp
|
||||
// @Router /api/v1/mall/goods/list [post]
|
||||
func MallGoodsList(c *gin.Context) {
|
||||
req := model.GoodsListReq{}
|
||||
if err := c.ShouldBindJSON(&req); err != nil {
|
||||
|
@ -49,10 +57,10 @@ func MallGoodsList(c *gin.Context) {
|
|||
}
|
||||
}
|
||||
|
||||
ret := map[string]interface{}{
|
||||
"list": list,
|
||||
"cur_page": req.PageIdx,
|
||||
"total_page": total,
|
||||
ret := model.GoodsListResp{
|
||||
List: list,
|
||||
CurPage: req.PageIdx,
|
||||
TotalPage: total,
|
||||
}
|
||||
|
||||
RespOK(c, ret)
|
||||
|
|
|
@ -2052,7 +2052,7 @@ func NewGetGameCardList(sortType, page, pageSize int, gameTypeIds []uint64, stor
|
|||
}
|
||||
effectiveStoreListStr := fmt.Sprintf("(%s)", strings.Trim(strings.Join(strings.Fields(fmt.Sprint(effectiveStoreList)), ","), "[]"))
|
||||
|
||||
if homeCategoryInfo.AllFlag == 1 && homeCategoryInfo.OrderFlag != 1 {
|
||||
if homeCategoryInfo.AllFlag == 1 {
|
||||
if storeId != 0 {
|
||||
var cardStocks []GameCardGoodsStock
|
||||
cardStockSql1 := fmt.Sprintf("SELECT a.* FROM game_card_goods_stock a LEFT JOIN game_card b ON a.game_card_id=b.id WHERE a.store_id=%d AND a.store_id IN %s AND a.rent_stock>0 ORDER BY b.id ASC;", storeId, effectiveStoreListStr)
|
||||
|
|
|
@ -79,7 +79,7 @@ type Goods struct {
|
|||
VersionId uint64 `json:"version_id"` // 乐观锁
|
||||
ShowDiscount int8 `json:"show_discount"` //
|
||||
GoodsAccountNum uint32 `json:"goods_account_num"` // 收款账户编号
|
||||
//Stock uint32 `json:"stock"` // 库存
|
||||
ErpStock uint32 `json:"erp_stock" gorm:"-"` // erp库存
|
||||
|
||||
GoodsCat *GoodsCat `json:"goods_cat" gorm:"-"`
|
||||
GoodsDiscount *GoodsDiscount `json:"goods_discount" gorm:"-"`
|
||||
|
@ -203,6 +203,12 @@ type GoodsListReq struct {
|
|||
PageSize int `json:"page_size"`
|
||||
}
|
||||
|
||||
type GoodsListResp struct {
|
||||
List []Goods `json:"list"`
|
||||
CurPage int `json:"cur_page"`
|
||||
TotalPage int `json:"total_page"`
|
||||
}
|
||||
|
||||
func (m *GoodsListReq) GoodsList() ([]Goods, int, error) {
|
||||
page := m.PageIdx - 1
|
||||
if page < 0 {
|
||||
|
@ -248,6 +254,51 @@ func (m *GoodsListReq) GoodsList() ([]Goods, int, error) {
|
|||
return nil, 0, err
|
||||
}
|
||||
|
||||
// 处理ERP库存:批量查询
|
||||
erpIDs := make([]uint32, 0)
|
||||
for _, g := range goodsList {
|
||||
if g.ErpCommodityId != 0 {
|
||||
erpIDs = append(erpIDs, g.ErpCommodityId)
|
||||
}
|
||||
}
|
||||
|
||||
if len(erpIDs) > 0 {
|
||||
type ErpStockData struct {
|
||||
ErpCommodityId uint32
|
||||
Stock uint32
|
||||
}
|
||||
var stocks []ErpStockData
|
||||
db := DB.Table("erp_stock_commodity").
|
||||
Select("erp_commodity_id, SUM(count) AS stock").
|
||||
Where("state = ?", 1).
|
||||
Group("erp_commodity_id")
|
||||
|
||||
// 根据数量区分使用 = 或 IN
|
||||
if len(erpIDs) == 1 {
|
||||
db = db.Where("erp_commodity_id = ?", erpIDs[0])
|
||||
} else {
|
||||
db = db.Where("erp_commodity_id IN ?", erpIDs)
|
||||
}
|
||||
|
||||
if err := db.Find(&stocks).Error; err != nil {
|
||||
logger.Error("err:", err)
|
||||
return nil, 0, err
|
||||
}
|
||||
|
||||
// 构建映射
|
||||
stockMap := make(map[uint32]uint32, len(stocks))
|
||||
for _, s := range stocks {
|
||||
stockMap[s.ErpCommodityId] = s.Stock
|
||||
}
|
||||
|
||||
// 给商品赋值库存
|
||||
for i := range goodsList {
|
||||
if goodsList[i].ErpCommodityId != 0 {
|
||||
goodsList[i].ErpStock = stockMap[goodsList[i].ErpCommodityId]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return goodsList, totalPage, nil
|
||||
}
|
||||
|
||||
|
|
12
model/mall_cart.go
Normal file
12
model/mall_cart.go
Normal file
|
@ -0,0 +1,12 @@
|
|||
package model
|
||||
|
||||
//go:generate goqueryset -in mall_cart.go
|
||||
type MallCart struct {
|
||||
Model
|
||||
|
||||
Uid uint64 `json:"uid" gorm:"index"`
|
||||
GameCardId uint64 `json:"game_card_id"` // 游戏卡id
|
||||
Count uint32 `json:"count"` // 数量
|
||||
|
||||
GameCard GameCard `json:"game_card" gorm:"-"`
|
||||
}
|
|
@ -206,14 +206,21 @@ func ConfigAppRouter(r gin.IRouter) {
|
|||
mall.POST("order/refund_cancel", controller.MallOrderRefundCancel) // 订单-退货-取消
|
||||
mall.POST("order/refund_send", controller.MallOrderRefundSend) // 订单-退货-填物流
|
||||
}
|
||||
shoppingCart := api.Group("shopping_cart") // 心愿单/购物车
|
||||
{
|
||||
|
||||
mallCart := api.Group("mall_cart") // 商城购物车
|
||||
{
|
||||
mallCart.Use(auth.UserAccessAuth)
|
||||
mallCart.POST("list", controller.ShoppingCartList) // 商城购物车列表
|
||||
mallCart.POST("add", controller.ShoppingCartAdd) // 添加商品
|
||||
mallCart.POST("del", controller.ShoppingCartDel) // 删除商品
|
||||
}
|
||||
|
||||
shoppingCart := api.Group("shopping_cart") // 租卡心愿单/购物车
|
||||
{
|
||||
shoppingCart.Use(auth.UserAccessAuth)
|
||||
shoppingCart.POST("list", controller.ShoppingCartList) // 详情
|
||||
shoppingCart.POST("add", controller.ShoppingCartAdd) //
|
||||
shoppingCart.POST("del", controller.ShoppingCartDel) //
|
||||
|
||||
shoppingCart.POST("add", controller.ShoppingCartAdd) // 添加商品
|
||||
shoppingCart.POST("del", controller.ShoppingCartDel) // 删除商品
|
||||
}
|
||||
shareCard := api.Group("share_card")
|
||||
{
|
||||
|
@ -322,5 +329,4 @@ func ConfigAppRouter(r gin.IRouter) {
|
|||
lottery.POST("/today_draw_count", controller.GetTodayDrawCount) // 查询用户当天抽奖次数
|
||||
lottery.POST("/prize_order/detail", controller.GetLotteryPrizeOrderDetail) // 查询抽奖订单详情
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user