Updata:增加启动自动手动确认定时任务
This commit is contained in:
parent
5a41de85dd
commit
46b8e1862d
@ -10,10 +10,11 @@ import (
|
|||||||
"fonchain-fiee/pkg/cache"
|
"fonchain-fiee/pkg/cache"
|
||||||
bundleModel "fonchain-fiee/pkg/model/bundle"
|
bundleModel "fonchain-fiee/pkg/model/bundle"
|
||||||
modelCast "fonchain-fiee/pkg/model/cast"
|
modelCast "fonchain-fiee/pkg/model/cast"
|
||||||
"fonchain-fiee/pkg/model/login"
|
|
||||||
"fonchain-fiee/pkg/service"
|
"fonchain-fiee/pkg/service"
|
||||||
serverCast "fonchain-fiee/pkg/service/cast"
|
serverCast "fonchain-fiee/pkg/service/cast"
|
||||||
"log"
|
"log"
|
||||||
|
"math/rand"
|
||||||
|
"strconv"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/go-redis/redis"
|
"github.com/go-redis/redis"
|
||||||
@ -34,6 +35,9 @@ func InitTasks() error {
|
|||||||
// 启动队列消费者
|
// 启动队列消费者
|
||||||
go WorkPublishQueueConsumer()
|
go WorkPublishQueueConsumer()
|
||||||
|
|
||||||
|
// 启动随机间隔的自动确认任务
|
||||||
|
go AutoManuallyConfirmWorkTaskWithRandomInterval()
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -53,6 +57,23 @@ func RefreshWorkApprovalStatusTask() {
|
|||||||
serverCast.RefreshWorkApproval(nil, resp.Data)
|
serverCast.RefreshWorkApproval(nil, resp.Data)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// AutoManuallyConfirmWorkTaskWithRandomInterval 以随机间隔(3-7分钟)执行自动确认任务
|
||||||
|
func AutoManuallyConfirmWorkTaskWithRandomInterval() {
|
||||||
|
// 初始化随机数种子
|
||||||
|
rand.Seed(time.Now().UnixNano())
|
||||||
|
|
||||||
|
for {
|
||||||
|
// 执行任务
|
||||||
|
AutoManuallyConfirmWorkTask()
|
||||||
|
|
||||||
|
// 生成3-7分钟之间的随机间隔(单位:分钟)
|
||||||
|
randomMinutes := rand.Intn(5) + 3 // 3-7分钟
|
||||||
|
randomDuration := time.Duration(randomMinutes) * time.Minute
|
||||||
|
|
||||||
|
// 等待随机时间
|
||||||
|
time.Sleep(randomDuration)
|
||||||
|
}
|
||||||
|
}
|
||||||
func AutoManuallyConfirmWorkTask() {
|
func AutoManuallyConfirmWorkTask() {
|
||||||
var req bundle.GetWaitConfirmWorkListReq
|
var req bundle.GetWaitConfirmWorkListReq
|
||||||
res, err := service.BundleProvider.GetWaitConfirmWorkList(context.Background(), &req)
|
res, err := service.BundleProvider.GetWaitConfirmWorkList(context.Background(), &req)
|
||||||
@ -67,8 +88,13 @@ func AutoManuallyConfirmWorkTask() {
|
|||||||
var req bundleModel.UserWorkConfirmReq
|
var req bundleModel.UserWorkConfirmReq
|
||||||
req.WorkUuid = work.WorkUuid
|
req.WorkUuid = work.WorkUuid
|
||||||
req.ConfirmStatus = 1
|
req.ConfirmStatus = 1
|
||||||
|
artistId, err := strconv.ParseInt(work.ArtistUuid, 10, 64)
|
||||||
|
if err != nil {
|
||||||
|
zap.L().Error("解析艺术家ID失败", zap.Error(err))
|
||||||
|
return
|
||||||
|
}
|
||||||
if req.ConfirmStatus == 2 { // 驳回完直接结束
|
if req.ConfirmStatus == 2 { // 驳回完直接结束
|
||||||
res, err := service.CastProvider.UpdateStatus(context.Background(), &cast.UpdateStatusReq{
|
_, err := service.CastProvider.UpdateStatus(context.Background(), &cast.UpdateStatusReq{
|
||||||
WorkAction: cast.WorkActionENUM_CONFIRM,
|
WorkAction: cast.WorkActionENUM_CONFIRM,
|
||||||
WorkUuid: req.WorkUuid,
|
WorkUuid: req.WorkUuid,
|
||||||
ConfirmRemark: req.ConfirmRemark,
|
ConfirmRemark: req.ConfirmRemark,
|
||||||
@ -80,49 +106,61 @@ func AutoManuallyConfirmWorkTask() {
|
|||||||
}
|
}
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
userInfo := login.GetUserInfoFromC(context.Background())
|
|
||||||
balanceInfoRes, err := service.BundleProvider.GetBundleBalanceByUserId(context.Background(), &bundle.GetBundleBalanceByUserIdReq{
|
balanceInfoRes, err := service.BundleProvider.GetBundleBalanceByUserId(context.Background(), &bundle.GetBundleBalanceByUserIdReq{
|
||||||
UserId: int32(userInfo.ID),
|
UserId: int32(artistId),
|
||||||
})
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
wordInfoRes, err := service.CastProvider.WorkDetail(c, &cast.WorkDetailReq{
|
wordInfoRes, err := service.CastProvider.WorkDetail(context.Background(), &cast.WorkDetailReq{
|
||||||
WorkUuid: req.WorkUuid,
|
WorkUuid: req.WorkUuid,
|
||||||
})
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return
|
continue
|
||||||
}
|
}
|
||||||
if wordInfoRes.WorkStatus != 4 {
|
if wordInfoRes.WorkStatus != 4 {
|
||||||
return
|
continue
|
||||||
}
|
}
|
||||||
var workCategory = wordInfoRes.WorkCategory
|
var workCategory = wordInfoRes.WorkCategory
|
||||||
|
|
||||||
var addBalanceReq bundle.AddBundleBalanceReq
|
var addBalanceReq bundle.AddBundleBalanceReq
|
||||||
addBalanceReq.UserId = int32(userInfo.ID)
|
addBalanceReq.UserId = int32(artistId)
|
||||||
switch workCategory {
|
switch workCategory {
|
||||||
case 1:
|
case 1:
|
||||||
{
|
{
|
||||||
if balanceInfoRes.ImageConsumptionNumber >= balanceInfoRes.ImageNumber { // 图文余量不足
|
if balanceInfoRes.ImageConsumptionNumber >= balanceInfoRes.ImageNumber { // 图文余量不足
|
||||||
return
|
_, err = service.CastProvider.UpdateStatus(context.Background(), &cast.UpdateStatusReq{
|
||||||
|
WorkAction: cast.WorkActionENUM_CONFIRM,
|
||||||
|
WorkUuid: req.WorkUuid,
|
||||||
|
ConfirmRemark: req.ConfirmRemark,
|
||||||
|
ConfirmStatus: 3,
|
||||||
|
})
|
||||||
|
continue
|
||||||
}
|
}
|
||||||
addBalanceReq.ImageConsumptionNumber = 1
|
addBalanceReq.ImageConsumptionNumber = 1
|
||||||
}
|
}
|
||||||
case 2:
|
case 2:
|
||||||
{
|
{
|
||||||
if balanceInfoRes.VideoConsumptionNumber >= balanceInfoRes.VideoNumber { // 视频余量不足
|
if balanceInfoRes.VideoConsumptionNumber >= balanceInfoRes.VideoNumber { // 视频余量不足
|
||||||
return
|
_, err = service.CastProvider.UpdateStatus(context.Background(), &cast.UpdateStatusReq{
|
||||||
|
WorkAction: cast.WorkActionENUM_CONFIRM,
|
||||||
|
WorkUuid: req.WorkUuid,
|
||||||
|
ConfirmRemark: req.ConfirmRemark,
|
||||||
|
ConfirmStatus: 3,
|
||||||
|
})
|
||||||
|
continue
|
||||||
}
|
}
|
||||||
addBalanceReq.VideoConsumptionNumber = 1
|
addBalanceReq.VideoConsumptionNumber = 1
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
return
|
continue
|
||||||
}
|
}
|
||||||
resp, err := service.BundleProvider.AddBundleBalance(context.Background(), &addBalanceReq)
|
resp, err := service.BundleProvider.AddBundleBalance(context.Background(), &addBalanceReq)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
zap.L().Error("扣除余额失败", zap.Error(err))
|
zap.L().Error("扣除余额失败,作品uuid:"+req.WorkUuid, zap.Error(err))
|
||||||
return
|
continue
|
||||||
}
|
}
|
||||||
_, err = service.CastProvider.UpdateStatus(context.Background(), &cast.UpdateStatusReq{
|
_, err = service.CastProvider.UpdateStatus(context.Background(), &cast.UpdateStatusReq{
|
||||||
WorkAction: cast.WorkActionENUM_CONFIRM,
|
WorkAction: cast.WorkActionENUM_CONFIRM,
|
||||||
@ -132,7 +170,7 @@ func AutoManuallyConfirmWorkTask() {
|
|||||||
ConfirmStatus: 1,
|
ConfirmStatus: 1,
|
||||||
})
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
zap.L().Error("更新作品状态失败", zap.Error(err))
|
zap.L().Error("更新作品状态失败,作品uuid:"+req.WorkUuid, zap.Error(err))
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user