109 lines
3.8 KiB
Go
Executable File
109 lines
3.8 KiB
Go
Executable File
package gmodel
|
|
|
|
import (
|
|
"context"
|
|
)
|
|
|
|
func (t *FsProductTemplateV2Model) FindAllByProductIds(ctx context.Context, productIds []int64, fields ...string) (resp []FsProductTemplateV2, err error) {
|
|
if len(productIds) == 0 {
|
|
return
|
|
}
|
|
db := t.db.WithContext(ctx).Model(&FsProductTemplateV2{}).Where("`product_id` in (?) and `is_del` = ? and `status` = ?", productIds, 0, 1)
|
|
if len(fields) != 0 {
|
|
db = db.Select(fields[0])
|
|
}
|
|
err = db.Find(&resp).Error
|
|
return resp, err
|
|
}
|
|
func (t *FsProductTemplateV2Model) FindAllByIds(ctx context.Context, ids []int64) (resp []FsProductTemplateV2, err error) {
|
|
if len(ids) == 0 {
|
|
return
|
|
}
|
|
err = t.db.WithContext(ctx).Model(&FsProductTemplateV2{}).Where("`id` in (?) and `is_del` = ? and `status` = ?", ids, 0, 1).Find(&resp).Error
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
return
|
|
}
|
|
func (t *FsProductTemplateV2Model) FindAllByIdsWithoutStatus(ctx context.Context, ids []int64, fields ...string) (resp []FsProductTemplateV2, err error) {
|
|
if len(ids) == 0 {
|
|
return
|
|
}
|
|
db := t.db.WithContext(ctx).Model(&FsProductTemplateV2{}).Where("`id` in (?) ", ids)
|
|
if len(fields) != 0 {
|
|
db = db.Select(fields[0])
|
|
}
|
|
err = db.Find(&resp).Error
|
|
return resp, err
|
|
}
|
|
func (t *FsProductTemplateV2Model) FindOne(ctx context.Context, id int64) (resp *FsProductTemplateV2, err error) {
|
|
|
|
err = t.db.WithContext(ctx).Model(&FsProductTemplateV2{}).Where("`id` = ? ", id).Find(&resp).Error
|
|
return resp, err
|
|
}
|
|
func (t *FsProductTemplateV2Model) FindByParam(ctx context.Context, id int64, modelId int64, fields ...string) (resp *FsProductTemplateV2, err error) {
|
|
db := t.db.WithContext(ctx).Model(&FsProductTemplateV2{}).Where("`id` = ? and `model_id` = ?", id, modelId)
|
|
if len(fields) != 0 {
|
|
db = db.Select(fields[0])
|
|
}
|
|
err = db.Take(&resp).Error
|
|
return resp, err
|
|
}
|
|
func (t *FsProductTemplateV2Model) Update(ctx context.Context, id int64, data *FsProductTemplateV2) error {
|
|
return t.db.WithContext(ctx).Model(&FsProductTemplateV2{}).Where("`id` = ? ", id).Updates(&data).Error
|
|
}
|
|
func (t *FsProductTemplateV2Model) FindAllByModelIds(ctx context.Context, modelIds []int64, orderBy string, fields ...string) (resp []FsProductTemplateV2, err error) {
|
|
if len(modelIds) == 0 {
|
|
return
|
|
}
|
|
db := t.db.WithContext(ctx).Model(&FsProductTemplateV2{}).Where("`model_id` in (?) and `is_del` = ? and `status` = ?", modelIds, 0, 1)
|
|
switch orderBy {
|
|
case "":
|
|
db = db.Order("id DESC")
|
|
default:
|
|
db = db.Order(orderBy)
|
|
}
|
|
err = db.Find(&resp).Error
|
|
return resp, err
|
|
}
|
|
func (t *FsProductTemplateV2Model) FindAllByProductIdModelIds(ctx context.Context, modelIds []int64, productId int64) (resp []FsProductTemplateV2, err error) {
|
|
if len(modelIds) == 0 {
|
|
return
|
|
}
|
|
err = t.db.WithContext(ctx).Model(&FsProductTemplateV2{}).Where("`model_id` in (?) and `product_id` = ? ", modelIds, productId).Find(&resp).Error
|
|
return resp, err
|
|
}
|
|
func (t *FsProductTemplateV2Model) FindOneByModelId(ctx context.Context, modelId int64) (resp *FsProductTemplateV2, err error) {
|
|
err = t.db.WithContext(ctx).Model(&FsProductTemplateV2{}).Where("`model_id` = ? ", modelId).Take(&resp).Error
|
|
return resp, err
|
|
}
|
|
|
|
type GetProductTemplateListByParamsReq struct {
|
|
ProductIds []int64 //必传哦
|
|
GroupBy string
|
|
OrderBy string
|
|
Fields string
|
|
Status *int64
|
|
}
|
|
|
|
func (t *FsProductTemplateV2Model) GetProductTemplateListByParams(ctx context.Context, req GetProductTemplateListByParamsReq) (resp []FsProductTemplateV2, err error) {
|
|
if len(req.ProductIds) == 0 {
|
|
return
|
|
}
|
|
db := t.db.WithContext(ctx).Model(&FsProductTemplateV2{}).Where("`product_id` in (?)", req.ProductIds)
|
|
if req.GroupBy != "" {
|
|
db = db.Group(req.GroupBy)
|
|
}
|
|
if req.OrderBy != "" {
|
|
db = db.Order(req.OrderBy)
|
|
}
|
|
if req.Fields != "" {
|
|
db = db.Select(req.Fields)
|
|
}
|
|
if req.Status != nil {
|
|
db = db.Where("`status` = ?", req.Status)
|
|
}
|
|
err = db.Find(&resp).Error
|
|
return resp, err
|
|
}
|