sync: 同步 v1.0.4 并脱敏配置与镜像
This commit is contained in:
@@ -51,7 +51,7 @@ func applyStockBusinessFilters(ctx context.Context, mod *gdb.Model, filter stock
|
||||
stockTable,
|
||||
stockColumns.ChanKey,
|
||||
channelColumns.TenantId,
|
||||
channelColumns.ChanName,
|
||||
channelDisplayNameColumn(ctx),
|
||||
channelColumns.ChanKey,
|
||||
),
|
||||
contexts.GetTenantId(ctx),
|
||||
@@ -144,12 +144,16 @@ func enrichStockListBusinessFields(ctx context.Context, list []*model.TSimCardSt
|
||||
|
||||
batchNos := make([]string, 0, len(list))
|
||||
chanKeys := make([]string, 0, len(list))
|
||||
deptIds := make([]int64, 0, len(list))
|
||||
for _, item := range list {
|
||||
if item == nil {
|
||||
continue
|
||||
}
|
||||
batchNos = appendUniqueNonBlank(batchNos, item.BatchNo)
|
||||
chanKeys = appendUniqueNonBlank(chanKeys, item.ChanKey)
|
||||
if item.CreatedDept > 0 {
|
||||
deptIds = append(deptIds, item.CreatedDept)
|
||||
}
|
||||
}
|
||||
|
||||
batchMap, err := loadStockBatchBusinessFields(ctx, batchNos)
|
||||
@@ -167,6 +171,10 @@ func enrichStockListBusinessFields(ctx context.Context, list []*model.TSimCardSt
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
deptMap, err := loadStockDeptNames(ctx, deptIds)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
for _, item := range list {
|
||||
if item == nil {
|
||||
@@ -178,6 +186,7 @@ func enrichStockListBusinessFields(ctx context.Context, list []*model.TSimCardSt
|
||||
item.UpPkgCode = fields.UpPkgCode
|
||||
item.UpPkgName = fields.UpPkgName
|
||||
item.AgreementExpiryDate = fields.AgreementExpiryDate
|
||||
item.CreatedDeptName = deptMap[item.CreatedDept]
|
||||
}
|
||||
return nil
|
||||
}
|
||||
@@ -419,7 +428,7 @@ func loadStockChannelNames(ctx context.Context, chanKeys []string) (map[string]s
|
||||
var rows []*channelRow
|
||||
columns := dao.TSimChannels.Columns()
|
||||
if err := dao.TSimChannels.Ctx(ctx).
|
||||
Fields(columns.ChanKey, columns.ChanName).
|
||||
Fields(columns.ChanKey, channelDisplayNameSQL(ctx, dao.TSimChannels.Table())+" AS chan_name").
|
||||
Where(columns.TenantId, contexts.GetTenantId(ctx)).
|
||||
WhereIn(columns.ChanKey, chanKeys).
|
||||
Scan(&rows); err != nil {
|
||||
@@ -433,6 +442,51 @@ func loadStockChannelNames(ctx context.Context, chanKeys []string) (map[string]s
|
||||
return result, nil
|
||||
}
|
||||
|
||||
// loadStockDeptNames 批量补充创建部门名称(sys_dept.dept_id -> dept_name)。
|
||||
func loadStockDeptNames(ctx context.Context, deptIds []int64) (map[int64]string, error) {
|
||||
result := make(map[int64]string)
|
||||
deptIds = uniqueInt64(deptIds)
|
||||
if len(deptIds) == 0 {
|
||||
return result, nil
|
||||
}
|
||||
|
||||
type deptRow struct {
|
||||
DeptId int64 `orm:"dept_id"`
|
||||
DeptName string `orm:"dept_name"`
|
||||
}
|
||||
var rows []*deptRow
|
||||
columns := dao.SysDept.Columns()
|
||||
mod := dao.SysDept.Ctx(ctx).
|
||||
Fields(columns.DeptId, columns.DeptName).
|
||||
WhereIn(columns.DeptId, deptIds)
|
||||
if tenantId := strings.TrimSpace(contexts.GetTenantId(ctx)); tenantId != "" {
|
||||
mod = mod.Where(columns.TenantId, tenantId)
|
||||
}
|
||||
if err := mod.Scan(&rows); err != nil {
|
||||
return nil, gerror.Wrap(err, "补充创建部门名称失败")
|
||||
}
|
||||
for _, row := range rows {
|
||||
if row != nil && row.DeptId > 0 {
|
||||
result[row.DeptId] = row.DeptName
|
||||
}
|
||||
}
|
||||
return result, nil
|
||||
}
|
||||
|
||||
// uniqueInt64 去重并剔除非正的部门ID。
|
||||
func uniqueInt64(values []int64) []int64 {
|
||||
seen := make(map[int64]bool, len(values))
|
||||
result := make([]int64, 0, len(values))
|
||||
for _, value := range values {
|
||||
if value <= 0 || seen[value] {
|
||||
continue
|
||||
}
|
||||
seen[value] = true
|
||||
result = append(result, value)
|
||||
}
|
||||
return result
|
||||
}
|
||||
|
||||
func loadStockUpstreamPackageNames(ctx context.Context, upPkgCodes []string) (map[string]string, error) {
|
||||
result := make(map[string]string)
|
||||
upPkgCodes = uniqueNonBlank(upPkgCodes)
|
||||
|
||||
Reference in New Issue
Block a user