fix: 竞品报告需要扣减余额,以及修改错误提示语

This commit is contained in:
cjy 2026-01-23 16:59:44 +08:00
parent ffdc047d15
commit adf3b5ee89
2 changed files with 62 additions and 4 deletions

View File

@ -287,7 +287,7 @@ func WorkAnalysisConfirm(c *gin.Context) { // 确认数据分析并扣除余量
fmt.Println("res:", res) fmt.Println("res:", res)
fmt.Println("err:", err) fmt.Println("err:", err)
if err != nil { if err != nil {
service.Error(c, errors.New(common.UpdateWorkStatusFailed)) service.Error(c, errors.New("驳回失败"))
return return
} }
service.Success(c, res) service.Success(c, res)
@ -338,7 +338,7 @@ func WorkAnalysisConfirm(c *gin.Context) { // 确认数据分析并扣除余量
fmt.Println("res:", res) fmt.Println("res:", res)
fmt.Println("err:", err) fmt.Println("err:", err)
if err != nil { if err != nil {
service.Error(c, errors.New(common.UpdateWorkStatusFailed)) service.Error(c, errors.New("确认失败"))
return return
} }
// 如果是艺人手动确认,确认操作后,自动标记为待阅读状态 // 如果是艺人手动确认,确认操作后,自动标记为待阅读状态

View File

@ -401,6 +401,8 @@ func UpdateCompetitiveReportStatus(ctx *gin.Context) {
} }
userInfo := login.GetUserInfoFromC(ctx) userInfo := login.GetUserInfoFromC(ctx)
newCtx := NewCtxWithUserInfo(ctx) newCtx := NewCtxWithUserInfo(ctx)
// 获取竞品报告详情
resp, err := service.CastProvider.GetCompetitiveReport(context.Background(), &cast.GetCompetitiveReportDetailReq{ resp, err := service.CastProvider.GetCompetitiveReport(context.Background(), &cast.GetCompetitiveReportDetailReq{
Uuid: req.Uuid, Uuid: req.Uuid,
}) })
@ -413,7 +415,8 @@ func UpdateCompetitiveReportStatus(ctx *gin.Context) {
service.Error(ctx, errors.New("非本人竞品报告,无法操作")) service.Error(ctx, errors.New("非本人竞品报告,无法操作"))
return return
} }
// 判断 work_action 是否为 1 或 2
// 判断 work_action 是否为 1确认或 6阅读
if req.WorkAction != 1 && req.WorkAction != 6 { if req.WorkAction != 1 && req.WorkAction != 6 {
service.Error(ctx, errors.New("非法操作")) service.Error(ctx, errors.New("非法操作"))
return return
@ -422,9 +425,64 @@ func UpdateCompetitiveReportStatus(ctx *gin.Context) {
service.Error(ctx, errors.New("非法操作")) service.Error(ctx, errors.New("非法操作"))
return return
} }
// 当 WorkAction == 1确认且 ConfirmStatus == 1通过需要检查并扣减余额
if req.WorkAction == 1 && req.ConfirmStatus == 1 {
// 检查竞品报告状态是否为待确认状态4
if resp.WorkReportStatus != 4 {
service.Error(ctx, errors.New("非法状态"))
return
}
// 查询用户余额
balanceInfoRes, err := service.BundleProvider.GetBundleBalanceByUserId(context.Background(), &bundle.GetBundleBalanceByUserIdReq{
UserId: int32(userInfo.ID),
})
if err != nil {
service.Error(ctx, errors.New(common.GetUserBalanceFailed))
return
}
if balanceInfoRes.CompetitiveConsumptionNumber >= balanceInfoRes.CompetitiveNumber {
service.Error(ctx, errors.New("竞品报告余额不足"))
return
}
// 扣减竞品余额
var addBalanceReq bundle.AddBundleBalanceReq
addBalanceReq.UserId = int32(userInfo.ID)
addBalanceReq.CompetitiveConsumptionNumber = 1
balanceResp, err := service.BundleProvider.AddBundleBalance(ctx, &addBalanceReq)
if err != nil {
service.Error(ctx, errors.New("扣除余额失败"))
return
}
// 更新竞品报告状态,记录扣费类型
req.CostType = balanceResp.UsedType
_, err = service.CastProvider.UpdateCompetitiveReportStatus(newCtx, req) _, err = service.CastProvider.UpdateCompetitiveReportStatus(newCtx, req)
if err != nil { if err != nil {
service.Error(ctx, err) service.Error(ctx, errors.New("确认失败"))
return
}
// 确认操作后,自动标记为已阅读状态
_, err = service.CastProvider.UpdateCompetitiveReportStatus(newCtx, &cast.UpdateCompetitiveReportStatusReq{
WorkAction: cast.WorkActionENUM_READ,
Uuid: req.Uuid,
})
if err != nil {
service.Error(ctx, errors.New("确认失败"))
return
}
service.Success(ctx, nil)
return
}
// 驳回或其他操作,直接更新状态
_, err = service.CastProvider.UpdateCompetitiveReportStatus(newCtx, req)
if err != nil {
service.Error(ctx, errors.New("操作失败"))
return return
} }
service.Success(ctx, nil) service.Success(ctx, nil)