init
This commit is contained in:
commit
cd990bf534
6
.gitignore
vendored
Normal file
6
.gitignore
vendored
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
**/target/
|
||||||
|
.idea
|
||||||
|
*.iml
|
||||||
|
*.class
|
||||||
|
*Test.java
|
||||||
|
**/test/
|
127
pom.xml
Normal file
127
pom.xml
Normal file
@ -0,0 +1,127 @@
|
|||||||
|
<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
<parent>
|
||||||
|
<artifactId>spring-boot-starter-parent</artifactId>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<version>2.7.3</version>
|
||||||
|
</parent>
|
||||||
|
<groupId>com.sky</groupId>
|
||||||
|
<artifactId>sky-take-out</artifactId>
|
||||||
|
<packaging>pom</packaging>
|
||||||
|
<version>1.0-SNAPSHOT</version>
|
||||||
|
<modules>
|
||||||
|
<module>sky-common</module>
|
||||||
|
<module>sky-pojo</module>
|
||||||
|
<module>sky-server</module>
|
||||||
|
</modules>
|
||||||
|
<properties>
|
||||||
|
<mybatis.spring>2.2.0</mybatis.spring>
|
||||||
|
<lombok>1.18.20</lombok>
|
||||||
|
<fastjson>1.2.76</fastjson>
|
||||||
|
<commons.lang>2.6</commons.lang>
|
||||||
|
<druid>1.2.1</druid>
|
||||||
|
<pagehelper>1.3.0</pagehelper>
|
||||||
|
<aliyun.sdk.oss>3.10.2</aliyun.sdk.oss>
|
||||||
|
<knife4j>3.0.2</knife4j>
|
||||||
|
<aspectj>1.9.4</aspectj>
|
||||||
|
<jjwt>0.9.1</jjwt>
|
||||||
|
<jaxb-api>2.3.1</jaxb-api>
|
||||||
|
<poi>3.16</poi>
|
||||||
|
</properties>
|
||||||
|
<dependencyManagement>
|
||||||
|
<dependencies>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.mybatis.spring.boot</groupId>
|
||||||
|
<artifactId>mybatis-spring-boot-starter</artifactId>
|
||||||
|
<version>${mybatis.spring}</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.projectlombok</groupId>
|
||||||
|
<artifactId>lombok</artifactId>
|
||||||
|
<version>${lombok}</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.alibaba</groupId>
|
||||||
|
<artifactId>fastjson</artifactId>
|
||||||
|
<version>${fastjson}</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>commons-lang</groupId>
|
||||||
|
<artifactId>commons-lang</artifactId>
|
||||||
|
<version>${commons.lang}</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.alibaba</groupId>
|
||||||
|
<artifactId>druid-spring-boot-starter</artifactId>
|
||||||
|
<version>${druid}</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.github.pagehelper</groupId>
|
||||||
|
<artifactId>pagehelper-spring-boot-starter</artifactId>
|
||||||
|
<version>${pagehelper}</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.github.xiaoymin</groupId>
|
||||||
|
<artifactId>knife4j-spring-boot-starter</artifactId>
|
||||||
|
<version>${knife4j}</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.aspectj</groupId>
|
||||||
|
<artifactId>aspectjrt</artifactId>
|
||||||
|
<version>${aspectj}</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.aspectj</groupId>
|
||||||
|
<artifactId>aspectjweaver</artifactId>
|
||||||
|
<version>${aspectj}</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>io.jsonwebtoken</groupId>
|
||||||
|
<artifactId>jjwt</artifactId>
|
||||||
|
<version>${jjwt}</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.aliyun.oss</groupId>
|
||||||
|
<artifactId>aliyun-sdk-oss</artifactId>
|
||||||
|
<version>${aliyun.sdk.oss}</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>javax.xml.bind</groupId>
|
||||||
|
<artifactId>jaxb-api</artifactId>
|
||||||
|
<version>${jaxb-api}</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<!-- poi -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.apache.poi</groupId>
|
||||||
|
<artifactId>poi</artifactId>
|
||||||
|
<version>${poi}</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.apache.poi</groupId>
|
||||||
|
<artifactId>poi-ooxml</artifactId>
|
||||||
|
<version>${poi}</version>
|
||||||
|
</dependency>
|
||||||
|
<!--微信支付-->
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.github.wechatpay-apiv3</groupId>
|
||||||
|
<artifactId>wechatpay-apache-httpclient</artifactId>
|
||||||
|
<version>0.4.8</version>
|
||||||
|
</dependency>
|
||||||
|
</dependencies>
|
||||||
|
</dependencyManagement>
|
||||||
|
</project>
|
53
sky-common/pom.xml
Normal file
53
sky-common/pom.xml
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
|
<parent>
|
||||||
|
<artifactId>sky-take-out</artifactId>
|
||||||
|
<groupId>com.sky</groupId>
|
||||||
|
<version>1.0-SNAPSHOT</version>
|
||||||
|
</parent>
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
<artifactId>sky-common</artifactId>
|
||||||
|
<dependencies>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.projectlombok</groupId>
|
||||||
|
<artifactId>lombok</artifactId>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.alibaba</groupId>
|
||||||
|
<artifactId>fastjson</artifactId>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>commons-lang</groupId>
|
||||||
|
<artifactId>commons-lang</artifactId>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-starter-json</artifactId>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>io.jsonwebtoken</groupId>
|
||||||
|
<artifactId>jjwt</artifactId>
|
||||||
|
</dependency>
|
||||||
|
<!--支持配置属性类,yml文件中可以提示配置项-->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-configuration-processor</artifactId>
|
||||||
|
<optional>true</optional>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.aliyun.oss</groupId>
|
||||||
|
<artifactId>aliyun-sdk-oss</artifactId>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>javax.xml.bind</groupId>
|
||||||
|
<artifactId>jaxb-api</artifactId>
|
||||||
|
</dependency>
|
||||||
|
<!--微信支付-->
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.github.wechatpay-apiv3</groupId>
|
||||||
|
<artifactId>wechatpay-apache-httpclient</artifactId>
|
||||||
|
</dependency>
|
||||||
|
</dependencies>
|
||||||
|
</project>
|
@ -0,0 +1,14 @@
|
|||||||
|
package com.sky.constant;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 公共字段自动填充相关常量
|
||||||
|
*/
|
||||||
|
public class AutoFillConstant {
|
||||||
|
/**
|
||||||
|
* 实体类中的方法名称
|
||||||
|
*/
|
||||||
|
public static final String SET_CREATE_TIME = "setCreateTime";
|
||||||
|
public static final String SET_UPDATE_TIME = "setUpdateTime";
|
||||||
|
public static final String SET_CREATE_USER = "setCreateUser";
|
||||||
|
public static final String SET_UPDATE_USER = "setUpdateUser";
|
||||||
|
}
|
@ -0,0 +1,11 @@
|
|||||||
|
package com.sky.constant;
|
||||||
|
|
||||||
|
public class JwtClaimsConstant {
|
||||||
|
|
||||||
|
public static final String EMP_ID = "empId";
|
||||||
|
public static final String USER_ID = "userId";
|
||||||
|
public static final String PHONE = "phone";
|
||||||
|
public static final String USERNAME = "username";
|
||||||
|
public static final String NAME = "name";
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,27 @@
|
|||||||
|
package com.sky.constant;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 信息提示常量类
|
||||||
|
*/
|
||||||
|
public class MessageConstant {
|
||||||
|
|
||||||
|
public static final String PASSWORD_ERROR = "密码错误";
|
||||||
|
public static final String ACCOUNT_NOT_FOUND = "账号不存在";
|
||||||
|
public static final String ACCOUNT_LOCKED = "账号被锁定";
|
||||||
|
public static final String UNKNOWN_ERROR = "未知错误";
|
||||||
|
public static final String USER_NOT_LOGIN = "用户未登录";
|
||||||
|
public static final String CATEGORY_BE_RELATED_BY_SETMEAL = "当前分类关联了套餐,不能删除";
|
||||||
|
public static final String CATEGORY_BE_RELATED_BY_DISH = "当前分类关联了菜品,不能删除";
|
||||||
|
public static final String SHOPPING_CART_IS_NULL = "购物车数据为空,不能下单";
|
||||||
|
public static final String ADDRESS_BOOK_IS_NULL = "用户地址为空,不能下单";
|
||||||
|
public static final String LOGIN_FAILED = "登录失败";
|
||||||
|
public static final String UPLOAD_FAILED = "文件上传失败";
|
||||||
|
public static final String SETMEAL_ENABLE_FAILED = "套餐内包含未启售菜品,无法启售";
|
||||||
|
public static final String PASSWORD_EDIT_FAILED = "密码修改失败";
|
||||||
|
public static final String DISH_ON_SALE = "起售中的菜品不能删除";
|
||||||
|
public static final String SETMEAL_ON_SALE = "起售中的套餐不能删除";
|
||||||
|
public static final String DISH_BE_RELATED_BY_SETMEAL = "当前菜品关联了套餐,不能删除";
|
||||||
|
public static final String ORDER_STATUS_ERROR = "订单状态错误";
|
||||||
|
public static final String ORDER_NOT_FOUND = "订单不存在";
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,10 @@
|
|||||||
|
package com.sky.constant;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 密码常量
|
||||||
|
*/
|
||||||
|
public class PasswordConstant {
|
||||||
|
|
||||||
|
public static final String DEFAULT_PASSWORD = "123456";
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,13 @@
|
|||||||
|
package com.sky.constant;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 状态常量,启用或者禁用
|
||||||
|
*/
|
||||||
|
public class StatusConstant {
|
||||||
|
|
||||||
|
//启用
|
||||||
|
public static final Integer ENABLE = 1;
|
||||||
|
|
||||||
|
//禁用
|
||||||
|
public static final Integer DISABLE = 0;
|
||||||
|
}
|
19
sky-common/src/main/java/com/sky/context/BaseContext.java
Normal file
19
sky-common/src/main/java/com/sky/context/BaseContext.java
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
package com.sky.context;
|
||||||
|
|
||||||
|
public class BaseContext {
|
||||||
|
|
||||||
|
public static ThreadLocal<Long> threadLocal = new ThreadLocal<>();
|
||||||
|
|
||||||
|
public static void setCurrentId(Long id) {
|
||||||
|
threadLocal.set(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Long getCurrentId() {
|
||||||
|
return threadLocal.get();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void removeCurrentId() {
|
||||||
|
threadLocal.remove();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,18 @@
|
|||||||
|
package com.sky.enumeration;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 数据库操作类型
|
||||||
|
*/
|
||||||
|
public enum OperationType {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新操作
|
||||||
|
*/
|
||||||
|
UPDATE,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 插入操作
|
||||||
|
*/
|
||||||
|
INSERT
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,15 @@
|
|||||||
|
package com.sky.exception;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 账号被锁定异常
|
||||||
|
*/
|
||||||
|
public class AccountLockedException extends BaseException {
|
||||||
|
|
||||||
|
public AccountLockedException() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public AccountLockedException(String msg) {
|
||||||
|
super(msg);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,15 @@
|
|||||||
|
package com.sky.exception;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 账号不存在异常
|
||||||
|
*/
|
||||||
|
public class AccountNotFoundException extends BaseException {
|
||||||
|
|
||||||
|
public AccountNotFoundException() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public AccountNotFoundException(String msg) {
|
||||||
|
super(msg);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,9 @@
|
|||||||
|
package com.sky.exception;
|
||||||
|
|
||||||
|
public class AddressBookBusinessException extends BaseException {
|
||||||
|
|
||||||
|
public AddressBookBusinessException(String msg) {
|
||||||
|
super(msg);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,15 @@
|
|||||||
|
package com.sky.exception;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 业务异常
|
||||||
|
*/
|
||||||
|
public class BaseException extends RuntimeException {
|
||||||
|
|
||||||
|
public BaseException() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public BaseException(String msg) {
|
||||||
|
super(msg);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,9 @@
|
|||||||
|
package com.sky.exception;
|
||||||
|
|
||||||
|
public class DeletionNotAllowedException extends BaseException {
|
||||||
|
|
||||||
|
public DeletionNotAllowedException(String msg) {
|
||||||
|
super(msg);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,10 @@
|
|||||||
|
package com.sky.exception;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 登录失败
|
||||||
|
*/
|
||||||
|
public class LoginFailedException extends BaseException{
|
||||||
|
public LoginFailedException(String msg){
|
||||||
|
super(msg);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,9 @@
|
|||||||
|
package com.sky.exception;
|
||||||
|
|
||||||
|
public class OrderBusinessException extends BaseException {
|
||||||
|
|
||||||
|
public OrderBusinessException(String msg) {
|
||||||
|
super(msg);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,12 @@
|
|||||||
|
package com.sky.exception;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 密码修改失败异常
|
||||||
|
*/
|
||||||
|
public class PasswordEditFailedException extends BaseException{
|
||||||
|
|
||||||
|
public PasswordEditFailedException(String msg){
|
||||||
|
super(msg);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,15 @@
|
|||||||
|
package com.sky.exception;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 密码错误异常
|
||||||
|
*/
|
||||||
|
public class PasswordErrorException extends BaseException {
|
||||||
|
|
||||||
|
public PasswordErrorException() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public PasswordErrorException(String msg) {
|
||||||
|
super(msg);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,13 @@
|
|||||||
|
package com.sky.exception;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 套餐启用失败异常
|
||||||
|
*/
|
||||||
|
public class SetmealEnableFailedException extends BaseException {
|
||||||
|
|
||||||
|
public SetmealEnableFailedException(){}
|
||||||
|
|
||||||
|
public SetmealEnableFailedException(String msg){
|
||||||
|
super(msg);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,9 @@
|
|||||||
|
package com.sky.exception;
|
||||||
|
|
||||||
|
public class ShoppingCartBusinessException extends BaseException {
|
||||||
|
|
||||||
|
public ShoppingCartBusinessException(String msg) {
|
||||||
|
super(msg);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,12 @@
|
|||||||
|
package com.sky.exception;
|
||||||
|
|
||||||
|
public class UserNotLoginException extends BaseException {
|
||||||
|
|
||||||
|
public UserNotLoginException() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public UserNotLoginException(String msg) {
|
||||||
|
super(msg);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,51 @@
|
|||||||
|
package com.sky.json;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.databind.DeserializationFeature;
|
||||||
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
|
import com.fasterxml.jackson.databind.module.SimpleModule;
|
||||||
|
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateDeserializer;
|
||||||
|
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
|
||||||
|
import com.fasterxml.jackson.datatype.jsr310.deser.LocalTimeDeserializer;
|
||||||
|
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateSerializer;
|
||||||
|
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
|
||||||
|
import com.fasterxml.jackson.datatype.jsr310.ser.LocalTimeSerializer;
|
||||||
|
|
||||||
|
import java.time.LocalDate;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.time.LocalTime;
|
||||||
|
import java.time.format.DateTimeFormatter;
|
||||||
|
|
||||||
|
import static com.fasterxml.jackson.databind.DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 对象映射器:基于jackson将Java对象转为json,或者将json转为Java对象
|
||||||
|
* 将JSON解析为Java对象的过程称为 [从JSON反序列化Java对象]
|
||||||
|
* 从Java对象生成JSON的过程称为 [序列化Java对象到JSON]
|
||||||
|
*/
|
||||||
|
public class JacksonObjectMapper extends ObjectMapper {
|
||||||
|
|
||||||
|
public static final String DEFAULT_DATE_FORMAT = "yyyy-MM-dd";
|
||||||
|
//public static final String DEFAULT_DATE_TIME_FORMAT = "yyyy-MM-dd HH:mm:ss";
|
||||||
|
public static final String DEFAULT_DATE_TIME_FORMAT = "yyyy-MM-dd HH:mm";
|
||||||
|
public static final String DEFAULT_TIME_FORMAT = "HH:mm:ss";
|
||||||
|
|
||||||
|
public JacksonObjectMapper() {
|
||||||
|
super();
|
||||||
|
//收到未知属性时不报异常
|
||||||
|
this.configure(FAIL_ON_UNKNOWN_PROPERTIES, false);
|
||||||
|
|
||||||
|
//反序列化时,属性不存在的兼容处理
|
||||||
|
this.getDeserializationConfig().withoutFeatures(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);
|
||||||
|
|
||||||
|
SimpleModule simpleModule = new SimpleModule()
|
||||||
|
.addDeserializer(LocalDateTime.class, new LocalDateTimeDeserializer(DateTimeFormatter.ofPattern(DEFAULT_DATE_TIME_FORMAT)))
|
||||||
|
.addDeserializer(LocalDate.class, new LocalDateDeserializer(DateTimeFormatter.ofPattern(DEFAULT_DATE_FORMAT)))
|
||||||
|
.addDeserializer(LocalTime.class, new LocalTimeDeserializer(DateTimeFormatter.ofPattern(DEFAULT_TIME_FORMAT)))
|
||||||
|
.addSerializer(LocalDateTime.class, new LocalDateTimeSerializer(DateTimeFormatter.ofPattern(DEFAULT_DATE_TIME_FORMAT)))
|
||||||
|
.addSerializer(LocalDate.class, new LocalDateSerializer(DateTimeFormatter.ofPattern(DEFAULT_DATE_FORMAT)))
|
||||||
|
.addSerializer(LocalTime.class, new LocalTimeSerializer(DateTimeFormatter.ofPattern(DEFAULT_TIME_FORMAT)));
|
||||||
|
|
||||||
|
//注册功能模块 例如,可以添加自定义序列化器和反序列化器
|
||||||
|
this.registerModule(simpleModule);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,17 @@
|
|||||||
|
package com.sky.properties;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
@Component
|
||||||
|
@ConfigurationProperties(prefix = "sky.alioss")
|
||||||
|
@Data
|
||||||
|
public class AliOssProperties {
|
||||||
|
|
||||||
|
private String endpoint;
|
||||||
|
private String accessKeyId;
|
||||||
|
private String accessKeySecret;
|
||||||
|
private String bucketName;
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,26 @@
|
|||||||
|
package com.sky.properties;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
@Component
|
||||||
|
@ConfigurationProperties(prefix = "sky.jwt")
|
||||||
|
@Data
|
||||||
|
public class JwtProperties {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 管理端员工生成jwt令牌相关配置
|
||||||
|
*/
|
||||||
|
private String adminSecretKey;
|
||||||
|
private long adminTtl;
|
||||||
|
private String adminTokenName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户端微信用户生成jwt令牌相关配置
|
||||||
|
*/
|
||||||
|
private String userSecretKey;
|
||||||
|
private long userTtl;
|
||||||
|
private String userTokenName;
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,23 @@
|
|||||||
|
package com.sky.properties;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
|
import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
@Component
|
||||||
|
@ConfigurationProperties(prefix = "sky.wechat")
|
||||||
|
@Data
|
||||||
|
public class WeChatProperties {
|
||||||
|
|
||||||
|
private String appid; //小程序的appid
|
||||||
|
private String secret; //小程序的秘钥
|
||||||
|
private String mchid; //商户号
|
||||||
|
private String mchSerialNo; //商户API证书的证书序列号
|
||||||
|
private String privateKeyFilePath; //商户私钥文件
|
||||||
|
private String apiV3Key; //证书解密的密钥
|
||||||
|
private String weChatPayCertFilePath; //平台证书
|
||||||
|
private String notifyUrl; //支付成功的回调地址
|
||||||
|
private String refundNotifyUrl; //退款成功的回调地址
|
||||||
|
|
||||||
|
}
|
22
sky-common/src/main/java/com/sky/result/PageResult.java
Normal file
22
sky-common/src/main/java/com/sky/result/PageResult.java
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
package com.sky.result;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 封装分页查询结果
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@AllArgsConstructor
|
||||||
|
@NoArgsConstructor
|
||||||
|
public class PageResult implements Serializable {
|
||||||
|
|
||||||
|
private long total; //总记录数
|
||||||
|
|
||||||
|
private List records; //当前页数据集合
|
||||||
|
|
||||||
|
}
|
38
sky-common/src/main/java/com/sky/result/Result.java
Normal file
38
sky-common/src/main/java/com/sky/result/Result.java
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
package com.sky.result;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 后端统一返回结果
|
||||||
|
* @param <T>
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class Result<T> implements Serializable {
|
||||||
|
|
||||||
|
private Integer code; //编码:1成功,0和其它数字为失败
|
||||||
|
private String msg; //错误信息
|
||||||
|
private T data; //数据
|
||||||
|
|
||||||
|
public static <T> Result<T> success() {
|
||||||
|
Result<T> result = new Result<T>();
|
||||||
|
result.code = 1;
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static <T> Result<T> success(T object) {
|
||||||
|
Result<T> result = new Result<T>();
|
||||||
|
result.data = object;
|
||||||
|
result.code = 1;
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static <T> Result<T> error(String msg) {
|
||||||
|
Result result = new Result();
|
||||||
|
result.msg = msg;
|
||||||
|
result.code = 0;
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
68
sky-common/src/main/java/com/sky/utils/AliOssUtil.java
Normal file
68
sky-common/src/main/java/com/sky/utils/AliOssUtil.java
Normal file
@ -0,0 +1,68 @@
|
|||||||
|
package com.sky.utils;
|
||||||
|
|
||||||
|
import com.aliyun.oss.ClientException;
|
||||||
|
import com.aliyun.oss.OSS;
|
||||||
|
import com.aliyun.oss.OSSClientBuilder;
|
||||||
|
import com.aliyun.oss.OSSException;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import java.io.ByteArrayInputStream;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@AllArgsConstructor
|
||||||
|
@Slf4j
|
||||||
|
public class AliOssUtil {
|
||||||
|
|
||||||
|
private String endpoint;
|
||||||
|
private String accessKeyId;
|
||||||
|
private String accessKeySecret;
|
||||||
|
private String bucketName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 文件上传
|
||||||
|
*
|
||||||
|
* @param bytes
|
||||||
|
* @param objectName
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public String upload(byte[] bytes, String objectName) {
|
||||||
|
|
||||||
|
// 创建OSSClient实例。
|
||||||
|
OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
|
||||||
|
|
||||||
|
try {
|
||||||
|
// 创建PutObject请求。
|
||||||
|
ossClient.putObject(bucketName, objectName, new ByteArrayInputStream(bytes));
|
||||||
|
} catch (OSSException oe) {
|
||||||
|
System.out.println("Caught an OSSException, which means your request made it to OSS, "
|
||||||
|
+ "but was rejected with an error response for some reason.");
|
||||||
|
System.out.println("Error Message:" + oe.getErrorMessage());
|
||||||
|
System.out.println("Error Code:" + oe.getErrorCode());
|
||||||
|
System.out.println("Request ID:" + oe.getRequestId());
|
||||||
|
System.out.println("Host ID:" + oe.getHostId());
|
||||||
|
} catch (ClientException ce) {
|
||||||
|
System.out.println("Caught an ClientException, which means the client encountered "
|
||||||
|
+ "a serious internal problem while trying to communicate with OSS, "
|
||||||
|
+ "such as not being able to access the network.");
|
||||||
|
System.out.println("Error Message:" + ce.getMessage());
|
||||||
|
} finally {
|
||||||
|
if (ossClient != null) {
|
||||||
|
ossClient.shutdown();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//文件访问路径规则 https://BucketName.Endpoint/ObjectName
|
||||||
|
StringBuilder stringBuilder = new StringBuilder("https://");
|
||||||
|
stringBuilder
|
||||||
|
.append(bucketName)
|
||||||
|
.append(".")
|
||||||
|
.append(endpoint)
|
||||||
|
.append("/")
|
||||||
|
.append(objectName);
|
||||||
|
|
||||||
|
log.info("文件上传到:{}", stringBuilder.toString());
|
||||||
|
|
||||||
|
return stringBuilder.toString();
|
||||||
|
}
|
||||||
|
}
|
179
sky-common/src/main/java/com/sky/utils/HttpClientUtil.java
Normal file
179
sky-common/src/main/java/com/sky/utils/HttpClientUtil.java
Normal file
@ -0,0 +1,179 @@
|
|||||||
|
package com.sky.utils;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import org.apache.http.NameValuePair;
|
||||||
|
import org.apache.http.client.config.RequestConfig;
|
||||||
|
import org.apache.http.client.entity.UrlEncodedFormEntity;
|
||||||
|
import org.apache.http.client.methods.CloseableHttpResponse;
|
||||||
|
import org.apache.http.client.methods.HttpGet;
|
||||||
|
import org.apache.http.client.methods.HttpPost;
|
||||||
|
import org.apache.http.client.utils.URIBuilder;
|
||||||
|
import org.apache.http.entity.StringEntity;
|
||||||
|
import org.apache.http.impl.client.CloseableHttpClient;
|
||||||
|
import org.apache.http.impl.client.HttpClients;
|
||||||
|
import org.apache.http.message.BasicNameValuePair;
|
||||||
|
import org.apache.http.util.EntityUtils;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.net.URI;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Http工具类
|
||||||
|
*/
|
||||||
|
public class HttpClientUtil {
|
||||||
|
|
||||||
|
static final int TIMEOUT_MSEC = 5 * 1000;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 发送GET方式请求
|
||||||
|
* @param url
|
||||||
|
* @param paramMap
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static String doGet(String url,Map<String,String> paramMap){
|
||||||
|
// 创建Httpclient对象
|
||||||
|
CloseableHttpClient httpClient = HttpClients.createDefault();
|
||||||
|
|
||||||
|
String result = "";
|
||||||
|
CloseableHttpResponse response = null;
|
||||||
|
|
||||||
|
try{
|
||||||
|
URIBuilder builder = new URIBuilder(url);
|
||||||
|
if(paramMap != null){
|
||||||
|
for (String key : paramMap.keySet()) {
|
||||||
|
builder.addParameter(key,paramMap.get(key));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
URI uri = builder.build();
|
||||||
|
|
||||||
|
//创建GET请求
|
||||||
|
HttpGet httpGet = new HttpGet(uri);
|
||||||
|
|
||||||
|
//发送请求
|
||||||
|
response = httpClient.execute(httpGet);
|
||||||
|
|
||||||
|
//判断响应状态
|
||||||
|
if(response.getStatusLine().getStatusCode() == 200){
|
||||||
|
result = EntityUtils.toString(response.getEntity(),"UTF-8");
|
||||||
|
}
|
||||||
|
}catch (Exception e){
|
||||||
|
e.printStackTrace();
|
||||||
|
}finally {
|
||||||
|
try {
|
||||||
|
response.close();
|
||||||
|
httpClient.close();
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 发送POST方式请求
|
||||||
|
* @param url
|
||||||
|
* @param paramMap
|
||||||
|
* @return
|
||||||
|
* @throws IOException
|
||||||
|
*/
|
||||||
|
public static String doPost(String url, Map<String, String> paramMap) throws IOException {
|
||||||
|
// 创建Httpclient对象
|
||||||
|
CloseableHttpClient httpClient = HttpClients.createDefault();
|
||||||
|
CloseableHttpResponse response = null;
|
||||||
|
String resultString = "";
|
||||||
|
|
||||||
|
try {
|
||||||
|
// 创建Http Post请求
|
||||||
|
HttpPost httpPost = new HttpPost(url);
|
||||||
|
|
||||||
|
// 创建参数列表
|
||||||
|
if (paramMap != null) {
|
||||||
|
List<NameValuePair> paramList = new ArrayList();
|
||||||
|
for (Map.Entry<String, String> param : paramMap.entrySet()) {
|
||||||
|
paramList.add(new BasicNameValuePair(param.getKey(), param.getValue()));
|
||||||
|
}
|
||||||
|
// 模拟表单
|
||||||
|
UrlEncodedFormEntity entity = new UrlEncodedFormEntity(paramList);
|
||||||
|
httpPost.setEntity(entity);
|
||||||
|
}
|
||||||
|
|
||||||
|
httpPost.setConfig(builderRequestConfig());
|
||||||
|
|
||||||
|
// 执行http请求
|
||||||
|
response = httpClient.execute(httpPost);
|
||||||
|
|
||||||
|
resultString = EntityUtils.toString(response.getEntity(), "UTF-8");
|
||||||
|
} catch (Exception e) {
|
||||||
|
throw e;
|
||||||
|
} finally {
|
||||||
|
try {
|
||||||
|
response.close();
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return resultString;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 发送POST方式请求
|
||||||
|
* @param url
|
||||||
|
* @param paramMap
|
||||||
|
* @return
|
||||||
|
* @throws IOException
|
||||||
|
*/
|
||||||
|
public static String doPost4Json(String url, Map<String, String> paramMap) throws IOException {
|
||||||
|
// 创建Httpclient对象
|
||||||
|
CloseableHttpClient httpClient = HttpClients.createDefault();
|
||||||
|
CloseableHttpResponse response = null;
|
||||||
|
String resultString = "";
|
||||||
|
|
||||||
|
try {
|
||||||
|
// 创建Http Post请求
|
||||||
|
HttpPost httpPost = new HttpPost(url);
|
||||||
|
|
||||||
|
if (paramMap != null) {
|
||||||
|
//构造json格式数据
|
||||||
|
JSONObject jsonObject = new JSONObject();
|
||||||
|
for (Map.Entry<String, String> param : paramMap.entrySet()) {
|
||||||
|
jsonObject.put(param.getKey(),param.getValue());
|
||||||
|
}
|
||||||
|
StringEntity entity = new StringEntity(jsonObject.toString(),"utf-8");
|
||||||
|
//设置请求编码
|
||||||
|
entity.setContentEncoding("utf-8");
|
||||||
|
//设置数据类型
|
||||||
|
entity.setContentType("application/json");
|
||||||
|
httpPost.setEntity(entity);
|
||||||
|
}
|
||||||
|
|
||||||
|
httpPost.setConfig(builderRequestConfig());
|
||||||
|
|
||||||
|
// 执行http请求
|
||||||
|
response = httpClient.execute(httpPost);
|
||||||
|
|
||||||
|
resultString = EntityUtils.toString(response.getEntity(), "UTF-8");
|
||||||
|
} catch (Exception e) {
|
||||||
|
throw e;
|
||||||
|
} finally {
|
||||||
|
try {
|
||||||
|
response.close();
|
||||||
|
} catch (IOException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return resultString;
|
||||||
|
}
|
||||||
|
private static RequestConfig builderRequestConfig() {
|
||||||
|
return RequestConfig.custom()
|
||||||
|
.setConnectTimeout(TIMEOUT_MSEC)
|
||||||
|
.setConnectionRequestTimeout(TIMEOUT_MSEC)
|
||||||
|
.setSocketTimeout(TIMEOUT_MSEC).build();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
58
sky-common/src/main/java/com/sky/utils/JwtUtil.java
Normal file
58
sky-common/src/main/java/com/sky/utils/JwtUtil.java
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
package com.sky.utils;
|
||||||
|
|
||||||
|
import io.jsonwebtoken.Claims;
|
||||||
|
import io.jsonwebtoken.JwtBuilder;
|
||||||
|
import io.jsonwebtoken.Jwts;
|
||||||
|
import io.jsonwebtoken.SignatureAlgorithm;
|
||||||
|
import java.nio.charset.StandardCharsets;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
public class JwtUtil {
|
||||||
|
/**
|
||||||
|
* 生成jwt
|
||||||
|
* 使用Hs256算法, 私匙使用固定秘钥
|
||||||
|
*
|
||||||
|
* @param secretKey jwt秘钥
|
||||||
|
* @param ttlMillis jwt过期时间(毫秒)
|
||||||
|
* @param claims 设置的信息
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static String createJWT(String secretKey, long ttlMillis, Map<String, Object> claims) {
|
||||||
|
// 指定签名的时候使用的签名算法,也就是header那部分
|
||||||
|
SignatureAlgorithm signatureAlgorithm = SignatureAlgorithm.HS256;
|
||||||
|
|
||||||
|
// 生成JWT的时间
|
||||||
|
long expMillis = System.currentTimeMillis() + ttlMillis;
|
||||||
|
Date exp = new Date(expMillis);
|
||||||
|
|
||||||
|
// 设置jwt的body
|
||||||
|
JwtBuilder builder = Jwts.builder()
|
||||||
|
// 如果有私有声明,一定要先设置这个自己创建的私有的声明,这个是给builder的claim赋值,一旦写在标准的声明赋值之后,就是覆盖了那些标准的声明的
|
||||||
|
.setClaims(claims)
|
||||||
|
// 设置签名使用的签名算法和签名使用的秘钥
|
||||||
|
.signWith(signatureAlgorithm, secretKey.getBytes(StandardCharsets.UTF_8))
|
||||||
|
// 设置过期时间
|
||||||
|
.setExpiration(exp);
|
||||||
|
|
||||||
|
return builder.compact();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Token解密
|
||||||
|
*
|
||||||
|
* @param secretKey jwt秘钥 此秘钥一定要保留好在服务端, 不能暴露出去, 否则sign就可以被伪造, 如果对接多个客户端建议改造成多个
|
||||||
|
* @param token 加密后的token
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static Claims parseJWT(String secretKey, String token) {
|
||||||
|
// 得到DefaultJwtParser
|
||||||
|
Claims claims = Jwts.parser()
|
||||||
|
// 设置签名的秘钥
|
||||||
|
.setSigningKey(secretKey.getBytes(StandardCharsets.UTF_8))
|
||||||
|
// 设置需要解析的jwt
|
||||||
|
.parseClaimsJws(token).getBody();
|
||||||
|
return claims;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
235
sky-common/src/main/java/com/sky/utils/WeChatPayUtil.java
Normal file
235
sky-common/src/main/java/com/sky/utils/WeChatPayUtil.java
Normal file
@ -0,0 +1,235 @@
|
|||||||
|
package com.sky.utils;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSON;
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import com.sky.properties.WeChatProperties;
|
||||||
|
import com.wechat.pay.contrib.apache.httpclient.WechatPayHttpClientBuilder;
|
||||||
|
import com.wechat.pay.contrib.apache.httpclient.util.PemUtil;
|
||||||
|
import org.apache.commons.lang.RandomStringUtils;
|
||||||
|
import org.apache.http.HttpHeaders;
|
||||||
|
import org.apache.http.client.methods.CloseableHttpResponse;
|
||||||
|
import org.apache.http.client.methods.HttpGet;
|
||||||
|
import org.apache.http.client.methods.HttpPost;
|
||||||
|
import org.apache.http.entity.ContentType;
|
||||||
|
import org.apache.http.entity.StringEntity;
|
||||||
|
import org.apache.http.impl.client.CloseableHttpClient;
|
||||||
|
import org.apache.http.util.EntityUtils;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.FileInputStream;
|
||||||
|
import java.io.FileNotFoundException;
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.security.PrivateKey;
|
||||||
|
import java.security.Signature;
|
||||||
|
import java.security.cert.X509Certificate;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.Base64;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 微信支付工具类
|
||||||
|
*/
|
||||||
|
@Component
|
||||||
|
public class WeChatPayUtil {
|
||||||
|
|
||||||
|
//微信支付下单接口地址
|
||||||
|
public static final String JSAPI = "https://api.mch.weixin.qq.com/v3/pay/transactions/jsapi";
|
||||||
|
|
||||||
|
//申请退款接口地址
|
||||||
|
public static final String REFUNDS = "https://api.mch.weixin.qq.com/v3/refund/domestic/refunds";
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private WeChatProperties weChatProperties;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取调用微信接口的客户端工具对象
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
private CloseableHttpClient getClient() {
|
||||||
|
PrivateKey merchantPrivateKey = null;
|
||||||
|
try {
|
||||||
|
//merchantPrivateKey商户API私钥,如何加载商户API私钥请看常见问题
|
||||||
|
merchantPrivateKey = PemUtil.loadPrivateKey(new FileInputStream(new File(weChatProperties.getPrivateKeyFilePath())));
|
||||||
|
//加载平台证书文件
|
||||||
|
X509Certificate x509Certificate = PemUtil.loadCertificate(new FileInputStream(new File(weChatProperties.getWeChatPayCertFilePath())));
|
||||||
|
//wechatPayCertificates微信支付平台证书列表。你也可以使用后面章节提到的“定时更新平台证书功能”,而不需要关心平台证书的来龙去脉
|
||||||
|
List<X509Certificate> wechatPayCertificates = Arrays.asList(x509Certificate);
|
||||||
|
|
||||||
|
WechatPayHttpClientBuilder builder = WechatPayHttpClientBuilder.create()
|
||||||
|
.withMerchant(weChatProperties.getMchid(), weChatProperties.getMchSerialNo(), merchantPrivateKey)
|
||||||
|
.withWechatPay(wechatPayCertificates);
|
||||||
|
|
||||||
|
// 通过WechatPayHttpClientBuilder构造的HttpClient,会自动的处理签名和验签
|
||||||
|
CloseableHttpClient httpClient = builder.build();
|
||||||
|
return httpClient;
|
||||||
|
} catch (FileNotFoundException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 发送post方式请求
|
||||||
|
*
|
||||||
|
* @param url
|
||||||
|
* @param body
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
private String post(String url, String body) throws Exception {
|
||||||
|
CloseableHttpClient httpClient = getClient();
|
||||||
|
|
||||||
|
HttpPost httpPost = new HttpPost(url);
|
||||||
|
httpPost.addHeader(HttpHeaders.ACCEPT, ContentType.APPLICATION_JSON.toString());
|
||||||
|
httpPost.addHeader(HttpHeaders.CONTENT_TYPE, ContentType.APPLICATION_JSON.toString());
|
||||||
|
httpPost.addHeader("Wechatpay-Serial", weChatProperties.getMchSerialNo());
|
||||||
|
httpPost.setEntity(new StringEntity(body, "UTF-8"));
|
||||||
|
|
||||||
|
CloseableHttpResponse response = httpClient.execute(httpPost);
|
||||||
|
try {
|
||||||
|
String bodyAsString = EntityUtils.toString(response.getEntity());
|
||||||
|
return bodyAsString;
|
||||||
|
} finally {
|
||||||
|
httpClient.close();
|
||||||
|
response.close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 发送get方式请求
|
||||||
|
*
|
||||||
|
* @param url
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
private String get(String url) throws Exception {
|
||||||
|
CloseableHttpClient httpClient = getClient();
|
||||||
|
|
||||||
|
HttpGet httpGet = new HttpGet(url);
|
||||||
|
httpGet.addHeader(HttpHeaders.ACCEPT, ContentType.APPLICATION_JSON.toString());
|
||||||
|
httpGet.addHeader(HttpHeaders.CONTENT_TYPE, ContentType.APPLICATION_JSON.toString());
|
||||||
|
httpGet.addHeader("Wechatpay-Serial", weChatProperties.getMchSerialNo());
|
||||||
|
|
||||||
|
CloseableHttpResponse response = httpClient.execute(httpGet);
|
||||||
|
try {
|
||||||
|
String bodyAsString = EntityUtils.toString(response.getEntity());
|
||||||
|
return bodyAsString;
|
||||||
|
} finally {
|
||||||
|
httpClient.close();
|
||||||
|
response.close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* jsapi下单
|
||||||
|
*
|
||||||
|
* @param orderNum 商户订单号
|
||||||
|
* @param total 总金额
|
||||||
|
* @param description 商品描述
|
||||||
|
* @param openid 微信用户的openid
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
private String jsapi(String orderNum, BigDecimal total, String description, String openid) throws Exception {
|
||||||
|
JSONObject jsonObject = new JSONObject();
|
||||||
|
jsonObject.put("appid", weChatProperties.getAppid());
|
||||||
|
jsonObject.put("mchid", weChatProperties.getMchid());
|
||||||
|
jsonObject.put("description", description);
|
||||||
|
jsonObject.put("out_trade_no", orderNum);
|
||||||
|
jsonObject.put("notify_url", weChatProperties.getNotifyUrl());
|
||||||
|
|
||||||
|
JSONObject amount = new JSONObject();
|
||||||
|
amount.put("total", total.multiply(new BigDecimal(100)).setScale(2, BigDecimal.ROUND_HALF_UP).intValue());
|
||||||
|
amount.put("currency", "CNY");
|
||||||
|
|
||||||
|
jsonObject.put("amount", amount);
|
||||||
|
|
||||||
|
JSONObject payer = new JSONObject();
|
||||||
|
payer.put("openid", openid);
|
||||||
|
|
||||||
|
jsonObject.put("payer", payer);
|
||||||
|
|
||||||
|
String body = jsonObject.toJSONString();
|
||||||
|
return post(JSAPI, body);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 小程序支付
|
||||||
|
*
|
||||||
|
* @param orderNum 商户订单号
|
||||||
|
* @param total 金额,单位 元
|
||||||
|
* @param description 商品描述
|
||||||
|
* @param openid 微信用户的openid
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public JSONObject pay(String orderNum, BigDecimal total, String description, String openid) throws Exception {
|
||||||
|
//统一下单,生成预支付交易单
|
||||||
|
String bodyAsString = jsapi(orderNum, total, description, openid);
|
||||||
|
//解析返回结果
|
||||||
|
JSONObject jsonObject = JSON.parseObject(bodyAsString);
|
||||||
|
System.out.println(jsonObject);
|
||||||
|
|
||||||
|
String prepayId = jsonObject.getString("prepay_id");
|
||||||
|
if (prepayId != null) {
|
||||||
|
String timeStamp = String.valueOf(System.currentTimeMillis() / 1000);
|
||||||
|
String nonceStr = RandomStringUtils.randomNumeric(32);
|
||||||
|
ArrayList<Object> list = new ArrayList<>();
|
||||||
|
list.add(weChatProperties.getAppid());
|
||||||
|
list.add(timeStamp);
|
||||||
|
list.add(nonceStr);
|
||||||
|
list.add("prepay_id=" + prepayId);
|
||||||
|
//二次签名,调起支付需要重新签名
|
||||||
|
StringBuilder stringBuilder = new StringBuilder();
|
||||||
|
for (Object o : list) {
|
||||||
|
stringBuilder.append(o).append("\n");
|
||||||
|
}
|
||||||
|
String signMessage = stringBuilder.toString();
|
||||||
|
byte[] message = signMessage.getBytes();
|
||||||
|
|
||||||
|
Signature signature = Signature.getInstance("SHA256withRSA");
|
||||||
|
signature.initSign(PemUtil.loadPrivateKey(new FileInputStream(new File(weChatProperties.getPrivateKeyFilePath()))));
|
||||||
|
signature.update(message);
|
||||||
|
String packageSign = Base64.getEncoder().encodeToString(signature.sign());
|
||||||
|
|
||||||
|
//构造数据给微信小程序,用于调起微信支付
|
||||||
|
JSONObject jo = new JSONObject();
|
||||||
|
jo.put("timeStamp", timeStamp);
|
||||||
|
jo.put("nonceStr", nonceStr);
|
||||||
|
jo.put("package", "prepay_id=" + prepayId);
|
||||||
|
jo.put("signType", "RSA");
|
||||||
|
jo.put("paySign", packageSign);
|
||||||
|
|
||||||
|
return jo;
|
||||||
|
}
|
||||||
|
return jsonObject;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 申请退款
|
||||||
|
*
|
||||||
|
* @param outTradeNo 商户订单号
|
||||||
|
* @param outRefundNo 商户退款单号
|
||||||
|
* @param refund 退款金额
|
||||||
|
* @param total 原订单金额
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public String refund(String outTradeNo, String outRefundNo, BigDecimal refund, BigDecimal total) throws Exception {
|
||||||
|
JSONObject jsonObject = new JSONObject();
|
||||||
|
jsonObject.put("out_trade_no", outTradeNo);
|
||||||
|
jsonObject.put("out_refund_no", outRefundNo);
|
||||||
|
|
||||||
|
JSONObject amount = new JSONObject();
|
||||||
|
amount.put("refund", refund.multiply(new BigDecimal(100)).setScale(2, BigDecimal.ROUND_HALF_UP).intValue());
|
||||||
|
amount.put("total", total.multiply(new BigDecimal(100)).setScale(2, BigDecimal.ROUND_HALF_UP).intValue());
|
||||||
|
amount.put("currency", "CNY");
|
||||||
|
|
||||||
|
jsonObject.put("amount", amount);
|
||||||
|
jsonObject.put("notify_url", weChatProperties.getRefundNotifyUrl());
|
||||||
|
|
||||||
|
String body = jsonObject.toJSONString();
|
||||||
|
|
||||||
|
//调用申请退款接口
|
||||||
|
return post(REFUNDS, body);
|
||||||
|
}
|
||||||
|
}
|
27
sky-pojo/pom.xml
Normal file
27
sky-pojo/pom.xml
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
|
<parent>
|
||||||
|
<artifactId>sky-take-out</artifactId>
|
||||||
|
<groupId>com.sky</groupId>
|
||||||
|
<version>1.0-SNAPSHOT</version>
|
||||||
|
</parent>
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
<artifactId>sky-pojo</artifactId>
|
||||||
|
<dependencies>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.projectlombok</groupId>
|
||||||
|
<artifactId>lombok</artifactId>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.fasterxml.jackson.core</groupId>
|
||||||
|
<artifactId>jackson-databind</artifactId>
|
||||||
|
<version>2.9.2</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.github.xiaoymin</groupId>
|
||||||
|
<artifactId>knife4j-spring-boot-starter</artifactId>
|
||||||
|
</dependency>
|
||||||
|
</dependencies>
|
||||||
|
</project>
|
22
sky-pojo/src/main/java/com/sky/dto/CategoryDTO.java
Normal file
22
sky-pojo/src/main/java/com/sky/dto/CategoryDTO.java
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
package com.sky.dto;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class CategoryDTO implements Serializable {
|
||||||
|
|
||||||
|
//主键
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
//类型 1 菜品分类 2 套餐分类
|
||||||
|
private Integer type;
|
||||||
|
|
||||||
|
//分类名称
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
//排序
|
||||||
|
private Integer sort;
|
||||||
|
|
||||||
|
}
|
22
sky-pojo/src/main/java/com/sky/dto/CategoryPageQueryDTO.java
Normal file
22
sky-pojo/src/main/java/com/sky/dto/CategoryPageQueryDTO.java
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
package com.sky.dto;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class CategoryPageQueryDTO implements Serializable {
|
||||||
|
|
||||||
|
//页码
|
||||||
|
private int page;
|
||||||
|
|
||||||
|
//每页记录数
|
||||||
|
private int pageSize;
|
||||||
|
|
||||||
|
//分类名称
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
//分类类型 1菜品分类 2套餐分类
|
||||||
|
private Integer type;
|
||||||
|
|
||||||
|
}
|
21
sky-pojo/src/main/java/com/sky/dto/DataOverViewQueryDTO.java
Normal file
21
sky-pojo/src/main/java/com/sky/dto/DataOverViewQueryDTO.java
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
package com.sky.dto;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Builder
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class DataOverViewQueryDTO implements Serializable {
|
||||||
|
|
||||||
|
private LocalDateTime begin;
|
||||||
|
|
||||||
|
private LocalDateTime end;
|
||||||
|
|
||||||
|
}
|
29
sky-pojo/src/main/java/com/sky/dto/DishDTO.java
Normal file
29
sky-pojo/src/main/java/com/sky/dto/DishDTO.java
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
package com.sky.dto;
|
||||||
|
|
||||||
|
import com.sky.entity.DishFlavor;
|
||||||
|
import lombok.Data;
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class DishDTO implements Serializable {
|
||||||
|
|
||||||
|
private Long id;
|
||||||
|
//菜品名称
|
||||||
|
private String name;
|
||||||
|
//菜品分类id
|
||||||
|
private Long categoryId;
|
||||||
|
//菜品价格
|
||||||
|
private BigDecimal price;
|
||||||
|
//图片
|
||||||
|
private String image;
|
||||||
|
//描述信息
|
||||||
|
private String description;
|
||||||
|
//0 停售 1 起售
|
||||||
|
private Integer status;
|
||||||
|
//口味
|
||||||
|
private List<DishFlavor> flavors = new ArrayList<>();
|
||||||
|
|
||||||
|
}
|
22
sky-pojo/src/main/java/com/sky/dto/DishPageQueryDTO.java
Normal file
22
sky-pojo/src/main/java/com/sky/dto/DishPageQueryDTO.java
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
package com.sky.dto;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class DishPageQueryDTO implements Serializable {
|
||||||
|
|
||||||
|
private int page;
|
||||||
|
|
||||||
|
private int pageSize;
|
||||||
|
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
//分类id
|
||||||
|
private Integer categoryId;
|
||||||
|
|
||||||
|
//状态 0表示禁用 1表示启用
|
||||||
|
private Integer status;
|
||||||
|
|
||||||
|
}
|
22
sky-pojo/src/main/java/com/sky/dto/EmployeeDTO.java
Normal file
22
sky-pojo/src/main/java/com/sky/dto/EmployeeDTO.java
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
package com.sky.dto;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class EmployeeDTO implements Serializable {
|
||||||
|
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
private String username;
|
||||||
|
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
private String phone;
|
||||||
|
|
||||||
|
private String sex;
|
||||||
|
|
||||||
|
private String idNumber;
|
||||||
|
|
||||||
|
}
|
19
sky-pojo/src/main/java/com/sky/dto/EmployeeLoginDTO.java
Normal file
19
sky-pojo/src/main/java/com/sky/dto/EmployeeLoginDTO.java
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
package com.sky.dto;
|
||||||
|
|
||||||
|
import io.swagger.annotations.ApiModel;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@ApiModel(description = "员工登录时传递的数据模型")
|
||||||
|
public class EmployeeLoginDTO implements Serializable {
|
||||||
|
|
||||||
|
@ApiModelProperty("用户名")
|
||||||
|
private String username;
|
||||||
|
|
||||||
|
@ApiModelProperty("密码")
|
||||||
|
private String password;
|
||||||
|
|
||||||
|
}
|
19
sky-pojo/src/main/java/com/sky/dto/EmployeePageQueryDTO.java
Normal file
19
sky-pojo/src/main/java/com/sky/dto/EmployeePageQueryDTO.java
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
package com.sky.dto;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class EmployeePageQueryDTO implements Serializable {
|
||||||
|
|
||||||
|
//员工姓名
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
//页码
|
||||||
|
private int page;
|
||||||
|
|
||||||
|
//每页显示记录数
|
||||||
|
private int pageSize;
|
||||||
|
|
||||||
|
}
|
20
sky-pojo/src/main/java/com/sky/dto/GoodsSalesDTO.java
Normal file
20
sky-pojo/src/main/java/com/sky/dto/GoodsSalesDTO.java
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
package com.sky.dto;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@AllArgsConstructor
|
||||||
|
@NoArgsConstructor
|
||||||
|
@Builder
|
||||||
|
public class GoodsSalesDTO implements Serializable {
|
||||||
|
//商品名称
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
//销量
|
||||||
|
private Integer number;
|
||||||
|
}
|
14
sky-pojo/src/main/java/com/sky/dto/OrdersCancelDTO.java
Normal file
14
sky-pojo/src/main/java/com/sky/dto/OrdersCancelDTO.java
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
package com.sky.dto;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class OrdersCancelDTO implements Serializable {
|
||||||
|
|
||||||
|
private Long id;
|
||||||
|
//订单取消原因
|
||||||
|
private String cancelReason;
|
||||||
|
|
||||||
|
}
|
14
sky-pojo/src/main/java/com/sky/dto/OrdersConfirmDTO.java
Normal file
14
sky-pojo/src/main/java/com/sky/dto/OrdersConfirmDTO.java
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
package com.sky.dto;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class OrdersConfirmDTO implements Serializable {
|
||||||
|
|
||||||
|
private Long id;
|
||||||
|
//订单状态 1待付款 2待接单 3 已接单 4 派送中 5 已完成 6 已取消 7 退款
|
||||||
|
private Integer status;
|
||||||
|
|
||||||
|
}
|
56
sky-pojo/src/main/java/com/sky/dto/OrdersDTO.java
Normal file
56
sky-pojo/src/main/java/com/sky/dto/OrdersDTO.java
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
package com.sky.dto;
|
||||||
|
|
||||||
|
import com.sky.entity.OrderDetail;
|
||||||
|
import lombok.Data;
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class OrdersDTO implements Serializable {
|
||||||
|
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
//订单号
|
||||||
|
private String number;
|
||||||
|
|
||||||
|
//订单状态 1待付款,2待派送,3已派送,4已完成,5已取消
|
||||||
|
private Integer status;
|
||||||
|
|
||||||
|
//下单用户id
|
||||||
|
private Long userId;
|
||||||
|
|
||||||
|
//地址id
|
||||||
|
private Long addressBookId;
|
||||||
|
|
||||||
|
//下单时间
|
||||||
|
private LocalDateTime orderTime;
|
||||||
|
|
||||||
|
//结账时间
|
||||||
|
private LocalDateTime checkoutTime;
|
||||||
|
|
||||||
|
//支付方式 1微信,2支付宝
|
||||||
|
private Integer payMethod;
|
||||||
|
|
||||||
|
//实收金额
|
||||||
|
private BigDecimal amount;
|
||||||
|
|
||||||
|
//备注
|
||||||
|
private String remark;
|
||||||
|
|
||||||
|
//用户名
|
||||||
|
private String userName;
|
||||||
|
|
||||||
|
//手机号
|
||||||
|
private String phone;
|
||||||
|
|
||||||
|
//地址
|
||||||
|
private String address;
|
||||||
|
|
||||||
|
//收货人
|
||||||
|
private String consignee;
|
||||||
|
|
||||||
|
private List<OrderDetail> orderDetails;
|
||||||
|
|
||||||
|
}
|
30
sky-pojo/src/main/java/com/sky/dto/OrdersPageQueryDTO.java
Normal file
30
sky-pojo/src/main/java/com/sky/dto/OrdersPageQueryDTO.java
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
package com.sky.dto;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
import org.springframework.format.annotation.DateTimeFormat;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class OrdersPageQueryDTO implements Serializable {
|
||||||
|
|
||||||
|
private int page;
|
||||||
|
|
||||||
|
private int pageSize;
|
||||||
|
|
||||||
|
private String number;
|
||||||
|
|
||||||
|
private String phone;
|
||||||
|
|
||||||
|
private Integer status;
|
||||||
|
|
||||||
|
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
|
private LocalDateTime beginTime;
|
||||||
|
|
||||||
|
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
|
private LocalDateTime endTime;
|
||||||
|
|
||||||
|
private Long userId;
|
||||||
|
|
||||||
|
}
|
14
sky-pojo/src/main/java/com/sky/dto/OrdersPaymentDTO.java
Normal file
14
sky-pojo/src/main/java/com/sky/dto/OrdersPaymentDTO.java
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
package com.sky.dto;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class OrdersPaymentDTO implements Serializable {
|
||||||
|
//订单号
|
||||||
|
private String orderNumber;
|
||||||
|
|
||||||
|
//付款方式
|
||||||
|
private Integer payMethod;
|
||||||
|
|
||||||
|
}
|
15
sky-pojo/src/main/java/com/sky/dto/OrdersRejectionDTO.java
Normal file
15
sky-pojo/src/main/java/com/sky/dto/OrdersRejectionDTO.java
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
package com.sky.dto;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class OrdersRejectionDTO implements Serializable {
|
||||||
|
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
//订单拒绝原因
|
||||||
|
private String rejectionReason;
|
||||||
|
|
||||||
|
}
|
31
sky-pojo/src/main/java/com/sky/dto/OrdersSubmitDTO.java
Normal file
31
sky-pojo/src/main/java/com/sky/dto/OrdersSubmitDTO.java
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
package com.sky.dto;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class OrdersSubmitDTO implements Serializable {
|
||||||
|
//地址簿id
|
||||||
|
private Long addressBookId;
|
||||||
|
//付款方式
|
||||||
|
private int payMethod;
|
||||||
|
//备注
|
||||||
|
private String remark;
|
||||||
|
//预计送达时间
|
||||||
|
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
|
private LocalDateTime estimatedDeliveryTime;
|
||||||
|
//配送状态 1立即送出 0选择具体时间
|
||||||
|
private Integer deliveryStatus;
|
||||||
|
//餐具数量
|
||||||
|
private Integer tablewareNumber;
|
||||||
|
//餐具数量状态 1按餐量提供 0选择具体数量
|
||||||
|
private Integer tablewareStatus;
|
||||||
|
//打包费
|
||||||
|
private Integer packAmount;
|
||||||
|
//总金额
|
||||||
|
private BigDecimal amount;
|
||||||
|
}
|
19
sky-pojo/src/main/java/com/sky/dto/PasswordEditDTO.java
Normal file
19
sky-pojo/src/main/java/com/sky/dto/PasswordEditDTO.java
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
package com.sky.dto;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class PasswordEditDTO implements Serializable {
|
||||||
|
|
||||||
|
//员工id
|
||||||
|
private Long empId;
|
||||||
|
|
||||||
|
//旧密码
|
||||||
|
private String oldPassword;
|
||||||
|
|
||||||
|
//新密码
|
||||||
|
private String newPassword;
|
||||||
|
|
||||||
|
}
|
36
sky-pojo/src/main/java/com/sky/dto/SetmealDTO.java
Normal file
36
sky-pojo/src/main/java/com/sky/dto/SetmealDTO.java
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
package com.sky.dto;
|
||||||
|
|
||||||
|
import com.sky.entity.SetmealDish;
|
||||||
|
import lombok.Data;
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class SetmealDTO implements Serializable {
|
||||||
|
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
//分类id
|
||||||
|
private Long categoryId;
|
||||||
|
|
||||||
|
//套餐名称
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
//套餐价格
|
||||||
|
private BigDecimal price;
|
||||||
|
|
||||||
|
//状态 0:停用 1:启用
|
||||||
|
private Integer status;
|
||||||
|
|
||||||
|
//描述信息
|
||||||
|
private String description;
|
||||||
|
|
||||||
|
//图片
|
||||||
|
private String image;
|
||||||
|
|
||||||
|
//套餐菜品关系
|
||||||
|
private List<SetmealDish> setmealDishes = new ArrayList<>();
|
||||||
|
|
||||||
|
}
|
22
sky-pojo/src/main/java/com/sky/dto/SetmealPageQueryDTO.java
Normal file
22
sky-pojo/src/main/java/com/sky/dto/SetmealPageQueryDTO.java
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
package com.sky.dto;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class SetmealPageQueryDTO implements Serializable {
|
||||||
|
|
||||||
|
private int page;
|
||||||
|
|
||||||
|
private int pageSize;
|
||||||
|
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
//分类id
|
||||||
|
private Integer categoryId;
|
||||||
|
|
||||||
|
//状态 0表示禁用 1表示启用
|
||||||
|
private Integer status;
|
||||||
|
|
||||||
|
}
|
13
sky-pojo/src/main/java/com/sky/dto/ShoppingCartDTO.java
Normal file
13
sky-pojo/src/main/java/com/sky/dto/ShoppingCartDTO.java
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
package com.sky.dto;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class ShoppingCartDTO implements Serializable {
|
||||||
|
|
||||||
|
private Long dishId;
|
||||||
|
private Long setmealId;
|
||||||
|
private String dishFlavor;
|
||||||
|
|
||||||
|
}
|
15
sky-pojo/src/main/java/com/sky/dto/UserLoginDTO.java
Normal file
15
sky-pojo/src/main/java/com/sky/dto/UserLoginDTO.java
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
package com.sky.dto;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* C端用户登录
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class UserLoginDTO implements Serializable {
|
||||||
|
|
||||||
|
private String code;
|
||||||
|
|
||||||
|
}
|
61
sky-pojo/src/main/java/com/sky/entity/AddressBook.java
Normal file
61
sky-pojo/src/main/java/com/sky/entity/AddressBook.java
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
package com.sky.entity;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 地址簿
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@Builder
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class AddressBook implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
//用户id
|
||||||
|
private Long userId;
|
||||||
|
|
||||||
|
//收货人
|
||||||
|
private String consignee;
|
||||||
|
|
||||||
|
//手机号
|
||||||
|
private String phone;
|
||||||
|
|
||||||
|
//性别 0 女 1 男
|
||||||
|
private String sex;
|
||||||
|
|
||||||
|
//省级区划编号
|
||||||
|
private String provinceCode;
|
||||||
|
|
||||||
|
//省级名称
|
||||||
|
private String provinceName;
|
||||||
|
|
||||||
|
//市级区划编号
|
||||||
|
private String cityCode;
|
||||||
|
|
||||||
|
//市级名称
|
||||||
|
private String cityName;
|
||||||
|
|
||||||
|
//区级区划编号
|
||||||
|
private String districtCode;
|
||||||
|
|
||||||
|
//区级名称
|
||||||
|
private String districtName;
|
||||||
|
|
||||||
|
//详细地址
|
||||||
|
private String detail;
|
||||||
|
|
||||||
|
//标签
|
||||||
|
private String label;
|
||||||
|
|
||||||
|
//是否默认 0否 1是
|
||||||
|
private Integer isDefault;
|
||||||
|
}
|
43
sky-pojo/src/main/java/com/sky/entity/Category.java
Normal file
43
sky-pojo/src/main/java/com/sky/entity/Category.java
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
package com.sky.entity;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Builder
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class Category implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
//类型: 1菜品分类 2套餐分类
|
||||||
|
private Integer type;
|
||||||
|
|
||||||
|
//分类名称
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
//顺序
|
||||||
|
private Integer sort;
|
||||||
|
|
||||||
|
//分类状态 0标识禁用 1表示启用
|
||||||
|
private Integer status;
|
||||||
|
|
||||||
|
//创建时间
|
||||||
|
private LocalDateTime createTime;
|
||||||
|
|
||||||
|
//更新时间
|
||||||
|
private LocalDateTime updateTime;
|
||||||
|
|
||||||
|
//创建人
|
||||||
|
private Long createUser;
|
||||||
|
|
||||||
|
//修改人
|
||||||
|
private Long updateUser;
|
||||||
|
}
|
50
sky-pojo/src/main/java/com/sky/entity/Dish.java
Normal file
50
sky-pojo/src/main/java/com/sky/entity/Dish.java
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
package com.sky.entity;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 菜品
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@Builder
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class Dish implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
//菜品名称
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
//菜品分类id
|
||||||
|
private Long categoryId;
|
||||||
|
|
||||||
|
//菜品价格
|
||||||
|
private BigDecimal price;
|
||||||
|
|
||||||
|
//图片
|
||||||
|
private String image;
|
||||||
|
|
||||||
|
//描述信息
|
||||||
|
private String description;
|
||||||
|
|
||||||
|
//0 停售 1 起售
|
||||||
|
private Integer status;
|
||||||
|
|
||||||
|
private LocalDateTime createTime;
|
||||||
|
|
||||||
|
private LocalDateTime updateTime;
|
||||||
|
|
||||||
|
private Long createUser;
|
||||||
|
|
||||||
|
private Long updateUser;
|
||||||
|
|
||||||
|
}
|
31
sky-pojo/src/main/java/com/sky/entity/DishFlavor.java
Normal file
31
sky-pojo/src/main/java/com/sky/entity/DishFlavor.java
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
package com.sky.entity;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 菜品口味
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@Builder
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class DishFlavor implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
private Long id;
|
||||||
|
//菜品id
|
||||||
|
private Long dishId;
|
||||||
|
|
||||||
|
//口味名称
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
//口味数据list
|
||||||
|
private String value;
|
||||||
|
|
||||||
|
}
|
45
sky-pojo/src/main/java/com/sky/entity/Employee.java
Normal file
45
sky-pojo/src/main/java/com/sky/entity/Employee.java
Normal file
@ -0,0 +1,45 @@
|
|||||||
|
package com.sky.entity;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Builder
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class Employee implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
private String username;
|
||||||
|
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
private String password;
|
||||||
|
|
||||||
|
private String phone;
|
||||||
|
|
||||||
|
private String sex;
|
||||||
|
|
||||||
|
private String idNumber;
|
||||||
|
|
||||||
|
private Integer status;
|
||||||
|
|
||||||
|
//@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
|
private LocalDateTime createTime;
|
||||||
|
|
||||||
|
//@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
|
private LocalDateTime updateTime;
|
||||||
|
|
||||||
|
private Long createUser;
|
||||||
|
|
||||||
|
private Long updateUser;
|
||||||
|
|
||||||
|
}
|
47
sky-pojo/src/main/java/com/sky/entity/OrderDetail.java
Normal file
47
sky-pojo/src/main/java/com/sky/entity/OrderDetail.java
Normal file
@ -0,0 +1,47 @@
|
|||||||
|
package com.sky.entity;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 订单明细
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@Builder
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class OrderDetail implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
//名称
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
//订单id
|
||||||
|
private Long orderId;
|
||||||
|
|
||||||
|
//菜品id
|
||||||
|
private Long dishId;
|
||||||
|
|
||||||
|
//套餐id
|
||||||
|
private Long setmealId;
|
||||||
|
|
||||||
|
//口味
|
||||||
|
private String dishFlavor;
|
||||||
|
|
||||||
|
//数量
|
||||||
|
private Integer number;
|
||||||
|
|
||||||
|
//金额
|
||||||
|
private BigDecimal amount;
|
||||||
|
|
||||||
|
//图片
|
||||||
|
private String image;
|
||||||
|
}
|
110
sky-pojo/src/main/java/com/sky/entity/Orders.java
Normal file
110
sky-pojo/src/main/java/com/sky/entity/Orders.java
Normal file
@ -0,0 +1,110 @@
|
|||||||
|
package com.sky.entity;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 订单
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@Builder
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class Orders implements Serializable {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 订单状态 1待付款 2待接单 3已接单 4派送中 5已完成 6已取消
|
||||||
|
*/
|
||||||
|
public static final Integer PENDING_PAYMENT = 1;
|
||||||
|
public static final Integer TO_BE_CONFIRMED = 2;
|
||||||
|
public static final Integer CONFIRMED = 3;
|
||||||
|
public static final Integer DELIVERY_IN_PROGRESS = 4;
|
||||||
|
public static final Integer COMPLETED = 5;
|
||||||
|
public static final Integer CANCELLED = 6;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 支付状态 0未支付 1已支付 2退款
|
||||||
|
*/
|
||||||
|
public static final Integer UN_PAID = 0;
|
||||||
|
public static final Integer PAID = 1;
|
||||||
|
public static final Integer REFUND = 2;
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
//订单号
|
||||||
|
private String number;
|
||||||
|
|
||||||
|
//订单状态 1待付款 2待接单 3已接单 4派送中 5已完成 6已取消 7退款
|
||||||
|
private Integer status;
|
||||||
|
|
||||||
|
//下单用户id
|
||||||
|
private Long userId;
|
||||||
|
|
||||||
|
//地址id
|
||||||
|
private Long addressBookId;
|
||||||
|
|
||||||
|
//下单时间
|
||||||
|
private LocalDateTime orderTime;
|
||||||
|
|
||||||
|
//结账时间
|
||||||
|
private LocalDateTime checkoutTime;
|
||||||
|
|
||||||
|
//支付方式 1微信,2支付宝
|
||||||
|
private Integer payMethod;
|
||||||
|
|
||||||
|
//支付状态 0未支付 1已支付 2退款
|
||||||
|
private Integer payStatus;
|
||||||
|
|
||||||
|
//实收金额
|
||||||
|
private BigDecimal amount;
|
||||||
|
|
||||||
|
//备注
|
||||||
|
private String remark;
|
||||||
|
|
||||||
|
//用户名
|
||||||
|
private String userName;
|
||||||
|
|
||||||
|
//手机号
|
||||||
|
private String phone;
|
||||||
|
|
||||||
|
//地址
|
||||||
|
private String address;
|
||||||
|
|
||||||
|
//收货人
|
||||||
|
private String consignee;
|
||||||
|
|
||||||
|
//订单取消原因
|
||||||
|
private String cancelReason;
|
||||||
|
|
||||||
|
//订单拒绝原因
|
||||||
|
private String rejectionReason;
|
||||||
|
|
||||||
|
//订单取消时间
|
||||||
|
private LocalDateTime cancelTime;
|
||||||
|
|
||||||
|
//预计送达时间
|
||||||
|
private LocalDateTime estimatedDeliveryTime;
|
||||||
|
|
||||||
|
//配送状态 1立即送出 0选择具体时间
|
||||||
|
private Integer deliveryStatus;
|
||||||
|
|
||||||
|
//送达时间
|
||||||
|
private LocalDateTime deliveryTime;
|
||||||
|
|
||||||
|
//打包费
|
||||||
|
private int packAmount;
|
||||||
|
|
||||||
|
//餐具数量
|
||||||
|
private int tablewareNumber;
|
||||||
|
|
||||||
|
//餐具数量状态 1按餐量提供 0选择具体数量
|
||||||
|
private Integer tablewareStatus;
|
||||||
|
}
|
49
sky-pojo/src/main/java/com/sky/entity/Setmeal.java
Normal file
49
sky-pojo/src/main/java/com/sky/entity/Setmeal.java
Normal file
@ -0,0 +1,49 @@
|
|||||||
|
package com.sky.entity;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 套餐
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@Builder
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class Setmeal implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
//分类id
|
||||||
|
private Long categoryId;
|
||||||
|
|
||||||
|
//套餐名称
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
//套餐价格
|
||||||
|
private BigDecimal price;
|
||||||
|
|
||||||
|
//状态 0:停用 1:启用
|
||||||
|
private Integer status;
|
||||||
|
|
||||||
|
//描述信息
|
||||||
|
private String description;
|
||||||
|
|
||||||
|
//图片
|
||||||
|
private String image;
|
||||||
|
|
||||||
|
private LocalDateTime createTime;
|
||||||
|
|
||||||
|
private LocalDateTime updateTime;
|
||||||
|
|
||||||
|
private Long createUser;
|
||||||
|
|
||||||
|
private Long updateUser;
|
||||||
|
}
|
38
sky-pojo/src/main/java/com/sky/entity/SetmealDish.java
Normal file
38
sky-pojo/src/main/java/com/sky/entity/SetmealDish.java
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
package com.sky.entity;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 套餐菜品关系
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@Builder
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class SetmealDish implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
//套餐id
|
||||||
|
private Long setmealId;
|
||||||
|
|
||||||
|
//菜品id
|
||||||
|
private Long dishId;
|
||||||
|
|
||||||
|
//菜品名称 (冗余字段)
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
//菜品原价
|
||||||
|
private BigDecimal price;
|
||||||
|
|
||||||
|
//份数
|
||||||
|
private Integer copies;
|
||||||
|
}
|
50
sky-pojo/src/main/java/com/sky/entity/ShoppingCart.java
Normal file
50
sky-pojo/src/main/java/com/sky/entity/ShoppingCart.java
Normal file
@ -0,0 +1,50 @@
|
|||||||
|
package com.sky.entity;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 购物车
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@Builder
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class ShoppingCart implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
//名称
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
//用户id
|
||||||
|
private Long userId;
|
||||||
|
|
||||||
|
//菜品id
|
||||||
|
private Long dishId;
|
||||||
|
|
||||||
|
//套餐id
|
||||||
|
private Long setmealId;
|
||||||
|
|
||||||
|
//口味
|
||||||
|
private String dishFlavor;
|
||||||
|
|
||||||
|
//数量
|
||||||
|
private Integer number;
|
||||||
|
|
||||||
|
//金额
|
||||||
|
private BigDecimal amount;
|
||||||
|
|
||||||
|
//图片
|
||||||
|
private String image;
|
||||||
|
|
||||||
|
private LocalDateTime createTime;
|
||||||
|
}
|
42
sky-pojo/src/main/java/com/sky/entity/User.java
Normal file
42
sky-pojo/src/main/java/com/sky/entity/User.java
Normal file
@ -0,0 +1,42 @@
|
|||||||
|
package com.sky.entity;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.time.LocalDate;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Builder
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class User implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
//微信用户唯一标识
|
||||||
|
private String openid;
|
||||||
|
|
||||||
|
//姓名
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
//手机号
|
||||||
|
private String phone;
|
||||||
|
|
||||||
|
//性别 0 女 1 男
|
||||||
|
private String sex;
|
||||||
|
|
||||||
|
//身份证号
|
||||||
|
private String idNumber;
|
||||||
|
|
||||||
|
//头像
|
||||||
|
private String avatar;
|
||||||
|
|
||||||
|
//注册时间
|
||||||
|
private LocalDateTime createTime;
|
||||||
|
}
|
29
sky-pojo/src/main/java/com/sky/vo/BusinessDataVO.java
Normal file
29
sky-pojo/src/main/java/com/sky/vo/BusinessDataVO.java
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
package com.sky.vo;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 数据概览
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@Builder
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class BusinessDataVO implements Serializable {
|
||||||
|
|
||||||
|
private Double turnover;//营业额
|
||||||
|
|
||||||
|
private Integer validOrderCount;//有效订单数
|
||||||
|
|
||||||
|
private Double orderCompletionRate;//订单完成率
|
||||||
|
|
||||||
|
private Double unitPrice;//平均客单价
|
||||||
|
|
||||||
|
private Integer newUsers;//新增用户数
|
||||||
|
|
||||||
|
}
|
27
sky-pojo/src/main/java/com/sky/vo/DishItemVO.java
Normal file
27
sky-pojo/src/main/java/com/sky/vo/DishItemVO.java
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
package com.sky.vo;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Builder
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class DishItemVO implements Serializable {
|
||||||
|
|
||||||
|
//菜品名称
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
//份数
|
||||||
|
private Integer copies;
|
||||||
|
|
||||||
|
//菜品图片
|
||||||
|
private String image;
|
||||||
|
|
||||||
|
//菜品描述
|
||||||
|
private String description;
|
||||||
|
}
|
23
sky-pojo/src/main/java/com/sky/vo/DishOverViewVO.java
Normal file
23
sky-pojo/src/main/java/com/sky/vo/DishOverViewVO.java
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
package com.sky.vo;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 菜品总览
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@Builder
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class DishOverViewVO implements Serializable {
|
||||||
|
// 已启售数量
|
||||||
|
private Integer sold;
|
||||||
|
|
||||||
|
// 已停售数量
|
||||||
|
private Integer discontinued;
|
||||||
|
}
|
41
sky-pojo/src/main/java/com/sky/vo/DishVO.java
Normal file
41
sky-pojo/src/main/java/com/sky/vo/DishVO.java
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
package com.sky.vo;
|
||||||
|
|
||||||
|
import com.sky.entity.DishFlavor;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Builder
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class DishVO implements Serializable {
|
||||||
|
|
||||||
|
private Long id;
|
||||||
|
//菜品名称
|
||||||
|
private String name;
|
||||||
|
//菜品分类id
|
||||||
|
private Long categoryId;
|
||||||
|
//菜品价格
|
||||||
|
private BigDecimal price;
|
||||||
|
//图片
|
||||||
|
private String image;
|
||||||
|
//描述信息
|
||||||
|
private String description;
|
||||||
|
//0 停售 1 起售
|
||||||
|
private Integer status;
|
||||||
|
//更新时间
|
||||||
|
private LocalDateTime updateTime;
|
||||||
|
//分类名称
|
||||||
|
private String categoryName;
|
||||||
|
//菜品关联的口味
|
||||||
|
private List<DishFlavor> flavors = new ArrayList<>();
|
||||||
|
|
||||||
|
//private Integer copies;
|
||||||
|
}
|
31
sky-pojo/src/main/java/com/sky/vo/EmployeeLoginVO.java
Normal file
31
sky-pojo/src/main/java/com/sky/vo/EmployeeLoginVO.java
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
package com.sky.vo;
|
||||||
|
|
||||||
|
import io.swagger.annotations.ApiModel;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Builder
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
@ApiModel(description = "员工登录返回的数据格式")
|
||||||
|
public class EmployeeLoginVO implements Serializable {
|
||||||
|
|
||||||
|
@ApiModelProperty("主键值")
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
@ApiModelProperty("用户名")
|
||||||
|
private String userName;
|
||||||
|
|
||||||
|
@ApiModelProperty("姓名")
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
@ApiModelProperty("jwt令牌")
|
||||||
|
private String token;
|
||||||
|
|
||||||
|
}
|
32
sky-pojo/src/main/java/com/sky/vo/OrderOverViewVO.java
Normal file
32
sky-pojo/src/main/java/com/sky/vo/OrderOverViewVO.java
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
package com.sky.vo;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 订单概览数据
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@Builder
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class OrderOverViewVO implements Serializable {
|
||||||
|
//待接单数量
|
||||||
|
private Integer waitingOrders;
|
||||||
|
|
||||||
|
//待派送数量
|
||||||
|
private Integer deliveredOrders;
|
||||||
|
|
||||||
|
//已完成数量
|
||||||
|
private Integer completedOrders;
|
||||||
|
|
||||||
|
//已取消数量
|
||||||
|
private Integer cancelledOrders;
|
||||||
|
|
||||||
|
//全部订单
|
||||||
|
private Integer allOrders;
|
||||||
|
}
|
23
sky-pojo/src/main/java/com/sky/vo/OrderPaymentVO.java
Normal file
23
sky-pojo/src/main/java/com/sky/vo/OrderPaymentVO.java
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
package com.sky.vo;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Builder
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class OrderPaymentVO implements Serializable {
|
||||||
|
|
||||||
|
private String nonceStr; //随机字符串
|
||||||
|
private String paySign; //签名
|
||||||
|
private String timeStamp; //时间戳
|
||||||
|
private String signType; //签名算法
|
||||||
|
private String packageStr; //统一下单接口返回的 prepay_id 参数值
|
||||||
|
|
||||||
|
}
|
34
sky-pojo/src/main/java/com/sky/vo/OrderReportVO.java
Normal file
34
sky-pojo/src/main/java/com/sky/vo/OrderReportVO.java
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
package com.sky.vo;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Builder
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class OrderReportVO implements Serializable {
|
||||||
|
|
||||||
|
//日期,以逗号分隔,例如:2022-10-01,2022-10-02,2022-10-03
|
||||||
|
private String dateList;
|
||||||
|
|
||||||
|
//每日订单数,以逗号分隔,例如:260,210,215
|
||||||
|
private String orderCountList;
|
||||||
|
|
||||||
|
//每日有效订单数,以逗号分隔,例如:20,21,10
|
||||||
|
private String validOrderCountList;
|
||||||
|
|
||||||
|
//订单总数
|
||||||
|
private Integer totalOrderCount;
|
||||||
|
|
||||||
|
//有效订单数
|
||||||
|
private Integer validOrderCount;
|
||||||
|
|
||||||
|
//订单完成率
|
||||||
|
private Double orderCompletionRate;
|
||||||
|
|
||||||
|
}
|
16
sky-pojo/src/main/java/com/sky/vo/OrderStatisticsVO.java
Normal file
16
sky-pojo/src/main/java/com/sky/vo/OrderStatisticsVO.java
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
package com.sky.vo;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class OrderStatisticsVO implements Serializable {
|
||||||
|
//待接单数量
|
||||||
|
private Integer toBeConfirmed;
|
||||||
|
|
||||||
|
//待派送数量
|
||||||
|
private Integer confirmed;
|
||||||
|
|
||||||
|
//派送中数量
|
||||||
|
private Integer deliveryInProgress;
|
||||||
|
}
|
25
sky-pojo/src/main/java/com/sky/vo/OrderSubmitVO.java
Normal file
25
sky-pojo/src/main/java/com/sky/vo/OrderSubmitVO.java
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
package com.sky.vo;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Builder
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class OrderSubmitVO implements Serializable {
|
||||||
|
//订单id
|
||||||
|
private Long id;
|
||||||
|
//订单号
|
||||||
|
private String orderNumber;
|
||||||
|
//订单金额
|
||||||
|
private BigDecimal orderAmount;
|
||||||
|
//下单时间
|
||||||
|
private LocalDateTime orderTime;
|
||||||
|
}
|
22
sky-pojo/src/main/java/com/sky/vo/OrderVO.java
Normal file
22
sky-pojo/src/main/java/com/sky/vo/OrderVO.java
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
package com.sky.vo;
|
||||||
|
|
||||||
|
import com.sky.entity.OrderDetail;
|
||||||
|
import com.sky.entity.Orders;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class OrderVO extends Orders implements Serializable {
|
||||||
|
|
||||||
|
//订单菜品信息
|
||||||
|
private String orderDishes;
|
||||||
|
|
||||||
|
//订单详情
|
||||||
|
private List<OrderDetail> orderDetailList;
|
||||||
|
|
||||||
|
}
|
22
sky-pojo/src/main/java/com/sky/vo/SalesTop10ReportVO.java
Normal file
22
sky-pojo/src/main/java/com/sky/vo/SalesTop10ReportVO.java
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
package com.sky.vo;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Builder
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class SalesTop10ReportVO implements Serializable {
|
||||||
|
|
||||||
|
//商品名称列表,以逗号分隔,例如:鱼香肉丝,宫保鸡丁,水煮鱼
|
||||||
|
private String nameList;
|
||||||
|
|
||||||
|
//销量列表,以逗号分隔,例如:260,215,200
|
||||||
|
private String numberList;
|
||||||
|
|
||||||
|
}
|
23
sky-pojo/src/main/java/com/sky/vo/SetmealOverViewVO.java
Normal file
23
sky-pojo/src/main/java/com/sky/vo/SetmealOverViewVO.java
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
package com.sky.vo;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 套餐总览
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@Builder
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class SetmealOverViewVO implements Serializable {
|
||||||
|
// 已启售数量
|
||||||
|
private Integer sold;
|
||||||
|
|
||||||
|
// 已停售数量
|
||||||
|
private Integer discontinued;
|
||||||
|
}
|
48
sky-pojo/src/main/java/com/sky/vo/SetmealVO.java
Normal file
48
sky-pojo/src/main/java/com/sky/vo/SetmealVO.java
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
package com.sky.vo;
|
||||||
|
|
||||||
|
import com.sky.entity.SetmealDish;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Builder
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class SetmealVO implements Serializable {
|
||||||
|
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
//分类id
|
||||||
|
private Long categoryId;
|
||||||
|
|
||||||
|
//套餐名称
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
//套餐价格
|
||||||
|
private BigDecimal price;
|
||||||
|
|
||||||
|
//状态 0:停用 1:启用
|
||||||
|
private Integer status;
|
||||||
|
|
||||||
|
//描述信息
|
||||||
|
private String description;
|
||||||
|
|
||||||
|
//图片
|
||||||
|
private String image;
|
||||||
|
|
||||||
|
//更新时间
|
||||||
|
private LocalDateTime updateTime;
|
||||||
|
|
||||||
|
//分类名称
|
||||||
|
private String categoryName;
|
||||||
|
|
||||||
|
//套餐和菜品的关联关系
|
||||||
|
private List<SetmealDish> setmealDishes = new ArrayList<>();
|
||||||
|
}
|
22
sky-pojo/src/main/java/com/sky/vo/TurnoverReportVO.java
Normal file
22
sky-pojo/src/main/java/com/sky/vo/TurnoverReportVO.java
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
package com.sky.vo;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Builder
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class TurnoverReportVO implements Serializable {
|
||||||
|
|
||||||
|
//日期,以逗号分隔,例如:2022-10-01,2022-10-02,2022-10-03
|
||||||
|
private String dateList;
|
||||||
|
|
||||||
|
//营业额,以逗号分隔,例如:406.0,1520.0,75.0
|
||||||
|
private String turnoverList;
|
||||||
|
|
||||||
|
}
|
20
sky-pojo/src/main/java/com/sky/vo/UserLoginVO.java
Normal file
20
sky-pojo/src/main/java/com/sky/vo/UserLoginVO.java
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
package com.sky.vo;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Builder
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class UserLoginVO implements Serializable {
|
||||||
|
|
||||||
|
private Long id;
|
||||||
|
private String openid;
|
||||||
|
private String token;
|
||||||
|
|
||||||
|
}
|
25
sky-pojo/src/main/java/com/sky/vo/UserReportVO.java
Normal file
25
sky-pojo/src/main/java/com/sky/vo/UserReportVO.java
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
package com.sky.vo;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Builder;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Builder
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class UserReportVO implements Serializable {
|
||||||
|
|
||||||
|
//日期,以逗号分隔,例如:2022-10-01,2022-10-02,2022-10-03
|
||||||
|
private String dateList;
|
||||||
|
|
||||||
|
//用户总量,以逗号分隔,例如:200,210,220
|
||||||
|
private String totalUserList;
|
||||||
|
|
||||||
|
//新增用户,以逗号分隔,例如:20,21,10
|
||||||
|
private String newUserList;
|
||||||
|
|
||||||
|
}
|
129
sky-server/pom.xml
Normal file
129
sky-server/pom.xml
Normal file
@ -0,0 +1,129 @@
|
|||||||
|
<?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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
|
<parent>
|
||||||
|
<artifactId>sky-take-out</artifactId>
|
||||||
|
<groupId>com.sky</groupId>
|
||||||
|
<version>1.0-SNAPSHOT</version>
|
||||||
|
</parent>
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
<artifactId>sky-server</artifactId>
|
||||||
|
<dependencies>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.sky</groupId>
|
||||||
|
<artifactId>sky-common</artifactId>
|
||||||
|
<version>1.0-SNAPSHOT</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.sky</groupId>
|
||||||
|
<artifactId>sky-pojo</artifactId>
|
||||||
|
<version>1.0-SNAPSHOT</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-starter</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-starter-test</artifactId>
|
||||||
|
<scope>test</scope>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-starter-web</artifactId>
|
||||||
|
<scope>compile</scope>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>mysql</groupId>
|
||||||
|
<artifactId>mysql-connector-java</artifactId>
|
||||||
|
<scope>runtime</scope>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.mybatis.spring.boot</groupId>
|
||||||
|
<artifactId>mybatis-spring-boot-starter</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.projectlombok</groupId>
|
||||||
|
<artifactId>lombok</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.alibaba</groupId>
|
||||||
|
<artifactId>fastjson</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.alibaba</groupId>
|
||||||
|
<artifactId>druid-spring-boot-starter</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.github.pagehelper</groupId>
|
||||||
|
<artifactId>pagehelper-spring-boot-starter</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.aspectj</groupId>
|
||||||
|
<artifactId>aspectjrt</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.aspectj</groupId>
|
||||||
|
<artifactId>aspectjweaver</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.github.xiaoymin</groupId>
|
||||||
|
<artifactId>knife4j-spring-boot-starter</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-starter-data-redis</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-starter-cache</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-starter-websocket</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>javax.xml.bind</groupId>
|
||||||
|
<artifactId>jaxb-api</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<!-- poi -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.apache.poi</groupId>
|
||||||
|
<artifactId>poi</artifactId>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.apache.poi</groupId>
|
||||||
|
<artifactId>poi-ooxml</artifactId>
|
||||||
|
</dependency>
|
||||||
|
</dependencies>
|
||||||
|
|
||||||
|
<build>
|
||||||
|
<plugins>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-maven-plugin</artifactId>
|
||||||
|
</plugin>
|
||||||
|
</plugins>
|
||||||
|
</build>
|
||||||
|
|
||||||
|
</project>
|
16
sky-server/src/main/java/com/sky/SkyApplication.java
Normal file
16
sky-server/src/main/java/com/sky/SkyApplication.java
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
package com.sky;
|
||||||
|
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.boot.SpringApplication;
|
||||||
|
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||||
|
import org.springframework.transaction.annotation.EnableTransactionManagement;
|
||||||
|
|
||||||
|
@SpringBootApplication
|
||||||
|
@EnableTransactionManagement //开启注解方式的事务管理
|
||||||
|
@Slf4j
|
||||||
|
public class SkyApplication {
|
||||||
|
public static void main(String[] args) {
|
||||||
|
SpringApplication.run(SkyApplication.class, args);
|
||||||
|
log.info("server started");
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,68 @@
|
|||||||
|
package com.sky.config;
|
||||||
|
|
||||||
|
import com.sky.interceptor.JwtTokenAdminInterceptor;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.context.annotation.Bean;
|
||||||
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
|
||||||
|
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
|
||||||
|
import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;
|
||||||
|
import springfox.documentation.builders.ApiInfoBuilder;
|
||||||
|
import springfox.documentation.builders.PathSelectors;
|
||||||
|
import springfox.documentation.builders.RequestHandlerSelectors;
|
||||||
|
import springfox.documentation.service.ApiInfo;
|
||||||
|
import springfox.documentation.spi.DocumentationType;
|
||||||
|
import springfox.documentation.spring.web.plugins.Docket;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 配置类,注册web层相关组件
|
||||||
|
*/
|
||||||
|
@Configuration
|
||||||
|
@Slf4j
|
||||||
|
public class WebMvcConfiguration extends WebMvcConfigurationSupport {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private JwtTokenAdminInterceptor jwtTokenAdminInterceptor;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 注册自定义拦截器
|
||||||
|
*
|
||||||
|
* @param registry
|
||||||
|
*/
|
||||||
|
protected void addInterceptors(InterceptorRegistry registry) {
|
||||||
|
log.info("开始注册自定义拦截器...");
|
||||||
|
registry.addInterceptor(jwtTokenAdminInterceptor)
|
||||||
|
.addPathPatterns("/admin/**")
|
||||||
|
.excludePathPatterns("/admin/employee/login");
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 通过knife4j生成接口文档
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Bean
|
||||||
|
public Docket docket() {
|
||||||
|
ApiInfo apiInfo = new ApiInfoBuilder()
|
||||||
|
.title("苍穹外卖项目接口文档")
|
||||||
|
.version("2.0")
|
||||||
|
.description("苍穹外卖项目接口文档")
|
||||||
|
.build();
|
||||||
|
Docket docket = new Docket(DocumentationType.SWAGGER_2)
|
||||||
|
.apiInfo(apiInfo)
|
||||||
|
.select()
|
||||||
|
.apis(RequestHandlerSelectors.basePackage("com.sky.controller"))
|
||||||
|
.paths(PathSelectors.any())
|
||||||
|
.build();
|
||||||
|
return docket;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 设置静态资源映射
|
||||||
|
* @param registry
|
||||||
|
*/
|
||||||
|
protected void addResourceHandlers(ResourceHandlerRegistry registry) {
|
||||||
|
registry.addResourceHandler("/doc.html").addResourceLocations("classpath:/META-INF/resources/");
|
||||||
|
registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,74 @@
|
|||||||
|
package com.sky.controller.admin;
|
||||||
|
|
||||||
|
import com.sky.constant.JwtClaimsConstant;
|
||||||
|
import com.sky.dto.EmployeeLoginDTO;
|
||||||
|
import com.sky.entity.Employee;
|
||||||
|
import com.sky.properties.JwtProperties;
|
||||||
|
import com.sky.result.Result;
|
||||||
|
import com.sky.service.EmployeeService;
|
||||||
|
import com.sky.utils.JwtUtil;
|
||||||
|
import com.sky.vo.EmployeeLoginVO;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestBody;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 员工管理
|
||||||
|
*/
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/admin/employee")
|
||||||
|
@Slf4j
|
||||||
|
public class EmployeeController {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private EmployeeService employeeService;
|
||||||
|
@Autowired
|
||||||
|
private JwtProperties jwtProperties;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 登录
|
||||||
|
*
|
||||||
|
* @param employeeLoginDTO
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@PostMapping("/login")
|
||||||
|
public Result<EmployeeLoginVO> login(@RequestBody EmployeeLoginDTO employeeLoginDTO) {
|
||||||
|
log.info("员工登录:{}", employeeLoginDTO);
|
||||||
|
|
||||||
|
Employee employee = employeeService.login(employeeLoginDTO);
|
||||||
|
|
||||||
|
//登录成功后,生成jwt令牌
|
||||||
|
Map<String, Object> claims = new HashMap<>();
|
||||||
|
claims.put(JwtClaimsConstant.EMP_ID, employee.getId());
|
||||||
|
String token = JwtUtil.createJWT(
|
||||||
|
jwtProperties.getAdminSecretKey(),
|
||||||
|
jwtProperties.getAdminTtl(),
|
||||||
|
claims);
|
||||||
|
|
||||||
|
EmployeeLoginVO employeeLoginVO = EmployeeLoginVO.builder()
|
||||||
|
.id(employee.getId())
|
||||||
|
.userName(employee.getUsername())
|
||||||
|
.name(employee.getName())
|
||||||
|
.token(token)
|
||||||
|
.build();
|
||||||
|
|
||||||
|
return Result.success(employeeLoginVO);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 退出
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@PostMapping("/logout")
|
||||||
|
public Result<String> logout() {
|
||||||
|
return Result.success();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,27 @@
|
|||||||
|
package com.sky.handler;
|
||||||
|
|
||||||
|
import com.sky.exception.BaseException;
|
||||||
|
import com.sky.result.Result;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.web.bind.annotation.ExceptionHandler;
|
||||||
|
import org.springframework.web.bind.annotation.RestControllerAdvice;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 全局异常处理器,处理项目中抛出的业务异常
|
||||||
|
*/
|
||||||
|
@RestControllerAdvice
|
||||||
|
@Slf4j
|
||||||
|
public class GlobalExceptionHandler {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 捕获业务异常
|
||||||
|
* @param ex
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@ExceptionHandler
|
||||||
|
public Result exceptionHandler(BaseException ex){
|
||||||
|
log.error("异常信息:{}", ex.getMessage());
|
||||||
|
return Result.error(ex.getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,58 @@
|
|||||||
|
package com.sky.interceptor;
|
||||||
|
|
||||||
|
import com.sky.constant.JwtClaimsConstant;
|
||||||
|
import com.sky.properties.JwtProperties;
|
||||||
|
import com.sky.utils.JwtUtil;
|
||||||
|
import io.jsonwebtoken.Claims;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
import org.springframework.web.method.HandlerMethod;
|
||||||
|
import org.springframework.web.servlet.HandlerInterceptor;
|
||||||
|
import javax.servlet.http.HttpServletRequest;
|
||||||
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* jwt令牌校验的拦截器
|
||||||
|
*/
|
||||||
|
@Component
|
||||||
|
@Slf4j
|
||||||
|
public class JwtTokenAdminInterceptor implements HandlerInterceptor {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private JwtProperties jwtProperties;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 校验jwt
|
||||||
|
*
|
||||||
|
* @param request
|
||||||
|
* @param response
|
||||||
|
* @param handler
|
||||||
|
* @return
|
||||||
|
* @throws Exception
|
||||||
|
*/
|
||||||
|
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
|
||||||
|
//判断当前拦截到的是Controller的方法还是其他资源
|
||||||
|
if (!(handler instanceof HandlerMethod)) {
|
||||||
|
//当前拦截到的不是动态方法,直接放行
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
//1、从请求头中获取令牌
|
||||||
|
String token = request.getHeader(jwtProperties.getAdminTokenName());
|
||||||
|
|
||||||
|
//2、校验令牌
|
||||||
|
try {
|
||||||
|
log.info("jwt校验:{}", token);
|
||||||
|
Claims claims = JwtUtil.parseJWT(jwtProperties.getAdminSecretKey(), token);
|
||||||
|
Long empId = Long.valueOf(claims.get(JwtClaimsConstant.EMP_ID).toString());
|
||||||
|
log.info("当前员工id:", empId);
|
||||||
|
//3、通过,放行
|
||||||
|
return true;
|
||||||
|
} catch (Exception ex) {
|
||||||
|
//4、不通过,响应401状态码
|
||||||
|
response.setStatus(401);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
18
sky-server/src/main/java/com/sky/mapper/EmployeeMapper.java
Normal file
18
sky-server/src/main/java/com/sky/mapper/EmployeeMapper.java
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
package com.sky.mapper;
|
||||||
|
|
||||||
|
import com.sky.entity.Employee;
|
||||||
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
import org.apache.ibatis.annotations.Select;
|
||||||
|
|
||||||
|
@Mapper
|
||||||
|
public interface EmployeeMapper {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据用户名查询员工
|
||||||
|
* @param username
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Select("select * from employee where username = #{username}")
|
||||||
|
Employee getByUsername(String username);
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,15 @@
|
|||||||
|
package com.sky.service;
|
||||||
|
|
||||||
|
import com.sky.dto.EmployeeLoginDTO;
|
||||||
|
import com.sky.entity.Employee;
|
||||||
|
|
||||||
|
public interface EmployeeService {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 员工登录
|
||||||
|
* @param employeeLoginDTO
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
Employee login(EmployeeLoginDTO employeeLoginDTO);
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,57 @@
|
|||||||
|
package com.sky.service.impl;
|
||||||
|
|
||||||
|
import com.sky.constant.MessageConstant;
|
||||||
|
import com.sky.constant.StatusConstant;
|
||||||
|
import com.sky.dto.EmployeeLoginDTO;
|
||||||
|
import com.sky.entity.Employee;
|
||||||
|
import com.sky.exception.AccountLockedException;
|
||||||
|
import com.sky.exception.AccountNotFoundException;
|
||||||
|
import com.sky.exception.PasswordErrorException;
|
||||||
|
import com.sky.mapper.EmployeeMapper;
|
||||||
|
import com.sky.service.EmployeeService;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.util.DigestUtils;
|
||||||
|
|
||||||
|
@Service
|
||||||
|
public class EmployeeServiceImpl implements EmployeeService {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private EmployeeMapper employeeMapper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 员工登录
|
||||||
|
*
|
||||||
|
* @param employeeLoginDTO
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public Employee login(EmployeeLoginDTO employeeLoginDTO) {
|
||||||
|
String username = employeeLoginDTO.getUsername();
|
||||||
|
String password = employeeLoginDTO.getPassword();
|
||||||
|
|
||||||
|
//1、根据用户名查询数据库中的数据
|
||||||
|
Employee employee = employeeMapper.getByUsername(username);
|
||||||
|
|
||||||
|
//2、处理各种异常情况(用户名不存在、密码不对、账号被锁定)
|
||||||
|
if (employee == null) {
|
||||||
|
//账号不存在
|
||||||
|
throw new AccountNotFoundException(MessageConstant.ACCOUNT_NOT_FOUND);
|
||||||
|
}
|
||||||
|
|
||||||
|
//密码比对
|
||||||
|
// TODO 后期需要进行md5加密,然后再进行比对
|
||||||
|
if (!password.equals(employee.getPassword())) {
|
||||||
|
//密码错误
|
||||||
|
throw new PasswordErrorException(MessageConstant.PASSWORD_ERROR);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (employee.getStatus() == StatusConstant.DISABLE) {
|
||||||
|
//账号被锁定
|
||||||
|
throw new AccountLockedException(MessageConstant.ACCOUNT_LOCKED);
|
||||||
|
}
|
||||||
|
|
||||||
|
//3、返回实体对象
|
||||||
|
return employee;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
8
sky-server/src/main/resources/application-dev.yml
Normal file
8
sky-server/src/main/resources/application-dev.yml
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
sky:
|
||||||
|
datasource:
|
||||||
|
driver-class-name: com.mysql.cj.jdbc.Driver
|
||||||
|
host: localhost
|
||||||
|
port: 3306
|
||||||
|
database: sky_take_out
|
||||||
|
username: root
|
||||||
|
password: root
|
39
sky-server/src/main/resources/application.yml
Normal file
39
sky-server/src/main/resources/application.yml
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
server:
|
||||||
|
port: 8080
|
||||||
|
|
||||||
|
spring:
|
||||||
|
profiles:
|
||||||
|
active: dev
|
||||||
|
main:
|
||||||
|
allow-circular-references: true
|
||||||
|
datasource:
|
||||||
|
druid:
|
||||||
|
driver-class-name: ${sky.datasource.driver-class-name}
|
||||||
|
url: jdbc:mysql://${sky.datasource.host}:${sky.datasource.port}/${sky.datasource.database}?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&useSSL=false&allowPublicKeyRetrieval=true
|
||||||
|
username: ${sky.datasource.username}
|
||||||
|
password: ${sky.datasource.password}
|
||||||
|
|
||||||
|
mybatis:
|
||||||
|
#mapper配置文件
|
||||||
|
mapper-locations: classpath:mapper/*.xml
|
||||||
|
type-aliases-package: com.sky.entity
|
||||||
|
configuration:
|
||||||
|
#开启驼峰命名
|
||||||
|
map-underscore-to-camel-case: true
|
||||||
|
|
||||||
|
logging:
|
||||||
|
level:
|
||||||
|
com:
|
||||||
|
sky:
|
||||||
|
mapper: debug
|
||||||
|
service: info
|
||||||
|
controller: info
|
||||||
|
|
||||||
|
sky:
|
||||||
|
jwt:
|
||||||
|
# 设置jwt签名加密时使用的秘钥
|
||||||
|
admin-secret-key: itcast
|
||||||
|
# 设置jwt过期时间
|
||||||
|
admin-ttl: 7200000
|
||||||
|
# 设置前端传递过来的令牌名称
|
||||||
|
admin-token-name: token
|
5
sky-server/src/main/resources/mapper/EmployeeMapper.xml
Normal file
5
sky-server/src/main/resources/mapper/EmployeeMapper.xml
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
<?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.sky.mapper.EmployeeMapper">
|
||||||
|
</mapper>
|
Loading…
Reference in New Issue
Block a user