diff --git a/mystyle-cloud-admin-manager/src/main/java/com/zhangmeng/admin/manager/controller/RoleController.java b/mystyle-cloud-admin-manager/src/main/java/com/zhangmeng/admin/manager/controller/RoleController.java new file mode 100644 index 0000000..25d39f2 --- /dev/null +++ b/mystyle-cloud-admin-manager/src/main/java/com/zhangmeng/admin/manager/controller/RoleController.java @@ -0,0 +1,145 @@ +package com.zhangmeng.admin.manager.controller; + +import com.github.pagehelper.PageInfo; +import com.zhangmeng.admin.manager.service.RoleService; +import com.zhangmeng.api.service.admin_manager.RoleControllerApi; +import com.zhangmeng.model.base.baseController.BaseController; +import com.zhangmeng.model.base.baseUtil.CommonUtil; +import com.zhangmeng.model.dto.query.QueryParams; +import com.zhangmeng.model.entity.Role; +import com.zhangmeng.model.vo.Result; +import com.zhangmeng.model.vo.ResultTree; +import com.zhangmeng.model.vo.StatusCode; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.servlet.ModelAndView; +import springfox.documentation.annotations.ApiIgnore; +import tk.mybatis.mapper.entity.Condition; +import tk.mybatis.mapper.entity.Example; + +import java.util.Date; +import java.util.Map; + +@RestController +@RequestMapping("/role") +public class RoleController extends BaseController implements RoleControllerApi { + + @Autowired + private RoleService roleService; + + @Override + @PostMapping("/save") + public Result save(@RequestParam @RequestBody Map map) { + String roleId = CommonUtil.map_get_value(map, "roleId"); + boolean flag = false; + Role role = null; + if (roleId == null || roleId.equals("")) { + flag = true; + role = new Role(); + role.setAddTime(new Date()); + role.setUpdateTime(new Date()); + role.setDeleteStatus(false); + } else { + role = this.roleService.findById(Long.parseLong(roleId)); + } + + String type = CommonUtil.map_get_value(map, "type"); + if (CommonUtil.isNotNull(type)) { + role.setType(CommonUtil.getEnum(type, Role.Type.class)); + } + String roleName = CommonUtil.map_get_value(map, "roleName"); + if (CommonUtil.isNotNull(roleName)) { + role.setRoleName(roleName); + } + String status = CommonUtil.map_get_value(map, "status"); + if (CommonUtil.isNotNull(status)) { + role.setStatus(CommonUtil.getEnum(status, Role.Status.class)); + } + + String description = CommonUtil.map_get_value(map, "description"); + if (CommonUtil.isNotNull(description)) { + role.setDescription(description); + } + + switch (role.getType()){ + case Super_Administrator: + role.setRoleCode(Role.Type.Super_Administrator.toString()); + break; + case Administrator: + role.setRoleCode(Role.Type.Administrator.toString()); + break; + case User: + role.setRoleCode(Role.Type.User.toString()); + break; + } + String message = null; + if (flag) { + message = "添加成功"; + this.roleService.save(role); + } else { + message = "修改成功"; + this.roleService.update(role); + } + return this.success(message); + } + + @Override + @GetMapping("/list") + public Result list(Integer pageNum, Integer pageSize,String roleName,String roleCode) { + Condition condition = new Condition(Role.class); + Example.Criteria criteria = condition.createCriteria(); + if (CommonUtil.isNotNull(roleName)){ + criteria.andEqualTo("roleName",roleName); + } + + if (CommonUtil.isNotNull(roleCode)){ + criteria.andEqualTo("roleCode",roleCode); + } + PageInfo pageInfo = this.roleService.findByCondition(new QueryParams(pageNum, pageSize, condition),true); + return new Result(true, StatusCode.OK, "重新成功", pageInfo.getTotal(),pageInfo.getList()); + } + + /** + * Describe: 获取角色权限 + * Param RoleId + * Return ResuTree + */ + @Override + @GetMapping("/getRolePower") + public ResultTree getRolePower(String roleId) { + return dataTree(this.roleService.getRolePermission(roleId)); + } + + @Override + @PostMapping("/delete") + public Result delete(String roleId) { + if (CommonUtil.isNotNull(roleId) && CommonUtil.isNumeric_ASCII(roleId)) { + this.roleService.deleteById(Long.parseLong(roleId)); + } + return this.success("删除成功"); + } + + @Override + @PostMapping("/batchRemove") + public Result batchRemove(String ids){ + if (CommonUtil.isNotNull(ids)){ + this.roleService.deleteByIds(CommonUtil.firstLastComma(ids)); + } + return this.success("批量删除成功"); + } + + @Override + @PostMapping("/saveRolePower") + public Result saveRolePower(@RequestParam @RequestBody String roleId ,@RequestParam @RequestBody String powerIds){ + if (CommonUtil.isNull(roleId)){ + return this.failure("roleId不能为空"); + } + if (CommonUtil.isNull(powerIds)){ + return this.failure("授权的不能为空"); + } + return this.roleService.saveRolePower(Long.parseLong(roleId),powerIds); + } +} diff --git a/mystyle-cloud-admin-manager/src/main/java/com/zhangmeng/admin/manager/controller/UrlRequestController.java b/mystyle-cloud-admin-manager/src/main/java/com/zhangmeng/admin/manager/controller/UrlRequestController.java index d9abccd..76c892e 100644 --- a/mystyle-cloud-admin-manager/src/main/java/com/zhangmeng/admin/manager/controller/UrlRequestController.java +++ b/mystyle-cloud-admin-manager/src/main/java/com/zhangmeng/admin/manager/controller/UrlRequestController.java @@ -3,6 +3,7 @@ package com.zhangmeng.admin.manager.controller; import com.alibaba.fastjson.JSONObject; import com.zhangmeng.admin.manager.feign.ArticleFeign; import com.zhangmeng.admin.manager.service.PermissionService; +import com.zhangmeng.admin.manager.service.RoleService; import com.zhangmeng.admin.manager.service.SysLogService; import com.zhangmeng.admin.manager.service.UserService; import com.zhangmeng.admin.manager.utils.UserUtil; @@ -10,10 +11,7 @@ import com.zhangmeng.model.base.baseController.BaseController; import com.zhangmeng.model.base.baseUtil.CommonUtil; import com.zhangmeng.model.dto.Menu; import com.zhangmeng.model.dto.query.QueryParams; -import com.zhangmeng.model.entity.Article; -import com.zhangmeng.model.entity.Permission; -import com.zhangmeng.model.entity.SysLog; -import com.zhangmeng.model.entity.User; +import com.zhangmeng.model.entity.*; import io.swagger.annotations.ApiOperation; import org.bouncycastle.math.raw.Mod; import org.springframework.beans.factory.annotation.Autowired; @@ -51,6 +49,9 @@ public class UrlRequestController extends BaseController { @Autowired private ArticleFeign articleFeign; + @Autowired + private RoleService roleService; + //跳转首页 @GetMapping({"/login","/"}) public ModelAndView login (){ @@ -128,4 +129,84 @@ public class UrlRequestController extends BaseController { model.addAttribute("sysLogs",list); return jumpPage("admin/home/home"); } + + /** + * 用户列表 + * @param model + * @return + */ + @GetMapping("/user/index") + public ModelAndView user_index(Model model){ + return this.jumpPage("admin/user/list"); + } + + /** + * 用户添加 + * @param model + * @return + */ + @GetMapping("/user/add") + public ModelAndView user_add(Model model){ + return this.jumpPage("admin/user/add"); + } + + /** + * 用户列表 + * @param model + * @return + */ + @GetMapping("/user/edit") + public ModelAndView user_edit(Model model,String userId){ + if (userId != null && !userId.equals("")) { + User user = this.userService.findById(Long.parseLong(userId)); + model.addAttribute("user", user); + } + return this.jumpPage("admin/user/edit"); + } + + /** + * 角色列表 + * @return + */ + @GetMapping("/role/index") + public ModelAndView index() { + return this.jumpPage("admin/role/list"); + } + + /** + * 角色添加 + * @param model + * @return + */ + @GetMapping("/role/add") + public ModelAndView add(Model model) { + model.addAttribute("roleStatusList", Role.Status.enumListMap()); + return this.jumpPage("admin/role/add"); + } + + @GetMapping("/role/edit") + public ModelAndView edit(Model model, String roleId) { + if (roleId != null && !roleId.equals("")) { + Role role = this.roleService.findById(Long.parseLong(roleId)); + model.addAttribute("roleTypeList", Role.Type.enumListMap()); + model.addAttribute("role", role); + } + return this.jumpPage("admin/role/edit"); + } + + /** + * 授权 + * @param model + * @param roleId + * @return + */ + @GetMapping("/role/authorize") + public ModelAndView authorize(Model model, String roleId) { + if (roleId != null && !roleId.equals("")) { + Role role = this.roleService.findById(Long.parseLong(roleId)); + model.addAttribute("roleTypeList", Role.Type.enumListMap()); + model.addAttribute("role", role); + } + return this.jumpPage("admin/role/authorize"); + } } diff --git a/mystyle-cloud-admin-manager/src/main/java/com/zhangmeng/admin/manager/service/RoleService.java b/mystyle-cloud-admin-manager/src/main/java/com/zhangmeng/admin/manager/service/RoleService.java index 0b2cc9d..b918b29 100644 --- a/mystyle-cloud-admin-manager/src/main/java/com/zhangmeng/admin/manager/service/RoleService.java +++ b/mystyle-cloud-admin-manager/src/main/java/com/zhangmeng/admin/manager/service/RoleService.java @@ -5,6 +5,7 @@ package com.zhangmeng.admin.manager.service; import com.zhangmeng.model.base.baseService.BaseService; import com.zhangmeng.model.entity.Permission; import com.zhangmeng.model.entity.Role; +import com.zhangmeng.model.vo.Result; import java.util.List; @@ -16,4 +17,6 @@ import java.util.List; public interface RoleService extends BaseService { List getRolePermission(String roleId); + + Result saveRolePower(long parseLong, String powerIds); } diff --git a/mystyle-cloud-admin-manager/src/main/java/com/zhangmeng/admin/manager/service/impl/RoleServiceImpl.java b/mystyle-cloud-admin-manager/src/main/java/com/zhangmeng/admin/manager/service/impl/RoleServiceImpl.java index 9a8b97f..acdc61b 100644 --- a/mystyle-cloud-admin-manager/src/main/java/com/zhangmeng/admin/manager/service/impl/RoleServiceImpl.java +++ b/mystyle-cloud-admin-manager/src/main/java/com/zhangmeng/admin/manager/service/impl/RoleServiceImpl.java @@ -8,8 +8,12 @@ import com.zhangmeng.model.base.baseUtil.CommonUtil; import com.zhangmeng.model.entity.Permission; import com.zhangmeng.model.entity.Role; import com.zhangmeng.model.entity.RolePermission; +import com.zhangmeng.model.vo.Result; +import com.zhangmeng.model.vo.StatusCode; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import tk.mybatis.mapper.entity.Condition; +import tk.mybatis.mapper.entity.Example; import java.util.ArrayList; import java.util.List; @@ -55,4 +59,52 @@ public class RoleServiceImpl extends AbstractBaseServiceImpl implements Ro } return list; } + + @Override + public Result saveRolePower(long roleId, String powerIds) { + Role role = this.findById(roleId); + if (role != null ){ + getByRoleId(roleId); + String ids = CommonUtil.firstLastComma(powerIds); + String[] strings = ids.split(","); + for (String id : strings) { + is_true(id,roleId); + } + } + return new Result(true, StatusCode.OK,"授权成功"); + } + + //查询原有的 + private void getByRoleId(Long roleId){ + List rolePermissions = this.rolePermissionService.findByRoleId(roleId); + if (rolePermissions.size() > 0 ){ + for (RolePermission rolePermission : rolePermissions) { + if (!rolePermission.getDeleteStatus()){ + rolePermission.setDeleteStatus(true); + this.rolePermissionService.update(rolePermission); + } + } + } + } + + //判断是否存在 + private void is_true (String id,Long roleId){ + Condition condition = new Condition(RolePermission.class); + Example.Criteria criteria = condition.createCriteria(); + criteria.andEqualTo("role_id",roleId); + criteria.andEqualTo("permission_id",Long.parseLong(id)); + List rolePermissions = this.rolePermissionService.findByCondition(condition); + if (rolePermissions.size() > 0 ){ + RolePermission rolePermission = rolePermissions.get(0); + if (rolePermission.getDeleteStatus()){ + rolePermission.setDeleteStatus(false); + this.rolePermissionService.update(rolePermission); + } + }else { + RolePermission rolePermission = new RolePermission(); + rolePermission.setPermission_id(Long.parseLong(id)); + rolePermission.setRole_id(roleId); + this.rolePermissionService.save(rolePermission); + } + } } diff --git a/mystyle-cloud-admin-manager/src/main/resources/static/system/admin/js/mystyle-admin.js b/mystyle-cloud-admin-manager/src/main/resources/static/system/admin/js/mystyle-admin.js index da5da7f..19a6b82 100644 --- a/mystyle-cloud-admin-manager/src/main/resources/static/system/admin/js/mystyle-admin.js +++ b/mystyle-cloud-admin-manager/src/main/resources/static/system/admin/js/mystyle-admin.js @@ -3,16 +3,45 @@ var gate_way_url = "http://localhost:9000"; //后台管理微服务 var admin_manager_url = "mystyle-cloud-admin-manager"; //授权微服务 -var user_oauth_url= "mystyle-cloud-oauth"; +var user_oauth_url = "mystyle-cloud-oauth"; //验证码 var v_code = gate_way_url + "/" + admin_manager_url + "/verificationCode/generate"; var access_token = localStorage.getItem("access_token"); +var access_token_url = "?access_token=" + access_token; //获取当前用户 -var current_user_url = gate_way_url + "/" + admin_manager_url + "/user/current?access_token=" + access_token; +var current_user_url = gate_way_url + "/" + admin_manager_url + "/user/current" + access_token_url; //登录地址 var login_url = gate_way_url + "/" + user_oauth_url + "/user/login"; //首页 -var admin_manager_index_url= gate_way_url + "/" + admin_manager_url + "/admin/index"; +var admin_manager_index_url = gate_way_url + "/" + admin_manager_url + "/admin/index"; +//用户列表 +var user_list_url = gate_way_url + "/" + admin_manager_url + "/user/list" + access_token_url; +//用户添加 +var user_add_url = gate_way_url + "/" + admin_manager_url + "/user/add" + access_token_url; +//用户保存 +var user_save_url = gate_way_url + "/" + admin_manager_url + "/user/save"; +//用户修改 +var user_edit_url = gate_way_url + "/" + admin_manager_url + "/user/edit" + access_token_url; +//用户删除 +var user_del_url = gate_way_url + "/" + admin_manager_url + "/user/delete"; +//用户批量删除 +var user_batchRemove_url = gate_way_url + "/" + admin_manager_url + "/user/batchRemove"; +//------------------------------------------------------------------------------------------------------------------------- +//角色列表 +var role_list_url = gate_way_url + "/" + admin_manager_url + "/role/list" + access_token_url; +//角色添加 +var role_add_url = gate_way_url + "/" + admin_manager_url + "/role/add" + access_token_url; +//角色编辑 +var role_edit_url = gate_way_url + "/" + admin_manager_url + "/role/edit" + access_token_url; +//角色保存 +var role_save_url = gate_way_url + "/" + admin_manager_url + "/role/save"; +//角色授权 +var role_authorize_url = gate_way_url + "/" + admin_manager_url + "/role/authorize" + access_token_url; +//获取授权 +var role_getRolePower_url = gate_way_url + "/" + admin_manager_url + "/role/getRolePower" + access_token_url; +//保存角色授权 +var role_saveRolePower_url = gate_way_url + "/" + admin_manager_url + "/role/saveRolePower"; + //页面跳转 function postToPage(url, token) { var f = document.createElement('form'); diff --git a/mystyle-cloud-admin-manager/src/main/resources/static/system/component/pear/module/menu.js b/mystyle-cloud-admin-manager/src/main/resources/static/system/component/pear/module/menu.js index efc9350..35589bf 100644 --- a/mystyle-cloud-admin-manager/src/main/resources/static/system/component/pear/module/menu.js +++ b/mystyle-cloud-admin-manager/src/main/resources/static/system/component/pear/module/menu.js @@ -210,13 +210,14 @@ layui.define(['table', 'jquery', 'element'], function(exports) { target = "target='_blank'"; className = ""; } + if (item.type == 0) { // 创 建 目 录 结 构 content += '' + item.title + ''; } else if (item.type == 1) { - content += '' + item.title + ''; @@ -342,7 +343,7 @@ layui.define(['table', 'jquery', 'element'], function(exports) { '">' + note.title + ''; } else if (note.type == 1) { // 创 建 菜 单 结 构 - content += '' + note.title + ''; } diff --git a/mystyle-cloud-admin-manager/src/main/resources/static/system/config/pear.config.yml b/mystyle-cloud-admin-manager/src/main/resources/static/system/config/pear.config.yml index 1cf9f88..1a04faf 100644 --- a/mystyle-cloud-admin-manager/src/main/resources/static/system/config/pear.config.yml +++ b/mystyle-cloud-admin-manager/src/main/resources/static/system/config/pear.config.yml @@ -4,7 +4,7 @@ logo: ## 网站名称 title: "MY Style" ## 网站图标 - image: "/system/admin/images/logo.png" + image: "/mystyle-cloud-admin-manager/system/admin/images/logo.png" ## 菜单配置 menu: ## 菜单数据来源 diff --git a/mystyle-cloud-admin-manager/src/main/resources/templates/admin/role/add.ftl b/mystyle-cloud-admin-manager/src/main/resources/templates/admin/role/add.ftl index b2b8c00..e882e81 100644 --- a/mystyle-cloud-admin-manager/src/main/resources/templates/admin/role/add.ftl +++ b/mystyle-cloud-admin-manager/src/main/resources/templates/admin/role/add.ftl @@ -3,7 +3,7 @@ 角色添加 - +
@@ -62,20 +62,19 @@
- - + + + - + + + - + + + - - + + + - + + + - + + + - - + + +