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(¶m) 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(¶m) 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(¶m) 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(¶m) 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(¶ms) 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(¶ms) 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(¶ms) 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) } }