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.

575 lines
18 KiB

package v1
import (
"pure-admin/api/sys"
"pure-admin/global"
"pure-admin/model/request"
"pure-admin/model/response"
"pure-admin/service"
"pure-admin/utils"
"github.com/gin-gonic/gin"
"go.uber.org/zap"
)
// GetMissionDetail
// @Summary 获取任务详情
// @Description
// @Tags mission
// @Security ApiKeyAuth
// @Param data query request.IdReq false "params"
// @Success 200 {object} model.MissionDetail "{"code": 200, "data": {}}"
// @Router /mission/mission [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(info.ID); err != nil {
global.MG_LOG.Error("获取失败!", zap.Any("err", err))
response.FailWithMessage("获取失败", c)
} else {
response.OkWithData(data, c)
}
}
// GetMissionList
// @Summary 获取任务列表
// @Description
// @Tags mission
// @Security ApiKeyAuth
// @Param data query request.SearchMission false "params"
// @Success 200 {object} response.PageResult "{"code": 200, "data": {}}"
// @Router /mission/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 timeZone := c.GetHeader("Time-Zone"); timeZone != "" {
// info.TimeZone, _ = time.LoadLocation(timeZone)
//} else {
// info.TimeZone = time.Local
//}
if err, list, total := service.GetMissionList(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)
}
}
// GetMissionVideoList
// @Summary 获取任务视频列表
// @Description
// @Tags mission
// @Security ApiKeyAuth
// @Param data query request.SearchMissionVideo false "params"
// @Success 200 {array} response.MissionVideoResponse "{"code": 200, "data": {}}"
// @Router /mission/video-list [get]
func GetMissionVideoList(c *gin.Context) {
var info request.SearchMissionVideo
_ = c.ShouldBindQuery(&info)
if err := utils.Verify(info.PageInfo, utils.PageInfoVerify); err != nil {
response.FailWithMessage(err.Error(), c)
return
}
//info.VideoStatus = 2 //仅查询审核通过状态的视频列表
if err, list, total := service.GetMissionVideoList(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)
}
}
// AddMissionVideo
// @Summary 创建任务视频
// @Description
// @Tags mission
// @Security ApiKeyAuth
// @Param data body request.AddMissionVideo false "params"
// @Success 200 {string} string "{"success":true,"data":{},"msg":"创建成功"}"
// @Router /mission/add-video [post]
func AddMissionVideo(c *gin.Context) {
var info request.AddMissionVideo
_ = c.ShouldBindJSON(&info)
if err := service.AddMissionVideo(sys.GetUserUuid(c), info); err != nil {
global.MG_LOG.Error("创建失败!", zap.Any("err", err))
response.FailWithMessage("创建失败", c)
} else {
response.OkWithMessage("创建成功", c)
}
}
// EditMissionVideo
// @Summary 编辑任务视频
// @Description
// @Tags mission
// @Security ApiKeyAuth
// @Param data body request.EditMissionVideo false "params"
// @Success 200 {string} string "{"success":true,"data":{},"msg":"编辑成功"}"
// @Router /mission/edit-video [put]
func EditMissionVideo(c *gin.Context) {
var info request.EditMissionVideo
_ = c.ShouldBindJSON(&info)
if err := service.EditMissionVideo(sys.GetUserUuid(c), info); err != nil {
global.MG_LOG.Error("编辑失败!", zap.Any("err", err))
response.FailWithMessage("编辑失败", c)
} else {
response.OkWithMessage("编辑成功", c)
}
}
// AddMissionRecommend
// @Summary 创建任务推荐关联
// @Description
// @Tags mission/recommend
// @Security ApiKeyAuth
// @Param data body request.AddMissionRecommend false "params"
// @Success 200 {string} string "{"success":true,"data":{},"msg":"创建成功"}"
// @Router /mission/recommend/add-data [post]
func AddMissionRecommend(c *gin.Context) {
var p request.AddMissionRecommend
var err error
err = c.ShouldBindJSON(&p)
if err != nil {
response.OkWithMessage("创建失败,参数错误", c)
return
}
if err = service.AddMissionRecommend(&p, sys.GetUserUuid(c)); err != nil {
global.MG_LOG.Error("创建失败!", zap.Any("err", err))
response.FailWithMessage("创建失败,"+err.Error(), c)
} else {
response.OkWithMessage("创建成功", c)
}
}
// BatchDelMissionRecommendByIds
// @Tags mission/recommend
// @Summary 批量删除任务推荐关联
// @Security ApiKeyAuth
// @accept application/json
// @Produce application/json
// @Param data body request.IdsUReq true "ids"
// @Success 200 {string} string "{"success":true,"data":{},"msg":"删除成功"}"
// @Router /mission/recommend/batch-del-data [delete]
func BatchDelMissionRecommendByIds(c *gin.Context) {
var (
err error
param request.IdsUReq
)
_ = c.ShouldBindJSON(&param)
if err = service.DeleteMissionRecommendByIds(param); err != nil {
//global.MG_LOG.Error("批量删除失败!", zap.Any("err", err))
response.FailWithMessage("批量删除失败", c)
} else {
response.OkWithMessage("批量删除成功", c)
}
}
// MissionRecommendUpData
// @Tags mission/recommend
// @Summary 上移任务推荐排序
// @Security ApiKeyAuth
// @accept application/json
// @Produce application/json
// @Param data body request.IdReq true "id,page,pageSize..."
// @Success 200 {string} string "{"success":true,"data":{},"msg":"操作成功"}"
// @Router /mission/recommend/up-data [put]
func MissionRecommendUpData(c *gin.Context) {
var (
err error
param request.IdReq
)
_ = c.ShouldBindJSON(&param)
if err = utils.Verify(param, utils.IdVerify); err != nil {
response.FailWithMessage(err.Error(), c)
return
}
if err = service.MissionRecommendUpData(param, c); err != nil {
//global.MG_LOG.Error("操作失败!", zap.Any("err", err))
response.FailWithMessage("操作失败", c)
} else {
response.OkWithMessage("操作成功", c)
}
}
// MissionRecommendDownData
// @Tags mission/recommend
// @Summary 上移任务推荐排序
// @Security ApiKeyAuth
// @accept application/json
// @Produce application/json
// @Param data body request.IdReq true "id"
// @Success 200 {string} string "{"success":true,"data":{},"msg":"操作成功"}"
// @Router /mission/recommend/down-data [put]
func MissionRecommendDownData(c *gin.Context) {
var (
err error
param request.IdReq
)
_ = c.ShouldBindJSON(&param)
if err = utils.Verify(param, utils.IdVerify); err != nil {
response.FailWithMessage(err.Error(), c)
return
}
if err = service.MissionRecommendDownData(param, c); err != nil {
//global.MG_LOG.Error("操作失败!", zap.Any("err", err))
response.FailWithMessage("操作失败", c)
} else {
response.OkWithMessage("操作成功", c)
}
}
// MissionRecommendDownData
// @Tags mission/recommend
// @Summary 修改任务推荐排序
// @Security ApiKeyAuth
// @accept application/json
// @Produce application/json
// @Param data body global.BASE_ID_SORT true "id"
// @Success 200 {string} string "{"success":true,"data":{},"msg":"操作成功"}"
// @Router /mission/recommend/update-sort [put]
func UpdateMissionRecommendSort(c *gin.Context) {
var (
err error
param global.BASE_ID_SORT
)
_ = c.ShouldBindJSON(&param)
if err = utils.Verify(param, utils.IdVerify); err != nil {
response.FailWithMessage(err.Error(), c)
return
}
if err = service.UpdateMissionRecommendSort(param); err != nil {
//global.MG_LOG.Error("操作失败!", zap.Any("err", err))
response.FailWithMessage("操作失败", c)
} else {
response.OkWithMessage("操作成功", c)
}
}
// GetMissionRecommendList
// @Tags mission/recommend
// @Summary 分页获取任务推荐列表
// @Security ApiKeyAuth
// @accept application/json
// @Produce application/json
// @Param data query request.SearchMission true "data"
// @Success 200 {object} []response.MissionRecommendResponse "{"success":true,"data":{},"msg":"获取成功"}"
// @Router /mission/recommend/list [get]
func GetMissionRecommendList(c *gin.Context) {
var (
err error
list interface{}
total int64
params request.SearchMission
)
_ = c.ShouldBindQuery(&params)
if err, list, total = service.GetMissionRecommendList(params); err != nil {
////global.MG_LOG.Error("获取失败!", zap.Any("err", err))
response.FailWithMessage("获取失败", c)
} else {
response.OkWithDetailed(response.PageResult{
List: list,
Total: total,
}, "获取成功", c)
}
}
// GetMissionClaimVideoDetail
// @Summary 任务视频审核详情【v1.0】
// @Description
// @Tags mission
// @Security ApiKeyAuth
// @Param data query request.IdReq false "params"
// @Success 200 {array} response.MissionClaimVideoDetail "{"code": 200, "data": {}}"
// @Router /mission/claim-video-detail [get]
func GetMissionClaimVideoDetail(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, res := service.GetMissionClaimVideoDetail(info.ID); err != nil {
global.MG_LOG.Error("获取失败!", zap.Any("err", err))
response.FailWithMessage("获取失败", c)
} else {
response.OkWithDetailed(res, "获取成功", c)
}
}
// GetMissionStopList
// @Tags mission
// @Summary 分页获取任务结束申请列表
// @Security ApiKeyAuth
// @accept application/json
// @Produce application/json
// @Param data query request.SearchStopMission true "data"
// @Success 200 {array} response.MissionStopData "{"success":true,"data":{},"msg":"获取成功"}"
// @Router /mission/stop-list [get]
func GetMissionStopList(c *gin.Context) {
var (
err error
list []response.MissionStopData
total int64
params request.SearchStopMission
)
_ = c.ShouldBindQuery(&params)
if err, list, total = service.GetMissionStopList(params); err != nil {
////global.MG_LOG.Error("获取失败!", zap.Any("err", err))
response.FailWithMessage("获取失败", c)
} else {
response.OkWithDetailed(response.PageResult{
List: list,
Total: total,
}, "获取成功", c)
}
}
// GetMissionStopDetail
// @Tags mission
// @Summary 获取任务结束详情
// @Security ApiKeyAuth
// @accept application/json
// @Produce application/json
// @Param data query request.IdReq true "data"
// @Success 200 {object} response.MissionStopData "{"success":true,"data":{},"msg":"获取成功"}"
// @Router /mission/stop-detail [get]
func GetMissionStopDetail(c *gin.Context) {
var (
err error
data response.MissionStopData
params request.IdReq
)
_ = c.ShouldBindQuery(&params)
if err, data = service.GetMissionStopDetail(params); err != nil {
////global.MG_LOG.Error("获取失败!", zap.Any("err", err))
response.FailWithMessage("获取失败", c)
} else {
response.OkWithDetailed(data, "获取成功", c)
}
}
// StopMission
// @Summary 结束任务
// @Description
// @Tags mission
// @Security ApiKeyAuth
// @Param data body request.IdReq false "params"
// @Success 200 {string} string "{"code": 200, "data": {}}"
// @Router /mission/stop [put]
func StopMission(c *gin.Context) {
var info request.IdReq
_ = c.ShouldBindJSON(&info)
if err := utils.Verify(info, utils.IdVerify); err != nil {
response.FailWithMessage(err.Error(), c)
return
}
if err := service.StopMission(sys.GetUserUuid(c), info); err != nil {
global.MG_LOG.Error("操作失败!", zap.Any("err", err))
response.FailWithMessage("操作失败,"+err.Error(), c)
} else {
response.OkWithMessage("操作成功", c)
}
}
// GetMissionClaimList
// @Summary 获取任务领取列表
// @Description
// @Tags mission
// @Security ApiKeyAuth
// @Param data query request.SearchMissionClaim false "params"
// @Success 200 {array} response.MissionClaimSimpleData "{"code": 200, "data": {}}"
// @Router /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.GetMissionClaimList(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)
}
}
// 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 /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); 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)
}
}
// SendSysReward
// @Summary 发送系统任务奖励
// @Description
// @Tags mission
// @Security ApiKeyAuth
// @Param data body request.IdReq false "params"
// @Success 200 {string} string "{"code": 200, "data": {}}"
// @Router /mission/send-sys-reward [post]
func SendSysReward(c *gin.Context) {
var info request.IdReq
_ = c.ShouldBindJSON(&info)
if err := utils.Verify(info, utils.IdVerify); err != nil {
response.FailWithMessage(err.Error(), c)
return
}
if err := service.SendSysMissionReward(sys.GetUserUuid(c), info); err != nil {
global.MG_LOG.Error("操作失败!", zap.Any("err", err))
response.FailWithMessage("操作失败,"+err.Error(), c)
} else {
response.OkWithMessage("操作成功", c)
}
}
// MissionTagRelation
// @Summary 打标签
// @Description
// @Tags mission
// @Security ApiKeyAuth
// @Param data body request.CreateMissionTagRelation false "params"
// @Success 200 {string} string "{"code": 200, "data": {}}"
// @Router /mission/tag-relation [post]
func MissionTagRelation(c *gin.Context) {
var info request.CreateMissionTagRelation
_ = c.ShouldBindJSON(&info)
if err := utils.Verify(info, utils.IdVerify); err != nil {
response.FailWithMessage(err.Error(), c)
return
}
if err := service.CreateMissionTagRelation(info, sys.GetUserUuid(c)); err != nil {
global.MG_LOG.Error("操作失败!", zap.Any("err", err))
response.FailWithMessage("操作失败,"+err.Error(), c)
} else {
response.OkWithMessage("操作成功", c)
}
}
// GetInfluencerMissionSummaryList
// @Summary 获取网红任务统计列表
// @Description
// @Tags mission
// @Security ApiKeyAuth
// @Param data query request.InfluencerSummaryListParam false "params"
// @Success 200 {array} model.MissionClaimSummary "{"code": 200, "data": {}}"
// @Router /mission/influencer-summary-list [get]
func GetInfluencerMissionSummaryList(c *gin.Context) {
var info request.InfluencerSummaryListParam
_ = c.ShouldBindQuery(&info)
if err := utils.Verify(info.PageInfo, utils.PageInfoVerify); err != nil {
response.FailWithMessage(err.Error(), c)
return
}
//info.VideoStatus = 2 //仅查询审核通过状态的视频列表
if err, list, total := service.GetInfluencerSummaryList(info); err != nil {
//global.MG_LOG.Error("获取失败!", zap.Any("err", err))
response.FailWithMessage(err.Error(), c)
} else {
response.OkWithDetailed(response.PageResult{
List: list,
Total: total,
Page: info.Page,
PageSize: info.PageSize,
}, "获取成功", c)
}
}
// GetMissionClaimOrder
// @Summary 获取任务订单详情【v1.0】
// @Description
// @Tags mission
// @Security ApiKeyAuth
// @Param data query request.OrderId false "params"
// @Success 200 {object} response.MissionClaimOrderResponse "{"code": 200, "data": {}}"
// @Router /mission/claim-order [get]
func GetMissionClaimOrder(c *gin.Context) {
var info request.OrderId
_ = c.ShouldBindQuery(&info)
if err := utils.Verify(info, utils.OrderIDVerify); err != nil {
response.FailWithMessage(err.Error(), c)
return
}
if err, data := service.GetMissionClaimOrder(info.OrderID); err != nil {
global.MG_LOG.Error("获取失败!", zap.Any("err", err))
response.FailWithMessage("获取失败", c)
} else {
response.OkWithData(response.MissionClaimOrderResponse{Order: data}, c)
}
}
// GetMissionClaimOrderList
// @Summary 获取任务订单列表【v1.0】
// @Description
// @Tags mission
// @Security ApiKeyAuth
// @Param data query request.SearchMissionClaimOrder false "params"
// @Success 200 {array} model.MissionClaimOrderDetail "{"code": 200, "data": {}}"
// @Router /mission/claim-order-list [get]
func GetMissionClaimOrderList(c *gin.Context) {
var info request.SearchMissionClaimOrder
_ = c.ShouldBindQuery(&info)
if err := utils.Verify(info.PageInfo, utils.PageInfoVerify); err != nil {
response.FailWithMessage(err.Error(), c)
return
}
if err, list, total := service.GetMissionClaimOrderList(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)
}
}