refactor: 重构资产模型与DAO层实现
This commit is contained in:
@@ -3,18 +3,19 @@ package service
|
||||
import (
|
||||
"assets/consts/stock"
|
||||
dao "assets/dao/asset"
|
||||
"assets/dao/base"
|
||||
dto "assets/model/dto/asset"
|
||||
enumDto "assets/model/dto/enum"
|
||||
entity "assets/model/entity/asset"
|
||||
service "assets/service/enum"
|
||||
"context"
|
||||
"errors"
|
||||
"fmt"
|
||||
|
||||
"gitea.com/red-future/common/http"
|
||||
"github.com/gogf/gf/v2/frame/g"
|
||||
"github.com/gogf/gf/v2/util/gconv"
|
||||
|
||||
"gitea.com/red-future/common/beans"
|
||||
"gitea.com/red-future/common/minio"
|
||||
"gitea.com/red-future/common/utils"
|
||||
)
|
||||
|
||||
type asset struct{}
|
||||
@@ -45,38 +46,8 @@ func (s *asset) Create(ctx context.Context, req *dto.CreateAssetReq) (res *dto.C
|
||||
if err = http.Get(ctx, "admin-go/api/v1/system/user/checkIsSuperAdmin", headers, &isSuperAdmin); err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
if !isSuperAdmin {
|
||||
req.StockMode = stock.StockModeDetail
|
||||
|
||||
//var getUserInfo beans.User
|
||||
//getUserInfo, err = utils.GetUserInfo(ctx)
|
||||
//if err != nil {
|
||||
// return
|
||||
//}
|
||||
//var get *gvar.Var
|
||||
//get, err = message.GetRedisClientTest("test").Get(ctx, fmt.Sprintf("module_tenant:tenantId-%v", getUserInfo.TenantId))
|
||||
//if err != nil {
|
||||
// return
|
||||
//}
|
||||
//if !g.IsEmpty(get.String()) {
|
||||
// list := new(beans.ModuleTenant)
|
||||
// if err = json.Unmarshal(get.Bytes(), &list); err != nil {
|
||||
// return
|
||||
// }
|
||||
// req.TenantModuleType = list.TenantModuleType
|
||||
//} else {
|
||||
// moduleTenantRes := new(beans.ModuleTenant)
|
||||
// err = message.CallRPC(ctx, "moduleService.AddRedisByTenantId", map[string]interface{}{"tenantId": getUserInfo.TenantId}, moduleTenantRes)
|
||||
// if err != nil {
|
||||
// return
|
||||
// }
|
||||
// if !g.IsEmpty(moduleTenantRes.TenantModuleType) {
|
||||
// req.TenantModuleType = moduleTenantRes.TenantModuleType
|
||||
// } else {
|
||||
// return nil, errors.New("您未开通此模块,请开通后再使用")
|
||||
// }
|
||||
//}
|
||||
} else {
|
||||
req.TenantModuleType = beans.TenantModuleTypePlatform
|
||||
}
|
||||
@@ -87,7 +58,7 @@ func (s *asset) Create(ctx context.Context, req *dto.CreateAssetReq) (res *dto.C
|
||||
return
|
||||
}
|
||||
res = &dto.CreateAssetRes{
|
||||
Id: gconv.Uint64(id),
|
||||
Id: id,
|
||||
}
|
||||
return
|
||||
}
|
||||
@@ -98,79 +69,88 @@ func (s *asset) List(ctx context.Context, req *dto.ListAssetReq) (res *dto.ListA
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
user, err := utils.GetUserInfo(ctx)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
fmt.Println(user)
|
||||
res = &dto.ListAssetRes{
|
||||
Total: total,
|
||||
}
|
||||
err = utils.Struct(assetList, &res.List)
|
||||
err = gconv.Struct(assetList, &res.List)
|
||||
return
|
||||
}
|
||||
|
||||
// GetOne 获取单个资产
|
||||
func (s *asset) GetOne(ctx context.Context, req *dto.GetAssetReq) (res *dto.GetAssetRes, err error) {
|
||||
assetOne, err := dao.Asset.GetOne(ctx, req)
|
||||
var assetOne *entity.Asset
|
||||
if assetOne, err = dao.Asset.GetOne(ctx, req); err != nil {
|
||||
return
|
||||
}
|
||||
var assetListItem *dto.AssetItem
|
||||
if err = gconv.Struct(assetOne, assetListItem); err != nil {
|
||||
return
|
||||
}
|
||||
getCategoryRes, err := dao.Category.GetOne(ctx, &dto.GetCategoryReq{
|
||||
Id: assetOne.CategoryId,
|
||||
})
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
// TODO: CategoryId类型不匹配,需要同步修改category为uint64
|
||||
// getCategoryRes, err := dao.Category.GetOne(ctx, &dto.GetCategoryReq{
|
||||
// Id: assetOne.CategoryId,
|
||||
// })
|
||||
// if err != nil {
|
||||
// return
|
||||
// }
|
||||
return &dto.GetAssetRes{
|
||||
Asset: assetOne,
|
||||
CategoryName: "", // getCategoryRes.Name,
|
||||
AssetItem: assetListItem,
|
||||
CategoryName: getCategoryRes.Name,
|
||||
ImgAddressPrefix: minio.GetFileAddressPrefix(ctx),
|
||||
}, nil
|
||||
}
|
||||
|
||||
// GetAssetAndSku 获取资产和Sku详情
|
||||
func (s *asset) GetAssetAndSku(ctx context.Context, req *dto.GetAssetAndSkuReq) (res *dto.GetAssetAndSkuRes, err error) {
|
||||
// 跳过租户ID过滤获取资产
|
||||
// TODO: AssetId 类型不匹配,bson.ObjectID 需要转换为 uint64
|
||||
// 使用 SkipTenantId 跳过租户ID过滤
|
||||
assetOne, err := dao.Asset.GetOneById(base.SkipTenantId(ctx), 0)
|
||||
_ = req.AssetId
|
||||
var updateReq *dto.GetAssetReq
|
||||
if err = gconv.Struct(req, &updateReq); err != nil {
|
||||
return
|
||||
}
|
||||
assetOne, err := dao.Asset.GetOne(ctx, updateReq)
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
// TODO: AssetId类型不匹配,需要适配
|
||||
// moduleType, err := service.Enum.GetTenantModuleType(ctx, &enumDto.GetTenantModuleTypeReq{AssetId: req.AssetId.Hex()})
|
||||
// if err != nil {
|
||||
// return
|
||||
// }
|
||||
// TODO: AssetId类型不匹配,需要同步修改AssetSku为uint64
|
||||
// skus, _, err := dao.AssetSku.List(ctx, &dto.ListAssetSkuReq{AssetId: req.AssetId}, true)
|
||||
// if err != nil {
|
||||
// return
|
||||
// }
|
||||
var assetListItem *dto.AssetItem
|
||||
if err = gconv.Struct(assetOne, assetListItem); err != nil {
|
||||
return
|
||||
}
|
||||
moduleType, err := service.Enum.GetTenantModuleType(ctx, &enumDto.GetTenantModuleTypeReq{AssetId: assetOne.Id})
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
skus, _, err := dao.AssetSku.List(ctx, &dto.ListAssetSkuReq{AssetId: assetOne.Id})
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
var assetSkuListResItem []dto.AssetSkuItem
|
||||
if err = gconv.Structs(skus, assetSkuListResItem); err != nil {
|
||||
return
|
||||
}
|
||||
return &dto.GetAssetAndSkuRes{
|
||||
Asset: assetOne,
|
||||
Skus: nil, // skus,
|
||||
TenantModuleType: nil, // moduleType.Options,
|
||||
AssetItem: assetListItem,
|
||||
Skus: assetSkuListResItem,
|
||||
TenantModuleType: moduleType.Options,
|
||||
ImgAddressPrefix: minio.GetFileAddressPrefix(ctx),
|
||||
}, nil
|
||||
}
|
||||
|
||||
// Update 更新资产
|
||||
func (s *asset) Update(ctx context.Context, req *dto.UpdateAssetReq) error {
|
||||
return dao.Asset.Update(ctx, req)
|
||||
func (s *asset) Update(ctx context.Context, req *dto.UpdateAssetReq) (err error) {
|
||||
_, err = dao.Asset.Update(ctx, req)
|
||||
return
|
||||
}
|
||||
|
||||
// UpdateStatus 更新资产状态
|
||||
func (s *asset) UpdateStatus(ctx context.Context, req *dto.UpdateAssetStatusReq) (err error) {
|
||||
var updateReq *dto.UpdateAssetReq
|
||||
err = utils.Struct(req, &updateReq)
|
||||
return dao.Asset.Update(ctx, updateReq)
|
||||
if err = gconv.Struct(req, &updateReq); err != nil {
|
||||
return err
|
||||
}
|
||||
_, err = dao.Asset.Update(ctx, updateReq)
|
||||
return
|
||||
}
|
||||
|
||||
// Delete 删除资产
|
||||
func (s *asset) Delete(ctx context.Context, req *dto.DeleteAssetReq) error {
|
||||
return dao.Asset.DeleteFake(ctx, req)
|
||||
func (s *asset) Delete(ctx context.Context, req *dto.DeleteAssetReq) (err error) {
|
||||
_, err = dao.Asset.Delete(ctx, req)
|
||||
return
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user