From e3155bdcb11ca4e22d2bc9e54f96a1aa00c7ad4a Mon Sep 17 00:00:00 2001
From: KKSU <15274802129@163.com>
Date: Tue, 26 Mar 2024 12:28:45 +0800
Subject: [PATCH] 抽奖
---
src/main/java/cc/mrbird/febs/mall/controller/AdminMallOrderController.java | 480 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 449 insertions(+), 31 deletions(-)
diff --git a/src/main/java/cc/mrbird/febs/mall/controller/AdminMallOrderController.java b/src/main/java/cc/mrbird/febs/mall/controller/AdminMallOrderController.java
index f8f77ce..4c7a4bb 100644
--- a/src/main/java/cc/mrbird/febs/mall/controller/AdminMallOrderController.java
+++ b/src/main/java/cc/mrbird/febs/mall/controller/AdminMallOrderController.java
@@ -2,23 +2,45 @@
import cc.mrbird.febs.common.annotation.ControllerEndpoint;
import cc.mrbird.febs.common.controller.BaseController;
+import cc.mrbird.febs.common.entity.DeptTree;
import cc.mrbird.febs.common.entity.FebsResponse;
import cc.mrbird.febs.common.entity.QueryRequest;
-import cc.mrbird.febs.mall.dto.DeliverGoodsDto;
-import cc.mrbird.febs.mall.dto.MallOrderInfoDto;
-import cc.mrbird.febs.mall.dto.MallOrderRefundDto;
+import cc.mrbird.febs.common.exception.FebsException;
+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.*;
import cc.mrbird.febs.mall.entity.*;
+import cc.mrbird.febs.mall.mapper.MallExpressInfoMapper;
+import cc.mrbird.febs.mall.mapper.MallMemberMapper;
+import cc.mrbird.febs.mall.mapper.MallOrderInfoMapper;
+import cc.mrbird.febs.mall.mapper.MallOrderRefundOperationMapper;
import cc.mrbird.febs.mall.service.IAdminMallGoodsService;
import cc.mrbird.febs.mall.service.IAdminMallOrderService;
+import cc.mrbird.febs.mall.vo.AdminAddAddressTreeVo;
+import cc.mrbird.febs.mall.vo.AdminMallOrderRefundAddressVo;
+import cc.mrbird.febs.system.entity.Dept;
+import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.date.DateUtil;
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
+import javax.validation.constraints.NotNull;
+import java.io.*;
+import java.net.URLEncoder;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
import java.util.Map;
@Slf4j
@@ -29,9 +51,13 @@
public class AdminMallOrderController extends BaseController {
private final IAdminMallOrderService adminMallOrderService;
+ private final MallExpressInfoMapper mallExpressInfoMapper;
+ private final MallMemberMapper mallMemberMapper;
+ private final MallOrderInfoMapper mallOrderInfoMapper;
/**
* 订单列表
+ *
* @param mallOrderInfo
* @param request
* @return
@@ -40,6 +66,19 @@
public FebsResponse getOrderList(MallOrderInfoDto mallOrderInfo, QueryRequest request) {
Map<String, Object> data = getDataTable(adminMallOrderService.getOrderListInPage(mallOrderInfo, request));
return new FebsResponse().success().data(data);
+ }
+
+ /**
+ * 订单列表-资金流水
+ */
+ @GetMapping("/orderMoneyFlow")
+ public FebsResponse orderMoneyFlow(QueryRequest request, MallOrderInfo mallOrderInfo, Integer parentId) {
+ if (parentId == null) {
+ ViewMallOrderController.idOrderMoneyFlow = 0;
+ }
+ mallOrderInfo.setId(ViewMallOrderController.idOrderMoneyFlow);
+ Map<String, Object> dataTable = getDataTable(adminMallOrderService.orderMoneyFlow(request, mallOrderInfo));
+ return new FebsResponse().success().data(dataTable);
}
/**
@@ -52,7 +91,44 @@
}
/**
- * 订单退款列表
+ * 订单列表-取消订单
+ *
+ * @param id
+ * @return
+ */
+ @GetMapping("cancelOrder/{id}")
+ @ControllerEndpoint(operation = "订单列表-取消订单", exceptionMessage = "操作失败")
+ public FebsResponse cancelOrder(@NotNull(message = "{required}") @PathVariable Long id) {
+ return adminMallOrderService.cancelOrder(id);
+ }
+
+ /**
+ * 订单列表-自提订单
+ *
+ * @param id
+ * @return
+ */
+ @GetMapping("takeGoods/{id}")
+ @ControllerEndpoint(operation = "订单列表-自提订单", exceptionMessage = "操作失败")
+ public FebsResponse takeGoods(@NotNull(message = "{required}") @PathVariable Long id) {
+ return adminMallOrderService.takeGoods(id);
+ }
+
+ /**
+ * 订单列表-删除订单
+ *
+ * @param id
+ * @return
+ */
+ @GetMapping("delOrder/{id}")
+ @ControllerEndpoint(operation = "订单列表-删除订单", exceptionMessage = "操作失败")
+ public FebsResponse delOrder(@NotNull(message = "{required}") @PathVariable Long id) {
+ return adminMallOrderService.delOrder(id);
+ }
+
+ /**
+ * 订单退款-列表
+ *
* @param mallOrderRefundDto
* @param request
* @return
@@ -63,33 +139,375 @@
return new FebsResponse().success().data(data);
}
+ /**
+ * 订单退款-详情
+ */
+ @GetMapping("/seeRefund")
+ public FebsResponse seeRefund(QueryRequest request, MallOrderRefund mallOrderRefund, Integer parentId) {
+ if (parentId == null) {
+ ViewMallOrderController.idFromRefund = 0;
+ }
+ mallOrderRefund.setId(ViewMallOrderController.idFromRefund);
+ Map<String, Object> dataTable = getDataTable(adminMallOrderService.seeRefund(request, mallOrderRefund));
+ return new FebsResponse().success().data(dataTable);
+ }
+
+ /**
+ * 订单退款-同意
+ *
+ * @param id
+ * @return
+ */
+ @GetMapping("agreeRefund/{id}")
+ @ControllerEndpoint(operation = "订单退款-同意", exceptionMessage = "操作失败")
+ public FebsResponse agreeRefund(@NotNull(message = "{required}") @PathVariable Long id) {
+ return adminMallOrderService.agreeRefund(id);
+ }
+
+ /**
+ * 订单退款-拒绝
+ *
+ * @param id
+ * @return
+ */
+ @GetMapping("disagreeRefund/{id}")
+ @ControllerEndpoint(operation = "订单退款-拒绝", exceptionMessage = "操作失败")
+ public FebsResponse disagreeRefund(@NotNull(message = "{required}") @PathVariable Long id) {
+ return adminMallOrderService.disagreeRefund(id);
+ }
+
+ /**
+ * 订单退款-退款确认
+ *
+ * @param id
+ * @return
+ */
+ @GetMapping("refundConfirm/{id}")
+ @ControllerEndpoint(operation = "订单退款-退款确认", exceptionMessage = "操作失败")
+ public FebsResponse refundConfirm(@NotNull(message = "{required}") @PathVariable Long id) {
+ return adminMallOrderService.refundConfirm(id);
+ }
+
+ /**
+ * 订单退款地址-列表
+ *
+ * @param mallOrderRefundAddressDto
+ * @param request
+ * @return
+ */
+ @GetMapping("addressList")
+ public FebsResponse addressList(MallOrderRefundAddressDto mallOrderRefundAddressDto, QueryRequest request) {
+ Map<String, Object> data = getDataTable(adminMallOrderService.getMallOrderRefundAddressInPage(mallOrderRefundAddressDto, request));
+ return new FebsResponse().success().data(data);
+ }
+
+ /**
+ * 订单退款地址-修改
+ */
+ @PostMapping("addressUpdate")
+ @ControllerEndpoint(operation = "订单退款地址-修改", exceptionMessage = "操作失败")
+ public FebsResponse addressUpdate(@Valid AddressUpdateDto addressUpdateDto) {
+ return adminMallOrderService.addressUpdate(addressUpdateDto);
+ }
+
+ /**
+ * 订单退款地址-删除
+ *
+ * @param id
+ * @return
+ */
+ @GetMapping("deleteAddress/{id}")
+ @ControllerEndpoint(operation = "订单退款地址-删除", exceptionMessage = "操作失败")
+ public FebsResponse deleteAddress(@NotNull(message = "{required}") @PathVariable Long id) {
+ return adminMallOrderService.deleteAddress(id);
+ }
+
+ /**
+ * 订单退款地址-新增
+ */
+ @PostMapping("addAddress")
+ @ControllerEndpoint(operation = "订单退款地址-新增", exceptionMessage = "操作失败")
+ public FebsResponse addAddress(@Valid AddAddressDto addAddressDto) {
+ return adminMallOrderService.addAddress(addAddressDto);
+ }
+
+ /**
+ * 订单退款地址-选择
+ */
+ @GetMapping("addAddress/tree")
+ @ControllerEndpoint(exceptionMessage = "获取地址失败")
+ public List<AdminAddAddressTreeVo> getRefundAddress() {
+ return adminMallOrderService.getRefundAddress();
+ }
+
+ /**
+ * 订单退款地址-更新退款记录的地址信息
+ */
+ @PostMapping("withAddressUpdate")
+ @ControllerEndpoint(operation = "订单退款地址-更新退款记录的地址信息", exceptionMessage = "操作失败")
+ public FebsResponse withAddressUpdate(@Valid WithAddressUpdateDto withAddressUpdateDto) {
+ return adminMallOrderService.withAddressUpdate(withAddressUpdateDto);
+ }
+
+ /**
+ * 商家支付方式-列表
+ *
+ * @param payMethodDto
+ * @param request
+ * @return
+ */
+ @GetMapping("payMethodList")
+ public FebsResponse getPayMethodList(PayMethodDto payMethodDto, QueryRequest request) {
+ Map<String, Object> data = getDataTable(adminMallOrderService.getPayMethodListInPage(payMethodDto, request));
+ return new FebsResponse().success().data(data);
+ }
+
+ /**
+ * 商家支付方式-更新
+ */
+ @PostMapping("payMethodEdit")
+ @ControllerEndpoint(operation = "商家支付方式-更新", exceptionMessage = "操作失败")
+ public FebsResponse payMethodEdit(@Valid PayMethodEditDto payMethodEditDto) {
+ return adminMallOrderService.payMethodEdit(payMethodEditDto);
+ }
+
+ @GetMapping("exportOrderList")
+ @ControllerEndpoint(operation = "订单列表", exceptionMessage = "导出失败")
+ public FebsResponse exportOrderList(MallOrderInfo mallOrderInfo, HttpServletResponse response) throws IOException {
+
+ List<ExcelSheetPO> res = new ArrayList<>();
+ ExcelSheetPO orderSheet = new ExcelSheetPO();
+ String title = "订单列表";
+ orderSheet.setSheetName(title);
+ orderSheet.setTitle(title);
+ String[] header = {"订单编号", "下单人", "订单金额", "下单时间", "配送方式", "收货姓名", "收货电话", "收货地址", "商品名称", "订单状态", "物流单号", "物流公司", "物流公司码"};
+ orderSheet.setHeaders(header);
+
+ QueryRequest request = new QueryRequest();
+ request.setPageNum(1);
+ request.setPageSize(9999);
+ List<MallOrderInfo> dataList = adminMallOrderService.findOrderListInPage(mallOrderInfo, request).getRecords();
+ List<List<Object>> list = new ArrayList<>();
+ if (dataList.size() > 0) {
+ for (MallOrderInfo item : dataList) {
+ List<Object> temp = new ArrayList<>();
+ temp.add(item.getOrderNo());
+ temp.add(mallMemberMapper.selectById(item.getMemberId()).getName());
+ temp.add(item.getAmount());
+ temp.add(DateUtil.format(item.getOrderTime(), "yyyy-MM-dd HH:mm:ss"));
+ temp.add("快递配送");
+ temp.add(item.getName());
+ temp.add(item.getPhone());
+ temp.add(item.getAddress());
+ if (CollUtil.isNotEmpty(item.getItems())) {
+ StringBuilder sb = new StringBuilder();
+
+ for (MallOrderItem itemItem : item.getItems()) {
+ if (StrUtil.isNotBlank(sb)) {
+ sb.append(";" + itemItem.getGoodsName() + "*" + itemItem.getCnt());
+ } else {
+ sb.append(itemItem.getGoodsName() + "*" + itemItem.getCnt());
+ }
+ }
+ temp.add(sb.toString());
+ } else {
+ temp.add("");
+ }
+ switch (item.getStatus()) {
+ case 2:
+ temp.add("待发货");
+ break;
+ case 3:
+ temp.add("已发货");
+ break;
+ default:
+ }
+ Long id = item.getId();
+ MallExpressInfo mallExpressInfo = mallExpressInfoMapper.selectByOrderId(id);
+ if(ObjectUtil.isNotNull(mallExpressInfo)){
+ temp.add(mallExpressInfo.getExpressNo());
+ temp.add(mallExpressInfo.getExpressCom());
+ temp.add(mallExpressInfo.getExpressCode());
+ }
+ 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 = response.getOutputStream();
+ ExcelUtil.createWorkbookAtOutStream(ExcelVersion.V2007, res, os, true);
+ return null;
+ }
+
+ @GetMapping("exportOrderListAll")
+ @ControllerEndpoint(operation = "订单列表", exceptionMessage = "导出失败")
+ public FebsResponse exportOrderListAll(MallOrderInfo mallOrderInfo, HttpServletResponse response) throws IOException {
+
+ List<ExcelSheetPO> res = new ArrayList<>();
+ ExcelSheetPO orderSheet = new ExcelSheetPO();
+ String title = "订单列表";
+ orderSheet.setSheetName(title);
+ orderSheet.setTitle(title);
+ String[] header = {"订单编号", "登录账户", "购买人", "手机号码", "订单金额", "状态"};
+ orderSheet.setHeaders(header);
+
+ QueryRequest request = new QueryRequest();
+ request.setPageNum(1);
+ request.setPageSize(9999);
+ List<MallOrderInfo> dataList = mallOrderInfoMapper.selectList(null);
+ List<List<Object>> list = new ArrayList<>();
+ if (dataList.size() > 0) {
+ for (MallOrderInfo item : dataList) {
+ List<Object> temp = new ArrayList<>();
+ temp.add(item.getOrderNo());
+ temp.add(mallMemberMapper.selectById(item.getMemberId()).getAccountLogin());
+ temp.add(mallMemberMapper.selectById(item.getMemberId()).getName());
+ temp.add(mallMemberMapper.selectById(item.getMemberId()).getPhone());
+ temp.add(item.getAmount());
+ switch (item.getStatus()) {
+ case 1:
+ temp.add("待支付");
+ break;
+ case 2:
+ temp.add("待发货");
+ break;
+ case 3:
+ temp.add("待收货");
+ break;
+ case 4:
+ temp.add("已完成");
+ break;
+ case 5:
+ temp.add("退款中");
+ break;
+ case 6:
+ temp.add("已退款");
+ break;
+ case 7:
+ temp.add("已取消");
+ break;
+ default:
+ }
+ 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 = response.getOutputStream();
+ ExcelUtil.createWorkbookAtOutStream(ExcelVersion.V2007, res, os, true);
+ return null;
+ }
+
+ @PostMapping(value = "/importDeliver")
+ @ControllerEndpoint(operation = "导入发货", exceptionMessage = "导入失败")
+ public FebsResponse importDeliver(@RequestBody MultipartFile file) throws IOException {
+ if (file.isEmpty()) {
+ return new FebsResponse().fail();
+ }
+
+ String fileName = file.getOriginalFilename();
+ String dirPath = "/Users/helius/Documents/";
+
+ File saveFile = new File(new File(dirPath).getAbsolutePath() + File.separator + fileName);
+ if (!saveFile.exists()) {
+ if (!saveFile.getParentFile().exists()) {
+ saveFile.getParentFile().mkdirs();
+ }
+ }
+
+ file.transferTo(saveFile);
+
+ List<ExcelSheetPO> data = ExcelUtil.readExcel(saveFile, null, null);
+ if (CollUtil.isEmpty(data)) {
+ return new FebsResponse().fail();
+ }
+
+ List<List<Object>> dataList = data.get(0).getDataList();
+
+ int expressNoIndex = -1;
+ int expressComIndex = -1;
+ int expressCodeIndex = -1;
+ for (int i = 1; i < dataList.size(); i++) {
+ List<Object> objects = dataList.get(i);
+
+ String expressNo = "";
+ String expressCode = "";
+ String expressCom = "";
+ for (int j = 0; j < objects.size(); j++) {
+ Object obj = objects.get(j);
+ if ("物流单号".equals(obj)) {
+ expressNoIndex = j;
+ }
+
+ if ("物流公司".equals(obj)) {
+ expressComIndex = j;
+ }
+
+ if ("物流公司码".equals(obj)) {
+ expressCodeIndex = j;
+ }
+
+ if (j == expressNoIndex) {
+ expressNo = (String) objects.get(j);
+ }
+
+ if (j == expressComIndex) {
+ expressCom = (String) objects.get(j);
+ }
+
+ if (j == expressCodeIndex) {
+ expressCode = (String) objects.get(j);;
+ }
+
+ }
+
+ if (StrUtil.isNotBlank(expressNo) && StrUtil.isNotBlank(expressCode) && StrUtil.isNotBlank(expressCom)) {
+ String orderNo = (String) objects.get(0);
+
+ DeliverGoodsDto deliverGoods = new DeliverGoodsDto();
+ deliverGoods.setOrderNo(orderNo);
+ deliverGoods.setExpressCom(expressCom);
+ deliverGoods.setExpressCode(expressCode);
+ deliverGoods.setExpressNo(expressNo);
+ adminMallOrderService.deliverGoodsByOrderNo(deliverGoods);
+ }
+ }
+ return new FebsResponse().success();
+ }
+ /**
+ * 评论列表
+ */
+ @GetMapping("commentList")
+ public FebsResponse getCommentList(AdminMallGoodsCommentDto adminMallGoodsCommentDto, QueryRequest request) {
+ Map<String, Object> data = getDataTable(adminMallOrderService.getCommentListInPage(adminMallGoodsCommentDto, request));
+ return new FebsResponse().success().data(data);
+ }
+ /**
+ * 评论列表-显示评论
+ */
+ @GetMapping("showStateSwitchOn/{id}")
+ @ControllerEndpoint(operation = "评论列表-显示评论", exceptionMessage = "设置失败")
+ public FebsResponse showStateSwitchOn(@NotNull(message = "{required}") @PathVariable Long id) {
+ return adminMallOrderService.showStateSwitchOn(id);
+ }
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ /**
+ * 评论列表-不显示评论
+ */
+ @GetMapping("showStateSwitchOff/{id}")
+ @ControllerEndpoint(operation = "评论列表-显示评论", exceptionMessage = "设置失败")
+ public FebsResponse showStateSwitchOff(@NotNull(message = "{required}") @PathVariable Long id) {
+ return adminMallOrderService.showStateSwitchOff(id);
+ }
}
--
Gitblit v1.9.1