| package cc.mrbird.febs.mall.controller.activity; | 
|   | 
| import cc.mrbird.febs.common.annotation.ControllerEndpoint; | 
| import cc.mrbird.febs.common.controller.BaseController; | 
| import cc.mrbird.febs.common.entity.FebsResponse; | 
| import cc.mrbird.febs.common.entity.QueryRequest; | 
| import cc.mrbird.febs.common.utils.RedisUtils; | 
| import cc.mrbird.febs.common.utils.excl.ExcelSheetPO; | 
| import cc.mrbird.febs.common.utils.excl.ExcelUtil; | 
| import cc.mrbird.febs.common.utils.excl.ExcelVersion; | 
| import cc.mrbird.febs.common.utils.excl.ResponseHeadUtil; | 
| import cc.mrbird.febs.mall.dto.AdminHappyActivityCategoryDto; | 
| import cc.mrbird.febs.mall.dto.AdminMallGoodsCommentDto; | 
| import cc.mrbird.febs.mall.dto.activity.*; | 
| import cc.mrbird.febs.mall.entity.HappyActivity; | 
| import cc.mrbird.febs.mall.entity.HappyActivityOption; | 
| import cc.mrbird.febs.mall.service.IAdminHappyActivityService; | 
| import cn.hutool.core.date.DateUtil; | 
| import cn.hutool.core.util.StrUtil; | 
| import lombok.RequiredArgsConstructor; | 
| import lombok.SneakyThrows; | 
| import lombok.extern.slf4j.Slf4j; | 
| import org.springframework.validation.annotation.Validated; | 
| import org.springframework.web.bind.annotation.*; | 
|   | 
| import javax.servlet.http.HttpServletResponse; | 
| import javax.validation.Valid; | 
| import javax.validation.constraints.NotNull; | 
| import java.io.OutputStream; | 
| import java.net.URLEncoder; | 
| import java.util.ArrayList; | 
| import java.util.Date; | 
| import java.util.List; | 
| import java.util.Map; | 
|   | 
| @Slf4j | 
| @Validated | 
| @RestController | 
| @RequiredArgsConstructor | 
| @RequestMapping(value = "/admin/happyActivity") | 
| public class AdminVotesActivityCategoryController extends BaseController { | 
|   | 
|     private final IAdminHappyActivityService adminHappyActivityService; | 
|     private final RedisUtils redisUtils; | 
|   | 
|     /** | 
|      * 分类列表 | 
|      * @return | 
|      */ | 
|     @GetMapping("groupList") | 
|     public FebsResponse groupList(AdminHappyActivityCategoryDto dto, QueryRequest request) { | 
|   | 
|         Map<String, Object> data = getDataTable(adminHappyActivityService.getGroupList(dto, request)); | 
|         return new FebsResponse().success().data(data); | 
|     } | 
|     /** | 
|      * 分类-新增 | 
|      */ | 
|     @PostMapping("addGroup") | 
|     @ControllerEndpoint(operation = "分类-新增", exceptionMessage = "操作失败") | 
|     public FebsResponse addGroup(@RequestBody @Valid AdminCategoryAddDto dto) { | 
|   | 
|         return adminHappyActivityService.addGroup(dto); | 
|     } | 
|   | 
|     /** | 
|      * 分类-删除 | 
|      */ | 
|     @GetMapping("groupDelete/{id}") | 
|     @ControllerEndpoint(operation = "选项-删除", exceptionMessage = "操作失败") | 
|     public FebsResponse groupDelete(@NotNull(message = "{required}") @PathVariable Long id) { | 
|   | 
|         return adminHappyActivityService.groupDelete(id); | 
|     } | 
|   | 
|     /** | 
|      * 分类-更新 | 
|      */ | 
|     @PostMapping("groupUpdate") | 
|     @ControllerEndpoint(operation = "分类-更新", exceptionMessage = "操作失败") | 
|     public FebsResponse groupUpdate(@RequestBody @Valid AdminCategoryUpdateDto dto) { | 
|   | 
|         return adminHappyActivityService.groupUpdate(dto); | 
|     } | 
|     /** | 
|      * 分类-开启 | 
|      */ | 
|     @GetMapping("groupState/{id}/{type}") | 
|     @ControllerEndpoint(operation = "分类-开启", exceptionMessage = "操作失败") | 
|     public FebsResponse groupState( | 
|             @NotNull(message = "{required}") @PathVariable Long id, | 
|             @NotNull(message = "{required}") @PathVariable Integer type) { | 
|   | 
|         return adminHappyActivityService.groupState(id,type); | 
|     } | 
|   | 
|     /** | 
|      * 获取分类 | 
|      * @return | 
|      */ | 
|     @GetMapping(value = "/allGroup") | 
|     public FebsResponse allGroup() { | 
|   | 
|         return new FebsResponse().success().data(adminHappyActivityService.allGroup()); | 
|     } | 
|   | 
|   | 
|   | 
|     /** | 
|      * 活动-列表 | 
|      */ | 
|     @GetMapping("list") | 
|     public FebsResponse getAdminActivityListInPage(HappyActivity dto, QueryRequest request) { | 
|         Map<String, Object> data = getDataTable(adminHappyActivityService.getAdminActivityListInPage(dto, request)); | 
|         return new FebsResponse().success().data(data); | 
|     } | 
|   | 
|     /** | 
|      * 活动-新增 | 
|      */ | 
|     @PostMapping("add") | 
|     @ControllerEndpoint(operation = "新增", exceptionMessage = "操作失败") | 
|     public FebsResponse addActivity(@RequestBody HappyActivity dto) { | 
|         return adminHappyActivityService.addActivity(dto); | 
|     } | 
|   | 
|     /** | 
|      * 活动-删除 | 
|      */ | 
|     @GetMapping("delActivity/{id}") | 
|     @ControllerEndpoint(operation = "活动-删除", exceptionMessage = "删除失败") | 
|     public FebsResponse delActivity(@NotNull(message = "{required}") @PathVariable Long id) { | 
|         return adminHappyActivityService.delActivity(id); | 
|     } | 
|     /** | 
|      * 活动-开启 | 
|      */ | 
|     @GetMapping("changeState/{id}/{state}") | 
|     @ControllerEndpoint(operation = "活动-开启", exceptionMessage = "操作失败") | 
|     public FebsResponse changeState(@NotNull(message = "{required}") @PathVariable Long id | 
|             ,@NotNull(message = "{required}") @PathVariable Integer state) { | 
|         return adminHappyActivityService.changeState(id,state); | 
|     } | 
|   | 
|     /** | 
|      * 活动-更新 | 
|      */ | 
|     @PostMapping("activityUpdate") | 
|     @ControllerEndpoint(operation = "活动-更新", exceptionMessage = "操作失败") | 
|     public FebsResponse activityUpdate(@RequestBody HappyActivity dto) { | 
|   | 
|         return adminHappyActivityService.activityUpdate(dto); | 
|     } | 
|   | 
|     /** | 
|      * 获取全部投票活动 | 
|      * @return | 
|      */ | 
|     @GetMapping(value = "/allActivities") | 
|     public FebsResponse allActivities() { | 
|         return new FebsResponse().success().data(adminHappyActivityService.allActivities()); | 
|     } | 
|   | 
|     /** | 
|      * 获取全部众筹活动 | 
|      * @return | 
|      */ | 
|     @GetMapping(value = "/allOrderActivities") | 
|     public FebsResponse allOrderActivities() { | 
|         return new FebsResponse().success().data(adminHappyActivityService.allOrderActivities()); | 
|     } | 
|   | 
|     /** | 
|      * 选项-列表 | 
|      * @return | 
|      */ | 
|     @GetMapping("optionList") | 
|     public FebsResponse optionList(HappyActivityOption dto, QueryRequest request) { | 
|   | 
|         Map<String, Object> data = getDataTable(adminHappyActivityService.getOptionListInPage(dto, request)); | 
|         return new FebsResponse().success().data(data); | 
|     } | 
|   | 
|     /** | 
|      * 选项-新增 | 
|      */ | 
|     @PostMapping("addOption") | 
|     @ControllerEndpoint(operation = "选项-新增", exceptionMessage = "操作失败") | 
|     public FebsResponse addOption(@RequestBody @Valid AdminActivityOptionAddDto dto) { | 
|   | 
|         return adminHappyActivityService.addOption(dto); | 
|     } | 
|   | 
|     /** | 
|      * 选项-更新 | 
|      */ | 
|     @PostMapping("optionUpdate") | 
|     @ControllerEndpoint(operation = "选项-更新", exceptionMessage = "操作失败") | 
|     public FebsResponse optionUpdate(@RequestBody HappyActivityOption dto) { | 
|   | 
|         return adminHappyActivityService.optionUpdate(dto); | 
|     } | 
|   | 
|     /** | 
|      * 选项-删除 | 
|      */ | 
|     @GetMapping("optionDelete/{id}") | 
|     @ControllerEndpoint(operation = "选项-删除", exceptionMessage = "操作失败") | 
|     public FebsResponse optionDelete(@NotNull(message = "{required}") @PathVariable Long id) { | 
|   | 
|         return adminHappyActivityService.optionDelete(id); | 
|     } | 
|     /** | 
|      * 选项-得票记录 | 
|      */ | 
|     @GetMapping("voteRecord") | 
|     public FebsResponse voteRecord(QueryRequest request, Integer parentId) { | 
|         HappyActivityOption voteRecord = new HappyActivityOption(); | 
|         String existToken = redisUtils.getString("voteRecord"); | 
|         if (StrUtil.isNotBlank(existToken)) { | 
|             redisUtils.del(existToken); | 
|         } | 
|         voteRecord.setId(Long.parseLong(existToken)); | 
|         Map<String, Object> data = getDataTable(adminHappyActivityService.getFollowVoteInPage(voteRecord,request)); | 
|         return new FebsResponse().success().data(data); | 
|     } | 
|   | 
|     /** | 
|      * 订单 | 
|      * @return | 
|      */ | 
|     @GetMapping("activityOrderList") | 
|     public FebsResponse activityOrderList(AdminHappyActivityOrderDto dto, QueryRequest request) { | 
|   | 
|         Map<String, Object> data = getDataTable(adminHappyActivityService.activityOrderList(dto, request)); | 
|         return new FebsResponse().success().data(data); | 
|     } | 
|   | 
|     /** | 
|      * 订单-手动核销 | 
|      */ | 
|     @PostMapping("checkOrder") | 
|     @ControllerEndpoint(operation = "订单-手动核销", exceptionMessage = "操作失败") | 
|     public FebsResponse checkOrder(@RequestBody List<Long> dto) { | 
|   | 
|         return adminHappyActivityService.checkOrder(dto); | 
|     } | 
|   | 
|     /** | 
|      * 订单-删除 | 
|      */ | 
|     @GetMapping("activityOrderDel/{id}") | 
|     @ControllerEndpoint(operation = "订单-删除", exceptionMessage = "操作失败") | 
|     public FebsResponse activityOrderDel(@NotNull(message = "{required}") @PathVariable Long id) { | 
|   | 
|         return adminHappyActivityService.activityOrderDel(id); | 
|     } | 
|   | 
|     /** | 
|      * 评论列表 | 
|      */ | 
|     @GetMapping("commentList") | 
|     public FebsResponse getCommentList(AdminActivityCommentDto dto, QueryRequest request) { | 
|         Map<String, Object> data = getDataTable(adminHappyActivityService.getCommentListInPage(dto, request)); | 
|         return new FebsResponse().success().data(data); | 
|     } | 
|   | 
|     /** | 
|      * 评论列表-显示评论 | 
|      */ | 
|     @GetMapping("showStateSwitchOn/{id}") | 
|     @ControllerEndpoint(operation = "评论列表-显示评论", exceptionMessage = "设置失败") | 
|     public FebsResponse showStateSwitchOn(@NotNull(message = "{required}") @PathVariable Long id) { | 
|         return adminHappyActivityService.showStateSwitchOn(id); | 
|     } | 
|   | 
|   | 
|     @SneakyThrows | 
|     @GetMapping("/exportOptionList") | 
|     public void exportOptionList(@RequestParam Map<String, String> params, HttpServletResponse response) { | 
|         List<ExcelSheetPO> res = new ArrayList<>(); | 
|         ExcelSheetPO orderSheet = new ExcelSheetPO(); | 
|         String title = "报名列表"; | 
|         orderSheet.setTitle(title); | 
|         String[] header = {"序号", "姓名", "联系方式", "兴趣爱好","家庭住址","地区","是否签约mcn机构", "备注"}; | 
|         orderSheet.setHeaders(header); | 
|         List<HappyActivityOption> dataList = adminHappyActivityService.getVoteOptionListForExport(params); | 
|         List<List<Object>> list = new ArrayList<>(); | 
|         if (dataList.size() > 0) { | 
|             int i = 0; | 
|             for (HappyActivityOption item : dataList) { | 
|                 i++; | 
|                 List<Object> temp = new ArrayList<>(); | 
|                 temp.add(i); | 
|                 temp.add(item.getOptionName()); | 
|                 temp.add(item.getMobilePhone()); | 
|                 temp.add(item.getHobby()); | 
|                 temp.add(item.getAddress()); | 
|                 temp.add(item.getProvince()+item.getCity()); | 
|                 temp.add(item.getMcnState() == 1 ?"是":"否"); | 
|                 temp.add(item.getDescription()); | 
|                 list.add(temp); | 
|             } | 
|         } | 
|         orderSheet.setDataList(list); | 
|         res.add(orderSheet); | 
|         response = ResponseHeadUtil.setExcelHead(response); | 
|         response.setHeader("Content-Disposition", | 
|                 "attachment;filename=" + URLEncoder.encode(title + DateUtil.format(new Date(), "yyyyMMDDHHmmss") + ".xlsx".trim(), "UTF-8")); | 
|         OutputStream os = null; | 
|         os = response.getOutputStream(); | 
|         ExcelUtil.createWorkbookAtOutStream(ExcelVersion.V2007, res, os, false); | 
|     } | 
|   | 
| } |