package influencer import ( "pure/api/sys" "pure/global" "pure/model/request" "pure/model/response" "pure/service" "pure/utils" "github.com/gin-gonic/gin" "go.uber.org/zap" ) // GetMissionDetail // @Summary 获取任务详情【v1.0】 // @Description // @Tags mission // @Security ApiKeyAuth // @Param data query request.IdReq false "params" // @Success 200 {object} model.MissionDetail "{"code": 200, "data": {}}" // @Router /influencer/mission/detail [get] func GetMissionDetail(c *gin.Context) { var info request.IdReq _ = c.ShouldBindQuery(&info) if err := utils.Verify(info, utils.IdVerify); err != nil { response.FailWithMessage(err.Error(), c) return } if err, data := service.GetMissionDetail(sys.GetUserUuid(c), info.ID); err != nil { global.MG_LOG.Error("获取失败!", zap.Any("err", err)) response.FailWithMessage("获取失败", c) } else { response.OkWithData(data, c) } } // GetMissionList // @Summary 获取任务列表【v1.0】 // @Description // @Tags mission // @Security ApiKeyAuth // @Param data query request.SearchMission false "params" // @Success 200 {array} model.MissionDetail "{"code": 200, "data": {}}" // @Router /influencer/mission/list [get] func GetMissionList(c *gin.Context) { var info request.SearchMission _ = c.ShouldBindQuery(&info) if err := utils.Verify(info.PageInfo, utils.PageInfoVerify); err != nil { response.FailWithMessage(err.Error(), c) return } if err, list, total := service.GetMissionList(sys.GetUserUuid(c), info); err != nil { global.MG_LOG.Error("获取失败!", zap.Any("err", err)) response.FailWithMessage("获取失败", c) } else { response.OkWithDetailed(response.PageResult{ List: list, Total: total, Page: info.Page, PageSize: info.PageSize, }, "获取成功", c) } } // GetMissionClaim // @Summary 获取我的任务详情【v1.0】 // @Description // @Tags mission // @Security ApiKeyAuth // @Param data query request.IdReq false "params" // @Success 200 {object} model.MissionClaimDetail "{"code": 200, "data": {}}" // @Router /influencer/mission/claim [get] func GetMissionClaim(c *gin.Context) { var info request.IdReq _ = c.ShouldBindQuery(&info) if err := utils.Verify(info, utils.IdVerify); err != nil { response.FailWithMessage(err.Error(), c) return } if err, data := service.GetMissionClaim(sys.GetUserUuid(c), info.ID); err != nil { global.MG_LOG.Error("获取失败!", zap.Any("err", err)) response.FailWithMessage("获取失败", c) } else { response.OkWithData(data, c) } } // GetMissionClaimList // @Summary 获取我的任务列表【v1.0】 // @Description // @Tags mission // @Security ApiKeyAuth // @Param data query request.SearchMissionClaim false "params" // @Success 200 {array} model.MissionClaimDetail "{"code": 200, "data": {}}" // @Router /influencer/mission/claim-list [get] func GetMissionClaimList(c *gin.Context) { var info request.SearchMissionClaim _ = c.ShouldBindQuery(&info) if err := utils.Verify(info.PageInfo, utils.PageInfoVerify); err != nil { response.FailWithMessage(err.Error(), c) return } if err, list, total := service.MergeMissionClaimList(sys.GetUserUuid(c), info); err != nil { global.MG_LOG.Error("获取失败!", zap.Any("err", err)) response.FailWithMessage("获取失败", c) } else { response.OkWithDetailed(response.PageResult{ List: list, Total: total, Page: info.Page, PageSize: info.PageSize, }, "获取成功", c) } } // ClaimMission // @Summary 领取任务【v1.0】 // @Description // @Tags mission // @Security ApiKeyAuth // @Param data body request.ClaimMission false "params" // @Success 200 {string} string "{"code": 200, "data": {}}" // @Router /influencer/mission/claim [post] func ClaimMission(c *gin.Context) { var info request.ClaimMission _ = c.ShouldBindJSON(&info) if err := utils.Verify(info, utils.MissionClaimVerify); err != nil { response.FailWithMessage(err.Error(), c) return } if err, id := service.ClaimMission(sys.GetUserUuid(c), info); err != nil { global.MG_LOG.Error("领取失败!"+err.Error(), zap.Any("err", err)) response.FailWithMessage("领取失败!"+err.Error(), c) } else { response.OkWithDetailed(id, "领取成功", c) } } // CollectMission // @Summary 收藏/取消收藏任务【v1.0】 // @Description // @Tags mission // @Security ApiKeyAuth // @Param data body request.MissionId false "params" // @Success 200 {string} string "{"code": 200, "data": {}}" // @Router /influencer/mission/collect [post] func CollectMission(c *gin.Context) { var info request.MissionId _ = c.ShouldBindJSON(&info) if err := utils.Verify(info, utils.MissionIdVerify); err != nil { response.FailWithMessage(err.Error(), c) return } if err, id := service.ChangeCollectionMission(sys.GetUserUuid(c), info); err != nil { global.MG_LOG.Error("操作失败!"+err.Error(), zap.Any("err", err)) response.FailWithMessage("操作失败!"+err.Error(), c) } else { response.OkWithDetailed(id, "操作成功", c) } } // GetCollectionMissionList // @Summary 获取收藏任务列表【v1.0】 // @Description // @Tags mission // @Security ApiKeyAuth // @Param data query request.SearchCollectionMission false "params" // @Success 200 {array} model.MissionDetail "{"code": 200, "data": {}}" // @Router /influencer/mission/collect-list [get] func GetCollectionMissionList(c *gin.Context) { var info request.SearchCollectionMission _ = c.ShouldBindQuery(&info) if err := utils.Verify(info.PageInfo, utils.PageInfoVerify); err != nil { response.FailWithMessage(err.Error(), c) return } if err, list, total := service.GetCollectionMissionList(sys.GetUserUuid(c), info); err != nil { global.MG_LOG.Error("获取失败!", zap.Any("err", err)) response.FailWithMessage("获取失败", c) } else { response.OkWithDetailed(response.PageResult{ List: list, Total: total, Page: info.Page, PageSize: info.PageSize, }, "获取成功", c) } } // SubmitClaimMissionWorks // @Summary 领取任务的提交作品【v1.0】 // @Description // @Tags mission // @Security ApiKeyAuth // @Param data body request.ClaimMissionWorksList false "params" // @Success 200 {string} string "{"code": 200, "data": {}}" // @Router /influencer/mission/submit-works [post] func SubmitClaimMissionWorks(c *gin.Context) { var info request.ClaimMissionWorksList _ = c.ShouldBindJSON(&info) if err := utils.Verify(info, utils.MissionClaimIdVerify); err != nil { response.FailWithMessage(err.Error(), c) return } if err := service.SubmitClaimMissionWorks(sys.GetUserUuid(c), info); err != nil { global.MG_LOG.Error("提交失败!"+err.Error(), zap.Any("err", err)) response.FailWithMessage("提交失败!"+err.Error(), c) } else { response.OkWithMessage("提交成功", c) } } // GetMissionDetail // @Summary 获取任务累计奖金 // @Description // @Tags mission // @Security ApiKeyAuth // @Param data query request.MissionCode false "params" // @Success 200 {object} model.MissionBonus "{"code": 200, "data": {}}" // @Router /influencer/mission/bonus [get] func GetMissionBonus(c *gin.Context) { var info request.MissionCode _ = c.ShouldBindQuery(&info) if err := utils.Verify(info, utils.MissionCodeVerify); err != nil { response.FailWithMessage(err.Error(), c) return } data := service.GetMissionBonus(info.Code) response.OkWithData(data, c) } // SubmitClaimMissionVideo // @Summary 固定费用任务上传视频【v1.0】 // @Description // @Tags mission // @Security ApiKeyAuth // @Param data body request.ClaimMissionVideo false "params" // @Success 200 {string} string "{"code": 200, "data": {}}" // @Router /influencer/mission/submit-video [post] func SubmitClaimMissionVideo(c *gin.Context) { var info request.ClaimMissionVideo _ = c.ShouldBindJSON(&info) if err := utils.Verify(info, utils.MissionClaimIdVerify); err != nil { response.FailWithMessage(err.Error(), c) return } if err := service.SubmitClaimMissionVideo(sys.GetUserUuid(c), info); err != nil { global.MG_LOG.Error("提交失败!"+err.Error(), zap.Any("err", err)) response.FailWithMessage("提交失败!"+err.Error(), c) } else { response.OkWithMessage("提交成功", c) } } // GetRecommendMissionList // @Summary 获取首页任务列表【v1.0】 // @Description // @Tags mission // @Security ApiKeyAuth // @Param data query request.SearchRecommendMission false "params" // @Success 200 {array} response.MissionRecommendResponse "{"code": 200, "data": {}}" // @Router /influencer/mission/recommend-list [get] func GetRecommendMissionList(c *gin.Context) { var info request.SearchRecommendMission _ = c.ShouldBindQuery(&info) if err := utils.Verify(info.PageInfo, utils.PageInfoVerify); err != nil { response.FailWithMessage(err.Error(), c) return } if err, list, total := service.GetRecommendMissionList(info); err != nil { global.MG_LOG.Error("获取失败!", zap.Any("err", err)) response.FailWithMessage("获取失败", c) } else { response.OkWithDetailed(response.PageResult{ List: list, Total: total, Page: info.Page, PageSize: info.PageSize, }, "获取成功", c) } } // GetRecommendMissionDetail // @Summary 获取首页任务详情【v1.0】 // @Description // @Tags mission // @Security ApiKeyAuth // @Param data query request.IdReq false "params" // @Success 200 {object} response.MissionRecommendResponse "{"code": 200, "data": {}}" // @Router /influencer/mission/recommend-detail [get] func GetRecommendMissionDetail(c *gin.Context) { var info request.IdReq _ = c.ShouldBindQuery(&info) if err := utils.Verify(info, utils.IdVerify); err != nil { response.FailWithMessage(err.Error(), c) return } if err, data := service.GetRecommendMissionDetail(info); err != nil { global.MG_LOG.Error("获取失败!", zap.Any("err", err)) response.FailWithMessage("获取失败", c) } else { response.OkWithDetailed(data, "获取成功", c) } } // GetSysRewardList // @Summary 获取平台奖励列表【v1.0】 // @Description // @Tags mission // @Security ApiKeyAuth // @Param data query request.SearchSysReward false "params" // @Success 200 {array} model.SysMissionReward "{"code": 200, "data": {}}" // @Router /influencer/mission/sys-reward-list [get] func GetSysRewardList(c *gin.Context) { var info request.SearchSysReward _ = c.ShouldBindQuery(&info) if err := utils.Verify(info.PageInfo, utils.PageInfoVerify); err != nil { response.FailWithMessage(err.Error(), c) return } uuid := sys.GetUserUuid(c) if err, list, total := service.GetSysMissionRewardList(info, uuid); err != nil { global.MG_LOG.Error("获取失败!", zap.Any("err", err)) response.FailWithMessage("获取失败", c) } else { response.OkWithDetailed(response.PageResult{ List: list, Total: total, Page: info.Page, PageSize: info.PageSize, }, "获取成功", c) } } // GetSysRewardSummary // @Summary 获取平台奖励汇总【v1.0】 // @Description // @Tags mission // @Security ApiKeyAuth // @Param data query request.SearchSysRewardSummary false "params" // @Success 200 {object} response.SysMissionBonus "{"code": 200, "data": {}}" // @Router /influencer/mission/sys-reward-summary [get] func GetSysRewardSummary(c *gin.Context) { var info request.SearchSysRewardSummary _ = c.ShouldBindQuery(&info) uuid := sys.GetUserUuid(c) if err, data := service.GetSysRewardSummary(uuid, info); err != nil { global.MG_LOG.Error("获取失败!", zap.Any("err", err)) response.FailWithMessage("获取失败", c) } else { response.OkWithDetailed(data, "获取成功", c) } }