Commit 0bfb3be1 by wilmiam

Merge remote-tracking branch 'origin/master'

parents 2fe86a96 a90c5a47
......@@ -97,12 +97,10 @@
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>${mybatis.plus.version}</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>${alibaba.druid.version}</version>
</dependency>
<!-- quartz -->
......@@ -114,7 +112,6 @@
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt</artifactId>
<version>${jjwt.version}</version>
</dependency>
<!--支付宝依赖-->
......
......@@ -82,11 +82,6 @@ mybatis-plus:
where-strategy: not_empty
update-strategy: not_empty
#日志输出配置
logging:
level:
com.zq.*: @logging.level@
#七牛云
qiniu:
# 文件大小 /M
......
......@@ -16,18 +16,20 @@ eureka:
prefer-ip-address: true
lease-renewal-interval-in-seconds: 2 #向服务端发送心跳间隔
lease-expiration-duration-in-seconds: 6 #告诉服务端多少秒没收到心跳将我踢出掉
instance-id: ${spring.cloud.client.ip-address}:${spring.application.name}:${server.port}
instance-id: ${spring.cloud.client.ip-address}:${server.port}
client:
registry-fetch-interval-seconds: 2 #从服务端注册表中获取注册信息的时间间隔
registry-fetch-interval-seconds: 6 #从服务端注册表中获取注册信息的时间间隔
serviceUrl:
defaultZone: @register.url@
#Feign 超时配置
feign:
client:
config:
default:
connect-timeout: 2000 #连接超时时间
read-timeout: 10000 #读超时时间
connect-timeout: 2000 # 连接超时时间 ms
read-timeout: 10000 # 读取超时时间 ms
# logger-level: BASIC # 仅记录请求的方法,URL以及响应状态码和执行时间。四种不同级别:NONE、BASIC、HEADERS、FULL
ribbon:
# ribbon服务列表刷新间隔(单位ms)
......
......@@ -77,13 +77,11 @@
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>${mybatis.plus.version}</version>
</dependency>
<!-- druid数据源驱动 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>${alibaba.druid.version}</version>
</dependency>
</dependencies>
......
......@@ -71,5 +71,3 @@ mybatis-plus:
db-config:
where-strategy: not_empty
update-strategy: not_empty
#logging.level.com.zq.drug.dao: debug
......@@ -16,7 +16,7 @@ eureka:
prefer-ip-address: true
lease-renewal-interval-in-seconds: 2 #向服务端发送心跳间隔
lease-expiration-duration-in-seconds: 6 #告诉服务端多少秒没收到心跳将我踢出掉
instance-id: ${spring.cloud.client.ip-address}:${spring.application.name}:${server.port}
instance-id: ${spring.cloud.client.ip-address}:${server.port}
client:
registry-fetch-interval-seconds: 2 #从服务端注册表中获取注册信息的时间间隔
serviceUrl:
......
......@@ -24,7 +24,7 @@ eureka:
prefer-ip-address: true
lease-renewal-interval-in-seconds: 2 #向服务端发送心跳间隔
lease-expiration-duration-in-seconds: 6 #告诉服务端多少秒没收到心跳将我踢出掉
instance-id: ${spring.cloud.client.ip-address}:${spring.application.name}:${server.port}
instance-id: ${spring.cloud.client.ip-address}:${server.port}
client:
registry-fetch-interval-seconds: 2 #从服务端注册表中获取注册信息的时间间隔
serviceUrl:
......
......@@ -6,12 +6,12 @@ spring:
security:
user:
name: admin
password: GXfy2021
password: Gxzq2024
eureka: # 相关文章:https://blog.csdn.net/weixin_49149614/article/details/121059046
instance:
#设置使用IP注册就会优先使用IP,hostname则无效
prefer-ip-address: true
instance-id: ${spring.cloud.client.ip-address}:${spring.application.name}:${server.port}
instance-id: ${spring.cloud.client.ip-address}:${server.port}
server:
# 关闭自我保护机制(程序停掉了还注册的问题)
enable-self-preservation: false
......@@ -28,4 +28,4 @@ eureka: # 相关文章:https://blog.csdn.net/weixin_49149614/article/details/1
fetch-registry: false
# 设置与Eureka Server交互的地址,查询服务和注册服务都需要依赖这个地址。默认是http://127.0.0.1:8000/eureka ;多个地址可使用,分隔
service-url:
defaultZone: http://admin:GXfy2021@127.0.0.1:8800/eureka/
defaultZone: http://admin:Gxzq2024@127.0.0.1:8800/eureka/
......@@ -16,9 +16,9 @@ eureka:
prefer-ip-address: true
lease-renewal-interval-in-seconds: 2 #向服务端发送心跳间隔
lease-expiration-duration-in-seconds: 6 #告诉服务端多少秒没收到心跳将我踢出掉
instance-id: ${spring.cloud.client.ip-address}:${spring.application.name}:${server.port}
instance-id: ${spring.cloud.client.ip-address}:${server.port}
client:
registry-fetch-interval-seconds: 2 #从服务端注册表中获取注册信息的时间间隔
registry-fetch-interval-seconds: 6 #从服务端注册表中获取注册信息的时间间隔
serviceUrl:
defaultZone: @register.url@
......
......@@ -16,7 +16,7 @@ eureka:
prefer-ip-address: true
lease-renewal-interval-in-seconds: 2 #向服务端发送心跳间隔
lease-expiration-duration-in-seconds: 6 #告诉服务端多少秒没收到心跳将我踢出掉
instance-id: ${spring.cloud.client.ip-address}:${spring.application.name}:${server.port}
instance-id: ${spring.cloud.client.ip-address}:${server.port}
client:
registry-fetch-interval-seconds: 2 #从服务端注册表中获取注册信息的时间间隔
serviceUrl:
......
......@@ -21,12 +21,12 @@
<java.version>1.8</java.version>
<swagger.version>2.9.2</swagger.version>
<alibaba.druid.version>1.1.22</alibaba.druid.version>
<mybatis.plus.version>3.5.3.1</mybatis.plus.version>
<alibaba.druid.version>1.2.21</alibaba.druid.version>
<mybatis.plus.version>3.5.5</mybatis.plus.version>
<pagehelper.version>5.3.3</pagehelper.version>
<jjwt.version>0.9.1</jjwt.version>
<fastjson.version>1.2.83</fastjson.version>
<hutool.version>5.8.19</hutool.version>
<hutool.version>5.8.26</hutool.version>
<logback.version>1.2.10</logback.version>
<log4j2.version>2.17.1</log4j2.version>
......@@ -46,8 +46,8 @@
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
......@@ -58,11 +58,6 @@
<artifactId>springfox-swagger-ui</artifactId>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>${fastjson.version}</version>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
......@@ -88,6 +83,40 @@
<artifactId>springfox-swagger-ui</artifactId>
<version>${swagger.version}</version>
</dependency>
<!-- jwt -->
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt</artifactId>
<version>${jjwt.version}</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>${fastjson.version}</version>
</dependency>
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>${hutool.version}</version>
</dependency>
<!--mybatis-plus-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>${mybatis.plus.version}</version>
</dependency>
<!-- druid数据源驱动 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>${alibaba.druid.version}</version>
</dependency>
<!--pagehelper-->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>${pagehelper.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
......@@ -97,8 +126,7 @@
<id>dev</id>
<properties>
<profiles.active>dev</profiles.active>
<logging.level>debug</logging.level>
<register.url>http://admin:123456@127.0.0.1:8800/eureka/</register.url>
<register.url>http://admin:Gxzq2024@127.0.0.1:8800/eureka/</register.url>
</properties>
<activation>
<activeByDefault>true</activeByDefault>
......@@ -109,8 +137,7 @@
<id>test</id>
<properties>
<profiles.active>test</profiles.active>
<logging.level>debug</logging.level>
<register.url>http://admin:123456@127.0.0.1:8800/eureka/</register.url>
<register.url>http://admin:Gxzq2024@127.0.0.1:8800/eureka/</register.url>
</properties>
</profile>
<profile>
......@@ -118,8 +145,7 @@
<id>product</id>
<properties>
<profiles.active>product</profiles.active>
<logging.level>info</logging.level>
<register.url>http://admin:123456@127.0.0.1:8800/eureka/</register.url>
<register.url>http://admin:Gxzq2024@127.0.0.1:8800/eureka/</register.url>
</properties>
</profile>
</profiles>
......
......@@ -65,13 +65,11 @@
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>${mybatis.plus.version}</version>
</dependency>
<!-- druid数据源驱动 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>${alibaba.druid.version}</version>
</dependency>
<!-- mysql -->
<dependency>
......
......@@ -177,7 +177,7 @@ public class UserService {
lambdaQuery.like(AppUser::getPhone, vo.getPhone());
}
return PagingUtils.paging(vo, userDao, lambdaQuery, AppUser.class);
return PagingUtils.paging(vo, userDao, AppUser.class, lambdaQuery);
}
}
......@@ -16,18 +16,23 @@ eureka:
prefer-ip-address: true
lease-renewal-interval-in-seconds: 2 #向服务端发送心跳间隔
lease-expiration-duration-in-seconds: 6 #告诉服务端多少秒没收到心跳将我踢出掉
instance-id: ${spring.cloud.client.ip-address}:${spring.application.name}:${server.port}
instance-id: ${spring.cloud.client.ip-address}:${server.port}
client:
registry-fetch-interval-seconds: 2 #从服务端注册表中获取注册信息的时间间隔
registry-fetch-interval-seconds: 6 #从服务端注册表中获取注册信息的时间间隔
serviceUrl:
defaultZone: @register.url@
#Feign 超时配置
feign:
client:
config:
default:
connect-timeout: 2000 #连接超时时间
read-timeout: 10000 #读超时时间
connect-timeout: 2000 # 连接超时时间 ms
read-timeout: 10000 # 读取超时时间 ms
# logger-level: BASIC # 仅记录请求的方法,URL以及响应状态码和执行时间。四种不同级别:NONE、BASIC、HEADERS、FULL
ADMIN-SERVER: # 针对ADMIN服务的配置
connect-timeout: 2000
read-timeout: 20000
ribbon:
# ribbon服务列表刷新间隔(单位ms)
......
......@@ -54,13 +54,11 @@
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>${mybatis.plus.version}</version>
</dependency>
<!--pagehelper-->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper</artifactId>
<version>5.2.1</version>
</dependency>
<!--spring boot 集成redis所需common-pool2-->
......@@ -87,14 +85,12 @@
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>${hutool.version}</version>
</dependency>
<!-- jwt -->
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt</artifactId>
<version>${jjwt.version}</version>
</dependency>
<dependency>
......
package com.zq.common.utils;
import java.util.HashSet;
import java.util.Set;
/**
* @author wilmiam
* @since 2019-04-15
*/
public class ImageUtils {
/**
* 有效的图片文件格式
*/
private static final Set<String> FILE_EXTENSIONS = new HashSet<>();
static {
FILE_EXTENSIONS.add("bmp");
FILE_EXTENSIONS.add("jpg");
FILE_EXTENSIONS.add("png");
FILE_EXTENSIONS.add("jpeg");
}
/**
* 获取文件的后缀(格式), 如: xxxx.txt.png,则返回png
*
* @param filename
* @return
*/
public static String getFileExt(String filename) {
if (ValidateUtil.isBlank(filename) || !filename.contains(".")) {
return null;
}
return filename.substring(filename.lastIndexOf('.') + 1);
}
/**
* 判断文件名是否为有效的图片文件格式
*
* @param filename
* @return
*/
public static boolean isImgFile(String filename) {
return isImgFileExt(getFileExt(filename));
}
/**
* 判断是否为图片文件后缀名
*
* @param ext
* @return
*/
public static boolean isImgFileExt(final String ext) {
return ext != null && FILE_EXTENSIONS.stream()
.anyMatch(item -> item.equals(ext.toLowerCase()));
}
}
......@@ -3,11 +3,12 @@ package com.zq.common.utils;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.ISqlSegment;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.segments.MergeSegments;
import com.baomidou.mybatisplus.core.conditions.segments.NormalSegmentList;
import com.baomidou.mybatisplus.core.enums.SqlKeyword;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.pagehelper.PageHelper;
......@@ -34,13 +35,28 @@ public abstract class PagingUtils {
* @param <Q>
* @return
*/
@SuppressWarnings("all")
public static <R, Q extends PageReqVo> PageVo<R> paging(Q reqVo, Function<Q, List<R>> rowsLoader) {
PageHelper.startPage(reqVo.getPage(), reqVo.getSize());
return paging(reqVo, rowsLoader, true);
}
/**
* pagehelper分页插件
*
* @param reqVo
* @param rowsLoader
* @param <R>
* @param <Q>
* @return
*/
@SuppressWarnings("all")
public static <R, Q extends PageReqVo> PageVo<R> paging(Q reqVo, Function<Q, List<R>> rowsLoader, boolean searchCount) {
PageHelper.startPage(reqVo.getPage(), reqVo.getSize(), searchCount);
com.github.pagehelper.Page<R> page = (com.github.pagehelper.Page) rowsLoader.apply(reqVo);
return PageVo.ofReqVo(reqVo, page.getResult(), Long.valueOf(page.getTotal()).intValue());
}
/*↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓以下是mybatis-plus自带分页插件↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓*/
/**
* mybatis-plus自带分页插件
*
......@@ -52,6 +68,20 @@ public abstract class PagingUtils {
* @return
*/
public static <R, Q extends PageReqVo> PageVo<R> paging(Q reqVo, BaseMapper<R> mapper, Class<R> clazz) {
return paging(reqVo, mapper, clazz, true);
}
/**
* mybatis-plus自带分页插件
*
* @param reqVo
* @param mapper
* @param clazz
* @param <R>
* @param <Q>
* @return
*/
public static <R, Q extends PageReqVo> PageVo<R> paging(Q reqVo, BaseMapper<R> mapper, Class<R> clazz, boolean searchCount) {
R entity;
try {
entity = clazz.newInstance();
......@@ -59,7 +89,8 @@ public abstract class PagingUtils {
throw new BusinessException("分页类型转换错误");
}
BeanUtil.copyProperties(reqVo, entity);
IPage<R> page = new Page<>(reqVo.getPage(), reqVo.getSize());
Page<R> page = new Page<>(reqVo.getPage(), reqVo.getSize());
page.setSearchCount(searchCount);
page = mapper.selectPage(page, Wrappers.lambdaQuery(entity));
return PageVo.ofReqVo(reqVo, page.getRecords(), Long.valueOf(page.getTotal()).intValue());
}
......@@ -73,8 +104,49 @@ public abstract class PagingUtils {
* @param <Q>
* @return
*/
@SuppressWarnings("all")
public static <R, Q extends PageReqVo> PageVo<R> paging(Q reqVo, BaseMapper<R> mapper, LambdaQueryWrapper<R> lambdaQuery, Class<R> clazz) {
public static <R, Q extends PageReqVo> PageVo<R> paging(Q reqVo, BaseMapper<R> mapper, Wrapper<R> lambdaQuery) {
return paging(reqVo, mapper, lambdaQuery, true);
}
/**
* mybatis-plus自带分页插件
*
* @param reqVo
* @param mapper
* @param <R>
* @param <Q>
* @return
*/
public static <R, Q extends PageReqVo> PageVo<R> paging(Q reqVo, BaseMapper<R> mapper, Wrapper<R> lambdaQuery, boolean searchCount) {
Page<R> page = new Page<>(reqVo.getPage(), reqVo.getSize());
page.setSearchCount(searchCount);
page = mapper.selectPage(page, lambdaQuery);
return PageVo.ofReqVo(reqVo, page.getRecords(), Long.valueOf(page.getTotal()).intValue());
}
/**
* mybatis-plus自带分页插件
*
* @param reqVo
* @param mapper
* @param <R>
* @param <Q>
* @return
*/
public static <R, Q extends PageReqVo> PageVo<R> paging(Q reqVo, BaseMapper<R> mapper, Class<R> clazz, LambdaQueryWrapper<R> lambdaQuery) {
return paging(reqVo, mapper, clazz, lambdaQuery, true);
}
/**
* mybatis-plus自带分页插件
*
* @param reqVo
* @param mapper
* @param <R>
* @param <Q>
* @return
*/
public static <R, Q extends PageReqVo> PageVo<R> paging(Q reqVo, BaseMapper<R> mapper, Class<R> clazz, LambdaQueryWrapper<R> lambdaQuery, boolean searchCount) {
R entity;
try {
entity = clazz.newInstance();
......@@ -88,7 +160,8 @@ public abstract class PagingUtils {
lambdaQuery.setEntity(entity);
IPage<R> page = new Page<>(reqVo.getPage(), reqVo.getSize());
Page<R> page = new Page<>(reqVo.getPage(), reqVo.getSize());
page.setSearchCount(searchCount);
page = mapper.selectPage(page, lambdaQuery);
return PageVo.ofReqVo(reqVo, page.getRecords(), Long.valueOf(page.getTotal()).intValue());
}
......@@ -105,13 +178,23 @@ public abstract class PagingUtils {
MergeSegments expression = lambdaQuery.getExpression();
NormalSegmentList normal = expression.getNormal();
int index = 0;
for (ISqlSegment iSqlSegment : normal) {
if (index % 4 == 0) {
String field = StrUtil.toCamelCase(iSqlSegment.getSqlSegment());
for (int i = 0; i < normal.size(); i++) {
if (i + 1 >= normal.size()) {
break;
}
ISqlSegment nextSegment = normal.get(i + 1);
if (nextSegment instanceof SqlKeyword) {
ISqlSegment sqlSegment = normal.get(i);
String segment = sqlSegment.getSqlSegment();
if (segment.startsWith("#{")) {
continue;
}
String field = StrUtil.toCamelCase(segment.toLowerCase());
fields.add(field);
}
index++;
}
return fields.toArray(new String[]{});
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment