Răsfoiți Sursa

Merge remote-tracking branch 'origin/master'

hechunping 2 ani în urmă
părinte
comite
25496ca8f7

+ 60 - 0
device-api-service/src/main/java/com/xy/service/DeviceDataServiceImpl.java

@@ -14,6 +14,7 @@ import com.xy.entity.SysDictRedis;
 import com.xy.mapper.DeviceDataMapper;
 import com.xy.utils.*;
 import com.xy.utils.enums.DictEnum;
+import com.xy.utils.enums.DictSonEnum;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
@@ -126,4 +127,63 @@ public class DeviceDataServiceImpl extends ServiceImpl<DeviceDataMapper, DeviceD
     }
 
 
+    /**
+     * 指定查询商户某设备某天数据
+     *
+     * @param deviceId
+     * @param mercId
+     * @param dateValue
+     * @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);
+    }
+
+    /**
+     * 指定查询商户某设备某月数据
+     *
+     * @param deviceId
+     * @param mercId
+     * @param dateValue
+     * @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);
+    }
+
+    /**
+     * 指定查询商户某设备某年数据
+     *
+     * @param deviceId
+     * @param mercId
+     * @param dateValue
+     * @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);
+    }
+
+    /**
+     * 指定查询商户某设备某年、月、日数据
+     *
+     * @param type
+     * @param deviceId
+     * @param mercId
+     * @param dateValue
+     * @return
+     */
+    public DeviceDataDto.Vo getOneData(String type, Long deviceId, Long mercId, String dateValue) {
+        LambdaQueryWrapper<DeviceData> lambdaQueryWrapper = new LambdaQueryWrapper<>();
+        lambdaQueryWrapper.eq(DeviceData::getType, type);
+        lambdaQueryWrapper.eq(DeviceData::getDeviceId, deviceId);
+        lambdaQueryWrapper.eq(DeviceData::getMercId, mercId);
+        lambdaQueryWrapper.eq(DeviceData::getDateValue, Integer.valueOf(dateValue));
+        DeviceData data = getOne(lambdaQueryWrapper);
+        return copy(DeviceDataDto.Vo.class, data);
+    }
+
+
 }

+ 90 - 0
device-api-service/src/main/java/com/xy/service/DeviceInfoServiceImpl.java

@@ -557,6 +557,96 @@ public class DeviceInfoServiceImpl extends ServiceImpl<DeviceInfoMapper, DeviceI
         return R.ok(pageBean);
     }
 
+    @ApiOperation("小程序商户设备详情-数据统计")
+    @Override
+    public R<DeviceInfoDto.DeviceDataCountVO> dataCount(@RequestBody DeviceInfoDto.DeviceDataCountDTO dto) {
+// 统计类型(1=经营数据,2=经营图表,3=温度图表,4=信号图表,5=商品管理)
+        Integer type = dto.getType();
+        switch (type) {
+            case 1:
+                //经营数据
+                return R.ok(dataCount1(dto));
+            case 2:
+                //经营图表
+                return R.ok(dataCount2(dto));
+            case 3:
+                //温度图表
+                return R.ok(dataCount3(dto));
+            case 4:
+                //信号图表
+                return R.ok(dataCount4(dto));
+            case 5:
+                //商品管理
+                return R.ok(dataCount5(dto));
+            default:
+                break;
+        }
+        return R.ok();
+    }
+
+    /**
+     * 经营数据
+     *
+     * @param dto
+     * @return
+     */
+    private DeviceInfoDto.DeviceDataCountVO dataCount1(DeviceInfoDto.DeviceDataCountDTO dto) {
+        Long deviceId = dto.getDeviceId();
+        Long mercId = dto.getMercId();
+        DeviceInfoDto.DeviceDataCountVO vo = new DeviceInfoDto.DeviceDataCountVO();
+        //当天
+        DeviceDataDto.Vo dayData = deviceDataService.getByDay(deviceId, mercId, DateUtil.format(new Date(), DatePattern.PURE_DATE_PATTERN));
+        //当月
+        DeviceDataDto.Vo monthData = deviceDataService.getByMonth(deviceId, mercId, DateUtil.format(new Date(), DatePattern.SIMPLE_MONTH_PATTERN));
+        vo.setDayBusinessData(copy(DeviceInfoDto.BusinessData.class, dayData));
+        vo.setMonthBusinessData(copy(DeviceInfoDto.BusinessData.class, monthData));
+        return vo;
+    }
+
+    /**
+     * 经营图表
+     *
+     * @param dto
+     * @return
+     */
+    private DeviceInfoDto.DeviceDataCountVO dataCount2(DeviceInfoDto.DeviceDataCountDTO dto) {
+        DeviceInfoDto.DeviceDataCountVO vo = new DeviceInfoDto.DeviceDataCountVO();
+        return vo;
+    }
+
+    /**
+     * 温度图表
+     *
+     * @param dto
+     * @return
+     */
+    private DeviceInfoDto.DeviceDataCountVO dataCount3(DeviceInfoDto.DeviceDataCountDTO dto) {
+        DeviceInfoDto.DeviceDataCountVO vo = new DeviceInfoDto.DeviceDataCountVO();
+        return vo;
+    }
+
+    /**
+     * 信号图表
+     *
+     * @param dto
+     * @return
+     */
+    private DeviceInfoDto.DeviceDataCountVO dataCount4(DeviceInfoDto.DeviceDataCountDTO dto) {
+        DeviceInfoDto.DeviceDataCountVO vo = new DeviceInfoDto.DeviceDataCountVO();
+        return vo;
+    }
+
+    /**
+     * 商品管理
+     *
+     * @param dto
+     * @return
+     */
+    private DeviceInfoDto.DeviceDataCountVO dataCount5(DeviceInfoDto.DeviceDataCountDTO dto) {
+        DeviceInfoDto.DeviceDataCountVO vo = new DeviceInfoDto.DeviceDataCountVO();
+        return vo;
+    }
+
 
     private PageBean<DeviceInfoDto.Vo2> queryPage(DeviceInfoDto.Page page) {
         IPage<DeviceInfoQueryPage> iPage = baseMapper.queryPage(toIPage(page.getPage()), page);

+ 59 - 0
device-api/src/main/java/com/xy/dto/DeviceInfoDto.java

@@ -36,6 +36,9 @@ public class DeviceInfoDto {
     @Accessors(chain = true)
     public static class Obj {
 
+        @ApiModelProperty("商户ID")
+        private Long mercId;
+
         @ApiModelProperty("设备id")
         private Long deviceId;
 
@@ -557,5 +560,61 @@ public class DeviceInfoDto {
 
     }
 
+    @Data
+    @Accessors(chain = true)
+    public static class DeviceDataCountDTO {
+
+        @ApiModelProperty("商户ID")
+        private Long mercId;
+
+        @ApiModelProperty("设备id")
+        private Long deviceId;
+
+        /**
+         * 统计类型(1=经营数据,2=经营图表,3=温度图表,4=信号图表,5=商品管理)
+         */
+        @ApiModelProperty(value = "统计类型", notes = "统计类型(1=经营数据,2=经营图表,3=温度图表,4=信号图表,5=商品管理)")
+        private Integer type;
+    }
+
+    @Data
+    @Accessors(chain = true)
+    public static class DeviceDataCountVO {
+        @ApiModelProperty("(天)经营数据")
+        BusinessData dayBusinessData;
+
+        @ApiModelProperty("(月)经营数据")
+        BusinessData monthBusinessData;
+
+    }
+
+
+    @Data
+    @Accessors(chain = true)
+    public static class BusinessData {
+        @ApiModelProperty(value = "营业额;单位分")
+        private Integer salesMoney;
+
+        @ApiModelProperty(value = "销售笔数")
+        private Integer salesCount;
+
+        @ApiModelProperty(value = "销售商品数")
+        private Integer goodsCount;
+
+        @ApiModelProperty(value = "退款金额;单位分")
+        private Integer refundMoney;
+
+        @ApiModelProperty(value = "退款笔数")
+        private Integer refundCount;
+
+        @ApiModelProperty(value = "风险订单数")
+        private Integer riskCount;
+
+        @ApiModelProperty(value = "0元订单笔数")
+        private Integer zeroCount;
+
+  
+    }
+
 
 }

+ 9 - 0
device-api/src/main/java/com/xy/service/DeviceInfoService.java

@@ -133,4 +133,13 @@ public interface DeviceInfoService {
      */
     @PostMapping("mercDeviceSearchPage")
     R<PageBean<DeviceInfoDto.Vo2>> mercDeviceSearchPage(@RequestBody @Validated DeviceInfoDto.Page page);
+
+    /**
+     * 小程序商户设备详情-数据统计
+     *
+     * @param dto
+     * @return
+     */
+    @PostMapping("dataCount")
+    R<DeviceInfoDto.DeviceDataCountVO> dataCount(@RequestBody @Validated DeviceInfoDto.DeviceDataCountDTO dto);
 }