diff --git a/RMS/src/main/java/com/demo/controller/MenuController.java b/RMS/src/main/java/com/demo/controller/MenuController.java index 2127adf22e13607cd3aecee2806a67cba41b132b..a21eb351be28eb4ae83194b6ee5f66533e63160a 100644 --- a/RMS/src/main/java/com/demo/controller/MenuController.java +++ b/RMS/src/main/java/com/demo/controller/MenuController.java @@ -1,12 +1,145 @@ package com.demo.controller; -import org.springframework.web.bind.annotation.CrossOrigin; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.demo.mapper.MenuMapper; +import com.demo.pojo.PO.Menu; +import com.demo.pojo.PO.User; +import com.demo.pojo.R; +import com.demo.pojo.VO.VOMenu; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.ArrayList; +import java.util.List; +import java.util.stream.Collectors; // 菜单管理 @RestController @RequestMapping("/RMS/Menu") @CrossOrigin // 跨域 public class MenuController { + @Autowired + private MenuMapper menuMapper; + @GetMapping + public R getAllMenu() { + List vodMenuList =menuMapper.selectList(null); + // 初始化最外层转输出对象 + List vodMenuVOList = vodMenuList.stream() + .filter(m->m.getParentId()==0) + .map(m->{ + VOMenu VOMenu = new VOMenu(); + VOMenu.setId(m.getId()); + VOMenu.setName(m.getName()); + VOMenu.setType(m.getType()); + VOMenu.setPath(m.getPath()); + VOMenu.setComponent(m.getComponent()); + VOMenu.setPerms(m.getPerms()); + VOMenu.setIcon(m.getIcon()); + VOMenu.setSortValue(m.getSortValue()); + VOMenu.setStatus(m.getStatus()); + VOMenu.setCreateTime(m.getCreateTime()); + return VOMenu; + }).collect(Collectors.toList()); + List VOMenus = getMenuStream(vodMenuList, vodMenuVOList); + + return new R(true,"", VOMenus); + } + public List getMenuStream(List vodMenuList, List vodMenuVOList){ + List VOMenu1 = vodMenuVOList.stream() + .map(m->{ + VOMenu VOMenu = new VOMenu(); + VOMenu.setId(m.getId()); + VOMenu.setName(m.getName()); + VOMenu.setType(m.getType()); + VOMenu.setPath(m.getPath()); + VOMenu.setComponent(m.getComponent()); + VOMenu.setPerms(m.getPerms()); + VOMenu.setIcon(m.getIcon()); + VOMenu.setSortValue(m.getSortValue()); + VOMenu.setStatus(m.getStatus()); + VOMenu.setCreateTime(m.getCreateTime()); + return VOMenu; + }) + .map(m->{ + //拿到每个id再全部拿一次parentId进行对比 + List VOMenu3 = vodMenuList.stream().filter(m2->m2.getParentId().equals(m.getId())).map(m2->{ + VOMenu VOMenu2 = new VOMenu(); + VOMenu2.setId(m2.getId()); + VOMenu2.setName(m2.getName()); + VOMenu2.setType(m2.getType()); + VOMenu2.setPath(m2.getPath()); + VOMenu2.setComponent(m2.getComponent()); + VOMenu2.setPerms(m2.getPerms()); + VOMenu2.setIcon(m2.getIcon()); + VOMenu2.setSortValue(m2.getSortValue()); + VOMenu2.setStatus(m2.getStatus()); + VOMenu2.setCreateTime(m2.getCreateTime()); + return VOMenu2; + }).collect(Collectors.toList()); + m.setParent(VOMenu3); +// System.out.println(m.getParent().toArray().length); +// System.out.println(m.getParent()); + if (m.getParent().toArray().length>0){ + m.setParent(getMenuStream(vodMenuList,m.getParent())); + } + return m; + }).collect(Collectors.toList()); + + return VOMenu1; + } + // 新增菜单表 + @PostMapping(value = "/addMenu") + public R addMenu(@RequestBody Menu menu) { + // 写死新增的是菜单表 + menu.setParentId(0); + return new R(true,"", menuMapper.insert(menu)); + } + // 新增子菜单 + @PostMapping(value = "/addSonMenu") + public R addSonMenu(@RequestBody Menu menu) { + return new R(true,"", menuMapper.insert(menu)); + } + + // 设置菜单状态码,把新的状态码修改好放对象里传过来,记得带上id + @PutMapping(value = "/updateMenuStatus") + public R updateMenuStatus(@RequestBody Menu menu){ + String MenuStatus = "status = "+String.valueOf(menu.getStatus()); + UpdateWrapper queryWrapper = new UpdateWrapper() + .eq("id", menu.getId()) + .setSql(MenuStatus); + return new R(true,"",menuMapper.update( null,queryWrapper)); + } + + // 修改菜单信息 + @PutMapping(value = "/updateMenu") + public R updateMenu(@RequestBody Menu menu){ + return new R(true,"",menuMapper.updateById(menu)); + } + + public List i = new ArrayList<>(); + public void getAllDelMenu(List allMenu,Menu menu){ + List menu1 = new ArrayList(); + menu1.add(menu); + menu1.stream().map(m->{ + List menu2 = allMenu.stream().filter(m2->{ + return m2.getParentId().equals(m.getId());} + ).map(m2->{ + i.add(m2); + getAllDelMenu(allMenu,m2); + return m2; + }) + .collect(Collectors.toList()); + return m; + } ).collect(Collectors.toList()); + } + + // 删除菜单以及其子菜单 + @DeleteMapping(value = "/delMenu") + public R delMenu(@RequestBody Menu menu){ + List allMenu = menuMapper.selectList(null); + i.add(menu); + getAllDelMenu(allMenu,menu); + List id= i.stream().map(Menu::getId).collect(Collectors.toList()); + return new R(true,"",menuMapper.deleteBatchIds(id)); + } } diff --git a/RMS/src/main/java/com/demo/controller/UserController.java b/RMS/src/main/java/com/demo/controller/UserController.java index 5ff27b8c34123baa8b6e263b0fb31095a81e4539..ed539072712126c027531465ae1e5f05c2d17675 100644 --- a/RMS/src/main/java/com/demo/controller/UserController.java +++ b/RMS/src/main/java/com/demo/controller/UserController.java @@ -4,6 +4,7 @@ package com.demo.controller; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.toolkit.StringUtils; import com.demo.mapper.DeptMapper; import com.demo.mapper.UserMapper; @@ -146,6 +147,17 @@ public class UserController { return new R(true,"",userMapper.updateById(user)); } + + // 设置用户状态码,把新的状态码修改好放对象里传过来,记得带上id + @PutMapping(value = "putUserStatus") + public R putUserStatus(@RequestBody User user){ + String UserStatus = "status = "+String.valueOf(user.getStatus()); + UpdateWrapper queryWrapper = new UpdateWrapper() + .eq("id", user.getId()) + .setSql(UserStatus); + return new R(true,"",userMapper.update( null,queryWrapper)); + } + // 分配角色 @PutMapping(value = "putUserRole") public R putUserDept(@RequestBody User user){ diff --git a/RMS/src/main/java/com/demo/mapper/MenuMapper.java b/RMS/src/main/java/com/demo/mapper/MenuMapper.java new file mode 100644 index 0000000000000000000000000000000000000000..de3e88b880277e2a53f889123f6790e5bdcd4359 --- /dev/null +++ b/RMS/src/main/java/com/demo/mapper/MenuMapper.java @@ -0,0 +1,9 @@ +package com.demo.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.demo.pojo.PO.Menu; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface MenuMapper extends BaseMapper { +} diff --git a/RMS/src/main/java/com/demo/pojo/PO/Menu.java b/RMS/src/main/java/com/demo/pojo/PO/Menu.java new file mode 100644 index 0000000000000000000000000000000000000000..1bb2774645f8f38cd61be4fb8b631a870deb743f --- /dev/null +++ b/RMS/src/main/java/com/demo/pojo/PO/Menu.java @@ -0,0 +1,144 @@ +package com.demo.pojo.PO; + +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.util.Date; + +@Data +@TableName("sys_menu") +public class Menu { + private Integer id; + private Integer parentId; + private String name; + private Integer type; + private String path; + private String component; + private String perms; + private String icon; + private Integer sortValue; + private int status; + private Date createTime; + private Date updateTime; + private int isDeleted; + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public Integer getParentId() { + return parentId; + } + + public void setParentId(Integer parentId) { + this.parentId = parentId; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Integer getType() { + return type; + } + + public void setType(Integer type) { + this.type = type; + } + + public String getPath() { + return path; + } + + public void setPath(String path) { + this.path = path; + } + + public String getComponent() { + return component; + } + + public void setComponent(String component) { + this.component = component; + } + + public String getPerms() { + return perms; + } + + public void setPerms(String perms) { + this.perms = perms; + } + + public String getIcon() { + return icon; + } + + public void setIcon(String icon) { + this.icon = icon; + } + + public Integer getSortValue() { + return sortValue; + } + + public void setSortValue(Integer sortValue) { + this.sortValue = sortValue; + } + + public int getStatus() { + return status; + } + + public void setStatus(int status) { + this.status = status; + } + + public Date getCreateTime() { + return createTime; + } + + public void setCreateTime(Date createTime) { + this.createTime = createTime; + } + + public Date getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(Date updateTime) { + this.updateTime = updateTime; + } + + public int getIsDeleted() { + return isDeleted; + } + + public void setIsDeleted(int isDeleted) { + this.isDeleted = isDeleted; + } + + public Menu(Integer id, Integer parentId, String name, Integer type, String path, String component, String perms, String icon, Integer sortValue, int status, Date createTime, Date updateTime, int isDeleted) { + this.id = id; + this.parentId = parentId; + this.name = name; + this.type = type; + this.path = path; + this.component = component; + this.perms = perms; + this.icon = icon; + this.sortValue = sortValue; + this.status = status; + this.createTime = createTime; + this.updateTime = updateTime; + this.isDeleted = isDeleted; + } +} diff --git a/RMS/src/main/java/com/demo/pojo/VO/VOMenu.java b/RMS/src/main/java/com/demo/pojo/VO/VOMenu.java new file mode 100644 index 0000000000000000000000000000000000000000..fb24c05026d51c01d16433c7d5965a3c2c013e5a --- /dev/null +++ b/RMS/src/main/java/com/demo/pojo/VO/VOMenu.java @@ -0,0 +1,140 @@ +package com.demo.pojo.VO; + +import java.util.Date; +import java.util.List; + +public class VOMenu { + private Integer id; + private List parent; // 子对象数组 + private String name; + private Integer type; // 类型 0目录1菜单2按钮,不知道怎么用先留着 + private String path; + private String component; + private String perms; + private String icon; + private Integer sortValue; + private int status; + private Date createTime; + + @Override + public String toString() { + return "VOMenu{" + + "id=" + id + + ", parent=" + parent + + ", name='" + name + '\'' + + ", type=" + type + + ", path='" + path + '\'' + + ", component='" + component + '\'' + + ", perms='" + perms + '\'' + + ", icon='" + icon + '\'' + + ", sortValue=" + sortValue + + ", status=" + status + + ", createTime=" + createTime + + '}'; + } + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + + public List getParent() { + return parent; + } + + public void setParent(List parent) { + this.parent = parent; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Integer getType() { + return type; + } + + public void setType(Integer type) { + this.type = type; + } + + public String getPath() { + return path; + } + + public void setPath(String path) { + this.path = path; + } + + public String getComponent() { + return component; + } + + public void setComponent(String component) { + this.component = component; + } + + public String getPerms() { + return perms; + } + + public void setPerms(String perms) { + this.perms = perms; + } + + public String getIcon() { + return icon; + } + + public void setIcon(String icon) { + this.icon = icon; + } + + public Integer getSortValue() { + return sortValue; + } + + public void setSortValue(Integer sortValue) { + this.sortValue = sortValue; + } + + public int getStatus() { + return status; + } + + public void setStatus(int status) { + this.status = status; + } + + public Date getCreateTime() { + return createTime; + } + + public void setCreateTime(Date createTime) { + this.createTime = createTime; + } + + public VOMenu() { + } + + public VOMenu(Integer id, List parent, String name, Integer type, String path, String component, String perms, String icon, Integer sortValue, int status, Date createTime) { + this.id = id; + this.parent = parent; + this.name = name; + this.type = type; + this.path = path; + this.component = component; + this.perms = perms; + this.icon = icon; + this.sortValue = sortValue; + this.status = status; + this.createTime = createTime; + } +} diff --git a/RMS/src/main/java/com/demo/service/MenuService.java b/RMS/src/main/java/com/demo/service/MenuService.java new file mode 100644 index 0000000000000000000000000000000000000000..3230debe6c76efa71ec37baba729fc9f612271a2 --- /dev/null +++ b/RMS/src/main/java/com/demo/service/MenuService.java @@ -0,0 +1,7 @@ +package com.demo.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.demo.pojo.PO.Menu; + +public interface MenuService extends IService { +} diff --git a/RMS/src/main/java/com/demo/service/impl/MenuServiceImpl.java b/RMS/src/main/java/com/demo/service/impl/MenuServiceImpl.java new file mode 100644 index 0000000000000000000000000000000000000000..93a940a2be31d1ac07efba619638144a4a148cf0 --- /dev/null +++ b/RMS/src/main/java/com/demo/service/impl/MenuServiceImpl.java @@ -0,0 +1,9 @@ +package com.demo.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.demo.mapper.MenuMapper; +import com.demo.pojo.PO.Menu; +import com.demo.service.MenuService; + +public class MenuServiceImpl extends ServiceImpl implements MenuService { +}