You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
354 lines
11 KiB
354 lines
11 KiB
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)
|
|
}
|
|
}
|
|
|