package bundle import ( "context" "fonchain-fiee/api/bundle" "fonchain-fiee/api/cast" "fonchain-fiee/pkg/model/login" "fonchain-fiee/pkg/service" "time" "github.com/gin-gonic/gin" ) func BundleExtend(c *gin.Context) { var req bundle.BundleExtendRequest if err := c.ShouldBindJSON(&req); err != nil { service.Error(c, err) return } res, err := service.BundleProvider.BundleExtend(context.Background(), &req) if err != nil { service.Error(c, err) return } service.Success(c, res) } func BundleExtendRecordsList(c *gin.Context) { var req bundle.BundleExtendRecordsListRequest if err := c.ShouldBindJSON(&req); err != nil { service.Error(c, err) return } res, err := service.BundleProvider.BundleExtendRecordsList(context.Background(), &req) if err != nil { service.Error(c, err) return } service.Success(c, res) } func GetBundleBalance(c *gin.Context) { var req bundle.GetBundleBalanceListReq if err := c.ShouldBindJSON(&req); err != nil { service.Error(c, err) return } res, err := service.BundleProvider.GetBundleBalanceList(context.Background(), &req) if err != nil { service.Error(c, err) return } service.Success(c, res) } func GetUsedRecordList(c *gin.Context) { var req bundle.GetUsedRecordListReq if err := c.ShouldBindJSON(&req); err != nil { service.Error(c, err) return } res, err := service.BundleProvider.GetUsedRecordList(context.Background(), &req) if err != nil { service.Error(c, err) return } service.Success(c, res) } func GetWorkDetail(c *gin.Context) { var req cast.WorkDetailReq if err := c.ShouldBindJSON(&req); err != nil { service.Error(c, err) return } userInfo := login.GetUserInfoFromC(c) res, err := service.BundleProvider.GetBundleBalanceByUserId(context.TODO(), &bundle.GetBundleBalanceByUserIdReq{ UserId: int32(userInfo.ID), }) if err != nil { service.Error(c, err) return } if res.ExpiredTime <= time.Now().UnixMilli() { service.Success(c, gin.H{ "status": 1, "message": "套餐过期请重新购买", }) return } workRes, err := service.CastProvider.WorkDetail(context.Background(), &req) if err != nil { service.Error(c, err) return } if len(workRes.Images) > 0 && res.ImageConsumptionNumber >= res.ImageNumber { // 图片用尽 service.Success(c, gin.H{ "status": 2, "message": "增值服务已用尽", }) return } else { if res.VideoConsumptionNumber >= res.VideoNumber { // 视频用尽 service.Success(c, gin.H{ "status": 2, "message": "增值服务已用尽", }) return } } service.Success(c, workRes) } func GetToBeComfirmedWorks(c *gin.Context) { var req bundle.ToBeComfirmedWorksReq if err := c.ShouldBindJSON(&req); err != nil { service.Error(c, err) return } res, err := service.BundleProvider.ToBeComfirmedWorks(context.Background(), &req) if err != nil { service.Error(c, err) return } service.Success(c, res) }