fusenapi/model/gmodel/fs_product_template_v2_logic.go

167 lines
6.0 KiB
Go
Raw Normal View History

2023-06-16 07:11:37 +00:00
package gmodel
import (
"context"
)
2023-08-17 10:19:15 +00:00
func (t *FsProductTemplateV2Model) FindAllByProductIds(ctx context.Context, productIds []int64, sort string, fields ...string) (resp []FsProductTemplateV2, err error) {
2023-06-16 07:11:37 +00:00
if len(productIds) == 0 {
return
}
2023-07-17 03:42:29 +00:00
db := t.db.WithContext(ctx).Model(&FsProductTemplateV2{}).Where("`product_id` in (?) and `is_del` = ? and `status` = ?", productIds, 0, 1)
2023-08-17 10:19:15 +00:00
if sort != "" {
db = db.Order(sort)
}
2023-07-17 03:42:29 +00:00
if len(fields) != 0 {
db = db.Select(fields[0])
2023-06-16 07:11:37 +00:00
}
2023-07-17 03:42:29 +00:00
err = db.Find(&resp).Error
return resp, err
2023-06-16 07:11:37 +00:00
}
2023-06-19 04:23:02 +00:00
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
}
2023-07-04 08:48:56 +00:00
func (t *FsProductTemplateV2Model) FindAllByIdsWithoutStatus(ctx context.Context, ids []int64, fields ...string) (resp []FsProductTemplateV2, err error) {
2023-06-27 09:04:58 +00:00
if len(ids) == 0 {
return
}
2023-07-04 08:48:56 +00:00
db := t.db.WithContext(ctx).Model(&FsProductTemplateV2{}).Where("`id` in (?) ", ids)
if len(fields) != 0 {
db = db.Select(fields[0])
2023-06-27 09:04:58 +00:00
}
2023-07-04 08:48:56 +00:00
err = db.Find(&resp).Error
return resp, err
2023-06-27 09:04:58 +00:00
}
2023-06-20 09:28:28 +00:00
func (t *FsProductTemplateV2Model) FindOne(ctx context.Context, id int64) (resp *FsProductTemplateV2, err error) {
2023-06-19 04:23:02 +00:00
2023-08-18 04:18:56 +00:00
err = t.db.WithContext(ctx).Model(&FsProductTemplateV2{}).Where("`id` = ? ", id).Take(&resp).Error
2023-06-20 09:28:28 +00:00
return resp, err
2023-06-19 04:23:02 +00:00
}
2023-06-20 11:56:18 +00:00
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
}
2023-06-25 04:16:01 +00:00
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
}
2023-07-17 06:40:24 +00:00
func (t *FsProductTemplateV2Model) FindAllByModelIds(ctx context.Context, modelIds []int64, orderBy string, fields ...string) (resp []FsProductTemplateV2, err error) {
2023-06-25 09:11:42 +00:00
if len(modelIds) == 0 {
return
}
2023-07-17 06:40:24 +00:00
db := t.db.WithContext(ctx).Model(&FsProductTemplateV2{}).Where("`model_id` in (?) and `is_del` = ? and `status` = ?", modelIds, 0, 1)
2023-08-08 09:03:54 +00:00
if len(fields) != 0 {
db = db.Select(fields[0])
}
2023-07-17 06:40:24 +00:00
switch orderBy {
case "":
db = db.Order("id DESC")
default:
db = db.Order(orderBy)
2023-06-25 09:11:42 +00:00
}
2023-07-17 06:40:24 +00:00
err = db.Find(&resp).Error
return resp, err
2023-06-25 09:11:42 +00:00
}
2023-07-06 09:43:07 +00:00
func (t *FsProductTemplateV2Model) FindAllByProductIdModelIds(ctx context.Context, modelIds []int64, productId int64) (resp []FsProductTemplateV2, err error) {
if len(modelIds) == 0 {
2023-07-04 08:48:56 +00:00
return
}
2023-07-06 09:55:59 +00:00
err = t.db.WithContext(ctx).Model(&FsProductTemplateV2{}).Where("`model_id` in (?) and `product_id` = ? ", modelIds, productId).Find(&resp).Error
2023-07-06 09:43:07 +00:00
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
2023-07-04 08:48:56 +00:00
return resp, err
}
2023-07-11 03:28:57 +00:00
type GetProductTemplateListByParamsReq struct {
2023-07-11 07:01:08 +00:00
ProductIds []int64 //必传哦
2023-07-11 09:08:19 +00:00
GroupBy string
OrderBy string
Fields string
Status *int64
2023-07-11 03:28:57 +00:00
}
2023-07-11 09:08:19 +00:00
2023-07-11 03:28:57 +00:00
func (t *FsProductTemplateV2Model) GetProductTemplateListByParams(ctx context.Context, req GetProductTemplateListByParamsReq) (resp []FsProductTemplateV2, err error) {
2023-07-11 09:08:19 +00:00
if len(req.ProductIds) == 0 {
2023-07-11 07:01:08 +00:00
return
2023-07-11 03:28:57 +00:00
}
2023-07-11 09:08:19 +00:00
db := t.db.WithContext(ctx).Model(&FsProductTemplateV2{}).Where("`product_id` in (?)", req.ProductIds)
if req.GroupBy != "" {
2023-07-11 03:28:57 +00:00
db = db.Group(req.GroupBy)
}
2023-07-11 09:08:19 +00:00
if req.OrderBy != "" {
2023-07-11 03:28:57 +00:00
db = db.Order(req.OrderBy)
}
2023-07-11 09:08:19 +00:00
if req.Fields != "" {
2023-07-11 03:28:57 +00:00
db = db.Select(req.Fields)
}
2023-07-11 09:08:19 +00:00
if req.Status != nil {
db = db.Where("`status` = ?", req.Status)
2023-07-11 03:28:57 +00:00
}
err = db.Find(&resp).Error
return resp, err
2023-07-11 09:08:19 +00:00
}
2023-08-08 04:22:15 +00:00
// 获取第一个尺寸下的模板
2023-08-22 09:12:30 +00:00
func (t *FsProductTemplateV2Model) FindFirstOneByProductIdModelIdTemplateTag(ctx context.Context, productId, modelId int64, templateTag string) (resp *FsProductTemplateV2, err error) {
err = t.db.WithContext(ctx).Model(&FsProductTemplateV2{}).
Where("product_id = ? and model_id = ? and template_tag = ? ", productId, modelId, templateTag).
Where("status = ? and is_del = ?", 1, 0).
Order("sort ASC").
2023-08-08 04:22:15 +00:00
Take(&resp).Error
return resp, err
}
2023-08-08 09:03:54 +00:00
func (t *FsProductTemplateV2Model) FindAllByModelIdsTemplateTag(ctx context.Context, modelIds []int64, templateTag string, orderBy string, fields ...string) (resp []FsProductTemplateV2, err error) {
if len(modelIds) == 0 {
return
}
2023-08-17 03:09:59 +00:00
db := t.db.WithContext(ctx).Model(&FsProductTemplateV2{}).Where("`model_id` in (?) and `template_tag` = ? and `is_del` = ? and `status` = ?", modelIds, templateTag, 0, 1)
2023-08-08 09:03:54 +00:00
if len(fields) != 0 {
db = db.Select(fields[0])
}
switch orderBy {
case "":
db = db.Order("id DESC")
default:
db = db.Order(orderBy)
}
err = db.Find(&resp).Error
return resp, err
}
2023-08-11 06:52:16 +00:00
// 获取产品在指定模板标签下的所有模板
func (t *FsProductTemplateV2Model) GetListByProductAndTemplateTag(ctx context.Context, templateTagId string, productId int64, fields ...string) (resp []FsProductTemplateV2, err error) {
db := t.db.WithContext(ctx).Model(&FsProductTemplateV2{}).
2023-08-17 03:09:59 +00:00
Where("template_tag = ? and product_id = ? and status = ? and is_del = ?", templateTagId, productId, 1, 0)
2023-08-11 06:52:16 +00:00
if len(fields) > 0 {
db = db.Select(fields[0])
}
err = db.Find(&resp).Error
return resp, err
}
2023-08-21 02:21:02 +00:00
func (t *FsProductTemplateV2Model) FindAllByProductIdsTemplateTag(ctx context.Context, productIds []int64, templateTag string, sort string, fields ...string) (resp []FsProductTemplateV2, err error) {
if len(productIds) == 0 {
return
}
db := t.db.WithContext(ctx).Model(&FsProductTemplateV2{}).Where("`product_id` in (?) and `template_tag` = ? and `is_del` = ? and `status` = ?", productIds, templateTag, 0, 1)
if sort != "" {
db = db.Order(sort)
}
if len(fields) != 0 {
db = db.Select(fields[0])
}
err = db.Find(&resp).Error
return resp, err
}