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