添加用户购买车加载与存储操作
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)
|
addressList, _, err = dao.QueryUserDeliveryAddress(dao.GetDB(), []string{userID}, 0, model.UnlimitedPageSize)
|
||||||
return addressList, err
|
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 {
|
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"`
|
UserID string `orm:"size(48);column(user_id)" json:"userID"`
|
||||||
StoreID int `orm:"column(store_id)" json:"storeID"`
|
StoreID int `orm:"column(store_id)" json:"storeID"`
|
||||||
SkuID int `orm:"column(sku_id)"`
|
SkuID int `orm:"column(sku_id)"`
|
||||||
ActID int `orm:"column(act_id)" json:"actID"`
|
ActID int `orm:"column(act_id)" json:"actID"`
|
||||||
|
|
||||||
Count int `json:"count"`
|
Count int `json:"count"`
|
||||||
AddedAt time.Time `orm:"auto_now_add;type(datetime)" json:"addedAt"`
|
Price int `json:"price"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (*UserCartItem) TableUnique() [][]string {
|
func (*UserCartItem) TableUnique() [][]string {
|
||||||
|
|||||||
@@ -324,3 +324,37 @@ func (c *User2Controller) QueryMyDeliveryAddress() {
|
|||||||
return retVal, "", err
|
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.DataResource{})
|
||||||
|
|
||||||
orm.RegisterModel(&model.UserDeliveryAddress{})
|
orm.RegisterModel(&model.UserDeliveryAddress{})
|
||||||
|
orm.RegisterModel(&model.UserCartItem{})
|
||||||
// create table
|
// create table
|
||||||
orm.RunSyncdb("default", false, true)
|
orm.RunSyncdb("default", false, true)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user