Parcourir la source

Monthly Customers 相关的类添加

zcb il y a 4 ans
Parent
commit
85cd9bffae

+ 5 - 15
kmall-admin/src/main/java/com/kmall/admin/controller/statistics/MonthlyCustomersController.java

@@ -44,9 +44,9 @@ public class MonthlyCustomersController {
     @RequestMapping("/customersQuery")
     public R queryMonthlyCustomers(@RequestParam("startMonth") String startMonth, @RequestParam("endMonth") String endMonth) {
 
-        List<String> echatX = new ArrayList<>();
+        List<String> dateList = new ArrayList<>();
         try {
-            calculateDifferentMonth(echatX, startMonth, endMonth);
+            calculateDifferentMonth(dateList, startMonth, endMonth);
         } catch (ParseException e) {
             e.printStackTrace();
         }
@@ -56,23 +56,13 @@ public class MonthlyCustomersController {
         if(!"1".equals(sysUser.getRoleType())){
             merchSn = sysUser.getMerchSn();
         }
-//        // 查询销售件数
-        List<String> echatY = new ArrayList<>();
-//        // 查询销售额
-        List<String> echatY2 = new ArrayList<>();
-//        // 查询客户数
-        List<String> echatY3 = new ArrayList<>();
-//        // 查询客单价
-        List<String> echatY4 = new ArrayList<>();
+
 
         Map<String,Object> map = monthlyCustomersService.queryMonthlyCustomers(startMonth,endMonth,merchSn);
 
         Map<String, Object> returnMap = new HashMap<>();
-        returnMap.put("echatX", echatX);
-        returnMap.put("echatY", echatY);
-        returnMap.put("echatY2", echatY2);
-        returnMap.put("echatY3", echatY3);
-        returnMap.put("echatY4", echatY4);
+        returnMap.put("dateList", dateList);
+        returnMap.putAll(map);
 
 
         return R.ok(returnMap);

+ 3 - 1
kmall-admin/src/main/java/com/kmall/admin/dao/statistics/MonthlyCustomersDao.java

@@ -1,7 +1,9 @@
 package com.kmall.admin.dao.statistics;
 
+import com.kmall.admin.entity.MonthlySalesGrowthEntity;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -11,5 +13,5 @@ import java.util.Map;
  */
 public interface MonthlyCustomersDao {
 
-    Map<String, Object> queryMonthlyCustomers(@Param("startMonth") String startMonth, @Param("endMonth") String endMonth, @Param("merchSn") String merchSn);
+    List<MonthlySalesGrowthEntity> queryMonthlyCustomers(@Param("startMonth") String startMonth, @Param("endMonth") String endMonth, @Param("merchSn") String merchSn);
 }

+ 11 - 11
kmall-admin/src/main/java/com/kmall/admin/entity/MonthlySalesGrowthEntity.java

@@ -8,11 +8,11 @@ public class MonthlySalesGrowthEntity implements Serializable {
     private String merchSn;
     private String merchName;
     //销售总额
-    private BigDecimal totalSales;
+    private String totalSales;
     // 销售数量
-    private Integer totalNumber;
+    private String totalNumber;
     // 客单数
-    private Integer taotalCustomers;
+    private String totalCustomers;
     private String yearAndMonth;
 
     public String getMerchSn() {
@@ -31,28 +31,28 @@ public class MonthlySalesGrowthEntity implements Serializable {
         this.merchName = merchName;
     }
 
-    public BigDecimal getTotalSales() {
+    public String getTotalSales() {
         return totalSales;
     }
 
-    public void setTotalSales(BigDecimal totalSales) {
+    public void setTotalSales(String totalSales) {
         this.totalSales = totalSales;
     }
 
-    public Integer getTotalNumber() {
+    public String getTotalNumber() {
         return totalNumber;
     }
 
-    public void setTotalNumber(Integer totalNumber) {
+    public void setTotalNumber(String totalNumber) {
         this.totalNumber = totalNumber;
     }
 
-    public Integer getTaotalCustomers() {
-        return taotalCustomers;
+    public String getTotalCustomers() {
+        return totalCustomers;
     }
 
-    public void setTaotalCustomers(Integer taotalCustomers) {
-        this.taotalCustomers = taotalCustomers;
+    public void setTotalCustomers(String totalCustomers) {
+        this.totalCustomers = totalCustomers;
     }
 
     public String getYearAndMonth() {

+ 36 - 2
kmall-admin/src/main/java/com/kmall/admin/service/impl/statistics/MonthlyCustomersServiceImpl.java

@@ -1,11 +1,15 @@
 package com.kmall.admin.service.impl.statistics;
 
 import com.kmall.admin.dao.statistics.MonthlyCustomersDao;
+import com.kmall.admin.entity.MonthlySalesGrowthEntity;
 import com.kmall.admin.service.statistics.MonthlyCustomersService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
-import java.util.Map;
+import java.math.BigDecimal;
+import java.math.RoundingMode;
+import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * @author zhangchuangbiao
@@ -20,6 +24,36 @@ public class MonthlyCustomersServiceImpl implements MonthlyCustomersService {
 
     @Override
     public Map<String, Object> queryMonthlyCustomers(String startMonth, String endMonth, String merchSn) {
-        return monthlyCustomersDao.queryMonthlyCustomers(startMonth,endMonth,merchSn);
+        List<MonthlySalesGrowthEntity> monthlySalesGrowthEntities = monthlyCustomersDao.queryMonthlyCustomers(startMonth, endMonth, merchSn);
+
+        Map<String,Object> map = new HashMap<>();
+        // 查询销售件数
+        List<String> totalNumberList = new ArrayList<>();
+//        // 查询销售额
+        List<String> totalSalesList = new ArrayList<>();
+//        // 查询客户数
+        List<String> taotalCustomersList = new ArrayList<>();
+//        // 查询客单价
+        List<String> avgBasketSaleList = new ArrayList<>();
+
+        // 按照实体类的日期进行升序排序
+        monthlySalesGrowthEntities = monthlySalesGrowthEntities.stream().sorted(Comparator.comparing(MonthlySalesGrowthEntity::getYearAndMonth)).collect(Collectors.toList());
+        for (MonthlySalesGrowthEntity monthlySalesGrowthEntity : monthlySalesGrowthEntities) {
+            String totalSales = monthlySalesGrowthEntity.getTotalSales();
+            String taotalCustomers = monthlySalesGrowthEntity.getTotalCustomers();
+            String totalNumber = monthlySalesGrowthEntity.getTotalNumber();
+
+            totalNumberList.add(totalNumber); // 销售数量
+            totalSalesList.add(totalSales); // 销售额
+            taotalCustomersList.add(taotalCustomers); // 客单数
+            String avgBasketSale = new BigDecimal(totalSales).divide(new BigDecimal(totalNumber),3, RoundingMode.HALF_UP).toString(); // 客单价
+            avgBasketSaleList.add(avgBasketSale);
+        }
+        map.put("totalNumberList",totalNumberList);
+        map.put("totalSalesList",totalSalesList);
+        map.put("taotalCustomersList",taotalCustomersList);
+        map.put("avgBasketSaleList",avgBasketSaleList);
+
+        return map;
     }
 }

+ 1 - 1
kmall-admin/src/main/resources/mybatis/mapper/statistics/MonthlyCustomersDao.xml

@@ -3,7 +3,7 @@
 
 <mapper namespace="com.kmall.admin.dao.statistics.MonthlyCustomersDao">
 
-    <select id="queryMonthlyCustomers" resultType="" >
+    <select id="queryMonthlyCustomers" resultType="com.kmall.admin.entity.MonthlySalesGrowthEntity" >
 		SELECT
 		o.merch_sn AS merchSn,
 		m.merch_name AS merchName,

+ 7 - 7
kmall-admin/src/main/webapp/js/sale/monthlyCustomers.js

@@ -38,7 +38,7 @@ var myChart;
 // 基于准备好的dom,初始化echarts实例
 var dChart = echarts.init(document.getElementById('main3'));
 // 指定图表的配置项和数据
-function dFun(x_data, y_data, y2_data,y3_data,y4_data) {
+function dFun(dateList, totalNumberList, totalSalesList,taotalCustomersList,avgBasketSaleList) {
     dChart.setOption({
         // title: {
         //     left: 'left',
@@ -76,7 +76,7 @@ function dFun(x_data, y_data, y2_data,y3_data,y4_data) {
         xAxis: {
             // splitLine: {     show: false   },
             type: 'category',
-            data: x_data,
+            data: dateList,
             axisPointer: {
                 type: 'shadow'
             },
@@ -130,7 +130,7 @@ function dFun(x_data, y_data, y2_data,y3_data,y4_data) {
             type: 'bar',
             symbol: 'circle', // 折线点设置为实心点
             symbolSize: 4, // 折线点的大小
-            data: y_data,
+            data: totalNumberList,
             barWidth: '20%',
 
         },{
@@ -138,7 +138,7 @@ function dFun(x_data, y_data, y2_data,y3_data,y4_data) {
             type: 'bar',
             symbol: 'circle', // 折线点设置为实心点
             symbolSize: 4, // 折线点的大小
-            data: y3_data,
+            data: totalSalesList,
             barWidth: '20%',
 
         },{
@@ -146,7 +146,7 @@ function dFun(x_data, y_data, y2_data,y3_data,y4_data) {
             type: 'bar',
             symbol: 'circle', // 折线点设置为实心点
             symbolSize: 4, // 折线点的大小
-            data: y4_data,
+            data: taotalCustomersList,
             barWidth: '20%',
 
         },
@@ -157,7 +157,7 @@ function dFun(x_data, y_data, y2_data,y3_data,y4_data) {
             symbol: 'circle', // 折线点设置为实心点
             symbolSize: 6, // 折线点的大小
             yAxisIndex: 1, // 这里要设置哪个y轴,默认是最左边的是0,然后1,2顺序来。
-            data: y2_data,
+            data: avgBasketSaleList,
             symbolSize: 10,
             itemStyle: {
                 normal: {
@@ -189,7 +189,7 @@ function queryMonthly(){
         type: 'POST',
         success: function(data) {
             console.log(JSON.stringify(data))
-            dFun(data.echatX, data.echatY, data.echatY2);
+            dFun(data.dateList, data.totalNumberList, data.totalSalesList,data.taotalCustomersList,data.avgBasketSaleList);
 
         },
     });