// Code generated by goctl. DO NOT EDIT. package gmodel import ( "context" "gorm.io/gorm" ) type FindOneCartByParamsReq struct { UserId *int64 ProductId *int64 TemplateId *int64 PriceId *int64 DesignId *int64 MaterialId *int64 Status *int64 } func (c *FsCartModel) FindOne(ctx context.Context, id int64) (resp *FsCart, err error) { err = c.db.WithContext(ctx).Model(&FsCart{}).Where("`id` = ?", id).First(&resp).Error return resp, err } func (c *FsCartModel) FindOneCartByParams(ctx context.Context, req FindOneCartByParamsReq) (resp *FsCart, err error) { db := c.db.WithContext(ctx).Model(&FsCart{}) if req.UserId != nil { db = db.Where("`user_id` = ?", req.UserId) } if req.ProductId != nil { db = db.Where("`product_id` = ?", req.ProductId) } if req.TemplateId != nil { db = db.Where("`template_id` = ?", req.TemplateId) } if req.PriceId != nil { db = db.Where("`price_id` = ?", req.PriceId) } if req.DesignId != nil { db = db.Where("`design_id` = ?", req.DesignId) } if req.MaterialId != nil { db = db.Where("`material_id` = ?", req.MaterialId) } if req.Status != nil { db = db.Where("`status` = ?", req.Status) } err = db.First(&resp).Error if err != nil { return nil, err } return } func (c *FsCartModel) Create(ctx context.Context, data FsCart) error { return c.db.WithContext(ctx).Model(&FsCart{}).Create(&data).Error } func (c *FsCartModel) Update(ctx context.Context, id int64, data FsCart) error { return c.db.WithContext(ctx).Model(&FsCart{}).Where("`id` = ?", id).Updates(data).Error } func (c *FsCartModel) UpdateByIdUserId(ctx context.Context, id int64, userId int64, data FsCart) error { return c.db.WithContext(ctx).Model(&FsCart{}).Where("`id` = ? and `user_id` = ?", id, userId).Updates(data).Error } func (c *FsCartModel) CountUserCart(ctx context.Context, userId int64) (total int64, err error) { err = c.db.WithContext(ctx).Model(&FsCart{}).Where("`user_id` = ? and `status` = ? limit 1", userId, 1).Count(&total).Error if err != nil { return 0, err } return } func (c *FsCartModel) GetAllByUserId(ctx context.Context, userId int64, sort string) (resp []FsCart, err error) { db := c.db.WithContext(ctx).Model(&FsCart{}).Where("`user_id` = ? and `status` = ?", userId, 1) switch sort { case "ctime-desc": db = db.Order("`ctime` DESC") case "ctime-asc": db = db.Order("`ctime` ASC") } err = db.Find(&resp).Error if err != nil { return nil, err } return } func (c *FsCartModel) GetUserCartsByIds(ctx context.Context, userId int64, ids []int64) (resp []FsCart, err error) { if userId <= 0 || len(ids) == 0 { return } err = c.db.WithContext(ctx).Model(&FsCart{}).Where("`id` in (?) and `user_id` = ?", ids, userId).Find(&resp).Error return resp, err } func (c *FsCartModel) DeleteCartsByIds(ctx context.Context, ids []int64) ( err error) { if len(ids) == 0 { return } return c.db.Table(c.name).WithContext(ctx).Model(&FsCart{}).Where("`id` in (?)", ids).Update("status", 0).Error } func (c *FsCartModel) RBDeleteCartsByIds(rowBuilder *gorm.DB,ids []int64) ( err error) { if len(ids) == 0 { return } return rowBuilder.Where("`id` in (?)", ids).Update("status", 0).Error } func (c *FsCartModel) BuilderTrans(ctx context.Context,selectData []string) *gorm.DB { var rowBuilder = c.db.WithContext(ctx) if selectData != nil { rowBuilder = rowBuilder.Select(selectData) } else { rowBuilder = rowBuilder.Select("*") } return rowBuilder }