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

View File

@ -43,6 +43,14 @@ public interface DevConfigService extends IService<DevConfig> {
*/ */
Page<DevConfig> page(DevConfigPageParam devConfigPageParam); 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.CollStreamUtil;
import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.convert.Convert; import cn.hutool.core.convert.Convert;
import cn.hutool.core.util.DesensitizedUtil;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; 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); 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 @Override
public List<DevConfig> list(DevConfigListParam devConfigListParam) { public List<DevConfig> list(DevConfigListParam devConfigListParam) {
LambdaQueryWrapper<DevConfig> lambdaQueryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<DevConfig> lambdaQueryWrapper = new LambdaQueryWrapper<>();
@ -101,11 +108,7 @@ public class DevConfigServiceImpl extends ServiceImpl<DevConfigMapper, DevConfig
if(ObjectUtil.isNotEmpty(devConfigListParam.getCategory())) { if(ObjectUtil.isNotEmpty(devConfigListParam.getCategory())) {
lambdaQueryWrapper.eq(DevConfig::getCategory, devConfigListParam.getCategory()); lambdaQueryWrapper.eq(DevConfig::getCategory, devConfigListParam.getCategory());
} }
return this.list(lambdaQueryWrapper).stream().peek(devConfig -> { return this.list(lambdaQueryWrapper);
if(devConfig.getConfigKey().equals(SNOWY_SYS_DEFAULT_PASSWORD_KEY)) {
devConfig.setConfigValue(DesensitizedUtil.password(devConfig.getConfigValue()));
}
}).collect(Collectors.toList());
} }
@Override @Override

View File

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

View File

@ -12,7 +12,10 @@
*/ */
package vip.xiaonuo.sys.modular.org.mapper; 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 com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import vip.xiaonuo.sys.modular.org.entity.SysOrg; 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 * @date 2022/4/21 18:37
**/ **/
public interface SysOrgMapper extends BaseMapper<SysOrg> { 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"> <!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"> <mapper namespace="vip.xiaonuo.sys.modular.org.mapper.SysOrgMapper">
<delete id="deleteIgnoreInterceptor">
DELETE FROM SYS_ORG ${ew.customSqlSegment}
</delete>
</mapper> </mapper>

View File

@ -12,7 +12,10 @@
*/ */
package vip.xiaonuo.sys.modular.position.mapper; 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 com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import vip.xiaonuo.sys.modular.position.entity.SysPosition; 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 * @date 2022/4/21 18:37
**/ **/
public interface SysPositionMapper extends BaseMapper<SysPosition> { 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"> <!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"> <mapper namespace="vip.xiaonuo.sys.modular.position.mapper.SysPositionMapper">
<delete id="deleteIgnoreInterceptor">
DELETE FROM SYS_POSITION ${ew.customSqlSegment}
</delete>
</mapper> </mapper>

View File

@ -12,7 +12,10 @@
*/ */
package vip.xiaonuo.sys.modular.resource.mapper; 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 com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import vip.xiaonuo.sys.modular.resource.entity.SysButton; 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 * @date 2022/4/21 18:37
**/ **/
public interface SysButtonMapper extends BaseMapper<SysButton> { 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; 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 com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import vip.xiaonuo.sys.modular.resource.entity.SysMenu; 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 * @date 2022/4/21 18:37
**/ **/
public interface SysMenuMapper extends BaseMapper<SysMenu> { 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; 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 com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import vip.xiaonuo.sys.modular.resource.entity.SysModule; 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 * @date 2022/4/21 18:37
**/ **/
public interface SysModuleMapper extends BaseMapper<SysModule> { 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"> <!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"> <mapper namespace="vip.xiaonuo.sys.modular.resource.mapper.SysButtonMapper">
<delete id="deleteIgnoreInterceptor">
DELETE FROM SYS_RESOURCE ${ew.customSqlSegment}
</delete>
</mapper> </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"> <!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"> <mapper namespace="vip.xiaonuo.sys.modular.resource.mapper.SysMenuMapper">
<delete id="deleteIgnoreInterceptor">
DELETE FROM SYS_RESOURCE ${ew.customSqlSegment}
</delete>
</mapper> </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"> <!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"> <mapper namespace="vip.xiaonuo.sys.modular.resource.mapper.SysModuleMapper">
<delete id="deleteIgnoreInterceptor">
DELETE FROM SYS_RESOURCE ${ew.customSqlSegment}
</delete>
</mapper> </mapper>

View File

@ -12,7 +12,10 @@
*/ */
package vip.xiaonuo.sys.modular.role.mapper; 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 com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import vip.xiaonuo.sys.modular.role.entity.SysRole; 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 * @date 2022/4/21 18:37
**/ **/
public interface SysRoleMapper extends BaseMapper<SysRole> { 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"> <!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"> <mapper namespace="vip.xiaonuo.sys.modular.role.mapper.SysRoleMapper">
<delete id="deleteIgnoreInterceptor">
DELETE FROM SYS_ROLE ${ew.customSqlSegment}
</delete>
</mapper> </mapper>

View File

@ -12,7 +12,10 @@
*/ */
package vip.xiaonuo.sys.modular.user.mapper; 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 com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
import vip.xiaonuo.sys.modular.user.entity.SysUser; 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> { 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"> <mapper namespace="vip.xiaonuo.sys.modular.user.mapper.SysUserMapper">
<delete id="deleteIgnoreInterceptor">
DELETE FROM SYS_USER ${ew.customSqlSegment}
</delete>
</mapper> </mapper>

View File

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