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