fonchain-fiee/pkg/service/cast/work.go

212 lines
4.9 KiB
Go
Raw Normal View History

2025-05-29 06:28:00 +00:00
package cast
import (
2025-06-11 01:16:11 +00:00
"context"
2025-06-15 12:46:05 +00:00
"errors"
2025-06-16 03:52:30 +00:00
"fmt"
2025-06-11 01:16:11 +00:00
"fonchain-fiee/api/accountFiee"
2025-06-15 12:46:05 +00:00
"fonchain-fiee/api/bundle"
2025-05-29 06:28:00 +00:00
"fonchain-fiee/api/cast"
2025-06-11 01:16:11 +00:00
"fonchain-fiee/cmd/config"
2025-06-15 12:46:05 +00:00
"fonchain-fiee/pkg/e"
2025-05-29 06:28:00 +00:00
"fonchain-fiee/pkg/service"
"github.com/gin-gonic/gin"
2025-06-16 03:37:05 +00:00
"go.uber.org/zap"
2025-06-11 01:16:11 +00:00
"strconv"
2025-05-29 06:28:00 +00:00
)
2025-06-11 01:16:11 +00:00
func UpdateWorkImage(ctx *gin.Context) {
var req *cast.UpdateWorkImageReq
var infoResp *accountFiee.UserInfoResponse
var err error
if err = ctx.ShouldBind(&req); err != nil {
2025-05-29 06:28:00 +00:00
service.Error(ctx, err)
return
}
2025-06-11 01:16:11 +00:00
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",
}
}
2025-06-11 08:11:16 +00:00
req.ArtistName = infoResp.Name
2025-06-11 01:16:11 +00:00
req.ArtistPhone = infoResp.TelNum
2025-06-15 12:46:05 +00:00
artistID, _ := strconv.ParseUint(req.ArtistUuid, 10, 64)
if err = CheckUserBundleBalance(int32(artistID)); err != nil {
service.Error(ctx, err)
return
}
2025-06-14 16:33:25 +00:00
newCtx := NewCtxWithUserInfo(ctx)
resp, err := service.CastProvider.UpdateWorkImage(newCtx, req)
2025-06-11 01:16:11 +00:00
if err != nil {
service.Error(ctx, err)
return
}
service.Success(ctx, resp)
return
}
func UpdateWorkVideo(ctx *gin.Context) {
var req *cast.UpdateWorkVideoReq
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",
}
}
2025-06-15 12:46:05 +00:00
artistID, _ := strconv.ParseUint(req.ArtistUuid, 10, 64)
if err = CheckUserBundleBalance(int32(artistID)); err != nil {
service.Error(ctx, err)
return
}
2025-06-11 08:11:16 +00:00
req.ArtistName = infoResp.Name
2025-06-11 01:16:11 +00:00
req.ArtistPhone = infoResp.TelNum
2025-06-14 16:33:25 +00:00
newCtx := NewCtxWithUserInfo(ctx)
resp, err := service.CastProvider.UpdateWorkVideo(newCtx, req)
2025-05-29 06:28:00 +00:00
if err != nil {
service.Error(ctx, err)
return
}
service.Success(ctx, resp)
return
}
2025-06-11 08:11:16 +00:00
2025-06-12 07:20:11 +00:00
func UpdateApproval(ctx *gin.Context) {
2025-06-13 11:00:38 +00:00
var req *cast.UpdateStatusReq
2025-06-12 07:20:11 +00:00
var err error
if err = ctx.ShouldBind(&req); err != nil {
service.Error(ctx, err)
return
}
2025-06-13 11:00:38 +00:00
req.WorkAction = cast.WorkActionENUM_APPROVAL
2025-06-14 16:33:25 +00:00
newCtx := NewCtxWithUserInfo(ctx)
//FIXME
reqNew := &cast.UpdateStatusReq{
WorkAction: cast.WorkActionENUM_CONFIRM,
WorkUuid: req.WorkUuid,
ConfirmStatus: 1,
}
resp, err := service.CastProvider.UpdateStatus(newCtx, reqNew)
2025-06-12 07:20:11 +00:00
if err != nil {
service.Error(ctx, err)
return
}
service.Success(ctx, resp)
return
}
2025-06-11 08:11:16 +00:00
func WorkList(ctx *gin.Context) {
var (
req *cast.WorkListReq
resp *cast.WorkListResp
)
var err error
if err = ctx.ShouldBind(&req); err != nil {
service.Error(ctx, err)
return
}
2025-06-14 16:33:25 +00:00
newCtx := NewCtxWithUserInfo(ctx)
resp, err = service.CastProvider.WorkList(newCtx, req)
2025-06-11 08:11:16 +00:00
if err != nil {
service.Error(ctx, err)
return
}
service.Success(ctx, resp)
return
}
2025-06-12 03:38:19 +00:00
func WorkDetail(ctx *gin.Context) {
var (
req *cast.WorkDetailReq
resp *cast.WorkDetailResp
)
var err error
if err = ctx.ShouldBind(&req); err != nil {
service.Error(ctx, err)
return
}
2025-06-14 16:33:25 +00:00
newCtx := NewCtxWithUserInfo(ctx)
resp, err = service.CastProvider.WorkDetail(newCtx, req)
2025-06-12 03:38:19 +00:00
if err != nil {
service.Error(ctx, err)
return
}
service.Success(ctx, resp)
return
}
2025-06-15 12:46:05 +00:00
func CheckUserBundleBalance(userID int32) (err error) {
resp, err := service.BundleProvider.GetBundleBalanceByUserId(context.Background(), &bundle.GetBundleBalanceByUserIdReq{UserId: userID})
if err != nil {
return
}
2025-06-16 03:37:05 +00:00
zap.L().Info("CheckUserBundleBalance", zap.Any("resp", resp))
2025-06-16 03:52:30 +00:00
fmt.Println("CheckUserBundleBalance resp", resp)
2025-06-15 12:46:05 +00:00
if resp.AccountNumber-resp.AccountConsumptionNumber <= 0 {
2025-06-16 03:37:05 +00:00
err = errors.New(e.ErrorBalanceInsufficient)
2025-06-15 12:46:05 +00:00
return
}
return
}
2025-06-19 03:04:37 +00:00
func RePublish(ctx *gin.Context) {
var (
req *cast.RePublishReq
resp *cast.RePublishResp
)
var err error
if err = ctx.ShouldBind(&req); err != nil {
service.Error(ctx, err)
return
}
newCtx := NewCtxWithUserInfo(ctx)
resp, err = service.CastProvider.RePublish(newCtx, req)
if err != nil {
service.Error(ctx, err)
return
}
artistID, _ := strconv.ParseUint(resp.ArtistUuid, 10, 64)
_, err = service.BundleProvider.AddBundleBalance(context.Background(), &bundle.AddBundleBalanceReq{
UserId: int32(artistID),
AccountConsumptionNumber: -1,
})
if err != nil {
service.Error(ctx, err)
//FIXME 进行回滚
return
}
service.Success(ctx, nil)
return
}
//修改余量我还需要调用吗
2025-06-15 12:46:05 +00:00
func UserBundleBalanceCost() {
service.BundleProvider.AddBundleBalance(context.Background(), &bundle.AddBundleBalanceReq{})
}