sync: 对齐小程序 v1.0.2 生产代码并脱敏
This commit is contained in:
@@ -0,0 +1,58 @@
|
||||
package app
|
||||
|
||||
import (
|
||||
"context"
|
||||
"github.com/gogf/gf/v2/errors/gerror"
|
||||
"git.5iot.com/iotlcm-public/iotlcm-app/internal/consts"
|
||||
"git.5iot.com/iotlcm-public/iotlcm-app/internal/library/allocaterequest"
|
||||
"git.5iot.com/iotlcm-public/iotlcm-app/internal/library/batchmetadata"
|
||||
"git.5iot.com/iotlcm-public/iotlcm-app/internal/model"
|
||||
"git.5iot.com/iotlcm-public/iotlcm-app/internal/model/entity"
|
||||
)
|
||||
|
||||
func (s *sAppCard) submitAppAllocateRequest(ctx context.Context, user *entity.SysUser, param *model.AppCardAllocateBatchSubmitParam) (*model.AppCardAllocateBatchModel, error) {
|
||||
_, err := allocaterequest.Key(user.TenantId, user.UserId, param.RequestId)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
values := appNormalizeAllocateCardValues(param.CardValues)
|
||||
if len(values) == 0 || len(values) > 100 || param.TargetDeptId <= 0 {
|
||||
return nil, gerror.New("请选择1至100张卡及目标客户")
|
||||
}
|
||||
mode := appAllocateExecutionMode(param.ExecutionMode)
|
||||
if mode == batchmetadata.Single && len(values) != 1 {
|
||||
return nil, gerror.New("单卡划拨只能选择一张卡")
|
||||
}
|
||||
hash := allocaterequest.Fingerprint(values, user.DeptId, param.TargetDeptId, mode, param.Remark)
|
||||
existing, err := allocaterequest.Find(ctx, user.TenantId, user.UserId, param.RequestId)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if existing != nil {
|
||||
return s.resumeAppAllocateRequest(ctx, user, existing, hash)
|
||||
}
|
||||
return nil, gerror.New("请先创建划拨批次,再按批次号提交;旧请求未受理,不能直接重试创建")
|
||||
}
|
||||
|
||||
func appValidateAllocateRequest(batch *entity.BatchMain, user *entity.SysUser, hash string) error {
|
||||
if batch.BatchType != consts.BatchTypeAllocate || batch.SourceBatchNo != "" || batch.BatchInfo == nil || batch.BatchInfo.Get("jobRole").String() != "allocate_parent" {
|
||||
return gerror.New("请求标识对应的批次不可重试")
|
||||
}
|
||||
if batch.CreatedDept != user.DeptId || batch.BatchInfo.Get("requestHash").String() != hash {
|
||||
return gerror.New("同一请求标识不能更改卡片、目标客户、规模或备注")
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func (s *sAppCard) resumeAppAllocateRequest(ctx context.Context, user *entity.SysUser, batch *entity.BatchMain, hash string) (*model.AppCardAllocateBatchModel, error) {
|
||||
if err := appValidateAllocateRequest(batch, user, hash); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
response := appAllocateQueuedResponse(batch)
|
||||
if response.Status == "pending" || response.Status == "processing" {
|
||||
if !appWorkerBatchAsyncEnabled(ctx) || s.publishAppAllocateBatch(ctx, user, batch.BatchNo) != nil {
|
||||
response.FailReason = "任务已受理,投递尚未确认,请保留批次号并稍后刷新"
|
||||
}
|
||||
}
|
||||
return response, nil
|
||||
}
|
||||
Reference in New Issue
Block a user