From e1702d7b4636e2dc7bc732cdfd73289cd25b46f6 Mon Sep 17 00:00:00 2001 From: cjy Date: Wed, 21 Jan 2026 10:26:49 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E6=8A=8A=E6=89=80=E6=9C=89=E8=AF=B7?= =?UTF-8?q?=E6=B1=82=E5=8F=82=E6=95=B0=E6=94=BE=E5=88=B0dto=E6=96=87?= =?UTF-8?q?=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/controller/task.go | 21 ++- internal/dao/taskDao.go | 253 +++--------------------------------- internal/dto/task.go | 219 +++++++++++++++++++++++++++++++ internal/logic/taskLogic.go | 30 ++--- 4 files changed, 262 insertions(+), 261 deletions(-) diff --git a/internal/controller/task.go b/internal/controller/task.go index 3c388f6..4c07370 100644 --- a/internal/controller/task.go +++ b/internal/controller/task.go @@ -3,7 +3,6 @@ package controller import ( "context" "fmt" - "micro-bundle/internal/dao" "micro-bundle/internal/dto" "micro-bundle/internal/logic" "micro-bundle/internal/model" @@ -16,7 +15,7 @@ import ( // AssignTask 指派某位员工完成某个艺人的任务 func (b *BundleProvider) AssignTask(_ context.Context, req *bundle.TaskAssignRequest) (*bundle.CommonResponse, error) { - daoReq := &dao.TaskAssignRequest{ + daoReq := &dto.TaskAssignRequest{ SubNum: req.SubNum, TelNum: req.TelNum, ArtistName: req.ArtistName, @@ -68,7 +67,7 @@ func (b *BundleProvider) GetEmployeeAssignedTasks(_ context.Context, req *bundle if int(req.Status) == 2 { req.SortBy = "complete_time" } - daoReq := &dao.EmployeeTaskQueryRequest{ + daoReq := &dto.EmployeeTaskQueryRequest{ TaskAssigneeNum: req.TaskAssigneeNum, Keyword: req.Keyword, Operator: req.Operator, @@ -118,7 +117,7 @@ func (b *BundleProvider) CompleteTaskManually(_ context.Context, req *bundle.Com // UpdateTaskProgress 员工实际完成任务状态更新 func (b *BundleProvider) UpdateTaskProgress(_ context.Context, req *bundle.UpdateTaskProgressRequest) (*bundle.CommonResponse, error) { - daoReq := &dao.CompleteTaskRequest{ + daoReq := &dto.CompleteTaskRequest{ AssignRecordsUUID: req.AssignRecordsUUID, EmployeeName: req.EmployeeName, EmployeeNum: req.EmployeeNum, @@ -193,7 +192,7 @@ func (b *BundleProvider) GetTaskAssignRecordsList(_ context.Context, req *bundle if sortBy, ok := model.OrderByPending[req.SortBy]; ok { req.SortBy = sortBy } - daoReq := &dao.TaskAssignRecordsQueryRequest{ + daoReq := &dto.TaskAssignRecordsQueryRequest{ Keyword: req.Keyword, TaskAssignee: req.TaskAssignee, Operator: req.Operator, @@ -231,7 +230,7 @@ func (b *BundleProvider) GetTaskAssignRecordsList(_ context.Context, req *bundle } // convertToTaskAssignRecordInfo 转换TaskAssignRecords模型为proto消息 -func convertToTaskAssignRecordInfo(record *dao.TaskAssignRecordsResponse) *bundle.TaskAssignRecordInfo { +func convertToTaskAssignRecordInfo(record *dto.TaskAssignRecordsResponse) *bundle.TaskAssignRecordInfo { var completeTime string if record.CompleteTime != nil { completeTime = record.CompleteTime.Format("2006-01-02 15:04:05") @@ -265,7 +264,7 @@ func convertToTaskAssignRecordInfo(record *dao.TaskAssignRecordsResponse) *bundl } // convertToTaskAssignRecordsSummary 转换汇总结构到proto -func convertToTaskAssignRecordsSummary(s *dao.TaskAssignRecordsSummary) *bundle.TaskAssignRecordsSummary { +func convertToTaskAssignRecordsSummary(s *dto.TaskAssignRecordsSummary) *bundle.TaskAssignRecordsSummary { if s == nil { return &bundle.TaskAssignRecordsSummary{} } @@ -288,13 +287,13 @@ func (b *BundleProvider) BatchAssignTask(_ context.Context, req *bundle.BatchAss } // 转换请求项为DAO层结构 - var items []*dao.BatchAssignItem - items = make([]*dao.BatchAssignItem, 0, len(req.Items)) + var items []*dto.BatchAssignItem + items = make([]*dto.BatchAssignItem, 0, len(req.Items)) for _, it := range req.Items { if it == nil { return &bundle.ComResponse{Msg: "存在空的指派项"}, fmt.Errorf("存在空的指派项") } - items = append(items, &dao.BatchAssignItem{ + items = append(items, &dto.BatchAssignItem{ SubNum: it.SubNum, TelNum: it.TelNum, ArtistName: it.ArtistName, @@ -441,7 +440,7 @@ func (b *BundleProvider) AddHiddenTaskAssignee(_ context.Context, req *bundle.Ad // CreateTaskWorkLog 创建任务日志记录 func (b *BundleProvider) CreateTaskWorkLog(_ context.Context, req *bundle.CreateTaskWorkLogRequest) (*bundle.CommonResponse, error) { // 转换请求参数 - daoReq := &dao.CreateTaskWorkLogRequest{ + daoReq := &dto.CreateTaskWorkLogRequest{ AssignRecordsUUID: req.AssignRecordsUUID, WorkUUID: req.WorkUUID, Title: req.Title, diff --git a/internal/dao/taskDao.go b/internal/dao/taskDao.go index b8e2d90..69e2a2a 100644 --- a/internal/dao/taskDao.go +++ b/internal/dao/taskDao.go @@ -17,22 +17,6 @@ import ( "gorm.io/gorm/clause" ) -// TaskAssignRequest 指派任务请求参数 -type TaskAssignRequest struct { - SubNum string `json:"subNum"` // 艺人编号 - TelNum string `json:"telNum"` // 艺人手机号 - ArtistName string `json:"artistName"` // 艺人姓名 - TaskAssignee string `json:"taskAssignee"` // 任务指派人 - TaskAssigneeNum string `json:"taskAssigneeNum"` // 任务指派人账号 - Operator string `json:"operator"` // 操作人 - OperatorNum string `json:"operatorNum"` // 操作人账号 - AssignVideoCount int `json:"assignVideoCount"` // 指派视频数 - AssignPostCount int `json:"assignPostCount"` // 指派图文数 - AssignDataCount int `json:"assignDataCount"` // 指派数据数 - AssignVideoScriptCount int `json:"assignVideoScriptCount"` // 指派视频脚本数 - TaskBatch string `json:"taskBatch"` // 任务批次 -} - func GetPendingTaskLayout() (string, error) { var rec model.TaskPendingLayout if err := app.ModuleClients.TaskBenchDB.Model(&model.TaskPendingLayout{}).Where("id = ?", 1).First(&rec).Error; err != nil { @@ -74,187 +58,8 @@ func AddHiddenTaskAssignee(taskAssignee string, taskAssigneeNum string) error { return nil } -// BatchAssignItem 批量指派项(仅写入指派记录,不更新任务管理表) -type BatchAssignItem struct { - SubNum string `json:"subNum"` // 艺人编号 - TelNum string `json:"telNum"` // 艺人手机号 - ArtistName string `json:"artistName"` // 艺人姓名 - TaskAssignee string `json:"taskAssignee"` // 任务指派人 - TaskAssigneeNum string `json:"taskAssigneeNum"` // 任务指派人账号 - Operator string `json:"operator"` // 操作人 - OperatorNum string `json:"operatorNum"` // 操作人账号 - AssignVideoCount int `json:"assignVideoCount"` // 指派视频数 - AssignPostCount int `json:"assignPostCount"` // 指派图文数 - AssignDataCount int `json:"assignDataCount"` // 指派数据数 - AssignVideoScriptCount int `json:"assignVideoScriptCount"` // 指派视频脚本数 - TaskBatch string `json:"taskBatch"` // 任务批次 -} - -// EmployeeTaskQueryRequest 员工任务查询请求参数 -type EmployeeTaskQueryRequest struct { - TaskAssigneeNum string `json:"taskAssigneeNum"` // 被指派人账号 - Keyword string `json:"keyword"` // 艺人姓名、编号、手机号搜索关键词 - Operator string `json:"operator"` // 操作人 - SortBy string `json:"sortBy"` // 排序字段 - StartTime string `json:"startTime"` // 指派开始时间 - EndTime string `json:"endTime"` // 指派结束时间 - StartCompleteTime string `json:"startCompleteTime"` // 开始完成时间 - EndCompleteTime string `json:"endCompleteTime"` // 结束完成时间 - Status int `json:"status"` // 反馈完成状态 - TaskBatch string `json:"taskBatch"` // 任务批次 - - Page int `json:"page"` // 页码 - PageSize int `json:"pageSize"` // 每页数量 -} - -// CompleteTaskRequest 完成任务请求参数 -type CompleteTaskRequest struct { - AssignRecordsUUID string `json:"assignRecordsUUID,omitempty"` // 指派记录UUID(可选) - EmployeeName string `json:"employeeName"` // 员工姓名(必要) - EmployeeNum string `json:"employeeNum"` // 员工工号(必要) - TaskType string `json:"taskType"` // 任务类型: video/post/data/script - UUID string `json:"uuid"` // 任务UUID - CompleteCount int `json:"completeCount"` // 完成数量 -} - -// TaskAssignRecordsQueryRequest 多条件查询操作记录表请求参数 -type TaskAssignRecordsQueryRequest struct { - Keyword string `json:"keyword"` // 艺人姓名、编号、手机号搜索关键词 - TaskAssignee string `json:"taskAssignee"` // 指派人姓名 - Operator string `json:"operator"` // 操作人姓名 - OperatorNum string `json:"operatorNum"` // 操作人手机号 - StartTime string `json:"startTime"` // 操作开始时间 - EndTime string `json:"endTime"` // 操作结束时间 - Status int `json:"status"` // 反馈完成状态 0:全部 1:未完成 2:完成 - ActualStatus int `json:"actualStatus"` // 实际完成状态 0:全部 1:未完成 2:完成 - TaskBatch string `json:"taskBatch"` // 任务批次 - Page int `json:"page"` // 页码 - PageSize int `json:"pageSize"` // 每页数量 - SortBy string `json:"sortBy"` // 排序字段(白名单) - SortType string `json:"sortType"` // 排序方式 -} - -// 任务记录表返回结构体 -type TaskAssignRecordsResponse struct { - AssignRecordsUUID string `gorm:"column:assign_records_uuid;comment:指派记录UUID" json:"assignRecordsUUID"` - SubNum string `gorm:"column:sub_num;comment:艺人编号" json:"subNum"` - TelNum string `gorm:"column:tel_num;comment:艺人手机号" json:"telNum"` - ArtistName string `gorm:"column:artist_name;comment:艺人名称" json:"artistName"` - Status int `gorm:"column:status;comment:反馈完成状态 1:未完成 2:完成" json:"status"` - ActualStatus int `gorm:"column:actual_status;comment:实际完成状态 1:未完成 2:完成" json:"actualStatus"` - CompleteTime *time.Time `gorm:"column:complete_time;comment:反馈完成时间" json:"completeTime"` - OperatorType int `gorm:"column:operator_type;comment:操作类型 1:修改待发数量 2:指派" json:"operatorType"` - Operator string `gorm:"column:operator;comment:操作人" json:"operator"` - OperatorNum string `gorm:"column:operator_num;comment:操作人账号" json:"operatorNum"` - OperatorTime time.Time `gorm:"column:operator_time;comment:操作时间" json:"operatorTime"` - TaskAssignee string `gorm:"column:task_assignee;comment:任务指派人" json:"taskAssignee"` - TaskAssigneeNum string `gorm:"column:task_assignee_num;comment:任务指派人账号" json:"taskAssigneeNum"` - TaskBatch string `gorm:"column:task_batch;comment:任务批次" json:"taskBatch"` - PendingVideoCount int `gorm:"column:pending_video_count;comment:待发视频数量" json:"pendingVideoCount"` - PendingPostCount int `gorm:"column:pending_post_count;comment:待发图文数量" json:"pendingPostCount"` - PendingDataCount int `gorm:"column:pending_data_count;comment:待发数据数量" json:"pendingDataCount"` - PendingVideoScriptCount int `gorm:"column:pending_video_script_count;comment:待发视频脚本数量" json:"pendingVideoScriptCount"` - // 已完成统计 - CompleteVideoScriptCount int `gorm:"column:complete_video_script_count;comment:已完成视频脚本数" json:"completeVideoScriptCount"` - CompleteVideoCount int `gorm:"column:complete_video_count;comment:已完成视频数" json:"completeVideoCount"` - CompletePostCount int `gorm:"column:complete_post_count;comment:已完成图文数" json:"completePostCount"` - CompleteDataCount int `gorm:"column:complete_data_count;comment:已完成数据数" json:"completeDataCount"` - UpdatedAt time.Time `gorm:"column:updated_at;comment:更新时间" json:"updatedAt"` -} - -// 多条件查询后分页前的艺人数量汇总 -type TaskAssignRecordsSummary struct { - TotalPendingVideoScriptCount int `json:"totalPendingVideoScriptCount"` - TotalPendingVideoCount int `json:"totalPendingVideoCount"` - TotalPendingPostCount int `json:"totalPendingPostCount"` - TotalPendingDataCount int `json:"totalPendingDataCount"` - TotalCompleteVideoScriptCount int `json:"totalCompleteVideoScriptCount"` - TotalCompleteVideoCount int `json:"totalCompleteVideoCount"` - TotalCompletePostCount int `json:"totalCompletePostCount"` - TotalCompleteDataCount int `json:"totalCompleteDataCount"` -} - -// ValidArtistInfo 有效艺人信息结构体 -type ValidArtistInfo struct { - UserID int `json:"userId"` // 用户ID - CustomerNum string `json:"customerNum"` // 艺人编号 - UserName string `json:"userName"` // 艺人姓名 - UserPhoneNumber string `json:"userPhoneNumber"` // 艺人手机号 - BundleName string `json:"bundleName"` // 套餐名称 - ExpirationTime string `json:"expirationTime"` // 过期时间 - Status int `json:"status"` // 套餐状态 - OrderUUID string `json:"orderUUID"` // 订单UUID - AccountNumber int `json:"accountNumber"` // 账号数量 - AccountConsumptionNumber int `json:"accountConsumptionNumber"` // 账号消耗数量 - VideoNumber int `json:"videoNumber"` // 视频数量 - VideoConsumptionNumber int `json:"videoConsumptionNumber"` // 视频消耗数量 - ImageNumber int `json:"imageNumber"` // 图片数量 - ImageConsumptionNumber int `json:"imageConsumptionNumber"` // 图片消耗数量 - DataAnalysisNumber int `json:"dataAnalysisNumber"` // 数据分析数量 - DataAnalysisConsumptionNumber int `json:"dataAnalysisConsumptionNumber"` // 数据分析消耗数量 - ExpansionPacksNumber int `json:"expansionPacksNumber"` // 扩展套餐数量 -} - -// ArtistUploadStatsItem 艺人上传与额度统计(视频/图文/数据分析) -type ArtistUploadStatsItem struct { - // 身份信息 - SubNum string `json:"subNum" gorm:"column:customer_num"` - UserName string `json:"userName" gorm:"column:user_name"` - UserPhoneNumber string `json:"userPhoneNumber" gorm:"column:user_phone_number"` - StartAt string `json:"startAt" gorm:"column:start_at"` - ExpiredAt string `json:"expiredAt" gorm:"column:expired_at"` - - // 视频 - UploadedVideoCount int `json:"uploadedVideoCount" gorm:"column:uploaded_video_count"` - BundleVideoTotal int `json:"bundleVideoTotal" gorm:"column:bundle_video_total"` - IncreaseVideoTotal int `json:"increaseVideoTotal" gorm:"column:increase_video_total"` - ReleasedVideoTotal int `json:"releasedVideoTotal" gorm:"column:released_video_total"` - PendingVideoCount int `json:"pendingVideoCount" gorm:"column:pending_video_count"` - - // 图文 - UploadedPostCount int `json:"uploadedPostCount" gorm:"column:uploaded_post_count"` - BundlePostTotal int `json:"bundlePostTotal" gorm:"column:bundle_post_total"` - IncreasePostTotal int `json:"increasePostTotal" gorm:"column:increase_post_total"` - ReleasedPostTotal int `json:"releasedPostTotal" gorm:"column:released_post_total"` - PendingPostCount int `json:"pendingPostCount" gorm:"column:pending_post_count"` - - // 数据分析 - UploadedDataAnalysisCount int `json:"uploadedDataAnalysisCount" gorm:"column:uploaded_data_count"` - BundleDataAnalysisTotal int `json:"bundleDataAnalysisTotal" gorm:"column:bundle_data_total"` - IncreaseDataAnalysisTotal int `json:"increaseDataAnalysisTotal" gorm:"column:increase_data_total"` - ReleasedDataAnalysisTotal int `json:"releasedDataAnalysisTotal" gorm:"column:released_data_total"` - PendingDataAnalysisCount int `json:"pendingDataAnalysisCount" gorm:"column:pending_data_count"` - - // 任务管理 - LastTaskAssignee string `json:"lastTaskAssignee" gorm:"column:last_task_assignee"` - TaskAssigneeNum string `json:"taskAssigneeNum" gorm:"column:task_assignee_num"` - ProgressTaskCount int `json:"progressTaskCount" gorm:"column:progress_task_count"` - CompleteTaskCount int `json:"completeTaskCount" gorm:"column:complete_task_count"` - - // 脚本 - UploadedVideoScriptCount int `json:"uploadedVideoScriptCount" gorm:"column:uploaded_video_script_count"` - PendingVideoScriptCount int `json:"pendingVideoScriptCount" gorm:"column:pending_video_script_count"` - - // 可指派数(可上传数 - 已指派且未完成的数量) - AllowVideoScriptCount int `json:"allowVideoScriptCount" gorm:"column:allow_video_script_count"` - AllowVideoCount int `json:"allowVideoCount" gorm:"column:allow_video_count"` - AllowPostCount int `json:"allowPostCount" gorm:"column:allow_post_count"` - AllowDataCount int `json:"allowDataCount" gorm:"column:allow_data_count"` -} - -// ArtistPendingAssignItem 艺人可指派数量(可上传数 - 已指派且未完成的数量) -type ArtistPendingAssignItem struct { - SubNum string `json:"subNum" gorm:"column:customer_num"` - TelNum string `json:"telNum" gorm:"column:tel_num"` - UserName string `json:"userName" gorm:"column:user_name"` - AllowVideoScriptCount int `json:"allowVideoScriptCount" gorm:"column:allow_video_script_count"` - AllowVideoCount int `json:"allowVideoCount" gorm:"column:allow_video_count"` - AllowPostCount int `json:"allowPostCount" gorm:"column:allow_post_count"` - AllowDataCount int `json:"allowDataCount" gorm:"column:allow_data_count"` -} - // GetArtistUploadStatsList 查询所有艺人的上传统计与额度信息(通过 BundleBalance 关联 CastWork/CastWorkAnalysis,及 subNum 关联 TaskManagement) -func GetArtistUploadStatsList(req *dto.TaskQueryRequest) ([]*ArtistUploadStatsItem, int64, error) { +func GetArtistUploadStatsList(req *dto.TaskQueryRequest) ([]*dto.ArtistUploadStatsItem, int64, error) { taskSchema := bundleConfig.Data.TaskBenchDB.DbName nowMonth := time.Now().Format("2006-01") @@ -580,12 +385,12 @@ LEFT JOIN assigned_pending_agg apa ON apa.user_id = aw.user_id` listArgs = append(listArgs, req.PageSize, offset) } - items := make([]ArtistUploadStatsItem, 0) + items := make([]dto.ArtistUploadStatsItem, 0) if err := app.ModuleClients.BundleDB.Raw(selectSQL, listArgs...).Scan(&items).Error; err != nil { return nil, 0, commonErr.ReturnError(err, "查询艺人余额与上传数据失败", "查询艺人余额与上传数据失败: ") } - resp := make([]*ArtistUploadStatsItem, 0, len(items)) + resp := make([]*dto.ArtistUploadStatsItem, 0, len(items)) for i := range items { resp = append(resp, &items[i]) } @@ -593,9 +398,9 @@ LEFT JOIN assigned_pending_agg apa ON apa.user_id = aw.user_id` } // GetPendingAssignBySubNums 查询指定艺人的可指派数量(可上传数 - 已指派且未完成的数量) -func GetPendingAssignBySubNums(subNums []string, page int, pageSize int) ([]*ArtistPendingAssignItem, int64, error) { +func GetPendingAssignBySubNums(subNums []string, page int, pageSize int) ([]*dto.ArtistPendingAssignItem, int64, error) { if len(subNums) == 0 { - return []*ArtistPendingAssignItem{}, 0, nil + return []*dto.ArtistPendingAssignItem{}, 0, nil } taskSchema := bundleConfig.Data.TaskBenchDB.DbName @@ -807,12 +612,12 @@ LEFT JOIN assigned_pending_agg apa ON apa.user_id = aw.user_id` listArgs = append(listArgs, pageSize, offset) } - items := make([]ArtistPendingAssignItem, 0) + items := make([]dto.ArtistPendingAssignItem, 0) if err := app.ModuleClients.BundleDB.Raw(selectSQL, listArgs...).Scan(&items).Error; err != nil { return nil, 0, commonErr.ReturnError(err, "查询可指派数量失败", "查询可指派数量失败: ") } - resp := make([]*ArtistPendingAssignItem, 0, len(items)) + resp := make([]*dto.ArtistPendingAssignItem, 0, len(items)) for i := range items { resp = append(resp, &items[i]) } @@ -820,7 +625,7 @@ LEFT JOIN assigned_pending_agg apa ON apa.user_id = aw.user_id` } // AssignTask 指派某位员工完成某个艺人的任务 -func AssignTask(req *TaskAssignRequest, progressTaskCount int, completeTaskCount int) error { +func AssignTask(req *dto.TaskAssignRequest, progressTaskCount int, completeTaskCount int) error { // 开启事务 tx := app.ModuleClients.TaskBenchDB.Begin() defer func() { @@ -1028,7 +833,7 @@ func RevertTaskCompletionByUUIDItem(uuid string) error { } // BatchAssignTasks 批量指派 -func BatchAssignTasks(items []*BatchAssignItem) error { +func BatchAssignTasks(items []*dto.BatchAssignItem) error { if len(items) == 0 { return commonErr.ReturnError(nil, "参数错误", "批量指派项不能为空") } @@ -1036,7 +841,7 @@ func BatchAssignTasks(items []*BatchAssignItem) error { now := time.Now() subNumSet := make(map[string]struct{}) - subTelKeys := make(map[string]*BatchAssignItem) // key: sub_num|tel_num + subTelKeys := make(map[string]*dto.BatchAssignItem) // key: sub_num|tel_num for _, it := range items { if it == nil { return commonErr.ReturnError(nil, "参数错误", "存在空的指派项") @@ -1282,7 +1087,7 @@ func BatchAssignTasks(items []*BatchAssignItem) error { } // 3.5 批量更新 task_management 表 - updateGroups := make(map[string]*BatchAssignItem) + updateGroups := make(map[string]*dto.BatchAssignItem) for _, it := range items { key := it.SubNum + "|" + it.TelNum updateGroups[key] = it @@ -1353,7 +1158,7 @@ func GetRecentAssignRecords(limit int) ([]*model.TaskAssignRecords, error) { } // GetEmployeeAssignedTasks 根据登录人信息查询被指派给该员工的艺人任务 -func GetEmployeeAssignedTasks(req *EmployeeTaskQueryRequest) ([]*model.TaskAssignRecords, int64, error) { +func GetEmployeeAssignedTasks(req *dto.EmployeeTaskQueryRequest) ([]*model.TaskAssignRecords, int64, error) { var records []*model.TaskAssignRecords var total int64 @@ -1566,7 +1371,7 @@ func UpdateTaskActualStatusByUUID(assignRecordsUUID string, actualStatus int) er // UpdateTaskProgress 员工实际完成任务状态更新 // 员工调用视频、图文、数据时,对应的待完成数据减一,已完成数据加一 -func UpdateTaskProgress(req *CompleteTaskRequest) error { +func UpdateTaskProgress(req *dto.CompleteTaskRequest) error { // 开启事务 tx := app.ModuleClients.TaskBenchDB.Begin() defer func() { @@ -1916,10 +1721,10 @@ func GetAssignRecordByUUID(uuid string) (*model.TaskAssignRecords, error) { } // GetTaskAssignRecordsList 多条件查询操作记录表 -func GetTaskAssignRecordsList(req *TaskAssignRecordsQueryRequest) ([]*model.TaskAssignRecords, int64, *TaskAssignRecordsSummary, error) { +func GetTaskAssignRecordsList(req *dto.TaskAssignRecordsQueryRequest) ([]*model.TaskAssignRecords, int64, *dto.TaskAssignRecordsSummary, error) { var records []*model.TaskAssignRecords var total int64 - var summary TaskAssignRecordsSummary + var summary dto.TaskAssignRecordsSummary // 构建查询条件 query := app.ModuleClients.TaskBenchDB.Model(&model.TaskAssignRecords{}). @@ -2072,7 +1877,7 @@ func GetTaskAssignRecordsList(req *TaskAssignRecordsQueryRequest) ([]*model.Task } // GetValidArtistList 查询套餐状态为有效中的艺人数据列表 -func GetValidArtistList() ([]ValidArtistInfo, error) { +func GetValidArtistList() ([]dto.ValidArtistInfo, error) { // 构建子查询,获取每个用户的最新订单记录 subQuery := app.ModuleClients.BundleDB.Table("bundle_order_records as bor1"). Select("bor1.*"). @@ -2108,7 +1913,7 @@ func GetValidArtistList() ([]ValidArtistInfo, error) { Where("bb.month = ?", time.Now().Format("2006-01")). Order("bor.expiration_time desc") - var data []ValidArtistInfo + var data []dto.ValidArtistInfo err := session.Find(&data).Error if err != nil { return nil, commonErr.ReturnError(err, "查询有效艺人失败", "查询有效艺人失败: ") @@ -2152,30 +1957,8 @@ func UpdateTaskRecordsByAssigneeNum(taskAssigneeNum string) error { return nil } -// CreateTaskWorkLogRequest 创建任务日志请求参数 -type CreateTaskWorkLogRequest struct { - AssignRecordsUUID string `json:"assignRecordsUUID"` // 任务指派记录UUID(必填) - WorkUUID string `json:"workUUID"` // 任务作品UUID(必填) - Title string `json:"title"` // 任务作品标题 - - ArtistUUID string `json:"artistUUID"` // 任务艺人UUID - SubNum string `json:"subNum"` // 任务用户编号(必填) - TelNum string `json:"telNum"` // 任务用户手机号(必填) - ArtistName string `json:"artistName"` // 任务艺人名称 - - // 操作信息 - OperationType int `json:"operationType"` // 任务操作类型 1:加任务 2:消耗任务 3:完成任务 4:任务过期(必填) - TaskType int `json:"taskType"` // 任务类型 1:视频 2:图片 3:数据分析(必填) - TaskCount int `json:"taskCount"` // 任务数量(必填) - Remark string `json:"remark"` // 任务备注 - - // 操作人信息 - OperatorName string `json:"operatorName"` // 任务操作人姓名 - OperatorNum string `json:"operatorNum"` // 任务操作人账号 -} - // CreateTaskWorkLog 创建任务日志记录 -func CreateTaskWorkLog(req *CreateTaskWorkLogRequest) error { +func CreateTaskWorkLog(req *dto.CreateTaskWorkLogRequest) error { // 参数校验 if req == nil { return commonErr.ReturnError(nil, "参数错误", "请求参数不能为空") diff --git a/internal/dto/task.go b/internal/dto/task.go index 11c6139..59b7eb6 100644 --- a/internal/dto/task.go +++ b/internal/dto/task.go @@ -1,5 +1,7 @@ package dto +import "time" + // TaskQueryRequest 查询待指派任务记录请求参数 type TaskQueryRequest struct { Keyword string `json:"keyword"` // 艺人姓名、编号、手机号搜索关键词 @@ -10,3 +12,220 @@ type TaskQueryRequest struct { SortType string `json:"sortType"` // 排序类型 asc/desc SubNums []string `json:"subNums"` // 选中导出的艺人编号集合(可选) } + +// TaskAssignRequest 指派任务请求参数 +type TaskAssignRequest struct { + SubNum string `json:"subNum"` // 艺人编号 + TelNum string `json:"telNum"` // 艺人手机号 + ArtistName string `json:"artistName"` // 艺人姓名 + TaskAssignee string `json:"taskAssignee"` // 任务指派人 + TaskAssigneeNum string `json:"taskAssigneeNum"` // 任务指派人账号 + Operator string `json:"operator"` // 操作人 + OperatorNum string `json:"operatorNum"` // 操作人账号 + AssignVideoCount int `json:"assignVideoCount"` // 指派视频数 + AssignPostCount int `json:"assignPostCount"` // 指派图文数 + AssignDataCount int `json:"assignDataCount"` // 指派数据数 + AssignVideoScriptCount int `json:"assignVideoScriptCount"` // 指派视频脚本数 + TaskBatch string `json:"taskBatch"` // 任务批次 +} + +// BatchAssignItem 批量指派项(仅写入指派记录,不更新任务管理表) +type BatchAssignItem struct { + SubNum string `json:"subNum"` // 艺人编号 + TelNum string `json:"telNum"` // 艺人手机号 + ArtistName string `json:"artistName"` // 艺人姓名 + TaskAssignee string `json:"taskAssignee"` // 任务指派人 + TaskAssigneeNum string `json:"taskAssigneeNum"` // 任务指派人账号 + Operator string `json:"operator"` // 操作人 + OperatorNum string `json:"operatorNum"` // 操作人账号 + AssignVideoCount int `json:"assignVideoCount"` // 指派视频数 + AssignPostCount int `json:"assignPostCount"` // 指派图文数 + AssignDataCount int `json:"assignDataCount"` // 指派数据数 + AssignVideoScriptCount int `json:"assignVideoScriptCount"` // 指派视频脚本数 + TaskBatch string `json:"taskBatch"` // 任务批次 +} + +// EmployeeTaskQueryRequest 员工任务查询请求参数 +type EmployeeTaskQueryRequest struct { + TaskAssigneeNum string `json:"taskAssigneeNum"` // 被指派人账号 + Keyword string `json:"keyword"` // 艺人姓名、编号、手机号搜索关键词 + Operator string `json:"operator"` // 操作人 + SortBy string `json:"sortBy"` // 排序字段 + StartTime string `json:"startTime"` // 指派开始时间 + EndTime string `json:"endTime"` // 指派结束时间 + StartCompleteTime string `json:"startCompleteTime"` // 开始完成时间 + EndCompleteTime string `json:"endCompleteTime"` // 结束完成时间 + Status int `json:"status"` // 反馈完成状态 + TaskBatch string `json:"taskBatch"` // 任务批次 + + Page int `json:"page"` // 页码 + PageSize int `json:"pageSize"` // 每页数量 +} + +// CompleteTaskRequest 完成任务请求参数 +type CompleteTaskRequest struct { + AssignRecordsUUID string `json:"assignRecordsUUID,omitempty"` // 指派记录UUID(可选) + EmployeeName string `json:"employeeName"` // 员工姓名(必要) + EmployeeNum string `json:"employeeNum"` // 员工工号(必要) + TaskType string `json:"taskType"` // 任务类型: video/post/data/script + UUID string `json:"uuid"` // 任务UUID + CompleteCount int `json:"completeCount"` // 完成数量 +} + +// TaskAssignRecordsQueryRequest 多条件查询操作记录表请求参数 +type TaskAssignRecordsQueryRequest struct { + Keyword string `json:"keyword"` // 艺人姓名、编号、手机号搜索关键词 + TaskAssignee string `json:"taskAssignee"` // 指派人姓名 + Operator string `json:"operator"` // 操作人姓名 + OperatorNum string `json:"operatorNum"` // 操作人手机号 + StartTime string `json:"startTime"` // 操作开始时间 + EndTime string `json:"endTime"` // 操作结束时间 + Status int `json:"status"` // 反馈完成状态 0:全部 1:未完成 2:完成 + ActualStatus int `json:"actualStatus"` // 实际完成状态 0:全部 1:未完成 2:完成 + TaskBatch string `json:"taskBatch"` // 任务批次 + Page int `json:"page"` // 页码 + PageSize int `json:"pageSize"` // 每页数量 + SortBy string `json:"sortBy"` // 排序字段(白名单) + SortType string `json:"sortType"` // 排序方式 +} + +// 任务记录表返回结构体 +type TaskAssignRecordsResponse struct { + AssignRecordsUUID string `gorm:"column:assign_records_uuid;comment:指派记录UUID" json:"assignRecordsUUID"` + SubNum string `gorm:"column:sub_num;comment:艺人编号" json:"subNum"` + TelNum string `gorm:"column:tel_num;comment:艺人手机号" json:"telNum"` + ArtistName string `gorm:"column:artist_name;comment:艺人名称" json:"artistName"` + Status int `gorm:"column:status;comment:反馈完成状态 1:未完成 2:完成" json:"status"` + ActualStatus int `gorm:"column:actual_status;comment:实际完成状态 1:未完成 2:完成" json:"actualStatus"` + CompleteTime *time.Time `gorm:"column:complete_time;comment:反馈完成时间" json:"completeTime"` + OperatorType int `gorm:"column:operator_type;comment:操作类型 1:修改待发数量 2:指派" json:"operatorType"` + Operator string `gorm:"column:operator;comment:操作人" json:"operator"` + OperatorNum string `gorm:"column:operator_num;comment:操作人账号" json:"operatorNum"` + OperatorTime time.Time `gorm:"column:operator_time;comment:操作时间" json:"operatorTime"` + TaskAssignee string `gorm:"column:task_assignee;comment:任务指派人" json:"taskAssignee"` + TaskAssigneeNum string `gorm:"column:task_assignee_num;comment:任务指派人账号" json:"taskAssigneeNum"` + TaskBatch string `gorm:"column:task_batch;comment:任务批次" json:"taskBatch"` + PendingVideoCount int `gorm:"column:pending_video_count;comment:待发视频数量" json:"pendingVideoCount"` + PendingPostCount int `gorm:"column:pending_post_count;comment:待发图文数量" json:"pendingPostCount"` + PendingDataCount int `gorm:"column:pending_data_count;comment:待发数据数量" json:"pendingDataCount"` + PendingVideoScriptCount int `gorm:"column:pending_video_script_count;comment:待发视频脚本数量" json:"pendingVideoScriptCount"` + // 已完成统计 + CompleteVideoScriptCount int `gorm:"column:complete_video_script_count;comment:已完成视频脚本数" json:"completeVideoScriptCount"` + CompleteVideoCount int `gorm:"column:complete_video_count;comment:已完成视频数" json:"completeVideoCount"` + CompletePostCount int `gorm:"column:complete_post_count;comment:已完成图文数" json:"completePostCount"` + CompleteDataCount int `gorm:"column:complete_data_count;comment:已完成数据数" json:"completeDataCount"` + UpdatedAt time.Time `gorm:"column:updated_at;comment:更新时间" json:"updatedAt"` +} + +// 多条件查询后分页前的艺人数量汇总 +type TaskAssignRecordsSummary struct { + TotalPendingVideoScriptCount int `json:"totalPendingVideoScriptCount"` + TotalPendingVideoCount int `json:"totalPendingVideoCount"` + TotalPendingPostCount int `json:"totalPendingPostCount"` + TotalPendingDataCount int `json:"totalPendingDataCount"` + TotalCompleteVideoScriptCount int `json:"totalCompleteVideoScriptCount"` + TotalCompleteVideoCount int `json:"totalCompleteVideoCount"` + TotalCompletePostCount int `json:"totalCompletePostCount"` + TotalCompleteDataCount int `json:"totalCompleteDataCount"` +} + +// ValidArtistInfo 有效艺人信息结构体 +type ValidArtistInfo struct { + UserID int `json:"userId"` // 用户ID + CustomerNum string `json:"customerNum"` // 艺人编号 + UserName string `json:"userName"` // 艺人姓名 + UserPhoneNumber string `json:"userPhoneNumber"` // 艺人手机号 + BundleName string `json:"bundleName"` // 套餐名称 + ExpirationTime string `json:"expirationTime"` // 过期时间 + Status int `json:"status"` // 套餐状态 + OrderUUID string `json:"orderUUID"` // 订单UUID + AccountNumber int `json:"accountNumber"` // 账号数量 + AccountConsumptionNumber int `json:"accountConsumptionNumber"` // 账号消耗数量 + VideoNumber int `json:"videoNumber"` // 视频数量 + VideoConsumptionNumber int `json:"videoConsumptionNumber"` // 视频消耗数量 + ImageNumber int `json:"imageNumber"` // 图片数量 + ImageConsumptionNumber int `json:"imageConsumptionNumber"` // 图片消耗数量 + DataAnalysisNumber int `json:"dataAnalysisNumber"` // 数据分析数量 + DataAnalysisConsumptionNumber int `json:"dataAnalysisConsumptionNumber"` // 数据分析消耗数量 + ExpansionPacksNumber int `json:"expansionPacksNumber"` // 扩展套餐数量 +} + +// ArtistUploadStatsItem 艺人上传与额度统计(视频/图文/数据分析) +type ArtistUploadStatsItem struct { + // 身份信息 + SubNum string `json:"subNum" gorm:"column:customer_num"` + UserName string `json:"userName" gorm:"column:user_name"` + UserPhoneNumber string `json:"userPhoneNumber" gorm:"column:user_phone_number"` + StartAt string `json:"startAt" gorm:"column:start_at"` + ExpiredAt string `json:"expiredAt" gorm:"column:expired_at"` + + // 视频 + UploadedVideoCount int `json:"uploadedVideoCount" gorm:"column:uploaded_video_count"` + BundleVideoTotal int `json:"bundleVideoTotal" gorm:"column:bundle_video_total"` + IncreaseVideoTotal int `json:"increaseVideoTotal" gorm:"column:increase_video_total"` + ReleasedVideoTotal int `json:"releasedVideoTotal" gorm:"column:released_video_total"` + PendingVideoCount int `json:"pendingVideoCount" gorm:"column:pending_video_count"` + + // 图文 + UploadedPostCount int `json:"uploadedPostCount" gorm:"column:uploaded_post_count"` + BundlePostTotal int `json:"bundlePostTotal" gorm:"column:bundle_post_total"` + IncreasePostTotal int `json:"increasePostTotal" gorm:"column:increase_post_total"` + ReleasedPostTotal int `json:"releasedPostTotal" gorm:"column:released_post_total"` + PendingPostCount int `json:"pendingPostCount" gorm:"column:pending_post_count"` + + // 数据分析 + UploadedDataAnalysisCount int `json:"uploadedDataAnalysisCount" gorm:"column:uploaded_data_count"` + BundleDataAnalysisTotal int `json:"bundleDataAnalysisTotal" gorm:"column:bundle_data_total"` + IncreaseDataAnalysisTotal int `json:"increaseDataAnalysisTotal" gorm:"column:increase_data_total"` + ReleasedDataAnalysisTotal int `json:"releasedDataAnalysisTotal" gorm:"column:released_data_total"` + PendingDataAnalysisCount int `json:"pendingDataAnalysisCount" gorm:"column:pending_data_count"` + + // 任务管理 + LastTaskAssignee string `json:"lastTaskAssignee" gorm:"column:last_task_assignee"` + TaskAssigneeNum string `json:"taskAssigneeNum" gorm:"column:task_assignee_num"` + ProgressTaskCount int `json:"progressTaskCount" gorm:"column:progress_task_count"` + CompleteTaskCount int `json:"completeTaskCount" gorm:"column:complete_task_count"` + + // 脚本 + UploadedVideoScriptCount int `json:"uploadedVideoScriptCount" gorm:"column:uploaded_video_script_count"` + PendingVideoScriptCount int `json:"pendingVideoScriptCount" gorm:"column:pending_video_script_count"` + + // 可指派数(可上传数 - 已指派且未完成的数量) + AllowVideoScriptCount int `json:"allowVideoScriptCount" gorm:"column:allow_video_script_count"` + AllowVideoCount int `json:"allowVideoCount" gorm:"column:allow_video_count"` + AllowPostCount int `json:"allowPostCount" gorm:"column:allow_post_count"` + AllowDataCount int `json:"allowDataCount" gorm:"column:allow_data_count"` +} + +// ArtistPendingAssignItem 艺人可指派数量(可上传数 - 已指派且未完成的数量) +type ArtistPendingAssignItem struct { + SubNum string `json:"subNum" gorm:"column:customer_num"` + TelNum string `json:"telNum" gorm:"column:tel_num"` + UserName string `json:"userName" gorm:"column:user_name"` + AllowVideoScriptCount int `json:"allowVideoScriptCount" gorm:"column:allow_video_script_count"` + AllowVideoCount int `json:"allowVideoCount" gorm:"column:allow_video_count"` + AllowPostCount int `json:"allowPostCount" gorm:"column:allow_post_count"` + AllowDataCount int `json:"allowDataCount" gorm:"column:allow_data_count"` +} + +// CreateTaskWorkLogRequest 创建任务日志请求参数 +type CreateTaskWorkLogRequest struct { + AssignRecordsUUID string `json:"assignRecordsUUID"` // 任务指派记录UUID(必填) + WorkUUID string `json:"workUUID"` // 任务作品UUID(必填) + Title string `json:"title"` // 任务作品标题 + + ArtistUUID string `json:"artistUUID"` // 任务艺人UUID + SubNum string `json:"subNum"` // 任务用户编号(必填) + TelNum string `json:"telNum"` // 任务用户手机号(必填) + ArtistName string `json:"artistName"` // 任务艺人名称 + + // 操作信息 + OperationType int `json:"operationType"` // 任务操作类型 1:加任务 2:消耗任务 3:完成任务 4:任务过期(必填) + TaskType int `json:"taskType"` // 任务类型 1:视频 2:图片 3:数据分析(必填) + TaskCount int `json:"taskCount"` // 任务数量(必填) + Remark string `json:"remark"` // 任务备注 + + // 操作人信息 + OperatorName string `json:"operatorName"` // 任务操作人姓名 + OperatorNum string `json:"operatorNum"` // 任务操作人账号 +} diff --git a/internal/logic/taskLogic.go b/internal/logic/taskLogic.go index 2219b53..8310c95 100644 --- a/internal/logic/taskLogic.go +++ b/internal/logic/taskLogic.go @@ -10,7 +10,7 @@ import ( ) // GetValidArtistList 查询套餐状态为有效中的艺人列表 -func GetValidArtistList() ([]dao.ValidArtistInfo, error) { +func GetValidArtistList() ([]dto.ValidArtistInfo, error) { return dao.GetValidArtistList() } @@ -61,17 +61,17 @@ func ValidateEmployee(employeeNum string) (bool, error) { } // GetArtistUploadStatsList 查询艺人上传与额度统计列表 -func GetArtistUploadStatsList(req *dto.TaskQueryRequest) ([]*dao.ArtistUploadStatsItem, int64, error) { +func GetArtistUploadStatsList(req *dto.TaskQueryRequest) ([]*dto.ArtistUploadStatsItem, int64, error) { return dao.GetArtistUploadStatsList(req) } // GetPendingAssignBySubNums 查询指定艺人的可指派数量 -func GetPendingAssignBySubNums(subNums []string, page int, pageSize int) ([]*dao.ArtistPendingAssignItem, int64, error) { +func GetPendingAssignBySubNums(subNums []string, page int, pageSize int) ([]*dto.ArtistPendingAssignItem, int64, error) { return dao.GetPendingAssignBySubNums(subNums, page, pageSize) } // AssignTask 指派某位员工完成某个艺人的任务 -func AssignTask(req *dao.TaskAssignRequest) error { +func AssignTask(req *dto.TaskAssignRequest) error { // 1. 验证员工是否可以被指派任务 isValid, err := ValidateEmployee(req.TaskAssigneeNum) if err != nil { @@ -99,7 +99,7 @@ func AssignTask(req *dao.TaskAssignRequest) error { } // BatchAssignTask 批量指派 -func BatchAssignTask(items []*dao.BatchAssignItem) error { +func BatchAssignTask(items []*dto.BatchAssignItem) error { if len(items) == 0 { return commonErr.ReturnError(nil, "参数错误", "批量指派项不能为空") } @@ -153,7 +153,7 @@ func GetRecentAssignRecords(limit int) ([]*bundle.RecentAssigneeItem, error) { } // GetEmployeeAssignedTasks 根据登录人信息查询被指派给该员工的艺人任务 -func GetEmployeeAssignedTasks(req *dao.EmployeeTaskQueryRequest) ([]*dao.TaskAssignRecordsResponse, int64, error) { +func GetEmployeeAssignedTasks(req *dto.EmployeeTaskQueryRequest) ([]*dto.TaskAssignRecordsResponse, int64, error) { // 1. 调用DAO层查询被指派给该员工的艺人任务 record, total, err := dao.GetEmployeeAssignedTasks(req) if err != nil { @@ -162,9 +162,9 @@ func GetEmployeeAssignedTasks(req *dao.EmployeeTaskQueryRequest) ([]*dao.TaskAss // 如果查询的 status = 2 的话,待发数量就为指派时,指派的数量 if req.Status == 2 { - var recordResponse []*dao.TaskAssignRecordsResponse + var recordResponse []*dto.TaskAssignRecordsResponse for _, record := range record { - recordResponse = append(recordResponse, &dao.TaskAssignRecordsResponse{ + recordResponse = append(recordResponse, &dto.TaskAssignRecordsResponse{ AssignRecordsUUID: record.AssignRecordsUUID, SubNum: record.SubNum, TelNum: record.TelNum, @@ -191,9 +191,9 @@ func GetEmployeeAssignedTasks(req *dao.EmployeeTaskQueryRequest) ([]*dao.TaskAss } // 2. 转换为响应结构体 - var recordResponse []*dao.TaskAssignRecordsResponse + var recordResponse []*dto.TaskAssignRecordsResponse for _, record := range record { - recordResponse = append(recordResponse, &dao.TaskAssignRecordsResponse{ + recordResponse = append(recordResponse, &dto.TaskAssignRecordsResponse{ AssignRecordsUUID: record.AssignRecordsUUID, SubNum: record.SubNum, TelNum: record.TelNum, @@ -295,7 +295,7 @@ func CompleteTaskManually(assignRecordsUUID string, taskAssigneeNum string) erro } // UpdateTaskProgress 员工实际完成任务状态更新 -func UpdateTaskProgress(req *dao.CompleteTaskRequest) error { +func UpdateTaskProgress(req *dto.CompleteTaskRequest) error { if req.UUID == "" { return commonErr.ReturnError(nil, "作品UUID不能为空", "UUID不能为空") } @@ -303,16 +303,16 @@ func UpdateTaskProgress(req *dao.CompleteTaskRequest) error { } // GetTaskAssignRecordsList 多条件查询操作记录表 -func GetTaskAssignRecordsList(req *dao.TaskAssignRecordsQueryRequest) ([]*dao.TaskAssignRecordsResponse, int64, *dao.TaskAssignRecordsSummary, error) { +func GetTaskAssignRecordsList(req *dto.TaskAssignRecordsQueryRequest) ([]*dto.TaskAssignRecordsResponse, int64, *dto.TaskAssignRecordsSummary, error) { record, total, summary, err := dao.GetTaskAssignRecordsList(req) if err != nil { return nil, 0, nil, err } // 2. 转换为响应结构体 - var recordResponse []*dao.TaskAssignRecordsResponse + var recordResponse []*dto.TaskAssignRecordsResponse for _, record := range record { - recordResponse = append(recordResponse, &dao.TaskAssignRecordsResponse{ + recordResponse = append(recordResponse, &dto.TaskAssignRecordsResponse{ AssignRecordsUUID: record.AssignRecordsUUID, SubNum: record.SubNum, TelNum: record.TelNum, @@ -427,7 +427,7 @@ func AddHiddenTaskAssignee(taskAssignee string, taskAssigneeNum string) error { } // CreateTaskWorkLog 创建任务日志记录 -func CreateTaskWorkLog(req *dao.CreateTaskWorkLogRequest) error { +func CreateTaskWorkLog(req *dto.CreateTaskWorkLogRequest) error { if req.OperationType < 1 || req.OperationType > 4 { return commonErr.ReturnError(nil, "参数错误", "操作类型必须在1-4之间") } From c87f1defa9de858e57e816fbf82b1c54f61b16e0 Mon Sep 17 00:00:00 2001 From: cjy Date: Wed, 21 Jan 2026 10:32:38 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E7=A7=BB=E9=99=A4dao=E5=B1=82=E6=B2=A1?= =?UTF-8?q?=E7=94=A8=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/dao/taskDao.go | 55 +---------------------------------------- 1 file changed, 1 insertion(+), 54 deletions(-) diff --git a/internal/dao/taskDao.go b/internal/dao/taskDao.go index 69e2a2a..34c6bfe 100644 --- a/internal/dao/taskDao.go +++ b/internal/dao/taskDao.go @@ -1666,47 +1666,6 @@ func UpdateTaskProgress(req *dto.CompleteTaskRequest) error { return nil } -// GetTaskManagementBySubNum 根据艺人编号查询任务管理记录 -func GetTaskManagementBySubNum(subNum string) (*model.TaskManagement, error) { - var task model.TaskManagement - err := app.ModuleClients.TaskBenchDB.Where("sub_num = ?", subNum).First(&task).Error - if err != nil { - if err == gorm.ErrRecordNotFound { - return nil, nil // 记录不存在 - } - return nil, commonErr.ReturnError(err, "查询任务管理记录失败", "查询任务管理记录失败: ") - } - return &task, nil -} - -// GetTaskBalanceBySubNum 根据艺人编号查询任务余额记录 -func GetTaskBalanceBySubNum(subNum string) (*model.TaskBalance, error) { - var taskBalance model.TaskBalance - now := time.Now() - - // 优先查询当前有效期内的记录 - err := app.ModuleClients.TaskBenchDB.Where("sub_num = ? AND start_at <= ? AND expired_at >= ?", - subNum, now, now).Order("start_at DESC").First(&taskBalance).Error - - if err != nil { - if err == gorm.ErrRecordNotFound { - // 如果没有当前有效的记录,查询最新的记录 - err = app.ModuleClients.TaskBenchDB.Where("sub_num = ?", subNum). - Order("start_at DESC").First(&taskBalance).Error - if err != nil { - if err == gorm.ErrRecordNotFound { - return nil, nil // 记录不存在 - } - return nil, commonErr.ReturnError(err, "查询任务余额记录失败", "查询任务余额记录失败: ") - } - } else { - return nil, commonErr.ReturnError(err, "查询任务余额记录失败", "查询任务余额记录失败: ") - } - } - - return &taskBalance, nil -} - // GetAssignRecordByUUID 根据UUID查询指派记录 func GetAssignRecordByUUID(uuid string) (*model.TaskAssignRecords, error) { var record model.TaskAssignRecords @@ -1923,7 +1882,7 @@ func GetValidArtistList() ([]dto.ValidArtistInfo, error) { return data, nil } -// 新增:根据艺人手机号统计进行中的与已完成任务数量 +// 根据艺人编号统计进行中的与已完成任务数量 func GetArtistTaskStatsBySubNum(SubNum string) (int, int, error) { if SubNum == "" { return 0, 0, nil @@ -1945,18 +1904,6 @@ func GetArtistTaskStatsBySubNum(SubNum string) (int, int, error) { return res.ProgressTaskCount, res.CompleteTaskCount, nil } -// 更新被指派员工为 taskAssigneeNum 的记录中的ProgressCount + 1 和CompleteCount - 1 -func UpdateTaskRecordsByAssigneeNum(taskAssigneeNum string) error { - err := app.ModuleClients.TaskBenchDB.Table("task_management"). - Where("task_assignee_num = ?", taskAssigneeNum). - Update("progress_count", gorm.Expr("progress_count + ?", 1)). - Update("complete_count", gorm.Expr("complete_count - ?", 1)).Error - if err != nil { - return commonErr.ReturnError(err, "更新员工任务进度失败", "更新员工任务进度失败: ") - } - return nil -} - // CreateTaskWorkLog 创建任务日志记录 func CreateTaskWorkLog(req *dto.CreateTaskWorkLogRequest) error { // 参数校验