Compare commits

..

No commits in common. "953eb4b41964e786e5b29e703b6c77479584721a" and "b4c90f4d18f478fb2714025bef17f10ad9e4de9e" have entirely different histories.

3 changed files with 35 additions and 85 deletions

View File

@ -1,10 +0,0 @@
package cast
type BalanceTypeEnum int32
// 定义枚举值
const (
BalanceTypeAccountValue BalanceTypeEnum = 1
BalanceTypeImageValue BalanceTypeEnum = 2
BalanceTypeVideoValue BalanceTypeEnum = 3
)

View File

@ -8,7 +8,6 @@ import (
"fonchain-fiee/api/cast"
"fonchain-fiee/cmd/config"
"fonchain-fiee/pkg/e"
modelCast "fonchain-fiee/pkg/model/cast"
"fonchain-fiee/pkg/service"
"github.com/gin-gonic/gin"
"strconv"
@ -123,36 +122,23 @@ func UpdateMediaAccount(ctx *gin.Context) {
service.Error(ctx, errors.New(e.GetMsg(e.InvalidParams)))
return
}
userID, _ := strconv.ParseInt(req.ArtistUuid, 10, 64)
resp, err := service.CastProvider.UpdateMediaAccount(ctx, req)
if err != nil {
service.Error(ctx, err)
return
}
if req.MediaAccountUuid == "" {
if err = CheckUserBundleBalance(int32(userID), modelCast.BalanceTypeAccountValue); err != nil {
service.Error(ctx, err)
return
}
userID, _ := strconv.ParseInt(req.ArtistUuid, 10, 64)
_, err = service.BundleProvider.AddBundleBalance(context.Background(), &bundle.AddBundleBalanceReq{
UserId: int32(userID),
AccountConsumptionNumber: 1,
})
if err != nil {
service.Error(ctx, err)
//FIXME 进行回滚
return
}
}
resp, err := service.CastProvider.UpdateMediaAccount(ctx, req)
if err != nil {
service.Error(ctx, err)
if req.MediaAccountUuid == "" {
_, err = service.BundleProvider.AddBundleBalance(context.Background(), &bundle.AddBundleBalanceReq{
UserId: int32(userID),
AccountConsumptionNumber: -1,
})
if err != nil {
service.Error(ctx, err)
return
}
}
return
}
service.Success(ctx, resp)
return
}

View File

@ -9,7 +9,6 @@ import (
"fonchain-fiee/api/cast"
"fonchain-fiee/cmd/config"
"fonchain-fiee/pkg/e"
modelCast "fonchain-fiee/pkg/model/cast"
"fonchain-fiee/pkg/service"
"github.com/gin-gonic/gin"
"go.uber.org/zap"
@ -43,7 +42,7 @@ func UpdateWorkImage(ctx *gin.Context) {
req.ArtistName = infoResp.Name
req.ArtistPhone = infoResp.TelNum
artistID, _ := strconv.ParseUint(req.ArtistUuid, 10, 64)
if err = CheckUserBundleBalance(int32(artistID), modelCast.BalanceTypeImageValue); err != nil {
if err = CheckUserBundleBalance(int32(artistID)); err != nil {
service.Error(ctx, err)
return
}
@ -82,7 +81,7 @@ func UpdateWorkVideo(ctx *gin.Context) {
}
}
artistID, _ := strconv.ParseUint(req.ArtistUuid, 10, 64)
if err = CheckUserBundleBalance(int32(artistID), modelCast.BalanceTypeVideoValue); err != nil {
if err = CheckUserBundleBalance(int32(artistID)); err != nil {
service.Error(ctx, err)
return
}
@ -132,18 +131,38 @@ func WorkList(ctx *gin.Context) {
service.Error(ctx, err)
return
}
var castS = new(CastService)
if len(resp.Data) > 0 {
var approvalIDs []int
var data map[int]int
var workUuidApprovalIDMap = make(map[int]string)
for _, v := range resp.Data {
if v.WorkStatus == 2 && v.ApprovalID != "" {
approvalID, _ := strconv.ParseUint(v.ApprovalID, 10, 64)
approvalIDs = append(approvalIDs, int(approvalID))
workUuidApprovalIDMap[int(approvalID)] = v.WorkUuid
}
}
if len(workUuidApprovalIDMap) > 0 {
_ = RefreshWorkApprovalStatus(workUuidApprovalIDMap)
if len(approvalIDs) > 0 {
data, err = castS.ApprovalDetail(approvalIDs)
if len(data) > 0 {
for approvalId, approvalStatus := range data {
var workAction cast.WorkActionENUM
if approvalStatus == 2 {
workAction = cast.WorkActionENUM_APPROVAL_PASS
} else {
workAction = cast.WorkActionENUM_APPROVAL_REJECT
}
_, _ = service.CastProvider.UpdateStatus(context.Background(), &cast.UpdateStatusReq{
WorkAction: workAction,
WorkUuid: workUuidApprovalIDMap[approvalId],
ApprovalID: fmt.Sprint(approvalId),
})
}
}
}
}
service.Success(ctx, resp)
return
}
@ -168,29 +187,16 @@ func WorkDetail(ctx *gin.Context) {
return
}
func CheckUserBundleBalance(userID int32, balanceType modelCast.BalanceTypeEnum) (err error) {
func CheckUserBundleBalance(userID int32) (err error) {
resp, err := service.BundleProvider.GetBundleBalanceByUserId(context.Background(), &bundle.GetBundleBalanceByUserIdReq{UserId: userID})
if err != nil {
return
}
zap.L().Info("CheckUserBundleBalance", zap.Any("resp", resp))
fmt.Println("CheckUserBundleBalance resp", resp)
switch balanceType {
case modelCast.BalanceTypeAccountValue:
if resp.AccountNumber-resp.AccountConsumptionNumber <= 0 {
err = errors.New(e.ErrorBalanceInsufficient)
return
}
case modelCast.BalanceTypeImageValue:
if resp.ImageNumber-resp.ImageConsumptionNumber <= 0 {
err = errors.New(e.ErrorBalanceInsufficient)
return
}
case modelCast.BalanceTypeVideoValue:
if resp.VideoNumber-resp.VideoConsumptionNumber <= 0 {
err = errors.New(e.ErrorBalanceInsufficient)
return
}
if resp.AccountNumber-resp.AccountConsumptionNumber <= 0 {
err = errors.New(e.ErrorBalanceInsufficient)
return
}
return
}
@ -235,35 +241,3 @@ func RePublish(ctx *gin.Context) {
func UserBundleBalanceCost() {
service.BundleProvider.AddBundleBalance(context.Background(), &bundle.AddBundleBalanceReq{})
}
func RefreshWorkApprovalStatus(approvalIDWorkUuidMap map[int]string) (err error) {
var castS = new(CastService)
var data = make(map[int]int)
var approvalIDs []int
for approvalId, _ := range approvalIDWorkUuidMap {
approvalIDs = append(approvalIDs, approvalId)
}
if len(approvalIDs) == 0 {
return
}
data, err = castS.ApprovalDetail(approvalIDs)
// status: 1待审批 2审批通过 3审批不通过 6撤销发其中 7撤销完成
if len(data) > 0 {
for approvalId, approvalStatus := range data {
var workAction cast.WorkActionENUM
if approvalStatus == 2 {
workAction = cast.WorkActionENUM_APPROVAL_PASS
} else if approvalStatus == 3 {
workAction = cast.WorkActionENUM_APPROVAL_REJECT
} else {
continue
}
_, _ = service.CastProvider.UpdateStatus(context.Background(), &cast.UpdateStatusReq{
WorkAction: workAction,
WorkUuid: approvalIDWorkUuidMap[approvalId],
ApprovalID: fmt.Sprint(approvalId),
})
}
}
return
}