升级springboot版本为2.6.7、mybatis plus版本为3.5.1、pagehelper版本为1.4.2、其它依赖升级
This commit is contained in:
@ -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() {
|
||||
// 该方法无方法体,主要为了让同类中其他方法使用此切入点
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -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<AuthCheck> getAuthCheck(Object handler) {
|
||||
|
@ -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<Boolean>) 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<Boolean>) 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)<System.currentTimeMillis()){
|
||||
String oldValue =redisTemplate.opsForValue().getAndSet(lockKey,clientId);
|
||||
if (seconds > 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<Boolean>) 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<Boolean>) 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;
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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;
|
||||
|
||||
|
@ -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;
|
||||
|
||||
/**
|
||||
|
@ -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;
|
||||
@ -42,7 +42,6 @@ import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.atomic.AtomicInteger;
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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;
|
||||
|
@ -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<String,Integer> countMap = yxUserService.getSpreadCount(uid);
|
||||
Map<String,Long> countMap = yxUserService.getSpreadCount(uid);
|
||||
map.put("total",countMap.get("first"));
|
||||
map.put("totalLevel",countMap.get("second"));
|
||||
return ApiResult.ok(map);
|
||||
|
@ -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<Object> signIntegral(){
|
||||
YxUser yxUser = LocalUser.getUser();
|
||||
int integral = userSignService.sign(yxUser);;
|
||||
int integral = userSignService.sign(yxUser);
|
||||
|
||||
Map<String,Object> map = new LinkedHashMap<>();
|
||||
map.put("integral",integral);
|
||||
|
@ -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.bean.LocalUser;
|
||||
import co.yixiang.common.interceptor.AuthCheck;
|
||||
import co.yixiang.constant.SystemConfigConstants;
|
||||
|
@ -12,7 +12,7 @@ import cn.hutool.core.bean.BeanUtil;
|
||||
import co.yixiang.api.ApiResult;
|
||||
import co.yixiang.api.YshopException;
|
||||
import co.yixiang.enums.ShopCommonEnum;
|
||||
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;
|
||||
|
@ -14,7 +14,7 @@ import cn.hutool.core.util.StrUtil;
|
||||
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.bean.LocalUser;
|
||||
import co.yixiang.common.interceptor.AuthCheck;
|
||||
import co.yixiang.modules.user.domain.YxUser;
|
||||
@ -24,12 +24,10 @@ import co.yixiang.modules.wechat.rest.param.WxPhoneParam;
|
||||
import co.yixiang.modules.mp.config.WxMaConfiguration;
|
||||
import co.yixiang.utils.RedisUtil;
|
||||
import co.yixiang.utils.RedisUtils;
|
||||
import co.yixiang.utils.SecurityUtils;
|
||||
import co.yixiang.utils.ShopKeyUtils;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import me.chanjar.weixin.common.error.WxErrorException;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
|
@ -6,7 +6,7 @@ import co.yixiang.api.ApiResult;
|
||||
import co.yixiang.api.YshopException;
|
||||
import co.yixiang.common.bean.LocalUser;
|
||||
import co.yixiang.common.interceptor.AuthCheck;
|
||||
import co.yixiang.logging.aop.log.AppLog;
|
||||
import co.yixiang.modules.logging.aop.log.AppLog;
|
||||
import co.yixiang.modules.order.domain.YxExpress;
|
||||
import co.yixiang.modules.order.service.YxExpressService;
|
||||
import co.yixiang.modules.order.service.dto.YxExpressQueryCriteria;
|
||||
|
@ -9,8 +9,12 @@ server:
|
||||
tomcat:
|
||||
uri-encoding: UTF-8
|
||||
|
||||
|
||||
spring:
|
||||
mvc:
|
||||
pathmatch:
|
||||
matching-strategy: ant_path_matcher
|
||||
main:
|
||||
allow-circular-references: true
|
||||
freemarker:
|
||||
check-template-location: false
|
||||
profiles:
|
||||
|
Reference in New Issue
Block a user