Browse Source

Merge remote-tracking branch 'origin/master'

李进 2 năm trước cách đây
mục cha
commit
e5d3e641b1

+ 18 - 0
device-api-cloud/src/main/java/com/xy/feign/DeviceRecordsFeign.java

@@ -0,0 +1,18 @@
+package com.xy.feign;
+
+import com.xy.FeignInterceptor;
+import com.xy.consts.ServiceConsts;
+import com.xy.service.DeviceRecordsService;
+import org.springframework.cloud.openfeign.FeignClient;
+
+/**
+ * <p>
+ *
+ * </p>
+ *
+ * @author hechunping
+ * @since 2023/3/2
+ */
+@FeignClient(value = ServiceConsts.SERVICE_NAME, configuration = FeignInterceptor.class)
+public interface DeviceRecordsFeign extends DeviceRecordsService {
+}

+ 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

@@ -575,6 +575,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);

+ 3 - 3
device-api-service/src/main/java/com/xy/service/DeviceRecordsServiceImpl.java

@@ -5,7 +5,6 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.xy.dto.DeviceRecordsDto;
 import com.xy.entity.DeviceRecords;
-import com.xy.entity.DeviceTempRecords;
 import com.xy.mapper.DeviceRecordsMapper;
 import com.xy.utils.*;
 import io.swagger.annotations.Api;
@@ -48,9 +47,10 @@ public class DeviceRecordsServiceImpl extends ServiceImpl<DeviceRecordsMapper, D
         return R.ok();
     }
 
-    @PostMapping("page")
+
     @ApiOperation("分页查询")
-    private R<PageBean<DeviceRecordsDto.Vo>> page(@RequestBody DeviceRecordsDto.Page page) {
+    @Override
+    public R<PageBean<DeviceRecordsDto.Vo>> page(DeviceRecordsDto.Page page) {
         PageBean pageBean = page.getPage();
         LambdaQueryWrapper<DeviceRecords> lambdaQueryWrapper = new MybatisPlusQuery().eqWrapper(page, DeviceRecords.class)
                 .ge(DeviceRecords::getCreateTime, page.getBeginCreateTime())

+ 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;
 
@@ -566,5 +569,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);
 }

+ 8 - 2
device-api/src/main/java/com/xy/service/DeviceRecordsService.java

@@ -1,6 +1,11 @@
 package com.xy.service;
 
 import com.xy.annotate.RestMappingController;
+import com.xy.dto.DeviceRecordsDto;
+import com.xy.utils.PageBean;
+import com.xy.utils.R;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
 
 /**
  * <p>
@@ -12,5 +17,6 @@ import com.xy.annotate.RestMappingController;
  */
 @RestMappingController("/device-records")
 public interface DeviceRecordsService {
-
-}
+    @PostMapping("page")
+    R<PageBean<DeviceRecordsDto.Vo>> page(@RequestBody DeviceRecordsDto.Page page);
+}

+ 25 - 0
device-api/src/main/java/com/xy/utils/enums/DeviceRecordsChangeType.java

@@ -0,0 +1,25 @@
+package com.xy.utils.enums;
+
+import lombok.Getter;
+
+/**
+ * <p>
+ * 设备操作记录类型
+ * </p>
+ *
+ * @author hechunping
+ * @since 2023/3/2
+ */
+@Getter
+public enum DeviceRecordsChangeType {
+    CHANGE_PRICE("1","更改价格"),
+    BING_GOODS("2","绑定商品")
+    ;
+    private String code;
+    private String msg;
+
+    DeviceRecordsChangeType(String code, String msg) {
+        this.code = code;
+        this.msg = msg;
+    }
+}