feat: 集成Eino文档解析与嵌入功能
新增Eino相关依赖,支持docx、pdf、xlsx等格式的文档加载与解析,并集成了Dashscope嵌入模型。同时修复了部分DAO查询中的OmitEmpty配置。
This commit is contained in:
@@ -63,7 +63,7 @@ database:
|
||||
name: "tenant"
|
||||
role: "master"
|
||||
prefix: "assets_" # (可选)表名前缀
|
||||
debug: false # (可选)开启调试模式
|
||||
debug: true # (可选)开启调试模式
|
||||
dryRun: false # (可选)ORM空跑(只读不写)
|
||||
charset: "utf8" # (可选)数据库编码(如: utf8mb4/utf8/gbk/gb2312),一般设置为utf8mb4。默认为utf8。
|
||||
timezone: "Asia/Shanghai" # (可选)时区配置,例如:Local
|
||||
|
||||
@@ -79,7 +79,7 @@ func (d *assetDao) List(ctx context.Context, req *dto.ListAssetReq, fields ...st
|
||||
|
||||
// buildListFilter 构建列表查询的过滤条件
|
||||
func (d *assetDao) buildListFilter(ctx context.Context, req *dto.ListAssetReq) *gdb.Model {
|
||||
model := gfdb.DB(ctx).Model(ctx, public.TableNameAsset).Cache(ctx)
|
||||
model := gfdb.DB(ctx).Model(ctx, public.TableNameAsset).Cache(ctx).OmitEmpty()
|
||||
if !g.IsEmpty(req.Keyword) {
|
||||
model.WhereLike(entity.AssetCol.Name, "%"+req.Keyword+"%")
|
||||
}
|
||||
|
||||
@@ -60,7 +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).Fields(fields)
|
||||
model := gfdb.DB(ctx).Model(ctx, public.TableNameAssetSku).Fields(fields).OmitEmpty()
|
||||
model.Where(entity.AssetSkuCol.AssetId, assetId)
|
||||
model.WhereNot(entity.AssetSkuCol.Id, req.Id)
|
||||
if req.Page != nil {
|
||||
@@ -92,7 +92,7 @@ func (d *assetSku) List(ctx context.Context, req *dto.ListAssetSkuReq, fields ..
|
||||
|
||||
// buildListFilter 构建列表查询的过滤条件
|
||||
func (d *assetSku) buildListFilter(ctx context.Context, req *dto.ListAssetSkuReq) *gdb.Model {
|
||||
model := gfdb.DB(ctx).Model(ctx, public.TableNameAssetSku).Cache(ctx)
|
||||
model := gfdb.DB(ctx).Model(ctx, public.TableNameAssetSku).Cache(ctx).OmitEmpty()
|
||||
if !g.IsEmpty(req.Keyword) {
|
||||
model.WhereLike(entity.AssetCol.Name, "%"+req.Keyword+"%")
|
||||
model.WhereOrLike(entity.AssetSkuCol.SkuName, "%"+req.Keyword+"%")
|
||||
|
||||
@@ -81,7 +81,7 @@ func (d *category) List(ctx context.Context, req *dto.ListCategoryReq, fields ..
|
||||
|
||||
// buildListFilter 构建列表查询的过滤条件
|
||||
func (d *category) buildListFilter(ctx context.Context, req *dto.ListCategoryReq) *gdb.Model {
|
||||
model := gfdb.DB(ctx).Model(ctx, public.TableNameCategory).Cache(ctx)
|
||||
model := gfdb.DB(ctx).Model(ctx, public.TableNameCategory).Cache(ctx).OmitEmpty()
|
||||
if !g.IsEmpty(req.Keyword) {
|
||||
model.WhereLike(entity.CategoryCol.Name, "%"+req.Keyword+"%")
|
||||
}
|
||||
|
||||
@@ -61,7 +61,7 @@ func (d *stockDetails) List(ctx context.Context, req *dto.GetSockDetailsReq, fie
|
||||
|
||||
// buildListFilter 构建列表查询的过滤条件
|
||||
func (d *stockDetails) buildListFilter(ctx context.Context, req *dto.GetSockDetailsReq) *gdb.Model {
|
||||
model := gfdb.DB(ctx).Model(ctx, public.TableNameStockDetails).Model
|
||||
model := gfdb.DB(ctx).Model(ctx, public.TableNameStockDetails).Model.OmitEmpty()
|
||||
model.Where(entity.StockDetailsCol.Id, req.Id)
|
||||
model.Where(entity.StockDetailsCol.AssetId, req.AssetId)
|
||||
model.Where(entity.StockDetailsCol.AssetSkuId, req.AssetSkuId)
|
||||
|
||||
@@ -24,8 +24,8 @@ type StockOperationReq struct {
|
||||
type StockPublishMessage struct {
|
||||
AssetId int64 `json:"assetId"`
|
||||
AssetSkuId int64 `json:"assetSkuId"`
|
||||
TenantId interface{} `json:"tenantId"`
|
||||
UserName interface{} `json:"userName"`
|
||||
TenantId uint64 `json:"tenantId"`
|
||||
UserName string `json:"userName"`
|
||||
StockCount int `json:"stockCount"`
|
||||
OperationType string `json:"operationType"`
|
||||
Metadata []map[string]interface{} `json:"metadata"`
|
||||
|
||||
@@ -185,8 +185,10 @@ func (s *stockManage) AddStock(ctx context.Context, msg any) error {
|
||||
return err
|
||||
}
|
||||
// 设置 userId 和 tenantId 到 ctx
|
||||
ctx = context.WithValue(ctx, "userName", req.UserName)
|
||||
ctx = context.WithValue(ctx, "tenantId", req.TenantId)
|
||||
ctx = context.WithValue(ctx, "user", &beans.User{
|
||||
UserName: req.UserName,
|
||||
TenantId: req.TenantId,
|
||||
})
|
||||
// 获取redis-租户存储-锁key
|
||||
fileLockKey := fmt.Sprintf(public.StockDetailLockKey, req.AssetSkuId)
|
||||
success, err := utils.Lock(ctx, fileLockKey, int64(60), func(ctx context.Context) error {
|
||||
|
||||
Reference in New Issue
Block a user