Prechádzať zdrojové kódy

添加批量导入门锁设备,导入绑定门锁设备示例,修改水电表展示接口,添加小程序钟点房12小时内的状态接口

liu 1 rok pred
rodič
commit
700460450a
33 zmenil súbory, kde vykonal 1877 pridanie a 296 odobranie
  1. 8 0
      pom.xml
  2. 28 0
      src/main/java/com/template/annotation/ExcelExport.java
  3. 31 0
      src/main/java/com/template/annotation/ExcelImport.java
  4. 12 4
      src/main/java/com/template/api/HouseLockControllerAPI.java
  5. 7 1
      src/main/java/com/template/api/HouseNumberControllerAPI.java
  6. 4 0
      src/main/java/com/template/api/HouseOrderAPI.java
  7. 77 0
      src/main/java/com/template/common/utils/ExcelClassField.java
  8. 996 52
      src/main/java/com/template/common/utils/ExcelUtils.java
  9. 64 0
      src/main/java/com/template/common/utils/ExcelUtils2.java
  10. 11 11
      src/main/java/com/template/controller/HouseController.java
  11. 95 4
      src/main/java/com/template/controller/HouseLockController.java
  12. 28 13
      src/main/java/com/template/controller/HouseNumberController.java
  13. 1 1
      src/main/java/com/template/controller/HouseNumberStateController.java
  14. 282 187
      src/main/java/com/template/controller/HouseOrderController.java
  15. 2 6
      src/main/java/com/template/controller/HousePriceController.java
  16. 3 5
      src/main/java/com/template/controller/LoginController.java
  17. 5 5
      src/main/java/com/template/controller/UploadServlet.java
  18. 9 2
      src/main/java/com/template/mapper/HouseNumberMapper.java
  19. 4 0
      src/main/java/com/template/mapper/UnlockingCustomMapper.java
  20. 21 0
      src/main/java/com/template/model/dto/HouseLockListImportDto.java
  21. 12 0
      src/main/java/com/template/model/vo/AppletReserveDayVo.java
  22. 50 0
      src/main/java/com/template/model/vo/HouseNumberPageVo.java
  23. 2 0
      src/main/java/com/template/model/vo/HouseOrderPageListVo.java
  24. 3 0
      src/main/java/com/template/model/vo/LoginVO.java
  25. 7 0
      src/main/java/com/template/services/HouseNumberService.java
  26. 1 3
      src/main/java/com/template/services/HouseService.java
  27. 3 0
      src/main/java/com/template/services/UnlockingCustomService.java
  28. 22 0
      src/main/java/com/template/services/impl/HouseNumberServiceImpl.java
  29. 10 2
      src/main/java/com/template/services/impl/HouseServiceImpl.java
  30. 10 0
      src/main/java/com/template/services/impl/UnlockingCustomServiceImpl.java
  31. 60 0
      src/main/resources/mapper/template/HouseNumberMapper.xml
  32. 1 0
      src/main/resources/mapper/template/HouseOrderMapper.xml
  33. 8 0
      src/main/resources/mapper/template/UnlockingCustomMapper.xml

+ 8 - 0
pom.xml

@@ -223,6 +223,14 @@
             <scope>compile</scope>
             <scope>compile</scope>
         </dependency>
         </dependency>
 
 
+
+        <!-- 文件上传 -->
+        <dependency>
+        <groupId>org.apache.httpcomponents</groupId>
+        <artifactId>httpmime</artifactId>
+        <version>4.5.7</version>
+        </dependency>
+
     </dependencies>
     </dependencies>
 
 
     <build>
     <build>

+ 28 - 0
src/main/java/com/template/annotation/ExcelExport.java

@@ -0,0 +1,28 @@
+package com.template.annotation;
+ 
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+ 
+/**
+ * @author sunnyzyq
+ * @date 2021/12/17
+ */
+@Target(ElementType.FIELD)
+@Retention(RetentionPolicy.RUNTIME)
+public @interface ExcelExport {
+ 
+    /** 字段名称 */
+    String value();
+ 
+    /** 导出排序先后: 数字越小越靠前(默认按Java类字段顺序导出) */
+    int sort() default 0;
+ 
+    /** 导出映射,格式如:0-未知;1-男;2-女 */
+    String kv() default "";
+ 
+    /** 导出模板示例值(有值的话,直接取该值,不做映射) */
+    String example() default "";
+ 
+}

+ 31 - 0
src/main/java/com/template/annotation/ExcelImport.java

@@ -0,0 +1,31 @@
+package com.template.annotation;
+ 
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+ 
+/**
+ * @author sunnyzyq
+ * @date 2021/12/17
+ */
+@Target(ElementType.FIELD)
+@Retention(RetentionPolicy.RUNTIME)
+public @interface ExcelImport {
+ 
+    /** 字段名称 */
+    String value();
+ 
+    /** 导出映射,格式如:0-未知;1-男;2-女 */
+    String kv() default "";
+ 
+    /** 是否为必填字段(默认为非必填) */
+    boolean required() default false;
+ 
+    /** 最大长度(默认255) */
+    int maxLength() default 255;
+ 
+    /** 导入唯一性验证(多个字段则取联合验证) */
+    boolean unique() default false;
+ 
+}

+ 12 - 4
src/main/java/com/template/api/HouseLockControllerAPI.java

@@ -4,10 +4,10 @@ import com.template.model.dto.BingingDto;
 import com.template.model.dto.RemoteUnlocking;
 import com.template.model.dto.RemoteUnlocking;
 import com.template.model.result.CommonResult;
 import com.template.model.result.CommonResult;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiOperation;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.servlet.http.HttpServletResponse;
 
 
 @RequestMapping("/auto/house-lock")
 @RequestMapping("/auto/house-lock")
 public interface HouseLockControllerAPI {
 public interface HouseLockControllerAPI {
@@ -44,4 +44,12 @@ public interface HouseLockControllerAPI {
     @ApiOperation(value = "判断房间是否绑定", notes = "判断房间是否绑定", httpMethod = "GET")
     @ApiOperation(value = "判断房间是否绑定", notes = "判断房间是否绑定", httpMethod = "GET")
     CommonResult ifBinging(String houseNumberId);
     CommonResult ifBinging(String houseNumberId);
 
 
+    @GetMapping("/lockExport")
+    @ApiOperation(value = "门锁导出示例", notes = "门锁导出示例", httpMethod = "GET")
+    CommonResult lockExport(HttpServletResponse response);
+
+    @PostMapping("/lockImport")
+    @ApiOperation(value = "门锁导入", notes = "门锁导入", httpMethod = "POST")
+    CommonResult lockImport(@RequestParam("file") MultipartFile file) throws Exception;
+
 }
 }

+ 7 - 1
src/main/java/com/template/api/HouseNumberControllerAPI.java

@@ -2,7 +2,6 @@ package com.template.api;
 
 
 import com.template.model.dto.HouseNumberBindingDto;
 import com.template.model.dto.HouseNumberBindingDto;
 import com.template.model.dto.HouseNumberDeleteBindingDto;
 import com.template.model.dto.HouseNumberDeleteBindingDto;
-import com.template.model.pojo.HouseNumber;
 import com.template.model.result.CommonResult;
 import com.template.model.result.CommonResult;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.GetMapping;
@@ -10,6 +9,8 @@ import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestMapping;
 
 
+import javax.servlet.http.HttpServletResponse;
+
 @RequestMapping("/auto/house-number")
 @RequestMapping("/auto/house-number")
 public interface HouseNumberControllerAPI {
 public interface HouseNumberControllerAPI {
 
 
@@ -33,4 +34,9 @@ public interface HouseNumberControllerAPI {
     @ApiOperation(value = "水电表删除绑定", notes = "水电表删除绑定", httpMethod = "POST")
     @ApiOperation(value = "水电表删除绑定", notes = "水电表删除绑定", httpMethod = "POST")
     CommonResult delete(@RequestBody HouseNumberDeleteBindingDto houseNumberDeleteBindingDto);
     CommonResult delete(@RequestBody HouseNumberDeleteBindingDto houseNumberDeleteBindingDto);
 
 
+    @GetMapping("/listExport")
+    @ApiOperation(value = "房间导出", notes = "房间导出", httpMethod = "GET")
+    CommonResult listExport(HttpServletResponse response, String permissionSettingId, String keyWord, String startTime, String endTime);
+
+
 }
 }

+ 4 - 0
src/main/java/com/template/api/HouseOrderAPI.java

@@ -125,5 +125,9 @@ public interface HouseOrderAPI {
     @ApiOperation(value = "查询退款", notes = "管理端——支付", httpMethod = "POST")
     @ApiOperation(value = "查询退款", notes = "管理端——支付", httpMethod = "POST")
     CommonResult queryRefundById(@RequestParam String refundNo);
     CommonResult queryRefundById(@RequestParam String refundNo);
 
 
+    @GetMapping("/appletReserveHour")
+    @ApiOperation(value = "小程序-钟点房当天占用状态", notes = "小程序-钟点房当天占用状态", httpMethod = "GET")
+    CommonResult appletReserveHour(String houseNumberId, String startTime, int liveTime);
+
 }
 }
 
 

+ 77 - 0
src/main/java/com/template/common/utils/ExcelClassField.java

@@ -0,0 +1,77 @@
+package com.template.common.utils;
+ 
+import java.util.LinkedHashMap;
+ 
+/**
+ * @author sunnyzyq
+ * @date 2021/12/17
+ */
+public class ExcelClassField {
+ 
+    /** 字段名称 */
+    private String fieldName;
+ 
+    /** 表头名称 */
+    private String name;
+ 
+    /** 映射关系 */
+    private LinkedHashMap<String, String> kvMap;
+ 
+    /** 示例值 */
+    private Object example;
+ 
+    /** 排序 */
+    private int sort;
+ 
+    /** 是否为注解字段:0-否,1-是 */
+    private int hasAnnotation;
+ 
+    public String getFieldName() {
+        return fieldName;
+    }
+ 
+    public void setFieldName(String fieldName) {
+        this.fieldName = fieldName;
+    }
+ 
+    public String getName() {
+        return name;
+    }
+ 
+    public void setName(String name) {
+        this.name = name;
+    }
+ 
+    public LinkedHashMap<String, String> getKvMap() {
+        return kvMap;
+    }
+ 
+    public void setKvMap(LinkedHashMap<String, String> kvMap) {
+        this.kvMap = kvMap;
+    }
+ 
+    public Object getExample() {
+        return example;
+    }
+ 
+    public void setExample(Object example) {
+        this.example = example;
+    }
+ 
+    public int getSort() {
+        return sort;
+    }
+ 
+    public void setSort(int sort) {
+        this.sort = sort;
+    }
+ 
+    public int getHasAnnotation() {
+        return hasAnnotation;
+    }
+ 
+    public void setHasAnnotation(int hasAnnotation) {
+        this.hasAnnotation = hasAnnotation;
+    }
+ 
+}

Rozdielové dáta súboru neboli zobrazené, pretože súbor je príliš veľký
+ 996 - 52
src/main/java/com/template/common/utils/ExcelUtils.java


+ 64 - 0
src/main/java/com/template/common/utils/ExcelUtils2.java

@@ -0,0 +1,64 @@
+package com.template.common.utils;
+
+import lombok.extern.slf4j.Slf4j;
+import org.apache.poi.ss.usermodel.Workbook;
+import org.springframework.boot.system.ApplicationHome;
+
+import javax.servlet.http.HttpServletResponse;
+import java.io.*;
+import java.net.URLDecoder;
+import java.net.URLEncoder;
+
+/**
+ * @Author: binguo
+ * @Date: 2023/7/10 星期一 14:21
+ * @Description: com.repair.common.utils
+ * @Version: 1.0
+ */
+@Slf4j
+public class ExcelUtils2 {
+    public static void fileDownload(String fileName, HttpServletResponse response) {
+        try {
+            ApplicationHome applicationHome = new ApplicationHome(ExcelUtils2.class);
+            String pathResouce = applicationHome.getDir().getParentFile().getParentFile().getAbsolutePath();
+            String decode = URLDecoder.decode(pathResouce, "utf-8");
+            File readPath = new File(decode + "/project/repair" + File.separator);
+            File file = new File(readPath.getAbsolutePath() + fileName);
+            // 获取文件名
+            String filename = file.getName();
+            // 获取文件后缀名
+            String ext = filename.substring(filename.lastIndexOf(".") + 1).toLowerCase();
+            InputStream inputStream = new FileInputStream(file);//根据路径获取要下载的文件输入流
+            response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
+            response.setCharacterEncoding("utf-8");
+            response.setHeader("Content-disposition", "attachment;fileName=" + URLEncoder.encode(filename, "UTF-8"));
+            OutputStream out = response.getOutputStream();
+            byte[] b = new byte[1024];  //创建数据缓冲区
+            int length;
+            while ((length = inputStream.read(b)) > 0) {  //把文件流写到缓冲区里
+                out.write(b, 0, length);
+            }
+            out.flush();
+            out.close();
+            inputStream.close();
+        } catch (IOException ex) {
+            System.out.println("模板导出失败:" + ex.getMessage());
+            ex.printStackTrace();
+        }
+    }
+
+    public static void excelDownload(Workbook workbook, String fileName, HttpServletResponse response) {
+        try {
+            response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
+            response.setCharacterEncoding("utf-8");
+            response.setHeader("Content-disposition", "attachment;fileName=" + URLEncoder.encode(fileName, "UTF-8"));
+            OutputStream out = response.getOutputStream();
+            workbook.write(out);
+            out.flush();
+            out.close();
+        } catch (IOException ex) {
+            System.out.println("模板导出失败:" + ex.getMessage());
+            ex.printStackTrace();
+        }
+    }
+}

+ 11 - 11
src/main/java/com/template/controller/HouseController.java

@@ -2,7 +2,6 @@ package com.template.controller;
 
 
 
 
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.JSONObject;
-import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
@@ -10,21 +9,22 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.template.annotation.Encrypt;
 import com.template.annotation.Encrypt;
 import com.template.api.HouseAPI;
 import com.template.api.HouseAPI;
 import com.template.common.utils.DateUtil;
 import com.template.common.utils.DateUtil;
-import com.template.mapper.HouseMapper;
 import com.template.model.dto.HouseDto;
 import com.template.model.dto.HouseDto;
 import com.template.model.pojo.*;
 import com.template.model.pojo.*;
 import com.template.model.result.CommonResult;
 import com.template.model.result.CommonResult;
 import com.template.model.result.PageUtils;
 import com.template.model.result.PageUtils;
-import com.template.model.vo.*;
+import com.template.model.vo.HouseAppletPageVo;
+import com.template.model.vo.HouseVo;
+import com.template.model.vo.HousedetailsVo;
 import com.template.services.*;
 import com.template.services.*;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.annotation.Transactional;
-import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RestController;
 
 
 import java.math.BigDecimal;
 import java.math.BigDecimal;
 import java.time.LocalDateTime;
 import java.time.LocalDateTime;
-import java.time.ZoneId;
 import java.time.format.DateTimeFormatter;
 import java.time.format.DateTimeFormatter;
 import java.util.ArrayList;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.Date;
@@ -99,12 +99,12 @@ public class HouseController implements HouseAPI {
         }
         }
 
 
 //        房间号不能重复
 //        房间号不能重复
-        LambdaQueryWrapper<HouseNumber> wrapperHn = new LambdaQueryWrapper<>();
-        wrapperHn.in(HouseNumber::getRoomNumber, roomNumbers);
-        List<HouseNumber> list = houseNumberService.list(wrapperHn);
-        if (ObjectUtils.isNotEmpty(list) && list.size() > 0) {
-            return CommonResult.fail("该房间号已存在");
-        }
+//        LambdaQueryWrapper<HouseNumber> wrapperHn = new LambdaQueryWrapper<>();
+//        wrapperHn.in(HouseNumber::getRoomNumber, roomNumbers);
+//        List<HouseNumber> list = houseNumberService.list(wrapperHn);
+//        if (ObjectUtils.isNotEmpty(list) && list.size() > 0) {
+//            return CommonResult.fail("该房间号已存在");
+//        }
 
 
 
 
         try {
         try {

+ 95 - 4
src/main/java/com/template/controller/HouseLockController.java

@@ -5,7 +5,9 @@ import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.template.api.HouseLockControllerAPI;
 import com.template.api.HouseLockControllerAPI;
+import com.template.common.utils.ExcelUtils;
 import com.template.model.dto.BingingDto;
 import com.template.model.dto.BingingDto;
+import com.template.model.dto.HouseLockListImportDto;
 import com.template.model.dto.RemoteUnlocking;
 import com.template.model.dto.RemoteUnlocking;
 import com.template.model.pojo.*;
 import com.template.model.pojo.*;
 import com.template.model.result.CommonResult;
 import com.template.model.result.CommonResult;
@@ -16,13 +18,12 @@ import com.template.services.*;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.RestController;
 import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.multipart.MultipartFile;
 
 
+import javax.servlet.http.HttpServletResponse;
 import java.time.LocalDateTime;
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
 import java.time.format.DateTimeFormatter;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.HashMap;
-import java.util.List;
+import java.util.*;
 import java.util.stream.Collectors;
 import java.util.stream.Collectors;
 
 
 /**
 /**
@@ -66,6 +67,9 @@ public class HouseLockController implements HouseLockControllerAPI {
     @Autowired
     @Autowired
     OperatingRecordService operatingRecordService;
     OperatingRecordService operatingRecordService;
 
 
+    @Autowired
+    UnlockingCustomService unlockingCustomService;
+
     @Override
     @Override
     public CommonResult list(String permissionSettingId, String roomNumber, String roomName) {
     public CommonResult list(String permissionSettingId, String roomNumber, String roomName) {
         PermissionSetting permissionSetting = permissionSettingService.getById(permissionSettingId);
         PermissionSetting permissionSetting = permissionSettingService.getById(permissionSettingId);
@@ -176,10 +180,12 @@ public class HouseLockController implements HouseLockControllerAPI {
         List<UnlockingKeyVo> unlockingKeyDtos = unlockingService.key(houseNumberId);
         List<UnlockingKeyVo> unlockingKeyDtos = unlockingService.key(houseNumberId);
 
 
         List<UnlockingAdmin> unlockingAdmins = unlockingAdminService.key(houseNumberId);
         List<UnlockingAdmin> unlockingAdmins = unlockingAdminService.key(houseNumberId);
+        List<UnlockingCustom> unlockingCustoms = unlockingCustomService.key(houseNumberId);
 
 
         HashMap<String, Object> map = new HashMap<>();
         HashMap<String, Object> map = new HashMap<>();
         map.put("order", unlockingKeyDtos);
         map.put("order", unlockingKeyDtos);
         map.put("system", unlockingAdmins);
         map.put("system", unlockingAdmins);
+        map.put("custom", unlockingCustoms);
 
 
 
 
         return CommonResult.ok(map);
         return CommonResult.ok(map);
@@ -381,6 +387,91 @@ public class HouseLockController implements HouseLockControllerAPI {
         return CommonResult.ok(map);
         return CommonResult.ok(map);
     }
     }
 
 
+    @Override
+    public CommonResult lockExport(HttpServletResponse response) {
+        // 表头数据
+        List<Object> head = Arrays.asList("房型类型","房型名称","房间号","门锁设备型号");
+        // 用户1数据
+        List<Object> user1 = new ArrayList<>();
+        user1.add("全日房");
+        user1.add("标准房");
+        user1.add("19-101");
+        user1.add("047863CA78E0");
+        List<Object> user2 = new ArrayList<>();
+        user2.add("钟点房");
+        user2.add("标准房");
+        user2.add("19-201");
+        user2.add("047863CA78E0");
+        // 将数据汇总
+        List<List<Object>> sheetDataList = new ArrayList<>();
+        sheetDataList.add(head);
+        sheetDataList.add(user1);
+        sheetDataList.add(user2);
+// 导出数据
+        ExcelUtils.export(response,"门锁绑定示例表", sheetDataList);
+
+        return CommonResult.ok();
+    }
+
+    @Override
+    public CommonResult lockImport(MultipartFile file) throws Exception {
+        List<HouseLockListImportDto> dtos=ExcelUtils.readMultipartFile(file,HouseLockListImportDto.class);
+
+
+        ArrayList<HouseLock> houseLocks = new ArrayList<>();
+        for (int i = 0; i < dtos.size(); i++) {
+            HouseLockListImportDto houseLockListImportDto = dtos.get(i);
+
+            Integer roomType = houseLockListImportDto.getRoomType();
+//            房间号
+            String roomNumber = houseLockListImportDto.getRoomNumber();
+//            房型
+            String houseName = houseLockListImportDto.getHouseName();
+//            设备号
+            String equipmentType = houseLockListImportDto.getEquipmentType();
+
+//            判断当前房型是否存在当前房间号
+            House house=houseService.getHouseName(houseName,roomType);
+            if (ObjectUtils.isEmpty(house)) {
+                return CommonResult.fail("第"+(i+2)+"行,"+"不存在"+houseName+"该房型");
+            }
+            Integer houseId = house.getId();
+            HouseNumber houseNumber=houseNumberService.getRoomNumber(houseId,roomNumber);
+            if (ObjectUtils.isEmpty(houseNumber)) {
+                return CommonResult.fail("第"+(i+2)+"行,"+"不存在"+roomNumber+"该房间号");
+            }
+            Integer houseNumberId = houseNumber.getId();
+
+            LambdaQueryWrapper<HouseLock> wrapper=new LambdaQueryWrapper<>();
+            wrapper.eq(HouseLock::getHouseNumberId,houseNumberId);
+            HouseLock houseLock = houseLockService.getOne(wrapper);
+            if (ObjectUtils.isNotEmpty(houseLock)) {
+                houseLock.setEquipmentType(equipmentType);
+                houseLocks.add(houseLock);
+            }else {
+                HouseLock houseLock1 = new HouseLock();
+                houseLock1.setHouseNumberId(houseNumberId);
+                houseLock1.setEquipmentType(equipmentType);
+                houseLock1.setNetworkType("WIFI");
+                houseLock1.setWifiMac("WIFIMAC");
+                houseLock1.setBindingTime(new Date());
+                houseLock1.setElectricQuantity("0");
+                houseLock1.setNetworkState("1");
+                houseLock1.setNetworkState("1");
+                houseLocks.add(houseLock1);
+            }
+
+
+        }
+
+        boolean b = houseLockService.saveOrUpdateBatch(houseLocks);
+        if (b) {
+            return CommonResult.ok();
+        }
+
+        return CommonResult.fail();
+    }
+
 
 
 }
 }
 
 

+ 28 - 13
src/main/java/com/template/controller/HouseNumberController.java

@@ -13,15 +13,16 @@ import com.template.model.pojo.HouseNumber;
 import com.template.model.pojo.PermissionSetting;
 import com.template.model.pojo.PermissionSetting;
 import com.template.model.pojo.WaterEquipment;
 import com.template.model.pojo.WaterEquipment;
 import com.template.model.result.CommonResult;
 import com.template.model.result.CommonResult;
+import com.template.model.result.PageUtils;
+import com.template.model.vo.HouseNumberPageVo;
 import com.template.services.ElectricEquipmentService;
 import com.template.services.ElectricEquipmentService;
 import com.template.services.HouseNumberService;
 import com.template.services.HouseNumberService;
 import com.template.services.PermissionSettingService;
 import com.template.services.PermissionSettingService;
 import com.template.services.WaterEquipmentService;
 import com.template.services.WaterEquipmentService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.RequestMapping;
-
 import org.springframework.web.bind.annotation.RestController;
 import org.springframework.web.bind.annotation.RestController;
 
 
+import javax.servlet.http.HttpServletResponse;
 import java.util.List;
 import java.util.List;
 
 
 /**
 /**
@@ -164,19 +165,11 @@ public class HouseNumberController implements HouseNumberControllerAPI {
             size = 10;
             size = 10;
         }
         }
 
 
-        LambdaQueryWrapper<HouseNumber> wrapper=new LambdaQueryWrapper<>();
-        wrapper.like(ObjectUtils.isNotEmpty(keyWord),HouseNumber::getRoomNumber,keyWord)
-                .or()
-                .like(ObjectUtils.isNotEmpty(keyWord),HouseNumber::getElectricEquipmentMeterName,keyWord)
-                .or()
-                .like(ObjectUtils.isNotEmpty(keyWord),HouseNumber::getWaterEquipmentMeterName,keyWord)
-        ;
-        wrapper.between(ObjectUtils.isNotEmpty(startTime)&&ObjectUtils.isNotEmpty(endTime),HouseNumber::getCreateTime,startTime,endTime);
-        wrapper.orderByDesc(HouseNumber::getRoomNumber);
 
 
-        IPage<HouseNumber> page1 = houseNumberService.page(new Page<>(page, size), wrapper);
+        PageUtils<HouseNumberPageVo> pageList =houseNumberService.pageList(page,size,keyWord,startTime,endTime);
 
 
-        return CommonResult.ok(page1);
+
+        return CommonResult.ok(pageList);
     }
     }
 
 
     @Override
     @Override
@@ -284,5 +277,27 @@ public class HouseNumberController implements HouseNumberControllerAPI {
         return CommonResult.ok();
         return CommonResult.ok();
 
 
     }
     }
+
+    @Override
+    public CommonResult listExport(HttpServletResponse response, String permissionSettingId, String keyWord, String startTime, String endTime) {
+        PermissionSetting permissionSetting = permissionSettingService.getById(permissionSettingId);
+        if (ObjectUtils.isEmpty(permissionSetting)) {
+            return CommonResult.fail("非法进入");
+        }
+//      判断该用户是否拥有权限
+        String hydropowerManagement = permissionSetting.getHydropowerManagement();
+        if (!"0".equals(hydropowerManagement) && !hydropowerManagement.contains("4")) {
+            return CommonResult.fail("此账号暂无该权限");
+        }
+
+        List<HouseNumberPageVo> listExport =houseNumberService.listExport(keyWord,startTime,endTime);
+
+
+
+
+
+        return null;
+    }
+
 }
 }
 
 

+ 1 - 1
src/main/java/com/template/controller/HouseNumberStateController.java

@@ -937,7 +937,7 @@ public class HouseNumberStateController implements HouseNumberStateAPI {
                 unlockingService.save(unlocking);
                 unlockingService.save(unlocking);
                 String passWord = unlocking.getPassWord();
                 String passWord = unlocking.getPassWord();
                 ArrayList<String> strings = new ArrayList<>();
                 ArrayList<String> strings = new ArrayList<>();
-//                strings.add(cardNumber);
+                strings.add(cardNumber);
                 weiXiaoComponent.sendNotice(strings, "公寓办理入住成功", "办理入住成功", "您的房间号为:" + roomNumber + ",密码是:" + passWord + "离店时间为:" + liveTime + ",欢迎您入住张玉玲酒店,我们全体员工很荣幸能为您服务,如有任何需要请致电张玉玲,期待为你服务。祝你生活愉快!", null);
                 weiXiaoComponent.sendNotice(strings, "公寓办理入住成功", "办理入住成功", "您的房间号为:" + roomNumber + ",密码是:" + passWord + "离店时间为:" + liveTime + ",欢迎您入住张玉玲酒店,我们全体员工很荣幸能为您服务,如有任何需要请致电张玉玲,期待为你服务。祝你生活愉快!", null);
             } else if ("2".equals(lockStatus)) {
             } else if ("2".equals(lockStatus)) {
                 CardInfoDto cid = new CardInfoDto();
                 CardInfoDto cid = new CardInfoDto();

+ 282 - 187
src/main/java/com/template/controller/HouseOrderController.java

@@ -35,7 +35,6 @@ import com.wechat.pay.java.service.payments.nativepay.NativePayService;
 import com.wechat.pay.java.service.refund.RefundService;
 import com.wechat.pay.java.service.refund.RefundService;
 import com.wechat.pay.java.service.refund.model.QueryByOutRefundNoRequest;
 import com.wechat.pay.java.service.refund.model.QueryByOutRefundNoRequest;
 import com.wechat.pay.java.service.refund.model.Refund;
 import com.wechat.pay.java.service.refund.model.Refund;
-import com.wechat.pay.java.service.refund.model.Status;
 import lombok.extern.slf4j.Slf4j;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.http.impl.client.CloseableHttpClient;
 import org.apache.http.impl.client.CloseableHttpClient;
 import org.apache.poi.ss.usermodel.Row;
 import org.apache.poi.ss.usermodel.Row;
@@ -67,7 +66,6 @@ import java.util.*;
 import static com.template.common.utils.StrUtils.getUUIDBits;
 import static com.template.common.utils.StrUtils.getUUIDBits;
 import static com.wechat.pay.java.service.payments.model.Transaction.TradeStateEnum.NOTPAY;
 import static com.wechat.pay.java.service.payments.model.Transaction.TradeStateEnum.NOTPAY;
 import static com.wechat.pay.java.service.payments.model.Transaction.TradeStateEnum.SUCCESS;
 import static com.wechat.pay.java.service.payments.model.Transaction.TradeStateEnum.SUCCESS;
-import static com.wechat.pay.java.service.refund.model.Status.*;
 
 
 /**
 /**
  * <p>
  * <p>
@@ -144,6 +142,9 @@ public class HouseOrderController implements HouseOrderAPI {
     @Autowired
     @Autowired
     SubsidySetupService subsidySetupService;
     SubsidySetupService subsidySetupService;
 
 
+    @Autowired
+    ApartmentSettingService apartmentSettingService;
+
     @Override
     @Override
     public CommonResult getHouseOrderPrice(int houseOrderNumber, String userId, String houseId, String liveTime, String leaveTime) {
     public CommonResult getHouseOrderPrice(int houseOrderNumber, String userId, String houseId, String liveTime, String leaveTime) {
         if (ObjectUtils.isEmpty(userId) && ObjectUtils.isEmpty(houseId) && ObjectUtils.isEmpty(leaveTime) && ObjectUtils.isEmpty(leaveTime) && ObjectUtils.isEmpty(houseOrderNumber) && houseOrderNumber <= 0) {
         if (ObjectUtils.isEmpty(userId) && ObjectUtils.isEmpty(houseId) && ObjectUtils.isEmpty(leaveTime) && ObjectUtils.isEmpty(leaveTime) && ObjectUtils.isEmpty(houseOrderNumber) && houseOrderNumber <= 0) {
@@ -263,15 +264,15 @@ public class HouseOrderController implements HouseOrderAPI {
             houseNumberState.setHouseNumberId(id);
             houseNumberState.setHouseNumberId(id);
             houseNumberState.setStatus(3);
             houseNumberState.setStatus(3);
             Integer roomType = house.getRoomType();
             Integer roomType = house.getRoomType();
-            if (1==roomType) {
+            if (1 == roomType) {
 //                DateTimeFormatter dateTimeFormatter1 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
 //                DateTimeFormatter dateTimeFormatter1 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
                 LocalDateTime start = LocalDateTime.parse(reserveLiveTime, dateTimeFormatter1).withHour(0).withMinute(0).withSecond(0);
                 LocalDateTime start = LocalDateTime.parse(reserveLiveTime, dateTimeFormatter1).withHour(0).withMinute(0).withSecond(0);
-                LocalDateTime end = LocalDateTime.parse(reserveLeaveTime,dateTimeFormatter1).withHour(0).withMinute(0).withSecond(0);
+                LocalDateTime end = LocalDateTime.parse(reserveLeaveTime, dateTimeFormatter1).withHour(0).withMinute(0).withSecond(0);
                 String startTime = start.format(dateTimeFormatter1);
                 String startTime = start.format(dateTimeFormatter1);
                 String endTime = end.format(dateTimeFormatter1);
                 String endTime = end.format(dateTimeFormatter1);
                 houseNumberState.setStartTime(startTime);
                 houseNumberState.setStartTime(startTime);
                 houseNumberState.setEndTime(endTime);
                 houseNumberState.setEndTime(endTime);
-            }else {
+            } else {
                 houseNumberState.setStartTime(reserveLiveTime);
                 houseNumberState.setStartTime(reserveLiveTime);
                 houseNumberState.setEndTime(reserveLeaveTime);
                 houseNumberState.setEndTime(reserveLeaveTime);
             }
             }
@@ -825,7 +826,7 @@ public class HouseOrderController implements HouseOrderAPI {
             HouseNumberState houseNumberState1 = houseNumberStateService.getOne(wrapperHns);
             HouseNumberState houseNumberState1 = houseNumberStateService.getOne(wrapperHns);
             HouseNumberState houseNumberState = new HouseNumberState();
             HouseNumberState houseNumberState = new HouseNumberState();
             if (ObjectUtils.isEmpty(houseNumberState1)) {
             if (ObjectUtils.isEmpty(houseNumberState1)) {
-               return CommonResult.fail();
+                return CommonResult.fail();
             } else {
             } else {
                 BeanUtils.copyProperties(houseNumberState1, houseNumberState);
                 BeanUtils.copyProperties(houseNumberState1, houseNumberState);
             }
             }
@@ -1410,7 +1411,7 @@ public class HouseOrderController implements HouseOrderAPI {
             }
             }
         }
         }
         // 将工作簿写入文件
         // 将工作簿写入文件
-        ExcelUtils.excelDownload(workbook, "订单表.xlsx", response);
+        ExcelUtils2.excelDownload(workbook, "订单表.xlsx", response);
 
 
         return CommonResult.ok();
         return CommonResult.ok();
     }
     }
@@ -1432,14 +1433,14 @@ public class HouseOrderController implements HouseOrderAPI {
             return CommonResult.fail("参数异常");
             return CommonResult.fail("参数异常");
         }
         }
 
 
-        String s="";
+        String s = "";
         if ("1".equals(state)) {
         if ("1".equals(state)) {
-            s="2,3,4,8";
+            s = "2,3,4,8";
         } else {
         } else {
-            s="1,5";
+            s = "1,5";
         }
         }
 
 
-        PageUtils<ReportStatisticsVo> pageUtils=houseOrderService.reportStatisticsPage(s,keyWord,startTime,endTime,page,size);
+        PageUtils<ReportStatisticsVo> pageUtils = houseOrderService.reportStatisticsPage(s, keyWord, startTime, endTime, page, size);
 
 
         return CommonResult.ok(pageUtils);
         return CommonResult.ok(pageUtils);
 
 
@@ -1463,14 +1464,14 @@ public class HouseOrderController implements HouseOrderAPI {
             return CommonResult.fail("参数异常");
             return CommonResult.fail("参数异常");
         }
         }
 
 
-        String s="";
+        String s = "";
         if ("1".equals(state)) {
         if ("1".equals(state)) {
-            s="2,3,4,8";
+            s = "2,3,4,8";
         } else {
         } else {
-            s="1,5";
+            s = "1,5";
         }
         }
 
 
-        List<ReportStatisticsExportVo> vos=houseOrderService.reportStatisticsExport(s,keyWord,startTime,endTime);
+        List<ReportStatisticsExportVo> vos = houseOrderService.reportStatisticsExport(s, keyWord, startTime, endTime);
 
 
         //        导出
         //        导出
         Workbook workbook = new XSSFWorkbook();
         Workbook workbook = new XSSFWorkbook();
@@ -1491,19 +1492,19 @@ public class HouseOrderController implements HouseOrderAPI {
                 ReportStatisticsExportVo vo = vos.get(i);
                 ReportStatisticsExportVo vo = vos.get(i);
                 Row dataRow1 = sheet.createRow(i + 1);
                 Row dataRow1 = sheet.createRow(i + 1);
 
 
-                dataRow1.createCell(0).setCellValue(i+1);
+                dataRow1.createCell(0).setCellValue(i + 1);
                 dataRow1.createCell(1).setCellValue(vo.getOrderStatus());
                 dataRow1.createCell(1).setCellValue(vo.getOrderStatus());
                 dataRow1.createCell(2).setCellValue(vo.getLiveName());
                 dataRow1.createCell(2).setCellValue(vo.getLiveName());
 //                房型是房间名称加房间类型
 //                房型是房间名称加房间类型
                 String roomName = vo.getRoomName();
                 String roomName = vo.getRoomName();
                 String roomType = vo.getRoomType();
                 String roomType = vo.getRoomType();
-                String type="";
+                String type = "";
                 if ("1".equals(roomType)) {
                 if ("1".equals(roomType)) {
-                    type="全";
-                }else {
-                    type="钟";
+                    type = "全";
+                } else {
+                    type = "钟";
                 }
                 }
-                dataRow1.createCell(3).setCellValue(roomName+"("+type+")");
+                dataRow1.createCell(3).setCellValue(roomName + "(" + type + ")");
                 dataRow1.createCell(4).setCellValue(vo.getRoomNumber());
                 dataRow1.createCell(4).setCellValue(vo.getRoomNumber());
                 dataRow1.createCell(5).setCellValue(vo.getPayPrice().doubleValue());
                 dataRow1.createCell(5).setCellValue(vo.getPayPrice().doubleValue());
                 dataRow1.createCell(6).setCellValue(vo.getPayTime());
                 dataRow1.createCell(6).setCellValue(vo.getPayTime());
@@ -1537,7 +1538,7 @@ public class HouseOrderController implements HouseOrderAPI {
         }
         }
 
 
         // 将工作簿写入文件
         // 将工作簿写入文件
-        ExcelUtils.excelDownload(workbook, "订单报表.xlsx", response);
+        ExcelUtils2.excelDownload(workbook, "订单报表.xlsx", response);
 
 
         return CommonResult.ok();
         return CommonResult.ok();
     }
     }
@@ -1652,12 +1653,12 @@ public class HouseOrderController implements HouseOrderAPI {
 
 
 
 
         String houseNumberId = houseOrder.getHouseNumberId();
         String houseNumberId = houseOrder.getHouseNumberId();
-        HouseNumber houseNumber= houseNumberService.getById(houseNumberId);
+        HouseNumber houseNumber = houseNumberService.getById(houseNumberId);
         if (ObjectUtils.isNotEmpty(houseNumber)) {
         if (ObjectUtils.isNotEmpty(houseNumber)) {
             houseOrderVo.setRoomNumber(houseNumber.getRoomNumber());
             houseOrderVo.setRoomNumber(houseNumber.getRoomNumber());
         }
         }
         String orderNumber = houseOrder.getOrderNumber();
         String orderNumber = houseOrder.getOrderNumber();
-        Unlocking unlocking=unlockingService.getOrderNumber(orderNumber);
+        Unlocking unlocking = unlockingService.getOrderNumber(orderNumber);
         if (ObjectUtils.isNotEmpty(unlocking)) {
         if (ObjectUtils.isNotEmpty(unlocking)) {
             houseOrderVo.setPassWord(unlocking.getPassWord());
             houseOrderVo.setPassWord(unlocking.getPassWord());
         }
         }
@@ -1679,8 +1680,8 @@ public class HouseOrderController implements HouseOrderAPI {
     @Transactional(rollbackFor = {Exception.class})
     @Transactional(rollbackFor = {Exception.class})
     public CommonResult pay(WxPayDto wpd, BindingResult bindingResult, HttpServletRequest request) throws Exception {
     public CommonResult pay(WxPayDto wpd, BindingResult bindingResult, HttpServletRequest request) throws Exception {
         System.out.println(TimeExchange.getTime() + "微信支付参数====:" + JSON.toJSON(wpd));
         System.out.println(TimeExchange.getTime() + "微信支付参数====:" + JSON.toJSON(wpd));
-        String wxCode= request.getHeader("code");
-        if(wxCode==null||wxCode==""){
+        String wxCode = request.getHeader("code");
+        if (wxCode == null || wxCode == "") {
             return CommonResult.fail("code不能为空");
             return CommonResult.fail("code不能为空");
         }
         }
         if (bindingResult.hasErrors()) {
         if (bindingResult.hasErrors()) {
@@ -1759,29 +1760,29 @@ public class HouseOrderController implements HouseOrderAPI {
         int totalfee = (wpd.getTotalPrice().multiply(new BigDecimal(100))).intValue();
         int totalfee = (wpd.getTotalPrice().multiply(new BigDecimal(100))).intValue();
         //查询是否有未支付订单,有则调用关闭更新支付订单号重新生成支付订单
         //查询是否有未支付订单,有则调用关闭更新支付订单号重新生成支付订单
         List<PayRecord> houseOrderId = payRecordService.list(new QueryWrapper<PayRecord>().eq("house_order_id", ho.getId()));
         List<PayRecord> houseOrderId = payRecordService.list(new QueryWrapper<PayRecord>().eq("house_order_id", ho.getId()));
-        log.info("支付订单houseOrderId=="+houseOrderId.toString());
-        PayRecord payRecord=houseOrderId.size()>0?houseOrderId.get(0):new PayRecord();
-        if (StringUtils.hasText(payRecord.getPayNo())){
+        log.info("支付订单houseOrderId==" + houseOrderId.toString());
+        PayRecord payRecord = houseOrderId.size() > 0 ? houseOrderId.get(0) : new PayRecord();
+        if (StringUtils.hasText(payRecord.getPayNo())) {
             try {
             try {
                 this.closeOrderById(payRecord.getPayNo());
                 this.closeOrderById(payRecord.getPayNo());
             } catch (Exception e) {
             } catch (Exception e) {
-                return CommonResult.fail("关闭已生成支付订单失败返回:"+e.getMessage());
+                return CommonResult.fail("关闭已生成支付订单失败返回:" + e.getMessage());
             }
             }
             payRecord.setPayNo(CommonUtil.generateUUID());
             payRecord.setPayNo(CommonUtil.generateUUID());
             payRecord.setRemark("更新订单");
             payRecord.setRemark("更新订单");
-            boolean a =payRecordService.updateById(payRecord);
-            if (!a){
+            boolean a = payRecordService.updateById(payRecord);
+            if (!a) {
                 return CommonResult.fail("生成支付订单失败");
                 return CommonResult.fail("生成支付订单失败");
             }
             }
-        }else{
+        } else {
             payRecord.setPayNo(CommonUtil.generateUUID());
             payRecord.setPayNo(CommonUtil.generateUUID());
             payRecord.setHouseOrderId(ho.getId());
             payRecord.setHouseOrderId(ho.getId());
             payRecord.setUserId(Integer.valueOf(ho.getPayUserId()));
             payRecord.setUserId(Integer.valueOf(ho.getPayUserId()));
             payRecord.setPayPrice(BigDecimal.valueOf(totalfee));
             payRecord.setPayPrice(BigDecimal.valueOf(totalfee));
             payRecord.setIsSuccess(1);
             payRecord.setIsSuccess(1);
             payRecord.setRemark("新订单");
             payRecord.setRemark("新订单");
-            boolean a=payRecordService.save(payRecord);
-            if (!a){
+            boolean a = payRecordService.save(payRecord);
+            if (!a) {
                 return CommonResult.fail("创建支付订单失败");
                 return CommonResult.fail("创建支付订单失败");
             }
             }
         }
         }
@@ -1789,13 +1790,13 @@ public class HouseOrderController implements HouseOrderAPI {
         // jsapi支付
         // jsapi支付
         //获取openid
         //获取openid
         String tokenUrl = "https://api.weixin.qq.com/sns/oauth2/access_token";
         String tokenUrl = "https://api.weixin.qq.com/sns/oauth2/access_token";
-        tokenUrl=tokenUrl+"?code="+wxCode+"&appid="+wxPayV3Config.getAppId()+"&secret="+wxPayV3Config.getSecret()+"&grant_type=authorization_code";
+        tokenUrl = tokenUrl + "?code=" + wxCode + "&appid=" + wxPayV3Config.getAppId() + "&secret=" + wxPayV3Config.getSecret() + "&grant_type=authorization_code";
         RestTemplate client = new RestTemplate();
         RestTemplate client = new RestTemplate();
         String tokenResponse = client.postForObject(tokenUrl, null, String.class);
         String tokenResponse = client.postForObject(tokenUrl, null, String.class);
-        log.info("获取openid结果"+tokenResponse);
-        JSONObject jsonObject1 =JSONObject.parseObject(tokenResponse);
+        log.info("获取openid结果" + tokenResponse);
+        JSONObject jsonObject1 = JSONObject.parseObject(tokenResponse);
         String openId = (String) jsonObject1.getString("openid");
         String openId = (String) jsonObject1.getString("openid");
-        if(openId==null||openId==""){
+        if (openId == null || openId == "") {
             return CommonResult.fail("openid查询失败");
             return CommonResult.fail("openid查询失败");
         }
         }
 //        String openId = "okdUu5xZ2ICm3RuMUHbpJi4DUyzw";
 //        String openId = "okdUu5xZ2ICm3RuMUHbpJi4DUyzw";
@@ -1805,30 +1806,30 @@ public class HouseOrderController implements HouseOrderAPI {
         requestpay.setDescription("智慧公寓");
         requestpay.setDescription("智慧公寓");
         Amount amount2 = new Amount();
         Amount amount2 = new Amount();
         amount2.setTotal(totalfee);
         amount2.setTotal(totalfee);
-        requestpay.setNotifyUrl(wxPayV3Config.getDomain()+"/auto/house-order/returnPay");
+        requestpay.setNotifyUrl(wxPayV3Config.getDomain() + "/auto/house-order/returnPay");
         requestpay.setAmount(amount2);
         requestpay.setAmount(amount2);
-        Payer payer1=new Payer();
+        Payer payer1 = new Payer();
         payer1.setOpenid(openId);
         payer1.setOpenid(openId);
         requestpay.setPayer(payer1);
         requestpay.setPayer(payer1);
 //        requestpay.setOutTradeNo(TimeExchange.DateToTimestamp(new Date())+"");
 //        requestpay.setOutTradeNo(TimeExchange.DateToTimestamp(new Date())+"");
         requestpay.setOutTradeNo(payRecord.getPayNo());
         requestpay.setOutTradeNo(payRecord.getPayNo());
         Config config = new RSAAutoCertificateConfig.Builder()
         Config config = new RSAAutoCertificateConfig.Builder()
-                        .merchantId( wxPayV3Config.getMchId())
-                        .privateKeyFromPath(wxPayV3Config.getKeyPath())
-                        .merchantSerialNumber(wxPayV3Config.getSerialNum())
-                        .apiV3Key(wxPayV3Config.getApiKey3())
-                        .build();
-        JsapiServiceExtension  service =new JsapiServiceExtension.Builder()
+                .merchantId(wxPayV3Config.getMchId())
+                .privateKeyFromPath(wxPayV3Config.getKeyPath())
+                .merchantSerialNumber(wxPayV3Config.getSerialNum())
+                .apiV3Key(wxPayV3Config.getApiKey3())
+                .build();
+        JsapiServiceExtension service = new JsapiServiceExtension.Builder()
                 .config(config)
                 .config(config)
                 .signType("RSA") // 不填默认为RSA
                 .signType("RSA") // 不填默认为RSA
                 .build();
                 .build();
 
 
-        PrepayWithRequestPaymentResponse responseSdk= null;
+        PrepayWithRequestPaymentResponse responseSdk = null;
         try {
         try {
             responseSdk = service.prepayWithRequestPayment(requestpay);
             responseSdk = service.prepayWithRequestPayment(requestpay);
-            log.info("请求支付参数返回:"+responseSdk.toString());
+            log.info("请求支付参数返回:" + responseSdk.toString());
         } catch (Exception e) {
         } catch (Exception e) {
-            log.info("请求支付异常返回:"+e);
+            log.info("请求支付异常返回:" + e);
             return CommonResult.ok(e.getMessage());
             return CommonResult.ok(e.getMessage());
         }
         }
         return CommonResult.ok(responseSdk);
         return CommonResult.ok(responseSdk);
@@ -1843,16 +1844,16 @@ public class HouseOrderController implements HouseOrderAPI {
      */
      */
     @Override
     @Override
     @Transactional(rollbackFor = {Exception.class})
     @Transactional(rollbackFor = {Exception.class})
-    public CommonResult queryOrderById(String outTradeNo) throws Exception{
-        Transaction transaction= new Transaction();
-        HouseOrder one = houseOrderService.getOne(new QueryWrapper<HouseOrder>().eq("order_number",outTradeNo));
-        if("2".equals(one.getOrderStatus())&&"2".equals(one.getPayType())){
+    public CommonResult queryOrderById(String outTradeNo) throws Exception {
+        Transaction transaction = new Transaction();
+        HouseOrder one = houseOrderService.getOne(new QueryWrapper<HouseOrder>().eq("order_number", outTradeNo));
+        if ("2".equals(one.getOrderStatus()) && "2".equals(one.getPayType())) {
             transaction.setTradeState(SUCCESS);
             transaction.setTradeState(SUCCESS);
             transaction.setTradeStateDesc("现金支付完成");
             transaction.setTradeStateDesc("现金支付完成");
             return CommonResult.ok(transaction);
             return CommonResult.ok(transaction);
         }
         }
-        PayRecord payRecord=payRecordService.getOne(new QueryWrapper<PayRecord>().eq("house_order_id",one.getId()));
-        if(payRecord==null||payRecord.getPayNo()==null){
+        PayRecord payRecord = payRecordService.getOne(new QueryWrapper<PayRecord>().eq("house_order_id", one.getId()));
+        if (payRecord == null || payRecord.getPayNo() == null) {
             transaction.setTradeState(NOTPAY);
             transaction.setTradeState(NOTPAY);
             transaction.setTradeStateDesc("该订单尚未支付");
             transaction.setTradeStateDesc("该订单尚未支付");
             return CommonResult.ok(transaction);
             return CommonResult.ok(transaction);
@@ -1863,22 +1864,22 @@ public class HouseOrderController implements HouseOrderAPI {
         queryOrderByIdRequest.setOutTradeNo(payRecord.getPayNo());
         queryOrderByIdRequest.setOutTradeNo(payRecord.getPayNo());
         // 调用接口
         // 调用接口
 //        JsapiService service = new JsapiService.Builder().config(config).build();
 //        JsapiService service = new JsapiService.Builder().config(config).build();
-        log.info("微信支付查询订单入参:"+queryOrderByIdRequest.toString());
+        log.info("微信支付查询订单入参:" + queryOrderByIdRequest.toString());
         Config config =
         Config config =
                 new RSAAutoCertificateConfig.Builder()
                 new RSAAutoCertificateConfig.Builder()
-                        .merchantId( wxPayV3Config.getMchId())
+                        .merchantId(wxPayV3Config.getMchId())
                         .privateKeyFromPath(wxPayV3Config.getKeyPath())
                         .privateKeyFromPath(wxPayV3Config.getKeyPath())
                         .merchantSerialNumber(wxPayV3Config.getSerialNum())
                         .merchantSerialNumber(wxPayV3Config.getSerialNum())
                         .apiV3Key(wxPayV3Config.getApiKey3())
                         .apiV3Key(wxPayV3Config.getApiKey3())
                         .build();
                         .build();
-        JsapiServiceExtension  service =new JsapiServiceExtension.Builder()
+        JsapiServiceExtension service = new JsapiServiceExtension.Builder()
                 .config(config)
                 .config(config)
                 .signType("RSA") // 不填默认为RSA
                 .signType("RSA") // 不填默认为RSA
                 .build();
                 .build();
 
 
         try {
         try {
             transaction = service.queryOrderByOutTradeNo(queryOrderByIdRequest);
             transaction = service.queryOrderByOutTradeNo(queryOrderByIdRequest);
-            switch (transaction.getTradeState()){
+            switch (transaction.getTradeState()) {
                 case SUCCESS:
                 case SUCCESS:
                     payRecord.setIsSuccess(2);
                     payRecord.setIsSuccess(2);
                     payRecord.setRemark(transaction.getTradeStateDesc());
                     payRecord.setRemark(transaction.getTradeStateDesc());
@@ -1889,12 +1890,12 @@ public class HouseOrderController implements HouseOrderAPI {
                     payRecord.setIsSuccess(3);
                     payRecord.setIsSuccess(3);
                     break;
                     break;
             }
             }
-            boolean a=houseOrderService.updateById(one);
-            boolean b=payRecordService.updateById(payRecord);
-            if (!a||!b){
+            boolean a = houseOrderService.updateById(one);
+            boolean b = payRecordService.updateById(payRecord);
+            if (!a || !b) {
                 throw new Exception("更新支付状态失败");
                 throw new Exception("更新支付状态失败");
             }
             }
-            log.info("微信支付查询订单出参:"+transaction.toString());
+            log.info("微信支付查询订单出参:" + transaction.toString());
         } catch (Exception e) {
         } catch (Exception e) {
             e.printStackTrace();
             e.printStackTrace();
             return CommonResult.fail(e.getMessage());
             return CommonResult.fail(e.getMessage());
@@ -1912,21 +1913,21 @@ public class HouseOrderController implements HouseOrderAPI {
     @Override
     @Override
     @Transactional(rollbackFor = {Exception.class})
     @Transactional(rollbackFor = {Exception.class})
     public CommonResult closeOrder(String outTradeNo) {
     public CommonResult closeOrder(String outTradeNo) {
-        HouseOrder one = houseOrderService.getOne(new QueryWrapper<HouseOrder>().eq("order_number",outTradeNo));
-        PayRecord payRecord=payRecordService.getOne(new QueryWrapper<PayRecord>().eq("house_order_id",one.getId()));
-        if(payRecord==null){
+        HouseOrder one = houseOrderService.getOne(new QueryWrapper<HouseOrder>().eq("order_number", outTradeNo));
+        PayRecord payRecord = payRecordService.getOne(new QueryWrapper<PayRecord>().eq("house_order_id", one.getId()));
+        if (payRecord == null) {
             return CommonResult.ok("没有可关闭支付订单,无需关闭");
             return CommonResult.ok("没有可关闭支付订单,无需关闭");
         }
         }
         try {
         try {
             this.closeOrderById(payRecord.getPayNo());
             this.closeOrderById(payRecord.getPayNo());
         } catch (Exception e) {
         } catch (Exception e) {
             e.printStackTrace();
             e.printStackTrace();
-            return CommonResult.fail("关闭订单失败"+e.getMessage());
+            return CommonResult.fail("关闭订单失败" + e.getMessage());
         }
         }
         return CommonResult.ok("关闭成功");
         return CommonResult.ok("关闭成功");
     }
     }
 
 
-    public void closeOrderById(String outTradeNo) throws Exception{
+    public void closeOrderById(String outTradeNo) throws Exception {
 
 
         CloseOrderRequest closeOrderRequest = new CloseOrderRequest();
         CloseOrderRequest closeOrderRequest = new CloseOrderRequest();
         // 调用request.setXxx(val)设置所需参数,具体参数可见Request定义
         // 调用request.setXxx(val)设置所需参数,具体参数可见Request定义
@@ -1934,20 +1935,21 @@ public class HouseOrderController implements HouseOrderAPI {
         closeOrderRequest.setOutTradeNo(outTradeNo);
         closeOrderRequest.setOutTradeNo(outTradeNo);
         // 调用接口
         // 调用接口
 //        JsapiService service = new JsapiService.Builder().config(config).build();
 //        JsapiService service = new JsapiService.Builder().config(config).build();
-        log.info("微信支付关闭订单入参:"+closeOrderRequest.toString());
+        log.info("微信支付关闭订单入参:" + closeOrderRequest.toString());
         Config config =
         Config config =
                 new RSAAutoCertificateConfig.Builder()
                 new RSAAutoCertificateConfig.Builder()
-                        .merchantId( wxPayV3Config.getMchId())
+                        .merchantId(wxPayV3Config.getMchId())
                         .privateKeyFromPath(wxPayV3Config.getKeyPath())
                         .privateKeyFromPath(wxPayV3Config.getKeyPath())
                         .merchantSerialNumber(wxPayV3Config.getSerialNum())
                         .merchantSerialNumber(wxPayV3Config.getSerialNum())
                         .apiV3Key(wxPayV3Config.getApiKey3())
                         .apiV3Key(wxPayV3Config.getApiKey3())
                         .build();
                         .build();
-        JsapiServiceExtension  service =new JsapiServiceExtension.Builder()
+        JsapiServiceExtension service = new JsapiServiceExtension.Builder()
                 .config(config)
                 .config(config)
                 .signType("RSA") // 不填默认为RSA
                 .signType("RSA") // 不填默认为RSA
                 .build();
                 .build();
         service.closeOrder(closeOrderRequest);
         service.closeOrder(closeOrderRequest);
     }
     }
+
     /**
     /**
      * 支付成功后回调,推送消息给商家
      * 支付成功后回调,推送消息给商家
      *
      *
@@ -1980,9 +1982,9 @@ public class HouseOrderController implements HouseOrderAPI {
         try {
         try {
             // 以支付通知回调为例,验签、解密并转换成 Transaction
             // 以支付通知回调为例,验签、解密并转换成 Transaction
             Transaction transaction = parser.parse(requestParam, Transaction.class);
             Transaction transaction = parser.parse(requestParam, Transaction.class);
-            PayRecord payRecord=payRecordService.getOne(new QueryWrapper<PayRecord>().eq("pay_no",transaction.getOutTradeNo()));
+            PayRecord payRecord = payRecordService.getOne(new QueryWrapper<PayRecord>().eq("pay_no", transaction.getOutTradeNo()));
             HouseOrder one = houseOrderService.getById(payRecord.getHouseOrderId());
             HouseOrder one = houseOrderService.getById(payRecord.getHouseOrderId());
-            switch (transaction.getTradeState()){
+            switch (transaction.getTradeState()) {
                 case SUCCESS:
                 case SUCCESS:
                     payRecord.setIsSuccess(2);
                     payRecord.setIsSuccess(2);
                     payRecord.setRemark(transaction.getTradeStateDesc());
                     payRecord.setRemark(transaction.getTradeStateDesc());
@@ -1996,12 +1998,12 @@ public class HouseOrderController implements HouseOrderAPI {
                     payRecord.setRemark(transaction.getTradeStateDesc());
                     payRecord.setRemark(transaction.getTradeStateDesc());
                     break;
                     break;
             }
             }
-            boolean a=houseOrderService.updateById(one);
-            boolean b=payRecordService.updateById(payRecord);
-            if (!a||!b){
+            boolean a = houseOrderService.updateById(one);
+            boolean b = payRecordService.updateById(payRecord);
+            if (!a || !b) {
                 throw new Exception("更新支付状态失败");
                 throw new Exception("更新支付状态失败");
             }
             }
-            log.info("支付回调请求返回"+transaction.toString());
+            log.info("支付回调请求返回" + transaction.toString());
             //回调成功业务没写
             //回调成功业务没写
         } catch (Exception e) {
         } catch (Exception e) {
             // 签名验证失败,返回 401 UNAUTHORIZED 状态码
             // 签名验证失败,返回 401 UNAUTHORIZED 状态码
@@ -2343,7 +2345,7 @@ public class HouseOrderController implements HouseOrderAPI {
             houseOrder.setCancelTime(new Date());
             houseOrder.setCancelTime(new Date());
 
 
             //现金支付直接修改未已退款
             //现金支付直接修改未已退款
-            if("2".equals(houseOrder.getPayType())){
+            if ("2".equals(houseOrder.getPayType())) {
                 houseOrder.setOrderStatus("9");
                 houseOrder.setOrderStatus("9");
                 houseOrderService.updateById(houseOrder);
                 houseOrderService.updateById(houseOrder);
                 houseNumberStateService.removeById(houseNumberState);
                 houseNumberStateService.removeById(houseNumberState);
@@ -2391,20 +2393,20 @@ public class HouseOrderController implements HouseOrderAPI {
                             throw new Exception("退款失败!");
                             throw new Exception("退款失败!");
                         }
                         }
                     }
                     }
-                }else {
+                } else {
 //                    当有金额需要退款时,状态不变,等收到回调后在改变
 //                    当有金额需要退款时,状态不变,等收到回调后在改变
                     houseOrder.setOrderStatus(houseOrder.getOrderStatus());
                     houseOrder.setOrderStatus(houseOrder.getOrderStatus());
-                    PayRecord payRecord= payRecordService.getOne(new QueryWrapper<PayRecord>().eq("house_order_id", houseOrder.getId()));
+                    PayRecord payRecord = payRecordService.getOne(new QueryWrapper<PayRecord>().eq("house_order_id", houseOrder.getId()));
 
 
                     JSONObject jsonObject = new JSONObject();
                     JSONObject jsonObject = new JSONObject();
                     //商户订单号;
                     //商户订单号;
-                    jsonObject.put("out_trade_no", payRecord.getPayNo()==null?orderNumber:payRecord.getPayNo());
+                    jsonObject.put("out_trade_no", payRecord.getPayNo() == null ? orderNumber : payRecord.getPayNo());
                     //商户退款单号
                     //商户退款单号
                     jsonObject.put("out_refund_no", refund_no);
                     jsonObject.put("out_refund_no", refund_no);
 //退款原因
 //退款原因
                     jsonObject.put("reason", "取消入住");
                     jsonObject.put("reason", "取消入住");
 //                退款结果回调url todo
 //                退款结果回调url todo
-                    jsonObject.put("notify_url", wxPayV3Config.getDomain()+"/auto/house-order/returnRefund");
+                    jsonObject.put("notify_url", wxPayV3Config.getDomain() + "/auto/house-order/returnRefund");
 //              订单金额信息
 //              订单金额信息
                     JSONObject amount = new JSONObject();
                     JSONObject amount = new JSONObject();
 //                退款金额
 //                退款金额
@@ -2424,15 +2426,15 @@ public class HouseOrderController implements HouseOrderAPI {
                             wxPayV3Config.getSerialNum(),
                             wxPayV3Config.getSerialNum(),
                             wxPayV3Config.getKeyPath(),
                             wxPayV3Config.getKeyPath(),
                             JSONObject.toJSONString(jsonObject));
                             JSONObject.toJSONString(jsonObject));
-                    log.info("退款签名值"+authStr);
+                    log.info("退款签名值" + authStr);
                     httpHeaders.add("Accept", "application/json");
                     httpHeaders.add("Accept", "application/json");
                     httpHeaders.add("Authorization", authStr);
                     httpHeaders.add("Authorization", authStr);
 //                    httpHeaders.add("User-Agent", "WeChatPay-HttpClient/null (Windows 10/10.0) Java/1.8.0_171");
 //                    httpHeaders.add("User-Agent", "WeChatPay-HttpClient/null (Windows 10/10.0) Java/1.8.0_171");
                     httpHeaders.add("Content-Type", "application/json");
                     httpHeaders.add("Content-Type", "application/json");
                     HttpEntity<JSONObject> fromEntity = new HttpEntity<>(jsonObject, httpHeaders);
                     HttpEntity<JSONObject> fromEntity = new HttpEntity<>(jsonObject, httpHeaders);
-                    log.info("退款请求入参"+fromEntity.toString());
+                    log.info("退款请求入参" + fromEntity.toString());
                     String msg = client.postForObject("https://api.mch.weixin.qq.com/v3/refund/domestic/refunds", fromEntity, String.class);
                     String msg = client.postForObject("https://api.mch.weixin.qq.com/v3/refund/domestic/refunds", fromEntity, String.class);
-                    log.info("退款请求出参"+msg);
+                    log.info("退款请求出参" + msg);
 
 
                     JSONObject h5Refund = JSONObject.parseObject(msg);
                     JSONObject h5Refund = JSONObject.parseObject(msg);
 
 
@@ -2443,7 +2445,7 @@ public class HouseOrderController implements HouseOrderAPI {
                     rpr.setUserId(Integer.valueOf(houseOrder.getReserveUserId()));
                     rpr.setUserId(Integer.valueOf(houseOrder.getReserveUserId()));
                     rpr.setRefundPrice(new BigDecimal(total).divide(new BigDecimal("100")).setScale(2));
                     rpr.setRefundPrice(new BigDecimal(total).divide(new BigDecimal("100")).setScale(2));
                     rpr.setIsSuccess(0);
                     rpr.setIsSuccess(0);
-                    rpr.setRemark("发起微信支付退款金额:"+total+"- "+TimeExchange.getTime());
+                    rpr.setRemark("发起微信支付退款金额:" + total + "- " + TimeExchange.getTime());
                     houseOrder.setOrderStatus("6");
                     houseOrder.setOrderStatus("6");
                     houseOrderService.updateById(houseOrder);
                     houseOrderService.updateById(houseOrder);
                     refundRecordService.updateById(rpr);
                     refundRecordService.updateById(rpr);
@@ -2480,12 +2482,12 @@ public class HouseOrderController implements HouseOrderAPI {
             //解析成json
             //解析成json
             JSONObject data = JSONObject.parseObject(notityXml);
             JSONObject data = JSONObject.parseObject(notityXml);
             //判断 支付是否成功
             //判断 支付是否成功
-            log.info("退款回调入参"+timestamp+"==="+nonce+"===="+serialNo+"======"+signature+"======="+notityXml);
+            log.info("退款回调入参" + timestamp + "===" + nonce + "====" + serialNo + "======" + signature + "=======" + notityXml);
             if ("REFUND.SUCCESS".equals(data.get("event_type"))) {
             if ("REFUND.SUCCESS".equals(data.get("event_type"))) {
 
 
                 String plainText = WechatPayV3Util.verifyNotify(serialNo, notityXml, signature, nonce, timestamp,
                 String plainText = WechatPayV3Util.verifyNotify(serialNo, notityXml, signature, nonce, timestamp,
                         wxPayV3Config.getApiKey3(), wxPayV3Config.getPlatformCertPath());
                         wxPayV3Config.getApiKey3(), wxPayV3Config.getPlatformCertPath());
-                log.info("退款回调明文"+plainText);
+                log.info("退款回调明文" + plainText);
                 // 在这里处理接收到的支付结果通知数据
                 // 在这里处理接收到的支付结果通知数据
                 JSONObject resourceMap = JSONObject.parseObject(plainText);
                 JSONObject resourceMap = JSONObject.parseObject(plainText);
                 // 获取 trade_state 值
                 // 获取 trade_state 值
@@ -2508,49 +2510,48 @@ public class HouseOrderController implements HouseOrderAPI {
                 //业务逻辑------------
                 //业务逻辑------------
                 LambdaQueryWrapper<HouseOrder> wrapperHo = new LambdaQueryWrapper<>();
                 LambdaQueryWrapper<HouseOrder> wrapperHo = new LambdaQueryWrapper<>();
                 wrapperHo.eq(HouseOrder::getOrderNumber, outTradeNo);
                 wrapperHo.eq(HouseOrder::getOrderNumber, outTradeNo);
-                PayRecord payRecord=payRecordService.getOne(new QueryWrapper<PayRecord>().eq("pay_no",outTradeNo));
+                PayRecord payRecord = payRecordService.getOne(new QueryWrapper<PayRecord>().eq("pay_no", outTradeNo));
                 HouseOrder rr = houseOrderService.getById(payRecord.getHouseOrderId());
                 HouseOrder rr = houseOrderService.getById(payRecord.getHouseOrderId());
                 LambdaQueryWrapper<RefundRecord> wrapperRr = new LambdaQueryWrapper<>();
                 LambdaQueryWrapper<RefundRecord> wrapperRr = new LambdaQueryWrapper<>();
                 wrapperRr.eq(RefundRecord::getHouseOrderId, rr.getId());
                 wrapperRr.eq(RefundRecord::getHouseOrderId, rr.getId());
                 RefundRecord rpr = refundRecordService.getOne(wrapperRr);
                 RefundRecord rpr = refundRecordService.getOne(wrapperRr);
                 if (tradeState.equals("SUCCESS")) {
                 if (tradeState.equals("SUCCESS")) {
                     if (rpr == null) {
                     if (rpr == null) {
-                            // 保存支付信息
-                            rpr = new RefundRecord();
-                            rpr.setHouseOrderId(rr.getId());
-                            rpr.setUserId(Integer.valueOf(rr.getReserveUserId()));
-                            rpr.setRefundNo(outRefundNo);
-                            rpr.setWxNo(refundId);
-                            System.out.println("回调的金额:" + total_fee);
-                            rpr.setRefundPrice(new BigDecimal(total_fee).divide(new BigDecimal("100")).setScale(2));
-                            rpr.setIsSuccess(1);
-                            rpr.setRemark("微信支付退款成功");
-                            Boolean insertRpr = refundRecordService.save(rpr);
-                            if (!insertRpr) {
-                                response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
-                                JSONObject jsonObject = new JSONObject();
-                                jsonObject.put("code", "FAIL");
-                                jsonObject.put("message", "失败");
-                                response.getWriter().write(jsonObject.toJSONString());
-                            }
-
-                        } else if (rpr.getIsSuccess() != ePayStatu.Paysuccess.getValue()) {
-                            rpr.setRefundNo(outRefundNo);
-                            rpr.setWxNo(refundId);
-                            System.out.println("回调的金额:" + total_fee);
-                            rpr.setRefundPrice(new BigDecimal(total_fee).divide(new BigDecimal("100")).setScale(2));
-                            rpr.setIsSuccess(1);
-                            rpr.setRemark(rpr.getRemark()+"|微信支付退款成功金额:"+total_fee+"--"+TimeExchange.getTime());
-                            Boolean updateRpr = refundRecordService.updateById(rpr);
-                            if (!updateRpr) {
-                                response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
-                                JSONObject jsonObject = new JSONObject();
-                                jsonObject.put("code", "FAIL");
-                                jsonObject.put("message", "失败");
-                                response.getWriter().write(jsonObject.toJSONString());
-                            }
+                        // 保存支付信息
+                        rpr = new RefundRecord();
+                        rpr.setHouseOrderId(rr.getId());
+                        rpr.setUserId(Integer.valueOf(rr.getReserveUserId()));
+                        rpr.setRefundNo(outRefundNo);
+                        rpr.setWxNo(refundId);
+                        System.out.println("回调的金额:" + total_fee);
+                        rpr.setRefundPrice(new BigDecimal(total_fee).divide(new BigDecimal("100")).setScale(2));
+                        rpr.setIsSuccess(1);
+                        rpr.setRemark("微信支付退款成功");
+                        Boolean insertRpr = refundRecordService.save(rpr);
+                        if (!insertRpr) {
+                            response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
+                            JSONObject jsonObject = new JSONObject();
+                            jsonObject.put("code", "FAIL");
+                            jsonObject.put("message", "失败");
+                            response.getWriter().write(jsonObject.toJSONString());
                         }
                         }
 
 
+                    } else if (rpr.getIsSuccess() != ePayStatu.Paysuccess.getValue()) {
+                        rpr.setRefundNo(outRefundNo);
+                        rpr.setWxNo(refundId);
+                        System.out.println("回调的金额:" + total_fee);
+                        rpr.setRefundPrice(new BigDecimal(total_fee).divide(new BigDecimal("100")).setScale(2));
+                        rpr.setIsSuccess(1);
+                        rpr.setRemark(rpr.getRemark() + "|微信支付退款成功金额:" + total_fee + "--" + TimeExchange.getTime());
+                        Boolean updateRpr = refundRecordService.updateById(rpr);
+                        if (!updateRpr) {
+                            response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
+                            JSONObject jsonObject = new JSONObject();
+                            jsonObject.put("code", "FAIL");
+                            jsonObject.put("message", "失败");
+                            response.getWriter().write(jsonObject.toJSONString());
+                        }
+                    }
 
 
 
 
                     // 订单状态
                     // 订单状态
@@ -2573,11 +2574,11 @@ public class HouseOrderController implements HouseOrderAPI {
                     jsonObject.put("message", "SUCCESS");
                     jsonObject.put("message", "SUCCESS");
                     response.getWriter().write(jsonObject.toJSONString());
                     response.getWriter().write(jsonObject.toJSONString());
                 } else {
                 } else {
-                    if (rpr!=null){
+                    if (rpr != null) {
                         rpr.setRefundNo(outRefundNo);
                         rpr.setRefundNo(outRefundNo);
                         rpr.setWxNo(refundId);
                         rpr.setWxNo(refundId);
                         rpr.setIsSuccess(2);
                         rpr.setIsSuccess(2);
-                        rpr.setRemark(rpr.getRemark()+"|微信支付退款失败:"+tradeState+"--"+TimeExchange.getTime());
+                        rpr.setRemark(rpr.getRemark() + "|微信支付退款失败:" + tradeState + "--" + TimeExchange.getTime());
 
 
                     }
                     }
                     response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
                     response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
@@ -2607,61 +2608,61 @@ public class HouseOrderController implements HouseOrderAPI {
     @Override
     @Override
     public CommonResult payOrderPrice(HouseOrderPriceDto houseOrderPriceDto) {
     public CommonResult payOrderPrice(HouseOrderPriceDto houseOrderPriceDto) {
         Double price = houseOrderPriceDto.getPrice();
         Double price = houseOrderPriceDto.getPrice();
-        String payType =houseOrderPriceDto.getPayType()+"";
-        if (price<=0) {
+        String payType = houseOrderPriceDto.getPayType() + "";
+        if (price <= 0) {
             return CommonResult.fail("金额异常");
             return CommonResult.fail("金额异常");
         }
         }
-        if(!StringUtils.hasText(payType)){
+        if (!StringUtils.hasText(payType)) {
             return CommonResult.fail("支付类型异常");
             return CommonResult.fail("支付类型异常");
         }
         }
 
 
         String orderNumber = houseOrderPriceDto.getOrderNumber();
         String orderNumber = houseOrderPriceDto.getOrderNumber();
 
 
-        LambdaQueryWrapper<HouseOrder> wrapper=new LambdaQueryWrapper<>();
-        wrapper.eq(HouseOrder::getOrderNumber,orderNumber);
+        LambdaQueryWrapper<HouseOrder> wrapper = new LambdaQueryWrapper<>();
+        wrapper.eq(HouseOrder::getOrderNumber, orderNumber);
         HouseOrder one = houseOrderService.getOne(wrapper);
         HouseOrder one = houseOrderService.getOne(wrapper);
         one.setPayPrice(BigDecimal.valueOf(price));
         one.setPayPrice(BigDecimal.valueOf(price));
         one.setPayType(payType);
         one.setPayType(payType);
-        if(!"1".equals(one.getOrderStatus())){
+        if (!"1".equals(one.getOrderStatus())) {
             return CommonResult.fail("订单状态不为待支付");
             return CommonResult.fail("订单状态不为待支付");
         }
         }
         //查询是否有未支付订单,有则调用关闭更新支付订单号重新生成支付订单
         //查询是否有未支付订单,有则调用关闭更新支付订单号重新生成支付订单
         List<PayRecord> houseOrderId = payRecordService.list(new QueryWrapper<PayRecord>().eq("house_order_id", one.getId()));
         List<PayRecord> houseOrderId = payRecordService.list(new QueryWrapper<PayRecord>().eq("house_order_id", one.getId()));
         //现金支付流程
         //现金支付流程
-        if("2".equals(payType)){
-            if(houseOrderId.size()>0){
+        if ("2".equals(payType)) {
+            if (houseOrderId.size() > 0) {
                 try {
                 try {
                     this.closeOrderById(houseOrderId.get(0).getPayNo());
                     this.closeOrderById(houseOrderId.get(0).getPayNo());
                 } catch (Exception e) {
                 } catch (Exception e) {
-                    return CommonResult.fail("关闭已生成支付订单失败返回,请查询订单支付状态:"+e.getMessage());
+                    return CommonResult.fail("关闭已生成支付订单失败返回,请查询订单支付状态:" + e.getMessage());
                 }
                 }
             }
             }
             one.setOrderStatus("2");
             one.setOrderStatus("2");
-            boolean oneFlag=houseOrderService.updateById(one);
-            if(!oneFlag){
+            boolean oneFlag = houseOrderService.updateById(one);
+            if (!oneFlag) {
                 return CommonResult.fail("订单现金支付失败");
                 return CommonResult.fail("订单现金支付失败");
             }
             }
             return CommonResult.ok("订单现金支付完成");
             return CommonResult.ok("订单现金支付完成");
         }
         }
-        boolean oneFlag=houseOrderService.updateById(one);
-        if(!oneFlag){
+        boolean oneFlag = houseOrderService.updateById(one);
+        if (!oneFlag) {
             return CommonResult.fail("订单价格修改失败");
             return CommonResult.fail("订单价格修改失败");
         }
         }
-        PayRecord payRecord=houseOrderId.size()>0?houseOrderId.get(0):new PayRecord();
-        if (StringUtils.hasText(payRecord.getPayNo())){
+        PayRecord payRecord = houseOrderId.size() > 0 ? houseOrderId.get(0) : new PayRecord();
+        if (StringUtils.hasText(payRecord.getPayNo())) {
             try {
             try {
                 this.closeOrderById(payRecord.getPayNo());
                 this.closeOrderById(payRecord.getPayNo());
             } catch (Exception e) {
             } catch (Exception e) {
-                return CommonResult.fail("关闭已生成支付订单失败返回:"+e.getMessage());
+                return CommonResult.fail("关闭已生成支付订单失败返回:" + e.getMessage());
             }
             }
             payRecord.setPayPrice(BigDecimal.valueOf(price));
             payRecord.setPayPrice(BigDecimal.valueOf(price));
             payRecord.setPayNo(CommonUtil.generateUUID());
             payRecord.setPayNo(CommonUtil.generateUUID());
             payRecord.setRemark("更新订单");
             payRecord.setRemark("更新订单");
             payRecordService.updateById(payRecord);
             payRecordService.updateById(payRecord);
-        }else{
+        } else {
             payRecord.setPayNo(CommonUtil.generateUUID());
             payRecord.setPayNo(CommonUtil.generateUUID());
             payRecord.setHouseOrderId(one.getId());
             payRecord.setHouseOrderId(one.getId());
-            payRecord.setUserId(StringUtils.hasText(one.getPayUserId())?Integer.valueOf(one.getPayUserId()):0);
+            payRecord.setUserId(StringUtils.hasText(one.getPayUserId()) ? Integer.valueOf(one.getPayUserId()) : 0);
             payRecord.setPayPrice(BigDecimal.valueOf(price));
             payRecord.setPayPrice(BigDecimal.valueOf(price));
             payRecord.setIsSuccess(1);
             payRecord.setIsSuccess(1);
             payRecord.setRemark("新订单");
             payRecord.setRemark("新订单");
@@ -2682,15 +2683,15 @@ public class HouseOrderController implements HouseOrderAPI {
         request.setAppid(wxPayV3Config.getAppId());
         request.setAppid(wxPayV3Config.getAppId());
         request.setMchid(wxPayV3Config.getMchId());
         request.setMchid(wxPayV3Config.getMchId());
         request.setDescription("测试商品标题");
         request.setDescription("测试商品标题");
-        amount.setTotal((int) (price*100));
+        amount.setTotal((int) (price * 100));
         request.setAmount(amount);
         request.setAmount(amount);
         request.setOutTradeNo(payRecord.getPayNo());
         request.setOutTradeNo(payRecord.getPayNo());
-        request.setNotifyUrl(wxPayV3Config.getDomain()+"/auto/house-order/returnPay");
+        request.setNotifyUrl(wxPayV3Config.getDomain() + "/auto/house-order/returnPay");
         // 调用下单方法,得到应答
         // 调用下单方法,得到应答
         com.wechat.pay.java.service.payments.nativepay.model.PrepayResponse response = null;
         com.wechat.pay.java.service.payments.nativepay.model.PrepayResponse response = null;
         try {
         try {
             response = service.prepay(request);
             response = service.prepay(request);
-            log.info("CodeUrl()========"+response.getCodeUrl());
+            log.info("CodeUrl()========" + response.getCodeUrl());
         } catch (Exception e) {
         } catch (Exception e) {
             e.printStackTrace();
             e.printStackTrace();
             return CommonResult.fail(e.getMessage());
             return CommonResult.fail(e.getMessage());
@@ -2700,53 +2701,53 @@ public class HouseOrderController implements HouseOrderAPI {
 
 
     @Override
     @Override
     public CommonResult queryRefundById(String refundNo) {
     public CommonResult queryRefundById(String refundNo) {
-        Refund refund= new Refund();
-        Map<String,Object> result=new HashMap<>();
+        Refund refund = new Refund();
+        Map<String, Object> result = new HashMap<>();
         HouseOrder one = houseOrderService.getById(refundNo);
         HouseOrder one = houseOrderService.getById(refundNo);
-        RefundRecord reFundRecord=refundRecordService.getOne(new QueryWrapper<RefundRecord>().eq("house_order_id",refundNo));
-        if(reFundRecord==null||reFundRecord.getId()==null){
-            result.put("code","1001");
-            result.put("message","该订单没有退款记录");
+        RefundRecord reFundRecord = refundRecordService.getOne(new QueryWrapper<RefundRecord>().eq("house_order_id", refundNo));
+        if (reFundRecord == null || reFundRecord.getId() == null) {
+            result.put("code", "1001");
+            result.put("message", "该订单没有退款记录");
             one.setOrderStatus("9");
             one.setOrderStatus("9");
             one.setRefundTime(new Date());
             one.setRefundTime(new Date());
             houseOrderService.updateById(one);
             houseOrderService.updateById(one);
             return CommonResult.ok(result);
             return CommonResult.ok(result);
         }
         }
-        if(reFundRecord.getIsSuccess()==1){
-            result.put("code","200");
-            result.put("message","退款已完成");
+        if (reFundRecord.getIsSuccess() == 1) {
+            result.put("code", "200");
+            result.put("message", "退款已完成");
             one.setOrderStatus("9");
             one.setOrderStatus("9");
             one.setRefundTime(new Date());
             one.setRefundTime(new Date());
             houseOrderService.updateById(one);
             houseOrderService.updateById(one);
             return CommonResult.ok(result);
             return CommonResult.ok(result);
         }
         }
-        if(reFundRecord.getIsSuccess()==2){
-            result.put("code","1002");
-            result.put("message","退款失败,原因:"+reFundRecord.getRemark());
+        if (reFundRecord.getIsSuccess() == 2) {
+            result.put("code", "1002");
+            result.put("message", "退款失败,原因:" + reFundRecord.getRemark());
             //失败不更新订房单
             //失败不更新订房单
             return CommonResult.ok(result);
             return CommonResult.ok(result);
         }
         }
         //退款中状态去微信查
         //退款中状态去微信查
-        if(reFundRecord.getIsSuccess()==0){
+        if (reFundRecord.getIsSuccess() == 0) {
             QueryByOutRefundNoRequest queryByOutRefundNoRequest = new QueryByOutRefundNoRequest();
             QueryByOutRefundNoRequest queryByOutRefundNoRequest = new QueryByOutRefundNoRequest();
             // 调用request.setXxx(val)设置所需参数,具体参数可见Request定义
             // 调用request.setXxx(val)设置所需参数,具体参数可见Request定义
 //            queryOrderByIdRequest.setSubMchid(wxPayV3Config.getMchId());
 //            queryOrderByIdRequest.setSubMchid(wxPayV3Config.getMchId());
             queryByOutRefundNoRequest.setOutRefundNo(reFundRecord.getRefundNo());
             queryByOutRefundNoRequest.setOutRefundNo(reFundRecord.getRefundNo());
-            log.info("微信支付查询订单入参:"+queryByOutRefundNoRequest.toString());
+            log.info("微信支付查询订单入参:" + queryByOutRefundNoRequest.toString());
             Config config =
             Config config =
                     new RSAAutoCertificateConfig.Builder()
                     new RSAAutoCertificateConfig.Builder()
-                            .merchantId( wxPayV3Config.getMchId())
+                            .merchantId(wxPayV3Config.getMchId())
                             .privateKeyFromPath(wxPayV3Config.getKeyPath())
                             .privateKeyFromPath(wxPayV3Config.getKeyPath())
                             .merchantSerialNumber(wxPayV3Config.getSerialNum())
                             .merchantSerialNumber(wxPayV3Config.getSerialNum())
                             .apiV3Key(wxPayV3Config.getApiKey3())
                             .apiV3Key(wxPayV3Config.getApiKey3())
                             .build();
                             .build();
-            RefundService service =new RefundService.Builder()
+            RefundService service = new RefundService.Builder()
                     .config(config)
                     .config(config)
                     .build();
                     .build();
             try {
             try {
                 refund = service.queryByOutRefundNo(queryByOutRefundNoRequest);
                 refund = service.queryByOutRefundNo(queryByOutRefundNoRequest);
-                log.info("微信退款查询订单出参:"+refund.toString());
-                switch (refund.getStatus()){
+                log.info("微信退款查询订单出参:" + refund.toString());
+                switch (refund.getStatus()) {
                     case SUCCESS:
                     case SUCCESS:
                         one.setOrderStatus("9");
                         one.setOrderStatus("9");
                         one.setRefundTime(new Date());
                         one.setRefundTime(new Date());
@@ -2754,34 +2755,34 @@ public class HouseOrderController implements HouseOrderAPI {
                         reFundRecord.setWxNo(refund.getRefundId());
                         reFundRecord.setWxNo(refund.getRefundId());
                         reFundRecord.setRefundPrice(new BigDecimal(refund.getAmount().getPayerRefund()).divide(new BigDecimal("100")).setScale(2));
                         reFundRecord.setRefundPrice(new BigDecimal(refund.getAmount().getPayerRefund()).divide(new BigDecimal("100")).setScale(2));
                         reFundRecord.setIsSuccess(1);
                         reFundRecord.setIsSuccess(1);
-                        reFundRecord.setRemark(reFundRecord.getRemark()+"|微信支付退款成功金额:"+refund.getAmount().getPayerRefund()+"--"+TimeExchange.getTime()+"-"+refund.getUserReceivedAccount());
-                        result.put("code","200");
-                        result.put("message","退款成功");
+                        reFundRecord.setRemark(reFundRecord.getRemark() + "|微信支付退款成功金额:" + refund.getAmount().getPayerRefund() + "--" + TimeExchange.getTime() + "-" + refund.getUserReceivedAccount());
+                        result.put("code", "200");
+                        result.put("message", "退款成功");
                         break;
                         break;
                     case PROCESSING:
                     case PROCESSING:
-                        result.put("code","1003");
-                        result.put("message","退款处理中,请稍后再查询:"+reFundRecord.getRemark());
+                        result.put("code", "1003");
+                        result.put("message", "退款处理中,请稍后再查询:" + reFundRecord.getRemark());
                         break;
                         break;
                     case CLOSED:
                     case CLOSED:
                         one.setOrderStatus("9");
                         one.setOrderStatus("9");
                         one.setRefundTime(new Date());
                         one.setRefundTime(new Date());
                         reFundRecord.setIsSuccess(2);
                         reFundRecord.setIsSuccess(2);
-                        reFundRecord.setRemark(reFundRecord.getRemark()+"|退款处理失败,退款订单被关闭,联系商户处理:"+TimeExchange.getTime());
-                        result.put("code","1004");
-                        result.put("message","退款处理失败,退款订单被关闭,联系商户处理");
+                        reFundRecord.setRemark(reFundRecord.getRemark() + "|退款处理失败,退款订单被关闭,联系商户处理:" + TimeExchange.getTime());
+                        result.put("code", "1004");
+                        result.put("message", "退款处理失败,退款订单被关闭,联系商户处理");
                         break;
                         break;
                     case ABNORMAL:
                     case ABNORMAL:
                         reFundRecord.setIsSuccess(2);
                         reFundRecord.setIsSuccess(2);
                         one.setOrderStatus("9");
                         one.setOrderStatus("9");
                         one.setRefundTime(new Date());
                         one.setRefundTime(new Date());
-                        reFundRecord.setRemark(reFundRecord.getRemark()+"|退款处理失败,退款异常,联系商户处理:"+TimeExchange.getTime());
-                        result.put("code","1005");
-                        result.put("message","退款处理失败,退款异常,联系商户处理");
+                        reFundRecord.setRemark(reFundRecord.getRemark() + "|退款处理失败,退款异常,联系商户处理:" + TimeExchange.getTime());
+                        result.put("code", "1005");
+                        result.put("message", "退款处理失败,退款异常,联系商户处理");
                         break;
                         break;
                 }
                 }
-                boolean a=houseOrderService.updateById(one);
-                boolean b=refundRecordService.updateById(reFundRecord);
-                if (!a||!b){
+                boolean a = houseOrderService.updateById(one);
+                boolean b = refundRecordService.updateById(reFundRecord);
+                if (!a || !b) {
                     throw new Exception("更新支付状态失败");
                     throw new Exception("更新支付状态失败");
                 }
                 }
             } catch (Exception e) {
             } catch (Exception e) {
@@ -2792,6 +2793,104 @@ public class HouseOrderController implements HouseOrderAPI {
         return CommonResult.ok(result);
         return CommonResult.ok(result);
     }
     }
 
 
+    @Override
+    public CommonResult appletReserveHour(String houseNumberId, String startTime, int liveTime) {
+        //        获取钟点房可用时间段
+        List<ApartmentSetting> list = apartmentSettingService.list(new LambdaQueryWrapper<>());
+        ApartmentSetting apartmentSetting = list.get(0);
+        String hourTime = apartmentSetting.getHourTime();
+
+        DateTimeFormatter dateTimeFormatter1 = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+        LocalDateTime start = LocalDateTime.parse(startTime, dateTimeFormatter1);
+
+        start = start.withSecond(0).withMinute(0);
+        LocalDateTime end = start.plusHours(liveTime);
+        String endTime = end.format(dateTimeFormatter1);
+        String[] split = hourTime.split(",");
+        ArrayList<AppletReserveDayVo> reserveDayVos = new ArrayList<>();
+        for (int i = 0; i < 13; i++) {
+            LocalDateTime localDateTime = null;
+            LocalDateTime localDateTime2 = null;
+            if (i == 0) {
+                localDateTime = LocalDateTime.parse(startTime, dateTimeFormatter1);
+                localDateTime2 = localDateTime.plusHours(liveTime);
+            } else {
+                localDateTime = start.plusHours(i);
+                localDateTime2 = end.plusHours(i);
+            }
+//            LocalDateTime localDateTime = start.plusHours(i);
+//            LocalDateTime  localDateTime2 = end.plusHours(i);
+            AppletReserveDayVo reserveDayVo = new AppletReserveDayVo();
+//            LocalDateTime localDateTime = start.plusHours(i);
+//            LocalDateTime localDateTime2 = end.plusHours(i);
+            String format = localDateTime.format(dateTimeFormatter1);
+            String format2 = localDateTime2.format(dateTimeFormatter1);
+            reserveDayVo.setDate(format + "至" + format2);
+            reserveDayVo.setHourDate(format.split(" ")[1] + "至" + format2.split(" ")[1]);
+//            先判断时间是否在可用时间范围内
+            LocalDateTime start1 = localDateTime.withHour(23).withMinute(59).withSecond(59);
+            String format3 = start1.format(dateTimeFormatter1);
+
+            String[] s1 = format.split(" ");
+            String startStr = s1[0];
+
+            String[] s2 = format2.split(" ");
+            String endStr = s2[0];
+
+            Integer status = 1;
+            for (int j = 0; j < split.length; j++) {
+                String s = split[j];
+                String[] split1 = s.split("-");
+                String start2 = split1[0];
+                String end2 = split1[1];
+                String start3 = startStr + " " + start2;
+                String end3 = startStr + " " + end2;
+                LocalDateTime localStart = LocalDateTime.parse(start3, dateTimeFormatter1);
+                LocalDateTime localEnd = LocalDateTime.parse(end3, dateTimeFormatter1);
+
+//            该天最后时间小于结束时间则需要分为2个时间段
+                if (start1.isBefore(localDateTime2)) {
+                    String start4 = endStr + " " + start2;
+                    String end4 = endStr + " " + end2;
+                    LocalDateTime localStart4 = LocalDateTime.parse(start4, dateTimeFormatter1);
+                    LocalDateTime localEnd4 = LocalDateTime.parse(end4, dateTimeFormatter1);
+
+                    if ((localStart.isBefore(localDateTime) || format.equals(start3)) && (start1.isBefore(localEnd) || format3.equals(end3)) && (localStart4.isBefore(start1) || start4.equals(format3)) && (start1.isBefore(localEnd4) || end4.equals(format3))) {
+//                        可用
+                        status = 2;
+                        break;
+                    }
+
+                } else {
+                    if ((localStart.isBefore(localDateTime) || format.equals(start3)) && (localDateTime2.isBefore(localEnd) || format2.equals(end3))) {
+//                        可用
+                        status = 2;
+                        break;
+                    }
+
+                }
+
+            }
+
+            if (status == 2) {
+                //        获取该时间段内的房态的使用情况
+                List<HouseNumberState> houseNumberStateList = houseNumberStateService.beBooked(houseNumberId, format, format2);
+                if (ObjectUtils.isNotEmpty(houseNumberStateList) && houseNumberStateList.size() > 0) {
+                    reserveDayVo.setStatus("不可用");
+                } else {
+                    reserveDayVo.setStatus("可用");
+                }
+            } else {
+                reserveDayVo.setStatus("不可用");
+            }
+
+            reserveDayVos.add(reserveDayVo);
+        }
+
+
+        return CommonResult.ok(reserveDayVos);
+    }
+
 
 
     public static void main(String[] args) throws Exception {
     public static void main(String[] args) throws Exception {
 //        获取签名
 //        获取签名
@@ -2800,11 +2899,10 @@ public class HouseOrderController implements HouseOrderAPI {
         // 时间戳
         // 时间戳
         long timestamp = System.currentTimeMillis() / 1000;
         long timestamp = System.currentTimeMillis() / 1000;
 //        构造签名串
 //        构造签名串
-        String qmc="GET"+"\n"
-                +"/v3/pay/transactions/h5"+"\n"
-                +timestamp+"\n"
-                +nonceStr+"\n"
-                ;
+        String qmc = "GET" + "\n"
+                + "/v3/pay/transactions/h5" + "\n"
+                + timestamp + "\n"
+                + nonceStr + "\n";
 //      使用商户私钥对待签名串进行SHA256 with RSA签名,并对签名结果进行Base64编码得到签名值
 //      使用商户私钥对待签名串进行SHA256 with RSA签名,并对签名结果进行Base64编码得到签名值
         Signature sign = Signature.getInstance("SHA256withRSA");
         Signature sign = Signature.getInstance("SHA256withRSA");
 //        sign.initSign(privateKey);
 //        sign.initSign(privateKey);
@@ -2813,12 +2911,9 @@ public class HouseOrderController implements HouseOrderAPI {
         System.out.println("signature = " + signature);
         System.out.println("signature = " + signature);
 
 
 
 
-
     }
     }
 
 
 
 
-
-
     /**
     /**
      * 每天12点查询一次到时间没有点退房的订单,并自动退房
      * 每天12点查询一次到时间没有点退房的订单,并自动退房
      */
      */

+ 2 - 6
src/main/java/com/template/controller/HousePriceController.java

@@ -1,14 +1,13 @@
 package com.template.controller;
 package com.template.controller;
 
 
 
 
-import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.template.api.HousePriceAPI;
 import com.template.api.HousePriceAPI;
 import com.template.common.utils.DateUtil;
 import com.template.common.utils.DateUtil;
-import com.template.common.utils.ExcelUtils;
+import com.template.common.utils.ExcelUtils2;
 import com.template.model.dto.AlterDto;
 import com.template.model.dto.AlterDto;
 import com.template.model.dto.AlterPriceDto;
 import com.template.model.dto.AlterPriceDto;
 import com.template.model.pojo.House;
 import com.template.model.pojo.House;
@@ -33,9 +32,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.RestController;
 import org.springframework.web.bind.annotation.RestController;
 
 
 import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpServletResponse;
-import java.io.IOException;
 import java.math.BigDecimal;
 import java.math.BigDecimal;
-import java.time.LocalDate;
 import java.time.LocalDateTime;
 import java.time.LocalDateTime;
 import java.time.ZoneId;
 import java.time.ZoneId;
 import java.time.format.DateTimeFormatter;
 import java.time.format.DateTimeFormatter;
@@ -43,7 +40,6 @@ import java.util.ArrayList;
 import java.util.Date;
 import java.util.Date;
 import java.util.HashMap;
 import java.util.HashMap;
 import java.util.List;
 import java.util.List;
-import java.util.stream.Collectors;
 
 
 /**
 /**
  * <p>
  * <p>
@@ -327,7 +323,7 @@ public class HousePriceController implements HousePriceAPI {
             }
             }
         }
         }
         // 将工作簿写入文件
         // 将工作簿写入文件
-        ExcelUtils.excelDownload(workbook, "改价记录表.xlsx", response);
+        ExcelUtils2.excelDownload(workbook, "改价记录表.xlsx", response);
 
 
 
 
     }
     }

+ 3 - 5
src/main/java/com/template/controller/LoginController.java

@@ -1,13 +1,13 @@
 package com.template.controller;
 package com.template.controller;
 
 
-import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.template.annotation.PassToken;
 import com.template.annotation.PassToken;
 import com.template.api.LoginControllerAPI;
 import com.template.api.LoginControllerAPI;
 import com.template.common.utils.AesUtils;
 import com.template.common.utils.AesUtils;
+import com.template.common.utils.JWTUtil;
 import com.template.common.utils.RSAUtils;
 import com.template.common.utils.RSAUtils;
+import com.template.common.utils.paramUtils;
 import com.template.config.MySecurity;
 import com.template.config.MySecurity;
-import com.template.model.enumModel.eStatu;
 import com.template.model.pojo.Admin;
 import com.template.model.pojo.Admin;
 import com.template.model.pojo.PermissionSetting;
 import com.template.model.pojo.PermissionSetting;
 import com.template.model.request.changePasswordRequest;
 import com.template.model.request.changePasswordRequest;
@@ -15,8 +15,6 @@ import com.template.model.request.loginRequest;
 import com.template.model.result.CommonResult;
 import com.template.model.result.CommonResult;
 import com.template.model.vo.LoginVO;
 import com.template.model.vo.LoginVO;
 import com.template.services.AdminService;
 import com.template.services.AdminService;
-import com.template.common.utils.paramUtils;
-import com.template.common.utils.JWTUtil;
 import com.template.services.PermissionSettingService;
 import com.template.services.PermissionSettingService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.validation.BindingResult;
 import org.springframework.validation.BindingResult;
@@ -94,7 +92,7 @@ public class LoginController implements LoginControllerAPI {
             login.setId(result.getId());
             login.setId(result.getId());
             login.setPermissionSettingId(one.getId());
             login.setPermissionSettingId(one.getId());
             login.setUser_head(AesUtils.encrypt(result.getId()+""));
             login.setUser_head(AesUtils.encrypt(result.getId()+""));
-
+            login.setPermissionSetting(one);
             return CommonResult.ok("登录成功",login);
             return CommonResult.ok("登录成功",login);
 
 
         }catch (Exception e){
         }catch (Exception e){

+ 5 - 5
src/main/java/com/template/controller/UploadServlet.java

@@ -28,10 +28,10 @@ public class UploadServlet {
         InputStream fileContent = filePart.getInputStream();
         InputStream fileContent = filePart.getInputStream();
 
 
         String fileNameWithPath = FileUtil.getFileNameWithPath() + ".jpg";
         String fileNameWithPath = FileUtil.getFileNameWithPath() + ".jpg";
-        FileUtil.makeDirs(fileNameWithPath, "E://image3");
-        String imgFilePath = "E://image3/" + fileNameWithPath;
-//        FileUtil.makeDirs(fileNameWithPath, "/home/nginx/html/image");
-//        String imgFilePath = "/home/nginx/html/image/" + fileNameWithPath;
+//        FileUtil.makeDirs(fileNameWithPath, "E://image3");
+//        String imgFilePath = "E://image3/" + fileNameWithPath;
+        FileUtil.makeDirs(fileNameWithPath, "/usr/local/nginx/html/image");
+        String imgFilePath = "/usr/local/nginx/html/image/" + fileNameWithPath;
 
 
 //        上传图片
 //        上传图片
         Files.copy(fileContent,new File(imgFilePath).toPath());
         Files.copy(fileContent,new File(imgFilePath).toPath());
@@ -45,7 +45,7 @@ public class UploadServlet {
 //            out.write(buffer, 0, bytesRead);
 //            out.write(buffer, 0, bytesRead);
 //        }
 //        }
 //        out.close();
 //        out.close();
-        String url="192.168.161.190:12345/"+fileNameWithPath;
+        String url="https://chtech.ncjti.edu.cn/hotel/image/"+fileNameWithPath;
 //        response.getWriter().println(url);
 //        response.getWriter().println(url);
         JSONObject jsonObject = new JSONObject();
         JSONObject jsonObject = new JSONObject();
         jsonObject.put("url",url);
         jsonObject.put("url",url);

+ 9 - 2
src/main/java/com/template/mapper/HouseNumberMapper.java

@@ -23,12 +23,12 @@ import java.util.List;
 @Mapper
 @Mapper
 public interface HouseNumberMapper extends BaseMapper<HouseNumber> {
 public interface HouseNumberMapper extends BaseMapper<HouseNumber> {
 
 
-    List<HouseStateVo> houseStatePage(@Param("keyWord") String keyWord, @Param("houseType") String houseType, @Param("start") LocalDateTime start,@Param("end") LocalDateTime end);
+    List<HouseStateVo> houseStatePage(@Param("keyWord") String keyWord, @Param("houseType") String houseType, @Param("start") LocalDateTime start, @Param("end") LocalDateTime end);
 
 
     IPage<CalendarPageVo> houseStateCalendarPage(Page<CalendarPageVo> pageVo, @Param("keyWord") String keyWord, @Param("houseType") String houseType);
     IPage<CalendarPageVo> houseStateCalendarPage(Page<CalendarPageVo> pageVo, @Param("keyWord") String keyWord, @Param("houseType") String houseType);
 
 
 
 
-    List<houseLockListVo> houseLockListDto(@Param("roomNumber") String roomNumber,@Param("houseIds") String houseIds);
+    List<houseLockListVo> houseLockListDto(@Param("roomNumber") String roomNumber, @Param("houseIds") String houseIds);
 
 
     List<Integer> getNumberState(@Param("date") Date date);
     List<Integer> getNumberState(@Param("date") Date date);
 
 
@@ -43,4 +43,11 @@ public interface HouseNumberMapper extends BaseMapper<HouseNumber> {
     List<FreeVo> openDropDownShow(String houseNumberIds);
     List<FreeVo> openDropDownShow(String houseNumberIds);
 
 
     List<HouseNumberVo> roomChangePage(@Param("houseId") String houseId);
     List<HouseNumberVo> roomChangePage(@Param("houseId") String houseId);
+
+    IPage<HouseNumberPageVo> pageList(Page<HouseNumberPageVo> pageVo, @Param("keyWord") String keyWord, @Param("startTime") String startTime, @Param("endTime") String endTime);
+
+    List<HouseNumberPageVo> listExport(@Param("keyWord") String keyWord, @Param("startTime") String startTime, @Param("endTime") String endTime);
+
+
+
 }
 }

+ 4 - 0
src/main/java/com/template/mapper/UnlockingCustomMapper.java

@@ -3,6 +3,9 @@ package com.template.mapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.template.model.pojo.UnlockingCustom;
 import com.template.model.pojo.UnlockingCustom;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Mapper;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 
 /**
 /**
  * <p>
  * <p>
@@ -15,4 +18,5 @@ import org.apache.ibatis.annotations.Mapper;
 @Mapper
 @Mapper
 public interface UnlockingCustomMapper extends BaseMapper<UnlockingCustom> {
 public interface UnlockingCustomMapper extends BaseMapper<UnlockingCustom> {
 
 
+    List<UnlockingCustom> key(@Param("houseNumberId") String houseNumberId);
 }
 }

+ 21 - 0
src/main/java/com/template/model/dto/HouseLockListImportDto.java

@@ -0,0 +1,21 @@
+package com.template.model.dto;
+
+import com.template.annotation.ExcelImport;
+import lombok.Data;
+
+@Data
+public class HouseLockListImportDto {
+
+    @ExcelImport(value = "房型类型",kv = "1-全日房;2-钟点房")
+    private Integer roomType;
+
+    @ExcelImport("房型名称")
+    private String houseName;
+
+    @ExcelImport("房间号")
+    private String roomNumber;
+
+    @ExcelImport(value = "门锁设备型号")
+    private String equipmentType;
+
+}

+ 12 - 0
src/main/java/com/template/model/vo/AppletReserveDayVo.java

@@ -0,0 +1,12 @@
+package com.template.model.vo;
+
+import lombok.Data;
+
+@Data
+public class AppletReserveDayVo {
+    private String date;
+
+    private String hourDate;
+
+    private String status;
+}

+ 50 - 0
src/main/java/com/template/model/vo/HouseNumberPageVo.java

@@ -0,0 +1,50 @@
+package com.template.model.vo;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+public class HouseNumberPageVo {
+    @ApiModelProperty(value = "房间号表")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "房型id")
+    private String houseId;
+
+    @ApiModelProperty(value = "房间号")
+    private String roomNumber;
+
+    @ApiModelProperty(value = "房间状态 1.净房 2.脏房")
+    private Integer houseStatus;
+
+//    @ApiModelProperty(value = "状态 1.空闲 2.正在使用")
+//    private Integer status;
+
+    @ApiModelProperty(value = "电开关操作 1开电,2关电")
+    private String electricType;
+
+    @ApiModelProperty(value = "电表设备id")
+    private String electricEquipmentId;
+
+    @ApiModelProperty(value = "电表设备编码")
+    private String electricEquipmentMeterName;
+
+    @ApiModelProperty(value = "水表设备id")
+    private String waterEquipmentId;
+
+    @ApiModelProperty(value = "水表设备编码")
+    private String waterEquipmentMeterName;
+
+    @ApiModelProperty(value = "创建时间")
+    private String createTime;
+
+    @ApiModelProperty(value = "房型类型,1-全日房;2-钟点房")
+    private Integer roomType;
+
+    @ApiModelProperty(value = "房型名称")
+    private String houseName;
+
+}

+ 2 - 0
src/main/java/com/template/model/vo/HouseOrderPageListVo.java

@@ -29,6 +29,8 @@ public class HouseOrderPageListVo {
     private String houseNumber;
     private String houseNumber;
     //  订单金额
     //  订单金额
     private BigDecimal orderPrice;
     private BigDecimal orderPrice;
+    @ApiModelProperty(value = "订单渠道(1线上,2管理端)")
+    private String orderChannel;
     //    支付渠道
     //    支付渠道
     private String payType;
     private String payType;
     //    订单渠道
     //    订单渠道

+ 3 - 0
src/main/java/com/template/model/vo/LoginVO.java

@@ -1,5 +1,6 @@
 package com.template.model.vo;
 package com.template.model.vo;
 
 
+import com.template.model.pojo.PermissionSetting;
 import lombok.Data;
 import lombok.Data;
 
 
 /**
 /**
@@ -36,4 +37,6 @@ public class LoginVO {
 
 
     private String user_head;
     private String user_head;
 
 
+    private PermissionSetting permissionSetting;
+
 }
 }

+ 7 - 0
src/main/java/com/template/services/HouseNumberService.java

@@ -38,4 +38,11 @@ public interface HouseNumberService extends IService<HouseNumber> {
     List<FreeVo> opneDropDownShow(String houseNumberIds);
     List<FreeVo> opneDropDownShow(String houseNumberIds);
 
 
     List<HouseNumberVo> roomChangePage(String houseId);
     List<HouseNumberVo> roomChangePage(String houseId);
+
+    HouseNumber getRoomNumber(Integer houseId, String roomNumber);
+
+    PageUtils<HouseNumberPageVo> pageList(int page, int size, String keyWord, String startTime, String endTime);
+
+    List<HouseNumberPageVo> listExport(String keyWord, String startTime, String endTime);
+
 }
 }

+ 1 - 3
src/main/java/com/template/services/HouseService.java

@@ -3,7 +3,6 @@ package com.template.services;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.template.model.pojo.House;
 import com.template.model.pojo.House;
 import com.template.model.result.PageUtils;
 import com.template.model.result.PageUtils;
-import com.template.model.vo.HouseAppletPageVo;
 import com.template.model.vo.HouseVo;
 import com.template.model.vo.HouseVo;
 import com.template.model.vo.HousedetailsVo;
 import com.template.model.vo.HousedetailsVo;
 import com.template.model.vo.RoomTypeVo;
 import com.template.model.vo.RoomTypeVo;
@@ -30,6 +29,5 @@ public interface HouseService extends IService<House> {
     List<String> group();
     List<String> group();
 
 
 
 
-
-
+    House getHouseName(String houseName,Integer roomType);
 }
 }

+ 3 - 0
src/main/java/com/template/services/UnlockingCustomService.java

@@ -3,6 +3,8 @@ package com.template.services;
 import com.template.model.pojo.UnlockingCustom;
 import com.template.model.pojo.UnlockingCustom;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.extension.service.IService;
 
 
+import java.util.List;
+
 /**
 /**
  * <p>
  * <p>
  *  服务类
  *  服务类
@@ -13,4 +15,5 @@ import com.baomidou.mybatisplus.extension.service.IService;
  */
  */
 public interface UnlockingCustomService extends IService<UnlockingCustom> {
 public interface UnlockingCustomService extends IService<UnlockingCustom> {
 
 
+    List<UnlockingCustom> key(String houseNumberId);
 }
 }

+ 22 - 0
src/main/java/com/template/services/impl/HouseNumberServiceImpl.java

@@ -1,5 +1,6 @@
 package com.template.services.impl;
 package com.template.services.impl;
 
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -87,5 +88,26 @@ public class HouseNumberServiceImpl extends ServiceImpl<HouseNumberMapper, House
         return houseNumberMapper.roomChangePage(houseId);
         return houseNumberMapper.roomChangePage(houseId);
     }
     }
 
 
+    @Override
+    public HouseNumber getRoomNumber(Integer houseId, String roomNumber) {
+        LambdaQueryWrapper<HouseNumber> wrapper=new LambdaQueryWrapper<>();
+        wrapper.eq(HouseNumber::getHouseId,houseId)
+                .eq(HouseNumber::getRoomNumber,roomNumber);
+        HouseNumber houseNumber = this.getOne(wrapper);
+        return houseNumber;
+    }
+
+    @Override
+    public PageUtils<HouseNumberPageVo> pageList(int page, int size, String keyWord, String startTime, String endTime) {
+        Page<HouseNumberPageVo> pageVo = new Page<>(page,size);
+        IPage<HouseNumberPageVo> result=houseNumberMapper.pageList(pageVo,keyWord,startTime,endTime);
+        return new PageUtils(result);
+    }
+
+    @Override
+    public List<HouseNumberPageVo> listExport(String keyWord, String startTime, String endTime) {
+        return houseNumberMapper.listExport(keyWord,startTime,endTime);
+    }
+
 
 
 }
 }

+ 10 - 2
src/main/java/com/template/services/impl/HouseServiceImpl.java

@@ -1,16 +1,16 @@
 package com.template.services.impl;
 package com.template.services.impl;
 
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.template.mapper.HouseMapper;
 import com.template.mapper.HouseMapper;
 import com.template.model.pojo.House;
 import com.template.model.pojo.House;
 import com.template.model.result.PageUtils;
 import com.template.model.result.PageUtils;
-import com.template.model.vo.HouseAppletPageVo;
 import com.template.model.vo.HouseVo;
 import com.template.model.vo.HouseVo;
 import com.template.model.vo.HousedetailsVo;
 import com.template.model.vo.HousedetailsVo;
 import com.template.model.vo.RoomTypeVo;
 import com.template.model.vo.RoomTypeVo;
 import com.template.services.HouseService;
 import com.template.services.HouseService;
-import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 
 
@@ -53,7 +53,15 @@ public class HouseServiceImpl extends ServiceImpl<HouseMapper, House> implements
         return roomNameList;
         return roomNameList;
     }
     }
 
 
+    @Override
+    public House getHouseName(String houseName,Integer roomType) {
+        LambdaQueryWrapper<House> wrapper=new LambdaQueryWrapper<>();
+        wrapper.eq(House::getRoomName,houseName)
+                .eq(House::getRoomType,roomType);
 
 
+        House house = this.getOne(wrapper);
+        return house;
+    }
 
 
 
 
 }
 }

+ 10 - 0
src/main/java/com/template/services/impl/UnlockingCustomServiceImpl.java

@@ -4,8 +4,11 @@ import com.template.model.pojo.UnlockingCustom;
 import com.template.mapper.UnlockingCustomMapper;
 import com.template.mapper.UnlockingCustomMapper;
 import com.template.services.UnlockingCustomService;
 import com.template.services.UnlockingCustomService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 
 
+import java.util.List;
+
 /**
 /**
  * <p>
  * <p>
  *  服务实现类
  *  服务实现类
@@ -17,4 +20,11 @@ import org.springframework.stereotype.Service;
 @Service
 @Service
 public class UnlockingCustomServiceImpl extends ServiceImpl<UnlockingCustomMapper, UnlockingCustom> implements UnlockingCustomService {
 public class UnlockingCustomServiceImpl extends ServiceImpl<UnlockingCustomMapper, UnlockingCustom> implements UnlockingCustomService {
 
 
+    @Autowired
+    UnlockingCustomMapper unlockingCustomMapper;
+
+    @Override
+    public List<UnlockingCustom> key(String houseNumberId) {
+        return unlockingCustomMapper.key(houseNumberId);
+    }
 }
 }

+ 60 - 0
src/main/resources/mapper/template/HouseNumberMapper.xml

@@ -225,5 +225,65 @@
         WHERE hn.house_id=#{houseId} AND hn.deleted=0 and hn.house_status=1
         WHERE hn.house_id=#{houseId} AND hn.deleted=0 and hn.house_status=1
     </select>
     </select>
 
 
+    <select id="pageList" resultType="com.template.model.vo.HouseNumberPageVo">
+        SELECT
+            hn.id,
+            hn.house_id as houseId,
+            hn.room_number as roomNumber,
+            hn.house_status as houseStatus,
+            hn.electric_type as electricType,
+            hn.electric_equipment_id as electricEquipmentId,
+            hn.electric_equipment_meter_name as electricEquipmentMeterName,
+            hn.water_equipment_id as waterEquipmentId,
+            hn.water_equipment_meter_name as waterEquipmentMeterName,
+            hn.create_time as createTime,
+            h.room_name as houseName,
+            h.room_type as roomType
+        FROM
+            `house_number` hn
+                LEFT JOIN house h on h.id=hn.house_id AND h.deleted=0
+        WHERE
+            hn.deleted=0
+        <if test="keyWord != null and keyWord != ''">
+            AND (hn.room_number LIKE '%' #{keyWord} '%' OR hn.electric_equipment_meter_name LIKE '%' #{keyWord} '%'  OR hn.water_equipment_meter_name LIKE '%' #{keyWord} '%')
+        </if>
+
+        <if test="startTime != null and startTime != '' and endTime != null and endTime != ''  ">
+            AND #{endTime} >= hn.create_time
+            AND hn.create_time >= #{startTime}
+        </if>
+        ORDER BY h.id
+    </select>
+
+    <select id="listExport" resultType="com.template.model.vo.HouseNumberPageVo">
+        SELECT
+        hn.id,
+        hn.house_id as houseId,
+        hn.room_number as roomNumber,
+        hn.house_status as houseStatus,
+        hn.electric_type as electricType,
+        hn.electric_equipment_id as electricEquipmentId,
+        hn.electric_equipment_meter_name as electricEquipmentMeterName,
+        hn.water_equipment_id as waterEquipmentId,
+        hn.water_equipment_meter_name as waterEquipmentMeterName,
+        hn.create_time as createTime,
+        h.room_name as houseName,
+        h.room_type as roomType
+        FROM
+        `house_number` hn
+        LEFT JOIN house h on h.id=hn.house_id AND h.deleted=0
+        WHERE
+        hn.deleted=0
+        <if test="keyWord != null and keyWord != ''">
+            AND (hn.room_number LIKE '%' #{keyWord} '%' OR hn.electric_equipment_meter_name LIKE '%' #{keyWord} '%'  OR hn.water_equipment_meter_name LIKE '%' #{keyWord} '%')
+        </if>
+
+        <if test="startTime != null and startTime != '' and endTime != null and endTime != ''  ">
+            AND #{endTime} >= hn.create_time
+            AND hn.create_time >= #{startTime}
+        </if>
+        ORDER BY h.id
+    </select>
+
 
 
 </mapper>
 </mapper>

+ 1 - 0
src/main/resources/mapper/template/HouseOrderMapper.xml

@@ -20,6 +20,7 @@
         ho.pay_time as payTime,
         ho.pay_time as payTime,
         ho.refund_time as refundTime,
         ho.refund_time as refundTime,
         ho.cancel_time as cancelTime,
         ho.cancel_time as cancelTime,
+        ho.order_channel as orderChannel,
         h.id as houseId,
         h.id as houseId,
         hn.id as houseNumberId,
         hn.id as houseNumberId,
         h.room_type as roomType
         h.room_type as roomType

+ 8 - 0
src/main/resources/mapper/template/UnlockingCustomMapper.xml

@@ -2,4 +2,12 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.template.mapper.UnlockingCustomMapper">
 <mapper namespace="com.template.mapper.UnlockingCustomMapper">
 
 
+    <select id="key" resultType="com.template.model.pojo.UnlockingCustom">
+        SELECT u.*
+        FROM `unlocking_custom` u
+        where u.deleted = 0
+          and CURDATE() > u.start_time
+          and u.end_time > CURDATE()
+          and u.house_number_id = #{houseNumberId}
+    </select>
 </mapper>
 </mapper>