添加用户购买车加载与存储操作
This commit is contained in:
@@ -633,3 +633,48 @@ func QueryMyDeliveryAddress(ctx *jxcontext.Context) (addressList []*dao.UserDeli
|
||||
addressList, _, err = dao.QueryUserDeliveryAddress(dao.GetDB(), []string{userID}, 0, model.UnlimitedPageSize)
|
||||
return addressList, err
|
||||
}
|
||||
|
||||
func SaveUserCart(ctx *jxcontext.Context, userID string, storeID int, cartItems []*model.UserCartItem) (err error) {
|
||||
if userID == "" || storeID == 0 {
|
||||
return fmt.Errorf("用户与门店必须要指定")
|
||||
}
|
||||
for _, v := range cartItems {
|
||||
v.UserID = userID
|
||||
v.StoreID = storeID
|
||||
dao.WrapAddIDCULEntity(v, userID)
|
||||
}
|
||||
db := dao.GetDB()
|
||||
dao.Begin(db)
|
||||
defer func() {
|
||||
if r := recover(); r != nil || err != nil {
|
||||
dao.Rollback(db)
|
||||
if r != nil {
|
||||
panic(r)
|
||||
}
|
||||
}
|
||||
}()
|
||||
_, err = dao.ExecuteSQL(db, `
|
||||
DELETE t1
|
||||
FROM user_cart_item t1
|
||||
WHERE t1.user_id = ? AND t1.store_id = ?
|
||||
`, userID, storeID)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
err = dao.CreateMultiEntities(dao.GetDB(), cartItems)
|
||||
return err
|
||||
}
|
||||
|
||||
func LoadUserCart(ctx *jxcontext.Context, userID string, storeID int) (cartItems []*model.UserCartItem, err error) {
|
||||
if userID == "" || storeID == 0 {
|
||||
return nil, fmt.Errorf("用户与门店必须要指定")
|
||||
}
|
||||
sql := `
|
||||
SELECT t1.*
|
||||
FROM user_cart_item t1
|
||||
WHERE t1.user_id = ? AND t1.store_id = ?
|
||||
ORDER BY t1.sku_id
|
||||
`
|
||||
err = dao.GetRows(dao.GetDB(), &cartItems, sql, userID, storeID)
|
||||
return cartItems, err
|
||||
}
|
||||
|
||||
@@ -135,15 +135,18 @@ func (*UserDeliveryAddress) TableUnique() [][]string {
|
||||
}
|
||||
|
||||
type UserCartItem struct {
|
||||
ModelIDCUL
|
||||
ID int64 `orm:"column(id)" json:"-"`
|
||||
CreatedAt time.Time `orm:"auto_now_add;type(datetime)" json:"createdAt"`
|
||||
UpdatedAt time.Time `orm:"auto_now;type(datetime)" json:"-"`
|
||||
LastOperator string `orm:"size(32)" json:"-"` // 最后操作员
|
||||
|
||||
UserID string `orm:"size(48);column(user_id)" json:"userID"`
|
||||
StoreID int `orm:"column(store_id)" json:"storeID"`
|
||||
SkuID int `orm:"column(sku_id)"`
|
||||
ActID int `orm:"column(act_id)" json:"actID"`
|
||||
|
||||
Count int `json:"count"`
|
||||
AddedAt time.Time `orm:"auto_now_add;type(datetime)" json:"addedAt"`
|
||||
Count int `json:"count"`
|
||||
Price int `json:"price"`
|
||||
}
|
||||
|
||||
func (*UserCartItem) TableUnique() [][]string {
|
||||
|
||||
@@ -324,3 +324,37 @@ func (c *User2Controller) QueryMyDeliveryAddress() {
|
||||
return retVal, "", err
|
||||
})
|
||||
}
|
||||
|
||||
// @Title 得到用户指定门店的购物车信息
|
||||
// @Description 得到用户指定门店的购物车信息
|
||||
// @Param token header string true "认证token"
|
||||
// @Param storeID query int true "门店ID"
|
||||
// @Success 200 {object} controllers.CallResult
|
||||
// @Failure 200 {object} controllers.CallResult
|
||||
// @router /LoadMyCart [get]
|
||||
func (c *User2Controller) LoadMyCart() {
|
||||
c.callLoadMyCart(func(params *tUser2LoadMyCartParams) (retVal interface{}, errCode string, err error) {
|
||||
_, userID := params.Ctx.GetMobileAndUserID()
|
||||
retVal, err = cms.LoadUserCart(params.Ctx, userID, params.StoreID)
|
||||
return retVal, "", err
|
||||
})
|
||||
}
|
||||
|
||||
// @Title 存储用户指定门店的购物车信息
|
||||
// @Description 存储用户指定门店的购物车信息
|
||||
// @Param token header string true "认证token"
|
||||
// @Param storeID formData int true "门店ID"
|
||||
// @Param payload formData string true "完整的购物车商品列表"
|
||||
// @Success 200 {object} controllers.CallResult
|
||||
// @Failure 200 {object} controllers.CallResult
|
||||
// @router /SaveMyCart [post]
|
||||
func (c *User2Controller) SaveMyCart() {
|
||||
c.callSaveMyCart(func(params *tUser2SaveMyCartParams) (retVal interface{}, errCode string, err error) {
|
||||
var cartItems []*model.UserCartItem
|
||||
_, userID := params.Ctx.GetMobileAndUserID()
|
||||
if err = jxutils.Strings2Objs(params.Payload, &cartItems); err == nil {
|
||||
err = cms.SaveUserCart(params.Ctx, userID, params.StoreID, cartItems)
|
||||
}
|
||||
return retVal, "", err
|
||||
})
|
||||
}
|
||||
|
||||
@@ -60,6 +60,7 @@ func Init() {
|
||||
orm.RegisterModel(&model.DataResource{})
|
||||
|
||||
orm.RegisterModel(&model.UserDeliveryAddress{})
|
||||
orm.RegisterModel(&model.UserCartItem{})
|
||||
// create table
|
||||
orm.RunSyncdb("default", false, true)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user