diff --git a/pom.xml b/pom.xml
index b992be06..6369e8da 100644
--- a/pom.xml
+++ b/pom.xml
@@ -7,7 +7,7 @@
co.yixiang
yshop
pom
- 3.2
+ 3.3
yshop-common
@@ -28,18 +28,17 @@
org.springframework.boot
spring-boot-starter-parent
- 2.4.13
+ 2.7.2
- 1.2.11
UTF-8
UTF-8
1.8
3.3.0
3.0.0
1.2.83
- 1.2.9
+ 1.2.11
5.5.7
4.1.2
2.5.0
@@ -50,9 +49,9 @@
2.11.0
1
1.6.2
- 1.20
- 6.1.6.Final
- 2.8.0
+ 1.21
+ 6.1.7.Final
+ 2.8.9
@@ -60,12 +59,6 @@
org.springframework.boot
spring-boot-starter-web
-
-
- org.springframework.boot
- spring-boot-starter-logging
-
-
org.springframework.boot
@@ -73,43 +66,6 @@
test
-
- org.springframework.boot
- spring-boot-starter-logging
-
-
- org.apache.logging.log4j
- log4j-api
-
-
- org.apache.logging.log4j
- log4j-to-slf4j
-
-
- ch.gos.logback
- logback-classic
-
-
-
-
-
- ch.qos.logback
- logback-classic
- ${logback.version}
-
-
- ch.qos.logback
- logback-core
-
-
-
-
-
- ch.qos.logback
- logback-core
- ${logback.version}
-
-
org.hibernate.validator
hibernate-validator
@@ -128,32 +84,20 @@
org.springframework.boot
spring-boot-starter-data-redis
-
-
- io.lettuce
- lettuce-core
-
-
-
-
-
- redis.clients
- jedis
- ${jedis.version}
-
- org.apache.commons
- commons-pool2
- ${commons-pool2.version}
-
-
- org.apache.commons
- commons-lang3
-
+
+
+
+
+
+
+
+
+
@@ -191,6 +135,22 @@
com.github.xiaoymin
knife4j-spring-boot-starter
${github-xiaoymin.version}
+
+
+ io.swagger
+ swagger-models
+
+
+ io.swagger
+ swagger-annotations
+
+
+
+
+ io.swagger
+ swagger-models
+ ${swagger-models.version}
+ compile
@@ -219,22 +179,22 @@
${hutool.version}
-
- org.apache.poi
- poi
- ${poi.version}
-
+
+
+
+
+
org.apache.poi
poi-ooxml
${poi.version}
-
- xerces
- xercesImpl
- ${xerces.version}
-
+
+
+
+
+
@@ -243,22 +203,22 @@
${fastjson.version}
-
- org.mapstruct
- mapstruct-jdk8
- ${mapstruct.version}
-
-
- org.mapstruct
- mapstruct-processor
- ${mapstruct.version}
- provided
-
-
- javax.inject
- javax.inject
- 1
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
com.github.whvcse
easy-captcha
diff --git a/shell/start.sh b/shell/start.sh
index 9ed76c25..abaae587 100644
--- a/shell/start.sh
+++ b/shell/start.sh
@@ -1 +1 @@
-nohup java -jar yshop-app-3.2.jar --spring.profiles.active=prod &
+nohup java -jar yshop-app-3.3.jar --spring.profiles.active=prod &
diff --git a/shell/stop.sh b/shell/stop.sh
index 3a823cb8..48a48f00 100644
--- a/shell/stop.sh
+++ b/shell/stop.sh
@@ -1,4 +1,4 @@
-PID=$(ps -ef | grep yshop-app-3.2.jar | grep -v grep | awk '{ print $2 }')
+PID=$(ps -ef | grep yshop-app-3.3.jar | grep -v grep | awk '{ print $2 }')
if [ -z "$PID" ];then
echo Application is already stopped
else
diff --git a/yshop-admin/Dockerfile b/yshop-admin/Dockerfile
index f8c3fa66..97825725 100644
--- a/yshop-admin/Dockerfile
+++ b/yshop-admin/Dockerfile
@@ -13,6 +13,6 @@ WORKDIR /yshop-admin
EXPOSE 8001
-ADD ./target/yshop-admin-3.2.jar ./
+ADD ./target/yshop-admin-3.3.jar ./
-CMD java $JAVA_OPTS -jar yshop-admin-3.2.jar --spring.profiles.active=docker
+CMD java $JAVA_OPTS -jar yshop-admin-3.3.jar --spring.profiles.active=docker
diff --git a/yshop-admin/pom.xml b/yshop-admin/pom.xml
index 221cc10e..af2e5320 100644
--- a/yshop-admin/pom.xml
+++ b/yshop-admin/pom.xml
@@ -5,7 +5,7 @@
yshop
co.yixiang
- 3.2
+ 3.3
4.0.0
@@ -21,7 +21,7 @@
co.yixiang
yshop-generator
- 3.2
+ 3.3
co.yixiang
@@ -32,7 +32,7 @@
co.yixiang
yshop-shop
- 3.2
+ 3.3
org.springframework.boot
@@ -64,14 +64,14 @@
- org.quartz-scheduler
- quartz
+ org.springframework.boot
+ spring-boot-starter-quartz
co.yixiang
yshop-weixin
- 3.2
+ 3.3
org.springframework.boot
diff --git a/yshop-admin/src/main/java/co/yixiang/config/MybatisPlusConfig.java b/yshop-admin/src/main/java/co/yixiang/config/MybatisPlusConfig.java
index c089a24c..5804907d 100644
--- a/yshop-admin/src/main/java/co/yixiang/config/MybatisPlusConfig.java
+++ b/yshop-admin/src/main/java/co/yixiang/config/MybatisPlusConfig.java
@@ -1,7 +1,9 @@
package co.yixiang.config;
-import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
+import com.baomidou.mybatisplus.annotation.DbType;
+import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
+import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@@ -16,7 +18,9 @@ public class MybatisPlusConfig {
* mybatis-plus分页插件
*/
@Bean
- public PaginationInterceptor paginationInterceptor() {
- return new PaginationInterceptor();
+ public MybatisPlusInterceptor mybatisPlusInterceptor() {
+ MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
+ interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
+ return interceptor;
}
}
diff --git a/yshop-admin/src/main/java/co/yixiang/modules/monitor/rest/RedisController.java b/yshop-admin/src/main/java/co/yixiang/modules/monitor/rest/RedisController.java
index 3efbcfbb..3833f2c8 100644
--- a/yshop-admin/src/main/java/co/yixiang/modules/monitor/rest/RedisController.java
+++ b/yshop-admin/src/main/java/co/yixiang/modules/monitor/rest/RedisController.java
@@ -1,6 +1,6 @@
package co.yixiang.modules.monitor.rest;
-import co.yixiang.logging.aop.log.Log;
+import co.yixiang.modules.logging.aop.log.Log;
import co.yixiang.modules.aop.ForbidSubmit;
import co.yixiang.modules.monitor.domain.vo.RedisVo;
import co.yixiang.modules.monitor.service.RedisService;
diff --git a/yshop-admin/src/main/java/co/yixiang/modules/monitor/service/impl/VisitsServiceImpl.java b/yshop-admin/src/main/java/co/yixiang/modules/monitor/service/impl/VisitsServiceImpl.java
index 4d076dfd..b3c30f62 100644
--- a/yshop-admin/src/main/java/co/yixiang/modules/monitor/service/impl/VisitsServiceImpl.java
+++ b/yshop-admin/src/main/java/co/yixiang/modules/monitor/service/impl/VisitsServiceImpl.java
@@ -1,7 +1,7 @@
package co.yixiang.modules.monitor.service.impl;
import co.yixiang.common.service.impl.BaseServiceImpl;
-import co.yixiang.logging.service.mapper.LogMapper;
+import co.yixiang.modules.logging.service.mapper.LogMapper;
import co.yixiang.modules.monitor.domain.Visits;
import co.yixiang.modules.monitor.service.VisitsService;
import co.yixiang.modules.monitor.service.mapper.VisitsMapper;
diff --git a/yshop-admin/src/main/java/co/yixiang/modules/quartz/rest/QuartzJobController.java b/yshop-admin/src/main/java/co/yixiang/modules/quartz/rest/QuartzJobController.java
index cf5c1776..191b4279 100644
--- a/yshop-admin/src/main/java/co/yixiang/modules/quartz/rest/QuartzJobController.java
+++ b/yshop-admin/src/main/java/co/yixiang/modules/quartz/rest/QuartzJobController.java
@@ -7,7 +7,7 @@ package co.yixiang.modules.quartz.rest;
import co.yixiang.dozer.service.IGenerator;
import co.yixiang.exception.BadRequestException;
-import co.yixiang.logging.aop.log.Log;
+import co.yixiang.modules.logging.aop.log.Log;
import co.yixiang.modules.aop.ForbidSubmit;
import co.yixiang.modules.quartz.domain.QuartzJob;
import co.yixiang.modules.quartz.service.QuartzJobService;
@@ -17,7 +17,6 @@ import co.yixiang.modules.quartz.service.dto.QuartzJobQueryCriteria;
import co.yixiang.modules.quartz.service.dto.QuartzLogDto;
import co.yixiang.modules.quartz.service.dto.QuartzLogQueryCriteria;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
diff --git a/yshop-admin/src/main/java/co/yixiang/modules/security/config/SecurityConfig.java b/yshop-admin/src/main/java/co/yixiang/modules/security/config/SecurityConfig.java
index 26a711fb..10ad06da 100644
--- a/yshop-admin/src/main/java/co/yixiang/modules/security/config/SecurityConfig.java
+++ b/yshop-admin/src/main/java/co/yixiang/modules/security/config/SecurityConfig.java
@@ -17,11 +17,11 @@ import org.springframework.http.HttpMethod;
import org.springframework.security.config.annotation.method.configuration.EnableGlobalMethodSecurity;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
-import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
import org.springframework.security.config.core.GrantedAuthorityDefaults;
import org.springframework.security.config.http.SessionCreationPolicy;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.security.crypto.password.PasswordEncoder;
+import org.springframework.security.web.SecurityFilterChain;
import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter;
import org.springframework.web.filter.CorsFilter;
import org.springframework.web.method.HandlerMethod;
@@ -38,7 +38,7 @@ import java.util.Set;
@Configuration(proxyBeanMethods = false)
@EnableWebSecurity
@EnableGlobalMethodSecurity(prePostEnabled = true, securedEnabled = true)
-public class SecurityConfig extends WebSecurityConfigurerAdapter {
+public class SecurityConfig {
private final TokenUtil tokenUtil;
private final CorsFilter corsFilter;
@@ -66,8 +66,8 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter {
return new BCryptPasswordEncoder();
}
- @Override
- protected void configure(HttpSecurity httpSecurity) throws Exception {
+ @Bean
+ SecurityFilterChain filterChain(HttpSecurity httpSecurity) throws Exception {
// 搜寻匿名标记 url: @AnonymousAccess
Map handlerMethodMap = applicationContext.getBean(RequestMappingHandlerMapping.class).getHandlerMethods();
Set anonymousUrls = new HashSet<>();
@@ -78,7 +78,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter {
anonymousUrls.addAll(infoEntry.getKey().getPatternsCondition().getPatterns());
}
}
- httpSecurity
+ return httpSecurity
// 禁用 CSRF
.csrf().disable()
.addFilterBefore(corsFilter, UsernamePasswordAuthenticationFilter.class)
@@ -130,7 +130,9 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter {
.antMatchers(anonymousUrls.toArray(new String[0])).permitAll()
// 所有请求都需要认证
.anyRequest().authenticated()
- .and().apply(securityConfigurerAdapter());
+ .and().apply(securityConfigurerAdapter())
+ .and()
+ .build();
}
private TokenConfigurer securityConfigurerAdapter() {
diff --git a/yshop-admin/src/main/java/co/yixiang/modules/security/rest/AuthController.java b/yshop-admin/src/main/java/co/yixiang/modules/security/rest/AuthController.java
index 71919548..70df412c 100644
--- a/yshop-admin/src/main/java/co/yixiang/modules/security/rest/AuthController.java
+++ b/yshop-admin/src/main/java/co/yixiang/modules/security/rest/AuthController.java
@@ -9,7 +9,7 @@ import cn.hutool.crypto.asymmetric.KeyType;
import cn.hutool.crypto.asymmetric.RSA;
import co.yixiang.annotation.AnonymousAccess;
import co.yixiang.exception.BadRequestException;
-import co.yixiang.logging.aop.log.Log;
+import co.yixiang.modules.logging.aop.log.Log;
import co.yixiang.modules.security.config.SecurityProperties;
import co.yixiang.modules.security.security.TokenUtil;
import co.yixiang.modules.security.security.vo.AuthUser;
diff --git a/yshop-admin/src/main/java/co/yixiang/modules/security/rest/OnlineController.java b/yshop-admin/src/main/java/co/yixiang/modules/security/rest/OnlineController.java
index f9e66bb1..9dd4c453 100644
--- a/yshop-admin/src/main/java/co/yixiang/modules/security/rest/OnlineController.java
+++ b/yshop-admin/src/main/java/co/yixiang/modules/security/rest/OnlineController.java
@@ -5,7 +5,7 @@
*/
package co.yixiang.modules.security.rest;
-import co.yixiang.logging.aop.log.Log;
+import co.yixiang.modules.logging.aop.log.Log;
import co.yixiang.modules.aop.ForbidSubmit;
import co.yixiang.modules.security.service.OnlineUserService;
import io.swagger.annotations.Api;
diff --git a/yshop-admin/src/main/java/co/yixiang/modules/system/rest/DeptController.java b/yshop-admin/src/main/java/co/yixiang/modules/system/rest/DeptController.java
index 3806018b..51c7341f 100644
--- a/yshop-admin/src/main/java/co/yixiang/modules/system/rest/DeptController.java
+++ b/yshop-admin/src/main/java/co/yixiang/modules/system/rest/DeptController.java
@@ -9,7 +9,7 @@ import cn.hutool.core.collection.CollectionUtil;
import co.yixiang.config.DataScope;
import co.yixiang.dozer.service.IGenerator;
import co.yixiang.exception.BadRequestException;
-import co.yixiang.logging.aop.log.Log;
+import co.yixiang.modules.logging.aop.log.Log;
import co.yixiang.modules.aop.ForbidSubmit;
import co.yixiang.modules.system.domain.Dept;
import co.yixiang.modules.system.service.DeptService;
diff --git a/yshop-admin/src/main/java/co/yixiang/modules/system/rest/DictController.java b/yshop-admin/src/main/java/co/yixiang/modules/system/rest/DictController.java
index 8f192840..56dcc127 100644
--- a/yshop-admin/src/main/java/co/yixiang/modules/system/rest/DictController.java
+++ b/yshop-admin/src/main/java/co/yixiang/modules/system/rest/DictController.java
@@ -7,7 +7,7 @@ package co.yixiang.modules.system.rest;
import co.yixiang.dozer.service.IGenerator;
import co.yixiang.exception.BadRequestException;
-import co.yixiang.logging.aop.log.Log;
+import co.yixiang.modules.logging.aop.log.Log;
import co.yixiang.modules.aop.ForbidSubmit;
import co.yixiang.modules.dict.domain.Dict;
import co.yixiang.modules.dict.service.DictService;
diff --git a/yshop-admin/src/main/java/co/yixiang/modules/system/rest/DictDetailController.java b/yshop-admin/src/main/java/co/yixiang/modules/system/rest/DictDetailController.java
index a9dc7627..646dea1c 100644
--- a/yshop-admin/src/main/java/co/yixiang/modules/system/rest/DictDetailController.java
+++ b/yshop-admin/src/main/java/co/yixiang/modules/system/rest/DictDetailController.java
@@ -6,7 +6,7 @@
package co.yixiang.modules.system.rest;
import co.yixiang.exception.BadRequestException;
-import co.yixiang.logging.aop.log.Log;
+import co.yixiang.modules.logging.aop.log.Log;
import co.yixiang.modules.aop.ForbidSubmit;
import co.yixiang.modules.dict.domain.DictDetail;
import co.yixiang.modules.dict.service.DictDetailService;
diff --git a/yshop-admin/src/main/java/co/yixiang/modules/system/rest/JobController.java b/yshop-admin/src/main/java/co/yixiang/modules/system/rest/JobController.java
index 73dc26c0..55703e55 100644
--- a/yshop-admin/src/main/java/co/yixiang/modules/system/rest/JobController.java
+++ b/yshop-admin/src/main/java/co/yixiang/modules/system/rest/JobController.java
@@ -8,7 +8,7 @@ package co.yixiang.modules.system.rest;
import co.yixiang.config.DataScope;
import co.yixiang.dozer.service.IGenerator;
import co.yixiang.exception.BadRequestException;
-import co.yixiang.logging.aop.log.Log;
+import co.yixiang.modules.logging.aop.log.Log;
import co.yixiang.modules.aop.ForbidSubmit;
import co.yixiang.modules.system.domain.Job;
import co.yixiang.modules.system.service.JobService;
diff --git a/yshop-admin/src/main/java/co/yixiang/modules/system/rest/MenuController.java b/yshop-admin/src/main/java/co/yixiang/modules/system/rest/MenuController.java
index d53731db..da3c8a3f 100644
--- a/yshop-admin/src/main/java/co/yixiang/modules/system/rest/MenuController.java
+++ b/yshop-admin/src/main/java/co/yixiang/modules/system/rest/MenuController.java
@@ -7,7 +7,7 @@ package co.yixiang.modules.system.rest;
import co.yixiang.dozer.service.IGenerator;
import co.yixiang.exception.BadRequestException;
-import co.yixiang.logging.aop.log.Log;
+import co.yixiang.modules.logging.aop.log.Log;
import co.yixiang.modules.aop.ForbidSubmit;
import co.yixiang.modules.system.domain.Menu;
import co.yixiang.modules.system.service.MenuService;
diff --git a/yshop-admin/src/main/java/co/yixiang/modules/system/rest/RoleController.java b/yshop-admin/src/main/java/co/yixiang/modules/system/rest/RoleController.java
index e869472b..688962bc 100644
--- a/yshop-admin/src/main/java/co/yixiang/modules/system/rest/RoleController.java
+++ b/yshop-admin/src/main/java/co/yixiang/modules/system/rest/RoleController.java
@@ -8,7 +8,7 @@ package co.yixiang.modules.system.rest;
import cn.hutool.core.lang.Dict;
import co.yixiang.dozer.service.IGenerator;
import co.yixiang.exception.BadRequestException;
-import co.yixiang.logging.aop.log.Log;
+import co.yixiang.modules.logging.aop.log.Log;
import co.yixiang.modules.aop.ForbidSubmit;
import co.yixiang.modules.system.domain.Role;
import co.yixiang.modules.system.service.RoleService;
diff --git a/yshop-admin/src/main/java/co/yixiang/modules/system/rest/SysUserController.java b/yshop-admin/src/main/java/co/yixiang/modules/system/rest/SysUserController.java
index b9c301c0..e388edcf 100644
--- a/yshop-admin/src/main/java/co/yixiang/modules/system/rest/SysUserController.java
+++ b/yshop-admin/src/main/java/co/yixiang/modules/system/rest/SysUserController.java
@@ -11,7 +11,7 @@ import co.yixiang.config.DataScope;
import co.yixiang.constant.ShopConstants;
import co.yixiang.dozer.service.IGenerator;
import co.yixiang.exception.BadRequestException;
-import co.yixiang.logging.aop.log.Log;
+import co.yixiang.modules.logging.aop.log.Log;
import co.yixiang.modules.aop.ForbidSubmit;
import co.yixiang.modules.system.domain.User;
import co.yixiang.modules.system.domain.vo.UserPassVo;
@@ -21,8 +21,8 @@ import co.yixiang.modules.system.service.UserService;
import co.yixiang.modules.system.service.dto.RoleSmallDto;
import co.yixiang.modules.system.service.dto.UserDto;
import co.yixiang.modules.system.service.dto.UserQueryCriteria;
-import co.yixiang.tools.domain.VerificationCode;
-import co.yixiang.tools.service.VerificationCodeService;
+import co.yixiang.modules.tools.domain.VerificationCode;
+import co.yixiang.modules.tools.service.VerificationCodeService;
import co.yixiang.utils.PageUtil;
import co.yixiang.utils.SecurityUtils;
import co.yixiang.utils.YshopConstant;
diff --git a/yshop-admin/src/main/java/co/yixiang/modules/system/service/impl/DeptServiceImpl.java b/yshop-admin/src/main/java/co/yixiang/modules/system/service/impl/DeptServiceImpl.java
index c8518ee5..ffa2b9bf 100644
--- a/yshop-admin/src/main/java/co/yixiang/modules/system/service/impl/DeptServiceImpl.java
+++ b/yshop-admin/src/main/java/co/yixiang/modules/system/service/impl/DeptServiceImpl.java
@@ -166,8 +166,8 @@ public class DeptServiceImpl extends BaseServiceImpl implement
*/
@Override
public void delDepts(List deptIds){
- int jobCount = jobMapper.selectCount(Wrappers.lambdaQuery().in(Job::getDeptId,deptIds));
- int roleCount = rolesDeptsMapper.selectCount(Wrappers.lambdaQuery()
+ Long jobCount = jobMapper.selectCount(Wrappers.lambdaQuery().in(Job::getDeptId,deptIds));
+ Long roleCount = rolesDeptsMapper.selectCount(Wrappers.lambdaQuery()
.in(RolesDepts::getDeptId,deptIds));
if(jobCount > 0) {
throw new BadRequestException( "所选部门中存在与岗位关联,请取消关联后再试");
diff --git a/yshop-admin/src/main/java/co/yixiang/modules/system/service/impl/MenuServiceImpl.java b/yshop-admin/src/main/java/co/yixiang/modules/system/service/impl/MenuServiceImpl.java
index b0f9d23e..486efffc 100644
--- a/yshop-admin/src/main/java/co/yixiang/modules/system/service/impl/MenuServiceImpl.java
+++ b/yshop-admin/src/main/java/co/yixiang/modules/system/service/impl/MenuServiceImpl.java
@@ -313,8 +313,8 @@ public class MenuServiceImpl extends BaseServiceImpl implement
throw new EntityExistException(Menu.class,"name",resources.getName());
}
- if(StringUtils.isNotBlank(resources.getComponentName())&&resources.getType()!=1&& !resources.getIFrame()){
- int menuCount = this.lambdaQuery().eq(Menu::getComponentName,resources.getComponentName()).count();
+ if (StringUtils.isNotBlank(resources.getComponentName()) && resources.getType() != 1 && !resources.getIFrame()) {
+ Long menuCount = this.lambdaQuery().eq(Menu::getComponentName,resources.getComponentName()).count();
if(menuCount > 1) {
throw new YshopException("请保持菜单组件名称唯一");
}
diff --git a/yshop-admin/src/main/resources/config/application-dev.yml b/yshop-admin/src/main/resources/config/application-dev.yml
index de875921..f6abea01 100644
--- a/yshop-admin/src/main/resources/config/application-dev.yml
+++ b/yshop-admin/src/main/resources/config/application-dev.yml
@@ -87,7 +87,7 @@ swagger:
enabled: true
title: yshop商城管理后台API
serverUrl:
- version: 3.2
+ version: 3.3
# 文件存储路径
file:
diff --git a/yshop-admin/src/main/resources/config/application-docker.yml b/yshop-admin/src/main/resources/config/application-docker.yml
index bb1a6824..2e415537 100644
--- a/yshop-admin/src/main/resources/config/application-docker.yml
+++ b/yshop-admin/src/main/resources/config/application-docker.yml
@@ -94,7 +94,7 @@ swagger:
enabled: true
title: yshop商城管理后台API
serverUrl: http://127.0.0.1:8000
- version: 3.2
+ version: 3.3
file:
diff --git a/yshop-admin/src/main/resources/config/application-prod.yml b/yshop-admin/src/main/resources/config/application-prod.yml
index 274878ef..b4219165 100644
--- a/yshop-admin/src/main/resources/config/application-prod.yml
+++ b/yshop-admin/src/main/resources/config/application-prod.yml
@@ -6,7 +6,7 @@ spring:
druid:
type: com.alibaba.druid.pool.DruidDataSource
driverClassName: com.mysql.cj.jdbc.Driver
- url: jdbc:mysql://localhost:3366/yshopb2c?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&zeroDateTimeBehavior=convertToNull
+ url: jdbc:mysql://localhost:3306/yshopb2c?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&zeroDateTimeBehavior=convertToNull
username: yshopb2c
password: bkfGfAimifjPZtNE
@@ -94,7 +94,7 @@ swagger:
enabled: false
title: yshop商城管理后台API
serverUrl: http://127.0.0.1:8000
- version: 3.2
+ version: 3.3
file:
diff --git a/yshop-admin/src/main/resources/config/application.yml b/yshop-admin/src/main/resources/config/application.yml
index ca98f4d3..9779b8f3 100644
--- a/yshop-admin/src/main/resources/config/application.yml
+++ b/yshop-admin/src/main/resources/config/application.yml
@@ -2,6 +2,8 @@ server:
port: 8001
spring:
+ main:
+ allow-circular-references: true
freemarker:
check-template-location: false
profiles:
@@ -47,7 +49,7 @@ smms:
yshop:
# 配置
- version: 3.2
+ version: 3.3
apiUrl: http://127.0.0.1:8009/api
logging:
diff --git a/yshop-admin/src/main/resources/logback.xml b/yshop-admin/src/main/resources/logback-spring.xml
similarity index 100%
rename from yshop-admin/src/main/resources/logback.xml
rename to yshop-admin/src/main/resources/logback-spring.xml
diff --git a/yshop-admin/src/main/resources/template/generator/admin/ControllerP.ftl b/yshop-admin/src/main/resources/template/generator/admin/ControllerP.ftl
index 49aa00e6..20b464fa 100644
--- a/yshop-admin/src/main/resources/template/generator/admin/ControllerP.ftl
+++ b/yshop-admin/src/main/resources/template/generator/admin/ControllerP.ftl
@@ -10,7 +10,7 @@ package ${package}.rest;
import java.util.Arrays;
import co.yixiang.dozer.service.IGenerator;
import lombok.AllArgsConstructor;
-import co.yixiang.logging.aop.log.Log;
+import co.yixiang.modules.logging.aop.log.Log;
import ${package}.domain.${className};
import ${package}.service.${className}Service;
import ${package}.service.dto.${className}QueryCriteria;
diff --git a/yshop-app/Dockerfile b/yshop-app/Dockerfile
index 08bcb7f3..87ebc546 100644
--- a/yshop-app/Dockerfile
+++ b/yshop-app/Dockerfile
@@ -13,6 +13,6 @@ WORKDIR /yshop-app
EXPOSE 8008
-ADD ./target/yshop-app-3.2.jar ./
+ADD ./target/yshop-app-3.3.jar ./
-CMD java $JAVA_OPTS -jar yshop-app-3.2.jar --spring.profiles.active=docker
+CMD java $JAVA_OPTS -jar yshop-app-3.3.jar --spring.profiles.active=docker
diff --git a/yshop-app/pom.xml b/yshop-app/pom.xml
index 46d040d2..212654c3 100644
--- a/yshop-app/pom.xml
+++ b/yshop-app/pom.xml
@@ -5,7 +5,7 @@
yshop
co.yixiang
- 3.2
+ 3.3
4.0.0
@@ -21,7 +21,7 @@
co.yixiang
yshop-weixin
- 3.2
+ 3.3
org.springframework.boot
@@ -33,7 +33,7 @@
co.yixiang
yshop-message
- 3.2
+ 3.3
co.yixiang
diff --git a/yshop-app/src/main/java/co/yixiang/common/aspect/AppLogAspect.java b/yshop-app/src/main/java/co/yixiang/common/aspect/AppLogAspect.java
index e11332aa..9e78116f 100644
--- a/yshop-app/src/main/java/co/yixiang/common/aspect/AppLogAspect.java
+++ b/yshop-app/src/main/java/co/yixiang/common/aspect/AppLogAspect.java
@@ -6,8 +6,8 @@
package co.yixiang.common.aspect;
import co.yixiang.common.bean.LocalUser;
-import co.yixiang.logging.domain.Log;
-import co.yixiang.logging.service.LogService;
+import co.yixiang.modules.logging.domain.Log;
+import co.yixiang.modules.logging.service.LogService;
import co.yixiang.utils.RequestHolder;
import co.yixiang.utils.StringUtils;
import co.yixiang.utils.ThrowableUtil;
@@ -42,7 +42,7 @@ public class AppLogAspect {
/**
* 配置切入点
*/
- @Pointcut("@annotation(co.yixiang.logging.aop.log.AppLog)")
+ @Pointcut("@annotation(co.yixiang.modules.logging.aop.log.AppLog)")
public void logPointcut() {
// 该方法无方法体,主要为了让同类中其他方法使用此切入点
}
diff --git a/yshop-app/src/main/java/co/yixiang/common/config/MybatisPlusConfig.java b/yshop-app/src/main/java/co/yixiang/common/config/MybatisPlusConfig.java
index 55a367c6..0ffdfaf5 100644
--- a/yshop-app/src/main/java/co/yixiang/common/config/MybatisPlusConfig.java
+++ b/yshop-app/src/main/java/co/yixiang/common/config/MybatisPlusConfig.java
@@ -9,7 +9,9 @@
package co.yixiang.common.config;
-import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
+import com.baomidou.mybatisplus.annotation.DbType;
+import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
+import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@@ -24,7 +26,10 @@ public class MybatisPlusConfig {
* mybatis-plus分页插件
*/
@Bean
- public PaginationInterceptor paginationInterceptor() {
- return new PaginationInterceptor();
+ public MybatisPlusInterceptor mybatisPlusInterceptor() {
+ MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
+ interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));
+ return interceptor;
}
+
}
diff --git a/yshop-app/src/main/java/co/yixiang/common/interceptor/PermissionInterceptor.java b/yshop-app/src/main/java/co/yixiang/common/interceptor/PermissionInterceptor.java
index 9cc18d2b..3f1915d3 100644
--- a/yshop-app/src/main/java/co/yixiang/common/interceptor/PermissionInterceptor.java
+++ b/yshop-app/src/main/java/co/yixiang/common/interceptor/PermissionInterceptor.java
@@ -21,8 +21,8 @@ import com.auth0.jwt.interfaces.Claim;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.StringUtils;
import org.springframework.web.method.HandlerMethod;
+import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;
-import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@@ -34,7 +34,7 @@ import java.util.Optional;
* @author hupeng
* @date 2020-04-30
*/
-public class PermissionInterceptor extends HandlerInterceptorAdapter {
+public class PermissionInterceptor implements HandlerInterceptor {
@Autowired
private YxUserService userService;
@@ -54,7 +54,7 @@ public class PermissionInterceptor extends HandlerInterceptorAdapter {
}
String bearerToken = request.getHeader("Authorization");
- if (StringUtils.isEmpty(bearerToken)) {
+ if (!StringUtils.hasLength(bearerToken)) {
throw new UnAuthenticatedException(ApiCode.UNAUTHORIZED);
}
@@ -105,13 +105,13 @@ public class PermissionInterceptor extends HandlerInterceptorAdapter {
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
- super.postHandle(request, response, handler, modelAndView);
+ HandlerInterceptor.super.postHandle(request, response, handler, modelAndView);
}
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
LocalUser.clear();
- super.afterCompletion(request, response, handler, ex);
+ HandlerInterceptor.super.afterCompletion(request, response, handler, ex);
}
private Optional getAuthCheck(Object handler) {
diff --git a/yshop-app/src/main/java/co/yixiang/common/util/RedisLock.java b/yshop-app/src/main/java/co/yixiang/common/util/RedisLock.java
index 0a98a6d9..a57dfb13 100644
--- a/yshop-app/src/main/java/co/yixiang/common/util/RedisLock.java
+++ b/yshop-app/src/main/java/co/yixiang/common/util/RedisLock.java
@@ -8,19 +8,19 @@
*/
package co.yixiang.common.util;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.data.redis.core.RedisCallback;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.stereotype.Service;
-import redis.clients.jedis.Jedis;
-import redis.clients.jedis.params.SetParams;
-import java.util.Collections;
+import java.util.concurrent.TimeUnit;
/**
* Redis 分布式锁实现
*/
@Service
+@Slf4j
public class RedisLock {
private static final Long RELEASE_SUCCESS = 1L;
@@ -46,15 +46,31 @@ public class RedisLock {
* @return
*/
public boolean tryLock(String lockKey, String clientId, long seconds) {
- return redisTemplate.execute((RedisCallback) redisConnection -> {
- Jedis jedis = (Jedis) redisConnection.getNativeConnection();
- SetParams setParams = new SetParams();
- String result = jedis.set(lockKey, clientId, setParams.nx().px(seconds));
- if (LOCK_SUCCESS.equals(result)) {
+ //return redisTemplate.execute((RedisCallback) redisConnection -> {
+ // Jedis jedis = (Jedis) redisConnection.getNativeConnection();
+ // SetParams setParams = new SetParams();
+ // String result = jedis.set(lockKey, clientId, setParams.nx().px(seconds));
+ // if (LOCK_SUCCESS.equals(result)) {
+ // return true;
+ // }
+ // return false;
+ //});
+ if(redisTemplate.opsForValue().setIfAbsent(lockKey,clientId)){
+ return true;
+ }
+ String currentValue = redisTemplate.opsForValue().get(lockKey);
+
+ if(!StringUtils.isEmpty(currentValue) &&
+ Long.parseLong(currentValue) 0) {
+ redisTemplate.expire(lockKey, seconds, TimeUnit.SECONDS);
+ }
+ if(!StringUtils.isEmpty(oldValue)&& oldValue.equals(currentValue)){
return true;
}
- return false;
- });
+ }
+ return false;
}
/**
@@ -65,14 +81,24 @@ public class RedisLock {
* @return
*/
public boolean releaseLock(String lockKey, String clientId) {
- return redisTemplate.execute((RedisCallback) redisConnection -> {
- Jedis jedis = (Jedis) redisConnection.getNativeConnection();
- Object result = jedis.eval(RELEASE_LOCK_SCRIPT, Collections.singletonList(lockKey),
- Collections.singletonList(clientId));
- if (RELEASE_SUCCESS.equals(result)) {
- return true;
+ //return redisTemplate.execute((RedisCallback) redisConnection -> {
+ // Jedis jedis = (Jedis) redisConnection.getNativeConnection();
+ // Object result = jedis.eval(RELEASE_LOCK_SCRIPT, Collections.singletonList(lockKey),
+ // Collections.singletonList(clientId));
+ // if (RELEASE_SUCCESS.equals(result)) {
+ // return true;
+ // }
+ // return false;
+ //});
+ try {
+ String currentValue = redisTemplate.opsForValue().get(lockKey);
+ if (!StringUtils.isEmpty(currentValue) && currentValue.equals(clientId)) {
+ redisTemplate.opsForValue().getOperations().delete(lockKey);
}
+ return true;
+ } catch (Exception e){
+ log.error("【redis分布式锁异常】{}",e);
return false;
- });
+ }
}
}
diff --git a/yshop-app/src/main/java/co/yixiang/modules/activity/rest/StoreBargainController.java b/yshop-app/src/main/java/co/yixiang/modules/activity/rest/StoreBargainController.java
index 94a02ffb..a94921f2 100644
--- a/yshop-app/src/main/java/co/yixiang/modules/activity/rest/StoreBargainController.java
+++ b/yshop-app/src/main/java/co/yixiang/modules/activity/rest/StoreBargainController.java
@@ -13,7 +13,7 @@ import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import co.yixiang.api.ApiResult;
import co.yixiang.api.YshopException;
-import co.yixiang.logging.aop.log.AppLog;
+import co.yixiang.modules.logging.aop.log.AppLog;
import co.yixiang.common.aop.NoRepeatSubmit;
import co.yixiang.common.bean.LocalUser;
import co.yixiang.common.interceptor.AuthCheck;
@@ -54,7 +54,6 @@ import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
-import java.util.Collections;
import java.util.List;
import java.util.Map;
diff --git a/yshop-app/src/main/java/co/yixiang/modules/activity/rest/StoreCombinationController.java b/yshop-app/src/main/java/co/yixiang/modules/activity/rest/StoreCombinationController.java
index e0c6d97d..17f2668d 100644
--- a/yshop-app/src/main/java/co/yixiang/modules/activity/rest/StoreCombinationController.java
+++ b/yshop-app/src/main/java/co/yixiang/modules/activity/rest/StoreCombinationController.java
@@ -12,7 +12,7 @@ import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import co.yixiang.api.ApiResult;
import co.yixiang.api.YshopException;
-import co.yixiang.logging.aop.log.AppLog;
+import co.yixiang.modules.logging.aop.log.AppLog;
import co.yixiang.common.bean.LocalUser;
import co.yixiang.common.interceptor.AuthCheck;
import co.yixiang.constant.SystemConfigConstants;
@@ -23,7 +23,6 @@ import co.yixiang.modules.activity.service.YxStorePinkService;
import co.yixiang.modules.activity.vo.CombinationQueryVo;
import co.yixiang.modules.activity.vo.PinkInfoVo;
import co.yixiang.modules.activity.vo.StoreCombinationVo;
-import co.yixiang.modules.activity.vo.YxStoreCombinationQueryVo;
import co.yixiang.modules.product.service.YxStoreProductRelationService;
import co.yixiang.modules.services.CreatShareProductService;
import co.yixiang.modules.shop.service.YxSystemConfigService;
@@ -45,8 +44,6 @@ import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
-import java.util.Collections;
-import java.util.List;
import java.util.Map;
/**
diff --git a/yshop-app/src/main/java/co/yixiang/modules/activity/rest/StoreSeckillController.java b/yshop-app/src/main/java/co/yixiang/modules/activity/rest/StoreSeckillController.java
index 22ba9508..c1092057 100644
--- a/yshop-app/src/main/java/co/yixiang/modules/activity/rest/StoreSeckillController.java
+++ b/yshop-app/src/main/java/co/yixiang/modules/activity/rest/StoreSeckillController.java
@@ -13,7 +13,7 @@ import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.StrUtil;
import co.yixiang.api.ApiResult;
import co.yixiang.api.YshopException;
-import co.yixiang.logging.aop.log.AppLog;
+import co.yixiang.modules.logging.aop.log.AppLog;
import co.yixiang.common.bean.LocalUser;
import co.yixiang.common.interceptor.AuthCheck;
import co.yixiang.constant.ShopConstants;
diff --git a/yshop-app/src/main/java/co/yixiang/modules/cart/rest/StoreCartController.java b/yshop-app/src/main/java/co/yixiang/modules/cart/rest/StoreCartController.java
index ddd22d1b..a088d90e 100644
--- a/yshop-app/src/main/java/co/yixiang/modules/cart/rest/StoreCartController.java
+++ b/yshop-app/src/main/java/co/yixiang/modules/cart/rest/StoreCartController.java
@@ -10,7 +10,7 @@ package co.yixiang.modules.cart.rest;
import co.yixiang.annotation.Limit;
import co.yixiang.api.ApiResult;
-import co.yixiang.logging.aop.log.AppLog;
+import co.yixiang.modules.logging.aop.log.AppLog;
import co.yixiang.common.aop.NoRepeatSubmit;
import co.yixiang.common.bean.LocalUser;
import co.yixiang.common.interceptor.AuthCheck;
diff --git a/yshop-app/src/main/java/co/yixiang/modules/coupon/rest/CouponController.java b/yshop-app/src/main/java/co/yixiang/modules/coupon/rest/CouponController.java
index 71e675af..5a1b0cfa 100644
--- a/yshop-app/src/main/java/co/yixiang/modules/coupon/rest/CouponController.java
+++ b/yshop-app/src/main/java/co/yixiang/modules/coupon/rest/CouponController.java
@@ -11,7 +11,7 @@ package co.yixiang.modules.coupon.rest;
import cn.hutool.core.util.NumberUtil;
import co.yixiang.api.ApiResult;
import co.yixiang.api.YshopException;
-import co.yixiang.logging.aop.log.AppLog;
+import co.yixiang.modules.logging.aop.log.AppLog;
import co.yixiang.common.aop.NoRepeatSubmit;
import co.yixiang.common.bean.LocalUser;
import co.yixiang.common.interceptor.AuthCheck;
diff --git a/yshop-app/src/main/java/co/yixiang/modules/manage/rest/ShoperController.java b/yshop-app/src/main/java/co/yixiang/modules/manage/rest/ShoperController.java
index 258a9518..6868a441 100644
--- a/yshop-app/src/main/java/co/yixiang/modules/manage/rest/ShoperController.java
+++ b/yshop-app/src/main/java/co/yixiang/modules/manage/rest/ShoperController.java
@@ -12,7 +12,7 @@ import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import co.yixiang.api.ApiResult;
import co.yixiang.api.YshopException;
-import co.yixiang.logging.aop.log.AppLog;
+import co.yixiang.modules.logging.aop.log.AppLog;
import co.yixiang.common.interceptor.AuthCheck;
import co.yixiang.modules.manage.param.OrderPriceParam;
import co.yixiang.modules.manage.param.ShoperQueryParam;
diff --git a/yshop-app/src/main/java/co/yixiang/modules/order/rest/StoreOrderController.java b/yshop-app/src/main/java/co/yixiang/modules/order/rest/StoreOrderController.java
index 8b6c0842..0536508a 100644
--- a/yshop-app/src/main/java/co/yixiang/modules/order/rest/StoreOrderController.java
+++ b/yshop-app/src/main/java/co/yixiang/modules/order/rest/StoreOrderController.java
@@ -17,7 +17,7 @@ import co.yixiang.common.aop.NoRepeatSubmit;
import co.yixiang.common.bean.LocalUser;
import co.yixiang.common.interceptor.AuthCheck;
import co.yixiang.enums.*;
-import co.yixiang.logging.aop.log.AppLog;
+import co.yixiang.modules.logging.aop.log.AppLog;
import co.yixiang.modules.mp.domain.YxWechatTemplate;
import co.yixiang.modules.mp.service.WeixinPayService;
import co.yixiang.modules.mp.service.YxWechatTemplateService;
@@ -36,9 +36,9 @@ import co.yixiang.modules.order.vo.YxStoreOrderQueryVo;
import co.yixiang.modules.services.CreatShareProductService;
import co.yixiang.modules.services.OrderSupplyService;
import co.yixiang.modules.user.domain.YxUser;
-import co.yixiang.tools.express.ExpressService;
-import co.yixiang.tools.express.config.ExpressAutoConfiguration;
-import co.yixiang.tools.express.dao.ExpressInfo;
+import co.yixiang.modules.tools.express.ExpressService;
+import co.yixiang.modules.tools.express.config.ExpressAutoConfiguration;
+import co.yixiang.modules.tools.express.dao.ExpressInfo;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.vdurmont.emoji.EmojiParser;
import io.swagger.annotations.Api;
diff --git a/yshop-app/src/main/java/co/yixiang/modules/product/rest/StoreProductController.java b/yshop-app/src/main/java/co/yixiang/modules/product/rest/StoreProductController.java
index 2c4dc3d8..5fe8137a 100644
--- a/yshop-app/src/main/java/co/yixiang/modules/product/rest/StoreProductController.java
+++ b/yshop-app/src/main/java/co/yixiang/modules/product/rest/StoreProductController.java
@@ -18,7 +18,7 @@ import cn.hutool.extra.qrcode.QrCodeUtil;
import co.yixiang.api.ApiResult;
import co.yixiang.api.YshopException;
import co.yixiang.constant.ShopConstants;
-import co.yixiang.logging.aop.log.AppLog;
+import co.yixiang.modules.logging.aop.log.AppLog;
import co.yixiang.common.aop.NoRepeatSubmit;
import co.yixiang.common.bean.LocalUser;
import co.yixiang.common.interceptor.AuthCheck;
diff --git a/yshop-app/src/main/java/co/yixiang/modules/user/rest/UserAddressController.java b/yshop-app/src/main/java/co/yixiang/modules/user/rest/UserAddressController.java
index 1547d70d..5188376c 100644
--- a/yshop-app/src/main/java/co/yixiang/modules/user/rest/UserAddressController.java
+++ b/yshop-app/src/main/java/co/yixiang/modules/user/rest/UserAddressController.java
@@ -12,7 +12,7 @@ import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.StrUtil;
import co.yixiang.api.ApiResult;
import co.yixiang.api.YshopException;
-import co.yixiang.logging.aop.log.AppLog;
+import co.yixiang.modules.logging.aop.log.AppLog;
import co.yixiang.common.bean.LocalUser;
import co.yixiang.common.interceptor.AuthCheck;
import co.yixiang.common.util.CityTreeUtil;
diff --git a/yshop-app/src/main/java/co/yixiang/modules/user/rest/UserBillController.java b/yshop-app/src/main/java/co/yixiang/modules/user/rest/UserBillController.java
index b328c0cc..32d4a3e2 100644
--- a/yshop-app/src/main/java/co/yixiang/modules/user/rest/UserBillController.java
+++ b/yshop-app/src/main/java/co/yixiang/modules/user/rest/UserBillController.java
@@ -12,7 +12,7 @@ import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.StrUtil;
import co.yixiang.api.ApiResult;
import co.yixiang.api.YshopException;
-import co.yixiang.logging.aop.log.AppLog;
+import co.yixiang.modules.logging.aop.log.AppLog;
import co.yixiang.common.bean.LocalUser;
import co.yixiang.common.interceptor.AuthCheck;
import co.yixiang.constant.SystemConfigConstants;
@@ -155,7 +155,7 @@ public class UserBillController {
map.put("list",yxUserService.getUserSpreadGrade(uid,param.getPage(),param.getLimit()
,param.getGrade(),param.getKeyword(),param.getSort()));
- Map countMap = yxUserService.getSpreadCount(uid);
+ Map countMap = yxUserService.getSpreadCount(uid);
map.put("total",countMap.get("first"));
map.put("totalLevel",countMap.get("second"));
return ApiResult.ok(map);
diff --git a/yshop-app/src/main/java/co/yixiang/modules/user/rest/UserController.java b/yshop-app/src/main/java/co/yixiang/modules/user/rest/UserController.java
index d10c7b58..9d948757 100644
--- a/yshop-app/src/main/java/co/yixiang/modules/user/rest/UserController.java
+++ b/yshop-app/src/main/java/co/yixiang/modules/user/rest/UserController.java
@@ -10,7 +10,7 @@ package co.yixiang.modules.user.rest;
import co.yixiang.api.ApiResult;
-import co.yixiang.logging.aop.log.AppLog;
+import co.yixiang.modules.logging.aop.log.AppLog;
import co.yixiang.common.aop.NoRepeatSubmit;
import co.yixiang.common.bean.LocalUser;
import co.yixiang.common.interceptor.AuthCheck;
@@ -211,7 +211,7 @@ public class UserController {
@ApiOperation(value = "开始签到",notes = "开始签到")
public ApiResult