wangzhengliang пре 3 година
комит
e94f6ee2c0
72 измењених фајлова са 3368 додато и 0 уклоњено
  1. 141 0
      pom.xml
  2. 13 0
      src/main/java/com/chuanghai/ihotel/IhotelApplication.java
  3. 20 0
      src/main/java/com/chuanghai/ihotel/anno/ParamCheck.java
  4. 94 0
      src/main/java/com/chuanghai/ihotel/aop/ParamCheckAspect.java
  5. 50 0
      src/main/java/com/chuanghai/ihotel/common/exception/BizCodeEnume.java
  6. 128 0
      src/main/java/com/chuanghai/ihotel/common/exception/MyExceptionHandler.java
  7. 65 0
      src/main/java/com/chuanghai/ihotel/common/exception/RRException.java
  8. 35 0
      src/main/java/com/chuanghai/ihotel/common/utils/BaseResult.java
  9. 47 0
      src/main/java/com/chuanghai/ihotel/common/utils/CommonResult.java
  10. 127 0
      src/main/java/com/chuanghai/ihotel/common/utils/Constant.java
  11. 141 0
      src/main/java/com/chuanghai/ihotel/common/utils/JwtOperator.java
  12. 54 0
      src/main/java/com/chuanghai/ihotel/common/utils/MyQuery.java
  13. 33 0
      src/main/java/com/chuanghai/ihotel/common/utils/PageParam.java
  14. 101 0
      src/main/java/com/chuanghai/ihotel/common/utils/PageUtils.java
  15. 51 0
      src/main/java/com/chuanghai/ihotel/common/utils/SQLFilter.java
  16. 94 0
      src/main/java/com/chuanghai/ihotel/controller/HotelOderRefundController.java
  17. 94 0
      src/main/java/com/chuanghai/ihotel/controller/HotelOrderBillController.java
  18. 94 0
      src/main/java/com/chuanghai/ihotel/controller/HotelOrderController.java
  19. 94 0
      src/main/java/com/chuanghai/ihotel/controller/HotelStaffController.java
  20. 94 0
      src/main/java/com/chuanghai/ihotel/controller/RoomController.java
  21. 94 0
      src/main/java/com/chuanghai/ihotel/controller/RoomDoorLockController.java
  22. 94 0
      src/main/java/com/chuanghai/ihotel/controller/RoomRealtimeStatuController.java
  23. 94 0
      src/main/java/com/chuanghai/ihotel/controller/RoomTypeController.java
  24. 94 0
      src/main/java/com/chuanghai/ihotel/controller/SystemSettingController.java
  25. 17 0
      src/main/java/com/chuanghai/ihotel/dao/HotelOderRefundDao.java
  26. 17 0
      src/main/java/com/chuanghai/ihotel/dao/HotelOrderBillDao.java
  27. 17 0
      src/main/java/com/chuanghai/ihotel/dao/HotelOrderDao.java
  28. 17 0
      src/main/java/com/chuanghai/ihotel/dao/HotelStaffDao.java
  29. 17 0
      src/main/java/com/chuanghai/ihotel/dao/RoomDao.java
  30. 17 0
      src/main/java/com/chuanghai/ihotel/dao/RoomDoorLockDao.java
  31. 17 0
      src/main/java/com/chuanghai/ihotel/dao/RoomRealtimeStatuDao.java
  32. 17 0
      src/main/java/com/chuanghai/ihotel/dao/RoomTypeDao.java
  33. 17 0
      src/main/java/com/chuanghai/ihotel/dao/SystemSettingDao.java
  34. 57 0
      src/main/java/com/chuanghai/ihotel/entity/HotelOderRefundEntity.java
  35. 89 0
      src/main/java/com/chuanghai/ihotel/entity/HotelOrderBillEntity.java
  36. 113 0
      src/main/java/com/chuanghai/ihotel/entity/HotelOrderEntity.java
  37. 51 0
      src/main/java/com/chuanghai/ihotel/entity/HotelStaffEntity.java
  38. 48 0
      src/main/java/com/chuanghai/ihotel/entity/RoomDoorLockEntity.java
  39. 51 0
      src/main/java/com/chuanghai/ihotel/entity/RoomEntity.java
  40. 56 0
      src/main/java/com/chuanghai/ihotel/entity/RoomRealtimeStatuEntity.java
  41. 56 0
      src/main/java/com/chuanghai/ihotel/entity/RoomTypeEntity.java
  42. 52 0
      src/main/java/com/chuanghai/ihotel/entity/SystemSettingEntity.java
  43. 19 0
      src/main/java/com/chuanghai/ihotel/service/HotelOderRefundService.java
  44. 19 0
      src/main/java/com/chuanghai/ihotel/service/HotelOrderBillService.java
  45. 19 0
      src/main/java/com/chuanghai/ihotel/service/HotelOrderService.java
  46. 19 0
      src/main/java/com/chuanghai/ihotel/service/HotelStaffService.java
  47. 19 0
      src/main/java/com/chuanghai/ihotel/service/RoomDoorLockService.java
  48. 19 0
      src/main/java/com/chuanghai/ihotel/service/RoomRealtimeStatuService.java
  49. 19 0
      src/main/java/com/chuanghai/ihotel/service/RoomService.java
  50. 19 0
      src/main/java/com/chuanghai/ihotel/service/RoomTypeService.java
  51. 19 0
      src/main/java/com/chuanghai/ihotel/service/SystemSettingService.java
  52. 29 0
      src/main/java/com/chuanghai/ihotel/service/impl/HotelOderRefundServiceImpl.java
  53. 29 0
      src/main/java/com/chuanghai/ihotel/service/impl/HotelOrderBillServiceImpl.java
  54. 29 0
      src/main/java/com/chuanghai/ihotel/service/impl/HotelOrderServiceImpl.java
  55. 29 0
      src/main/java/com/chuanghai/ihotel/service/impl/HotelStaffServiceImpl.java
  56. 29 0
      src/main/java/com/chuanghai/ihotel/service/impl/RoomDoorLockServiceImpl.java
  57. 29 0
      src/main/java/com/chuanghai/ihotel/service/impl/RoomRealtimeStatuServiceImpl.java
  58. 29 0
      src/main/java/com/chuanghai/ihotel/service/impl/RoomServiceImpl.java
  59. 29 0
      src/main/java/com/chuanghai/ihotel/service/impl/RoomTypeServiceImpl.java
  60. 29 0
      src/main/java/com/chuanghai/ihotel/service/impl/SystemSettingServiceImpl.java
  61. 35 0
      src/main/resources/application.yml
  62. 19 0
      src/main/resources/mapper/ihotel/HotelOderRefundDao.xml
  63. 27 0
      src/main/resources/mapper/ihotel/HotelOrderBillDao.xml
  64. 33 0
      src/main/resources/mapper/ihotel/HotelOrderDao.xml
  65. 18 0
      src/main/resources/mapper/ihotel/HotelStaffDao.xml
  66. 18 0
      src/main/resources/mapper/ihotel/RoomDao.xml
  67. 17 0
      src/main/resources/mapper/ihotel/RoomDoorLockDao.xml
  68. 19 0
      src/main/resources/mapper/ihotel/RoomRealtimeStatuDao.xml
  69. 19 0
      src/main/resources/mapper/ihotel/RoomTypeDao.xml
  70. 18 0
      src/main/resources/mapper/ihotel/SystemSettingDao.xml
  71. 28 0
      src/main/resources/smart-doc.json
  72. 13 0
      src/test/java/com/chuanghai/ihotel/IhotelApplicationTests.java

+ 141 - 0
pom.xml

@@ -0,0 +1,141 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+    <parent>
+        <groupId>org.springframework.boot</groupId>
+        <artifactId>spring-boot-starter-parent</artifactId>
+        <version>2.7.2</version>
+        <relativePath/> <!-- lookup parent from repository -->
+    </parent>
+    <groupId>com.chuanghai</groupId>
+    <artifactId>ihotel</artifactId>
+    <version>0.0.1-SNAPSHOT</version>
+    <name>ihotel</name>
+    <description>智慧酒店</description>
+    <properties>
+        <java.version>1.8</java.version>
+    </properties>
+    <dependencies>
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-web</artifactId>
+        </dependency>
+
+        <!-- aop -->
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-aop</artifactId>
+        </dependency>
+
+        <!-- validator -->
+        <dependency>
+            <groupId>org.hibernate</groupId>
+            <artifactId>hibernate-validator</artifactId>
+            <version>6.1.5.Final</version>
+        </dependency>
+
+        <dependency>
+            <groupId>com.baomidou</groupId>
+            <artifactId>mybatis-plus-boot-starter</artifactId>
+            <version>3.3.1</version>
+        </dependency>
+
+        <!-- jwt -->
+        <dependency>
+            <groupId>io.jsonwebtoken</groupId>
+            <artifactId>jjwt-api</artifactId>
+            <version>0.10.7</version>
+        </dependency>
+        <dependency>
+            <groupId>io.jsonwebtoken</groupId>
+            <artifactId>jjwt-impl</artifactId>
+            <version>0.10.7</version>
+            <scope>runtime</scope>
+        </dependency>
+        <dependency>
+            <groupId>io.jsonwebtoken</groupId>
+            <artifactId>jjwt-jackson</artifactId>
+            <version>0.10.7</version>
+            <scope>runtime</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.assertj</groupId>
+            <artifactId>assertj-core</artifactId>
+            <version>3.16.1</version>
+            <scope>compile</scope>
+        </dependency>
+
+        <!-- 密码加密 -->
+        <dependency>
+            <groupId>org.springframework.security</groupId>
+            <artifactId>spring-security-crypto</artifactId>
+            <version>5.4.2</version>
+        </dependency>
+
+        <dependency>
+            <groupId>mysql</groupId>
+            <artifactId>mysql-connector-java</artifactId>
+            <scope>runtime</scope>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-configuration-processor</artifactId>
+            <optional>true</optional>
+        </dependency>
+
+        <dependency>
+            <groupId>org.projectlombok</groupId>
+            <artifactId>lombok</artifactId>
+            <optional>true</optional>
+        </dependency>
+
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-starter-test</artifactId>
+            <scope>test</scope>
+        </dependency>
+    </dependencies>
+
+    <build>
+        <plugins>
+            <plugin>
+                <groupId>org.springframework.boot</groupId>
+                <artifactId>spring-boot-maven-plugin</artifactId>
+                <configuration>
+                    <excludes>
+                        <exclude>
+                            <groupId>org.projectlombok</groupId>
+                            <artifactId>lombok</artifactId>
+                        </exclude>
+                    </excludes>
+                </configuration>
+            </plugin>
+
+            <!-- smart doc -->
+            <plugin>
+                <groupId>com.github.shalousun</groupId>
+                <artifactId>smart-doc-maven-plugin</artifactId>
+                <version>2.2.2</version>
+                <configuration>
+                    <!--指定生成文档的使用的配置文件,配置文件放在自己的项目中-->
+                    <configFile>./src/main/resources/smart-doc.json</configFile>
+                    <!--指定项目名称-->
+                    <projectName>智慧酒店项目</projectName>
+                </configuration>
+                <executions>
+                    <execution>
+                        <!--如果不需要在执行编译时启动smart-doc,则将phase注释掉-->
+                        <phase>compile</phase>
+                        <goals>
+                            <!--smart-doc提供了html、openapi、markdown等goal,可按需配置-->
+                            <goal>html</goal>
+                        </goals>
+                    </execution>
+                </executions>
+            </plugin>
+        </plugins>
+    </build>
+
+</project>

+ 13 - 0
src/main/java/com/chuanghai/ihotel/IhotelApplication.java

@@ -0,0 +1,13 @@
+package com.chuanghai.ihotel;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+@SpringBootApplication
+public class IhotelApplication {
+
+    public static void main(String[] args) {
+        SpringApplication.run(IhotelApplication.class, args);
+    }
+
+}

+ 20 - 0
src/main/java/com/chuanghai/ihotel/anno/ParamCheck.java

@@ -0,0 +1,20 @@
+package com.chuanghai.ihotel.anno;
+
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * 参数校验
+ */
+@Retention(RetentionPolicy.RUNTIME)
+@Target(ElementType.METHOD)
+public @interface ParamCheck {
+
+    /**
+     * 需要校验参数索引
+     * @return
+     */
+    int[] index() default {1};
+}

+ 94 - 0
src/main/java/com/chuanghai/ihotel/aop/ParamCheckAspect.java

@@ -0,0 +1,94 @@
+package com.chuanghai.ihotel.aop;
+
+import com.chuanghai.ihotel.anno.ParamCheck;
+import com.chuanghai.ihotel.common.exception.BizCodeEnume;
+import com.chuanghai.ihotel.common.exception.RRException;
+import org.aspectj.lang.ProceedingJoinPoint;
+import org.aspectj.lang.Signature;
+import org.aspectj.lang.annotation.Around;
+import org.aspectj.lang.annotation.Aspect;
+import org.aspectj.lang.reflect.MethodSignature;
+import org.hibernate.validator.HibernateValidator;
+import org.springframework.stereotype.Component;
+
+import javax.validation.ConstraintViolation;
+import javax.validation.Validation;
+import javax.validation.Validator;
+import java.lang.reflect.Method;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Set;
+
+/**
+ * 参数校验切面
+ */
+@Aspect
+@Component
+public class ParamCheckAspect {
+
+    /**
+     * 校验器
+     */
+    private Validator validator = Validation.byProvider(HibernateValidator.class)
+            .configure()
+            // 快速失败模式
+            .failFast(true)
+            .buildValidatorFactory()
+            .getValidator();
+
+
+    @Around("@annotation(com.chuanghai.ihotel.anno.ParamCheck)")
+    public Object paramCheck(ProceedingJoinPoint point) throws Throwable {
+        Signature signature = point.getSignature();
+        MethodSignature methodSignature = (MethodSignature) signature;
+        Method method = methodSignature.getMethod();
+
+        // 参数值列表
+        Object[] args = point.getArgs();
+
+        ParamCheck paramCheck = method.getAnnotation(ParamCheck.class);
+        // 需要校验参数索引【从1开始】
+        int[] index = paramCheck.index();
+
+        if (args == null) {
+            throw new RRException(BizCodeEnume.UNKNOW_EXCEPTION, "@ParamCheck标注在参数列表为空的方法上");
+        }
+
+        int maxIndex = Arrays.stream(index).max().getAsInt();
+        if (maxIndex > args.length) {
+            throw new RRException(BizCodeEnume.UNKNOW_EXCEPTION, "@ParamCheck index越界");
+        }
+
+        for (int i: index) {
+            Object value = args[i - 1];
+            if (value.getClass().isArray()) {
+                doValidate(Arrays.asList((Object[]) value));
+            } else if (value instanceof List) {
+                doValidate((List) value);
+            } else if (value instanceof Set) {
+                doValidate(new ArrayList((Set) value));
+            } else {
+                doValidate(value);
+            }
+        }
+
+        // 返回执行结果
+        return point.proceed();
+    }
+
+    public void doValidate(List values) {
+        if (values != null && values.size() > 0) {
+            for (Object o: values) {
+                doValidate(o);
+            }
+        }
+    }
+
+    public void doValidate(Object o) {
+        Set<ConstraintViolation<Object>> errorSet = validator.validate(o);
+        if (errorSet != null && errorSet.size() > 0) {
+            throw new RRException(BizCodeEnume.PARAMETER_ERROR, errorSet.iterator().next().getMessage());
+        }
+    }
+}

+ 50 - 0
src/main/java/com/chuanghai/ihotel/common/exception/BizCodeEnume.java

@@ -0,0 +1,50 @@
+package com.chuanghai.ihotel.common.exception;
+
+/***
+ * 错误码和错误信息定义类
+ * 1. 错误码定义规则为5为数字
+ * 2. 前两位表示业务场景,最后三位表示错误码。例如:100001。10:通用 001:系统未知异常
+ * 3. 维护错误码后需要维护错误描述,将他们定义为枚举形式
+ * 错误码列表:
+ *  10: 通用
+ *  11: 参数
+ *  12: 角色
+ *  13: 用户
+ *  14: 权限
+ *  15: 文件
+ *  16: 业务
+ *
+ */
+public enum BizCodeEnume {
+    UNKNOW_EXCEPTION(10000,"系统未知异常"),
+    METHOD_NOT_SUPPORT(10001, "请求方法不支持"),
+    REQUEST_HEADER_MISSING(10002, "缺少必要的请求头"),
+    TOKEN_INVALID(10003, "无效的token"),
+    TOKEN_IS_EMPTY(10004, "token为空"),
+    ADMIN_LOGIN_FAIL(10005, "管理员登录失败"),
+    PERMISSION_DENIED(10006, "权限不足"),
+    INVALID_PARAM(11001,"参数格式校验失败"),
+    BODY_IS_EMPTY(11002, "body为空"),
+    PARAMETER_ERROR(11003, "参数异常"),
+    THIRD_PARTY_SERVICE_CALL_FAILED(11007, "第三方服务调用失败"),
+    DATA_IS_EXIST(16000, "数据已存在"),
+    DATA_NOT_EXIST(16000, "数据不存在"),
+    FILE_IS_NOT_EXIT(16006, "临时文件不存在"),
+    FILE_UPLOAD_ERROR(16007, "文件上传失败"),
+    FILE_IS_TOO_BIG(16008, "文件太大");
+
+    private int code;
+    private String msg;
+    BizCodeEnume(int code, String msg){
+        this.code = code;
+        this.msg = msg;
+    }
+
+    public int getCode() {
+        return code;
+    }
+
+    public String getMsg() {
+        return msg;
+    }
+}

+ 128 - 0
src/main/java/com/chuanghai/ihotel/common/exception/MyExceptionHandler.java

@@ -0,0 +1,128 @@
+package com.chuanghai.ihotel.common.exception;
+
+import com.chuanghai.ihotel.common.utils.CommonResult;
+import org.springframework.dao.DuplicateKeyException;
+import org.springframework.http.converter.HttpMessageNotReadableException;
+import org.springframework.web.HttpMediaTypeNotSupportedException;
+import org.springframework.web.HttpRequestMethodNotSupportedException;
+import org.springframework.web.bind.MethodArgumentNotValidException;
+import org.springframework.web.bind.MissingRequestHeaderException;
+import org.springframework.web.bind.MissingServletRequestParameterException;
+import org.springframework.web.bind.annotation.ExceptionHandler;
+import org.springframework.web.bind.annotation.RestControllerAdvice;
+import org.springframework.web.multipart.MaxUploadSizeExceededException;
+import org.springframework.web.multipart.MultipartException;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * @Author: codingliang
+ * @Description: 统一异常处理
+ * @Date: 2021-01-06 10:07
+ * @Version: V1.0
+ **/
+@RestControllerAdvice
+public class MyExceptionHandler {
+
+    /**
+     * 处理参数校验异常
+     * @param e
+     * @return
+     */
+    @ExceptionHandler(MethodArgumentNotValidException.class)
+    public CommonResult handleValidException(MethodArgumentNotValidException e) {
+        Map<String, String> map = new HashMap<>();
+        e.getBindingResult().getFieldErrors().forEach(item -> {
+            String errMessage = item.getDefaultMessage();
+            String errField = item.getField();
+            map.put(errField, errMessage);
+        });
+        return CommonResult.fail(Integer.toString(BizCodeEnume.INVALID_PARAM.getCode()), BizCodeEnume.INVALID_PARAM.getMsg()).setResult(map);
+    }
+
+    /**
+     * 数据库索引重复
+     * @return
+     */
+    @ExceptionHandler(DuplicateKeyException.class)
+    public CommonResult handleSQLIntegrityConstraintViolationException() {
+        return CommonResult.fail(Integer.toString(BizCodeEnume.DATA_IS_EXIST.getCode()), BizCodeEnume.DATA_IS_EXIST.getMsg());
+    }
+
+    /**
+     * 请求方法不支持
+     * @return
+     */
+    @ExceptionHandler(HttpRequestMethodNotSupportedException.class)
+    public CommonResult handleRequestMethodNotSupported() {
+        return CommonResult.fail(Integer.toString(BizCodeEnume.METHOD_NOT_SUPPORT.getCode()), BizCodeEnume.METHOD_NOT_SUPPORT.getMsg());
+    }
+
+    /**
+     * 缺少请求头
+     * @return
+     */
+    @ExceptionHandler(MissingRequestHeaderException.class)
+    public CommonResult handleRequestHeaderMissing() {
+        return CommonResult.fail(Integer.toString(BizCodeEnume.REQUEST_HEADER_MISSING.getCode()), BizCodeEnume.REQUEST_HEADER_MISSING.getMsg());
+    }
+
+    /**
+     * 参数缺失
+     * @return
+     */
+    @ExceptionHandler(MissingServletRequestParameterException.class)
+    public CommonResult handleMissingServletRequestParameterException() {
+        return CommonResult.fail(Integer.toString(BizCodeEnume.PARAMETER_ERROR.getCode()), BizCodeEnume.PARAMETER_ERROR.getMsg());
+    }
+
+    /**
+     * 文件过大
+     * @return
+     */
+    @ExceptionHandler(MaxUploadSizeExceededException.class)
+    public CommonResult handleMaxUploadSizeExceededException() {
+        return CommonResult.fail(Integer.toString(BizCodeEnume.FILE_IS_TOO_BIG.getCode()), BizCodeEnume.FILE_IS_TOO_BIG.getMsg());
+    }
+
+    @ExceptionHandler(MultipartException.class)
+    public CommonResult handleMultipartException() {
+        return CommonResult.fail(Integer.toString(BizCodeEnume.PARAMETER_ERROR.getCode()), "文件上传异常");
+    }
+
+    /**
+     * body为空
+     * @return
+     */
+    @ExceptionHandler(HttpMessageNotReadableException.class)
+    public CommonResult handleMessageNotReadableException() {
+        return CommonResult.fail(Integer.toString(BizCodeEnume.BODY_IS_EMPTY.getCode()), BizCodeEnume.BODY_IS_EMPTY.getMsg());
+    }
+
+    @ExceptionHandler(HttpMediaTypeNotSupportedException.class)
+    public CommonResult handleHttpMediaTypeNotSupportedException(HttpMediaTypeNotSupportedException e) {
+        return CommonResult.fail(Integer.toString(BizCodeEnume.PARAMETER_ERROR.getCode()), "参数类型错误:" + e.getMessage());
+    }
+
+    /**
+     * 自定义异常
+     * @param e
+     * @return
+     */
+    @ExceptionHandler(RRException.class)
+    public CommonResult handleRRException(RRException e) {
+        return CommonResult.fail(Integer.toString(e.getCode()), e.getMsg());
+    }
+
+    /**
+     * 未知异常
+     * @param throwable
+     * @return
+     */
+    @ExceptionHandler(Throwable.class)
+    public CommonResult handleException(Throwable throwable) {
+        throwable.printStackTrace();
+        return CommonResult.fail(Integer.toString(BizCodeEnume.UNKNOW_EXCEPTION.getCode()), BizCodeEnume.UNKNOW_EXCEPTION.getMsg());
+    }
+}

+ 65 - 0
src/main/java/com/chuanghai/ihotel/common/exception/RRException.java

@@ -0,0 +1,65 @@
+package com.chuanghai.ihotel.common.exception;
+
+/**
+ * 自定义异常
+ *
+ * @author Mark sunlightcs@gmail.com
+ */
+public class RRException extends RuntimeException {
+    private static final long serialVersionUID = 1L;
+
+    private String msg;
+    private int code = 500;
+
+    public RRException(String msg) {
+        super(msg);
+        this.msg = msg;
+    }
+
+    public RRException(String msg, Throwable e) {
+        super(msg, e);
+        this.msg = msg;
+    }
+
+    public RRException(String msg, int code) {
+        super(msg);
+        this.msg = msg;
+        this.code = code;
+    }
+
+    public RRException(BizCodeEnume bizCodeEnume) {
+        super(bizCodeEnume.getMsg());
+        this.msg = bizCodeEnume.getMsg();
+        this.code = bizCodeEnume.getCode();
+    }
+
+    public RRException(BizCodeEnume bizCodeEnume, String msg) {
+        super(bizCodeEnume.getMsg());
+        this.msg = msg;
+        this.code = bizCodeEnume.getCode();
+    }
+
+    public RRException(String msg, int code, Throwable e) {
+        super(msg, e);
+        this.msg = msg;
+        this.code = code;
+    }
+
+    public String getMsg() {
+        return msg;
+    }
+
+    public void setMsg(String msg) {
+        this.msg = msg;
+    }
+
+    public int getCode() {
+        return code;
+    }
+
+    public void setCode(int code) {
+        this.code = code;
+    }
+
+
+}

+ 35 - 0
src/main/java/com/chuanghai/ihotel/common/utils/BaseResult.java

@@ -0,0 +1,35 @@
+package com.chuanghai.ihotel.common.utils;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @Author: codingliang
+ * @Description: 接口统一返回基类
+ * @Date: 2021-04-29 12:09
+ * @Version: V1.0
+ **/
+@Data
+public abstract class BaseResult<T> implements Serializable {
+
+    /**
+     * 接口调用结果标识
+     */
+    private boolean success = false;
+
+    /**
+     * 接口调用结果信息
+     */
+    private String message;
+
+    /**
+     * 接口调用业务码
+     */
+    private String code;
+
+    /**
+     * 接口调用返回数据
+     */
+    private T data;
+}

+ 47 - 0
src/main/java/com/chuanghai/ihotel/common/utils/CommonResult.java

@@ -0,0 +1,47 @@
+package com.chuanghai.ihotel.common.utils;
+
+import java.io.Serializable;
+
+/**
+ * @Author: codingliang
+ * @Description: 接口统一返回
+ * @Date: 2021-04-29 12:10
+ * @Version: V1.0
+ **/
+public class CommonResult<T> extends BaseResult implements Serializable {
+
+    private static final long serialVersionUID = 3616484754899974346L;
+
+    public static CommonResult ok() {
+        return ok("1", "执行成功");
+    }
+
+    public static <T> CommonResult<T> ok(String code, String msg) {
+        return baseCreate(code, msg, true);
+    }
+
+    public static CommonResult fail() {
+        return fail("-1", "执行失败");
+    }
+
+    public static CommonResult fail(String code, String msg) {
+        return baseCreate(code, msg, false);
+    }
+
+    private static <T> CommonResult<T> baseCreate(String code, String msg, boolean success) {
+        CommonResult result = new CommonResult();
+        result.setCode(code);
+        result.setSuccess(success);
+        result.setMessage(msg);
+        return result;
+    }
+
+    public CommonResult<T> setResult(T data) {
+        this.setData(data);
+        return this;
+    }
+
+    public T getData() {
+        return (T) super.getData();
+    }
+}

+ 127 - 0
src/main/java/com/chuanghai/ihotel/common/utils/Constant.java

@@ -0,0 +1,127 @@
+/**
+ * Copyright (c) 2016-2019 人人开源 All rights reserved.
+ *
+ * https://www.renren.io
+ *
+ * 版权所有,侵权必究!
+ */
+
+package com.chuanghai.ihotel.common.utils;
+
+/**
+ * 常量
+ *
+ * @author Mark sunlightcs@gmail.com
+ */
+public class Constant {
+	/** 超级管理员ID */
+	public static final int SUPER_ADMIN = 1;
+    /**
+     * 当前页码
+     */
+    public static final String PAGE = "page";
+    /**
+     * 每页显示记录数
+     */
+    public static final String LIMIT = "limit";
+    /**
+     * 排序字段
+     */
+    public static final String ORDER_FIELD = "sidx";
+    /**
+     * 排序方式
+     */
+    public static final String ORDER = "order";
+    /**
+     *  升序
+     */
+    public static final String ASC = "asc";
+	/**
+	 * 菜单类型
+	 * 
+	 * @author chenshun
+	 * @email sunlightcs@gmail.com
+	 * @date 2016年11月15日 下午1:24:29
+	 */
+    public enum MenuType {
+        /**
+         * 目录
+         */
+    	CATALOG(0),
+        /**
+         * 菜单
+         */
+        MENU(1),
+        /**
+         * 按钮
+         */
+        BUTTON(2);
+
+        private int value;
+
+        MenuType(int value) {
+            this.value = value;
+        }
+
+        public int getValue() {
+            return value;
+        }
+    }
+    
+    /**
+     * 定时任务状态
+     * 
+     * @author chenshun
+     * @email sunlightcs@gmail.com
+     * @date 2016年12月3日 上午12:07:22
+     */
+    public enum ScheduleStatus {
+        /**
+         * 正常
+         */
+    	NORMAL(0),
+        /**
+         * 暂停
+         */
+    	PAUSE(1);
+
+        private int value;
+
+        ScheduleStatus(int value) {
+            this.value = value;
+        }
+        
+        public int getValue() {
+            return value;
+        }
+    }
+
+    /**
+     * 云服务商
+     */
+    public enum CloudService {
+        /**
+         * 七牛云
+         */
+        QINIU(1),
+        /**
+         * 阿里云
+         */
+        ALIYUN(2),
+        /**
+         * 腾讯云
+         */
+        QCLOUD(3);
+
+        private int value;
+
+        CloudService(int value) {
+            this.value = value;
+        }
+
+        public int getValue() {
+            return value;
+        }
+    }
+
+}

+ 141 - 0
src/main/java/com/chuanghai/ihotel/common/utils/JwtOperator.java

@@ -0,0 +1,141 @@
+package com.chuanghai.ihotel.common.utils;
+
+import com.chuanghai.ihotel.common.exception.BizCodeEnume;
+import com.chuanghai.ihotel.common.exception.RRException;
+import io.jsonwebtoken.Claims;
+import io.jsonwebtoken.Jwts;
+import io.jsonwebtoken.SignatureAlgorithm;
+import io.jsonwebtoken.security.Keys;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Component;
+
+import javax.crypto.SecretKey;
+import java.util.Date;
+import java.util.Map;
+
+/**
+ * @Author: codingliang
+ * @Description: JWT操作类
+ * @Date: 2020-06-03 11:54
+ * @Version: V1.0
+ **/
+@Slf4j
+@RequiredArgsConstructor
+@Component
+public class JwtOperator {
+
+    /**
+     * 秘钥
+     * - 默认aaabbbcccdddeeefffggghhhiiijjjkkklllmmmnnnooopppqqqrrrsssttt
+     */
+    @Value("${jwt.secret:aaabbbcccdddeeefffggghhhiiijjjkkklllmmmnnnooopppqqqrrrsssttt}")
+    private String secret;
+
+    /**
+     * 有效期,单位秒
+     * - 默认2周
+     */
+    @Value("${jwt.expire-time-in-second:1209600}")
+    private Long expirationTimeInSecond;
+
+    /**
+     * 获取过期时间
+     * @return
+     */
+    public Long getExpirationTimeInSecond() {
+        return this.expirationTimeInSecond;
+    }
+
+    /**
+     * 从token中获取claim
+     *
+     * @param token token
+     * @return claim
+     */
+    public Claims getClaimsFromToken(String token) throws RRException {
+        try {
+            return Jwts.parser()
+                    .setSigningKey(this.secret.getBytes())
+                    .parseClaimsJws(token)
+                    .getBody();
+        } catch (Exception e) {
+            throw new RRException(BizCodeEnume.TOKEN_INVALID);
+        }
+    }
+
+    /**
+     * 获取token中的信息
+     * @param token token
+     * @param name 属性名称
+     * @return
+     */
+    public Long getInfoFromToken(String token, String name) {
+        Claims claims = getClaimsFromToken(token);
+        return claims.get(name, Long.class);
+    }
+
+    /**
+     * 获取token的过期时间
+     *
+     * @param token token
+     * @return 过期时间
+     */
+    public Date getExpirationDateFromToken(String token) throws RRException {
+        return getClaimsFromToken(token)
+                .getExpiration();
+    }
+
+    /**
+     * 判断token是否过期
+     *
+     * @param token token
+     * @return 已过期返回true,未过期返回false
+     */
+    private Boolean isTokenExpired(String token) throws RRException {
+        Date expiration = getExpirationDateFromToken(token);
+        return expiration.before(new Date());
+    }
+
+    /**
+     * 计算token的过期时间
+     *
+     * @return 过期时间
+     */
+    private Date getExpirationTime() {
+        return new Date(System.currentTimeMillis() + getExpirationTimeInSecond() * 1000);
+    }
+
+    /**
+     * 为指定用户生成token
+     *
+     * @param claims 用户信息
+     * @return token
+     */
+    public String generateToken(Map<String, Object> claims) {
+        Date createdTime = new Date();
+        Date expirationTime = this.getExpirationTime();
+
+
+        byte[] keyBytes = secret.getBytes();
+        SecretKey key = Keys.hmacShaKeyFor(keyBytes);
+
+        return Jwts.builder()
+                .setClaims(claims)
+                .setIssuedAt(createdTime)
+                .setExpiration(expirationTime)
+                .signWith(key, SignatureAlgorithm.HS256)
+                .compact();
+    }
+
+    /**
+     * 判断token是否非法
+     *
+     * @param token token
+     * @return 未过期返回true,否则返回false
+     */
+    public Boolean validateToken(String token) throws RRException {
+        return !isTokenExpired(token);
+    }
+}

+ 54 - 0
src/main/java/com/chuanghai/ihotel/common/utils/MyQuery.java

@@ -0,0 +1,54 @@
+package com.chuanghai.ihotel.common.utils;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.metadata.OrderItem;
+import com.baomidou.mybatisplus.core.toolkit.StringUtils;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+
+/**
+ * @Author: codingliang
+ * @Description: 分页参数设置
+ * @Date: 2021-04-29 12:51
+ * @Version: V1.0
+ **/
+public class MyQuery<T> {
+
+    public IPage<T> getPage(PageParam params) {
+        return this.getPage(params, null, false);
+    }
+
+    public IPage<T> getPage(PageParam params, String defaultOrderField, boolean isAsc) {
+
+        //分页对象
+        Page<T> page = new Page<>(params.getCurPage(), params.getPageSize());
+
+        //排序字段
+        //防止SQL注入(因为sidx、order是通过拼接SQL实现排序的,会有SQL注入风险)
+        String orderField = SQLFilter.sqlInject(params.getOrderField());
+        String order = params.getOrder();
+
+
+        //前端字段排序
+        if(StringUtils.isNotEmpty(orderField) && StringUtils.isNotEmpty(order)){
+            if("asc".equalsIgnoreCase(order)) {
+                return  page.addOrder(OrderItem.asc(orderField));
+            }else {
+                return page.addOrder(OrderItem.desc(orderField));
+            }
+        }
+
+        // 没有排序字段,则不排序
+        if(StringUtils.isEmpty(defaultOrderField)){
+            return page;
+        }
+
+        //默认排序
+        if(isAsc) {
+            page.addOrder(OrderItem.asc(defaultOrderField));
+        }else {
+            page.addOrder(OrderItem.desc(defaultOrderField));
+        }
+
+        return page;
+    }
+}

+ 33 - 0
src/main/java/com/chuanghai/ihotel/common/utils/PageParam.java

@@ -0,0 +1,33 @@
+package com.chuanghai.ihotel.common.utils;
+
+import lombok.Data;
+
+/**
+ * @Author: codingliang
+ * @Description: 分页参数
+ * @Date: 2021-04-29 12:41
+ * @Version: V1.0
+ **/
+@Data
+public class PageParam {
+
+    /**
+     * 当前页,默认1
+     */
+    private Integer curPage = 1;
+
+    /**
+     * 每页大小,默认10
+     */
+    private Integer pageSize = 10;
+
+    /**
+     * 排序字段,可选择值参考返回结果
+     */
+    private String orderField;
+
+    /**
+     * 排序方式,可选值:asc、desc
+     */
+    private String order;
+}

+ 101 - 0
src/main/java/com/chuanghai/ihotel/common/utils/PageUtils.java

@@ -0,0 +1,101 @@
+package com.chuanghai.ihotel.common.utils;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * 分页工具类
+ * @author Mark sunlightcs@gmail.com
+ */
+public class PageUtils<T> implements Serializable {
+	private static final long serialVersionUID = 1L;
+	/**
+	 * 总记录数
+	 */
+	private int totalCount;
+	/**
+	 * 每页记录数
+	 */
+	private int pageSize;
+	/**
+	 * 总页数
+	 */
+	private int totalPage;
+	/**
+	 * 当前页数
+	 */
+	private int currPage;
+	/**
+	 * 列表数据
+	 */
+	private List<T> list;
+
+	/**
+	 * 分页
+	 * @param list        列表数据
+	 * @param totalCount  总记录数
+	 * @param pageSize    每页记录数
+	 * @param currPage    当前页数
+	 */
+	public PageUtils(List<T> list, int totalCount, int pageSize, int currPage) {
+		this.list = list;
+		this.totalCount = totalCount;
+		this.pageSize = pageSize;
+		this.currPage = currPage;
+		this.totalPage = (int)Math.ceil((double)totalCount/pageSize);
+	}
+
+	/**
+	 * 分页
+	 */
+	public PageUtils(IPage<T> page) {
+		this.list = page.getRecords();
+		this.totalCount = (int)page.getTotal();
+		this.pageSize = (int)page.getSize();
+		this.currPage = (int)page.getCurrent();
+		this.totalPage = (int)page.getPages();
+	}
+
+	public int getTotalCount() {
+		return totalCount;
+	}
+
+	public void setTotalCount(int totalCount) {
+		this.totalCount = totalCount;
+	}
+
+	public int getPageSize() {
+		return pageSize;
+	}
+
+	public void setPageSize(int pageSize) {
+		this.pageSize = pageSize;
+	}
+
+	public int getTotalPage() {
+		return totalPage;
+	}
+
+	public void setTotalPage(int totalPage) {
+		this.totalPage = totalPage;
+	}
+
+	public int getCurrPage() {
+		return currPage;
+	}
+
+	public void setCurrPage(int currPage) {
+		this.currPage = currPage;
+	}
+
+	public List<?> getList() {
+		return list;
+	}
+
+	public void setList(List<T> list) {
+		this.list = list;
+	}
+	
+}

+ 51 - 0
src/main/java/com/chuanghai/ihotel/common/utils/SQLFilter.java

@@ -0,0 +1,51 @@
+/**
+ * Copyright (c) 2016-2019 人人开源 All rights reserved.
+ *
+ * https://www.renren.io
+ *
+ * 版权所有,侵权必究!
+ */
+
+package com.chuanghai.ihotel.common.utils;
+
+import com.chuanghai.ihotel.common.exception.RRException;
+import org.springframework.util.StringUtils;
+
+/**
+ * SQL过滤
+ *
+ * @author Mark sunlightcs@gmail.com
+ */
+public class SQLFilter {
+
+    /**
+     * SQL注入过滤
+     * @param str  待验证的字符串
+     */
+    public static String sqlInject(String str){
+        if (StringUtils.hasText(str)) {
+            //去掉'|"|;|\字符
+            str = StringUtils.replace(str, "'", "");
+            str = StringUtils.replace(str, "\"", "");
+            str = StringUtils.replace(str, ";", "");
+            str = StringUtils.replace(str, "\\", "");
+
+            //转换成小写
+            str = str.toLowerCase();
+
+            //非法字符
+            String[] keywords = {"master", "truncate", "insert", "select", "delete", "update", "declare", "alter", "drop"};
+
+            //判断是否包含非法字符
+            for(String keyword : keywords){
+                if(str.indexOf(keyword) != -1){
+                    throw new RRException("包含非法字符");
+                }
+            }
+
+            return str;
+        } else {
+            return null;
+        }
+    }
+}

+ 94 - 0
src/main/java/com/chuanghai/ihotel/controller/HotelOderRefundController.java

@@ -0,0 +1,94 @@
+package com.chuanghai.ihotel.controller;
+
+import java.util.Arrays;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.chuanghai.ihotel.entity.HotelOderRefundEntity;
+import com.chuanghai.ihotel.service.HotelOderRefundService;
+import com.chuanghai.ihotel.common.utils.PageUtils;
+import com.chuanghai.ihotel.common.utils.CommonResult;
+import com.chuanghai.ihotel.common.utils.PageParam;
+
+
+/**
+ * 订单退款表 
+ *
+ * @author codingliang
+ * @email codingliang@gmail.com
+ * @date 2022-07-27 10:02:04
+ */
+@RestController
+@RequestMapping("hotelOderRefund")
+public class HotelOderRefundController {
+    @Autowired
+    private HotelOderRefundService hotelOderRefundService;
+
+    /**
+     * 列表
+     */
+    @GetMapping("/list")
+    public CommonResult<PageUtils<HotelOderRefundEntity>> list(PageParam pageParam){
+        PageUtils page = hotelOderRefundService.queryPage(pageParam);
+
+        return CommonResult.ok().setResult(page);
+    }
+
+
+    /**
+     * 信息
+     */
+    @GetMapping("/info/{id}")
+    public CommonResult<HotelOderRefundEntity> info(@PathVariable("id") Long id){
+		HotelOderRefundEntity hotelOderRefund = hotelOderRefundService.getById(id);
+
+        return CommonResult.ok().setResult(hotelOderRefund);
+    }
+
+    /**
+     * 保存
+     */
+    @PostMapping("/save")
+    public CommonResult<String> save(@RequestBody HotelOderRefundEntity hotelOderRefund){
+		hotelOderRefundService.save(hotelOderRefund);
+
+        return CommonResult.ok();
+    }
+
+    /**
+     * 修改
+     */
+    @PutMapping("/update")
+    public CommonResult<String> update(@RequestBody HotelOderRefundEntity hotelOderRefund){
+		boolean flag = hotelOderRefundService.updateById(hotelOderRefund);
+
+		if (flag) {
+            return CommonResult.ok();
+        } else {
+		    return CommonResult.fail();
+        }
+    }
+
+    /**
+     * 删除
+     */
+    @DeleteMapping("/delete")
+    public CommonResult<String> delete(@RequestBody Long[] ids){
+        boolean flag = hotelOderRefundService.removeByIds(Arrays.asList(ids));
+
+        if (flag) {
+            return CommonResult.ok();
+        } else {
+            return CommonResult.fail();
+        }
+    }
+
+}

+ 94 - 0
src/main/java/com/chuanghai/ihotel/controller/HotelOrderBillController.java

@@ -0,0 +1,94 @@
+package com.chuanghai.ihotel.controller;
+
+import java.util.Arrays;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.chuanghai.ihotel.entity.HotelOrderBillEntity;
+import com.chuanghai.ihotel.service.HotelOrderBillService;
+import com.chuanghai.ihotel.common.utils.PageUtils;
+import com.chuanghai.ihotel.common.utils.CommonResult;
+import com.chuanghai.ihotel.common.utils.PageParam;
+
+
+/**
+ * 订单账单表 
+ *
+ * @author codingliang
+ * @email codingliang@gmail.com
+ * @date 2022-07-27 10:02:04
+ */
+@RestController
+@RequestMapping("hotelOrderBill")
+public class HotelOrderBillController {
+    @Autowired
+    private HotelOrderBillService hotelOrderBillService;
+
+    /**
+     * 列表
+     */
+    @GetMapping("/list")
+    public CommonResult<PageUtils<HotelOrderBillEntity>> list(PageParam pageParam){
+        PageUtils page = hotelOrderBillService.queryPage(pageParam);
+
+        return CommonResult.ok().setResult(page);
+    }
+
+
+    /**
+     * 信息
+     */
+    @GetMapping("/info/{id}")
+    public CommonResult<HotelOrderBillEntity> info(@PathVariable("id") Long id){
+		HotelOrderBillEntity hotelOrderBill = hotelOrderBillService.getById(id);
+
+        return CommonResult.ok().setResult(hotelOrderBill);
+    }
+
+    /**
+     * 保存
+     */
+    @PostMapping("/save")
+    public CommonResult<String> save(@RequestBody HotelOrderBillEntity hotelOrderBill){
+		hotelOrderBillService.save(hotelOrderBill);
+
+        return CommonResult.ok();
+    }
+
+    /**
+     * 修改
+     */
+    @PutMapping("/update")
+    public CommonResult<String> update(@RequestBody HotelOrderBillEntity hotelOrderBill){
+		boolean flag = hotelOrderBillService.updateById(hotelOrderBill);
+
+		if (flag) {
+            return CommonResult.ok();
+        } else {
+		    return CommonResult.fail();
+        }
+    }
+
+    /**
+     * 删除
+     */
+    @DeleteMapping("/delete")
+    public CommonResult<String> delete(@RequestBody Long[] ids){
+        boolean flag = hotelOrderBillService.removeByIds(Arrays.asList(ids));
+
+        if (flag) {
+            return CommonResult.ok();
+        } else {
+            return CommonResult.fail();
+        }
+    }
+
+}

+ 94 - 0
src/main/java/com/chuanghai/ihotel/controller/HotelOrderController.java

@@ -0,0 +1,94 @@
+package com.chuanghai.ihotel.controller;
+
+import java.util.Arrays;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.chuanghai.ihotel.entity.HotelOrderEntity;
+import com.chuanghai.ihotel.service.HotelOrderService;
+import com.chuanghai.ihotel.common.utils.PageUtils;
+import com.chuanghai.ihotel.common.utils.CommonResult;
+import com.chuanghai.ihotel.common.utils.PageParam;
+
+
+/**
+ * 酒店订单 
+ *
+ * @author codingliang
+ * @email codingliang@gmail.com
+ * @date 2022-07-27 10:02:04
+ */
+@RestController
+@RequestMapping("hotelOrder")
+public class HotelOrderController {
+    @Autowired
+    private HotelOrderService hotelOrderService;
+
+    /**
+     * 列表
+     */
+    @GetMapping("/list")
+    public CommonResult<PageUtils<HotelOrderEntity>> list(PageParam pageParam){
+        PageUtils page = hotelOrderService.queryPage(pageParam);
+
+        return CommonResult.ok().setResult(page);
+    }
+
+
+    /**
+     * 信息
+     */
+    @GetMapping("/info/{id}")
+    public CommonResult<HotelOrderEntity> info(@PathVariable("id") Long id){
+		HotelOrderEntity hotelOrder = hotelOrderService.getById(id);
+
+        return CommonResult.ok().setResult(hotelOrder);
+    }
+
+    /**
+     * 保存
+     */
+    @PostMapping("/save")
+    public CommonResult<String> save(@RequestBody HotelOrderEntity hotelOrder){
+		hotelOrderService.save(hotelOrder);
+
+        return CommonResult.ok();
+    }
+
+    /**
+     * 修改
+     */
+    @PutMapping("/update")
+    public CommonResult<String> update(@RequestBody HotelOrderEntity hotelOrder){
+		boolean flag = hotelOrderService.updateById(hotelOrder);
+
+		if (flag) {
+            return CommonResult.ok();
+        } else {
+		    return CommonResult.fail();
+        }
+    }
+
+    /**
+     * 删除
+     */
+    @DeleteMapping("/delete")
+    public CommonResult<String> delete(@RequestBody Long[] ids){
+        boolean flag = hotelOrderService.removeByIds(Arrays.asList(ids));
+
+        if (flag) {
+            return CommonResult.ok();
+        } else {
+            return CommonResult.fail();
+        }
+    }
+
+}

+ 94 - 0
src/main/java/com/chuanghai/ihotel/controller/HotelStaffController.java

@@ -0,0 +1,94 @@
+package com.chuanghai.ihotel.controller;
+
+import java.util.Arrays;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.chuanghai.ihotel.entity.HotelStaffEntity;
+import com.chuanghai.ihotel.service.HotelStaffService;
+import com.chuanghai.ihotel.common.utils.PageUtils;
+import com.chuanghai.ihotel.common.utils.CommonResult;
+import com.chuanghai.ihotel.common.utils.PageParam;
+
+
+/**
+ * 酒店员工 
+ *
+ * @author codingliang
+ * @email codingliang@gmail.com
+ * @date 2022-07-27 10:02:04
+ */
+@RestController
+@RequestMapping("hotelStaff")
+public class HotelStaffController {
+    @Autowired
+    private HotelStaffService hotelStaffService;
+
+    /**
+     * 列表
+     */
+    @GetMapping("/list")
+    public CommonResult<PageUtils<HotelStaffEntity>> list(PageParam pageParam){
+        PageUtils page = hotelStaffService.queryPage(pageParam);
+
+        return CommonResult.ok().setResult(page);
+    }
+
+
+    /**
+     * 信息
+     */
+    @GetMapping("/info/{id}")
+    public CommonResult<HotelStaffEntity> info(@PathVariable("id") Long id){
+		HotelStaffEntity hotelStaff = hotelStaffService.getById(id);
+
+        return CommonResult.ok().setResult(hotelStaff);
+    }
+
+    /**
+     * 保存
+     */
+    @PostMapping("/save")
+    public CommonResult<String> save(@RequestBody HotelStaffEntity hotelStaff){
+		hotelStaffService.save(hotelStaff);
+
+        return CommonResult.ok();
+    }
+
+    /**
+     * 修改
+     */
+    @PutMapping("/update")
+    public CommonResult<String> update(@RequestBody HotelStaffEntity hotelStaff){
+		boolean flag = hotelStaffService.updateById(hotelStaff);
+
+		if (flag) {
+            return CommonResult.ok();
+        } else {
+		    return CommonResult.fail();
+        }
+    }
+
+    /**
+     * 删除
+     */
+    @DeleteMapping("/delete")
+    public CommonResult<String> delete(@RequestBody Long[] ids){
+        boolean flag = hotelStaffService.removeByIds(Arrays.asList(ids));
+
+        if (flag) {
+            return CommonResult.ok();
+        } else {
+            return CommonResult.fail();
+        }
+    }
+
+}

+ 94 - 0
src/main/java/com/chuanghai/ihotel/controller/RoomController.java

@@ -0,0 +1,94 @@
+package com.chuanghai.ihotel.controller;
+
+import java.util.Arrays;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.chuanghai.ihotel.entity.RoomEntity;
+import com.chuanghai.ihotel.service.RoomService;
+import com.chuanghai.ihotel.common.utils.PageUtils;
+import com.chuanghai.ihotel.common.utils.CommonResult;
+import com.chuanghai.ihotel.common.utils.PageParam;
+
+
+/**
+ * 房间 
+ *
+ * @author codingliang
+ * @email codingliang@gmail.com
+ * @date 2022-07-27 10:02:04
+ */
+@RestController
+@RequestMapping("room")
+public class RoomController {
+    @Autowired
+    private RoomService roomService;
+
+    /**
+     * 列表
+     */
+    @GetMapping("/list")
+    public CommonResult<PageUtils<RoomEntity>> list(PageParam pageParam){
+        PageUtils page = roomService.queryPage(pageParam);
+
+        return CommonResult.ok().setResult(page);
+    }
+
+
+    /**
+     * 信息
+     */
+    @GetMapping("/info/{id}")
+    public CommonResult<RoomEntity> info(@PathVariable("id") Long id){
+		RoomEntity room = roomService.getById(id);
+
+        return CommonResult.ok().setResult(room);
+    }
+
+    /**
+     * 保存
+     */
+    @PostMapping("/save")
+    public CommonResult<String> save(@RequestBody RoomEntity room){
+		roomService.save(room);
+
+        return CommonResult.ok();
+    }
+
+    /**
+     * 修改
+     */
+    @PutMapping("/update")
+    public CommonResult<String> update(@RequestBody RoomEntity room){
+		boolean flag = roomService.updateById(room);
+
+		if (flag) {
+            return CommonResult.ok();
+        } else {
+		    return CommonResult.fail();
+        }
+    }
+
+    /**
+     * 删除
+     */
+    @DeleteMapping("/delete")
+    public CommonResult<String> delete(@RequestBody Long[] ids){
+        boolean flag = roomService.removeByIds(Arrays.asList(ids));
+
+        if (flag) {
+            return CommonResult.ok();
+        } else {
+            return CommonResult.fail();
+        }
+    }
+
+}

+ 94 - 0
src/main/java/com/chuanghai/ihotel/controller/RoomDoorLockController.java

@@ -0,0 +1,94 @@
+package com.chuanghai.ihotel.controller;
+
+import java.util.Arrays;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.chuanghai.ihotel.entity.RoomDoorLockEntity;
+import com.chuanghai.ihotel.service.RoomDoorLockService;
+import com.chuanghai.ihotel.common.utils.PageUtils;
+import com.chuanghai.ihotel.common.utils.CommonResult;
+import com.chuanghai.ihotel.common.utils.PageParam;
+
+
+/**
+ * 门锁 
+ *
+ * @author codingliang
+ * @email codingliang@gmail.com
+ * @date 2022-07-27 10:02:04
+ */
+@RestController
+@RequestMapping("roomDoorLock")
+public class RoomDoorLockController {
+    @Autowired
+    private RoomDoorLockService roomDoorLockService;
+
+    /**
+     * 列表
+     */
+    @GetMapping("/list")
+    public CommonResult<PageUtils<RoomDoorLockEntity>> list(PageParam pageParam){
+        PageUtils page = roomDoorLockService.queryPage(pageParam);
+
+        return CommonResult.ok().setResult(page);
+    }
+
+
+    /**
+     * 信息
+     */
+    @GetMapping("/info/{id}")
+    public CommonResult<RoomDoorLockEntity> info(@PathVariable("id") Long id){
+		RoomDoorLockEntity roomDoorLock = roomDoorLockService.getById(id);
+
+        return CommonResult.ok().setResult(roomDoorLock);
+    }
+
+    /**
+     * 保存
+     */
+    @PostMapping("/save")
+    public CommonResult<String> save(@RequestBody RoomDoorLockEntity roomDoorLock){
+		roomDoorLockService.save(roomDoorLock);
+
+        return CommonResult.ok();
+    }
+
+    /**
+     * 修改
+     */
+    @PutMapping("/update")
+    public CommonResult<String> update(@RequestBody RoomDoorLockEntity roomDoorLock){
+		boolean flag = roomDoorLockService.updateById(roomDoorLock);
+
+		if (flag) {
+            return CommonResult.ok();
+        } else {
+		    return CommonResult.fail();
+        }
+    }
+
+    /**
+     * 删除
+     */
+    @DeleteMapping("/delete")
+    public CommonResult<String> delete(@RequestBody Long[] ids){
+        boolean flag = roomDoorLockService.removeByIds(Arrays.asList(ids));
+
+        if (flag) {
+            return CommonResult.ok();
+        } else {
+            return CommonResult.fail();
+        }
+    }
+
+}

+ 94 - 0
src/main/java/com/chuanghai/ihotel/controller/RoomRealtimeStatuController.java

@@ -0,0 +1,94 @@
+package com.chuanghai.ihotel.controller;
+
+import java.util.Arrays;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.chuanghai.ihotel.entity.RoomRealtimeStatuEntity;
+import com.chuanghai.ihotel.service.RoomRealtimeStatuService;
+import com.chuanghai.ihotel.common.utils.PageUtils;
+import com.chuanghai.ihotel.common.utils.CommonResult;
+import com.chuanghai.ihotel.common.utils.PageParam;
+
+
+/**
+ * 实时房态 
+ *
+ * @author codingliang
+ * @email codingliang@gmail.com
+ * @date 2022-07-27 10:02:04
+ */
+@RestController
+@RequestMapping("roomRealTimeStatu")
+public class RoomRealtimeStatuController {
+    @Autowired
+    private RoomRealtimeStatuService roomRealtimeStatuService;
+
+    /**
+     * 列表
+     */
+    @GetMapping("/list")
+    public CommonResult<PageUtils<RoomRealtimeStatuEntity>> list(PageParam pageParam){
+        PageUtils page = roomRealtimeStatuService.queryPage(pageParam);
+
+        return CommonResult.ok().setResult(page);
+    }
+
+
+    /**
+     * 信息
+     */
+    @GetMapping("/info/{id}")
+    public CommonResult<RoomRealtimeStatuEntity> info(@PathVariable("id") Long id){
+		RoomRealtimeStatuEntity roomRealtimeStatu = roomRealtimeStatuService.getById(id);
+
+        return CommonResult.ok().setResult(roomRealtimeStatu);
+    }
+
+    /**
+     * 保存
+     */
+    @PostMapping("/save")
+    public CommonResult<String> save(@RequestBody RoomRealtimeStatuEntity roomRealtimeStatu){
+		roomRealtimeStatuService.save(roomRealtimeStatu);
+
+        return CommonResult.ok();
+    }
+
+    /**
+     * 修改
+     */
+    @PutMapping("/update")
+    public CommonResult<String> update(@RequestBody RoomRealtimeStatuEntity roomRealtimeStatu){
+		boolean flag = roomRealtimeStatuService.updateById(roomRealtimeStatu);
+
+		if (flag) {
+            return CommonResult.ok();
+        } else {
+		    return CommonResult.fail();
+        }
+    }
+
+    /**
+     * 删除
+     */
+    @DeleteMapping("/delete")
+    public CommonResult<String> delete(@RequestBody Long[] ids){
+        boolean flag = roomRealtimeStatuService.removeByIds(Arrays.asList(ids));
+
+        if (flag) {
+            return CommonResult.ok();
+        } else {
+            return CommonResult.fail();
+        }
+    }
+
+}

+ 94 - 0
src/main/java/com/chuanghai/ihotel/controller/RoomTypeController.java

@@ -0,0 +1,94 @@
+package com.chuanghai.ihotel.controller;
+
+import java.util.Arrays;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.chuanghai.ihotel.entity.RoomTypeEntity;
+import com.chuanghai.ihotel.service.RoomTypeService;
+import com.chuanghai.ihotel.common.utils.PageUtils;
+import com.chuanghai.ihotel.common.utils.CommonResult;
+import com.chuanghai.ihotel.common.utils.PageParam;
+
+
+/**
+ * 房型 
+ *
+ * @author codingliang
+ * @email codingliang@gmail.com
+ * @date 2022-07-27 10:02:04
+ */
+@RestController
+@RequestMapping("roomType")
+public class RoomTypeController {
+    @Autowired
+    private RoomTypeService roomTypeService;
+
+    /**
+     * 列表
+     */
+    @GetMapping("/list")
+    public CommonResult<PageUtils<RoomTypeEntity>> list(PageParam pageParam){
+        PageUtils page = roomTypeService.queryPage(pageParam);
+
+        return CommonResult.ok().setResult(page);
+    }
+
+
+    /**
+     * 信息
+     */
+    @GetMapping("/info/{id}")
+    public CommonResult<RoomTypeEntity> info(@PathVariable("id") Long id){
+		RoomTypeEntity roomType = roomTypeService.getById(id);
+
+        return CommonResult.ok().setResult(roomType);
+    }
+
+    /**
+     * 保存
+     */
+    @PostMapping("/save")
+    public CommonResult<String> save(@RequestBody RoomTypeEntity roomType){
+		roomTypeService.save(roomType);
+
+        return CommonResult.ok();
+    }
+
+    /**
+     * 修改
+     */
+    @PutMapping("/update")
+    public CommonResult<String> update(@RequestBody RoomTypeEntity roomType){
+		boolean flag = roomTypeService.updateById(roomType);
+
+		if (flag) {
+            return CommonResult.ok();
+        } else {
+		    return CommonResult.fail();
+        }
+    }
+
+    /**
+     * 删除
+     */
+    @DeleteMapping("/delete")
+    public CommonResult<String> delete(@RequestBody Long[] ids){
+        boolean flag = roomTypeService.removeByIds(Arrays.asList(ids));
+
+        if (flag) {
+            return CommonResult.ok();
+        } else {
+            return CommonResult.fail();
+        }
+    }
+
+}

+ 94 - 0
src/main/java/com/chuanghai/ihotel/controller/SystemSettingController.java

@@ -0,0 +1,94 @@
+package com.chuanghai.ihotel.controller;
+
+import java.util.Arrays;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.DeleteMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.PutMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import com.chuanghai.ihotel.entity.SystemSettingEntity;
+import com.chuanghai.ihotel.service.SystemSettingService;
+import com.chuanghai.ihotel.common.utils.PageUtils;
+import com.chuanghai.ihotel.common.utils.CommonResult;
+import com.chuanghai.ihotel.common.utils.PageParam;
+
+
+/**
+ * 系统设置 
+ *
+ * @author codingliang
+ * @email codingliang@gmail.com
+ * @date 2022-07-27 10:02:04
+ */
+@RestController
+@RequestMapping("systemSetting")
+public class SystemSettingController {
+    @Autowired
+    private SystemSettingService systemSettingService;
+
+    /**
+     * 列表
+     */
+    @GetMapping("/list")
+    public CommonResult<PageUtils<SystemSettingEntity>> list(PageParam pageParam){
+        PageUtils page = systemSettingService.queryPage(pageParam);
+
+        return CommonResult.ok().setResult(page);
+    }
+
+
+    /**
+     * 信息
+     */
+    @GetMapping("/info/{id}")
+    public CommonResult<SystemSettingEntity> info(@PathVariable("id") Long id){
+		SystemSettingEntity systemSetting = systemSettingService.getById(id);
+
+        return CommonResult.ok().setResult(systemSetting);
+    }
+
+    /**
+     * 保存
+     */
+    @PostMapping("/save")
+    public CommonResult<String> save(@RequestBody SystemSettingEntity systemSetting){
+		systemSettingService.save(systemSetting);
+
+        return CommonResult.ok();
+    }
+
+    /**
+     * 修改
+     */
+    @PutMapping("/update")
+    public CommonResult<String> update(@RequestBody SystemSettingEntity systemSetting){
+		boolean flag = systemSettingService.updateById(systemSetting);
+
+		if (flag) {
+            return CommonResult.ok();
+        } else {
+		    return CommonResult.fail();
+        }
+    }
+
+    /**
+     * 删除
+     */
+    @DeleteMapping("/delete")
+    public CommonResult<String> delete(@RequestBody Long[] ids){
+        boolean flag = systemSettingService.removeByIds(Arrays.asList(ids));
+
+        if (flag) {
+            return CommonResult.ok();
+        } else {
+            return CommonResult.fail();
+        }
+    }
+
+}

+ 17 - 0
src/main/java/com/chuanghai/ihotel/dao/HotelOderRefundDao.java

@@ -0,0 +1,17 @@
+package com.chuanghai.ihotel.dao;
+
+import com.chuanghai.ihotel.entity.HotelOderRefundEntity;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 订单退款表 
+ * 
+ * @author codingliang
+ * @email codingliang@gmail.com
+ * @date 2022-07-27 10:02:04
+ */
+@Mapper
+public interface HotelOderRefundDao extends BaseMapper<HotelOderRefundEntity> {
+	
+}

+ 17 - 0
src/main/java/com/chuanghai/ihotel/dao/HotelOrderBillDao.java

@@ -0,0 +1,17 @@
+package com.chuanghai.ihotel.dao;
+
+import com.chuanghai.ihotel.entity.HotelOrderBillEntity;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 订单账单表 
+ * 
+ * @author codingliang
+ * @email codingliang@gmail.com
+ * @date 2022-07-27 10:02:04
+ */
+@Mapper
+public interface HotelOrderBillDao extends BaseMapper<HotelOrderBillEntity> {
+	
+}

+ 17 - 0
src/main/java/com/chuanghai/ihotel/dao/HotelOrderDao.java

@@ -0,0 +1,17 @@
+package com.chuanghai.ihotel.dao;
+
+import com.chuanghai.ihotel.entity.HotelOrderEntity;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 酒店订单 
+ * 
+ * @author codingliang
+ * @email codingliang@gmail.com
+ * @date 2022-07-27 10:02:04
+ */
+@Mapper
+public interface HotelOrderDao extends BaseMapper<HotelOrderEntity> {
+	
+}

+ 17 - 0
src/main/java/com/chuanghai/ihotel/dao/HotelStaffDao.java

@@ -0,0 +1,17 @@
+package com.chuanghai.ihotel.dao;
+
+import com.chuanghai.ihotel.entity.HotelStaffEntity;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 酒店员工 
+ * 
+ * @author codingliang
+ * @email codingliang@gmail.com
+ * @date 2022-07-27 10:02:04
+ */
+@Mapper
+public interface HotelStaffDao extends BaseMapper<HotelStaffEntity> {
+	
+}

+ 17 - 0
src/main/java/com/chuanghai/ihotel/dao/RoomDao.java

@@ -0,0 +1,17 @@
+package com.chuanghai.ihotel.dao;
+
+import com.chuanghai.ihotel.entity.RoomEntity;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 房间 
+ * 
+ * @author codingliang
+ * @email codingliang@gmail.com
+ * @date 2022-07-27 10:02:04
+ */
+@Mapper
+public interface RoomDao extends BaseMapper<RoomEntity> {
+	
+}

+ 17 - 0
src/main/java/com/chuanghai/ihotel/dao/RoomDoorLockDao.java

@@ -0,0 +1,17 @@
+package com.chuanghai.ihotel.dao;
+
+import com.chuanghai.ihotel.entity.RoomDoorLockEntity;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 门锁 
+ * 
+ * @author codingliang
+ * @email codingliang@gmail.com
+ * @date 2022-07-27 10:02:04
+ */
+@Mapper
+public interface RoomDoorLockDao extends BaseMapper<RoomDoorLockEntity> {
+	
+}

+ 17 - 0
src/main/java/com/chuanghai/ihotel/dao/RoomRealtimeStatuDao.java

@@ -0,0 +1,17 @@
+package com.chuanghai.ihotel.dao;
+
+import com.chuanghai.ihotel.entity.RoomRealtimeStatuEntity;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 实时房态 
+ * 
+ * @author codingliang
+ * @email codingliang@gmail.com
+ * @date 2022-07-27 10:02:04
+ */
+@Mapper
+public interface RoomRealtimeStatuDao extends BaseMapper<RoomRealtimeStatuEntity> {
+	
+}

+ 17 - 0
src/main/java/com/chuanghai/ihotel/dao/RoomTypeDao.java

@@ -0,0 +1,17 @@
+package com.chuanghai.ihotel.dao;
+
+import com.chuanghai.ihotel.entity.RoomTypeEntity;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 房型 
+ * 
+ * @author codingliang
+ * @email codingliang@gmail.com
+ * @date 2022-07-27 10:02:04
+ */
+@Mapper
+public interface RoomTypeDao extends BaseMapper<RoomTypeEntity> {
+	
+}

+ 17 - 0
src/main/java/com/chuanghai/ihotel/dao/SystemSettingDao.java

@@ -0,0 +1,17 @@
+package com.chuanghai.ihotel.dao;
+
+import com.chuanghai.ihotel.entity.SystemSettingEntity;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Mapper;
+
+/**
+ * 系统设置 
+ * 
+ * @author codingliang
+ * @email codingliang@gmail.com
+ * @date 2022-07-27 10:02:04
+ */
+@Mapper
+public interface SystemSettingDao extends BaseMapper<SystemSettingEntity> {
+	
+}

+ 57 - 0
src/main/java/com/chuanghai/ihotel/entity/HotelOderRefundEntity.java

@@ -0,0 +1,57 @@
+package com.chuanghai.ihotel.entity;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+/**
+ * 订单退款表 
+ * 
+ * @author codingliang
+ * @email codingliang@gmail.com
+ * @date 2022-07-27 10:02:04
+ */
+@Data
+@TableName("hotel_oder_refund")
+public class HotelOderRefundEntity implements Serializable {
+	private static final long serialVersionUID = -8810320218594488298L;
+
+	/**
+	 * id
+	 */
+	@TableId
+	private Long id;
+	/**
+	 * 订单id
+	 */
+	private Long hotelOrderId;
+	/**
+	 * 结账单id
+	 */
+	private Long refundId;
+	/**
+	 * 退款金额
+	 */
+	private BigDecimal refundAmount;
+	/**
+	 * 退款状态 1发起退款、2退款完成、3退款失败
+	 */
+	private String statu;
+	/**
+	 * 备注
+	 */
+	private String remark;
+	/**
+	 * 创建时间
+	 */
+	private LocalDateTime createTime;
+	/**
+	 * 完成时间
+	 */
+	private LocalDateTime finishTime;
+
+}

+ 89 - 0
src/main/java/com/chuanghai/ihotel/entity/HotelOrderBillEntity.java

@@ -0,0 +1,89 @@
+package com.chuanghai.ihotel.entity;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+/**
+ * 订单账单表 
+ * 
+ * @author codingliang
+ * @email codingliang@gmail.com
+ * @date 2022-07-27 10:02:04
+ */
+@Data
+@TableName("hotel_order_bill")
+public class HotelOrderBillEntity implements Serializable {
+	private static final long serialVersionUID = -2516247656651418396L;
+
+	/**
+	 * id
+	 */
+	@TableId
+	private Long id;
+	/**
+	 * 订单id
+	 */
+	private Long hotelOrderId;
+	/**
+	 * 房间id
+	 */
+	private Long roomId;
+	/**
+	 * 水起码 单位:吨
+	 */
+	private String startOfWater;
+	/**
+	 * 水止码 单位:吨
+	 */
+	private String endOfWater;
+	/**
+	 * 电起码 单位:度
+	 */
+	private String startOfElectric;
+	/**
+	 * 电止码 单位:度
+	 */
+	private String endOfElectric;
+	/**
+	 * 水单价 单位:元/吨
+	 */
+	private String priceOfWater;
+	/**
+	 * 电单价 单位:元/度
+	 */
+	private String priceOfElectric;
+	/**
+	 * 总费用 单位:元
+	 */
+	private BigDecimal totalFree;
+	/**
+	 * 减免费用 单位:元
+	 */
+	private BigDecimal discountFree;
+	/**
+	 * 应缴费用 总费用-减免费用 单位:元
+	 */
+	private BigDecimal shouldFree;
+	/**
+	 * 补缴费用 应缴费用-预缴费用
+	 */
+	private BigDecimal realFree;
+	/**
+	 * 状态 1待处理、2已完成
+	 */
+	private String statu;
+	/**
+	 * 完成时间
+	 */
+	private LocalDateTime finishTime;
+	/**
+	 * 备注
+	 */
+	private String remark;
+
+}

+ 113 - 0
src/main/java/com/chuanghai/ihotel/entity/HotelOrderEntity.java

@@ -0,0 +1,113 @@
+package com.chuanghai.ihotel.entity;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+/**
+ * 酒店订单 
+ * 
+ * @author codingliang
+ * @email codingliang@gmail.com
+ * @date 2022-07-27 10:02:04
+ */
+@Data
+@TableName("hotel_order")
+public class HotelOrderEntity implements Serializable {
+	private static final long serialVersionUID = -4562531048283280872L;
+
+	/**
+	 * id
+	 */
+	@TableId
+	private Long id;
+	/**
+	 * 订单编号
+	 */
+	private Long orderNo;
+	/**
+	 * 订单用户标识
+	 */
+	private String userFlag;
+	/**
+	 * 用户姓名
+	 */
+	private String userName;
+	/**
+	 * 用户手机号码
+	 */
+	private String userPhone;
+	/**
+	 * 房间id
+	 */
+	private Long roomId;
+	/**
+	 * 房间编号
+	 */
+	private String roomNo;
+	/**
+	 * 房型id
+	 */
+	private Long roomTypeId;
+	/**
+	 * 房型名称
+	 */
+	private String roomTypeName;
+	/**
+	 * 实际支付金额
+	 */
+	private BigDecimal payAmount;
+	/**
+	 * 支付方式 1微校支付
+	 */
+	private String payMethod;
+	/**
+	 * 下单时间
+	 */
+	private LocalDateTime createTime;
+	/**
+	 * 支付时间
+	 */
+	private LocalDateTime payTime;
+	/**
+	 * 订单状态 0已取消、1待支付、2待入住、3已入住、4待结账、5已完成
+	 */
+	private String orderStatu;
+	/**
+	 * 业务状态 0待处理、1发起退款、2发起结账支付、3退款或结账支付完成
+	 */
+	private String bizStatu;
+	/**
+	 * 最早入住时间 最早可入住时间
+	 */
+	private String enableStartTime;
+	/**
+	 * 最晚离店时间 最晚要离店时间
+	 */
+	private String enableEndTime;
+	/**
+	 * 实际入住时间
+	 */
+	private String realStartTime;
+	/**
+	 * 实际离店时间
+	 */
+	private String realEndTime;
+	/**
+	 * 预计到店时间 预计到店时间
+	 */
+	private LocalDateTime mayIntoTime;
+	/**
+	 * 备注
+	 */
+	private String remark;
+	/**
+	 * 删除标识 0删除、1正常
+	 */
+	private String deleteFlag;
+
+}

+ 51 - 0
src/main/java/com/chuanghai/ihotel/entity/HotelStaffEntity.java

@@ -0,0 +1,51 @@
+package com.chuanghai.ihotel.entity;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 酒店员工 
+ * 
+ * @author codingliang
+ * @email codingliang@gmail.com
+ * @date 2022-07-27 10:02:04
+ */
+@Data
+@TableName("hotel_staff")
+public class HotelStaffEntity implements Serializable {
+	private static final long serialVersionUID = -3898086427694264371L;
+
+	/**
+	 * id
+	 */
+	@TableId
+	private Long id;
+	/**
+	 * 员工卡号 微校card_number
+	 */
+	private String cardNumber;
+	/**
+	 * 手机号码 登录账号
+	 */
+	private String phone;
+	/**
+	 * 员工姓名
+	 */
+	private String username;
+	/**
+	 * 职位
+	 */
+	private String position;
+	/**
+	 * 密码 登录密码
+	 */
+	private String password;
+	/**
+	 * 状态 0冻结、1正常
+	 */
+	private String statu;
+
+}

+ 48 - 0
src/main/java/com/chuanghai/ihotel/entity/RoomDoorLockEntity.java

@@ -0,0 +1,48 @@
+package com.chuanghai.ihotel.entity;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * 门锁 
+ * 
+ * @author codingliang
+ * @email codingliang@gmail.com
+ * @date 2022-07-27 10:02:04
+ */
+@Data
+@TableName("room_door_lock")
+public class RoomDoorLockEntity implements Serializable {
+	private static final long serialVersionUID = 8465903308715869966L;
+
+	/**
+	 * id
+	 */
+	@TableId
+	private Long id;
+	/**
+	 * 房间id
+	 */
+	private Long roomId;
+	/**
+	 * 锁id
+	 */
+	private String lockId;
+	/**
+	 * 锁序列号
+	 */
+	private String lockNo;
+	/**
+	 * 实时密码
+	 */
+	private String lockRealtimeNumber;
+	/**
+	 * 更新时间
+	 */
+	private LocalDateTime updateTime;
+
+}

+ 51 - 0
src/main/java/com/chuanghai/ihotel/entity/RoomEntity.java

@@ -0,0 +1,51 @@
+package com.chuanghai.ihotel.entity;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 房间 
+ * 
+ * @author codingliang
+ * @email codingliang@gmail.com
+ * @date 2022-07-27 10:02:04
+ */
+@Data
+@TableName("room")
+public class RoomEntity implements Serializable {
+	private static final long serialVersionUID = 2128502599530103348L;
+
+	/**
+	 * id
+	 */
+	@TableId
+	private Long id;
+	/**
+	 * 房屋号
+	 */
+	private String roomNo;
+	/**
+	 * 所处楼栋
+	 */
+	private String build;
+	/**
+	 * 所处楼层
+	 */
+	private String floor;
+	/**
+	 * 房型id
+	 */
+	private Long roomTypeId;
+	/**
+	 * 房型名称 冗余
+	 */
+	private String roomTypeName;
+	/**
+	 * 是否可用 0否,1是
+	 */
+	private String enableUse;
+
+}

+ 56 - 0
src/main/java/com/chuanghai/ihotel/entity/RoomRealtimeStatuEntity.java

@@ -0,0 +1,56 @@
+package com.chuanghai.ihotel.entity;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.time.LocalDateTime;
+
+/**
+ * 实时房态 
+ * 
+ * @author codingliang
+ * @email codingliang@gmail.com
+ * @date 2022-07-27 10:02:04
+ */
+@Data
+@TableName("room_realtime_statu")
+public class RoomRealtimeStatuEntity implements Serializable {
+	private static final long serialVersionUID = 7560720966150903577L;
+
+	/**
+	 * id
+	 */
+	@TableId
+	private Long id;
+	/**
+	 * 房间id
+	 */
+	private Long roomId;
+	/**
+	 * 房型id
+	 */
+	private Long roomTypeId;
+	/**
+	 * 状态开始时间
+	 */
+	private LocalDateTime startTime;
+	/**
+	 * 状态结束时间
+	 */
+	private LocalDateTime endTime;
+	/**
+	 * 状态 1空闲、2预定、3入住、4脏房、5锁定
+	 */
+	private String statu;
+	/**
+	 * 备注
+	 */
+	private String remark;
+	/**
+	 * 业务id
+	 */
+	private Long bizId;
+
+}

+ 56 - 0
src/main/java/com/chuanghai/ihotel/entity/RoomTypeEntity.java

@@ -0,0 +1,56 @@
+package com.chuanghai.ihotel.entity;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * 房型 
+ * 
+ * @author codingliang
+ * @email codingliang@gmail.com
+ * @date 2022-07-27 10:02:04
+ */
+@Data
+@TableName("room_type")
+public class RoomTypeEntity implements Serializable {
+	private static final long serialVersionUID = 1580689328484360501L;
+
+	/**
+	 * id
+	 */
+	@TableId
+	private Long id;
+	/**
+	 * 房型名称
+	 */
+	private String typeName;
+	/**
+	 * 日常价格 单位:元/间/晚
+	 */
+	private BigDecimal usualPrice;
+	/**
+	 * 优惠价格 单位:元/间/晚
+	 */
+	private BigDecimal discountPrice;
+	/**
+	 * 房型简单描述
+	 */
+	private String typeShortDesc;
+	/**
+	 * 房型详细描述
+	 */
+	private String typeDesc;
+	/**
+	 * 房间数量
+	 */
+	private Integer roomNum;
+	/**
+	 * 房型图 第一张为主图,多张图片之间使用,分割
+	 */
+	private String typeImage;
+
+}

+ 52 - 0
src/main/java/com/chuanghai/ihotel/entity/SystemSettingEntity.java

@@ -0,0 +1,52 @@
+package com.chuanghai.ihotel.entity;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * 系统设置 
+ * 
+ * @author codingliang
+ * @email codingliang@gmail.com
+ * @date 2022-07-27 10:02:04
+ */
+@Data
+@TableName("system_setting")
+public class SystemSettingEntity implements Serializable {
+	private static final long serialVersionUID = -4081445889008618673L;
+
+	/**
+	 * id
+	 */
+	@TableId
+	private Long id;
+	/**
+	 * 押金 单位:元
+	 */
+	private BigDecimal deposit;
+	/**
+	 * 预定提前天数 单位:天
+	 */
+	private Integer preDay;
+	/**
+	 * 水免费额度 单位:吨
+	 */
+	private BigDecimal freeQuotaOfWater;
+	/**
+	 * 电免费额度 单位:度
+	 */
+	private BigDecimal freeQuotaOfElectric;
+	/**
+	 * 水电免费额度总金额 单位:元
+	 */
+	private BigDecimal freeTotal;
+	/**
+	 * 退房后断水断电时间 单位:分钟
+	 */
+	private Integer turnOffTime;
+
+}

+ 19 - 0
src/main/java/com/chuanghai/ihotel/service/HotelOderRefundService.java

@@ -0,0 +1,19 @@
+package com.chuanghai.ihotel.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.chuanghai.ihotel.common.utils.PageUtils;
+import com.chuanghai.ihotel.common.utils.PageParam;
+import com.chuanghai.ihotel.entity.HotelOderRefundEntity;
+
+/**
+ * 订单退款表 
+ *
+ * @author codingliang
+ * @email codingliang@gmail.com
+ * @date 2022-07-27 10:02:04
+ */
+public interface HotelOderRefundService extends IService<HotelOderRefundEntity> {
+
+    PageUtils queryPage(PageParam pageParam);
+}
+

+ 19 - 0
src/main/java/com/chuanghai/ihotel/service/HotelOrderBillService.java

@@ -0,0 +1,19 @@
+package com.chuanghai.ihotel.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.chuanghai.ihotel.common.utils.PageUtils;
+import com.chuanghai.ihotel.common.utils.PageParam;
+import com.chuanghai.ihotel.entity.HotelOrderBillEntity;
+
+/**
+ * 订单账单表 
+ *
+ * @author codingliang
+ * @email codingliang@gmail.com
+ * @date 2022-07-27 10:02:04
+ */
+public interface HotelOrderBillService extends IService<HotelOrderBillEntity> {
+
+    PageUtils queryPage(PageParam pageParam);
+}
+

+ 19 - 0
src/main/java/com/chuanghai/ihotel/service/HotelOrderService.java

@@ -0,0 +1,19 @@
+package com.chuanghai.ihotel.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.chuanghai.ihotel.common.utils.PageUtils;
+import com.chuanghai.ihotel.common.utils.PageParam;
+import com.chuanghai.ihotel.entity.HotelOrderEntity;
+
+/**
+ * 酒店订单 
+ *
+ * @author codingliang
+ * @email codingliang@gmail.com
+ * @date 2022-07-27 10:02:04
+ */
+public interface HotelOrderService extends IService<HotelOrderEntity> {
+
+    PageUtils queryPage(PageParam pageParam);
+}
+

+ 19 - 0
src/main/java/com/chuanghai/ihotel/service/HotelStaffService.java

@@ -0,0 +1,19 @@
+package com.chuanghai.ihotel.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.chuanghai.ihotel.common.utils.PageUtils;
+import com.chuanghai.ihotel.common.utils.PageParam;
+import com.chuanghai.ihotel.entity.HotelStaffEntity;
+
+/**
+ * 酒店员工 
+ *
+ * @author codingliang
+ * @email codingliang@gmail.com
+ * @date 2022-07-27 10:02:04
+ */
+public interface HotelStaffService extends IService<HotelStaffEntity> {
+
+    PageUtils queryPage(PageParam pageParam);
+}
+

+ 19 - 0
src/main/java/com/chuanghai/ihotel/service/RoomDoorLockService.java

@@ -0,0 +1,19 @@
+package com.chuanghai.ihotel.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.chuanghai.ihotel.common.utils.PageUtils;
+import com.chuanghai.ihotel.common.utils.PageParam;
+import com.chuanghai.ihotel.entity.RoomDoorLockEntity;
+
+/**
+ * 门锁 
+ *
+ * @author codingliang
+ * @email codingliang@gmail.com
+ * @date 2022-07-27 10:02:04
+ */
+public interface RoomDoorLockService extends IService<RoomDoorLockEntity> {
+
+    PageUtils queryPage(PageParam pageParam);
+}
+

+ 19 - 0
src/main/java/com/chuanghai/ihotel/service/RoomRealtimeStatuService.java

@@ -0,0 +1,19 @@
+package com.chuanghai.ihotel.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.chuanghai.ihotel.common.utils.PageUtils;
+import com.chuanghai.ihotel.common.utils.PageParam;
+import com.chuanghai.ihotel.entity.RoomRealtimeStatuEntity;
+
+/**
+ * 实时房态 
+ *
+ * @author codingliang
+ * @email codingliang@gmail.com
+ * @date 2022-07-27 10:02:04
+ */
+public interface RoomRealtimeStatuService extends IService<RoomRealtimeStatuEntity> {
+
+    PageUtils queryPage(PageParam pageParam);
+}
+

+ 19 - 0
src/main/java/com/chuanghai/ihotel/service/RoomService.java

@@ -0,0 +1,19 @@
+package com.chuanghai.ihotel.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.chuanghai.ihotel.common.utils.PageUtils;
+import com.chuanghai.ihotel.common.utils.PageParam;
+import com.chuanghai.ihotel.entity.RoomEntity;
+
+/**
+ * 房间 
+ *
+ * @author codingliang
+ * @email codingliang@gmail.com
+ * @date 2022-07-27 10:02:04
+ */
+public interface RoomService extends IService<RoomEntity> {
+
+    PageUtils queryPage(PageParam pageParam);
+}
+

+ 19 - 0
src/main/java/com/chuanghai/ihotel/service/RoomTypeService.java

@@ -0,0 +1,19 @@
+package com.chuanghai.ihotel.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.chuanghai.ihotel.common.utils.PageUtils;
+import com.chuanghai.ihotel.common.utils.PageParam;
+import com.chuanghai.ihotel.entity.RoomTypeEntity;
+
+/**
+ * 房型 
+ *
+ * @author codingliang
+ * @email codingliang@gmail.com
+ * @date 2022-07-27 10:02:04
+ */
+public interface RoomTypeService extends IService<RoomTypeEntity> {
+
+    PageUtils queryPage(PageParam pageParam);
+}
+

+ 19 - 0
src/main/java/com/chuanghai/ihotel/service/SystemSettingService.java

@@ -0,0 +1,19 @@
+package com.chuanghai.ihotel.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.chuanghai.ihotel.common.utils.PageUtils;
+import com.chuanghai.ihotel.common.utils.PageParam;
+import com.chuanghai.ihotel.entity.SystemSettingEntity;
+
+/**
+ * 系统设置 
+ *
+ * @author codingliang
+ * @email codingliang@gmail.com
+ * @date 2022-07-27 10:02:04
+ */
+public interface SystemSettingService extends IService<SystemSettingEntity> {
+
+    PageUtils queryPage(PageParam pageParam);
+}
+

+ 29 - 0
src/main/java/com/chuanghai/ihotel/service/impl/HotelOderRefundServiceImpl.java

@@ -0,0 +1,29 @@
+package com.chuanghai.ihotel.service.impl;
+
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.chuanghai.ihotel.common.utils.PageUtils;
+import com.chuanghai.ihotel.common.utils.MyQuery;
+import com.chuanghai.ihotel.common.utils.PageParam;
+
+import com.chuanghai.ihotel.dao.HotelOderRefundDao;
+import com.chuanghai.ihotel.entity.HotelOderRefundEntity;
+import com.chuanghai.ihotel.service.HotelOderRefundService;
+
+
+@Service("hotelOderRefundService")
+public class HotelOderRefundServiceImpl extends ServiceImpl<HotelOderRefundDao, HotelOderRefundEntity> implements HotelOderRefundService {
+
+    @Override
+    public PageUtils queryPage(PageParam pageParam) {
+        IPage<HotelOderRefundEntity> page = this.page(
+                new MyQuery<HotelOderRefundEntity>().getPage(pageParam),
+                new QueryWrapper<HotelOderRefundEntity>()
+        );
+
+        return new PageUtils(page);
+    }
+
+}

+ 29 - 0
src/main/java/com/chuanghai/ihotel/service/impl/HotelOrderBillServiceImpl.java

@@ -0,0 +1,29 @@
+package com.chuanghai.ihotel.service.impl;
+
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.chuanghai.ihotel.common.utils.PageUtils;
+import com.chuanghai.ihotel.common.utils.MyQuery;
+import com.chuanghai.ihotel.common.utils.PageParam;
+
+import com.chuanghai.ihotel.dao.HotelOrderBillDao;
+import com.chuanghai.ihotel.entity.HotelOrderBillEntity;
+import com.chuanghai.ihotel.service.HotelOrderBillService;
+
+
+@Service("hotelOrderBillService")
+public class HotelOrderBillServiceImpl extends ServiceImpl<HotelOrderBillDao, HotelOrderBillEntity> implements HotelOrderBillService {
+
+    @Override
+    public PageUtils queryPage(PageParam pageParam) {
+        IPage<HotelOrderBillEntity> page = this.page(
+                new MyQuery<HotelOrderBillEntity>().getPage(pageParam),
+                new QueryWrapper<HotelOrderBillEntity>()
+        );
+
+        return new PageUtils(page);
+    }
+
+}

+ 29 - 0
src/main/java/com/chuanghai/ihotel/service/impl/HotelOrderServiceImpl.java

@@ -0,0 +1,29 @@
+package com.chuanghai.ihotel.service.impl;
+
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.chuanghai.ihotel.common.utils.PageUtils;
+import com.chuanghai.ihotel.common.utils.MyQuery;
+import com.chuanghai.ihotel.common.utils.PageParam;
+
+import com.chuanghai.ihotel.dao.HotelOrderDao;
+import com.chuanghai.ihotel.entity.HotelOrderEntity;
+import com.chuanghai.ihotel.service.HotelOrderService;
+
+
+@Service("hotelOrderService")
+public class HotelOrderServiceImpl extends ServiceImpl<HotelOrderDao, HotelOrderEntity> implements HotelOrderService {
+
+    @Override
+    public PageUtils queryPage(PageParam pageParam) {
+        IPage<HotelOrderEntity> page = this.page(
+                new MyQuery<HotelOrderEntity>().getPage(pageParam),
+                new QueryWrapper<HotelOrderEntity>()
+        );
+
+        return new PageUtils(page);
+    }
+
+}

+ 29 - 0
src/main/java/com/chuanghai/ihotel/service/impl/HotelStaffServiceImpl.java

@@ -0,0 +1,29 @@
+package com.chuanghai.ihotel.service.impl;
+
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.chuanghai.ihotel.common.utils.PageUtils;
+import com.chuanghai.ihotel.common.utils.MyQuery;
+import com.chuanghai.ihotel.common.utils.PageParam;
+
+import com.chuanghai.ihotel.dao.HotelStaffDao;
+import com.chuanghai.ihotel.entity.HotelStaffEntity;
+import com.chuanghai.ihotel.service.HotelStaffService;
+
+
+@Service("hotelStaffService")
+public class HotelStaffServiceImpl extends ServiceImpl<HotelStaffDao, HotelStaffEntity> implements HotelStaffService {
+
+    @Override
+    public PageUtils queryPage(PageParam pageParam) {
+        IPage<HotelStaffEntity> page = this.page(
+                new MyQuery<HotelStaffEntity>().getPage(pageParam),
+                new QueryWrapper<HotelStaffEntity>()
+        );
+
+        return new PageUtils(page);
+    }
+
+}

+ 29 - 0
src/main/java/com/chuanghai/ihotel/service/impl/RoomDoorLockServiceImpl.java

@@ -0,0 +1,29 @@
+package com.chuanghai.ihotel.service.impl;
+
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.chuanghai.ihotel.common.utils.PageUtils;
+import com.chuanghai.ihotel.common.utils.MyQuery;
+import com.chuanghai.ihotel.common.utils.PageParam;
+
+import com.chuanghai.ihotel.dao.RoomDoorLockDao;
+import com.chuanghai.ihotel.entity.RoomDoorLockEntity;
+import com.chuanghai.ihotel.service.RoomDoorLockService;
+
+
+@Service("roomDoorLockService")
+public class RoomDoorLockServiceImpl extends ServiceImpl<RoomDoorLockDao, RoomDoorLockEntity> implements RoomDoorLockService {
+
+    @Override
+    public PageUtils queryPage(PageParam pageParam) {
+        IPage<RoomDoorLockEntity> page = this.page(
+                new MyQuery<RoomDoorLockEntity>().getPage(pageParam),
+                new QueryWrapper<RoomDoorLockEntity>()
+        );
+
+        return new PageUtils(page);
+    }
+
+}

+ 29 - 0
src/main/java/com/chuanghai/ihotel/service/impl/RoomRealtimeStatuServiceImpl.java

@@ -0,0 +1,29 @@
+package com.chuanghai.ihotel.service.impl;
+
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.chuanghai.ihotel.common.utils.PageUtils;
+import com.chuanghai.ihotel.common.utils.MyQuery;
+import com.chuanghai.ihotel.common.utils.PageParam;
+
+import com.chuanghai.ihotel.dao.RoomRealtimeStatuDao;
+import com.chuanghai.ihotel.entity.RoomRealtimeStatuEntity;
+import com.chuanghai.ihotel.service.RoomRealtimeStatuService;
+
+
+@Service("roomRealtimeStatuService")
+public class RoomRealtimeStatuServiceImpl extends ServiceImpl<RoomRealtimeStatuDao, RoomRealtimeStatuEntity> implements RoomRealtimeStatuService {
+
+    @Override
+    public PageUtils queryPage(PageParam pageParam) {
+        IPage<RoomRealtimeStatuEntity> page = this.page(
+                new MyQuery<RoomRealtimeStatuEntity>().getPage(pageParam),
+                new QueryWrapper<RoomRealtimeStatuEntity>()
+        );
+
+        return new PageUtils(page);
+    }
+
+}

+ 29 - 0
src/main/java/com/chuanghai/ihotel/service/impl/RoomServiceImpl.java

@@ -0,0 +1,29 @@
+package com.chuanghai.ihotel.service.impl;
+
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.chuanghai.ihotel.common.utils.PageUtils;
+import com.chuanghai.ihotel.common.utils.MyQuery;
+import com.chuanghai.ihotel.common.utils.PageParam;
+
+import com.chuanghai.ihotel.dao.RoomDao;
+import com.chuanghai.ihotel.entity.RoomEntity;
+import com.chuanghai.ihotel.service.RoomService;
+
+
+@Service("roomService")
+public class RoomServiceImpl extends ServiceImpl<RoomDao, RoomEntity> implements RoomService {
+
+    @Override
+    public PageUtils queryPage(PageParam pageParam) {
+        IPage<RoomEntity> page = this.page(
+                new MyQuery<RoomEntity>().getPage(pageParam),
+                new QueryWrapper<RoomEntity>()
+        );
+
+        return new PageUtils(page);
+    }
+
+}

+ 29 - 0
src/main/java/com/chuanghai/ihotel/service/impl/RoomTypeServiceImpl.java

@@ -0,0 +1,29 @@
+package com.chuanghai.ihotel.service.impl;
+
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.chuanghai.ihotel.common.utils.PageUtils;
+import com.chuanghai.ihotel.common.utils.MyQuery;
+import com.chuanghai.ihotel.common.utils.PageParam;
+
+import com.chuanghai.ihotel.dao.RoomTypeDao;
+import com.chuanghai.ihotel.entity.RoomTypeEntity;
+import com.chuanghai.ihotel.service.RoomTypeService;
+
+
+@Service("roomTypeService")
+public class RoomTypeServiceImpl extends ServiceImpl<RoomTypeDao, RoomTypeEntity> implements RoomTypeService {
+
+    @Override
+    public PageUtils queryPage(PageParam pageParam) {
+        IPage<RoomTypeEntity> page = this.page(
+                new MyQuery<RoomTypeEntity>().getPage(pageParam),
+                new QueryWrapper<RoomTypeEntity>()
+        );
+
+        return new PageUtils(page);
+    }
+
+}

+ 29 - 0
src/main/java/com/chuanghai/ihotel/service/impl/SystemSettingServiceImpl.java

@@ -0,0 +1,29 @@
+package com.chuanghai.ihotel.service.impl;
+
+import org.springframework.stereotype.Service;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.chuanghai.ihotel.common.utils.PageUtils;
+import com.chuanghai.ihotel.common.utils.MyQuery;
+import com.chuanghai.ihotel.common.utils.PageParam;
+
+import com.chuanghai.ihotel.dao.SystemSettingDao;
+import com.chuanghai.ihotel.entity.SystemSettingEntity;
+import com.chuanghai.ihotel.service.SystemSettingService;
+
+
+@Service("systemSettingService")
+public class SystemSettingServiceImpl extends ServiceImpl<SystemSettingDao, SystemSettingEntity> implements SystemSettingService {
+
+    @Override
+    public PageUtils queryPage(PageParam pageParam) {
+        IPage<SystemSettingEntity> page = this.page(
+                new MyQuery<SystemSettingEntity>().getPage(pageParam),
+                new QueryWrapper<SystemSettingEntity>()
+        );
+
+        return new PageUtils(page);
+    }
+
+}

+ 35 - 0
src/main/resources/application.yml

@@ -0,0 +1,35 @@
+server:
+  port: 8089
+  servlet:
+    context-path: /ihotel
+
+spring:
+  application:
+    name: ihotel
+  servlet:
+    multipart:
+      max-file-size: 30MB
+      max-request-size: 30MB
+  datasource:
+    username: root
+    password: root
+    url: jdbc:mysql://192.168.161.230:3306/ihotel?characterEncoding=UTF-8&useSSL=false&useUnicode=true&serverTimezone=Asia/Shanghai
+    driver-class-name: com.mysql.cj.jdbc.Driver
+#  rabbitmq:
+#    host: 192.168.126.131
+#    port: 5672
+#    virtual-host: /
+#    # 手动ack
+#    listener:
+#      simple:
+#        acknowledge-mode: manual
+
+mybatis-plus:
+  mapper-locations: classpath:/mapper/ihotel/*.xml
+  global-config:
+    db-config:
+      id-type: auto
+logging:
+  level:
+    com.chuanghai: debug
+

+ 19 - 0
src/main/resources/mapper/ihotel/HotelOderRefundDao.xml

@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+
+<mapper namespace="com.chuanghai.ihotel.dao.HotelOderRefundDao">
+
+	<!-- 可根据自己的需求,是否要使用 -->
+    <resultMap type="com.chuanghai.ihotel.entity.HotelOderRefundEntity" id="hotelOderRefundMap">
+        <result property="id" column="id"/>
+        <result property="hotelOrderId" column="hotel_order_id"/>
+        <result property="refundId" column="refund_id"/>
+        <result property="refundAmount" column="refund_amount"/>
+        <result property="statu" column="statu"/>
+        <result property="remark" column="remark"/>
+        <result property="createTime" column="create_time"/>
+        <result property="finishTime" column="finish_time"/>
+    </resultMap>
+
+
+</mapper>

+ 27 - 0
src/main/resources/mapper/ihotel/HotelOrderBillDao.xml

@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+
+<mapper namespace="com.chuanghai.ihotel.dao.HotelOrderBillDao">
+
+	<!-- 可根据自己的需求,是否要使用 -->
+    <resultMap type="com.chuanghai.ihotel.entity.HotelOrderBillEntity" id="hotelOrderBillMap">
+        <result property="id" column="id"/>
+        <result property="hotelOrderId" column="hotel_order_id"/>
+        <result property="roomId" column="room_id"/>
+        <result property="startOfWater" column="start_of_water"/>
+        <result property="endOfWater" column="end_of_water"/>
+        <result property="startOfElectric" column="start_of_electric"/>
+        <result property="endOfElectric" column="end_of_electric"/>
+        <result property="priceOfWater" column="price_of_water"/>
+        <result property="priceOfElectric" column="price_of_electric"/>
+        <result property="totalFree" column="total_free"/>
+        <result property="discountFree" column="discount_free"/>
+        <result property="shouldFree" column="should_free"/>
+        <result property="realFree" column="real_free"/>
+        <result property="statu" column="statu"/>
+        <result property="finishTime" column="finish_time"/>
+        <result property="remark" column="remark"/>
+    </resultMap>
+
+
+</mapper>

+ 33 - 0
src/main/resources/mapper/ihotel/HotelOrderDao.xml

@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+
+<mapper namespace="com.chuanghai.ihotel.dao.HotelOrderDao">
+
+	<!-- 可根据自己的需求,是否要使用 -->
+    <resultMap type="com.chuanghai.ihotel.entity.HotelOrderEntity" id="hotelOrderMap">
+        <result property="id" column="id"/>
+        <result property="orderNo" column="order_no"/>
+        <result property="userFlag" column="user_flag"/>
+        <result property="userName" column="user_name"/>
+        <result property="userPhone" column="user_phone"/>
+        <result property="roomId" column="room_id"/>
+        <result property="roomNo" column="room_no"/>
+        <result property="roomTypeId" column="room_type_id"/>
+        <result property="roomTypeName" column="room_type_name"/>
+        <result property="payAmount" column="pay_amount"/>
+        <result property="payMethod" column="pay_method"/>
+        <result property="createTime" column="create_time"/>
+        <result property="payTime" column="pay_time"/>
+        <result property="orderStatu" column="order_statu"/>
+        <result property="bizStatu" column="biz_statu"/>
+        <result property="enableStartTime" column="enable_start_time"/>
+        <result property="enableEndTime" column="enable_end_time"/>
+        <result property="realStartTime" column="real_start_time"/>
+        <result property="realEndTime" column="real_end_time"/>
+        <result property="mayIntoTime" column="may_into_time"/>
+        <result property="remark" column="remark"/>
+        <result property="deleteFlag" column="delete_flag"/>
+    </resultMap>
+
+
+</mapper>

+ 18 - 0
src/main/resources/mapper/ihotel/HotelStaffDao.xml

@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+
+<mapper namespace="com.chuanghai.ihotel.dao.HotelStaffDao">
+
+	<!-- 可根据自己的需求,是否要使用 -->
+    <resultMap type="com.chuanghai.ihotel.entity.HotelStaffEntity" id="hotelStaffMap">
+        <result property="id" column="id"/>
+        <result property="cardNumber" column="card_number"/>
+        <result property="phone" column="phone"/>
+        <result property="username" column="username"/>
+        <result property="position" column="position"/>
+        <result property="password" column="password"/>
+        <result property="statu" column="statu"/>
+    </resultMap>
+
+
+</mapper>

+ 18 - 0
src/main/resources/mapper/ihotel/RoomDao.xml

@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+
+<mapper namespace="com.chuanghai.ihotel.dao.RoomDao">
+
+	<!-- 可根据自己的需求,是否要使用 -->
+    <resultMap type="com.chuanghai.ihotel.entity.RoomEntity" id="roomMap">
+        <result property="id" column="id"/>
+        <result property="roomNo" column="room_no"/>
+        <result property="build" column="build"/>
+        <result property="floor" column="floor"/>
+        <result property="roomTypeId" column="room_type_id"/>
+        <result property="roomTypeName" column="room_type_name"/>
+        <result property="enableUse" column="enable_use"/>
+    </resultMap>
+
+
+</mapper>

+ 17 - 0
src/main/resources/mapper/ihotel/RoomDoorLockDao.xml

@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+
+<mapper namespace="com.chuanghai.ihotel.dao.RoomDoorLockDao">
+
+	<!-- 可根据自己的需求,是否要使用 -->
+    <resultMap type="com.chuanghai.ihotel.entity.RoomDoorLockEntity" id="roomDoorLockMap">
+        <result property="id" column="id"/>
+        <result property="roomId" column="room_id"/>
+        <result property="lockId" column="lock_id"/>
+        <result property="lockNo" column="lock_no"/>
+        <result property="lockRealtimeNumber" column="lock_realtime_number"/>
+        <result property="updateTime" column="update_time"/>
+    </resultMap>
+
+
+</mapper>

+ 19 - 0
src/main/resources/mapper/ihotel/RoomRealtimeStatuDao.xml

@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+
+<mapper namespace="com.chuanghai.ihotel.dao.RoomRealtimeStatuDao">
+
+	<!-- 可根据自己的需求,是否要使用 -->
+    <resultMap type="com.chuanghai.ihotel.entity.RoomRealtimeStatuEntity" id="roomRealtimeStatuMap">
+        <result property="id" column="id"/>
+        <result property="roomId" column="room_id"/>
+        <result property="roomTypeId" column="room_type_id"/>
+        <result property="startTime" column="start_time"/>
+        <result property="endTime" column="end_time"/>
+        <result property="statu" column="statu"/>
+        <result property="remark" column="remark"/>
+        <result property="bizId" column="biz_id"/>
+    </resultMap>
+
+
+</mapper>

+ 19 - 0
src/main/resources/mapper/ihotel/RoomTypeDao.xml

@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+
+<mapper namespace="com.chuanghai.ihotel.dao.RoomTypeDao">
+
+	<!-- 可根据自己的需求,是否要使用 -->
+    <resultMap type="com.chuanghai.ihotel.entity.RoomTypeEntity" id="roomTypeMap">
+        <result property="id" column="id"/>
+        <result property="typeName" column="type_name"/>
+        <result property="usualPrice" column="usual_price"/>
+        <result property="discountPrice" column="discount_price"/>
+        <result property="typeShortDesc" column="type_short_desc"/>
+        <result property="typeDesc" column="type_desc"/>
+        <result property="roomNum" column="room_num"/>
+        <result property="typeImage" column="type_image"/>
+    </resultMap>
+
+
+</mapper>

+ 18 - 0
src/main/resources/mapper/ihotel/SystemSettingDao.xml

@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+
+<mapper namespace="com.chuanghai.ihotel.dao.SystemSettingDao">
+
+	<!-- 可根据自己的需求,是否要使用 -->
+    <resultMap type="com.chuanghai.ihotel.entity.SystemSettingEntity" id="systemSettingMap">
+        <result property="id" column="id"/>
+        <result property="deposit" column="deposit"/>
+        <result property="preDay" column="pre_day"/>
+        <result property="freeQuotaOfWater" column="free_quota_of_water"/>
+        <result property="freeQuotaOfElectric" column="free_quota_of_electric"/>
+        <result property="freeTotal" column="free_total"/>
+        <result property="turnOffTime" column="turn_off_time"/>
+    </resultMap>
+
+
+</mapper>

+ 28 - 0
src/main/resources/smart-doc.json

@@ -0,0 +1,28 @@
+{
+  "serverUrl": "http://192.168.161.230:8089/ihome",
+  "isStrict": false,
+  "allInOne": true,
+  "outPath": "./src/main/resources/static/doc",
+  "coverOld": true,
+  "style": "zenburn",
+  "createDebugPage": false,
+  "projectName": "智慧酒店项目",
+  "inlineEnum": true,
+  "revisionLogs": [
+    {
+      "version": "0.0.1",
+      "revisionTime":"2022-07-27 09:50:00",
+      "status": "创建文档",
+      "author": "codingliang",
+      "remarks": "初始化接口文档"
+    }
+  ],
+  "errorCodeDictionaries": [
+    {
+      "title": "业务异常代码",
+      "enumClassName": "com.chuanghai.travelbigdata.disease.command.exception.BizCodeEnume",
+      "codeField": "code",
+      "descField": "msg"
+    }
+  ]
+}

+ 13 - 0
src/test/java/com/chuanghai/ihotel/IhotelApplicationTests.java

@@ -0,0 +1,13 @@
+package com.chuanghai.ihotel;
+
+import org.junit.jupiter.api.Test;
+import org.springframework.boot.test.context.SpringBootTest;
+
+@SpringBootTest
+class IhotelApplicationTests {
+
+    @Test
+    void contextLoads() {
+    }
+
+}