mirror of
https://gitee.com/youlaitech/youlai-mall.git
synced 2024-12-23 05:00:25 +08:00
feat:添加商品类目级联列表接口
This commit is contained in:
parent
abe0201905
commit
32e4e3d60c
@ -24,7 +24,7 @@
|
|||||||
<dependencies>
|
<dependencies>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.youlai</groupId>
|
<groupId>com.youlai</groupId>
|
||||||
<artifactId>youlai-common-core</artifactId>
|
<artifactId>common-core</artifactId>
|
||||||
<version>${youlai.version}</version>
|
<version>${youlai.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
@ -24,7 +24,7 @@
|
|||||||
<dependencies>
|
<dependencies>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.youlai</groupId>
|
<groupId>com.youlai</groupId>
|
||||||
<artifactId>youlai-common-core</artifactId>
|
<artifactId>common-core</artifactId>
|
||||||
<version>${youlai.version}</version>
|
<version>${youlai.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
@ -24,7 +24,7 @@
|
|||||||
<dependencies>
|
<dependencies>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.youlai</groupId>
|
<groupId>com.youlai</groupId>
|
||||||
<artifactId>youlai-common-core</artifactId>
|
<artifactId>common-core</artifactId>
|
||||||
<version>${youlai.version}</version>
|
<version>${youlai.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
@ -24,7 +24,7 @@
|
|||||||
<dependencies>
|
<dependencies>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.youlai</groupId>
|
<groupId>com.youlai</groupId>
|
||||||
<artifactId>youlai-common-core</artifactId>
|
<artifactId>common-core</artifactId>
|
||||||
<version>${youlai.version}</version>
|
<version>${youlai.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
4
pom.xml
4
pom.xml
@ -14,11 +14,11 @@
|
|||||||
<module>youlai-admin</module>
|
<module>youlai-admin</module>
|
||||||
<module>youlai-auth</module>
|
<module>youlai-auth</module>
|
||||||
<module>youlai-gateway</module>
|
<module>youlai-gateway</module>
|
||||||
|
<module>youlai-registry</module>
|
||||||
<module>mall-sms</module>
|
<module>mall-sms</module>
|
||||||
<module>mall-ums</module>
|
<module>mall-ums</module>
|
||||||
<module>mall-pms</module>
|
<module>mall-pms</module>
|
||||||
<module>mall-oms</module>
|
<module>mall-oms</module>
|
||||||
<module>youlai-registry</module>
|
|
||||||
</modules>
|
</modules>
|
||||||
|
|
||||||
<parent>
|
<parent>
|
||||||
@ -109,6 +109,4 @@
|
|||||||
</dependency>
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
</dependencyManagement>
|
</dependencyManagement>
|
||||||
|
|
||||||
|
|
||||||
</project>
|
</project>
|
||||||
|
@ -31,19 +31,19 @@
|
|||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.youlai</groupId>
|
<groupId>com.youlai</groupId>
|
||||||
<artifactId>youlai-common-web</artifactId>
|
<artifactId>common-web</artifactId>
|
||||||
<version>${youlai.version}</version>
|
<version>${youlai.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.youlai</groupId>
|
<groupId>com.youlai</groupId>
|
||||||
<artifactId>youlai-common-db</artifactId>
|
<artifactId>common-db</artifactId>
|
||||||
<version>${youlai.version}</version>
|
<version>${youlai.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.youlai</groupId>
|
<groupId>com.youlai</groupId>
|
||||||
<artifactId>youlai-common-knife4j</artifactId>
|
<artifactId>common-knife4j</artifactId>
|
||||||
<version>${youlai.version}</version>
|
<version>${youlai.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
@ -24,7 +24,7 @@
|
|||||||
<dependencies>
|
<dependencies>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.youlai</groupId>
|
<groupId>com.youlai</groupId>
|
||||||
<artifactId>youlai-common-core</artifactId>
|
<artifactId>common-core</artifactId>
|
||||||
<version>${youlai.version}</version>
|
<version>${youlai.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
@ -30,37 +30,37 @@
|
|||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.youlai</groupId>
|
<groupId>com.youlai</groupId>
|
||||||
<artifactId>youlai-common-db</artifactId>
|
<artifactId>common-db</artifactId>
|
||||||
<version>${youlai.version}</version>
|
<version>${youlai.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.youlai</groupId>
|
<groupId>com.youlai</groupId>
|
||||||
<artifactId>youlai-common-web</artifactId>
|
<artifactId>common-web</artifactId>
|
||||||
<version>${youlai.version}</version>
|
<version>${youlai.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.youlai</groupId>
|
<groupId>com.youlai</groupId>
|
||||||
<artifactId>youlai-common-knife4j</artifactId>
|
<artifactId>common-knife4j</artifactId>
|
||||||
<version>${youlai.version}</version>
|
<version>${youlai.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.youlai</groupId>
|
<groupId>com.youlai</groupId>
|
||||||
<artifactId>youlai-common-core</artifactId>
|
<artifactId>common-core</artifactId>
|
||||||
<version>${youlai.version}</version>
|
<version>${youlai.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.youlai</groupId>
|
<groupId>com.youlai</groupId>
|
||||||
<artifactId>youlai-common-redis</artifactId>
|
<artifactId>common-redis</artifactId>
|
||||||
<version>${youlai.version}</version>
|
<version>${youlai.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.youlai</groupId>
|
<groupId>com.youlai</groupId>
|
||||||
<artifactId>youlai-common-web</artifactId>
|
<artifactId>common-web</artifactId>
|
||||||
<version>${youlai.version}</version>
|
<version>${youlai.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
36
youlai-common/common-core/pom.xml
Normal file
36
youlai-common/common-core/pom.xml
Normal file
@ -0,0 +1,36 @@
|
|||||||
|
<?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>youlai-common</artifactId>
|
||||||
|
<groupId>com.youlai</groupId>
|
||||||
|
<version>1.0.0-SNAPSHOT</version>
|
||||||
|
</parent>
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
|
<artifactId>common-core</artifactId>
|
||||||
|
|
||||||
|
<dependencies>
|
||||||
|
<!-- swagger2-annotations -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>io.swagger</groupId>
|
||||||
|
<artifactId>swagger-annotations</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<!-- spring boot web -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-starter-web</artifactId>
|
||||||
|
<optional>true</optional>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<!-- mybatis-plus -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.baomidou</groupId>
|
||||||
|
<artifactId>mybatis-plus-boot-starter</artifactId>
|
||||||
|
<optional>true</optional>
|
||||||
|
</dependency>
|
||||||
|
</dependencies>
|
||||||
|
|
||||||
|
</project>
|
@ -0,0 +1,5 @@
|
|||||||
|
package com.youlai.common.core.base;
|
||||||
|
|
||||||
|
public class BaseController<T> {
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,26 @@
|
|||||||
|
package com.youlai.common.core.base;
|
||||||
|
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.FieldFill;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableField;
|
||||||
|
import io.swagger.annotations.ApiModel;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@ApiModel
|
||||||
|
public class BaseEntity implements Serializable {
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
@TableField(fill = FieldFill.INSERT)
|
||||||
|
@ApiModelProperty(value = "创建时间", example = "2020-01-01 00:00:00")
|
||||||
|
private Date gmtCreate;
|
||||||
|
|
||||||
|
@TableField(fill = FieldFill.INSERT_UPDATE)
|
||||||
|
@ApiModelProperty(value = "创建时间", example = "2020-01-01 00:00:00")
|
||||||
|
private Date gmtModified;
|
||||||
|
}
|
@ -0,0 +1,74 @@
|
|||||||
|
package com.youlai.common.core.constant;
|
||||||
|
|
||||||
|
public interface AuthConstants {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* JWT存储权限前缀
|
||||||
|
*/
|
||||||
|
String AUTHORITY_PREFIX = "ROLE_";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* JWT存储权限属性
|
||||||
|
*/
|
||||||
|
String AUTHORITY_CLAIM_NAME = "authorities";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 认证信息Http请求头
|
||||||
|
*/
|
||||||
|
String JWT_TOKEN_HEADER = "Authorization";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* JWT令牌前缀
|
||||||
|
*/
|
||||||
|
String JWT_TOKEN_PREFIX = "Bearer ";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* JWT载体key
|
||||||
|
*/
|
||||||
|
String JWT_PAYLOAD_KEY = "payload";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Redis缓存权限规则key
|
||||||
|
*/
|
||||||
|
String RESOURCE_ROLES_KEY = "auth:resourceRoles";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 黑名单token前缀
|
||||||
|
*/
|
||||||
|
String TOKEN_BLACKLIST_PREFIX = "auth:token:blacklist:";
|
||||||
|
|
||||||
|
String CLIENT_DETAILS_FIELDS = "client_id, CONCAT('{noop}',client_secret) as client_secret, resource_ids, scope, "
|
||||||
|
+ "authorized_grant_types, web_server_redirect_uri, authorities, access_token_validity, "
|
||||||
|
+ "refresh_token_validity, additional_information, autoapprove";
|
||||||
|
|
||||||
|
String BASE_CLIENT_DETAILS_SQL = "select " + CLIENT_DETAILS_FIELDS + " from oauth_client_details";
|
||||||
|
|
||||||
|
String FIND_CLIENT_DETAILS_SQL = BASE_CLIENT_DETAILS_SQL + " order by client_id";
|
||||||
|
|
||||||
|
String SELECT_CLIENT_DETAILS_SQL = BASE_CLIENT_DETAILS_SQL + " where client_id = ?";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 密码加密方式
|
||||||
|
*/
|
||||||
|
String BCRYPT = "{bcrypt}";
|
||||||
|
|
||||||
|
String JWT_USER_ID_KEY = "id";
|
||||||
|
|
||||||
|
String JWT_CLIENT_ID_KEY = "client_id";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 有来商城后台管理客户端ID
|
||||||
|
*/
|
||||||
|
String ADMIN_CLIENT_ID="youlai-mall-admin";
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 有来商城微信小程序客户端ID
|
||||||
|
*/
|
||||||
|
String WEAPP_CLIENT_ID="youlai-mall-weapp";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 后台管理接口路径匹配
|
||||||
|
*/
|
||||||
|
String ADMIN_URL_PATTERN ="/youlai-admin/**" ;
|
||||||
|
}
|
@ -0,0 +1,10 @@
|
|||||||
|
package com.youlai.common.core.constant;
|
||||||
|
|
||||||
|
public interface Constants {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 正常状态值
|
||||||
|
*/
|
||||||
|
Integer STATUS_NORMAL_VALUE = 1;
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,13 @@
|
|||||||
|
package com.youlai.common.core.result;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author haoxr
|
||||||
|
* @date 2020-06-23
|
||||||
|
**/
|
||||||
|
public interface IResultCode {
|
||||||
|
|
||||||
|
String getCode();
|
||||||
|
|
||||||
|
String getMsg();
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,23 @@
|
|||||||
|
package com.youlai.common.core.result;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author haoxr
|
||||||
|
* @date 2020-06-24
|
||||||
|
**/
|
||||||
|
@Data
|
||||||
|
public class PageResult<T> extends Result {
|
||||||
|
|
||||||
|
private long total;
|
||||||
|
|
||||||
|
public static <T> PageResult<T> success(T data, Long total) {
|
||||||
|
PageResult<T> pageResult = new PageResult();
|
||||||
|
pageResult.setCode(ResultCode.SUCCESS.getCode());
|
||||||
|
pageResult.setMsg(ResultCode.SUCCESS.getMsg());
|
||||||
|
pageResult.setData(data);
|
||||||
|
pageResult.setTotal(total);
|
||||||
|
return pageResult;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,67 @@
|
|||||||
|
package com.youlai.common.core.result;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author haoxr
|
||||||
|
* @date 2020-06-23
|
||||||
|
**/
|
||||||
|
@Data
|
||||||
|
public class Result<T> implements Serializable {
|
||||||
|
|
||||||
|
private String code;
|
||||||
|
|
||||||
|
private T data;
|
||||||
|
|
||||||
|
private String msg;
|
||||||
|
|
||||||
|
|
||||||
|
public static <T> Result<T> success() {
|
||||||
|
return success(null);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static <T> Result<T> success(T data) {
|
||||||
|
ResultCode rce = ResultCode.SUCCESS;
|
||||||
|
if (data instanceof Boolean && Boolean.FALSE.equals(data)) {
|
||||||
|
rce = ResultCode.SYSTEM_EXECUTION_ERROR;
|
||||||
|
}
|
||||||
|
return result(rce, data);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public static <T> Result<T> error() {
|
||||||
|
return result(ResultCode.SYSTEM_EXECUTION_ERROR.getCode(), ResultCode.SYSTEM_EXECUTION_ERROR.getMsg(), null);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static <T> Result<T> error(String msg) {
|
||||||
|
return result(ResultCode.SYSTEM_EXECUTION_ERROR.getCode(), msg, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static <T> Result<T> status(boolean status) {
|
||||||
|
if (status) {
|
||||||
|
return success();
|
||||||
|
} else {
|
||||||
|
return error();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static <T> Result<T> custom(IResultCode resultCode) {
|
||||||
|
return result(resultCode.getCode(), resultCode.getMsg(), null);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private static <T> Result<T> result(IResultCode resultCode, T data) {
|
||||||
|
return result(resultCode.getCode(), resultCode.getMsg(), data);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static <T> Result<T> result(String code, String msg, T data) {
|
||||||
|
Result<T> result = new Result<T>();
|
||||||
|
result.setCode(code);
|
||||||
|
result.setData(data);
|
||||||
|
result.setMsg(msg);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,83 @@
|
|||||||
|
package com.youlai.common.core.result;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author haoxr
|
||||||
|
* @date 2020-06-23
|
||||||
|
**/
|
||||||
|
@AllArgsConstructor
|
||||||
|
@NoArgsConstructor
|
||||||
|
public enum ResultCode implements IResultCode, Serializable {
|
||||||
|
|
||||||
|
SUCCESS("00000","一切ok"),
|
||||||
|
|
||||||
|
USER_ERROR("A0001","用户端错误"),
|
||||||
|
USER_LOGIN_ERROR("A0200","用户登录异常"),
|
||||||
|
|
||||||
|
USER_ACCOUNT_NOT_EXIST("A0201","用户账户不存在"),
|
||||||
|
USER_ACCOUNT_LOCKED("A0202","用户账户被冻结"),
|
||||||
|
USER_ACCOUNT_INVALID("A0203","用户账户已作废"),
|
||||||
|
|
||||||
|
USERNAME_OR_PASSWORD_ERROR("A0210","用户名或密码错误"),
|
||||||
|
INPUT_PASSWORD_EXCEED_LIMIT("A0211","用户输入密码次数超限"),
|
||||||
|
TOKEN_INVALID_OR_EXPIRED("A0230","token无效或已过期"),
|
||||||
|
|
||||||
|
USER_AUTHORIZED_ERROR ("A0300","访问权限异常"),
|
||||||
|
USER_ACCESS_UNAUTHORIZED ("A0301","访问未授权"),
|
||||||
|
|
||||||
|
USER_REQUEST_PARAM_ERROR("A0400","用户请求参数错误"),
|
||||||
|
USER_REQUEST_PARAM_IS_BLANK("A0410","请求必填参数为空"),
|
||||||
|
|
||||||
|
USER_UPLOAD_FILE_ERROR("A0700","用户上传文件异常"),
|
||||||
|
USER_UPLOAD_FILE_TYPE_NOT_MATCH("A0701","用户上传文件类型不匹配"),
|
||||||
|
USER_UPLOAD_FILE_SIZE_EXCEEDS("A0702","用户上传文件太大"),
|
||||||
|
USER_UPLOAD_IMAGE_SIZE_EXCEEDS("A0703","用户上传图片太大"),
|
||||||
|
|
||||||
|
SYSTEM_EXECUTION_ERROR("B0001","系统执行出错"),
|
||||||
|
SYSTEM_EXECUTION_TIMEOUT("B0100","系统执行超时"),
|
||||||
|
SYSTEM_ORDER_PROCESSING_TIMEOUT("B0100","系统订单处理超时"),
|
||||||
|
|
||||||
|
SYSTEM_DISASTER_RECOVERY_TRIGGER("B0200","系统容灾功能被出发"),
|
||||||
|
SYSTEM_LIMITING("B0210","系统限流"),
|
||||||
|
SYSTEM_FUNCTION_DEGRADATION("B0220","系统功能降级"),
|
||||||
|
|
||||||
|
SYSTEM_RESOURCE_ERROR("B0300","系统资源异常"),
|
||||||
|
SYSTEM_RESOURCE_EXHAUSTION("B0310","系统资源耗尽"),
|
||||||
|
SYSTEM_RESOURCE_ACCESS_ERROR("B0320","系统资源访问异常"),
|
||||||
|
SYSTEM_READ_DISK_FILE_ERROR("B0321","系统读取磁盘文件失败"),
|
||||||
|
|
||||||
|
CALL_THIRD_PARTY_SERVICE_ERROR("C0001","调用第三方服务出错"),
|
||||||
|
MIDDLEWARE_SERVICE_ERROR("C0100","中间件服务出错"),
|
||||||
|
INTERFACE_NOT_EXIST("C0113","接口不存在"),
|
||||||
|
|
||||||
|
MESSAGE_SERVICE_ERROR("C0120","消息服务出错"),
|
||||||
|
MESSAGE_DELIVERY_ERROR("C0121","消息投递出错"),
|
||||||
|
MESSAGE_CONSUMPTION_ERROR("C0122","消息消费出错"),
|
||||||
|
MESSAGE_SUBSCRIPTION_ERROR("C0123","消息订阅出错"),
|
||||||
|
MESSAGE_GROUP_NOT_FOUND("C0124","消息分组未查到"),
|
||||||
|
|
||||||
|
DATABASE_ERROR("C0300","数据库服务出错"),
|
||||||
|
DATABASE_TABLE_NOT_EXIST("C0311","表不存在"),
|
||||||
|
DATABASE_COLUMN_NOT_EXIST("C0312","列不存在"),
|
||||||
|
DATABASE_DUPLICATE_COLUMN_NAME("C0321","多表关联中存在多个相同名称的列"),
|
||||||
|
DATABASE_DEADLOCK("C0331","数据库死锁"),
|
||||||
|
DATABASE_PRIMARY_KEY_CONFLICT("C0341","主键冲突") ;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getCode() {
|
||||||
|
return code;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getMsg() {
|
||||||
|
return msg;
|
||||||
|
}
|
||||||
|
|
||||||
|
private String code;
|
||||||
|
|
||||||
|
private String msg;
|
||||||
|
}
|
30
youlai-common/common-db/pom.xml
Normal file
30
youlai-common/common-db/pom.xml
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
<?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>youlai-common</artifactId>
|
||||||
|
<groupId>com.youlai</groupId>
|
||||||
|
<version>1.0.0-SNAPSHOT</version>
|
||||||
|
</parent>
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
|
<artifactId>common-db</artifactId>
|
||||||
|
|
||||||
|
<dependencies>
|
||||||
|
<dependency>
|
||||||
|
<groupId>mysql</groupId>
|
||||||
|
<artifactId>mysql-connector-java</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.alibaba</groupId>
|
||||||
|
<artifactId>druid-spring-boot-starter</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.baomidou</groupId>
|
||||||
|
<artifactId>mybatis-plus-boot-starter</artifactId>
|
||||||
|
</dependency>
|
||||||
|
</dependencies>
|
||||||
|
</project>
|
@ -0,0 +1,32 @@
|
|||||||
|
package com.youlai.common.db.config;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.config.GlobalConfig;
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
|
||||||
|
import com.youlai.common.db.handler.MetaHandler;
|
||||||
|
import org.springframework.context.annotation.Bean;
|
||||||
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
import org.springframework.transaction.annotation.EnableTransactionManagement;
|
||||||
|
|
||||||
|
@Configuration
|
||||||
|
@EnableTransactionManagement
|
||||||
|
public class MybatisPlusConfig {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分页插件,自动识别数据库类型 多租户,请参考官网【插件扩展】
|
||||||
|
*/
|
||||||
|
@Bean
|
||||||
|
public PaginationInterceptor paginationInterceptor() {
|
||||||
|
return new PaginationInterceptor();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 自动填充数据库创建人、创建时间、更新人、更新时间
|
||||||
|
*/
|
||||||
|
@Bean
|
||||||
|
public GlobalConfig globalConfig() {
|
||||||
|
GlobalConfig globalConfig = new GlobalConfig();
|
||||||
|
globalConfig.setMetaObjectHandler(new MetaHandler());
|
||||||
|
return globalConfig;
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,25 @@
|
|||||||
|
package com.youlai.common.db.handler;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
|
||||||
|
import org.apache.ibatis.reflection.MetaObject;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author haoxr
|
||||||
|
**/
|
||||||
|
@Component
|
||||||
|
public class MetaHandler implements MetaObjectHandler {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void insertFill(MetaObject metaObject) {
|
||||||
|
this.setFieldValByName("gmtCreate", new Date(), metaObject);
|
||||||
|
this.setFieldValByName("gmtModified", new Date(), metaObject);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void updateFill(MetaObject metaObject) {
|
||||||
|
this.setFieldValByName("gmtCreate", new Date(), metaObject);
|
||||||
|
}
|
||||||
|
}
|
20
youlai-common/common-knife4j/pom.xml
Normal file
20
youlai-common/common-knife4j/pom.xml
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
<?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>youlai-common</artifactId>
|
||||||
|
<groupId>com.youlai</groupId>
|
||||||
|
<version>1.0.0-SNAPSHOT</version>
|
||||||
|
</parent>
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
|
<artifactId>common-knife4j</artifactId>
|
||||||
|
|
||||||
|
<dependencies>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.github.xiaoymin</groupId>
|
||||||
|
<artifactId>knife4j-spring-boot-starter</artifactId>
|
||||||
|
</dependency>
|
||||||
|
</dependencies>
|
||||||
|
</project>
|
@ -0,0 +1,66 @@
|
|||||||
|
package com.youlai.common.knife4j;
|
||||||
|
|
||||||
|
import io.swagger.annotations.ApiOperation;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.context.annotation.Bean;
|
||||||
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
import springfox.documentation.builders.ApiInfoBuilder;
|
||||||
|
import springfox.documentation.builders.PathSelectors;
|
||||||
|
import springfox.documentation.builders.RequestHandlerSelectors;
|
||||||
|
import springfox.documentation.service.*;
|
||||||
|
import springfox.documentation.spi.DocumentationType;
|
||||||
|
import springfox.documentation.spi.service.contexts.SecurityContext;
|
||||||
|
import springfox.documentation.spring.web.plugins.Docket;
|
||||||
|
import springfox.documentation.swagger2.annotations.EnableSwagger2;
|
||||||
|
|
||||||
|
import java.util.Collections;
|
||||||
|
|
||||||
|
@Configuration
|
||||||
|
@EnableSwagger2
|
||||||
|
@Slf4j
|
||||||
|
public class Knife4jConfig {
|
||||||
|
@Bean
|
||||||
|
public Docket createRestApi() {
|
||||||
|
return new Docket(DocumentationType.SWAGGER_2)
|
||||||
|
.apiInfo(apiInfo())
|
||||||
|
.select()
|
||||||
|
.apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
|
||||||
|
.paths(PathSelectors.any())
|
||||||
|
.build()
|
||||||
|
//.securitySchemes(Collections.singletonList(securityScheme()))
|
||||||
|
.securityContexts(Collections.singletonList(securityContext()))
|
||||||
|
.useDefaultResponseMessages(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
private ApiInfo apiInfo() {
|
||||||
|
return new ApiInfoBuilder()
|
||||||
|
.title("有来科技API")
|
||||||
|
.contact(new Contact("youlai", "https://www.youlai.store", "youlaistore@163.com"))
|
||||||
|
.version("1.0.0")
|
||||||
|
.build();
|
||||||
|
}
|
||||||
|
|
||||||
|
private SecurityScheme securityScheme() {
|
||||||
|
/* GrantType grantType = new ResourceOwnerPasswordCredentialsGrant(AUTH_TOKEN_ENDPOINT);
|
||||||
|
|
||||||
|
return new OAuthBuilder()
|
||||||
|
.name("OAuth2")
|
||||||
|
.grantTypes(Collections.singletonList(grantType))
|
||||||
|
.scopes(Arrays.asList(scopes()))
|
||||||
|
.build();*/
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
private AuthorizationScope[] scopes() {
|
||||||
|
AuthorizationScope[] scopes = {};
|
||||||
|
return scopes;
|
||||||
|
}
|
||||||
|
|
||||||
|
private SecurityContext securityContext() {
|
||||||
|
return SecurityContext.builder()
|
||||||
|
.securityReferences(Collections.singletonList(new SecurityReference("OAuth2", scopes())))
|
||||||
|
.forPaths(PathSelectors.any())
|
||||||
|
.build();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
20
youlai-common/common-redis/pom.xml
Normal file
20
youlai-common/common-redis/pom.xml
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
<?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>youlai-common</artifactId>
|
||||||
|
<groupId>com.youlai</groupId>
|
||||||
|
<version>1.0.0-SNAPSHOT</version>
|
||||||
|
</parent>
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
|
<artifactId>common-redis</artifactId>
|
||||||
|
<dependencies>
|
||||||
|
<!-- spring boot redis -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-starter-data-redis</artifactId>
|
||||||
|
</dependency>
|
||||||
|
</dependencies>
|
||||||
|
</project>
|
@ -0,0 +1,23 @@
|
|||||||
|
package com.youlai.common.redis;
|
||||||
|
|
||||||
|
import org.springframework.context.annotation.Bean;
|
||||||
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
import org.springframework.data.redis.connection.RedisConnectionFactory;
|
||||||
|
import org.springframework.data.redis.core.RedisTemplate;
|
||||||
|
import org.springframework.data.redis.serializer.JdkSerializationRedisSerializer;
|
||||||
|
import org.springframework.data.redis.serializer.StringRedisSerializer;
|
||||||
|
|
||||||
|
@Configuration
|
||||||
|
public class RedisConfig {
|
||||||
|
@Bean
|
||||||
|
public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory factory) {
|
||||||
|
RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>();
|
||||||
|
redisTemplate.setKeySerializer(new StringRedisSerializer());
|
||||||
|
redisTemplate.setValueSerializer(new JdkSerializationRedisSerializer());
|
||||||
|
redisTemplate.setHashKeySerializer(new StringRedisSerializer());
|
||||||
|
redisTemplate.setHashValueSerializer(new JdkSerializationRedisSerializer());
|
||||||
|
redisTemplate.setConnectionFactory(factory);
|
||||||
|
redisTemplate.afterPropertiesSet();
|
||||||
|
return redisTemplate;
|
||||||
|
}
|
||||||
|
}
|
32
youlai-common/common-web/pom.xml
Normal file
32
youlai-common/common-web/pom.xml
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
<?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>youlai-common</artifactId>
|
||||||
|
<groupId>com.youlai</groupId>
|
||||||
|
<version>1.0.0-SNAPSHOT</version>
|
||||||
|
</parent>
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
|
<artifactId>common-web</artifactId>
|
||||||
|
|
||||||
|
<properties>
|
||||||
|
<youlai.version>1.0.0-SNAPSHOT</youlai.version>
|
||||||
|
</properties>
|
||||||
|
|
||||||
|
<dependencies>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.youlai</groupId>
|
||||||
|
<artifactId>common-core</artifactId>
|
||||||
|
<version>${youlai.version}</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<!-- spring boot web -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-starter-web</artifactId>
|
||||||
|
</dependency>
|
||||||
|
</dependencies>
|
||||||
|
|
||||||
|
</project>
|
@ -0,0 +1,39 @@
|
|||||||
|
package com.youlai.common.web.config;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.core.JsonParser;
|
||||||
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
|
import com.fasterxml.jackson.databind.module.SimpleModule;
|
||||||
|
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
import org.springframework.http.converter.HttpMessageConverter;
|
||||||
|
import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
|
||||||
|
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
|
||||||
|
|
||||||
|
import java.math.BigInteger;
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.TimeZone;
|
||||||
|
|
||||||
|
@Configuration
|
||||||
|
@Slf4j
|
||||||
|
public class WebMvcConfig implements WebMvcConfigurer {
|
||||||
|
@Override
|
||||||
|
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
|
||||||
|
MappingJackson2HttpMessageConverter jackson2HttpMessageConverter = new MappingJackson2HttpMessageConverter();
|
||||||
|
ObjectMapper objectMapper = jackson2HttpMessageConverter.getObjectMapper();
|
||||||
|
objectMapper.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"));
|
||||||
|
objectMapper.setTimeZone(TimeZone.getTimeZone("GMT+8"));
|
||||||
|
objectMapper.configure(JsonParser.Feature.ALLOW_UNQUOTED_FIELD_NAMES, true);
|
||||||
|
|
||||||
|
// 后台Long值传递给前端精度丢失问题(JS最大精度整数是Math.pow(2,53))
|
||||||
|
SimpleModule simpleModule = new SimpleModule();
|
||||||
|
simpleModule.addSerializer(Long.class, ToStringSerializer.instance);
|
||||||
|
// simpleModule.addSerializer(Long.TYPE, ToStringSerializer.instance);
|
||||||
|
// simpleModule.addSerializer(BigInteger.class, ToStringSerializer.instance);
|
||||||
|
objectMapper.registerModule(simpleModule);
|
||||||
|
|
||||||
|
jackson2HttpMessageConverter.setObjectMapper(objectMapper);
|
||||||
|
converters.add(0, jackson2HttpMessageConverter);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,27 @@
|
|||||||
|
package com.youlai.common.web.exception;
|
||||||
|
|
||||||
|
import com.youlai.common.core.result.IResultCode;
|
||||||
|
import lombok.Getter;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
public class BizException extends RuntimeException {
|
||||||
|
|
||||||
|
public IResultCode resultCode;
|
||||||
|
|
||||||
|
public BizException(IResultCode errorCode) {
|
||||||
|
super(errorCode.getMsg());
|
||||||
|
this.resultCode = errorCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BizException(String message){
|
||||||
|
super(message);
|
||||||
|
}
|
||||||
|
|
||||||
|
public BizException(String message, Throwable cause){
|
||||||
|
super(message, cause);
|
||||||
|
}
|
||||||
|
|
||||||
|
public BizException(Throwable cause){
|
||||||
|
super(cause);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,38 @@
|
|||||||
|
package com.youlai.common.web.exception;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||||
|
import com.youlai.common.core.result.Result;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.web.bind.annotation.ExceptionHandler;
|
||||||
|
import org.springframework.web.bind.annotation.RestControllerAdvice;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 全局系统异常处理
|
||||||
|
*
|
||||||
|
* @author hxrui
|
||||||
|
* @date 2020-02-25 13:54
|
||||||
|
**/
|
||||||
|
@RestControllerAdvice
|
||||||
|
@Slf4j
|
||||||
|
public class GlobalExceptionHandler {
|
||||||
|
|
||||||
|
@ExceptionHandler(IllegalArgumentException.class)
|
||||||
|
public Result handleIllegalArgumentException(IllegalArgumentException e) {
|
||||||
|
return Result.error(e.getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ExceptionHandler(JsonProcessingException.class)
|
||||||
|
public Result handleJsonProcessingException(JsonProcessingException e) {
|
||||||
|
return Result.error(e.getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
@ExceptionHandler(BizException.class)
|
||||||
|
public Result handleBizException(BizException e) {
|
||||||
|
if (e.getResultCode() != null) {
|
||||||
|
return Result.custom(e.getResultCode());
|
||||||
|
}
|
||||||
|
return Result.error(e.getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,24 @@
|
|||||||
|
package com.youlai.common.web.vo;
|
||||||
|
|
||||||
|
import io.swagger.annotations.ApiModel;
|
||||||
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Accessors(chain = true)
|
||||||
|
@ApiModel
|
||||||
|
public class CascaderVO {
|
||||||
|
|
||||||
|
@ApiModelProperty(name="节点value")
|
||||||
|
private String value;
|
||||||
|
|
||||||
|
@ApiModelProperty(name="节点label")
|
||||||
|
private String label;
|
||||||
|
|
||||||
|
@ApiModelProperty(name="子节点")
|
||||||
|
private List<CascaderVO> children;
|
||||||
|
}
|
@ -0,0 +1,21 @@
|
|||||||
|
package com.youlai.common.web.vo;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
|
import com.fasterxml.jackson.annotation.JsonInclude;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Accessors(chain = true)
|
||||||
|
public class TreeSelectVO {
|
||||||
|
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
private String label;
|
||||||
|
|
||||||
|
@JsonInclude(JsonInclude.Include.NON_EMPTY)
|
||||||
|
private List<TreeSelectVO> children;
|
||||||
|
}
|
@ -14,11 +14,11 @@
|
|||||||
<packaging>pom</packaging>
|
<packaging>pom</packaging>
|
||||||
|
|
||||||
<modules>
|
<modules>
|
||||||
<module>youlai-common-core</module>
|
<module>common-core</module>
|
||||||
<module>youlai-common-knife4j</module>
|
<module>common-knife4j</module>
|
||||||
<module>youlai-common-redis</module>
|
<module>common-redis</module>
|
||||||
<module>youlai-common-web</module>
|
<module>common-web</module>
|
||||||
<module>youlai-common-db</module>
|
<module>common-db</module>
|
||||||
</modules>
|
</modules>
|
||||||
|
|
||||||
<properties>
|
<properties>
|
||||||
@ -94,37 +94,31 @@
|
|||||||
<!-- common -->
|
<!-- common -->
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.youlai</groupId>
|
<groupId>com.youlai</groupId>
|
||||||
<artifactId>youlai-common-core</artifactId>
|
<artifactId>common-core</artifactId>
|
||||||
<version>${youlai.version}</version>
|
<version>${youlai.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.youlai</groupId>
|
<groupId>com.youlai</groupId>
|
||||||
<artifactId>youlai-common-knife4j</artifactId>
|
<artifactId>common-knife4j</artifactId>
|
||||||
<version>${youlai.version}</version>
|
<version>${youlai.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.youlai</groupId>
|
<groupId>com.youlai</groupId>
|
||||||
<artifactId>youlai-common-redis</artifactId>
|
<artifactId>common-redis</artifactId>
|
||||||
<version>${youlai.version}</version>
|
<version>${youlai.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.youlai</groupId>
|
<groupId>com.youlai</groupId>
|
||||||
<artifactId>youlai-common-web</artifactId>
|
<artifactId>common-web</artifactId>
|
||||||
<version>${youlai.version}</version>
|
<version>${youlai.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.youlai</groupId>
|
<groupId>com.youlai</groupId>
|
||||||
<artifactId>youlai-common-db</artifactId>
|
<artifactId>common-db</artifactId>
|
||||||
<version>${youlai.version}</version>
|
|
||||||
</dependency>
|
|
||||||
|
|
||||||
<dependency>
|
|
||||||
<groupId>com.youlai</groupId>
|
|
||||||
<artifactId>youlai-common-auth</artifactId>
|
|
||||||
<version>${youlai.version}</version>
|
<version>${youlai.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
@ -21,13 +21,13 @@
|
|||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.youlai</groupId>
|
<groupId>com.youlai</groupId>
|
||||||
<artifactId>youlai-common-core</artifactId>
|
<artifactId>common-core</artifactId>
|
||||||
<version>${youlai.version}</version>
|
<version>${youlai.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.youlai</groupId>
|
<groupId>com.youlai</groupId>
|
||||||
<artifactId>youlai-common-redis</artifactId>
|
<artifactId>common-redis</artifactId>
|
||||||
<version>${youlai.version}</version>
|
<version>${youlai.version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user