refactor: 优化数据库查询构建链式调用
This commit is contained in:
@@ -32,7 +32,7 @@ func (d *assetDao) Insert(ctx context.Context, req *dto.CreateAssetReq) (id int6
|
||||
|
||||
// Update 更新资产
|
||||
func (d *assetDao) Update(ctx context.Context, req *dto.UpdateAssetReq) (rows int64, err error) {
|
||||
r, err := gfdb.DB(ctx).Model(ctx, public.TableNameAsset).Data(&req).OmitEmpty().Where(entity.AssetCol.Id, req.Id).Update()
|
||||
r, err := gfdb.DB(ctx).Model(ctx, public.TableNameAsset).Data(&req).Where(entity.AssetCol.Id, req.Id).Update()
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
@@ -65,9 +65,7 @@ func (d *assetDao) Count(ctx context.Context, req *dto.ListAssetReq) (count int,
|
||||
|
||||
// List 获取资产列表
|
||||
func (d *assetDao) List(ctx context.Context, req *dto.ListAssetReq, fields ...string) (res []entity.Asset, total int, err error) {
|
||||
model := d.buildListFilter(ctx, req)
|
||||
model.Fields(fields)
|
||||
model.OrderDesc(entity.AssetCol.CreatedAt)
|
||||
model := d.buildListFilter(ctx, req).Fields(fields).OrderDesc(entity.AssetCol.CreatedAt)
|
||||
if req.Page != nil {
|
||||
model.Page(int(req.Page.PageNum), int(req.Page.PageSize))
|
||||
}
|
||||
@@ -92,6 +90,5 @@ func (d *assetDao) buildListFilter(ctx context.Context, req *dto.ListAssetReq) *
|
||||
model.Where(entity.AssetCol.Type, req.Type)
|
||||
model.Where(entity.AssetCol.CategoryId, req.CategoryId)
|
||||
model.Where(entity.AssetCol.Status, req.Status)
|
||||
model.OmitEmptyWhere()
|
||||
return model
|
||||
}
|
||||
|
||||
@@ -32,7 +32,7 @@ func (d *assetSku) Insert(ctx context.Context, req *dto.CreateAssetSkuReq) (id i
|
||||
|
||||
// Update 更新SKU
|
||||
func (d *assetSku) Update(ctx context.Context, req *dto.UpdateAssetSkuReq) (rows int64, err error) {
|
||||
r, err := gfdb.DB(ctx).Model(ctx, public.TableNameAssetSku).Data(&req).OmitEmpty().Where(entity.AssetCol.Id, req.Id).Update()
|
||||
r, err := gfdb.DB(ctx).Model(ctx, public.TableNameAssetSku).Data(&req).Where(entity.AssetCol.Id, req.Id).Update()
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
@@ -60,8 +60,7 @@ func (d *assetSku) GetOne(ctx context.Context, req *dto.GetAssetSkuReq, fields .
|
||||
|
||||
// GetListByAssetIdExcludeCurrentSku 根据资产ID获取SKU列表并且排除当前SKU
|
||||
func (d *assetSku) GetListByAssetIdExcludeCurrentSku(ctx context.Context, assetId int64, req *dto.ListAssetSkuReq, fields ...string) (res []entity.AssetSku, total int, err error) {
|
||||
model := gfdb.DB(ctx).Model(ctx, public.TableNameAssetSku)
|
||||
model.Fields(fields)
|
||||
model := gfdb.DB(ctx).Model(ctx, public.TableNameAssetSku).Fields(fields)
|
||||
model.Where(entity.AssetSkuCol.AssetId, assetId)
|
||||
model.WhereNot(entity.AssetSkuCol.Id, req.Id)
|
||||
if req.Page != nil {
|
||||
@@ -77,8 +76,7 @@ func (d *assetSku) GetListByAssetIdExcludeCurrentSku(ctx context.Context, assetI
|
||||
|
||||
// List 获取SKU列表
|
||||
func (d *assetSku) List(ctx context.Context, req *dto.ListAssetSkuReq, fields ...string) (res []entity.AssetSku, total int, err error) {
|
||||
model := d.buildListFilter(ctx, req)
|
||||
model.Fields(fields)
|
||||
model := d.buildListFilter(ctx, req).Fields(fields)
|
||||
model.OrderAsc(entity.AssetSkuCol.Sort)
|
||||
model.OrderDesc(entity.AssetSkuCol.CreatedAt)
|
||||
if req.Page != nil {
|
||||
@@ -108,6 +106,5 @@ func (d *assetSku) buildListFilter(ctx context.Context, req *dto.ListAssetSkuReq
|
||||
model.WhereGT(entity.AssetSkuCol.Price, req.MinPrice)
|
||||
model.WhereLT(entity.AssetSkuCol.Price, req.MaxPrice)
|
||||
}
|
||||
model.OmitEmptyWhere()
|
||||
return model
|
||||
}
|
||||
|
||||
@@ -32,7 +32,7 @@ func (d *category) Insert(ctx context.Context, req *dto.CreateCategoryReq) (id i
|
||||
|
||||
// Update 更新分类
|
||||
func (d *category) Update(ctx context.Context, req *dto.UpdateCategoryReq) (rows int64, err error) {
|
||||
r, err := gfdb.DB(ctx).Model(ctx, public.TableNameCategory).Data(&req).OmitEmpty().Where(entity.CategoryCol.Id, req.Id).Update()
|
||||
r, err := gfdb.DB(ctx).Model(ctx, public.TableNameCategory).Data(&req).Where(entity.CategoryCol.Id, req.Id).Update()
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
@@ -65,8 +65,7 @@ func (d *category) Count(ctx context.Context, req *dto.ListCategoryReq) (count i
|
||||
|
||||
// List 获取分类列表
|
||||
func (d *category) List(ctx context.Context, req *dto.ListCategoryReq, fields ...string) (res []entity.Category, total int, err error) {
|
||||
model := d.buildListFilter(ctx, req)
|
||||
model.Fields(fields)
|
||||
model := d.buildListFilter(ctx, req).Fields(fields)
|
||||
model.OrderAsc(entity.CategoryCol.Sort)
|
||||
model.OrderDesc(entity.CategoryCol.CreatedAt)
|
||||
if req.Page != nil {
|
||||
@@ -88,6 +87,5 @@ func (d *category) buildListFilter(ctx context.Context, req *dto.ListCategoryReq
|
||||
}
|
||||
model.Where(entity.CategoryCol.ParentId, req.ParentId)
|
||||
model.Where(entity.CategoryCol.Status, req.Status)
|
||||
model.OmitEmptyWhere()
|
||||
return model
|
||||
}
|
||||
|
||||
@@ -35,7 +35,7 @@ func (d *stockBatch) Insert(ctx context.Context, req *dto.CreateSockBatchReq) (i
|
||||
}
|
||||
|
||||
func (d *stockBatch) Update(ctx context.Context, req *dto.UpdateSockBatchReq) (rows int64, err error) {
|
||||
model := gfdb.DB(ctx).Model(ctx, public.TableNameStockBatch).OmitEmpty().Where(entity.StockBatchCol.Id, req.Id)
|
||||
model := gfdb.DB(ctx).Model(ctx, public.TableNameStockBatch).Where(entity.StockBatchCol.Id, req.Id)
|
||||
model.Data(entity.StockBatchCol.BatchQty, &gdb.Counter{
|
||||
Field: entity.StockBatchCol.BatchQty,
|
||||
Value: gconv.Float64(req.BatchQty),
|
||||
|
||||
@@ -46,8 +46,7 @@ func (d *stockDetails) Count(ctx context.Context, req *dto.GetSockDetailsReq) (c
|
||||
}
|
||||
|
||||
func (d *stockDetails) List(ctx context.Context, req *dto.GetSockDetailsReq, fields ...string) (res []entity.StockDetails, total int, err error) {
|
||||
model := d.buildListFilter(ctx, req)
|
||||
model.Fields(fields)
|
||||
model := d.buildListFilter(ctx, req).Fields(fields)
|
||||
model.OrderDesc(entity.StockDetailsCol.CreatedAt)
|
||||
if req.Page != nil {
|
||||
model.Page(int(req.Page.PageNum), int(req.Page.PageSize))
|
||||
@@ -67,6 +66,5 @@ func (d *stockDetails) buildListFilter(ctx context.Context, req *dto.GetSockDeta
|
||||
model.Where(entity.StockDetailsCol.AssetId, req.AssetId)
|
||||
model.Where(entity.StockDetailsCol.AssetSkuId, req.AssetSkuId)
|
||||
model.Where(entity.StockDetailsCol.Status, req.Status)
|
||||
model.OmitEmptyWhere()
|
||||
return model
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user