2025-09-03 07:52:30 +00:00
|
|
|
package taskbench
|
|
|
|
|
|
|
|
import (
|
|
|
|
"context"
|
|
|
|
"fmt"
|
|
|
|
"fonchain-fiee/api/accountFiee"
|
|
|
|
"fonchain-fiee/api/bundle"
|
|
|
|
"fonchain-fiee/api/cast"
|
|
|
|
"fonchain-fiee/cmd/config"
|
|
|
|
modelCast "fonchain-fiee/pkg/model/cast"
|
2025-09-03 09:58:33 +00:00
|
|
|
"fonchain-fiee/pkg/model/login"
|
2025-09-03 07:52:30 +00:00
|
|
|
"fonchain-fiee/pkg/service"
|
|
|
|
castService "fonchain-fiee/pkg/service/cast"
|
|
|
|
"strconv"
|
|
|
|
|
|
|
|
"github.com/gin-gonic/gin"
|
|
|
|
"go.uber.org/zap"
|
|
|
|
)
|
|
|
|
|
|
|
|
// GetPendingTaskList 查询待指派任务记录
|
|
|
|
func GetPendingTaskList(c *gin.Context) {
|
|
|
|
var req bundle.TaskQueryRequest
|
|
|
|
if err := c.ShouldBindJSON(&req); err != nil {
|
|
|
|
service.Error(c, err)
|
|
|
|
return
|
|
|
|
}
|
|
|
|
|
|
|
|
res, err := service.BundleProvider.GetPendingTaskList(context.Background(), &req)
|
|
|
|
if err != nil {
|
|
|
|
service.Error(c, err)
|
|
|
|
return
|
|
|
|
}
|
|
|
|
|
|
|
|
service.Success(c, res)
|
|
|
|
}
|
|
|
|
|
|
|
|
// AssignTask 指派某位员工完成某个艺人的任务
|
|
|
|
func AssignTask(c *gin.Context) {
|
|
|
|
var req bundle.TaskAssignRequest
|
2025-09-03 09:58:33 +00:00
|
|
|
userInfo := login.GetUserInfoFromC(c)
|
|
|
|
req.OperatorNum = userInfo.TelNum
|
|
|
|
req.Operator = userInfo.Name
|
2025-09-03 07:52:30 +00:00
|
|
|
if err := c.ShouldBindJSON(&req); err != nil {
|
|
|
|
service.Error(c, err)
|
|
|
|
return
|
|
|
|
}
|
|
|
|
|
|
|
|
res, err := service.BundleProvider.AssignTask(context.Background(), &req)
|
|
|
|
if err != nil {
|
|
|
|
service.Error(c, err)
|
|
|
|
return
|
|
|
|
}
|
|
|
|
|
|
|
|
service.Success(c, res)
|
|
|
|
}
|
|
|
|
|
|
|
|
// UpdatePendingCount 修改待发数量
|
|
|
|
func UpdatePendingCount(c *gin.Context) {
|
|
|
|
var req bundle.UpdatePendingCountRequest
|
|
|
|
if err := c.ShouldBindJSON(&req); err != nil {
|
|
|
|
service.Error(c, err)
|
|
|
|
return
|
|
|
|
}
|
|
|
|
|
|
|
|
res, err := service.BundleProvider.UpdatePendingCount(context.Background(), &req)
|
|
|
|
if err != nil {
|
|
|
|
service.Error(c, err)
|
|
|
|
return
|
|
|
|
}
|
|
|
|
|
|
|
|
service.Success(c, res)
|
|
|
|
}
|
|
|
|
|
|
|
|
// GetRecentAssignRecords 查询最近被指派记录
|
|
|
|
func GetRecentAssignRecords(c *gin.Context) {
|
|
|
|
var req bundle.RecentAssignRecordsRequest
|
|
|
|
if err := c.ShouldBindJSON(&req); err != nil {
|
|
|
|
service.Error(c, err)
|
|
|
|
return
|
|
|
|
}
|
|
|
|
|
|
|
|
res, err := service.BundleProvider.GetRecentAssignRecords(context.Background(), &req)
|
|
|
|
if err != nil {
|
|
|
|
service.Error(c, err)
|
|
|
|
return
|
|
|
|
}
|
|
|
|
|
|
|
|
service.Success(c, res)
|
|
|
|
}
|
|
|
|
|
|
|
|
// GetEmployeeAssignedTasks 根据登录人信息查询被指派给该员工的任务
|
|
|
|
func GetEmployeeAssignedTasks(c *gin.Context) {
|
|
|
|
var req bundle.EmployeeTaskQueryRequest
|
2025-09-04 10:33:54 +00:00
|
|
|
userInfo := login.GetUserInfoFromC(c)
|
|
|
|
req.TaskAssigneeNum = userInfo.TelNum
|
2025-09-03 07:52:30 +00:00
|
|
|
if err := c.ShouldBindJSON(&req); err != nil {
|
|
|
|
service.Error(c, err)
|
|
|
|
return
|
|
|
|
}
|
|
|
|
|
|
|
|
res, err := service.BundleProvider.GetEmployeeAssignedTasks(context.Background(), &req)
|
|
|
|
if err != nil {
|
|
|
|
service.Error(c, err)
|
|
|
|
return
|
|
|
|
}
|
|
|
|
|
|
|
|
service.Success(c, res)
|
|
|
|
}
|
|
|
|
|
|
|
|
// CompleteTaskManually 员工手动点击完成任务
|
|
|
|
func CompleteTaskManually(c *gin.Context) {
|
|
|
|
var req bundle.CompleteTaskManuallyRequest
|
2025-09-03 09:58:33 +00:00
|
|
|
userInfo := login.GetUserInfoFromC(c)
|
|
|
|
req.TaskAssigneeNum = userInfo.TelNum
|
2025-09-03 07:52:30 +00:00
|
|
|
if err := c.ShouldBindJSON(&req); err != nil {
|
|
|
|
service.Error(c, err)
|
|
|
|
return
|
|
|
|
}
|
|
|
|
|
|
|
|
res, err := service.BundleProvider.CompleteTaskManually(context.Background(), &req)
|
|
|
|
if err != nil {
|
|
|
|
service.Error(c, err)
|
|
|
|
return
|
|
|
|
}
|
|
|
|
|
|
|
|
service.Success(c, res)
|
|
|
|
}
|
|
|
|
|
|
|
|
// UpdateTaskProgress 员工实际完成任务状态更新
|
|
|
|
func UpdateTaskProgress(c *gin.Context) {
|
|
|
|
var req bundle.UpdateTaskProgressRequest
|
|
|
|
if err := c.ShouldBindJSON(&req); err != nil {
|
|
|
|
service.Error(c, err)
|
|
|
|
return
|
|
|
|
}
|
|
|
|
|
|
|
|
res, err := service.BundleProvider.UpdateTaskProgress(context.Background(), &req)
|
|
|
|
if err != nil {
|
|
|
|
service.Error(c, err)
|
|
|
|
return
|
|
|
|
}
|
|
|
|
|
|
|
|
service.Success(c, res)
|
|
|
|
}
|
|
|
|
|
|
|
|
// GetTaskAssignRecordsList 多条件查询操作记录表
|
|
|
|
func GetTaskAssignRecordsList(c *gin.Context) {
|
|
|
|
var req bundle.TaskAssignRecordsQueryRequest
|
|
|
|
if err := c.ShouldBindJSON(&req); err != nil {
|
|
|
|
service.Error(c, err)
|
|
|
|
return
|
|
|
|
}
|
|
|
|
|
|
|
|
// 添加空指针检查
|
|
|
|
if service.BundleProvider == nil {
|
|
|
|
service.Error(c, fmt.Errorf("BundleProvider is not initialized"))
|
|
|
|
return
|
|
|
|
}
|
|
|
|
|
|
|
|
res, err := service.BundleProvider.GetTaskAssignRecordsList(context.Background(), &req)
|
|
|
|
if err != nil {
|
|
|
|
service.Error(c, err)
|
|
|
|
return
|
|
|
|
}
|
|
|
|
|
|
|
|
service.Success(c, res)
|
|
|
|
}
|
|
|
|
|
|
|
|
type UpdateWorkVideoWithUUIDReq struct {
|
|
|
|
*cast.UpdateWorkVideoReq
|
|
|
|
AssignRecordsUUID string `json:"assignRecordsUUID"`
|
|
|
|
}
|
|
|
|
|
|
|
|
type UpdateWorkImageWithTaskUUIDReq struct {
|
|
|
|
*cast.UpdateWorkImageReq
|
|
|
|
AssignRecordsUUID string `json:"assignRecordsUUID"`
|
|
|
|
}
|
|
|
|
|
|
|
|
func UpdateWorkImageWithTaskUUID(ctx *gin.Context) {
|
|
|
|
var req UpdateWorkImageWithTaskUUIDReq
|
|
|
|
var infoResp *accountFiee.UserInfoResponse
|
|
|
|
var err error
|
|
|
|
if err = ctx.ShouldBind(&req); err != nil {
|
|
|
|
service.Error(ctx, err)
|
|
|
|
return
|
|
|
|
}
|
|
|
|
if config.AppConfig.System.AppMode != "dev" {
|
|
|
|
artistId, _ := strconv.ParseUint(req.ArtistUuid, 10, 64)
|
|
|
|
infoResp, err = service.AccountFieeProvider.Info(context.Background(), &accountFiee.InfoRequest{
|
|
|
|
ID: artistId,
|
|
|
|
Domain: "app",
|
|
|
|
})
|
|
|
|
if err != nil {
|
|
|
|
service.Error(ctx, err)
|
|
|
|
return
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
infoResp = &accountFiee.UserInfoResponse{
|
|
|
|
Name: "小波",
|
|
|
|
TelNum: "18288888888",
|
|
|
|
TelAreaCode: "86",
|
|
|
|
}
|
|
|
|
}
|
|
|
|
req.ArtistName = infoResp.Name
|
|
|
|
req.ArtistPhone = infoResp.TelNum
|
|
|
|
req.ArtistPhoneAreaCode = infoResp.TelAreaCode
|
|
|
|
artistID, _ := strconv.ParseUint(req.ArtistUuid, 10, 64)
|
|
|
|
if err = castService.CheckUserBundleBalance(int32(artistID), modelCast.BalanceTypeImageValue); err != nil {
|
|
|
|
service.Error(ctx, err)
|
|
|
|
return
|
|
|
|
}
|
|
|
|
newCtx := castService.NewCtxWithUserInfo(ctx)
|
|
|
|
req.Source = 1
|
|
|
|
resp, err := service.CastProvider.UpdateWorkImage(newCtx, req.UpdateWorkImageReq)
|
|
|
|
if err != nil {
|
|
|
|
service.Error(ctx, err)
|
|
|
|
return
|
|
|
|
}
|
|
|
|
// 调用员工实际任务状态更新
|
|
|
|
resp1, err := service.BundleProvider.UpdateTaskProgress(context.Background(), &bundle.UpdateTaskProgressRequest{
|
|
|
|
AssignRecordsUUID: req.AssignRecordsUUID,
|
|
|
|
EmployeeName: infoResp.Name,
|
|
|
|
EmployeeNum: infoResp.TelNum, // 需要根据实际业务逻辑填充员工工号
|
|
|
|
TaskType: "post",
|
|
|
|
CompleteCount: 1,
|
|
|
|
})
|
|
|
|
if err != nil {
|
|
|
|
service.Error(ctx, err)
|
|
|
|
return
|
|
|
|
}
|
|
|
|
zap.L().Info("UpdateTaskProgress", zap.Any("resp", resp1))
|
|
|
|
service.Success(ctx, resp)
|
|
|
|
return
|
|
|
|
}
|
|
|
|
|
|
|
|
func UpdateWorkVideoWithUUID(ctx *gin.Context) {
|
|
|
|
var req UpdateWorkVideoWithUUIDReq
|
|
|
|
var infoResp *accountFiee.UserInfoResponse
|
|
|
|
var err error
|
|
|
|
if err = ctx.ShouldBind(&req); err != nil {
|
|
|
|
service.Error(ctx, err)
|
|
|
|
return
|
|
|
|
}
|
|
|
|
if config.AppConfig.System.AppMode != "dev" {
|
|
|
|
artistId, _ := strconv.ParseUint(req.ArtistUuid, 10, 64)
|
|
|
|
infoResp, err = service.AccountFieeProvider.Info(context.Background(), &accountFiee.InfoRequest{
|
|
|
|
ID: artistId,
|
|
|
|
Domain: "app",
|
|
|
|
})
|
|
|
|
if err != nil {
|
|
|
|
service.Error(ctx, err)
|
|
|
|
return
|
|
|
|
}
|
|
|
|
} else {
|
|
|
|
infoResp = &accountFiee.UserInfoResponse{
|
|
|
|
Name: "小波",
|
|
|
|
TelNum: "18288888888",
|
|
|
|
TelAreaCode: "86",
|
|
|
|
}
|
|
|
|
}
|
|
|
|
artistID, _ := strconv.ParseUint(req.ArtistUuid, 10, 64)
|
|
|
|
if err = castService.CheckUserBundleBalance(int32(artistID), modelCast.BalanceTypeVideoValue); err != nil {
|
|
|
|
service.Error(ctx, err)
|
|
|
|
return
|
|
|
|
}
|
|
|
|
req.ArtistName = infoResp.Name
|
|
|
|
req.ArtistPhone = infoResp.TelNum
|
|
|
|
req.ArtistPhoneAreaCode = infoResp.TelAreaCode
|
|
|
|
newCtx := castService.NewCtxWithUserInfo(ctx)
|
|
|
|
req.Source = 1
|
|
|
|
resp, err := service.CastProvider.UpdateWorkVideo(newCtx, req.UpdateWorkVideoReq)
|
|
|
|
if err != nil {
|
|
|
|
service.Error(ctx, err)
|
|
|
|
return
|
|
|
|
}
|
|
|
|
// 调用员工实际任务状态更新
|
|
|
|
resp1, err := service.BundleProvider.UpdateTaskProgress(context.Background(), &bundle.UpdateTaskProgressRequest{
|
|
|
|
AssignRecordsUUID: req.AssignRecordsUUID,
|
|
|
|
EmployeeName: infoResp.Name,
|
|
|
|
EmployeeNum: infoResp.TelNum, // 需要根据实际业务逻辑填充员工工号
|
|
|
|
TaskType: "video",
|
|
|
|
CompleteCount: 1,
|
|
|
|
})
|
|
|
|
if err != nil {
|
|
|
|
service.Error(ctx, err)
|
|
|
|
return
|
|
|
|
}
|
|
|
|
zap.L().Info("UpdateTaskProgress", zap.Any("resp", resp1))
|
|
|
|
service.Success(ctx, resp)
|
|
|
|
return
|
|
|
|
}
|
|
|
|
|
|
|
|
// GetArtistBundleBalance 查询艺人套餐剩余数量
|
|
|
|
func GetArtistBundleBalance(c *gin.Context) {
|
|
|
|
var req bundle.ArtistBundleBalanceRequest
|
|
|
|
if err := c.ShouldBindJSON(&req); err != nil {
|
|
|
|
service.Error(c, err)
|
|
|
|
return
|
|
|
|
}
|
|
|
|
|
|
|
|
res, err := service.BundleProvider.GetArtistBundleBalance(context.Background(), &req)
|
|
|
|
if err != nil {
|
|
|
|
service.Error(c, err)
|
|
|
|
return
|
|
|
|
}
|
|
|
|
|
|
|
|
service.Success(c, res)
|
|
|
|
}
|