From 9a2f74fe646b6e79fd840cf600ffef0831fee00d Mon Sep 17 00:00:00 2001 From: laodaming <11058467+laudamine@user.noreply.gitee.com> Date: Tue, 6 Jun 2023 17:36:11 +0800 Subject: [PATCH 1/7] fix --- model/fsfontmodel_gen.go | 3 -- model/fsproductmodel.go | 42 +++++++++++++++++++- model/fsproductmodel3dlightmodel.go | 16 +++++++- model/fsproductmodel3dlightmodel_gen.go | 1 - model/fsproductmodel3dmodel.go | 19 ++++++++- model/fsproductmodel3dmodel_gen.go | 1 - model/fsproductmodel_gen.go | 2 - model/fsproductpricemodel.go | 39 +++++++++++++++++- model/fsproductpricemodel_gen.go | 16 -------- model/fsproductsizemodel.go | 30 +++++++++++++- model/fsproductsizemodel_gen.go | 2 - model/fsproducttemplatetagsmodel.go | 18 ++++++++- model/fsproducttemplatetagsmodel_gen.go | 1 - model/fsproducttemplatev2model.go | 50 +++++++++++++++++++++++- model/fsproducttemplatev2model_gen.go | 3 -- model/self_fsproductmodel.go | 43 -------------------- model/self_fsproductmodel3dlightmodel.go | 18 --------- model/self_fsproductmodel3dmodel.go | 21 ---------- model/self_fsproductpricemodel.go | 26 ------------ model/self_fsproductsizemodel.go | 31 --------------- model/self_fsproducttemplatetagsmodel.go | 20 ---------- model/self_fsproducttemplatev2model.go | 50 ------------------------ 22 files changed, 207 insertions(+), 245 deletions(-) delete mode 100755 model/self_fsproductmodel.go delete mode 100755 model/self_fsproductmodel3dlightmodel.go delete mode 100755 model/self_fsproductmodel3dmodel.go delete mode 100755 model/self_fsproductpricemodel.go delete mode 100755 model/self_fsproductsizemodel.go delete mode 100755 model/self_fsproducttemplatetagsmodel.go delete mode 100755 model/self_fsproducttemplatev2model.go diff --git a/model/fsfontmodel_gen.go b/model/fsfontmodel_gen.go index 9a8c5c37..69ddeaec 100755 --- a/model/fsfontmodel_gen.go +++ b/model/fsfontmodel_gen.go @@ -27,7 +27,6 @@ type ( FindOne(ctx context.Context, id int64) (*FsFont, error) Update(ctx context.Context, data *FsFont) error Delete(ctx context.Context, id int64) error - FindAllOrderSortByDesc(ctx context.Context) ([]*FsFont, error) } defaultFsFontModel struct { @@ -71,8 +70,6 @@ func (m *defaultFsFontModel) FindOne(ctx context.Context, id int64) (*FsFont, er } } - - func (m *defaultFsFontModel) Insert(ctx context.Context, data *FsFont) (sql.Result, error) { query := fmt.Sprintf("insert into %s (%s) values (?, ?, ?, ?)", m.table, fsFontRowsExpectAutoSet) ret, err := m.conn.ExecCtx(ctx, query, data.Title, data.LinuxFontname, data.FilePath, data.Sort) diff --git a/model/fsproductmodel.go b/model/fsproductmodel.go index b92b1d3b..e2541e53 100755 --- a/model/fsproductmodel.go +++ b/model/fsproductmodel.go @@ -1,6 +1,10 @@ package model -import "github.com/zeromicro/go-zero/core/stores/sqlx" +import ( + "context" + "fmt" + "github.com/zeromicro/go-zero/core/stores/sqlx" +) var _ FsProductModel = (*customFsProductModel)(nil) @@ -9,6 +13,8 @@ type ( // and implement the added methods in customFsProductModel. FsProductModel interface { fsProductModel + GetProductListByConditions(ctx context.Context, productType int, isDel int, isShelf int, sort string) ([]FsProduct, error) + GetAllProductList(ctx context.Context, isDel int, isShelf int, sort string) (resp []FsProduct, err error) } customFsProductModel struct { @@ -22,3 +28,37 @@ func NewFsProductModel(conn sqlx.SqlConn) FsProductModel { defaultFsProductModel: newFsProductModel(conn), } } +func (m *defaultFsProductModel) GetProductListByConditions(ctx context.Context, productType int, isDel int, isShelf int, sort string) (resp []FsProduct, err error) { + query := fmt.Sprintf("select %s from %s where `type` = ? and `is_del` =? and `is_shelf` = ?", + fsProductRows, m.table) + switch sort { + case "sort-asc": + query = fmt.Sprintf("%s order by sort ASC", query) + case "sort-desc": + query = fmt.Sprintf("%s order by sort DESC", query) + default: + query = fmt.Sprintf("%s order by sort DESC", query) + } + err = m.conn.QueryRowsCtx(ctx, &resp, query, productType, isDel, isShelf) + if err != nil { + return nil, err + } + return +} +func (m *defaultFsProductModel) GetAllProductList(ctx context.Context, isDel int, isShelf int, sort string) (resp []FsProduct, err error) { + query := fmt.Sprintf("select %s from %s where `is_del` =? and `is_shelf` = ?", + fsProductRows, m.table) + switch sort { + case "sort-asc": + query = fmt.Sprintf("%s order by sort ASC", query) + case "sort-desc": + query = fmt.Sprintf("%s order by sort DESC", query) + default: + query = fmt.Sprintf("%s order by sort DESC", query) + } + err = m.conn.QueryRowsCtx(ctx, &resp, query, isDel, isShelf) + if err != nil { + return nil, err + } + return +} diff --git a/model/fsproductmodel3dlightmodel.go b/model/fsproductmodel3dlightmodel.go index 9af5f0a5..17c41e36 100755 --- a/model/fsproductmodel3dlightmodel.go +++ b/model/fsproductmodel3dlightmodel.go @@ -1,6 +1,11 @@ package model -import "github.com/zeromicro/go-zero/core/stores/sqlx" +import ( + "context" + "fmt" + "github.com/zeromicro/go-zero/core/stores/sqlx" + "strings" +) var _ FsProductModel3dLightModel = (*customFsProductModel3dLightModel)(nil) @@ -9,6 +14,7 @@ type ( // and implement the added methods in customFsProductModel3dLightModel. FsProductModel3dLightModel interface { fsProductModel3dLightModel + ListByIds(ctx context.Context, ids []string) (resp []FsProductModel3dLight, err error) } customFsProductModel3dLightModel struct { @@ -22,3 +28,11 @@ func NewFsProductModel3dLightModel(conn sqlx.SqlConn) FsProductModel3dLightModel defaultFsProductModel3dLightModel: newFsProductModel3dLightModel(conn), } } +func (m *defaultFsProductModel3dLightModel) ListByIds(ctx context.Context, ids []string) (resp []FsProductModel3dLight, err error) { + query := fmt.Sprintf("select %s from %s where `id` in (?)", fsProductModel3dLightRows, m.table) + err = m.conn.QueryRowsCtx(ctx, &resp, query, strings.Join(ids, ",")) + if err != nil { + return nil, err + } + return +} diff --git a/model/fsproductmodel3dlightmodel_gen.go b/model/fsproductmodel3dlightmodel_gen.go index 89b35c5b..d334c55d 100755 --- a/model/fsproductmodel3dlightmodel_gen.go +++ b/model/fsproductmodel3dlightmodel_gen.go @@ -27,7 +27,6 @@ type ( FindOne(ctx context.Context, id int64) (*FsProductModel3dLight, error) Update(ctx context.Context, data *FsProductModel3dLight) error Delete(ctx context.Context, id int64) error - ListByIds(ctx context.Context, ids []string) (resp []FsProductModel3dLight, err error) } defaultFsProductModel3dLightModel struct { diff --git a/model/fsproductmodel3dmodel.go b/model/fsproductmodel3dmodel.go index 1183f589..9dfb051e 100755 --- a/model/fsproductmodel3dmodel.go +++ b/model/fsproductmodel3dmodel.go @@ -1,6 +1,11 @@ package model -import "github.com/zeromicro/go-zero/core/stores/sqlx" +import ( + "context" + "fmt" + "github.com/zeromicro/go-zero/core/stores/sqlx" + "strings" +) var _ FsProductModel3dModel = (*customFsProductModel3dModel)(nil) @@ -9,6 +14,7 @@ type ( // and implement the added methods in customFsProductModel3dModel. FsProductModel3dModel interface { fsProductModel3dModel + ListBySizeIdsTag(ctx context.Context, sizeIds []string, tag int) (resp []FsProductModel3d, err error) } customFsProductModel3dModel struct { @@ -22,3 +28,14 @@ func NewFsProductModel3dModel(conn sqlx.SqlConn) FsProductModel3dModel { defaultFsProductModel3dModel: newFsProductModel3dModel(conn), } } +func (m *defaultFsProductModel3dModel) ListBySizeIdsTag(ctx context.Context, sizeIds []string, tag int) (resp []FsProductModel3d, err error) { + if len(sizeIds) == 0 { + return nil, nil + } + query := fmt.Sprintf("select %s from %s where `size_id` in (?) and `tag` = ?", fsProductModel3dRows, m.table) + err = m.conn.QueryRowsCtx(ctx, &resp, query, strings.Join(sizeIds, ","), tag) + if err != nil { + return nil, err + } + return +} diff --git a/model/fsproductmodel3dmodel_gen.go b/model/fsproductmodel3dmodel_gen.go index 1e0b4788..e45126c7 100755 --- a/model/fsproductmodel3dmodel_gen.go +++ b/model/fsproductmodel3dmodel_gen.go @@ -27,7 +27,6 @@ type ( FindOne(ctx context.Context, id int64) (*FsProductModel3d, error) Update(ctx context.Context, data *FsProductModel3d) error Delete(ctx context.Context, id int64) error - ListBySizeIdsTag(ctx context.Context, sizeIds []string, tag int) (resp []FsProductModel3d, err error) } defaultFsProductModel3dModel struct { diff --git a/model/fsproductmodel_gen.go b/model/fsproductmodel_gen.go index e9edc4d9..bff1a42e 100755 --- a/model/fsproductmodel_gen.go +++ b/model/fsproductmodel_gen.go @@ -28,8 +28,6 @@ type ( FindOneBySn(ctx context.Context, sn string) (*FsProduct, error) Update(ctx context.Context, data *FsProduct) error Delete(ctx context.Context, id int64) error - GetProductListByConditions(ctx context.Context, productType int, isDel int, isShelf int, sort string) ([]FsProduct, error) - GetAllProductList(ctx context.Context, isDel int, isShelf int, sort string) (resp []FsProduct, err error) } defaultFsProductModel struct { diff --git a/model/fsproductpricemodel.go b/model/fsproductpricemodel.go index ef9c3d64..18650073 100755 --- a/model/fsproductpricemodel.go +++ b/model/fsproductpricemodel.go @@ -1,6 +1,12 @@ package model -import "github.com/zeromicro/go-zero/core/stores/sqlx" +import ( + "context" + "fmt" + "github.com/zeromicro/go-zero/core/stores/sqlc" + "github.com/zeromicro/go-zero/core/stores/sqlx" + "strings" +) var _ FsProductPriceModel = (*customFsProductPriceModel)(nil) @@ -9,6 +15,8 @@ type ( // and implement the added methods in customFsProductPriceModel. FsProductPriceModel interface { fsProductPriceModel + GetPriceList(ctx context.Context, productIds []string) ([]GetPriceListRsp, error) + FindOneByProductIdMaterialIdSizeId(ctx context.Context, productId int64, materialId int64, sizeId int64) (*FsProductPrice, error) } customFsProductPriceModel struct { @@ -22,3 +30,32 @@ func NewFsProductPriceModel(conn sqlx.SqlConn) FsProductPriceModel { defaultFsProductPriceModel: newFsProductPriceModel(conn), } } + +type GetPriceListRsp struct { + ProductId int64 `json:"product_id"` + Price string `json:"price"` +} + +func (m *defaultFsProductPriceModel) GetPriceList(ctx context.Context, productIds []string) (resp []GetPriceListRsp, err error) { + if len(productIds) == 0 { + return nil, nil + } + query := fmt.Sprintf("select %s from %s where `product_id` in (?) and `status` = ? group by product_id", "product_id,group_concat(step_price) as price ", m.table) + if err = m.conn.QueryRowsCtx(ctx, &resp, query, strings.Join(productIds, ","), 1); err != nil { + return nil, err + } + return +} +func (m *defaultFsProductPriceModel) FindOneByProductIdMaterialIdSizeId(ctx context.Context, productId int64, materialId int64, sizeId int64) (*FsProductPrice, error) { + var resp FsProductPrice + query := fmt.Sprintf("select %s from %s where `product_id` = ? and `material_id` = ? and `size_id` = ? limit 1", fsProductPriceRows, m.table) + err := m.conn.QueryRowCtx(ctx, &resp, query, productId, materialId, sizeId) + switch err { + case nil: + return &resp, nil + case sqlc.ErrNotFound: + return nil, ErrNotFound + default: + return nil, err + } +} diff --git a/model/fsproductpricemodel_gen.go b/model/fsproductpricemodel_gen.go index 7b5280d5..a49bf071 100755 --- a/model/fsproductpricemodel_gen.go +++ b/model/fsproductpricemodel_gen.go @@ -25,10 +25,8 @@ type ( fsProductPriceModel interface { Insert(ctx context.Context, data *FsProductPrice) (sql.Result, error) FindOne(ctx context.Context, id int64) (*FsProductPrice, error) - FindOneByProductIdMaterialIdSizeId(ctx context.Context, productId int64, materialId int64, sizeId int64) (*FsProductPrice, error) Update(ctx context.Context, data *FsProductPrice) error Delete(ctx context.Context, id int64) error - GetPriceList(ctx context.Context, productIds []string) ([]GetPriceListRsp, error) } defaultFsProductPriceModel struct { @@ -80,20 +78,6 @@ func (m *defaultFsProductPriceModel) FindOne(ctx context.Context, id int64) (*Fs } } -func (m *defaultFsProductPriceModel) FindOneByProductIdMaterialIdSizeId(ctx context.Context, productId int64, materialId int64, sizeId int64) (*FsProductPrice, error) { - var resp FsProductPrice - query := fmt.Sprintf("select %s from %s where `product_id` = ? and `material_id` = ? and `size_id` = ? limit 1", fsProductPriceRows, m.table) - err := m.conn.QueryRowCtx(ctx, &resp, query, productId, materialId, sizeId) - switch err { - case nil: - return &resp, nil - case sqlc.ErrNotFound: - return nil, ErrNotFound - default: - return nil, err - } -} - func (m *defaultFsProductPriceModel) Insert(ctx context.Context, data *FsProductPrice) (sql.Result, error) { query := fmt.Sprintf("insert into %s (%s) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)", m.table, fsProductPriceRowsExpectAutoSet) ret, err := m.conn.ExecCtx(ctx, query, data.Sn, data.Title, data.ProductId, data.MaterialId, data.SizeId, data.EachBoxNum, data.EachBoxWeight, data.MinBuyNum, data.StepNum, data.StepPrice, data.Status, data.IsDefault) diff --git a/model/fsproductsizemodel.go b/model/fsproductsizemodel.go index f0a9c932..734fd676 100755 --- a/model/fsproductsizemodel.go +++ b/model/fsproductsizemodel.go @@ -1,6 +1,10 @@ package model -import "github.com/zeromicro/go-zero/core/stores/sqlx" +import ( + "context" + "fmt" + "github.com/zeromicro/go-zero/core/stores/sqlx" +) var _ FsProductSizeModel = (*customFsProductSizeModel)(nil) @@ -9,6 +13,8 @@ type ( // and implement the added methods in customFsProductSizeModel. FsProductSizeModel interface { fsProductSizeModel + CountByStatus(ctx context.Context, status int) (total int, err error) + FindAllByStatus(ctx context.Context, status int, sort int) ([]FsProductSize, error) } customFsProductSizeModel struct { @@ -22,3 +28,25 @@ func NewFsProductSizeModel(conn sqlx.SqlConn) FsProductSizeModel { defaultFsProductSizeModel: newFsProductSizeModel(conn), } } +func (m *defaultFsProductSizeModel) CountByStatus(ctx context.Context, status int) (total int, err error) { + query := fmt.Sprintf("select %s from %s where `status` = ? limit 1", "count(*) as num", m.table) + err = m.conn.QueryRowCtx(ctx, &total, query, status) + if err != nil { + return 0, err + } + return +} +func (m *defaultFsProductSizeModel) FindAllByStatus(ctx context.Context, status int, sort int) (resp []FsProductSize, err error) { + query := fmt.Sprintf("select %s from %s where `status` = ? ", fsProductSizeRows, m.table) + switch sort { + case 1: + query = fmt.Sprintf("%s order by `sort` ASC", query) + case 2: + query = fmt.Sprintf("%s order by `sort` DESC", query) + } + err = m.conn.QueryRowsCtx(ctx, &resp, query, status) + if err != nil { + return nil, err + } + return +} diff --git a/model/fsproductsizemodel_gen.go b/model/fsproductsizemodel_gen.go index 9ff3a983..7b94b329 100755 --- a/model/fsproductsizemodel_gen.go +++ b/model/fsproductsizemodel_gen.go @@ -27,8 +27,6 @@ type ( FindOne(ctx context.Context, id int64) (*FsProductSize, error) Update(ctx context.Context, data *FsProductSize) error Delete(ctx context.Context, id int64) error - CountByStatus(ctx context.Context, status int) (total int, err error) - FindAllByStatus(ctx context.Context, status int, sort int) ([]FsProductSize, error) } defaultFsProductSizeModel struct { diff --git a/model/fsproducttemplatetagsmodel.go b/model/fsproducttemplatetagsmodel.go index 7f162d97..a9462148 100755 --- a/model/fsproducttemplatetagsmodel.go +++ b/model/fsproducttemplatetagsmodel.go @@ -1,6 +1,10 @@ package model -import "github.com/zeromicro/go-zero/core/stores/sqlx" +import ( + "context" + "fmt" + "github.com/zeromicro/go-zero/core/stores/sqlx" +) var _ FsProductTemplateTagsModel = (*customFsProductTemplateTagsModel)(nil) @@ -9,6 +13,7 @@ type ( // and implement the added methods in customFsProductTemplateTagsModel. FsProductTemplateTagsModel interface { fsProductTemplateTagsModel + ListByIds(ctx context.Context, ids []string) (resp []FsProductTemplateTags, err error) } customFsProductTemplateTagsModel struct { @@ -22,3 +27,14 @@ func NewFsProductTemplateTagsModel(conn sqlx.SqlConn) FsProductTemplateTagsModel defaultFsProductTemplateTagsModel: newFsProductTemplateTagsModel(conn), } } +func (m *defaultFsProductTemplateTagsModel) ListByIds(ctx context.Context, ids []string) (resp []FsProductTemplateTags, err error) { + if len(ids) == 0 { + return nil, nil + } + query := fmt.Sprintf("select %s from %s where `id` in (?) ", fsProductTemplateTagsRows, m.table) + err = m.conn.QueryRowsCtx(ctx, &resp, query, ids) + if err != nil { + return nil, err + } + return +} diff --git a/model/fsproducttemplatetagsmodel_gen.go b/model/fsproducttemplatetagsmodel_gen.go index 0570b684..90a484c9 100755 --- a/model/fsproducttemplatetagsmodel_gen.go +++ b/model/fsproducttemplatetagsmodel_gen.go @@ -27,7 +27,6 @@ type ( FindOne(ctx context.Context, id int64) (*FsProductTemplateTags, error) Update(ctx context.Context, data *FsProductTemplateTags) error Delete(ctx context.Context, id int64) error - ListByIds(ctx context.Context, ids []string) (resp []FsProductTemplateTags, err error) } defaultFsProductTemplateTagsModel struct { diff --git a/model/fsproducttemplatev2model.go b/model/fsproducttemplatev2model.go index 6315c103..bf4220c8 100755 --- a/model/fsproducttemplatev2model.go +++ b/model/fsproducttemplatev2model.go @@ -1,6 +1,11 @@ package model -import "github.com/zeromicro/go-zero/core/stores/sqlx" +import ( + "context" + "fmt" + "github.com/zeromicro/go-zero/core/stores/sqlx" + "strings" +) var _ FsProductTemplateV2Model = (*customFsProductTemplateV2Model)(nil) @@ -9,6 +14,9 @@ type ( // and implement the added methods in customFsProductTemplateV2Model. FsProductTemplateV2Model interface { fsProductTemplateV2Model + FindAllByCondition(ctx context.Context, productIds []string) (resp []FsProductTemplateV2, err error) + FindAllByModelIdsProduct(ctx context.Context, modelIds []string, productId int64, sort int) (resp []FsProductTemplateV2, err error) + FindAllByModelIds(ctx context.Context, modelIds []string, sort int) (resp []FsProductTemplateV2, err error) } customFsProductTemplateV2Model struct { @@ -22,3 +30,43 @@ func NewFsProductTemplateV2Model(conn sqlx.SqlConn) FsProductTemplateV2Model { defaultFsProductTemplateV2Model: newFsProductTemplateV2Model(conn), } } +func (m *defaultFsProductTemplateV2Model) FindAllByCondition(ctx context.Context, productIds []string) (resp []FsProductTemplateV2, err error) { + query := fmt.Sprintf("select %s from %s where `id` in (?) and `is_del` = ? and `status` = ?", fsProductTemplateV2Rows, m.table) + if err = m.conn.QueryRowsCtx(ctx, &resp, query, strings.Join(productIds, ","), 0, 1); err != nil { + return nil, err + } + return +} +func (m *defaultFsProductTemplateV2Model) FindAllByModelIdsProduct(ctx context.Context, modelIds []string, productId int64, sort int) (resp []FsProductTemplateV2, err error) { + if len(modelIds) == 0 { + return + } + query := fmt.Sprintf("select %s from %s where `model_id` in (?) and `product_id` = ? and `is_del` = ? and `status` = ?", fsProductTemplateV2Rows, m.table) + switch sort { + case 1: + query = fmt.Sprintf("%s order by `sort` ASC", query) + case 2: + query = fmt.Sprintf("%s order by `sort` DESC", query) + } + if err = m.conn.QueryRowsCtx(ctx, &resp, query, strings.Join(modelIds, ","), productId, 0, 1); err != nil { + return nil, err + } + return +} + +func (m *defaultFsProductTemplateV2Model) FindAllByModelIds(ctx context.Context, modelIds []string, sort int) (resp []FsProductTemplateV2, err error) { + if len(modelIds) == 0 { + return + } + query := fmt.Sprintf("select %s from %s where `model_id` in (?) and `is_del` = ? and `status` = ?", fsProductTemplateV2Rows, m.table) + switch sort { + case 1: + query = fmt.Sprintf("%s order by `sort` ASC", query) + case 2: + query = fmt.Sprintf("%s order by `sort` DESC", query) + } + if err = m.conn.QueryRowsCtx(ctx, &resp, query, strings.Join(modelIds, ","), 0, 1); err != nil { + return nil, err + } + return +} diff --git a/model/fsproducttemplatev2model_gen.go b/model/fsproducttemplatev2model_gen.go index bfdb8cf0..ddeff507 100755 --- a/model/fsproducttemplatev2model_gen.go +++ b/model/fsproducttemplatev2model_gen.go @@ -27,9 +27,6 @@ type ( FindOne(ctx context.Context, id int64) (*FsProductTemplateV2, error) Update(ctx context.Context, data *FsProductTemplateV2) error Delete(ctx context.Context, id int64) error - FindAllByCondition(ctx context.Context, productIds []string) (resp []FsProductTemplateV2, err error) - FindAllByModelIdsProduct(ctx context.Context, modelIds []string, productId int64, sort int) (resp []FsProductTemplateV2, err error) - FindAllByModelIds(ctx context.Context, modelIds []string, sort int) (resp []FsProductTemplateV2, err error) } defaultFsProductTemplateV2Model struct { diff --git a/model/self_fsproductmodel.go b/model/self_fsproductmodel.go deleted file mode 100755 index 8655bdae..00000000 --- a/model/self_fsproductmodel.go +++ /dev/null @@ -1,43 +0,0 @@ -// Code generated by goctl. DO NOT EDIT. - -package model - -import ( - "context" - "fmt" -) - -func (m *defaultFsProductModel) GetProductListByConditions(ctx context.Context, productType int, isDel int, isShelf int, sort string) (resp []FsProduct, err error) { - query := fmt.Sprintf("select %s from %s where `type` = ? and `is_del` =? and `is_shelf` = ?", - fsProductRows, m.table) - switch sort { - case "sort-asc": - query = fmt.Sprintf("%s order by sort ASC", query) - case "sort-desc": - query = fmt.Sprintf("%s order by sort DESC", query) - default: - query = fmt.Sprintf("%s order by sort DESC", query) - } - err = m.conn.QueryRowsCtx(ctx, &resp, query, productType, isDel, isShelf) - if err != nil { - return nil, err - } - return -} -func (m *defaultFsProductModel) GetAllProductList(ctx context.Context, isDel int, isShelf int, sort string) (resp []FsProduct, err error) { - query := fmt.Sprintf("select %s from %s where `is_del` =? and `is_shelf` = ?", - fsProductRows, m.table) - switch sort { - case "sort-asc": - query = fmt.Sprintf("%s order by sort ASC", query) - case "sort-desc": - query = fmt.Sprintf("%s order by sort DESC", query) - default: - query = fmt.Sprintf("%s order by sort DESC", query) - } - err = m.conn.QueryRowsCtx(ctx, &resp, query, isDel, isShelf) - if err != nil { - return nil, err - } - return -} diff --git a/model/self_fsproductmodel3dlightmodel.go b/model/self_fsproductmodel3dlightmodel.go deleted file mode 100755 index 4d9a6ce9..00000000 --- a/model/self_fsproductmodel3dlightmodel.go +++ /dev/null @@ -1,18 +0,0 @@ -// Code generated by goctl. DO NOT EDIT. - -package model - -import ( - "context" - "fmt" - "strings" -) - -func (m *defaultFsProductModel3dLightModel) ListByIds(ctx context.Context, ids []string) (resp []FsProductModel3dLight, err error) { - query := fmt.Sprintf("select %s from %s where `id` in (?)", fsProductModel3dLightRows, m.table) - err = m.conn.QueryRowsCtx(ctx, &resp, query, strings.Join(ids, ",")) - if err != nil { - return nil, err - } - return -} diff --git a/model/self_fsproductmodel3dmodel.go b/model/self_fsproductmodel3dmodel.go deleted file mode 100755 index 6967e4ad..00000000 --- a/model/self_fsproductmodel3dmodel.go +++ /dev/null @@ -1,21 +0,0 @@ -// Code generated by goctl. DO NOT EDIT. - -package model - -import ( - "context" - "fmt" - "strings" -) - -func (m *defaultFsProductModel3dModel) ListBySizeIdsTag(ctx context.Context, sizeIds []string, tag int) (resp []FsProductModel3d, err error) { - if len(sizeIds) == 0 { - return nil, nil - } - query := fmt.Sprintf("select %s from %s where `size_id` in (?) and `tag` = ?", fsProductModel3dRows, m.table) - err = m.conn.QueryRowsCtx(ctx, &resp, query, strings.Join(sizeIds, ","), tag) - if err != nil { - return nil, err - } - return -} diff --git a/model/self_fsproductpricemodel.go b/model/self_fsproductpricemodel.go deleted file mode 100755 index 63478230..00000000 --- a/model/self_fsproductpricemodel.go +++ /dev/null @@ -1,26 +0,0 @@ -// Code generated by goctl. DO NOT EDIT. - -package model - -import ( - "context" - - "fmt" - "strings" -) - -type GetPriceListRsp struct { - ProductId int64 `json:"product_id"` - Price string `json:"price"` -} - -func (m *defaultFsProductPriceModel) GetPriceList(ctx context.Context, productIds []string) (resp []GetPriceListRsp, err error) { - if len(productIds) == 0 { - return nil, nil - } - query := fmt.Sprintf("select %s from %s where `product_id` in (?) and `status` = ? group by product_id", "product_id,group_concat(step_price) as price ", m.table) - if err = m.conn.QueryRowsCtx(ctx, &resp, query, strings.Join(productIds, ","), 1); err != nil { - return nil, err - } - return -} diff --git a/model/self_fsproductsizemodel.go b/model/self_fsproductsizemodel.go deleted file mode 100755 index ea61699c..00000000 --- a/model/self_fsproductsizemodel.go +++ /dev/null @@ -1,31 +0,0 @@ -// Code generated by goctl. DO NOT EDIT. - -package model - -import ( - "context" - "fmt" -) - -func (m *defaultFsProductSizeModel) CountByStatus(ctx context.Context, status int) (total int, err error) { - query := fmt.Sprintf("select %s from %s where `status` = ? limit 1", "count(*) as num", m.table) - err = m.conn.QueryRowCtx(ctx, &total, query, status) - if err != nil { - return 0, err - } - return -} -func (m *defaultFsProductSizeModel) FindAllByStatus(ctx context.Context, status int, sort int) (resp []FsProductSize, err error) { - query := fmt.Sprintf("select %s from %s where `status` = ? ", fsProductSizeRows, m.table) - switch sort { - case 1: - query = fmt.Sprintf("%s order by `sort` ASC", query) - case 2: - query = fmt.Sprintf("%s order by `sort` DESC", query) - } - err = m.conn.QueryRowsCtx(ctx, &resp, query, status) - if err != nil { - return nil, err - } - return -} diff --git a/model/self_fsproducttemplatetagsmodel.go b/model/self_fsproducttemplatetagsmodel.go deleted file mode 100755 index f8014603..00000000 --- a/model/self_fsproducttemplatetagsmodel.go +++ /dev/null @@ -1,20 +0,0 @@ -// Code generated by goctl. DO NOT EDIT. - -package model - -import ( - "context" - "fmt" -) - -func (m *defaultFsProductTemplateTagsModel) ListByIds(ctx context.Context, ids []string) (resp []FsProductTemplateTags, err error) { - if len(ids) == 0 { - return nil, nil - } - query := fmt.Sprintf("select %s from %s where `id` in (?) ", fsProductTemplateTagsRows, m.table) - err = m.conn.QueryRowsCtx(ctx, &resp, query, ids) - if err != nil { - return nil, err - } - return -} diff --git a/model/self_fsproducttemplatev2model.go b/model/self_fsproducttemplatev2model.go deleted file mode 100755 index b7c23539..00000000 --- a/model/self_fsproducttemplatev2model.go +++ /dev/null @@ -1,50 +0,0 @@ -// Code generated by goctl. DO NOT EDIT. - -package model - -import ( - "context" - "fmt" - "strings" -) - -func (m *defaultFsProductTemplateV2Model) FindAllByCondition(ctx context.Context, productIds []string) (resp []FsProductTemplateV2, err error) { - query := fmt.Sprintf("select %s from %s where `id` in (?) and `is_del` = ? and `status` = ?", fsProductTemplateV2Rows, m.table) - if err = m.conn.QueryRowsCtx(ctx, &resp, query, strings.Join(productIds, ","), 0, 1); err != nil { - return nil, err - } - return -} -func (m *defaultFsProductTemplateV2Model) FindAllByModelIdsProduct(ctx context.Context, modelIds []string, productId int64, sort int) (resp []FsProductTemplateV2, err error) { - if len(modelIds) == 0 { - return - } - query := fmt.Sprintf("select %s from %s where `model_id` in (?) and `product_id` = ? and `is_del` = ? and `status` = ?", fsProductTemplateV2Rows, m.table) - switch sort { - case 1: - query = fmt.Sprintf("%s order by `sort` ASC", query) - case 2: - query = fmt.Sprintf("%s order by `sort` DESC", query) - } - if err = m.conn.QueryRowsCtx(ctx, &resp, query, strings.Join(modelIds, ","), productId, 0, 1); err != nil { - return nil, err - } - return -} - -func (m *defaultFsProductTemplateV2Model) FindAllByModelIds(ctx context.Context, modelIds []string, sort int) (resp []FsProductTemplateV2, err error) { - if len(modelIds) == 0 { - return - } - query := fmt.Sprintf("select %s from %s where `model_id` in (?) and `is_del` = ? and `status` = ?", fsProductTemplateV2Rows, m.table) - switch sort { - case 1: - query = fmt.Sprintf("%s order by `sort` ASC", query) - case 2: - query = fmt.Sprintf("%s order by `sort` DESC", query) - } - if err = m.conn.QueryRowsCtx(ctx, &resp, query, strings.Join(modelIds, ","), 0, 1); err != nil { - return nil, err - } - return -} From 4312d978fb519eff2e87924b077490491f9775b9 Mon Sep 17 00:00:00 2001 From: laodaming <11058467+laudamine@user.noreply.gitee.com> Date: Tue, 6 Jun 2023 17:39:10 +0800 Subject: [PATCH 2/7] fix --- model/self_fstagsmodel.go | 3 --- 1 file changed, 3 deletions(-) delete mode 100755 model/self_fstagsmodel.go diff --git a/model/self_fstagsmodel.go b/model/self_fstagsmodel.go deleted file mode 100755 index 9695915d..00000000 --- a/model/self_fstagsmodel.go +++ /dev/null @@ -1,3 +0,0 @@ -// Code generated by goctl. DO NOT EDIT. - -package model From cf852c5a874a883a150805789a9beb793ebb7797 Mon Sep 17 00:00:00 2001 From: laodaming <11058467+laudamine@user.noreply.gitee.com> Date: Tue, 6 Jun 2023 18:17:03 +0800 Subject: [PATCH 3/7] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=BA=A7=E5=93=81?= =?UTF-8?q?=E6=8E=A8=E8=8D=90=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- model/fsproductmodel.go | 22 +++---- product/internal/logic/getproductlistlogic.go | 2 +- .../logic/getsuccessrecommandlogic.go | 58 ++++++++++++------- 3 files changed, 44 insertions(+), 38 deletions(-) diff --git a/model/fsproductmodel.go b/model/fsproductmodel.go index e2541e53..34021517 100755 --- a/model/fsproductmodel.go +++ b/model/fsproductmodel.go @@ -13,8 +13,8 @@ type ( // and implement the added methods in customFsProductModel. FsProductModel interface { fsProductModel - GetProductListByConditions(ctx context.Context, productType int, isDel int, isShelf int, sort string) ([]FsProduct, error) - GetAllProductList(ctx context.Context, isDel int, isShelf int, sort string) (resp []FsProduct, err error) + GetProductListByConditions(ctx context.Context, productType int, sort string) ([]FsProduct, error) + GetRandomProductList(ctx context.Context, limit int) (resp []FsProduct, err error) } customFsProductModel struct { @@ -28,7 +28,7 @@ func NewFsProductModel(conn sqlx.SqlConn) FsProductModel { defaultFsProductModel: newFsProductModel(conn), } } -func (m *defaultFsProductModel) GetProductListByConditions(ctx context.Context, productType int, isDel int, isShelf int, sort string) (resp []FsProduct, err error) { +func (m *defaultFsProductModel) GetProductListByConditions(ctx context.Context, productType int, sort string) (resp []FsProduct, err error) { query := fmt.Sprintf("select %s from %s where `type` = ? and `is_del` =? and `is_shelf` = ?", fsProductRows, m.table) switch sort { @@ -39,24 +39,16 @@ func (m *defaultFsProductModel) GetProductListByConditions(ctx context.Context, default: query = fmt.Sprintf("%s order by sort DESC", query) } - err = m.conn.QueryRowsCtx(ctx, &resp, query, productType, isDel, isShelf) + err = m.conn.QueryRowsCtx(ctx, &resp, query, productType, 0, 1) if err != nil { return nil, err } return } -func (m *defaultFsProductModel) GetAllProductList(ctx context.Context, isDel int, isShelf int, sort string) (resp []FsProduct, err error) { - query := fmt.Sprintf("select %s from %s where `is_del` =? and `is_shelf` = ?", +func (m *defaultFsProductModel) GetRandomProductList(ctx context.Context, limit int) (resp []FsProduct, err error) { + query := fmt.Sprintf("select %s from %s where `is_del` =? and `is_shelf` = ? order by RAND() limit ?", fsProductRows, m.table) - switch sort { - case "sort-asc": - query = fmt.Sprintf("%s order by sort ASC", query) - case "sort-desc": - query = fmt.Sprintf("%s order by sort DESC", query) - default: - query = fmt.Sprintf("%s order by sort DESC", query) - } - err = m.conn.QueryRowsCtx(ctx, &resp, query, isDel, isShelf) + err = m.conn.QueryRowsCtx(ctx, &resp, query, 0, 1, limit) if err != nil { return nil, err } diff --git a/product/internal/logic/getproductlistlogic.go b/product/internal/logic/getproductlistlogic.go index 97fd6732..aaa13b9d 100644 --- a/product/internal/logic/getproductlistlogic.go +++ b/product/internal/logic/getproductlistlogic.go @@ -73,7 +73,7 @@ func (l *GetProductListLogic) GetProductList(req *types.GetProductListReq, login } //查询符合的产品列表 productModel := model.NewFsProductModel(l.svcCtx.MysqlConn) - productList, err := productModel.GetProductListByConditions(l.ctx, int(req.Cid), 0, 1, "sort-desc") + productList, err := productModel.GetProductListByConditions(l.ctx, int(req.Cid), "sort-desc") if err != nil { logx.Error(err) resp.Set(constants.CODE_SERVICE_ERR, "failed to get product list") diff --git a/product/internal/logic/getsuccessrecommandlogic.go b/product/internal/logic/getsuccessrecommandlogic.go index 1fb4d3fd..9b9e0db9 100644 --- a/product/internal/logic/getsuccessrecommandlogic.go +++ b/product/internal/logic/getsuccessrecommandlogic.go @@ -10,10 +10,10 @@ import ( "fusenapi/product/internal/types" "fusenapi/utils/auth" "fusenapi/utils/image" - "github.com/zeromicro/go-zero/core/stores/sqlx" - "math/rand" - "github.com/zeromicro/go-zero/core/logx" + "github.com/zeromicro/go-zero/core/stores/sqlx" + "strings" + "time" ) type GetSuccessRecommandLogic struct { @@ -30,8 +30,10 @@ func NewGetSuccessRecommandLogic(ctx context.Context, svcCtx *svc.ServiceContext } } +// 获取推荐的产品列表 func (l *GetSuccessRecommandLogic) GetSuccessRecommand(req *types.GetSuccessRecommandReq, loginInfo auth.UserInfo) (resp *types.Response) { resp = &types.Response{} + loginInfo.UserId = 83 //校验前台登录情况 if loginInfo.UserId == 0 { resp.Set(constants.CODE_UNAUTH, "please sign in") @@ -49,15 +51,15 @@ func (l *GetSuccessRecommandLogic) GetSuccessRecommand(req *types.GetSuccessReco resp.Set(constants.CODE_UNAUTH, "failed to get user info") return } - if req.Num == 0 { + if req.Num == 0 || req.Num > 500 { req.Num = 8 } if req.Size > 0 { req.Size = image.GetCurrentSize(req.Size) } - //获取所有产品的ids + //随机取8个产品 productModel := model.NewFsProductModel(l.svcCtx.MysqlConn) - productList, err := productModel.GetAllProductList(l.ctx, 0, 1, "sort-asc") + productList, err := productModel.GetRandomProductList(l.ctx, int(req.Num)) if err != nil { logx.Error(err) resp.Set(constants.CODE_SERVICE_ERR, "failed to get product list") @@ -68,23 +70,35 @@ func (l *GetSuccessRecommandLogic) GetSuccessRecommand(req *types.GetSuccessReco resp.Set(constants.CODE_OK, "success") return } - productIds := make([]string, 0, len(productList)) + list := make([]types.GetSuccessRecommandRsp, 0, len(productList)) for _, v := range productList { - productIds = append(productIds, fmt.Sprintf("%d", v.Id)) - } - //随机取8个 - if len(productIds) > int(req.Num) { - //打乱顺序 - indexArr := rand.Perm(len(productIds)) - tmpProductIds := make([]string, 0, int(req.Num)) - for k, v := range indexArr { - if k == 8 { - break - } - tmpProductIds = append(tmpProductIds, productIds[v]) + data := types.GetSuccessRecommandRsp{ + Title: v.Title, + Cover: v.Cover, + CoverImg: v.CoverImg, + Sn: v.Sn, + Id: v.Id, + SkuId: 0, //??????? + CoverDefault: v.CoverImg, } - productIds = tmpProductIds + if req.Size > 0 { + coverImgSlice := strings.Split(v.CoverImg, ".") + coverSlice := strings.Split(v.Cover, ".") + if req.Size > 200 { + data.Cover = fmt.Sprintf("%s_%d.%s", coverSlice[0], req.Size, coverSlice[1]) + data.CoverImg = fmt.Sprintf("%s_%d.%s", coverImgSlice[0], req.Size, coverImgSlice[1]) + } + //千人千面 + if userInfo.IsThousandFace == 1 { + data.Cover = "" + data.CoverImg = fmt.Sprintf("%s/test/%d/%d_%d.png?%d", constants.DOMAIN_RENDER_IMG_NAME, userInfo.Id, userInfo.Id, v.Id, time.Now().Unix()) + if req.Size > 200 { + data.CoverDefault = fmt.Sprintf("%s_%d.%s", coverImgSlice[0], req.Size, coverImgSlice[1]) + } + } + } + list = append(list, data) } - - return resp + resp.SetWithData(constants.CODE_OK, "success", list) + return } From 21b22a3409a1a4f4863aa2d6d53d9d8db81f5df1 Mon Sep 17 00:00:00 2001 From: laodaming <11058467+laudamine@user.noreply.gitee.com> Date: Tue, 6 Jun 2023 18:27:28 +0800 Subject: [PATCH 4/7] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E4=BA=A7=E5=93=81?= =?UTF-8?q?=E6=8E=A8=E8=8D=90=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- product/internal/handler/getproductlisthandler.go | 2 +- product/internal/handler/getsuccessrecommandhandler.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/product/internal/handler/getproductlisthandler.go b/product/internal/handler/getproductlisthandler.go index c6486e80..8160c070 100644 --- a/product/internal/handler/getproductlisthandler.go +++ b/product/internal/handler/getproductlisthandler.go @@ -21,7 +21,7 @@ func GetProductListHandler(svcCtx *svc.ServiceContext) http.HandlerFunc { if err := httpx.Parse(r, &req); err != nil { httpx.OkJsonCtx(r.Context(), w, &types.Response{ Code: 510, - Message: "parameter error", + Message: err.Error(), }) logx.Info(err) return diff --git a/product/internal/handler/getsuccessrecommandhandler.go b/product/internal/handler/getsuccessrecommandhandler.go index 7a067ca9..2634017d 100644 --- a/product/internal/handler/getsuccessrecommandhandler.go +++ b/product/internal/handler/getsuccessrecommandhandler.go @@ -21,7 +21,7 @@ func GetSuccessRecommandHandler(svcCtx *svc.ServiceContext) http.HandlerFunc { if err := httpx.Parse(r, &req); err != nil { httpx.OkJsonCtx(r.Context(), w, &types.Response{ Code: 510, - Message: "parameter error", + Message: err.Error(), }) logx.Info(err) return From 0915e987003487af7ab0b9ec26ce64d67ca4cf9f Mon Sep 17 00:00:00 2001 From: laodaming <11058467+laudamine@user.noreply.gitee.com> Date: Tue, 6 Jun 2023 19:21:07 +0800 Subject: [PATCH 5/7] fix --- product/internal/logic/getproductlistlogic.go | 36 +++++++--------- .../logic/getsuccessrecommandlogic.go | 42 ++++++++----------- utils/image/image_size.go | 40 ++++++++++++++++++ 3 files changed, 72 insertions(+), 46 deletions(-) diff --git a/product/internal/logic/getproductlistlogic.go b/product/internal/logic/getproductlistlogic.go index aaa13b9d..ae928761 100644 --- a/product/internal/logic/getproductlistlogic.go +++ b/product/internal/logic/getproductlistlogic.go @@ -12,12 +12,10 @@ import ( "fusenapi/utils/auth" "fusenapi/utils/format" "fusenapi/utils/image" + "github.com/zeromicro/go-zero/core/logx" "github.com/zeromicro/go-zero/core/stores/sqlc" "sort" "strings" - "time" - - "github.com/zeromicro/go-zero/core/logx" ) type GetProductListLogic struct { @@ -37,6 +35,7 @@ func NewGetProductListLogic(ctx context.Context, svcCtx *svc.ServiceContext) *Ge // 获取产品列表 func (l *GetProductListLogic) GetProductList(req *types.GetProductListReq, loginInfo auth.UserInfo) (resp *types.Response) { resp = &types.Response{} + loginInfo.UserId = 83 //校验前台登录情况 if loginInfo.UserId == 0 { resp.Set(constants.CODE_UNAUTH, "please sign in") @@ -160,31 +159,26 @@ func (l *GetProductListLogic) GetProductList(req *types.GetProductListReq, login Id: v.Id, Sn: v.Sn, Title: v.Title, - Cover: v.Cover, Intro: v.Intro.String, - CoverImg: v.CoverImg, IsEnv: v.IsProtection, IsMicro: v.IsMicrowave, SizeNum: uint32(productSizeCount), MiniPrice: format.CentoDollar(minPrice), } - if req.Size > 0 { - coverSlice := strings.Split(v.Cover, ".") - coverImgSlice := strings.Split(v.CoverImg, ".") - if req.Size >= 200 { - item.Cover = fmt.Sprintf("%s_%d.%s", coverSlice[0], req.Size, coverSlice[1]) - item.CoverImg = fmt.Sprintf("%s_%d.%s", coverImgSlice[0], req.Size, coverImgSlice[1]) - } - //千人千面处理 - if userInfo.IsThousandFace == 1 { - v.Cover = "" - item.CoverDefault = item.CoverImg - if req.Size >= 200 { - item.CoverImg = fmt.Sprintf("%s/test/%d/%d_%d.png?%d", constants.DOMAIN_RENDER_IMG_NAME, userInfo.Id, userInfo.Id, v.Id, time.Now().Unix()) - item.CoverDefault = fmt.Sprintf("%s_%d.%s", coverImgSlice[0], req.Size, coverImgSlice[1]) - } - } + //千人千面处理 + thousandFaceImageFormatReq := image.ThousandFaceImageFormatReq{ + Size: int(req.Size), + IsThousandFace: int(userInfo.IsThousandFace), + Cover: v.Cover, + CoverImg: v.CoverImg, + CoverDefault: v.CoverImg, + ProductId: v.Id, + UserInfo: *userInfo, } + image.ThousandFaceImageFormat(&thousandFaceImageFormatReq) + item.Cover = thousandFaceImageFormatReq.Cover + item.CoverImg = thousandFaceImageFormatReq.CoverImg + item.CoverDefault = thousandFaceImageFormatReq.CoverDefault itemList = append(itemList, item) } resp.SetWithData(constants.CODE_OK, "success", types.GetProductListRsp{ diff --git a/product/internal/logic/getsuccessrecommandlogic.go b/product/internal/logic/getsuccessrecommandlogic.go index 9b9e0db9..d2249105 100644 --- a/product/internal/logic/getsuccessrecommandlogic.go +++ b/product/internal/logic/getsuccessrecommandlogic.go @@ -3,7 +3,6 @@ package logic import ( "context" "errors" - "fmt" "fusenapi/constants" "fusenapi/model" "fusenapi/product/internal/svc" @@ -12,8 +11,6 @@ import ( "fusenapi/utils/image" "github.com/zeromicro/go-zero/core/logx" "github.com/zeromicro/go-zero/core/stores/sqlx" - "strings" - "time" ) type GetSuccessRecommandLogic struct { @@ -73,30 +70,25 @@ func (l *GetSuccessRecommandLogic) GetSuccessRecommand(req *types.GetSuccessReco list := make([]types.GetSuccessRecommandRsp, 0, len(productList)) for _, v := range productList { data := types.GetSuccessRecommandRsp{ - Title: v.Title, - Cover: v.Cover, - CoverImg: v.CoverImg, - Sn: v.Sn, - Id: v.Id, - SkuId: 0, //??????? - CoverDefault: v.CoverImg, + Title: v.Title, + Sn: v.Sn, + Id: v.Id, + SkuId: 0, //??????? } - if req.Size > 0 { - coverImgSlice := strings.Split(v.CoverImg, ".") - coverSlice := strings.Split(v.Cover, ".") - if req.Size > 200 { - data.Cover = fmt.Sprintf("%s_%d.%s", coverSlice[0], req.Size, coverSlice[1]) - data.CoverImg = fmt.Sprintf("%s_%d.%s", coverImgSlice[0], req.Size, coverImgSlice[1]) - } - //千人千面 - if userInfo.IsThousandFace == 1 { - data.Cover = "" - data.CoverImg = fmt.Sprintf("%s/test/%d/%d_%d.png?%d", constants.DOMAIN_RENDER_IMG_NAME, userInfo.Id, userInfo.Id, v.Id, time.Now().Unix()) - if req.Size > 200 { - data.CoverDefault = fmt.Sprintf("%s_%d.%s", coverImgSlice[0], req.Size, coverImgSlice[1]) - } - } + //千人千面处理 + thousandFaceImageFormatReq := image.ThousandFaceImageFormatReq{ + Size: int(req.Size), + IsThousandFace: int(userInfo.IsThousandFace), + Cover: v.Cover, + CoverImg: v.CoverImg, + CoverDefault: v.CoverImg, + ProductId: v.Id, + UserInfo: *userInfo, } + image.ThousandFaceImageFormat(&thousandFaceImageFormatReq) + data.Cover = thousandFaceImageFormatReq.Cover + data.CoverImg = thousandFaceImageFormatReq.CoverImg + data.CoverDefault = thousandFaceImageFormatReq.CoverDefault list = append(list, data) } resp.SetWithData(constants.CODE_OK, "success", list) diff --git a/utils/image/image_size.go b/utils/image/image_size.go index a0da0bd8..d4aa07a0 100644 --- a/utils/image/image_size.go +++ b/utils/image/image_size.go @@ -1,11 +1,20 @@ package image +import ( + "fmt" + "fusenapi/constants" + "fusenapi/model" + "strings" + "time" +) + // 定义尺寸规则 var sizeArray = []uint32{1200, 1000, 750, 500, 128} // 裁剪尺寸阶梯 var newSizeArray = []uint32{200, 400, 600, 800} +// 获取合适尺寸 func GetCurrentSize(clientSize uint32) uint32 { lenNewSize := len(newSizeArray) //大于最大尺寸则返回规则最大尺寸 @@ -23,3 +32,34 @@ func GetCurrentSize(clientSize uint32) uint32 { } return clientSize } + +// 千人前面图像拼接 +type ThousandFaceImageFormatReq struct { + Size int + IsThousandFace int + Cover string + CoverImg string + CoverDefault string + ProductId int64 + UserInfo model.FsUser +} + +func ThousandFaceImageFormat(req *ThousandFaceImageFormatReq) { + if req.Size > 0 { + coverSlice := strings.Split(req.Cover, ".") + coverImgSlice := strings.Split(req.CoverImg, ".") + if req.Size >= 200 && len(coverSlice) == 2 && len(coverImgSlice) == 2 { + req.Cover = fmt.Sprintf("%s_%d.%s", coverSlice[0], req.Size, coverSlice[1]) + req.CoverImg = fmt.Sprintf("%s_%d.%s", coverImgSlice[0], req.Size, coverImgSlice[1]) + } + //千人千面处理 + if req.IsThousandFace == 1 { + req.Cover = "" + req.CoverDefault = req.CoverImg + if req.Size >= 200 && len(coverSlice) == 2 && len(coverImgSlice) == 2 { + req.CoverImg = fmt.Sprintf("%s/test/%d/%d_%d.png?%d", constants.DOMAIN_RENDER_IMG_NAME, req.UserInfo.Id, req.UserInfo.Id, req.ProductId, time.Now().Unix()) + req.CoverDefault = fmt.Sprintf("%s_%d.%s", coverImgSlice[0], req.Size, coverImgSlice[1]) + } + } + } +} From c8444d71f68a561e22a51a137a29cc8d40623ab8 Mon Sep 17 00:00:00 2001 From: laodaming <11058467+laudamine@user.noreply.gitee.com> Date: Tue, 6 Jun 2023 19:23:19 +0800 Subject: [PATCH 6/7] fix --- product/internal/logic/getproductlistlogic.go | 1 - product/internal/logic/getsuccessrecommandlogic.go | 1 - 2 files changed, 2 deletions(-) diff --git a/product/internal/logic/getproductlistlogic.go b/product/internal/logic/getproductlistlogic.go index ae928761..53081a7c 100644 --- a/product/internal/logic/getproductlistlogic.go +++ b/product/internal/logic/getproductlistlogic.go @@ -35,7 +35,6 @@ func NewGetProductListLogic(ctx context.Context, svcCtx *svc.ServiceContext) *Ge // 获取产品列表 func (l *GetProductListLogic) GetProductList(req *types.GetProductListReq, loginInfo auth.UserInfo) (resp *types.Response) { resp = &types.Response{} - loginInfo.UserId = 83 //校验前台登录情况 if loginInfo.UserId == 0 { resp.Set(constants.CODE_UNAUTH, "please sign in") diff --git a/product/internal/logic/getsuccessrecommandlogic.go b/product/internal/logic/getsuccessrecommandlogic.go index d2249105..e448af22 100644 --- a/product/internal/logic/getsuccessrecommandlogic.go +++ b/product/internal/logic/getsuccessrecommandlogic.go @@ -30,7 +30,6 @@ func NewGetSuccessRecommandLogic(ctx context.Context, svcCtx *svc.ServiceContext // 获取推荐的产品列表 func (l *GetSuccessRecommandLogic) GetSuccessRecommand(req *types.GetSuccessRecommandReq, loginInfo auth.UserInfo) (resp *types.Response) { resp = &types.Response{} - loginInfo.UserId = 83 //校验前台登录情况 if loginInfo.UserId == 0 { resp.Set(constants.CODE_UNAUTH, "please sign in") From 548d49271f2bcbc15102bfcbcab8e4d1240b7348 Mon Sep 17 00:00:00 2001 From: laodaming <11058467+laudamine@user.noreply.gitee.com> Date: Tue, 6 Jun 2023 19:43:22 +0800 Subject: [PATCH 7/7] fix --- product/internal/logic/getproductlistlogic.go | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/product/internal/logic/getproductlistlogic.go b/product/internal/logic/getproductlistlogic.go index 53081a7c..6ab1fd41 100644 --- a/product/internal/logic/getproductlistlogic.go +++ b/product/internal/logic/getproductlistlogic.go @@ -145,13 +145,9 @@ func (l *GetProductListLogic) GetProductList(req *types.GetProductListReq, login itemList := make([]types.Items, 0, productLen) for _, v := range productList { minPrice, ok := mapProductMinPrice[v.Id] - //无最小价格则不显示 - if !ok { - continue - } - _, ok = mapProductTemplate[v.Id] - //没有模板也不显示 - if !ok { + _, tmpOk := mapProductTemplate[v.Id] + //无最小价格则不显示 || 没有模板也不显示 + if !ok || !tmpOk { continue } item := types.Items{