package cc.mrbird.febs.mall.controller.activity; import cc.mrbird.febs.common.annotation.Limit; import cc.mrbird.febs.common.entity.FebsResponse; import cc.mrbird.febs.mall.dto.*; import cc.mrbird.febs.mall.dto.activity.ApiVoteOptionInPageDto; import cc.mrbird.febs.mall.dto.activity.ApiVoteOptionRecordInPageDto; import cc.mrbird.febs.mall.service.HappyActivityService; import cc.mrbird.febs.mall.vo.*; import cc.mrbird.febs.mall.vo.activity.ApiVoteActivityHotVo; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiResponse; import io.swagger.annotations.ApiResponses; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; @Slf4j @Validated @RestController @RequiredArgsConstructor @RequestMapping(value = "/api/happyActivity") @Api(value = "ApiHappyActivityController", tags = "365活动") public class ApiHappyActivityController{ private final HappyActivityService happyActivityService; @ApiOperation(value = "活动列表", notes = "活动列表") @ApiResponses({ @ApiResponse(code = 200, message = "success", response = ApiActivityInfoVo.class) }) @PostMapping(value = "/activityList") public FebsResponse activityList(@RequestBody @Validated ApiActivityInfoDto dto) { return happyActivityService.activityList(dto); } @ApiOperation(value = "活动详情", notes = "活动详情") @ApiResponses({ @ApiResponse(code = 200, message = "success", response = ApiActivityVo.class) }) @PostMapping(value = "/activityInfo") public FebsResponse activityInfo(@RequestBody @Validated ApiActivityDto dto) { return happyActivityService.activityInfo(dto); } @ApiOperation(value = "点赞关注转发", notes = "点赞关注转发") @PostMapping(value = "/operateDo") @Limit(key = "operateDo", period = 60, count = 1, name = "点赞关注转发接口", prefix = "limit") public FebsResponse operateDo(@RequestBody @Validated ApiOperateDoDto dto) { return happyActivityService.operateDo(dto); } @ApiOperation(value = "投票活动-选项列表", notes = "投票活动-选项列表") @ApiResponses({ @ApiResponse(code = 200, message = "success", response = ApiActivityOptionListVo.class) }) @PostMapping(value = "/voteOptionInPage") public FebsResponse voteOptionInPage(@RequestBody @Validated ApiVoteOptionInPageDto dto) { return happyActivityService.voteOptionInPage(dto); } @ApiOperation(value = "投票活动-排行榜", notes = "投票活动-排行榜") @ApiResponses({ @ApiResponse(code = 200, message = "success", response = ApiActivityOptionListVo.class) }) @PostMapping(value = "/voteOptionRecordInPage") public FebsResponse voteOptionRecordInPage(@RequestBody @Validated ApiVoteOptionRecordInPageDto dto) { return happyActivityService.voteOptionRecordInPage(dto); } @ApiOperation(value = "投票活动-活动热度", notes = "投票活动-活动热度") @ApiResponses({ @ApiResponse(code = 200, message = "success", response = ApiVoteActivityHotVo.class) }) @GetMapping(value = "/voteActivityHot/{id}") public FebsResponse voteActivityHot(@PathVariable("id") Long id) { return happyActivityService.voteActivityHot(id); } @ApiOperation(value = "投票活动-选项详情", notes = "投票活动-选项详情") @ApiResponses({ @ApiResponse(code = 200, message = "success", response = ApiActivityOptionVo.class) }) @GetMapping(value = "/voteOption/{id}") public FebsResponse voteOption(@PathVariable("id") Long id) { return happyActivityService.voteOption(id); } @ApiOperation(value = "投票活动-选项投票", notes = "投票活动-选项投票") @PostMapping(value = "/operateVote") @Limit(key = "operateVote", period = 60, count = 1, name = "投票接口", prefix = "limit") public FebsResponse operateVote(@RequestBody @Validated ApiOperateVoteDto dto) { return happyActivityService.operateVote(dto); } @ApiOperation(value = "投票活动-选项投票记录", notes = "投票活动-选项投票记录") @ApiResponses({ @ApiResponse(code = 200, message = "success", response = ApiVoteRecordInPageVo.class) }) @PostMapping(value = "/voteRecordInPage") public FebsResponse voteRecordInPage(@RequestBody @Validated ApiVoteRecordInPageDto dto) { return happyActivityService.voteRecordInPage(dto); } @ApiOperation(value = "投票活动-报名", notes = "投票活动-报名") @PostMapping(value = "/operateRegister") public FebsResponse operateRegister(@RequestBody @Validated ApiOperateRegisterActivityDto dto) { return happyActivityService.operateRegister(dto); } }