Ver código fonte

Merge remote-tracking branch 'origin/master'

李进 2 anos atrás
pai
commit
cf7c71b6cf

+ 5 - 0
device-api-service/src/main/java/com/xy/entity/DeviceStatus.java

@@ -170,4 +170,9 @@ public class DeviceStatus {
      * 最近一次补货后的库存数
      */
     private Integer afterFillStock;
+
+    /**
+     * 缺货状态
+     */
+    private Integer stockStatus;
 }

+ 1 - 0
device-api-service/src/main/java/com/xy/mapper/DeviceDataMapper.java

@@ -13,4 +13,5 @@ import com.xy.entity.DeviceData;
  */
 public interface DeviceDataMapper extends BaseMapper<DeviceData> {
 
+ 
 }

+ 14 - 1
device-api-service/src/main/java/com/xy/service/DeviceDataServiceImpl.java

@@ -113,4 +113,17 @@ public class DeviceDataServiceImpl extends ServiceImpl<DeviceDataMapper, DeviceD
         return R.ok();
     }
 
-}
+    /**
+     * 集合查询
+     *
+     * @param dto
+     * @return
+     */
+    public List<DeviceDataDto.Vo> list(DeviceDataDto.ListDTO dto) {
+        LambdaQueryWrapper<DeviceData> lambdaQueryWrapper = new MybatisPlusQuery().eqWrapper(dto, DeviceData.class).build();
+        List<DeviceData> list = list(lambdaQueryWrapper);
+        return copy(DeviceDataDto.Vo.class, list);
+    }
+
+
+}

+ 110 - 26
device-api-service/src/main/java/com/xy/service/DeviceInfoServiceImpl.java

@@ -2,7 +2,10 @@ package com.xy.service;
 
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.date.DatePattern;
+import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.text.StrBuilder;
+import cn.hutool.core.util.BooleanUtil;
 import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -14,10 +17,8 @@ import com.xy.collections.list.JArrayList;
 import com.xy.collections.list.JList;
 import com.xy.config.DeviceThreadPoolConfig;
 import com.xy.consts.DictConsts;
-import com.xy.dto.DeviceInfoDto;
-import com.xy.dto.DeviceRegisterDto;
-import com.xy.dto.DeviceStatusDto;
-import com.xy.dto.DeviceSysinfoDto;
+import com.xy.dto.*;
+import com.xy.entity.DeviceErrorsRecord;
 import com.xy.entity.DeviceInfo;
 import com.xy.entity.DeviceStatus;
 import com.xy.entity.SysDictRedis;
@@ -41,10 +42,7 @@ import org.springframework.web.bind.annotation.RequestBody;
 import javax.servlet.http.HttpServletResponse;
 import javax.validation.Valid;
 import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.stream.Collectors;
 
 import static com.xy.utils.PlusBeans.*;
@@ -68,6 +66,9 @@ public class DeviceInfoServiceImpl extends ServiceImpl<DeviceInfoMapper, DeviceI
 
     private final DeviceRegisterServiceImpl deviceRegisterService;
 
+    private final DeviceErrorsRecordServiceImpl deviceErrorsRecordService;
+    private final DeviceDataServiceImpl deviceDataService;
+
     private final RedisService<String> redisService;
 
     private final String keyPrefix = "device:history:";
@@ -251,6 +252,7 @@ public class DeviceInfoServiceImpl extends ServiceImpl<DeviceInfoMapper, DeviceI
     @Transactional(rollbackFor = Exception.class)
     public R<Boolean> mercDeviceAuth(DeviceInfoDto.MercDeviceAuthDto auth) {
         Long mercId = auth.getMercId();
+        Long parentId = auth.getParentId();
         String mercCode = auth.getMercCode();
         Long algorithmId = auth.getAlgorithmId();
         String mercName = auth.getMercName();
@@ -262,7 +264,7 @@ public class DeviceInfoServiceImpl extends ServiceImpl<DeviceInfoMapper, DeviceI
             if (CollUtil.isEmpty(devices)) {
                 return R.ok(Boolean.TRUE);
             }
-            return R.ok(removeMerRefDevices(devices));
+            return R.ok(removeMerRefDevices(devices, parentId));
         }
         //更新商户设备授权
         List<DeviceInfo> deviceInfos = this.listByIds(deviceIds);
@@ -298,7 +300,7 @@ public class DeviceInfoServiceImpl extends ServiceImpl<DeviceInfoMapper, DeviceI
             });
             if (CollUtil.isNotEmpty(removeIds)) {
                 List<DeviceInfo> removeList = this.listByIds(removeIds);
-                removeMerRefDevices(removeList);
+                removeMerRefDevices(removeList, parentId);
             }
         }
         return R.ok(Boolean.TRUE);
@@ -310,10 +312,18 @@ public class DeviceInfoServiceImpl extends ServiceImpl<DeviceInfoMapper, DeviceI
      * @param deviceInfos
      * @return
      */
-    private Boolean removeMerRefDevices(List<DeviceInfo> deviceInfos) {
+    private Boolean removeMerRefDevices(List<DeviceInfo> deviceInfos, Long parentId) {
         deviceInfos.forEach(deviceInfo -> {
-            //-1 释放关系
-            deviceInfo.setMercId(-1L);
+            //非顶级兴元商户,解绑后,机器归父商户
+            if (parentId != 1) {
+                deviceInfo.setMercId(parentId);
+            }
+            //一级商户,解绑后,直接释放
+            if (parentId == 0) {
+                //-1 释放关系
+                deviceInfo.setMercId(-1L);
+            }
+
             deviceInfo.setMercName(StrUtil.EMPTY);
             deviceInfo.setMercCode(StrUtil.EMPTY);
         });
@@ -330,6 +340,7 @@ public class DeviceInfoServiceImpl extends ServiceImpl<DeviceInfoMapper, DeviceI
     }
 
     @Override
+    @ApiOperation("通用集合查询")
     public R<List<DeviceInfoDto.Vo>> listCommon(DeviceInfoDto.ListCommon dto) {
         String deviceSearch = dto.getDeviceSearch();
         QueryWrapper<DeviceInfo> queryWrapper = new MybatisPlusQuery().eqWrapper(dto.getVo(), DeviceInfo.class).buildQW();
@@ -337,19 +348,19 @@ public class DeviceInfoServiceImpl extends ServiceImpl<DeviceInfoMapper, DeviceI
         List<Long> deviceIds = dto.getDeviceIds();
         List<String> columnList = dto.getColumnList();
         if (CollUtil.isNotEmpty(placeLineIds)) {
-            queryWrapper.eq(LambdaUtils.getProperty(DeviceInfo::getPlaceLineId), placeLineIds);
+            queryWrapper.in(LambdaUtils.getUnderlineCaseName(DeviceInfo::getPlaceLineId), placeLineIds);
         }
 
         if (StrUtil.isNotEmpty(deviceSearch)) {
-            queryWrapper.and(wrapper -> wrapper.likeRight(LambdaUtils.getProperty(DeviceInfo::getDeviceName), deviceSearch).or()
-                    .eq(LambdaUtils.getProperty(DeviceInfo::getMercDeviceCode), deviceSearch));
+            queryWrapper.and(wrapper -> wrapper.likeRight(LambdaUtils.getUnderlineCaseName(DeviceInfo::getDeviceName), deviceSearch).or()
+                    .eq(LambdaUtils.getUnderlineCaseName(DeviceInfo::getMercDeviceCode), deviceSearch));
         }
 
         if (CollUtil.isNotEmpty(columnList)) {
             queryWrapper.select(columnList.stream().toArray(String[]::new));
         }
         if (CollUtil.isNotEmpty(deviceIds)) {
-            queryWrapper.eq(LambdaUtils.getProperty(DeviceInfo::getDeviceId), deviceIds);
+            queryWrapper.eq(LambdaUtils.getUnderlineCaseName(DeviceInfo::getDeviceId), deviceIds);
         }
         return R.ok(copy(DeviceInfoDto.Vo.class, list(queryWrapper)));
     }
@@ -423,7 +434,7 @@ public class DeviceInfoServiceImpl extends ServiceImpl<DeviceInfoMapper, DeviceI
             return R.ok(Collections.emptyList());
         }
         List<DeviceInfoDto.MercHomeListVO> dataList = new ArrayList<>(list.size());
-        //获取通条件设备信息
+
         LambdaQueryWrapper<DeviceInfo> lqw = new LambdaQueryWrapper<>();
         lqw.eq(mercId != null, DeviceInfo::getMercId, mercId);
         lqw.eq(deviceId != null, DeviceInfo::getDeviceId, deviceId);
@@ -440,21 +451,45 @@ public class DeviceInfoServiceImpl extends ServiceImpl<DeviceInfoMapper, DeviceI
             vo.setPlaceLineId(v.getPlaceLineId());
             //线路下的设备列表
             List<DeviceInfoDto.MercHomeDeviceVo> deviceInfos = Beans.copy(DeviceInfoDto.MercHomeDeviceVo.class, deviceMap.get(placeLineId));
-//            deviceInfos.stream().map(DeviceInfoDto.MercHomeDeviceVo::getDeviceId);
-            //状态信息
-//            DeviceStatusDto.Vo deviceStatus = deviceStatusService.obj(new DeviceStatusDto.Vo().setDeviceId(deviceInfo.getDeviceId())).getData();
-//            deviceStatusService.listByIds()
+
+            //设备销售统计
+            String type = SysDictUtils.getValue(DictEnum.DEVICE_DATA_TYPE.getKey(), DictSonEnum.DEVICE_DATA_TYPE_DAY.getKey(), String.class);
+            String todayDate = DateUtil.format(new Date(), DatePattern.PURE_DATE_PATTERN);
+            List<Long> deviceIds = deviceInfos.stream().map(DeviceInfoDto.MercHomeDeviceVo::getDeviceId).collect(Collectors.toList());
+            //统计条件:当天
+            DeviceDataDto.ListDTO deviceDataListDTO = new DeviceDataDto.ListDTO()
+                    .setDeviceIds(deviceIds).setType(type).setDateValue(Integer.valueOf(todayDate)).setMercId(mercId);
+            List<DeviceDataDto.Vo> deviceDataList = deviceDataService.list(deviceDataListDTO);
+            Map<Long, DeviceDataDto.Vo> dataMap = new HashMap<>();
+            if (CollUtil.isNotEmpty(deviceDataList)) {
+                dataMap = deviceDataList.stream().collect(Collectors.toMap(DeviceDataDto.Vo::getDeviceId, d -> d));
+
+            }
+
+            //设备状态查询
+            List<DeviceStatusDto.Vo> deviceStatusList = deviceStatusService.list(new DeviceStatusDto.SelectList().setDeviceIds(deviceIds)).getData();
+            Map<Long, DeviceStatusDto.Vo> datdeviceStatusMap = new HashMap<>();
+            if (CollUtil.isNotEmpty(deviceStatusList)) {
+                datdeviceStatusMap = deviceStatusList.stream().collect(Collectors.toMap(DeviceStatusDto.Vo::getDeviceId, d -> d));
+            }
+
+            Map<Long, DeviceDataDto.Vo> finalDataMap = dataMap;
+            Map<Long, DeviceStatusDto.Vo> finalDatdeviceStatusMap = datdeviceStatusMap;
             deviceInfos.forEach(device -> {
+                Long dId = device.getDeviceId();
                 //设备类型 反显
                 SysDictRedis dictDeviceType = SysDictUtils.get(DictConsts.DEVICE_TYPE, String.valueOf(device.getDeviceType()));
                 device.setDeviceTypeName(dictDeviceType.getMsg());
                 //运营状态 反显
                 SysDictRedis dictBusyState = SysDictUtils.get(DictConsts.DEVICE_BUSY_STATUS, String.valueOf(device.getBusyState()));
                 device.setBusyStateName(dictBusyState.getMsg());
-                //初始化数字
-                device.setDayOrderNum(0).setOnSaleNum(0).setFillNum(0).setDaySalesPrice("0");
-                //TODO: 数字统计
-                //可售库存
+                DeviceDataDto.Vo deviceData = finalDataMap.get(dId);
+                //今日销售、库存情况 反显
+                device.setDayOrderNum(deviceData != null ? deviceData.getSalesCount() : 0);
+                device.setDaySalesPrice(deviceData != null ? deviceData.getSalesMoney() : 0);
+                DeviceStatusDto.Vo deviceStatus = finalDatdeviceStatusMap.get(deviceId);
+                device.setOnSaleNum(deviceStatus != null ? deviceStatus.getStock() : 0);
+                device.setFillNum(deviceStatus != null ? deviceStatus.getAfterFillStock() : 0);
 
             });
             vo.setDeviceInfos(deviceInfos);
@@ -474,6 +509,55 @@ public class DeviceInfoServiceImpl extends ServiceImpl<DeviceInfoMapper, DeviceI
         return list(Wrappers.<DeviceInfo>lambdaQuery().eq(DeviceInfo::getMercId, mercId));
     }
 
+
+    @ApiOperation("小程序商户设备搜索")
+    @Override
+    public R<PageBean<DeviceInfoDto.Vo2>> mercDeviceSearchPage(@RequestBody DeviceInfoDto.Page page) {
+        //小程序独有查询字段 缺货状态:stockStatus ,是否查故障设备:fault
+        Boolean fault = page.getFault();
+        Long mercId = page.getMercId();
+        if (BooleanUtil.isTrue(fault)) {
+            //查询故障设备
+            List<DeviceErrorsRecord> deviceErrorsRecords = deviceErrorsRecordService.list(Wrappers.<DeviceErrorsRecord>lambdaQuery()
+                    .eq(mercId != null, DeviceErrorsRecord::getMercId, page.getMercId()));
+            List<Long> deviceIdList = deviceErrorsRecords.stream().map(DeviceErrorsRecord::getDeviceId).collect(Collectors.toList());
+            if (CollUtil.isEmpty(deviceIdList)) {
+                return R.ok(new PageBean<>());
+            }
+            page.setDeviceIdList(deviceIdList);
+        }
+
+        PageBean<DeviceInfoDto.Vo2> pageBean = queryPage(page);
+        List<DeviceInfoDto.Vo2> records = pageBean.getRecords();
+        if (CollUtil.isNotEmpty(records)) {
+            List<Long> deviceIds = records.stream().map(DeviceInfoDto.Vo2::getDeviceId).collect(Collectors.toList());
+
+
+            String type = SysDictUtils.getValue(DictEnum.DEVICE_DATA_TYPE.getKey(), DictSonEnum.DEVICE_DATA_TYPE_DAY.getKey(), String.class);
+            String todayDate = DateUtil.format(new Date(), DatePattern.PURE_DATE_PATTERN);
+            //查询当天
+            DeviceDataDto.ListDTO dto = new DeviceDataDto.ListDTO()
+                    .setDeviceIds(deviceIds).setType(type).setDateValue(Integer.valueOf(todayDate)).setMercId(mercId);
+            List<DeviceDataDto.Vo> deviceDataList = deviceDataService.list(dto);
+            if (CollUtil.isNotEmpty(deviceDataList)) {
+                //统计数据反显
+                Map<Long, DeviceDataDto.Vo> dataMap = deviceDataList.stream().collect(Collectors.toMap(DeviceDataDto.Vo::getDeviceId, d -> d));
+                records.forEach(v -> {
+                    Long deviceId = v.getDeviceId();
+                    DeviceDataDto.Vo vo = dataMap.get(deviceId);
+                    //今日订单数
+                    v.setDayOrderNum(vo != null ? vo.getSalesCount() : 0);
+                    v.setDaySalesPrice(vo != null ? vo.getSalesMoney() : 0);
+                });
+                pageBean.setRecords(records);
+            }
+
+
+        }
+        return R.ok(pageBean);
+    }
+
+
     private PageBean<DeviceInfoDto.Vo2> queryPage(DeviceInfoDto.Page page) {
         IPage<DeviceInfoQueryPage> iPage = baseMapper.queryPage(toIPage(page.getPage()), page);
         return toPageBean(DeviceInfoDto.Vo2.class, iPage);

+ 3 - 0
device-api-service/src/main/java/com/xy/utils/enums/DictSonEnum.java

@@ -28,6 +28,9 @@ public enum DictSonEnum {
     DEVICE_ONLINE_STATUS_DISCONNECT("disconnect", "设备-联网状态-离线"),
     DEVICE_BUSY_STATUS1("1", "设备-运营状态-运营中"),
     DEVICE_BUSY_STATUS2("2", "设备-运营状态-已停运"),
+    DEVICE_DATA_TYPE_YEAR("year", "设备统计数据-按年统计"),
+    DEVICE_DATA_TYPE_MONTH("month", "设备统计数据-按月统计"),
+    DEVICE_DATA_TYPE_DAY("day", "设备统计数据-按日统计"),
 
     ;
 

+ 17 - 0
device-api-service/src/main/resources/mapper/DeviceInfoMapper.xml

@@ -65,6 +65,9 @@
             <result column="device_state_l" property="deviceStateL"/>
             <result column="device_state_r" property="deviceStateR"/>
             <result column="update_time" property="updateTime"/>
+            <result column="stock" property="stock"/>
+            <result column="after_fill_stock" property="afterFillStock"/>
+            <result column="stock_status" property="stockStatus"/>
         </association>
         <association property="deviceRegister" javaType="com.xy.dto.DeviceRegisterDto$Vo">
             <result column="register_num" property="registerNum"/>
@@ -95,6 +98,7 @@
         status.disk_remain_space, status.memery_space, status.memery_remain_space, status.camera_l_main_state,
         status.camera_l_second_state, status.camera_r_main_state, status.camera_r_second_state,
         status.device_state_l, status.device_state_r, status.update_time,
+        status.stock, status.after_fill_stock, status.stock_status,
         mr.name as merc_name,
         mp.place_name,
         ml.line_name as place_line_name,
@@ -155,6 +159,13 @@
         <if test="queryPage.deviceId != null">
             and LOCATE(#{queryPage.deviceId}, info.device_id) > 0
         </if>
+        <if test="queryPage.deviceIdList != null">
+            and device_id IN
+            <foreach collection="queryPage.deviceIdList" item="deviceId" open="(" close=")" separator=",">
+                #{deviceId}
+            </foreach>
+        </if>
+
         <if test="queryPage.deviceName != null and queryPage.deviceName != ''">
             and LOCATE(#{queryPage.deviceName}, sysinfo.device_name) > 0
         </if>
@@ -170,6 +181,12 @@
         <if test="queryPage.netState != null">
             and status.net_state = #{queryPage.netState}
         </if>
+
+        <if test="queryPage.stockStatus != null">
+            and status.stock_status = #{queryPage.stockStatus}
+        </if>
+
+
         <if test="queryPage.busyState != null">
             and info.busy_state = #{queryPage.busyState}
         </if>

+ 48 - 0
device-api/src/main/java/com/xy/dto/DeviceDataDto.java

@@ -9,6 +9,7 @@ import lombok.experimental.Accessors;
 import javax.validation.constraints.NotNull;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
+import java.util.List;
 
 /**
  * <p>
@@ -107,4 +108,51 @@ public class DeviceDataDto {
 
     }
 
+    @Data
+    @Accessors(chain = true)
+    public static class ListDTO {
+ 
+        @ApiModelProperty(value = "商户ID")
+        private Long mercId;
+
+        @ApiModelProperty(value = "设备ID")
+        private Long deviceId;
+
+        @ApiModelProperty(value = "设备ID们")
+        private List<Long> deviceIds;
+
+        @ApiModelProperty(value = "统计类型;year|month|day")
+        private String type;
+
+        @ApiModelProperty(value = "统计日期;2022|202206|20220603")
+        private Integer dateValue;
+
+        @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;
+
+        @ApiModelProperty(value = "设备故障数")
+        private Integer deviceFaultCount;
+
+
+    }
+
+
 }

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

@@ -3,7 +3,6 @@ package com.xy.dto;
 import com.alibaba.excel.annotation.ExcelProperty;
 import com.fasterxml.jackson.annotation.JsonFormat;
 import com.xy.annotate.DictFormat;
-import com.xy.annotate.NumberChange;
 import com.xy.consts.DictConsts;
 import com.xy.convert.DictConvert;
 import com.xy.utils.DataTime;
@@ -134,6 +133,19 @@ public class DeviceInfoDto {
     @Accessors(chain = true)
     public static class Page extends Vo {
 
+        @ApiModelProperty("缺货状态")
+        private Integer stockStatus;
+
+        /**
+         * 设备ID
+         */
+        private List<Long> deviceIdList;
+
+
+        @ApiModelProperty("是否查询故障设备")
+        private Boolean fault;
+
+
         @ApiModelProperty("是否导出当前页")
         private Boolean exportPage = true;
 
@@ -310,6 +322,12 @@ public class DeviceInfoDto {
         @ApiModelProperty("区域名称")
         private String districtName;
 
+        @ApiModelProperty("今日订单数")
+        private Integer dayOrderNum;
+
+        @ApiModelProperty("今日销售额")
+        private Integer daySalesPrice;
+
 
     }
 
@@ -402,6 +420,9 @@ public class DeviceInfoDto {
         @ApiModelProperty(value = "商户ID", required = true)
         private Long mercId;
 
+        @ApiModelProperty(value = "父商户ID")
+        private Long parentId;
+
         @ApiModelProperty(value = "商户名称", required = false)
         private String mercName;
 
@@ -524,9 +545,8 @@ public class DeviceInfoDto {
         @ApiModelProperty("今日订单数")
         private Integer dayOrderNum;
 
-        @NumberChange
         @ApiModelProperty("今日销售额")
-        private String daySalesPrice;
+        private Integer daySalesPrice;
 
 
         @ApiModelProperty("在售商品数")
@@ -537,15 +557,5 @@ public class DeviceInfoDto {
 
     }
 
-    @Data
-    @Accessors(chain = true)
-    public static class MercHomeDevicePage extends MercHomeQueryDTO {
-
-        @ApiModelProperty(value = "分页对象", required = true)
-        private PageBean page;
-
-
-    }
-
 
 }

+ 6 - 0
device-api/src/main/java/com/xy/dto/DeviceStatusDto.java

@@ -136,6 +136,12 @@ public class DeviceStatusDto {
          */
         @ApiModelProperty("上次补货后库存")
         private Integer afterFillStock;
+
+        /**
+         * 缺货状态
+         */
+        @ApiModelProperty("缺货状态")
+        private Integer stockStatus;
     }
 
 }

+ 13 - 2
device-api/src/main/java/com/xy/service/DeviceInfoService.java

@@ -2,6 +2,7 @@ package com.xy.service;
 
 import com.xy.annotate.RestMappingController;
 import com.xy.dto.DeviceInfoDto;
+import com.xy.utils.PageBean;
 import com.xy.utils.R;
 import org.springframework.validation.annotation.Validated;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -65,7 +66,7 @@ public interface DeviceInfoService {
      * @return
      */
     @PostMapping("list")
-    R<List<DeviceInfoDto.Vo>> list(DeviceInfoDto.ListDto dto);
+    R<List<DeviceInfoDto.Vo>> list(@RequestBody @Validated DeviceInfoDto.ListDto dto);
 
     /**
      * 通用列表查询
@@ -74,7 +75,7 @@ public interface DeviceInfoService {
      * @return
      */
     @PostMapping("listCommon")
-    R<List<DeviceInfoDto.Vo>> listCommon(DeviceInfoDto.ListCommon dto);
+    R<List<DeviceInfoDto.Vo>> listCommon(@RequestBody @Validated DeviceInfoDto.ListCommon dto);
 
     /**
      * 更新商户线路
@@ -122,4 +123,14 @@ public interface DeviceInfoService {
      */
     @PostMapping("mercHomeList")
     R<List<DeviceInfoDto.MercHomeListVO>> mercHomeList(@RequestBody @Validated DeviceInfoDto.MercHomeQueryDTO dto);
+
+
+    /**
+     * 小程序商户设备搜索
+     *
+     * @param page
+     * @return
+     */
+    @PostMapping("mercDeviceSearchPage")
+    R<PageBean<DeviceInfoDto.Vo2>> mercDeviceSearchPage(@RequestBody @Validated DeviceInfoDto.Page page);
 }

+ 15 - 0
device-start/src/main/java/com/xy/PushDoc.java

@@ -0,0 +1,15 @@
+package com.xy;
+
+import cn.torna.swaggerplugin.SwaggerPlugin;
+import lombok.extern.slf4j.Slf4j;
+
+@Slf4j
+
+public class PushDoc {
+
+    public static void main(String[] args) {
+        //手动推送更新torna文档
+        SwaggerPlugin.pushDoc();
+    }
+
+}