【修复】同步修复bug若干

pull/188/head
徐玉祥 2023-12-26 21:12:52 +08:00
parent 00e508f3c8
commit e66e8591dd
20 changed files with 142 additions and 21 deletions

View File

@ -83,4 +83,11 @@ public class CommonCacheOperator {
}
return results;
}
public void removeBatch(String pattern) {
Set<String> keys = redisTemplate.keys(CACHE_KEY_PREFIX + pattern);
if (keys != null) {
redisTemplate.delete(keys);
}
}
}

View File

@ -26,7 +26,6 @@ import vip.xiaonuo.common.annotation.CommonLog;
import vip.xiaonuo.common.pojo.CommonResult;
import vip.xiaonuo.common.pojo.CommonValidList;
import vip.xiaonuo.dev.modular.config.entity.DevConfig;
import vip.xiaonuo.dev.modular.config.enums.DevConfigCategoryEnum;
import vip.xiaonuo.dev.modular.config.param.*;
import vip.xiaonuo.dev.modular.config.service.DevConfigService;
@ -73,9 +72,7 @@ public class DevConfigController {
@ApiOperation("获取系统基础配置")
@GetMapping("/dev/config/sysBaseList")
public CommonResult<List<DevConfig>> sysBaseList() {
DevConfigListParam devConfigListParam = new DevConfigListParam();
devConfigListParam.setCategory(DevConfigCategoryEnum.SYS_BASE.getValue());
return CommonResult.data(devConfigService.list(devConfigListParam));
return CommonResult.data(devConfigService.sysBaseList());
}
/**

View File

@ -43,6 +43,14 @@ public interface DevConfigService extends IService<DevConfig> {
*/
Page<DevConfig> page(DevConfigPageParam devConfigPageParam);
/**
*
*
* @author xuyuxiang
* @date 2022/4/24 20:08
*/
List<DevConfig> sysBaseList();
/**
*
*

View File

@ -16,7 +16,6 @@ import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.collection.CollStreamUtil;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.util.DesensitizedUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@ -92,6 +91,14 @@ public class DevConfigServiceImpl extends ServiceImpl<DevConfigMapper, DevConfig
return this.page(CommonPageRequest.defaultPage(), queryWrapper);
}
@Override
public List<DevConfig> sysBaseList() {
DevConfigListParam devConfigListParam = new DevConfigListParam();
devConfigListParam.setCategory(DevConfigCategoryEnum.SYS_BASE.getValue());
return this.list(devConfigListParam).stream().filter(devConfig -> !devConfig.getConfigKey()
.equals(SNOWY_SYS_DEFAULT_PASSWORD_KEY)).collect(Collectors.toList());
}
@Override
public List<DevConfig> list(DevConfigListParam devConfigListParam) {
LambdaQueryWrapper<DevConfig> lambdaQueryWrapper = new LambdaQueryWrapper<>();
@ -101,11 +108,7 @@ public class DevConfigServiceImpl extends ServiceImpl<DevConfigMapper, DevConfig
if(ObjectUtil.isNotEmpty(devConfigListParam.getCategory())) {
lambdaQueryWrapper.eq(DevConfig::getCategory, devConfigListParam.getCategory());
}
return this.list(lambdaQueryWrapper).stream().peek(devConfig -> {
if(devConfig.getConfigKey().equals(SNOWY_SYS_DEFAULT_PASSWORD_KEY)) {
devConfig.setConfigValue(DesensitizedUtil.password(devConfig.getConfigValue()));
}
}).collect(Collectors.toList());
return this.list(lambdaQueryWrapper);
}
@Override

View File

@ -19,6 +19,7 @@ import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.RandomUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.cron.CronUtil;
import cn.hutool.cron.pattern.CronPattern;
import cn.hutool.extra.spring.SpringUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@ -107,7 +108,9 @@ public class DevJobServiceImpl extends ServiceImpl<DevJobMapper, DevJob> impleme
private void checkParam(DevJobAddParam devJobAddParam) {
DevJobCategoryEnum.validate(devJobAddParam.getCategory());
if(!CronExpression.isValidExpression(devJobAddParam.getCronExpression())) {
try {
CronPattern.of(devJobAddParam.getCronExpression());
} catch (Exception e) {
throw new CommonException("cron表达式{}格式不正确", devJobAddParam.getCronExpression());
}
try {

View File

@ -12,7 +12,10 @@
*/
package vip.xiaonuo.sys.modular.org.mapper;
import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import vip.xiaonuo.sys.modular.org.entity.SysOrg;
/**
@ -22,4 +25,13 @@ import vip.xiaonuo.sys.modular.org.entity.SysOrg;
* @date 2022/4/21 18:37
**/
public interface SysOrgMapper extends BaseMapper<SysOrg> {
/**
*
*
* @author xuyuxiang
* @date 2023/12/25 23:20
*/
@InterceptorIgnore(tenantLine = "true")
void deleteIgnoreInterceptor(@Param("ew") LambdaQueryWrapper<SysOrg> lambdaQueryWrapper);
}

View File

@ -2,5 +2,7 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="vip.xiaonuo.sys.modular.org.mapper.SysOrgMapper">
<delete id="deleteIgnoreInterceptor">
DELETE FROM SYS_ORG ${ew.customSqlSegment}
</delete>
</mapper>

View File

@ -12,7 +12,10 @@
*/
package vip.xiaonuo.sys.modular.position.mapper;
import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import vip.xiaonuo.sys.modular.position.entity.SysPosition;
/**
@ -22,4 +25,13 @@ import vip.xiaonuo.sys.modular.position.entity.SysPosition;
* @date 2022/4/21 18:37
**/
public interface SysPositionMapper extends BaseMapper<SysPosition> {
/**
*
*
* @author xuyuxiang
* @date 2023/12/25 23:20
*/
@InterceptorIgnore(tenantLine = "true")
void deleteIgnoreInterceptor(@Param("ew") LambdaQueryWrapper<SysPosition> lambdaQueryWrapper);
}

View File

@ -2,5 +2,7 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="vip.xiaonuo.sys.modular.position.mapper.SysPositionMapper">
<delete id="deleteIgnoreInterceptor">
DELETE FROM SYS_POSITION ${ew.customSqlSegment}
</delete>
</mapper>

View File

@ -12,7 +12,10 @@
*/
package vip.xiaonuo.sys.modular.resource.mapper;
import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import vip.xiaonuo.sys.modular.resource.entity.SysButton;
/**
@ -22,4 +25,13 @@ import vip.xiaonuo.sys.modular.resource.entity.SysButton;
* @date 2022/4/21 18:37
**/
public interface SysButtonMapper extends BaseMapper<SysButton> {
/**
*
*
* @author xuyuxiang
* @date 2023/12/25 23:20
*/
@InterceptorIgnore(tenantLine = "true")
void deleteIgnoreInterceptor(@Param("ew") LambdaQueryWrapper<SysButton> lambdaQueryWrapper);
}

View File

@ -12,7 +12,10 @@
*/
package vip.xiaonuo.sys.modular.resource.mapper;
import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import vip.xiaonuo.sys.modular.resource.entity.SysMenu;
/**
@ -22,4 +25,13 @@ import vip.xiaonuo.sys.modular.resource.entity.SysMenu;
* @date 2022/4/21 18:37
**/
public interface SysMenuMapper extends BaseMapper<SysMenu> {
/**
*
*
* @author xuyuxiang
* @date 2023/12/25 23:20
*/
@InterceptorIgnore(tenantLine = "true")
void deleteIgnoreInterceptor(@Param("ew") LambdaQueryWrapper<SysMenu> lambdaQueryWrapper);
}

View File

@ -12,7 +12,10 @@
*/
package vip.xiaonuo.sys.modular.resource.mapper;
import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import vip.xiaonuo.sys.modular.resource.entity.SysModule;
/**
@ -22,4 +25,14 @@ import vip.xiaonuo.sys.modular.resource.entity.SysModule;
* @date 2022/4/21 18:37
**/
public interface SysModuleMapper extends BaseMapper<SysModule> {
/**
*
*
* @author xuyuxiang
* @date 2023/12/25 23:20
*/
@InterceptorIgnore(tenantLine = "true")
void deleteIgnoreInterceptor(@Param("ew") LambdaQueryWrapper<SysModule> lambdaQueryWrapper);
}

View File

@ -2,5 +2,7 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="vip.xiaonuo.sys.modular.resource.mapper.SysButtonMapper">
<delete id="deleteIgnoreInterceptor">
DELETE FROM SYS_RESOURCE ${ew.customSqlSegment}
</delete>
</mapper>

View File

@ -2,5 +2,7 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="vip.xiaonuo.sys.modular.resource.mapper.SysMenuMapper">
<delete id="deleteIgnoreInterceptor">
DELETE FROM SYS_RESOURCE ${ew.customSqlSegment}
</delete>
</mapper>

View File

@ -2,5 +2,7 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="vip.xiaonuo.sys.modular.resource.mapper.SysModuleMapper">
<delete id="deleteIgnoreInterceptor">
DELETE FROM SYS_RESOURCE ${ew.customSqlSegment}
</delete>
</mapper>

View File

@ -12,7 +12,10 @@
*/
package vip.xiaonuo.sys.modular.role.mapper;
import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import vip.xiaonuo.sys.modular.role.entity.SysRole;
/**
@ -22,4 +25,13 @@ import vip.xiaonuo.sys.modular.role.entity.SysRole;
* @date 2022/4/21 18:37
**/
public interface SysRoleMapper extends BaseMapper<SysRole> {
/**
*
*
* @author xuyuxiang
* @date 2023/12/25 23:20
*/
@InterceptorIgnore(tenantLine = "true")
void deleteIgnoreInterceptor(@Param("ew") LambdaQueryWrapper<SysRole> lambdaQueryWrapper);
}

View File

@ -2,5 +2,7 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="vip.xiaonuo.sys.modular.role.mapper.SysRoleMapper">
<delete id="deleteIgnoreInterceptor">
DELETE FROM SYS_ROLE ${ew.customSqlSegment}
</delete>
</mapper>

View File

@ -12,7 +12,10 @@
*/
package vip.xiaonuo.sys.modular.user.mapper;
import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import vip.xiaonuo.sys.modular.user.entity.SysUser;
/**
@ -23,4 +26,12 @@ import vip.xiaonuo.sys.modular.user.entity.SysUser;
**/
public interface SysUserMapper extends BaseMapper<SysUser> {
/**
*
*
* @author xuyuxiang
* @date 2023/12/25 23:20
*/
@InterceptorIgnore(tenantLine = "true")
void deleteIgnoreInterceptor(@Param("ew") LambdaQueryWrapper<SysUser> lambdaQueryWrapper);
}

View File

@ -3,4 +3,7 @@
<mapper namespace="vip.xiaonuo.sys.modular.user.mapper.SysUserMapper">
<delete id="deleteIgnoreInterceptor">
DELETE FROM SYS_USER ${ew.customSqlSegment}
</delete>
</mapper>

View File

@ -104,13 +104,12 @@ import vip.xiaonuo.sys.modular.user.service.SysUserService;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.awt.image.BufferedImage;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.util.*;
import java.util.concurrent.atomic.AtomicReference;
import java.util.concurrent.locks.Condition;
import java.util.stream.Collectors;
/**
@ -539,8 +538,13 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper, SysUser> impl
SysUser sysUser = this.queryEntity(StpUtil.getLoginIdAsString());
try {
String suffix = Objects.requireNonNull(FileUtil.getSuffix(file.getOriginalFilename())).toLowerCase();
String base64 = ImgUtil.toBase64DataUri(ImgUtil.scale(ImgUtil.toImage(file.getBytes()),
100, 100, null), suffix);
BufferedImage image = ImgUtil.toImage(file.getBytes());
String base64;
if(image.getWidth() <= 200 && image.getHeight() <= 200) {
base64 = ImgUtil.toBase64DataUri(image, suffix);
} else {
base64 = ImgUtil.toBase64DataUri(ImgUtil.scale(image, 200, 200, null), suffix);
}
this.update(new LambdaUpdateWrapper<SysUser>().eq(SysUser::getId,
sysUser.getId()).set(SysUser::getAvatar, base64));
return base64;