From 9b51a95fa8bc9b3a86108c6900e17fc55f8db467 Mon Sep 17 00:00:00 2001 From: Administrator <15274802129@163.com> Date: Mon, 19 May 2025 17:02:07 +0800 Subject: [PATCH] refactor(vip): 优化积分和返佣计算逻辑 --- src/main/java/cc/mrbird/febs/mall/controller/activity/AdminVotesActivityCategoryController.java | 197 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 196 insertions(+), 1 deletions(-) diff --git a/src/main/java/cc/mrbird/febs/mall/controller/activity/AdminVotesActivityCategoryController.java b/src/main/java/cc/mrbird/febs/mall/controller/activity/AdminVotesActivityCategoryController.java index 825c909..cc6d996 100644 --- a/src/main/java/cc/mrbird/febs/mall/controller/activity/AdminVotesActivityCategoryController.java +++ b/src/main/java/cc/mrbird/febs/mall/controller/activity/AdminVotesActivityCategoryController.java @@ -4,20 +4,38 @@ 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.exception.FebsException; 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.entity.HappyActivityOrder; import cc.mrbird.febs.mall.service.IAdminHappyActivityService; +import cc.mrbird.febs.mall.vo.activity.AdminHappyActivityOrderCheckVo; +import cn.hutool.core.date.DatePattern; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.ObjectUtil; 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 @@ -228,7 +246,7 @@ */ @PostMapping("checkOrder") @ControllerEndpoint(operation = "订单-手动核销", exceptionMessage = "操作失败") - public FebsResponse checkOrder(@RequestBody AdminHappyActivityCheckOrderDto dto) { + public FebsResponse checkOrder(@RequestBody List<Long> dto) { return adminHappyActivityService.checkOrder(dto); } @@ -243,4 +261,181 @@ 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); + } + + @SneakyThrows + @GetMapping("/exportOrderList") + public void exportOrderList(@RequestParam Map<String, String> params, HttpServletResponse response) { + //获取查询参数 + if(ObjectUtil.isEmpty(params.get("activityId"))){ + throw new FebsException("请选择活动"); + } + String activityId = params.get("activityId"); + HappyActivity happyActivity = adminHappyActivityService.getBaseMapper().selectById(activityId); + if(ObjectUtil.isEmpty(happyActivity)){ + throw new FebsException("活动不存在"); + } + List<ExcelSheetPO> res = new ArrayList<>(); + ExcelSheetPO orderSheet = new ExcelSheetPO(); + String title = happyActivity.getName() + "的订单"; + orderSheet.setTitle(title); + + String[] header = {"序号","用户", "编号", "单价", "数量","总价","使用状态", "支付方式"}; + orderSheet.setHeaders(header); + + List<HappyActivityOrder> orderListForExport = adminHappyActivityService.getOrderListForExport(params); + List<List<Object>> list = new ArrayList<>(); + if (orderListForExport.size() > 0) { + int i = 0; + for (HappyActivityOrder item : orderListForExport) { + i++; + List<Object> temp = new ArrayList<>(); + temp.add(i); + temp.add(item.getName()); + temp.add(item.getOrderNo()); + temp.add(item.getPrice()); + temp.add(item.getNumCnt()); + temp.add(item.getAmount()); + temp.add(item.getState() == 2 ? "待使用" : "已使用"); + temp.add(item.getPayType() == 0 ?"免费":"微信支付"); + 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(), DatePattern.NORM_DATETIME_PATTERN) + ".xlsx".trim(), "UTF-8")); + OutputStream os = null; + os = response.getOutputStream(); + ExcelUtil.createWorkbookAtOutStream(ExcelVersion.V2007, res, os, false); + } + + + + /** + * 核销记录列表 + * @return + */ + @GetMapping("activityOrderCheckList") + public FebsResponse activityOrderCheckList(AdminHappyActivityOrderCheckDto dto, QueryRequest request) { + + Map<String, Object> data = getDataTable(adminHappyActivityService.activityOrderCheckList(dto, request)); + return new FebsResponse().success().data(data); + } + + /** + * 核销记录-手动核销 + */ + @PostMapping("checkOrderItem") + @ControllerEndpoint(operation = "核销记录-手动核销", exceptionMessage = "操作失败") + public FebsResponse checkOrderItem(@RequestBody List<Long> dto) { + + return adminHappyActivityService.checkOrderItem(dto); + } + + @SneakyThrows + @GetMapping("/exportOrderCheckList") + public void exportOrderCheckList(@RequestParam Map<String, String> params, HttpServletResponse response) { + //获取查询参数 + if(ObjectUtil.isEmpty(params.get("activityId"))){ + throw new FebsException("请选择活动"); + } + String activityId = params.get("activityId"); + HappyActivity happyActivity = adminHappyActivityService.getBaseMapper().selectById(activityId); + if(ObjectUtil.isEmpty(happyActivity)){ + throw new FebsException("活动不存在"); + } + List<ExcelSheetPO> res = new ArrayList<>(); + ExcelSheetPO orderSheet = new ExcelSheetPO(); + String title = happyActivity.getName() + "的核销记录"; + orderSheet.setTitle(title); + + String[] header = {"序号", "票号","参与人","电话", "地址","使用状态","核销时间","核销员", "姓名", "联系方式"}; + orderSheet.setHeaders(header); + + List<AdminHappyActivityOrderCheckVo> orderListForExport = adminHappyActivityService.getOrderCheckListForExport(params); + List<List<Object>> list = new ArrayList<>(); + if (orderListForExport.size() > 0) { + int i = 0; + for (AdminHappyActivityOrderCheckVo item : orderListForExport) { + i++; + List<Object> temp = new ArrayList<>(); + temp.add(i); + temp.add(item.getCode()); + temp.add(item.getName()); + temp.add(item.getPhone()); + temp.add(item.getAddress()); + temp.add(item.getState() == 1 ? "已使用" : "待使用"); + temp.add(item.getState() == 1 ? item.getUpdatedTime() : ""); + temp.add(item.getCheckName()); + temp.add(item.getCheckRealName()); + temp.add(item.getCheckPhone()); + 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(), DatePattern.NORM_DATETIME_PATTERN) + ".xlsx".trim(), "UTF-8")); + OutputStream os = null; + os = response.getOutputStream(); + ExcelUtil.createWorkbookAtOutStream(ExcelVersion.V2007, res, os, false); + } + } -- Gitblit v1.9.1