From 0d4dabb19a675e669ef4bab7716d5dadd7012bf6 Mon Sep 17 00:00:00 2001 From: czc Date: Mon, 17 Jul 2023 13:49:31 +0800 Subject: [PATCH] =?UTF-8?q?=E7=AE=A1=E7=90=86=E5=90=8E=E5=8F=B0=E5=94=AE?= =?UTF-8?q?=E5=90=8E=E8=AE=A2=E5=8D=95=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../oms/controller/AftersaleController.java | 13 ++- .../manager/oms/mapper/AftersaleMapper.java | 5 + .../cyl/manager/oms/mapper/OrderMapper.java | 4 + .../request/ManagerAftersaleOrderRequest.java | 42 ++++++++ .../request/ManagerOrderQueryRequest.java | 5 +- .../oms/pojo/vo/ManagerRefundOrderVo.java | 75 ++++++++++++++ .../manager/oms/service/AftersaleService.java | 98 +++++++++---------- .../resources/mapper/oms/AftersaleMapper.xml | 40 ++++++++ .../main/resources/mapper/oms/OrderMapper.xml | 1 + 9 files changed, 225 insertions(+), 58 deletions(-) create mode 100644 ruoyi-mall/src/main/java/com/cyl/manager/oms/pojo/request/ManagerAftersaleOrderRequest.java create mode 100644 ruoyi-mall/src/main/java/com/cyl/manager/oms/pojo/vo/ManagerRefundOrderVo.java diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/oms/controller/AftersaleController.java b/ruoyi-mall/src/main/java/com/cyl/manager/oms/controller/AftersaleController.java index 0dde72a..de33f7f 100644 --- a/ruoyi-mall/src/main/java/com/cyl/manager/oms/controller/AftersaleController.java +++ b/ruoyi-mall/src/main/java/com/cyl/manager/oms/controller/AftersaleController.java @@ -2,6 +2,8 @@ package com.cyl.manager.oms.controller; import java.util.List; +import com.cyl.manager.oms.pojo.request.ManagerAftersaleOrderRequest; +import com.cyl.manager.oms.pojo.vo.ManagerRefundOrderVo; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.data.domain.PageImpl; @@ -45,8 +47,8 @@ public class AftersaleController extends BaseController { @ApiOperation("查询订单售后列表") @PreAuthorize("@ss.hasPermi('oms:aftersale:list')") @PostMapping("/list") - public ResponseEntity> list(@RequestBody AftersaleQuery query, Pageable page) { - List list = service.selectList(query, page); + public ResponseEntity> list(@RequestBody ManagerAftersaleOrderRequest query, Pageable page) { + List list = service.selectList(query, page); return ResponseEntity.ok(new PageImpl<>(list, page, ((com.github.pagehelper.Page)list).getTotal())); } @@ -55,9 +57,10 @@ public class AftersaleController extends BaseController { @Log(title = "订单售后", businessType = BusinessType.EXPORT) @GetMapping("/export") public ResponseEntity export(AftersaleQuery query) { - List list = service.selectList(query, null); - ExcelUtil util = new ExcelUtil<>(AftersaleVO.class); - return ResponseEntity.ok(util.writeExcel(convert.dos2vos(list), "订单售后数据")); +// List list = service.selectList(query, null); +// ExcelUtil util = new ExcelUtil<>(AftersaleVO.class); +// return ResponseEntity.ok(util.writeExcel(convert.dos2vos(list), "订单售后数据")); + return null; } @ApiOperation("获取订单售后详细信息") diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/oms/mapper/AftersaleMapper.java b/ruoyi-mall/src/main/java/com/cyl/manager/oms/mapper/AftersaleMapper.java index e510771..1d953ab 100644 --- a/ruoyi-mall/src/main/java/com/cyl/manager/oms/mapper/AftersaleMapper.java +++ b/ruoyi-mall/src/main/java/com/cyl/manager/oms/mapper/AftersaleMapper.java @@ -4,6 +4,8 @@ import java.util.List; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.cyl.manager.oms.domain.Aftersale; import com.cyl.manager.oms.domain.AftersaleItem; +import com.cyl.manager.oms.pojo.request.ManagerAftersaleOrderRequest; +import com.cyl.manager.oms.pojo.vo.ManagerRefundOrderVo; import org.apache.ibatis.annotations.Param; /** @@ -21,4 +23,7 @@ public interface AftersaleMapper extends BaseMapper { List selectByEntity(Aftersale aftersale); Integer insertBatch(@Param("list") List list); + + List selectManagerRefundOrder(ManagerAftersaleOrderRequest managerAftersaleOrderPageRequest); + } diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/oms/mapper/OrderMapper.java b/ruoyi-mall/src/main/java/com/cyl/manager/oms/mapper/OrderMapper.java index ee4e354..f2924a4 100644 --- a/ruoyi-mall/src/main/java/com/cyl/manager/oms/mapper/OrderMapper.java +++ b/ruoyi-mall/src/main/java/com/cyl/manager/oms/mapper/OrderMapper.java @@ -5,8 +5,10 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.cyl.h5.pojo.vo.CountOrderVO; import com.cyl.h5.pojo.vo.H5OrderVO; import com.cyl.manager.oms.domain.Order; +import com.cyl.manager.oms.pojo.request.ManagerAftersaleOrderRequest; import com.cyl.manager.oms.pojo.request.ManagerOrderQueryRequest; import com.cyl.manager.oms.pojo.vo.ManagerOrderVO; +import com.cyl.manager.oms.pojo.vo.ManagerRefundOrderVo; import org.apache.ibatis.annotations.Param; /** @@ -32,4 +34,6 @@ public interface OrderMapper extends BaseMapper { CountOrderVO countByStatusAndMemberId(Long memberId); Integer cancelBatch(@Param("list") List orderList); + + } diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/oms/pojo/request/ManagerAftersaleOrderRequest.java b/ruoyi-mall/src/main/java/com/cyl/manager/oms/pojo/request/ManagerAftersaleOrderRequest.java new file mode 100644 index 0000000..07dce52 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/oms/pojo/request/ManagerAftersaleOrderRequest.java @@ -0,0 +1,42 @@ +package com.cyl.manager.oms.pojo.request; + +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.time.LocalDateTime; +import java.util.Date; + + +@Data +@ApiModel(value = "商城订单请求体") +public class ManagerAftersaleOrderRequest { + + @ApiModelProperty(name = "id", value = "售后单号", required = true, dataType = "String") + private Long id; + + @ApiModelProperty(name = "orderId", value = "订单id", required = true, dataType = "String") + private Long orderId; + + @ApiModelProperty(name = "userPhone", value = "用户名称(手机号)", required = true, dataType = "String") + private String userPhone; + + @ApiModelProperty(name = "status", value = "售后申请状态:0->待处理;1->退货中;2->已完成;3->已拒绝;4->用户取消", required = true, dataType = "String") + private Integer status; + + @ApiModelProperty(name = "type", value = "售后类型:1->退款;2->退货退款", required = true, dataType = "String") + private Integer type; + + @ApiModelProperty(name = "startTime", value = "开始时间", required = true, dataType = "Date") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime startTime; + + @ApiModelProperty(name = "endTime", value = "结束时间", required = true, dataType = "Date") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") + private LocalDateTime endTime; + +} diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/oms/pojo/request/ManagerOrderQueryRequest.java b/ruoyi-mall/src/main/java/com/cyl/manager/oms/pojo/request/ManagerOrderQueryRequest.java index 80e3852..384eaff 100644 --- a/ruoyi-mall/src/main/java/com/cyl/manager/oms/pojo/request/ManagerOrderQueryRequest.java +++ b/ruoyi-mall/src/main/java/com/cyl/manager/oms/pojo/request/ManagerOrderQueryRequest.java @@ -6,6 +6,7 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; import java.util.Date; @Data @@ -45,10 +46,10 @@ public class ManagerOrderQueryRequest { @ApiModelProperty(name = "startTime", value = "开始时间", required = true, dataType = "Date") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private Date startTime; + private LocalDateTime startTime; @ApiModelProperty(name = "endTime", value = "结束时间", required = true, dataType = "Date") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") - private Date endTime; + private LocalDateTime endTime; } diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/oms/pojo/vo/ManagerRefundOrderVo.java b/ruoyi-mall/src/main/java/com/cyl/manager/oms/pojo/vo/ManagerRefundOrderVo.java new file mode 100644 index 0000000..0cfcf00 --- /dev/null +++ b/ruoyi-mall/src/main/java/com/cyl/manager/oms/pojo/vo/ManagerRefundOrderVo.java @@ -0,0 +1,75 @@ + package com.cyl.manager.oms.pojo.vo; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; +import java.time.LocalDateTime; +import java.util.List; + + + @Data + @ApiModel(value = "售后订单vo") + public class ManagerRefundOrderVo { + @ApiModelProperty(name = "id",value = "售后单id",required = true,dataType = "Long") + private Long id; + + @ApiModelProperty(name = "orderId",value = "订单id",required = true,dataType = "Long") + private Long orderId; + + @ApiModelProperty(name = "orderSn",value = "订单号",required = true,dataType = "String") + private String orderSn; + + @ApiModelProperty(name = "payId",value = "支付ID",required = true,dataType = "Long") + private Long payId; + + @ApiModelProperty(name = "phone",value = "用户手机号",required = true,dataType = "String") + private String phone; + + @ApiModelProperty(name = "nickName",value = "用户昵称",required = true,dataType = "String") + private String nickName; + + @ApiModelProperty(name = "status",value = "订单状态 0->待付款;1->待发货;2->已发货;3->已完成;4->已关闭;5->无效订单",required = true,dataType = "Integer") + private Integer status; + + @ApiModelProperty(name = "userName",value = "用户名称",required = true,dataType = "String") + private String userName; + + @ApiModelProperty(name = "payTime",value = "支付时间",required = true,dataType = "String") + private String payTime; + + @ApiModelProperty(name = "payType",value = "支付方式 支付方式:0->未支付;1->支付宝;2->微信",required = true,dataType = "Integer") + private Integer payType; + + @ApiModelProperty(name = "applyRefundTime",value = "申请售后的时间",required = true,dataType = "String") + private String applyRefundTime; + + @ApiModelProperty(name = "refundFinishTime",value = "售后完成的时间",required = true,dataType = "String") + private String refundFinishTime; + + @ApiModelProperty(name = "aftersaleStatus",value = "0->待处理;1->退货中;2->已完成;3->已拒绝; 4->用户取消",required = true,dataType = "String") + private Integer aftersaleStatus; + @ApiModelProperty(name = "note",value = "备注",required = true,dataType = "String") + private String note; + @ApiModelProperty(name = "applyRefundAmount",value = "退款金额",required = true,dataType = "BigDecimal") + private BigDecimal applyReturnAmount; + @ApiModelProperty(name = "refundNum",value = "退款数量",required = true,dataType = "Integer") + private Integer refundNum; + + @ApiModelProperty(name = "applyRefundType",value = "申请退货方式:1-仅退款,2-退货退款",required = true,dataType = "String") + private Integer applyRefundType; + @ApiModelProperty(name = "handleTime",value = "处理时间",required = true,dataType = "LocalDateTime") + private LocalDateTime handleTime; + + @ApiModelProperty(name = "reason",value = "原因",required = true,dataType = "String") + private String reason; + + @ApiModelProperty(name = "description",value = "描述",required = true,dataType = "String") + private String description; + + @ApiModelProperty(name = "proofPics",value = "凭证图片",required = true,dataType = "String") + private String proofPics; + + @ApiModelProperty(name = "productInfo", value = "售后单商品数据") + private List productList; + } diff --git a/ruoyi-mall/src/main/java/com/cyl/manager/oms/service/AftersaleService.java b/ruoyi-mall/src/main/java/com/cyl/manager/oms/service/AftersaleService.java index ebd92fd..cfa2fc4 100644 --- a/ruoyi-mall/src/main/java/com/cyl/manager/oms/service/AftersaleService.java +++ b/ruoyi-mall/src/main/java/com/cyl/manager/oms/service/AftersaleService.java @@ -2,9 +2,18 @@ package com.cyl.manager.oms.service; import java.math.BigDecimal; import java.time.LocalDateTime; -import java.util.List; +import java.util.*; +import java.util.stream.Collectors; +import cn.hutool.core.collection.CollectionUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.cyl.manager.oms.domain.Order; +import com.cyl.manager.oms.domain.OrderItem; +import com.cyl.manager.oms.mapper.OrderItemMapper; +import com.cyl.manager.oms.mapper.OrderMapper; +import com.cyl.manager.oms.pojo.request.ManagerAftersaleOrderRequest; +import com.cyl.manager.oms.pojo.vo.ManagerOrderProductVO; +import com.cyl.manager.oms.pojo.vo.ManagerRefundOrderVo; import com.github.pagehelper.PageHelper; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Pageable; @@ -25,6 +34,12 @@ public class AftersaleService { @Autowired private AftersaleMapper aftersaleMapper; + @Autowired + private OrderMapper orderMapper; + + @Autowired + private OrderItemMapper orderItemMapper; + /** * 查询订单售后 * @@ -42,60 +57,41 @@ public class AftersaleService { * @param page 分页条件 * @return 订单售后 */ - public List selectList(AftersaleQuery query, Pageable page) { + public List selectList(ManagerAftersaleOrderRequest query, Pageable page) { if (page != null) { PageHelper.startPage(page.getPageNumber() + 1, page.getPageSize()); } - QueryWrapper qw = new QueryWrapper<>(); - Long memberId = query.getMemberId(); - if (memberId != null) { - qw.eq("member_id", memberId); - } - Long orderId = query.getOrderId(); - if (orderId != null) { - qw.eq("order_id", orderId); - } - BigDecimal returnAmount = query.getReturnAmount(); - if (returnAmount != null) { - qw.eq("return_amount", returnAmount); - } - Integer type = query.getType(); - if (type != null) { - qw.eq("type", type); - } - Integer status = query.getStatus(); - if (status != null) { - qw.eq("status", status); - } - LocalDateTime handleTime = query.getHandleTime(); - if (handleTime != null) { - qw.eq("handle_time", handleTime); - } - Integer quantity = query.getQuantity(); - if (quantity != null) { - qw.eq("quantity", quantity); - } - String reason = query.getReason(); - if (!StringUtils.isEmpty(reason)) { - qw.eq("reason", reason); - } - String description = query.getDescription(); - if (!StringUtils.isEmpty(description)) { - qw.eq("description", description); - } - String proofPics = query.getProofPics(); - if (!StringUtils.isEmpty(proofPics)) { - qw.eq("proof_pics", proofPics); - } - String handleNote = query.getHandleNote(); - if (!StringUtils.isEmpty(handleNote)) { - qw.eq("handle_note", handleNote); - } - String handleMan = query.getHandleMan(); - if (!StringUtils.isEmpty(handleMan)) { - qw.eq("handle_man", handleMan); + List managerRefundOrderVos = aftersaleMapper.selectManagerRefundOrder(query); + if (CollectionUtil.isEmpty(managerRefundOrderVos)){ + return managerRefundOrderVos; } - return aftersaleMapper.selectList(qw); + Set idSet = managerRefundOrderVos.stream().map(ManagerRefundOrderVo::getOrderId).collect(Collectors.toSet()); + //查一下orderSn集合 + QueryWrapper orderQw = new QueryWrapper<>(); + orderQw.in("id", idSet); + Map orderMap = orderMapper.selectList(orderQw).stream().collect(Collectors.toMap(Order::getId, it -> it)); + //封装售后单商品数据 + QueryWrapper orderItemQw = new QueryWrapper<>(); + orderItemQw.in("order_id", idSet); + Map> orderItemMap = orderItemMapper.selectList(orderItemQw).stream().collect(Collectors.groupingBy(OrderItem::getOrderId)); + managerRefundOrderVos.forEach(vo -> { + Order order = orderMap.get(vo.getOrderId()); + vo.setOrderSn(order.getOrderSn()); + List orderItemList = orderItemMap.get(vo.getOrderId()); + List productList = new ArrayList<>(); + orderItemList.forEach(item -> { + ManagerOrderProductVO productVO = new ManagerOrderProductVO(); + productVO.setProductName(item.getProductName()); + productVO.setSalePrice(item.getSalePrice()); + productVO.setPic(item.getPic()); + productVO.setBuyNum(item.getQuantity()); + productVO.setProductId(item.getProductId()); + productVO.setSpData(item.getSpData()); + productList.add(productVO); + }); + vo.setProductList(productList); + }); + return managerRefundOrderVos; } /** diff --git a/ruoyi-mall/src/main/resources/mapper/oms/AftersaleMapper.xml b/ruoyi-mall/src/main/resources/mapper/oms/AftersaleMapper.xml index 964f582..52b6802 100644 --- a/ruoyi-mall/src/main/resources/mapper/oms/AftersaleMapper.xml +++ b/ruoyi-mall/src/main/resources/mapper/oms/AftersaleMapper.xml @@ -67,4 +67,44 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and handle_man = #{handleMan} + + diff --git a/ruoyi-mall/src/main/resources/mapper/oms/OrderMapper.xml b/ruoyi-mall/src/main/resources/mapper/oms/OrderMapper.xml index 43ed9e2..6a5f1e3 100644 --- a/ruoyi-mall/src/main/resources/mapper/oms/OrderMapper.xml +++ b/ruoyi-mall/src/main/resources/mapper/oms/OrderMapper.xml @@ -225,4 +225,5 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" from oms_order where member_id=#{memberId} and delete_status=0 +