新增添加购物车接口

This commit is contained in:
laodaming 2023-09-14 15:20:37 +08:00
parent dff1ebe013
commit b71141807b
3 changed files with 44 additions and 22 deletions

View File

@ -2,12 +2,6 @@ package gmodel
import "context" import "context"
// 获取用户购物车数量
func (s *FsShoppingCartModel) CountUserCart(ctx context.Context, userId int64) (total int64, err error) {
err = s.db.WithContext(ctx).Where("user_id = ?", userId).Limit(1).Count(&total).Error
return total, err
}
// 获取单个 // 获取单个
func (s *FsShoppingCartModel) FindOne(ctx context.Context, id int64, fields ...string) (resp *FsShoppingCart, err error) { func (s *FsShoppingCartModel) FindOne(ctx context.Context, id int64, fields ...string) (resp *FsShoppingCart, err error) {
db := s.db.WithContext(ctx).Where("id = ?", id) db := s.db.WithContext(ctx).Where("id = ?", id)
@ -18,6 +12,17 @@ func (s *FsShoppingCartModel) FindOne(ctx context.Context, id int64, fields ...s
return resp, err return resp, err
} }
// 创建
func (s *FsShoppingCartModel) Create(ctx context.Context, data *FsShoppingCart) error {
return s.db.WithContext(ctx).Create(&data).Error
}
// 获取用户购物车数量
func (s *FsShoppingCartModel) CountUserCart(ctx context.Context, userId int64) (total int64, err error) {
err = s.db.WithContext(ctx).Where("user_id = ?", userId).Limit(1).Count(&total).Error
return total, err
}
// 获取多个 // 获取多个
func (s *FsShoppingCartModel) GetAllByIds(ctx context.Context, ids []int64, sort string, fields ...string) (resp []FsShoppingCart, err error) { func (s *FsShoppingCartModel) GetAllByIds(ctx context.Context, ids []int64, sort string, fields ...string) (resp []FsShoppingCart, err error) {
if len(ids) == 0 { if len(ids) == 0 {

View File

@ -2,18 +2,17 @@ package logic
import ( import (
"context" "context"
"encoding/json"
"errors" "errors"
"fmt"
"fusenapi/constants" "fusenapi/constants"
"fusenapi/model/gmodel" "fusenapi/model/gmodel"
"fusenapi/server/shopping-cart/internal/svc"
"fusenapi/server/shopping-cart/internal/types"
"fusenapi/utils/auth" "fusenapi/utils/auth"
"fusenapi/utils/basic" "fusenapi/utils/basic"
"fusenapi/utils/shopping_cart" "fusenapi/utils/shopping_cart"
"gorm.io/gorm" "gorm.io/gorm"
"math" "time"
"fusenapi/server/shopping-cart/internal/svc"
"fusenapi/server/shopping-cart/internal/types"
"github.com/zeromicro/go-zero/core/logx" "github.com/zeromicro/go-zero/core/logx"
) )
@ -165,8 +164,26 @@ func (l *AddToCartLogic) AddToCart(req *types.AddToCartReq, userinfo *auth.UserI
Slogan: req.DiyInfo.Slogan, Slogan: req.DiyInfo.Slogan,
}, },
} }
//根据 snapshotJsonBytes, _ := json.Marshal(snapshot)
return resp.SetStatus(basic.CodeOK) snapshotJsonStr := string(snapshotJsonBytes)
now := time.Now().UTC()
err = l.svcCtx.AllModels.FsShoppingCart.Create(l.ctx, &gmodel.FsShoppingCart{
UserId: &userinfo.UserId,
ProductId: &req.ProductId,
TemplateId: &req.TemplateId,
ModelId: &modelInfo.Id,
SizeId: &req.SizeId,
FittingId: &req.FittingId,
PurchaseQuantity: &req.PurchaseQuantity,
Snapshot: &snapshotJsonStr,
Ctime: &now,
Utime: &now,
})
if err != nil {
logx.Error(err)
return resp.SetStatusWithMessage(basic.CodeDbSqlErr, "system err:failed to add to cart ")
}
return resp.SetStatus(basic.CodeOK, "success")
} }
// 参数校验 // 参数校验

View File

@ -12,22 +12,22 @@ type CartSnapshot struct {
UserDiyInformation UserDiyInformation `json:"user_diy_information"` //用户diy数据 UserDiyInformation UserDiyInformation `json:"user_diy_information"` //用户diy数据
} }
type ModelInfo struct { type ModelInfo struct {
ModelJson string `json:"model_json"` //模型json数据 ModelJson string `json:"model_json"` //模型设计json数据
} }
type FittingInfo struct { type FittingInfo struct {
FittingJson string `json:"fitting_json"` FittingJson string `json:"fitting_json"` //配件设计json数据
} }
type TemplateInfo struct { type TemplateInfo struct {
TemplateJson string `json:"template_json"` //模板json数据 TemplateJson string `json:"template_json"` //模板设计json数据
TemplateTag string `json:"template_tag"` //模板标签 TemplateTag string `json:"template_tag"` //模板标签
} }
type SizeInfo struct { type SizeInfo struct {
Title string `json:"title"` Title string `json:"title"` //尺寸信息
} }
type UserDiyInformation struct { type UserDiyInformation struct {
Phone string `json:"phone"` Phone string `json:"phone"` //电话
Address string `json:"address"` Address string `json:"address"` //地址
Website string `json:"website"` Website string `json:"website"` //网站
Qrcode string `json:"qrcode"` Qrcode string `json:"qrcode"` //二维码
Slogan string `json:"slogan"` Slogan string `json:"slogan"` //slogan
} }