From 2822a346324bd5689e6d86f7e318e89c3936cb53 Mon Sep 17 00:00:00 2001 From: Cui Zhi Feng <7426394+wuxixiaocui@user.noreply.gitee.com> Date: 星期五, 23 八月 2024 10:48:17 +0800 Subject: [PATCH] 售后状态数量 --- src/main/java/com/mzl/flower/service/payment/OrderItemSalesService.java | 38 +++++++++++++++++++ src/main/java/com/mzl/flower/web/payment/SalesController.java | 13 +++++- src/main/java/com/mzl/flower/web/customer/SalesCustomerController.java | 2 src/main/resources/mapper/payment/OrderItemSalesMapper.xml | 64 ++++++++++++++++++++++++++++++++ src/main/java/com/mzl/flower/mapper/payment/OrderItemSalesMapper.java | 3 + 5 files changed, 117 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/mzl/flower/mapper/payment/OrderItemSalesMapper.java b/src/main/java/com/mzl/flower/mapper/payment/OrderItemSalesMapper.java index de4539f..2fb82b1 100644 --- a/src/main/java/com/mzl/flower/mapper/payment/OrderItemSalesMapper.java +++ b/src/main/java/com/mzl/flower/mapper/payment/OrderItemSalesMapper.java @@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.mzl.flower.dto.request.payment.OrderItemSalesQueryDTO; import com.mzl.flower.dto.response.payment.OrderItemSalesNewListDTO; +import com.mzl.flower.dto.response.payment.OrderStatusCountDTO; import com.mzl.flower.entity.payment.OrderItemSales; import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Repository; @@ -17,4 +18,6 @@ Integer getSupplierSalesCount(@Param("supplierId") Long supplierId); Integer getPartnerSalesCount(@Param("partnerId") Long partnerId); + + List<OrderStatusCountDTO> getSalesStatusCount(@Param("condition") OrderItemSalesQueryDTO dto); } diff --git a/src/main/java/com/mzl/flower/service/payment/OrderItemSalesService.java b/src/main/java/com/mzl/flower/service/payment/OrderItemSalesService.java index b06db75..b32176b 100644 --- a/src/main/java/com/mzl/flower/service/payment/OrderItemSalesService.java +++ b/src/main/java/com/mzl/flower/service/payment/OrderItemSalesService.java @@ -9,11 +9,14 @@ import com.mzl.flower.dto.request.payment.*; import com.mzl.flower.dto.response.payment.OrderItemSalesNewDTO; import com.mzl.flower.dto.response.payment.OrderItemSalesNewListDTO; +import com.mzl.flower.dto.response.payment.OrderStatusCountDTO; +import com.mzl.flower.dto.response.system.CodeValueDTO; import com.mzl.flower.entity.payment.*; import com.mzl.flower.entity.supplier.Station; import com.mzl.flower.mapper.payment.*; import com.mzl.flower.mapper.supplier.StationMapper; import com.mzl.flower.service.BaseService; +import com.mzl.flower.service.system.CodeService; import com.mzl.flower.utils.UUIDGenerator; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.BeanUtils; @@ -23,7 +26,10 @@ import java.math.BigDecimal; import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; @Slf4j @Service @@ -47,6 +53,9 @@ @Autowired private StationMapper stationMapper; + + @Autowired + private CodeService codeService; public String createSales(OrderItemSalesCreateDTO dto){ Integer num = dto.getNum(); @@ -126,6 +135,35 @@ orderItemSalesMapper.updateById(s); } + public List<OrderStatusCountDTO> getSalesStatusCount(OrderItemSalesQueryDTO dto) { + dto.setOrderStartDate(parseLocalDateTime(dto.getOrderStartDateStr())); + dto.setOrderEndDate(parseLocalDateTime(dto.getOrderEndDateStr())); + dto.setSalesStartDate(parseLocalDateTime(dto.getSalesStartDateStr())); + dto.setSalesEndDate(parseLocalDateTime(dto.getSalesEndDateStr())); + + List<CodeValueDTO> ls = codeService.searchValue("ORDER_SALES_STATUS"); + List<OrderStatusCountDTO> ll = orderItemSalesMapper.getSalesStatusCount(dto); + Map<String, Integer> llMap = new HashMap<>(); + if (ll != null && ll.size() > 0) { + for (OrderStatusCountDTO c : ll) { + llMap.put(c.getValue(), c.getOrderCount()); + } + } + + List<OrderStatusCountDTO> rr = new ArrayList<>(); + for (CodeValueDTO c : ls) { + OrderStatusCountDTO r = new OrderStatusCountDTO(); + r.setValue(c.getValue()); + r.setLabel(c.getLabel()); + Integer count = llMap.get(r.getValue()); + r.setOrderCount(count == null ? 0 : count); + + rr.add(r); + } + + return rr; + } + public Page<OrderItemSalesNewListDTO> selectSalesList(Page page, OrderItemSalesQueryDTO dto){ dto.setOrderStartDate(parseLocalDateTime(dto.getOrderStartDateStr())); dto.setOrderEndDate(parseLocalDateTime(dto.getOrderEndDateStr())); diff --git a/src/main/java/com/mzl/flower/web/customer/SalesCustomerController.java b/src/main/java/com/mzl/flower/web/customer/SalesCustomerController.java index 8be1b94..c93617b 100644 --- a/src/main/java/com/mzl/flower/web/customer/SalesCustomerController.java +++ b/src/main/java/com/mzl/flower/web/customer/SalesCustomerController.java @@ -59,7 +59,7 @@ @ApiImplicitParams({ @ApiImplicitParam(name = "id", value = "售后id", required = true, dataType = "String", paramType = "query") }) - public ResponseEntity<ReturnDataDTO<OrderSalesDTO>> cancelSales(String id){ + public ResponseEntity<ReturnDataDTO<?>> cancelSales(String id){ salesService.cancelSales(id); return returnData(R.SUCCESS.getCode(), null); } diff --git a/src/main/java/com/mzl/flower/web/payment/SalesController.java b/src/main/java/com/mzl/flower/web/payment/SalesController.java index ad5bf04..747a231 100644 --- a/src/main/java/com/mzl/flower/web/payment/SalesController.java +++ b/src/main/java/com/mzl/flower/web/payment/SalesController.java @@ -8,7 +8,8 @@ import com.mzl.flower.constant.Constants; import com.mzl.flower.dto.request.payment.*; import com.mzl.flower.dto.response.payment.OrderItemSalesNewDTO; -import com.mzl.flower.dto.response.payment.OrderSalesListDTO; +import com.mzl.flower.dto.response.payment.OrderItemSalesNewListDTO; +import com.mzl.flower.dto.response.payment.OrderStatusCountDTO; import com.mzl.flower.entity.payment.OrderItem; import com.mzl.flower.service.payment.OrderItemSalesService; import com.mzl.flower.service.payment.OrderItemSettlementService; @@ -21,6 +22,8 @@ import org.springframework.http.ResponseEntity; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; + +import java.util.List; @RestController @RequestMapping("/api/sales") @@ -35,9 +38,15 @@ @Autowired private OrderItemSettlementService orderItemSettlementService; + @GetMapping("/status/count") + @ApiOperation(value = "获取状态数量") + public ResponseEntity<ReturnDataDTO<List<OrderStatusCountDTO>>> getSalesStatusCount(OrderItemSalesQueryDTO dto){ + return returnData(R.SUCCESS.getCode(), salesService.getSalesStatusCount(dto)); + } + @GetMapping("/list") @ApiOperation(value = "查询售后列表") - public ResponseEntity<ReturnDataDTO<Page<OrderSalesListDTO>>> selectSalesList(Page page + public ResponseEntity<ReturnDataDTO<Page<OrderItemSalesNewListDTO>>> selectSalesList(Page page , OrderItemSalesQueryDTO dto){ return returnData(R.SUCCESS.getCode(), salesService.selectSalesList(page, dto)); } diff --git a/src/main/resources/mapper/payment/OrderItemSalesMapper.xml b/src/main/resources/mapper/payment/OrderItemSalesMapper.xml index c42e997..bf47555 100644 --- a/src/main/resources/mapper/payment/OrderItemSalesMapper.xml +++ b/src/main/resources/mapper/payment/OrderItemSalesMapper.xml @@ -2,6 +2,70 @@ <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > <mapper namespace="com.mzl.flower.mapper.payment.OrderItemSalesMapper"> + <select id="getSalesStatusCount" resultType="com.mzl.flower.dto.response.payment.OrderStatusCountDTO"> + SELECT si.status value, count(1) orderCount + FROM t_order_item_sales si + join t_order_item oi on oi.id = si.order_item_id + join t_order o on si.order_id = o.id + WHERE oi.deleted = 0 + <if test="condition.orderId != null and condition.orderId != ''"> + AND si.order_id = #{condition.orderId} + </if> + + <if test="condition.flowerName != null and condition.flowerName != ''"> + AND oi.flower_name LIKE concat('%', #{condition.flowerName},'%') + </if> + + <if test="condition.orderNo != null and condition.orderNo != ''"> + AND o.order_no LIKE concat('%', #{condition.orderNo},'%') + </if> + + <if test="condition.salesNo != null and condition.salesNo != ''"> + AND si.sales_no LIKE concat('%', #{condition.salesNo},'%') + </if> + + <if test="condition.customer != null and condition.customer != ''"> + AND o.customer LIKE concat('%', #{condition.customer},'%') + </if> + + <if test="condition.customerTel != null and condition.customerTel != ''"> + AND o.customer_tel LIKE concat('%', #{condition.customerTel},'%') + </if> + + <if test="condition.supplierName != null and condition.supplierName != ''"> + AND oi.supplier_name LIKE concat('%', #{condition.supplierName},'%') + </if> + + <if test="condition.orderStartDate != null"> + AND oi.create_time >= #{condition.createStartDate} + </if> + <if test="condition.orderEndDate != null"> + AND oi.create_time <= #{condition.createEndDate} + </if> + + <if test="condition.salesStartDate != null"> + AND si.create_time >= #{condition.createStartDate} + </if> + <if test="condition.salesEndDate != null"> + AND si.create_time <= #{condition.createEndDate} + </if> + + <if test="condition.status != null and condition.status != ''"> + AND si.status = #{condition.status} + </if> + + <if test="condition.createBy != null and condition.createBy != ''"> + AND si.create_by = #{condition.createBy} + </if> + <if test="condition.partnerId != null"> + AND o.partner_id = #{condition.partnerId} + </if> + <if test="condition.supplierId != null"> + AND oi.supplier_id = #{condition.supplierId} + </if> + + GROUP BY si.status + </select> <select id="selectItemSalesList" resultType="com.mzl.flower.dto.response.payment.OrderItemSalesNewListDTO"> SELECT si.id, s.name stationName, oi.flower_name, oi.flower_unit, oi.flower_color, oi.flower_cover , oi.flower_level, oi.flower_category, o.customer, o.customer_tel, o.customer_province, o.customer_city -- Gitblit v1.9.3