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 AdminHappyActivityCheckOrderDto 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);
|
}
|
|
}
|