From 8d182add61bde4ca686feb9a2fea3158a4c468a8 Mon Sep 17 00:00:00 2001 From: ludj Date: Mon, 5 Dec 2022 14:38:16 +0800 Subject: [PATCH] =?UTF-8?q?=E8=A7=92=E8=89=B2=E4=BF=AE=E6=94=B9&&=E5=8E=BB?= =?UTF-8?q?=E9=99=A4=E7=BC=93=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/system/rest/RoleController.java | 41 ++++------- .../modules/system/service/RoleService.java | 29 +------- .../system/service/impl/DataServiceImpl.java | 11 ++- .../service/impl/DictDetailServiceImpl.java | 2 - .../system/service/impl/MenuServiceImpl.java | 2 - .../system/service/impl/RoleServiceImpl.java | 65 +++++++++--------- .../system/service/impl/UserServiceImpl.java | 13 ++-- nladmin-ui/src/assets/images/logo.png | Bin 8852 -> 3280 bytes nladmin-ui/src/assets/images/logo1.png | Bin 0 -> 8852 bytes nladmin-ui/src/assets/logo/logo.63028018.png | Bin 0 -> 3280 bytes nladmin-ui/src/views/system/menu/index.vue | 2 +- nladmin-ui/src/views/system/role/index.vue | 25 ++++--- 12 files changed, 73 insertions(+), 117 deletions(-) create mode 100644 nladmin-ui/src/assets/images/logo1.png create mode 100644 nladmin-ui/src/assets/logo/logo.63028018.png diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/modules/system/rest/RoleController.java b/nladmin-system/nlsso-server/src/main/java/org/nl/modules/system/rest/RoleController.java index 9788afb..e0c5662 100644 --- a/nladmin-system/nlsso-server/src/main/java/org/nl/modules/system/rest/RoleController.java +++ b/nladmin-system/nlsso-server/src/main/java/org/nl/modules/system/rest/RoleController.java @@ -7,14 +7,12 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.RequiredArgsConstructor; import org.nl.modules.logging.annotation.Log; -import org.nl.modules.system.domain.Role; import org.nl.modules.system.domain.vo.RoleVo; import org.nl.modules.system.service.RoleService; import org.nl.modules.wql.core.bean.WQLObject; import org.springframework.data.domain.Pageable; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; -import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import java.util.List; @@ -22,8 +20,8 @@ import java.util.Map; import java.util.Set; /** - * @author Zheng Jie - * @date 2018-12-03 + * @author ludj + * @date 2022-12-05 */ @RestController @RequiredArgsConstructor @@ -33,14 +31,6 @@ public class RoleController { private final RoleService roleService; - private static final String ENTITY_NAME = "role"; - - @ApiOperation("获取单个role") - @GetMapping(value = "/{id}") - @SaCheckPermission("roles:list") - public ResponseEntity query(@PathVariable Long id) { - return new ResponseEntity<>(roleService.findById(id), HttpStatus.OK); - } @ApiOperation("获取单个role") @GetMapping(value = "/all") @@ -61,28 +51,27 @@ public class RoleController { @Log("新增角色") @ApiOperation("新增角色") @PostMapping - @SaCheckPermission("roles:add") - public ResponseEntity create(@Validated @RequestBody Role resources) { -// roleService.create(resources); +// @SaCheckPermission("roles:add") + public ResponseEntity create(@RequestBody JSONObject param) { + roleService.create(param); return new ResponseEntity<>(HttpStatus.CREATED); } - /* @Log("修改角色") - @ApiOperation("修改角色") - @PutMapping - @SaCheckPermission("roles:edit") - public ResponseEntity update(@Validated(Role.Update.class) @RequestBody Role resources) { - getLevels(resources.getLevel()); - roleService.update(resources); - return new ResponseEntity<>(HttpStatus.NO_CONTENT); - } - */ + @Log("修改角色") + @ApiOperation("修改角色") + @PutMapping +// @SaCheckPermission("roles:edit") + public ResponseEntity update(@RequestBody JSONObject param) { + roleService.update(param); + return new ResponseEntity<>(HttpStatus.NO_CONTENT); + } + @Log("修改角色菜单") @ApiOperation("修改角色菜单") @PutMapping(value = "/menu") // @SaCheckPermission("roles:edit") public ResponseEntity updateMenu(@RequestBody JSONObject form) { - String role_id = form.getString("id"); + String role_id = form.getString("role_id"); JSONArray menus = form.getJSONArray("menus"); WQLObject rmTab = WQLObject.getWQLObject("sys_roles_menus"); rmTab.delete("role_id = " + role_id + ""); diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/modules/system/service/RoleService.java b/nladmin-system/nlsso-server/src/main/java/org/nl/modules/system/service/RoleService.java index bc98ff7..d1890f8 100644 --- a/nladmin-system/nlsso-server/src/main/java/org/nl/modules/system/service/RoleService.java +++ b/nladmin-system/nlsso-server/src/main/java/org/nl/modules/system/service/RoleService.java @@ -51,8 +51,6 @@ public interface RoleService { */ List findRoles(Long id, Classtarget); - RoleDto findById(Long id); - /** * 创建 * @param form / @@ -61,9 +59,9 @@ public interface RoleService { /** * 编辑 - * @param resources / + * @param form / */ - void update(Role resources); + void update(JSONObject form); /** * 删除 @@ -78,12 +76,7 @@ public interface RoleService { */ List findByUsersId(Long id); - /** - * 根据角色查询角色级别 - * @param roles / - * @return / - */ - Integer findByRoles(Set roles); + /** * 修改绑定的菜单 @@ -97,20 +90,6 @@ public interface RoleService { * @param id / */ void untiedMenu(Long id); - /** - * 查询全部 - * @param criteria 条件 - * @return / - */ - List queryAll(RoleQueryCriteria criteria); - - - /** - * 获取用户权限信息 - * @param user 用户信息 - * @return 权限信息 - */ -// List mapToGrantedAuthorities(UserDto user); /** * 通过id获取用户的权限 @@ -119,6 +98,4 @@ public interface RoleService { */ List getPermissionList(JSONObject userDto); - - } diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/modules/system/service/impl/DataServiceImpl.java b/nladmin-system/nlsso-server/src/main/java/org/nl/modules/system/service/impl/DataServiceImpl.java index d3a3d8b..cfae8fc 100644 --- a/nladmin-system/nlsso-server/src/main/java/org/nl/modules/system/service/impl/DataServiceImpl.java +++ b/nladmin-system/nlsso-server/src/main/java/org/nl/modules/system/service/impl/DataServiceImpl.java @@ -15,21 +15,19 @@ */ package org.nl.modules.system.service.impl; -import cn.hutool.core.util.ObjectUtil; import lombok.RequiredArgsConstructor; -import org.nl.modules.common.utils.enums.DataScopeEnum; -import org.nl.modules.system.domain.Dept; import org.nl.modules.system.domain.User; import org.nl.modules.system.service.DataService; import org.nl.modules.system.service.DeptService; import org.nl.modules.system.service.RoleService; import org.nl.modules.system.service.dto.RoleSmallDto; -import org.nl.modules.system.service.dto.UserDto; import org.springframework.cache.annotation.CacheConfig; -import org.springframework.cache.annotation.Cacheable; import org.springframework.stereotype.Service; -import java.util.*; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Set; /** * @author Zheng Jie @@ -51,7 +49,6 @@ public class DataServiceImpl implements DataService { * @return / */ @Override - @Cacheable(key = "'user:' + #p0.id") public List getDeptIds(User user) { // 用于存储部门id Set deptIds = new HashSet<>(); diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/modules/system/service/impl/DictDetailServiceImpl.java b/nladmin-system/nlsso-server/src/main/java/org/nl/modules/system/service/impl/DictDetailServiceImpl.java index c3ff78f..295ccff 100644 --- a/nladmin-system/nlsso-server/src/main/java/org/nl/modules/system/service/impl/DictDetailServiceImpl.java +++ b/nladmin-system/nlsso-server/src/main/java/org/nl/modules/system/service/impl/DictDetailServiceImpl.java @@ -32,7 +32,6 @@ import org.nl.modules.wql.WQL; import org.nl.modules.wql.core.bean.WQLObject; import org.nl.modules.wql.util.WqlUtil; import org.springframework.cache.annotation.CacheConfig; -import org.springframework.cache.annotation.Cacheable; import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -116,7 +115,6 @@ public class DictDetailServiceImpl implements DictDetailService { } @Override - @Cacheable(key = "'name:' + #p0") public List getDictByName(String name) { List dictDtos = this.findByDictName(name); return dictDtos; diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/modules/system/service/impl/MenuServiceImpl.java b/nladmin-system/nlsso-server/src/main/java/org/nl/modules/system/service/impl/MenuServiceImpl.java index 1c6ecf2..8d8a4f6 100644 --- a/nladmin-system/nlsso-server/src/main/java/org/nl/modules/system/service/impl/MenuServiceImpl.java +++ b/nladmin-system/nlsso-server/src/main/java/org/nl/modules/system/service/impl/MenuServiceImpl.java @@ -101,7 +101,6 @@ public class MenuServiceImpl implements MenuService { @Override -// @Cacheable(key = "'id:' + #p0") public MenuDto findById(String id) { WQLObject menuTab = WQLObject.getWQLObject("sys_menu"); JSONObject json = menuTab.query("menu_id = '" + id + "'").uniqueResult(0); @@ -115,7 +114,6 @@ public class MenuServiceImpl implements MenuService { * @return / */ @Override -// @Cacheable(key = "'user:' + #p0") public List findByUser(String currentUserId) { JSONArray arr = WQL.getWO("QSYS_MENU01").addParam("flag", "4").addParam("user_id", String.valueOf(currentUserId)).process().getResultJSONArray(0); List list = new ArrayList<>(); diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/modules/system/service/impl/RoleServiceImpl.java b/nladmin-system/nlsso-server/src/main/java/org/nl/modules/system/service/impl/RoleServiceImpl.java index 52c0ba0..3ba2342 100644 --- a/nladmin-system/nlsso-server/src/main/java/org/nl/modules/system/service/impl/RoleServiceImpl.java +++ b/nladmin-system/nlsso-server/src/main/java/org/nl/modules/system/service/impl/RoleServiceImpl.java @@ -15,11 +15,15 @@ */ package org.nl.modules.system.service.impl; +import cn.dev33.satoken.stp.StpUtil; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import lombok.RequiredArgsConstructor; +import org.nl.modules.common.exception.BadRequestException; import org.nl.modules.common.utils.CacheKey; import org.nl.modules.common.utils.RedisUtils; import org.nl.modules.common.utils.SecurityUtils; @@ -29,14 +33,12 @@ import org.nl.modules.system.service.RoleService; import org.nl.modules.system.service.dto.RoleDto; import org.nl.modules.system.service.dto.RoleQueryCriteria; import org.nl.modules.system.service.dto.RoleSmallDto; -import org.nl.modules.tools.MapOf; import org.nl.modules.wql.WQL; import org.nl.modules.wql.core.bean.ResultBean; import org.nl.modules.wql.core.bean.WQLObject; import org.nl.modules.wql.util.WqlUtil; import org.nl.wms.util.IdUtil; import org.springframework.cache.annotation.CacheConfig; -import org.springframework.cache.annotation.Cacheable; import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -45,8 +47,8 @@ import java.util.*; import java.util.stream.Collectors; /** - * @author Zheng Jie - * @date 2018-12-03 + * @author ludj + * @date 2022-12-05 */ @Service @RequiredArgsConstructor @@ -72,34 +74,30 @@ public class RoleServiceImpl implements RoleService { } @Override - public List queryAll(RoleQueryCriteria criteria) { - return null; - } - - - @Override - @Cacheable(key = "'id:' + #p0") @Transactional(rollbackFor = Exception.class) - public List findRoles(Long id,Class target) { + public List findRoles(Long id, Class target) { String sql = "is_used = '1' and is_delete = '0' "; - if (id != null){ - sql=sql+"role_id = '"+id+"'"; + if (id != null) { + sql = sql + "role_id = '" + id + "'"; } JSONArray array = WQLObject.getWQLObject("sys_role").query(sql).getResultJSONArray(0); - return array.toJavaList(target); + return array.toJavaList(target); } - @Override - public RoleDto findById(Long id) { - return null; - } @Override @Transactional(rollbackFor = Exception.class) public void create(JSONObject form) { -//角色表【sys_role】 + //判断角色名字是否存在 + String name = form.getString("name"); + if (StrUtil.isEmpty(name)) throw new BadRequestException("角色名字不能为空!"); WQLObject roleTab = WQLObject.getWQLObject("sys_role"); + //判断角色名字是否存在 + JSONObject json = roleTab.query("name = '" + name + "'").uniqueResult(0); + if (ObjectUtil.isNotEmpty(json)) throw new BadRequestException("角色【" + name + "】已存在!"); + + String role_id = IdUtil.getStringId(); form.put("role_id", role_id); form.put("create_id", SecurityUtils.getCurrentUserId()); @@ -114,8 +112,22 @@ public class RoleServiceImpl implements RoleService { @Override @Transactional(rollbackFor = Exception.class) - public void update(Role resources) { + public void update(JSONObject form) { + WQLObject roleTab = WQLObject.getWQLObject("sys_role"); + //判断角色名字是否存在 + String name = form.getString("name"); + if (StrUtil.isEmpty(name)) throw new BadRequestException("角色名字不能为空!"); + JSONObject json = roleTab.query("name = '" + name + "' and role_id <> '" + form.getString("role_id") + "'").uniqueResult(0); + if (ObjectUtil.isNotEmpty(json)) throw new BadRequestException("角色【" + name + "】已存在!"); + + String now = DateUtil.now(); + form.put("update_id", StpUtil.getLoginIdAsLong()); + form.put("update_time", now); + form.put("update_optname", SecurityUtils.getCurrentNickName()); + + + roleTab.update(form); } @Override @@ -142,20 +154,11 @@ public class RoleServiceImpl implements RoleService { @Override public List findByUsersId(Long id) { - return null; + return null; } - @Override - public Integer findByRoles(Set roles) { - Set roleDtos = new HashSet<>(); - for (Role role : roles) { - roleDtos.add(findById(role.getId())); - } - return Collections.min(roleDtos.stream().map(RoleDto::getLevel).collect(Collectors.toList())); - } @Override -// @Cacheable(key = "'auth:' + #p0.id") public List getPermissionList(JSONObject userDto) { List permission = new LinkedList<>(); // 查看是否为管理员 diff --git a/nladmin-system/nlsso-server/src/main/java/org/nl/modules/system/service/impl/UserServiceImpl.java b/nladmin-system/nlsso-server/src/main/java/org/nl/modules/system/service/impl/UserServiceImpl.java index bf97a8a..7a1fb1f 100644 --- a/nladmin-system/nlsso-server/src/main/java/org/nl/modules/system/service/impl/UserServiceImpl.java +++ b/nladmin-system/nlsso-server/src/main/java/org/nl/modules/system/service/impl/UserServiceImpl.java @@ -22,21 +22,22 @@ import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; -import com.alibaba.fastjson.serializer.SerializeConfig; import lombok.RequiredArgsConstructor; import lombok.SneakyThrows; import org.apache.commons.lang3.StringUtils; import org.nl.modules.common.config.FileProperties; import org.nl.modules.common.exception.EntityExistException; import org.nl.modules.common.exception.EntityNotFoundException; -import org.nl.modules.common.utils.*; +import org.nl.modules.common.utils.CacheKey; +import org.nl.modules.common.utils.FileUtil; +import org.nl.modules.common.utils.RedisUtils; +import org.nl.modules.common.utils.SecurityUtils; import org.nl.modules.common.utils.dto.CurrentUser; import org.nl.modules.security.service.OnlineUserService; import org.nl.modules.system.domain.User; import org.nl.modules.system.service.DeptService; import org.nl.modules.system.service.UserRelateService; import org.nl.modules.system.service.UserService; - import org.nl.modules.system.service.dto.UserQueryCriteria; import org.nl.modules.tools.MapOf; import org.nl.modules.wql.WQL; @@ -44,17 +45,13 @@ import org.nl.modules.wql.core.bean.ResultBean; import org.nl.modules.wql.core.bean.WQLObject; import org.nl.modules.wql.util.WqlUtil; import org.springframework.cache.annotation.CacheConfig; -import org.springframework.cache.annotation.Cacheable; import org.springframework.data.domain.Pageable; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; import org.springframework.web.multipart.MultipartFile; -import javax.servlet.http.HttpServletResponse; -import javax.validation.constraints.NotBlank; import java.io.File; -import java.io.IOException; import java.util.*; import java.util.stream.Collectors; @@ -124,7 +121,6 @@ public class UserServiceImpl implements UserService { } @Override - @Cacheable(key = "'id:' + #p0") @Transactional(rollbackFor = Exception.class) public User findById(long id) { JSONObject result = WQLObject.getWQLObject("sys_user").query("user_id = '" + id + "'").uniqueResult(0); @@ -228,7 +224,6 @@ public class UserServiceImpl implements UserService { } @Override - @Cacheable(key = "'username:' + #p0") public User findByName(String userName) { JSONObject result = WQLObject.getWQLObject("sys_user").query("userName = '" + userName + "'").uniqueResult(0); if (result == null) { diff --git a/nladmin-ui/src/assets/images/logo.png b/nladmin-ui/src/assets/images/logo.png index f7577109651b89def3d9359ab324b445c714fe77..fbfa3c986bdb95116599c4b765fdc9c11a59cc49 100644 GIT binary patch literal 3280 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 ZLF@BRes2KN|GQZNP*u`YtbtmE{|_Y7!}b6G diff --git a/nladmin-ui/src/assets/images/logo1.png b/nladmin-ui/src/assets/images/logo1.png new file mode 100644 index 0000000000000000000000000000000000000000..f7577109651b89def3d9359ab324b445c714fe77 GIT binary patch literal 8852 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 ZLF@BRes2KN|GQZNP*u`YtbtmE{|_Y7!}b6G literal 0 HcmV?d00001 diff --git a/nladmin-ui/src/assets/logo/logo.63028018.png b/nladmin-ui/src/assets/logo/logo.63028018.png new file mode 100644 index 0000000000000000000000000000000000000000..fbfa3c986bdb95116599c4b765fdc9c11a59cc49 GIT binary patch literal 3280 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 O0000 - + diff --git a/nladmin-ui/src/views/system/role/index.vue b/nladmin-ui/src/views/system/role/index.vue index 6348646..c7206a5 100644 --- a/nladmin-ui/src/views/system/role/index.vue +++ b/nladmin-ui/src/views/system/role/index.vue @@ -13,9 +13,9 @@ class="filter-item" @keyup.enter.native="crud.toQuery" /> - + - + - + - +