修复了一些bug

This commit is contained in:
czx
2019-07-03 22:46:06 +08:00
parent 364a6b7b37
commit f6ddd04217
19 changed files with 59 additions and 52 deletions

View File

@@ -1,7 +1,7 @@
<h1> X-SpringBoot </h1> <h1> X-SpringBoot </h1>
![Image text](https://img.shields.io/badge/x--springboot-v2.1-green.svg) ![Image text](https://img.shields.io/badge/x--springboot-v2.1.1-green.svg)
![Image text](https://img.shields.io/badge/springboot-2.1.3RELEASE-green.svg) ![Image text](https://img.shields.io/badge/springboot-2.1.3-green.svg)
![Image text](https://img.shields.io/badge/MyBatis%20Plus-3.1.0-green.svg) ![Image text](https://img.shields.io/badge/MyBatis%20Plus-3.1.0-green.svg)
[更新日志](https://github.com/yzcheng90/X-SpringBoot/tree/master/doc/updateLog.md) | [项目地址](https://github.com/yzcheng90) [更新日志](https://github.com/yzcheng90/X-SpringBoot/tree/master/doc/updateLog.md) | [项目地址](https://github.com/yzcheng90)
@@ -134,6 +134,6 @@ X-SpringBoot
- 交流QQ群17470566 - 交流QQ群17470566
- 本人QQ913624256 - 本人QQ913624256
- 如果喜欢记得star fork 谢谢您的关注 x_springboot会持续维护 - 如果喜欢记得star fork 谢谢您的关注 x-springboot会持续维护

View File

@@ -1,3 +1,6 @@
### v2.1.1###
- 群里及issues中提到的一些bug修复
### v2.1 ### ### v2.1 ###
- 加入代码生成模块 - 加入代码生成模块
- 加入APP管理模块 - 加入APP管理模块

View File

@@ -4,7 +4,7 @@
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<groupId>x-springboot</groupId> <groupId>x-springboot</groupId>
<artifactId>x-springboot</artifactId> <artifactId>x-springboot</artifactId>
<version>2.1.0</version> <version>2.1.1</version>
<packaging>jar</packaging> <packaging>jar</packaging>
<description>x-springboot</description> <description>x-springboot</description>

View File

@@ -193,7 +193,7 @@ public class GenUtils {
} }
if (template.contains("Mapper.xml.vm" )) { if (template.contains("Mapper.xml.vm" )) {
return "main" + File.separator + "resources" + File.separator + "mapper" + File.separator + moduleName + File.separator + className + "mapper.xml"; return "main" + File.separator + "resources" + File.separator + "mapper" + File.separator + moduleName + File.separator + className + "Mapper.xml";
} }
if (template.contains("list.html.vm" )) { if (template.contains("list.html.vm" )) {

View File

@@ -1,9 +1,10 @@
package com.suke.czx.modules.oss.cloud; package com.suke.czx.modules.oss.cloud;
import com.suke.czx.common.utils.Constant;
import com.suke.czx.common.utils.SpringContextUtils;
import com.suke.czx.modules.sys.service.SysConfigService;
import com.suke.czx.common.utils.ConfigConstant; import com.suke.czx.common.utils.ConfigConstant;
import com.suke.czx.common.utils.Constant;
import com.suke.czx.modules.sys.service.SysConfigService;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Component;
/** /**
* 文件上传Factory * 文件上传Factory
@@ -11,14 +12,12 @@ import com.suke.czx.common.utils.ConfigConstant;
* @email object_czx@163.com * @email object_czx@163.com
* @date 2017-03-26 10:18 * @date 2017-03-26 10:18
*/ */
public final class OSSFactory { @Component
private static SysConfigService sysConfigService; @AllArgsConstructor
public class OSSFactory {
private SysConfigService sysConfigService;
static { public CloudStorageService build(){
OSSFactory.sysConfigService = (SysConfigService) SpringContextUtils.getBean("sysConfigService");
}
public static CloudStorageService build(){
//获取云存储配置信息 //获取云存储配置信息
CloudStorageConfig config = sysConfigService.getConfigObject(ConfigConstant.CLOUD_STORAGE_CONFIG_KEY, CloudStorageConfig.class); CloudStorageConfig config = sysConfigService.getConfigObject(ConfigConstant.CLOUD_STORAGE_CONFIG_KEY, CloudStorageConfig.class);

View File

@@ -51,6 +51,7 @@ public class SysOssController extends AbstractController {
private final SysOssService sysOssService; private final SysOssService sysOssService;
private final SysConfigService sysConfigService; private final SysConfigService sysConfigService;
private final OSSFactory ossFactory;
private final static String KEY = ConfigConstant.CLOUD_STORAGE_CONFIG_KEY; private final static String KEY = ConfigConstant.CLOUD_STORAGE_CONFIG_KEY;
@@ -127,7 +128,7 @@ public class SysOssController extends AbstractController {
//上传文件 //上传文件
String suffix = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")); String suffix = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf("."));
String url = OSSFactory.build().uploadSuffix(file.getBytes(), suffix); String url = ossFactory.build().uploadSuffix(file.getBytes(), suffix);
//保存文件信息 //保存文件信息
SysOss ossEntity = new SysOss(); SysOss ossEntity = new SysOss();
@@ -163,6 +164,7 @@ public class SysOssController extends AbstractController {
ApkVersion apkVersion = ApkVersion ApkVersion apkVersion = ApkVersion
.builder() .builder()
.versionCode(Math.toIntExact(apkMeta.getVersionCode())) .versionCode(Math.toIntExact(apkMeta.getVersionCode()))
.versionName(apkMeta.getVersionName())
.appName(apkMeta.getLabel()) .appName(apkMeta.getLabel())
.packageName(apkMeta.getPackageName()) .packageName(apkMeta.getPackageName())
.fileName(file.getOriginalFilename()) .fileName(file.getOriginalFilename())
@@ -172,7 +174,7 @@ public class SysOssController extends AbstractController {
//上传文件 //上传文件
// String suffix = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf(".")); // String suffix = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf("."));
// String url = OSSFactory.build().uploadSuffix(file.getBytes(), suffix); // String url = ossFactory.build().uploadSuffix(file.getBytes(), suffix);
// //
// //保存文件信息 // //保存文件信息
// SysOss ossEntity = new SysOss(); // SysOss ossEntity = new SysOss();

View File

@@ -1,16 +1,14 @@
package com.suke.czx.modules.oss.service.impl; package com.suke.czx.modules.oss.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.suke.czx.modules.oss.mapper.SysOssMapper;
import com.suke.czx.modules.oss.entity.SysOss; import com.suke.czx.modules.oss.entity.SysOss;
import com.suke.czx.modules.oss.mapper.SysOssMapper;
import com.suke.czx.modules.oss.service.SysOssService; import com.suke.czx.modules.oss.service.SysOssService;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@Service @Service
@AllArgsConstructor
public class SysOssServiceImpl extends ServiceImpl<SysOssMapper,SysOss> implements SysOssService { public class SysOssServiceImpl extends ServiceImpl<SysOssMapper,SysOss> implements SysOssService {

View File

@@ -7,6 +7,7 @@ import com.google.code.kaptcha.Producer;
import com.suke.czx.common.base.AbstractController; import com.suke.czx.common.base.AbstractController;
import com.suke.czx.common.utils.Constant; import com.suke.czx.common.utils.Constant;
import com.suke.czx.common.utils.R; import com.suke.czx.common.utils.R;
import com.suke.czx.common.utils.ShiroUtils;
import com.suke.czx.modules.sys.entity.SysUser; import com.suke.czx.modules.sys.entity.SysUser;
import com.suke.czx.modules.sys.service.SysUserService; import com.suke.czx.modules.sys.service.SysUserService;
import com.suke.czx.modules.sys.service.SysUserTokenService; import com.suke.czx.modules.sys.service.SysUserTokenService;
@@ -44,6 +45,12 @@ public class SysLoginController extends AbstractController {
private final SysUserService sysUserService; private final SysUserService sysUserService;
private final SysUserTokenService sysUserTokenService; private final SysUserTokenService sysUserTokenService;
private final RedisTemplate redisTemplate; private final RedisTemplate redisTemplate;
private final ShiroUtils shiroUtils;
@RequestMapping("/")
public R hello(){
return R.ok("hello welcome to use x-springboot");
}
/** /**
* 验证码 * 验证码
@@ -173,6 +180,7 @@ public class SysLoginController extends AbstractController {
@RequestMapping(value = "/sys/logout", method = RequestMethod.POST) @RequestMapping(value = "/sys/logout", method = RequestMethod.POST)
public R logout() { public R logout() {
sysUserTokenService.logout(getUserId()); sysUserTokenService.logout(getUserId());
shiroUtils.getSubject().logout();
return R.ok(); return R.ok();
} }

View File

@@ -52,9 +52,9 @@ public class SysRoleController extends AbstractController {
queryWrapper queryWrapper
.like("role_name",MapUtil.getStr(params,"key")); .like("role_name",MapUtil.getStr(params,"key"));
} }
IPage<SysRole> sysConfigList = sysRoleService.page(mpPageConvert.<SysRole>pageParamConvert(params),queryWrapper); IPage<SysRole> sysRoleIPage = sysRoleService.page(mpPageConvert.<SysRole>pageParamConvert(params),queryWrapper);
return R.ok().put("page", mpPageConvert.pageValueConvert(sysConfigList)); return R.ok().put("page", mpPageConvert.pageValueConvert(sysRoleIPage));
} }
/** /**
@@ -63,7 +63,6 @@ public class SysRoleController extends AbstractController {
@RequestMapping("/select") @RequestMapping("/select")
@RequiresPermissions("sys:role:select") @RequiresPermissions("sys:role:select")
public R select(){ public R select(){
Map<String, Object> map = new HashMap<>();
List<SysRole> list; List<SysRole> list;
//如果不是超级管理员,则只查询自己所拥有的角色列表 //如果不是超级管理员,则只查询自己所拥有的角色列表
if(getUserId() != Constant.SUPER_ADMIN){ if(getUserId() != Constant.SUPER_ADMIN){
@@ -103,7 +102,7 @@ public class SysRoleController extends AbstractController {
ValidatorUtils.validateEntity(role); ValidatorUtils.validateEntity(role);
role.setCreateUserId(getUserId()); role.setCreateUserId(getUserId());
sysRoleService.save(role); sysRoleService.saveRoleMenu(role);
return R.ok(); return R.ok();
} }
@@ -118,7 +117,7 @@ public class SysRoleController extends AbstractController {
ValidatorUtils.validateEntity(role); ValidatorUtils.validateEntity(role);
role.setCreateUserId(getUserId()); role.setCreateUserId(getUserId());
sysRoleService.updateById(role); sysRoleService.updateRoleMenu(role);
return R.ok(); return R.ok();
} }

View File

@@ -125,7 +125,7 @@ public class SysUserController extends AbstractController {
ValidatorUtils.validateEntity(user); ValidatorUtils.validateEntity(user);
user.setCreateUserId(getUserId()); user.setCreateUserId(getUserId());
sysUserService.save(user); sysUserService.saveUserRole(user);
return R.ok(); return R.ok();
} }
@@ -140,7 +140,7 @@ public class SysUserController extends AbstractController {
ValidatorUtils.validateEntity(user); ValidatorUtils.validateEntity(user);
user.setCreateUserId(getUserId()); user.setCreateUserId(getUserId());
sysUserService.updateById(user); sysUserService.updateUserRole(user);
return R.ok(); return R.ok();
} }

View File

@@ -2,9 +2,7 @@ package com.suke.czx.modules.sys.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.suke.czx.modules.sys.entity.SysRoleMenu; import com.suke.czx.modules.sys.entity.SysRoleMenu;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
import java.util.Map; import java.util.Map;
/** /**
@@ -16,10 +14,5 @@ import java.util.Map;
*/ */
public interface SysRoleMenuMapper extends BaseMapper<SysRoleMenu> { public interface SysRoleMenuMapper extends BaseMapper<SysRoleMenu> {
/**
* 根据角色ID获取菜单ID列表
*/
List<Long> queryMenuIdList(Long roleId);
void saveUserMenu(Map<String, Object> map); void saveUserMenu(Map<String, Object> map);
} }

View File

@@ -22,4 +22,7 @@ public interface SysRoleService extends IService<SysRole> {
void deleteBath(Long[] ids); void deleteBath(Long[] ids);
void saveRoleMenu(SysRole role);
void updateRoleMenu(SysRole role);
} }

View File

@@ -28,4 +28,8 @@ public interface SysUserService extends IService<SysUser> {
* @param newPassword 新密码 * @param newPassword 新密码
*/ */
int updatePassword(Long userId, String password, String newPassword); int updatePassword(Long userId, String password, String newPassword);
void saveUserRole(SysUser user);
void updateUserRole(SysUser user);
} }

View File

@@ -1,11 +1,8 @@
package com.suke.czx.modules.sys.service.impl; package com.suke.czx.modules.sys.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.suke.czx.modules.sys.mapper.SysLogMapper;
import com.suke.czx.modules.sys.entity.SysLog; import com.suke.czx.modules.sys.entity.SysLog;
import com.suke.czx.modules.sys.mapper.SysLogMapper;
import com.suke.czx.modules.sys.service.SysLogService; import com.suke.czx.modules.sys.service.SysLogService;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;

View File

@@ -1,5 +1,6 @@
package com.suke.czx.modules.sys.service.impl; package com.suke.czx.modules.sys.service.impl;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.suke.czx.modules.sys.mapper.SysRoleMenuMapper; import com.suke.czx.modules.sys.mapper.SysRoleMenuMapper;
import com.suke.czx.modules.sys.entity.SysRoleMenu; import com.suke.czx.modules.sys.entity.SysRoleMenu;
@@ -8,6 +9,7 @@ import com.suke.czx.modules.sys.service.SysRoleMenuService;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.stream.Collectors;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@@ -32,7 +34,7 @@ public class SysRoleMenuServiceImpl extends ServiceImpl<SysRoleMenuMapper,SysRol
@Transactional @Transactional
public void saveOrUpdate(Long roleId, List<Long> menuIdList) { public void saveOrUpdate(Long roleId, List<Long> menuIdList) {
//先删除角色与菜单关系 //先删除角色与菜单关系
sysRoleMenuMapper.deleteById(roleId); sysRoleMenuMapper.delete(Wrappers.<SysRoleMenu>query().lambda().eq(SysRoleMenu::getRoleId,roleId));
if(menuIdList.size() == 0){ if(menuIdList.size() == 0){
return ; return ;
@@ -47,7 +49,11 @@ public class SysRoleMenuServiceImpl extends ServiceImpl<SysRoleMenuMapper,SysRol
@Override @Override
public List<Long> queryMenuIdList(Long roleId) { public List<Long> queryMenuIdList(Long roleId) {
return sysRoleMenuMapper.queryMenuIdList(roleId); return sysRoleMenuMapper
.selectList(Wrappers.<SysRoleMenu>query().lambda().eq(SysRoleMenu::getRoleId,roleId))
.stream()
.map(SysRoleMenu::getMenuId)
.collect(Collectors.toList());
} }
} }

View File

@@ -36,7 +36,7 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper,SysRole> imple
@Override @Override
@Transactional @Transactional
public boolean save(SysRole role) { public void saveRoleMenu(SysRole role) {
role.setCreateTime(new Date()); role.setCreateTime(new Date());
sysRoleMapper.insert(role); sysRoleMapper.insert(role);
@@ -45,11 +45,11 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper,SysRole> imple
//保存角色与菜单关系 //保存角色与菜单关系
sysRoleMenuService.saveOrUpdate(role.getRoleId(), role.getMenuIdList()); sysRoleMenuService.saveOrUpdate(role.getRoleId(), role.getMenuIdList());
return true;
} }
@Override
@Transactional @Transactional
public void update(SysRole role) { public void updateRoleMenu(SysRole role) {
sysRoleMapper.updateById(role); sysRoleMapper.updateById(role);
//检查权限是否越权 //检查权限是否越权

View File

@@ -48,7 +48,7 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper,SysUser> imple
@Override @Override
@Transactional @Transactional
public boolean save(SysUser user) { public void saveUserRole(SysUser user) {
user.setCreateTime(new Date()); user.setCreateTime(new Date());
//sha256加密 //sha256加密
String salt = RandomStringUtils.randomAlphanumeric(20); String salt = RandomStringUtils.randomAlphanumeric(20);
@@ -63,11 +63,11 @@ public class SysUserServiceImpl extends ServiceImpl<SysUserMapper,SysUser> imple
//保存用户与角色关系 //保存用户与角色关系
saveUserRoleList(user); saveUserRoleList(user);
return true;
} }
@Override
@Transactional @Transactional
public void update(SysUser user) { public void updateUserRole(SysUser user) {
if(StringUtils.isBlank(user.getPassword())){ if(StringUtils.isBlank(user.getPassword())){
user.setPassword(null); user.setPassword(null);
}else{ }else{

View File

@@ -17,9 +17,4 @@
) )
</foreach> </foreach>
</insert> </insert>
<select id="queryMenuIdList" resultType="long">
select menu_id from sys_role_menu where role_id = #{value}
</select>
</mapper> </mapper>

View File

@@ -130,7 +130,7 @@
<orderEntry type="library" name="Maven: org.apache.shiro:shiro-web:1.4.0" level="project" /> <orderEntry type="library" name="Maven: org.apache.shiro:shiro-web:1.4.0" level="project" />
<orderEntry type="library" name="Maven: com.github.axet:kaptcha:0.0.9" level="project" /> <orderEntry type="library" name="Maven: com.github.axet:kaptcha:0.0.9" level="project" />
<orderEntry type="library" name="Maven: com.jhlabs:filters:2.0.235" level="project" /> <orderEntry type="library" name="Maven: com.jhlabs:filters:2.0.235" level="project" />
<orderEntry type="library" name="Maven: com.qiniu:qiniu-java-sdk:7.2.18" level="project" /> <orderEntry type="library" name="Maven: com.qiniu:qiniu-java-sdk:7.2.23" level="project" />
<orderEntry type="library" name="Maven: com.google.code.gson:gson:2.8.5" level="project" /> <orderEntry type="library" name="Maven: com.google.code.gson:gson:2.8.5" level="project" />
<orderEntry type="library" name="Maven: com.aliyun.oss:aliyun-sdk-oss:2.5.0" level="project" /> <orderEntry type="library" name="Maven: com.aliyun.oss:aliyun-sdk-oss:2.5.0" level="project" />
<orderEntry type="library" name="Maven: org.apache.httpcomponents:httpclient:4.5.7" level="project" /> <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpclient:4.5.7" level="project" />