Bladeren bron

Merge remote-tracking branch 'origin/master'

李进 2 jaren geleden
bovenliggende
commit
5d666fda4a

+ 56 - 0
device-api-service-merc-mini/src/main/java/com/xy/controller/MercMiniOrderController.java

@@ -0,0 +1,56 @@
+package com.xy.controller;
+
+import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.date.DatePattern;
+import cn.hutool.core.date.DateTime;
+import cn.hutool.core.date.DateUtil;
+import com.xy.annotate.RestMappingController;
+import com.xy.dto.DeviceDataDto;
+import com.xy.service.DeviceDataServiceImpl;
+import com.xy.utils.MercAuthUtils;
+import com.xy.utils.R;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.RequiredArgsConstructor;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+
+import javax.validation.Valid;
+import java.util.Date;
+import java.util.List;
+
+/***
+ * Desc:商户小程序设备订单统计
+ * @author 谭斌
+ * @date 2023/3/17 10:30
+ */
+@RestMappingController("merc-mini/device/order")
+@RequiredArgsConstructor
+@Api(tags = "商户小程序设备订单统计")
+public class MercMiniOrderController {
+
+    private final DeviceDataServiceImpl deviceDataService;
+
+
+    @ApiOperation("订单列表页统计")
+    @PostMapping("count")
+    public R<DeviceDataDto.MercOrdersDayCountVO> mercHomeStatistical(@RequestBody @Valid DeviceDataDto.MercOrdersDayCountDTO dto) {
+        DeviceDataDto.MercOrdersDayCountVO vo = new DeviceDataDto.MercOrdersDayCountVO().setOrderNum(0).setOrderTotalAmount(0);
+        String dateValue = DateUtil.format(new Date(), DatePattern.PURE_DATE_PATTERN);
+        Long mercId = MercAuthUtils.getMercId();
+        DateTime orderDate = dto.getOrderDate();
+        if (orderDate != null) {
+            dateValue = DateUtil.format(orderDate, DatePattern.PURE_DATE_PATTERN);
+        }
+
+        List<DeviceDataDto.Vo> mercDataOneDay = deviceDataService.getMercDataOneDay(mercId, dateValue);
+        if (CollUtil.isEmpty(mercDataOneDay)) {
+            return R.ok(vo);
+        }
+        vo.setOrderTotalAmount(mercDataOneDay.stream().mapToInt(DeviceDataDto.Vo::getSalesMoney).sum());
+        vo.setOrderNum(mercDataOneDay.stream().mapToInt(DeviceDataDto.Vo::getSalesCount).sum());
+        return R.ok(vo);
+    }
+
+
+}

+ 6 - 12
device-api-service/src/main/java/com/xy/service/DeviceDataServiceImpl.java

@@ -140,8 +140,7 @@ public class DeviceDataServiceImpl extends ServiceImpl<DeviceDataMapper, DeviceD
      * @return
      */
     public DeviceDataDto.Vo getByDay(Long deviceId, Long mercId, String dateValue) {
-        String type = SysDictUtils.getValue(DictEnum.DEVICE_DATA_TYPE.getKey(), DictSonEnum.DEVICE_DATA_TYPE_DAY.getKey(), String.class);
-        return getOneData(type, deviceId, mercId, dateValue);
+        return getOneData(DictSonEnum.DEVICE_DATA_TYPE_DAY.getKey(), deviceId, mercId, dateValue);
     }
 
     /**
@@ -152,8 +151,7 @@ public class DeviceDataServiceImpl extends ServiceImpl<DeviceDataMapper, DeviceD
      * @return
      */
     public List<DeviceDataDto.Vo> getMercDataOneDay(Long mercId, String dateValue) {
-        String type = SysDictUtils.getValue(DictEnum.DEVICE_DATA_TYPE.getKey(), DictSonEnum.DEVICE_DATA_TYPE_DAY.getKey(), String.class);
-        return getMercListData(type, mercId, dateValue);
+        return getMercListData(DictSonEnum.DEVICE_DATA_TYPE_DAY.getKey(), mercId, dateValue);
     }
 
 
@@ -165,8 +163,7 @@ public class DeviceDataServiceImpl extends ServiceImpl<DeviceDataMapper, DeviceD
      * @return
      */
     public List<DeviceDataDto.Vo> getMercDataOneMonth(Long mercId, String dateValue) {
-        String type = SysDictUtils.getValue(DictEnum.DEVICE_DATA_TYPE.getKey(), DictSonEnum.DEVICE_DATA_TYPE_MONTH.getKey(), String.class);
-        return getMercListData(type, mercId, dateValue);
+        return getMercListData(DictSonEnum.DEVICE_DATA_TYPE_MONTH.getKey(), mercId, dateValue);
     }
 
     /**
@@ -178,8 +175,7 @@ public class DeviceDataServiceImpl extends ServiceImpl<DeviceDataMapper, DeviceD
      * @return
      */
     public DeviceDataDto.Vo getByMonth(Long deviceId, Long mercId, String dateValue) {
-        String type = SysDictUtils.getValue(DictEnum.DEVICE_DATA_TYPE.getKey(), DictSonEnum.DEVICE_DATA_TYPE_MONTH.getKey(), String.class);
-        return getOneData(type, deviceId, mercId, dateValue);
+        return getOneData(DictSonEnum.DEVICE_DATA_TYPE_MONTH.getKey(), deviceId, mercId, dateValue);
     }
 
     /**
@@ -191,8 +187,7 @@ public class DeviceDataServiceImpl extends ServiceImpl<DeviceDataMapper, DeviceD
      * @return
      */
     public DeviceDataDto.Vo getByYear(Long deviceId, Long mercId, String dateValue) {
-        String type = SysDictUtils.getValue(DictEnum.DEVICE_DATA_TYPE.getKey(), DictSonEnum.DEVICE_DATA_TYPE_YEAR.getKey(), String.class);
-        return getOneData(type, deviceId, mercId, dateValue);
+        return getOneData(DictSonEnum.DEVICE_DATA_TYPE_YEAR.getKey(), deviceId, mercId, dateValue);
     }
 
     /**
@@ -241,8 +236,7 @@ public class DeviceDataServiceImpl extends ServiceImpl<DeviceDataMapper, DeviceD
      * @return
      */
     public List<DeviceDataDto.Vo> getListByDay(Long deviceId, Integer startDateValue, Integer endDateValue) {
-        String type = SysDictUtils.getValue(DictEnum.DEVICE_DATA_TYPE.getKey(), DictSonEnum.DEVICE_DATA_TYPE_DAY.getKey(), String.class);
-        return getListData(type, deviceId, startDateValue, endDateValue);
+        return getListData(DictSonEnum.DEVICE_DATA_TYPE_DAY.getKey(), deviceId, startDateValue, endDateValue);
     }
 
     /**

+ 28 - 13
device-api-service/src/main/java/com/xy/service/DeviceInfoServiceImpl.java

@@ -136,13 +136,14 @@ public class DeviceInfoServiceImpl extends ServiceImpl<DeviceInfoMapper, DeviceI
 
     @ApiOperation("反显设备名称")
     @Override
-    public R<Map<Long,String>> getDeviceNameList(DeviceInfoDto.DeviceIdDto dto){
+    public R<Map<Long, String>> getDeviceNameList(DeviceInfoDto.DeviceIdDto dto) {
         LambdaQueryWrapper<DeviceInfo> lqw = new LambdaQueryWrapper<DeviceInfo>()
-                .in(DeviceInfo::getDeviceId,dto.getDeviceId())
-                .select(DeviceInfo::getDeviceId,DeviceInfo::getDeviceName);
+                .in(DeviceInfo::getDeviceId, dto.getDeviceId())
+                .select(DeviceInfo::getDeviceId, DeviceInfo::getDeviceName);
         List<DeviceInfo> deviceInfoList = list(lqw);
-        return  R.ok(deviceInfoList.stream().collect(Collectors.toMap(DeviceInfo::getDeviceId, DeviceInfo::getDeviceName)));
+        return R.ok(deviceInfoList.stream().collect(Collectors.toMap(DeviceInfo::getDeviceId, DeviceInfo::getDeviceName)));
     }
+
     @Override
     @ApiOperation("设备访问历史添加")
     public R history(DeviceInfoDto.Obj obj) {
@@ -619,7 +620,12 @@ public class DeviceInfoServiceImpl extends ServiceImpl<DeviceInfoMapper, DeviceI
     }
 
 
-    @ApiOperation("小程序商户设备搜索")
+    /**
+     * 小程序商户设备搜索
+     *
+     * @param page
+     * @return
+     */
     @Override
     public R<PageBean<DeviceInfoDto.MerHomeSearchVO>> mercDeviceSearchPage(@RequestBody DeviceInfoDto.Page page) {
         PageBean<DeviceInfoDto.MerHomeSearchVO> pageData = new PageBean<>();
@@ -674,7 +680,12 @@ public class DeviceInfoServiceImpl extends ServiceImpl<DeviceInfoMapper, DeviceI
         return R.ok(pageData);
     }
 
-    @ApiOperation("小程序商户设备详情-数据统计")
+    /**
+     * 小程序商户设备详情-数据统计
+     *
+     * @param dto
+     * @return
+     */
     @Override
     public R<DeviceInfoDto.DeviceDataCountVO> dataCount(@RequestBody DeviceInfoDto.DeviceDataCountDTO dto) {
 // 统计类型(1=经营数据,2=经营图表,3=温度图表,4=信号图表,5=商品管理)
@@ -749,40 +760,44 @@ public class DeviceInfoServiceImpl extends ServiceImpl<DeviceInfoMapper, DeviceI
         //每天的数据
         Map<Integer, DeviceDataDto.Vo> dataDayMap = listByDay.stream().collect(Collectors.toMap(DeviceDataDto.Vo::getDateValue, i -> i));
 
-        List<DeviceInfoDto.MyChartSeries> series = new ArrayList<>();
+        List<DeviceInfoDto.MyChartSeries3> series = new ArrayList<>();
 
         String[] names = {"销售额", "订单数", "退款金额", "退款数"};
         for (int i = 0; i < names.length; i++) {
-            DeviceInfoDto.MyChartSeries myChartSeries = new DeviceInfoDto.MyChartSeries();
+            DeviceInfoDto.MyChartSeries3 myChartSeries = new DeviceInfoDto.MyChartSeries3();
             //某个类型每天的数据
-            List<Integer> data = new ArrayList<>();
+            List<String> data = new ArrayList<>();
             if (i == 0) {
                 //销售额
                 dateList.forEach(d -> {
                     //每日数据填充
                     DeviceDataDto.Vo deviceData = dataDayMap.get(d);
-                    data.add(deviceData == null ? 0 : deviceData.getSalesMoney());
+                    Integer salesMoney = deviceData.getSalesMoney() == null ? 0 : deviceData.getSalesMoney();
+                    BigDecimal day = BigDecimal.valueOf(salesMoney).divide(BigDecimal.valueOf(100));
+                    data.add(String.valueOf(day));
                 });
             } else if (i == 1) {
                 //订单数
                 dateList.forEach(d -> {
                     //每日数据填充
                     DeviceDataDto.Vo deviceData = dataDayMap.get(d);
-                    data.add(deviceData == null ? 0 : deviceData.getSalesCount());
+                    data.add(deviceData == null ? "0" : String.valueOf(deviceData.getSalesCount()));
                 });
             } else if (i == 2) {
                 //退款金额
                 dateList.forEach(d -> {
                     //每日数据填充
                     DeviceDataDto.Vo deviceData = dataDayMap.get(d);
-                    data.add(deviceData == null ? 0 : deviceData.getRefundMoney());
+                    Integer refundMoney = deviceData.getRefundMoney() == null ? 0 : deviceData.getRefundMoney();
+                    BigDecimal day = BigDecimal.valueOf(refundMoney).divide(BigDecimal.valueOf(100));
+                    data.add(String.valueOf(day));
                 });
             } else if (i == 3) {
                 //退款数
                 dateList.forEach(d -> {
                     //每日数据填充
                     DeviceDataDto.Vo deviceData = dataDayMap.get(d);
-                    data.add(deviceData == null ? 0 : deviceData.getRefundCount());
+                    data.add(deviceData == null ? "0" : String.valueOf(deviceData.getRefundCount()));
                 });
             }
             myChartSeries.setName(names[i]);

+ 26 - 1
device-api/src/main/java/com/xy/dto/DeviceDataDto.java

@@ -1,5 +1,6 @@
 package com.xy.dto;
 
+import cn.hutool.core.date.DateTime;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.xy.utils.PageBean;
 import io.swagger.annotations.ApiModelProperty;
@@ -111,7 +112,7 @@ public class DeviceDataDto {
     @Data
     @Accessors(chain = true)
     public static class ListDTO {
- 
+
         @ApiModelProperty(value = "商户ID")
         private Long mercId;
 
@@ -154,5 +155,29 @@ public class DeviceDataDto {
 
     }
 
+    /**
+     * B端小程序订单分页统计 按天
+     */
+    @Data
+    @Accessors(chain = true)
+    public static class MercOrdersDayCountVO {
+        @ApiModelProperty(value = "总订单数")
+        private Integer orderNum;
+
+        @ApiModelProperty(value = "订单总金额")
+        private Integer orderTotalAmount;
+
+    }
+
+    @Data
+    @Accessors(chain = true)
+    public static class MercOrdersDayCountDTO {
+
+        @JsonFormat(pattern = "yyyy-MM-dd")
+        @ApiModelProperty(value = "日期(yyyy-MM-dd)")
+        private DateTime orderDate;
+
+    }
+
 
 }

+ 13 - 2
device-api/src/main/java/com/xy/dto/DeviceInfoDto.java

@@ -718,7 +718,7 @@ public class DeviceInfoDto {
         private List<String> categories;
 
         @ApiModelProperty("名称、数据")
-        private List<MyChartSeries> series;
+        private List<MyChartSeries3> series;
 
     }
 
@@ -744,6 +744,17 @@ public class DeviceInfoDto {
 
     }
 
+    @Data
+    @Accessors(chain = true)
+    public static class MyChartSeries3 {
+        @ApiModelProperty("数据")
+        private List<String> data;
+
+        @ApiModelProperty("名称")
+        private String name;
+
+    }
+
 
     @Data
     @Accessors(chain = true)
@@ -799,7 +810,7 @@ public class DeviceInfoDto {
 
     @Data
     @Accessors(chain = true)
-    public static class DeviceIdDto{
+    public static class DeviceIdDto {
         @NotNull(message = "设备id不能为空")
         @ApiModelProperty("设备id")
         private List<Long> deviceId;