From 08c48f193a5a136a40a5aa5b0677e9a1ee431a8b Mon Sep 17 00:00:00 2001 From: admin <149470858@qq.com> Date: Wed, 24 Apr 2024 23:59:02 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E5=A2=9E=E5=8A=A0menu=E8=8F=9C=E5=8D=95?= =?UTF-8?q?=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- htmlweb/web/backstage/oa/frontmenu/add.html | 150 +++++++++++ htmlweb/web/backstage/oa/frontmenu/edit.html | 166 ++++++++++++ htmlweb/web/backstage/oa/frontmenu/list.html | 201 ++++++++++++++ .../backstage/oa/frontmenu/userfrontmenu.html | 246 ++++++++++++++++++ .../jyjz/xiaoyao/admin/dataobject/User.java | 4 + .../controller/FrontmenuController.java | 113 ++++++++ .../controller/FrontmenuHtmlController.java | 69 +++++ .../controller/UserFrontmenuController.java | 104 ++++++++ .../UserFrontmenuHtmlController.java | 45 ++++ .../dataDao/FrontmenuMybatisDao.java | 11 + .../dataDao/UserFrontmenuMybatisDao.java | 11 + .../frontmenu/dataobject/Frontmenu.java | 103 ++++++++ .../frontmenu/dataobject/UserFrontmenu.java | 57 ++++ .../frontmenu/service/FrontmenuService.java | 11 + .../service/UserFrontmenuService.java | 26 ++ .../service/impl/FrontmenuServiceImpl.java | 20 ++ .../impl/UserFrontmenuServiceImpl.java | 64 +++++ .../resources/mapper/oa/SFrontmenuTMapper.xml | 57 ++++ .../mapper/oa/SUserFrontmenuTMapper.xml | 33 +++ .../src/main/resources/application-dev.yml | 22 +- 20 files changed, 1502 insertions(+), 11 deletions(-) create mode 100644 htmlweb/web/backstage/oa/frontmenu/add.html create mode 100644 htmlweb/web/backstage/oa/frontmenu/edit.html create mode 100644 htmlweb/web/backstage/oa/frontmenu/list.html create mode 100644 htmlweb/web/backstage/oa/frontmenu/userfrontmenu.html create mode 100644 jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/frontmenu/controller/FrontmenuController.java create mode 100644 jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/frontmenu/controller/FrontmenuHtmlController.java create mode 100644 jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/frontmenu/controller/UserFrontmenuController.java create mode 100644 jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/frontmenu/controller/UserFrontmenuHtmlController.java create mode 100644 jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/frontmenu/dataDao/FrontmenuMybatisDao.java create mode 100644 jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/frontmenu/dataDao/UserFrontmenuMybatisDao.java create mode 100644 jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/frontmenu/dataobject/Frontmenu.java create mode 100644 jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/frontmenu/dataobject/UserFrontmenu.java create mode 100644 jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/frontmenu/service/FrontmenuService.java create mode 100644 jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/frontmenu/service/UserFrontmenuService.java create mode 100644 jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/frontmenu/service/impl/FrontmenuServiceImpl.java create mode 100644 jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/frontmenu/service/impl/UserFrontmenuServiceImpl.java create mode 100644 jyjz-system/jyjz-system-oa/src/main/resources/mapper/oa/SFrontmenuTMapper.xml create mode 100644 jyjz-system/jyjz-system-oa/src/main/resources/mapper/oa/SUserFrontmenuTMapper.xml diff --git a/htmlweb/web/backstage/oa/frontmenu/add.html b/htmlweb/web/backstage/oa/frontmenu/add.html new file mode 100644 index 00000000..89d6dd3e --- /dev/null +++ b/htmlweb/web/backstage/oa/frontmenu/add.html @@ -0,0 +1,150 @@ +<#include "/common/taglibs.html" /> + + + + + 前端菜单管理 + + + +<#include "/head/headaddedit.html" /> + + +
+
+
+
+
+
基本信息
+
+
+
+
+
+
+
+ +
+ +
+
+
+
+
+ +
+ +
+
+
+
+
+ +
+
+ +
+ +
+
+
+
+
+ +
+ +
+
+
+
+ +
+
+
+ + +
+
+
+
+
+
+
+
+
+
+<#include "/head/footadd.html" /> + + + + diff --git a/htmlweb/web/backstage/oa/frontmenu/edit.html b/htmlweb/web/backstage/oa/frontmenu/edit.html new file mode 100644 index 00000000..546dd3d5 --- /dev/null +++ b/htmlweb/web/backstage/oa/frontmenu/edit.html @@ -0,0 +1,166 @@ +<#include "/common/taglibs.html" /> + + + + + 前端菜单管理 + +<#include "/head/headaddedit.html" /> + + +
+
+
+
+
+
基本信息
+
+
+
+
+ + +
+
+
+ +
+ +
+
+
+
+
+ +
+ +
+
+
+
+
+ +
+
+ +
+ +
+
+
+
+
+ +
+ +
+
+
+ +
+ + +
+
+
+ + +
+
+
+
+
+
+
+
+
+
+<#include "/head/footadd.html" /> + + + + diff --git a/htmlweb/web/backstage/oa/frontmenu/list.html b/htmlweb/web/backstage/oa/frontmenu/list.html new file mode 100644 index 00000000..af3814e1 --- /dev/null +++ b/htmlweb/web/backstage/oa/frontmenu/list.html @@ -0,0 +1,201 @@ +<#include "/common/taglibs.html" /> + + + + + 前端菜单管理 + + + +<#include "/head/headlist.html" /> + + +
+
+
+
+
+
+ +
+ + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<#include "/head/footlist.html" /> + + + + diff --git a/htmlweb/web/backstage/oa/frontmenu/userfrontmenu.html b/htmlweb/web/backstage/oa/frontmenu/userfrontmenu.html new file mode 100644 index 00000000..a83a7d9c --- /dev/null +++ b/htmlweb/web/backstage/oa/frontmenu/userfrontmenu.html @@ -0,0 +1,246 @@ +<#include "../../../common/taglibs.html" /> + + + + + + 管理员列表 + + + + <#include "/head/headlist.html" /> + + + + + +
+
+ +
+
+
+  +
+
+ +
+
+ +
+  搜索 +  重置 +
+
+
+ +
+ +
+ +
+ + +
+
+
+
+ + +
+ + +<#include "/head/footlist.html" /> + + + + + + + diff --git a/jyjz-system/jyjz-system-admin/src/main/java/cn/jyjz/xiaoyao/admin/dataobject/User.java b/jyjz-system/jyjz-system-admin/src/main/java/cn/jyjz/xiaoyao/admin/dataobject/User.java index 91a55a1c..a1e16620 100644 --- a/jyjz-system/jyjz-system-admin/src/main/java/cn/jyjz/xiaoyao/admin/dataobject/User.java +++ b/jyjz-system/jyjz-system-admin/src/main/java/cn/jyjz/xiaoyao/admin/dataobject/User.java @@ -184,6 +184,10 @@ public class User implements BaseDto,java.io.Serializable { //前端菜单展示列表权限 @TableField(exist = false) private List frontmenuTList = new ArrayList<>(); + + //临时保存集合使用 + @TableField(exist = false) + private List tempList = new ArrayList<>(); public UserToken getUserToken(){ diff --git a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/frontmenu/controller/FrontmenuController.java b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/frontmenu/controller/FrontmenuController.java new file mode 100644 index 00000000..e5004e36 --- /dev/null +++ b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/frontmenu/controller/FrontmenuController.java @@ -0,0 +1,113 @@ +package cn.jyjz.xiaoyao.frontmenu.controller; + +import java.io.IOException; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import cn.jyjz.xiaoyao.common.base.util.RequestBaseUtil; +import cn.jyjz.xiaoyao.common.base.vo.UserToken; +import cn.jyjz.xiaoyao.common.mybatisplus.util.SearchQueryFormat; +import cn.jyjz.xiaoyao.frontmenu.dataobject.Frontmenu; +import cn.jyjz.xiaoyao.frontmenu.service.FrontmenuService; +import com.alibaba.fastjson.JSONObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; + +import cn.jyjz.xiaoyao.admin.service.UserService; +import cn.jyjz.xiaoyao.common.base.service.UserTokenService; +import cn.jyjz.xiaoyao.common.base.controller.BaseController; +import cn.jyjz.xiaoyao.common.base.param.ParamterPage; +import cn.jyjz.xiaoyao.common.base.util.requestFormat.SearchQuery; +import cn.jyjz.xiaoyao.common.base.vo.ResultVo; +import cn.jyjz.xiaoyao.common.base.vo.ResultVoUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; + +@RestController +@RequestMapping("/backstage/oa/frontmenu") +public class FrontmenuController extends BaseController{ + + private Logger log = LoggerFactory.getLogger(this.getClass()); + + @Autowired + private FrontmenuService frontmenuService; + + @Autowired + private UserTokenService userTokenService; + @Autowired + private UserService userService; + /** + *方法描述:返回json字符串,接受参数,dto名称以及分页信息 + *创建人:mail.zhangyong@gmail.com + *创建时间:2024-04-21 20:49:27 + **/ + @GetMapping("/list") + public ResultVo> listSFrontmenuT(ParamterPage paramterPage, HttpServletRequest request, HttpServletResponse response) throws IOException{ + SearchQuery searchQuery = this.getParametersStartingWithToSearchJson(request, "search_"); + UserToken userToken = this.userTokenService.getUserToken(RequestBaseUtil.getToken(request)); + cn.jyjz.xiaoyao.admin.dataobject.User user = this.userService.getSessionUser(request); + Frontmenu sfrontmenut = new Frontmenu(); + sfrontmenut.setSearchQueryrolesShowleave(user.getSearchQueryrolesShowleave()); + QueryWrapper queryWrapper = SearchQueryFormat.queryStringFormat(searchQuery,sfrontmenut); + IPage page = this.frontmenuService.selectSearchListPage(paramterPage,queryWrapper);; + return ResultVoUtil.success(page); + } + + /** + *方法描述:保存添加数据 + *创建人:mail.zhangyong@gmail.com + *创建时间:2024-04-21 20:49:27 + **/ + @PostMapping("/save") + public ResultVo saveSFrontmenuT(HttpServletResponse response,HttpServletRequest request,Frontmenu tab) throws IOException{ + UserToken userToken = this.userTokenService.getUserToken(RequestBaseUtil.getToken(request)); + + this.frontmenuService.save(tab); + return ResultVoUtil.success(); + } + + /** + *方法描述:根据页面form传来的对象修改数据 + *创建人:mail.zhangyong@gmail.com + *创建时间:2024-04-21 20:49:27 + **/ + @PostMapping("/edit") + public ResultVo editSFrontmenuT(HttpServletResponse response,HttpServletRequest request,Frontmenu tab) throws IOException{ + UserToken userToken = this.userTokenService.getUserToken(RequestBaseUtil.getToken(request)); + this.frontmenuService.updateById(tab); + return ResultVoUtil.success(); + } + + /** + *方法描述:通过主键获得对象信息 + *创建人:mail.zhangyong@gmail.com + *创建时间:2024-04-21 20:49:27 + **/ + @GetMapping("/getdata/{id}") + @ResponseBody + public ResultVo getdateSFrontmenuT(HttpServletResponse response,HttpServletRequest request,@PathVariable("id") Long id) throws IOException{ + Frontmenu dto = this.frontmenuService.selectDtoById(id); + if(null != dto){ + return ResultVoUtil.success(dto); + }else{ + return ResultVoUtil.error(); + } + } + + /** + *方法描述:根据id字符串组删除对象方法,例如1,2,3 + *创建人:mail.zhangyong@gmail.com + *创建时间:2024-04-21 20:49:27 + **/ + @GetMapping("/delmore") + @ResponseBody + public ResultVo delMoreSFrontmenuT(HttpServletResponse response,HttpServletRequest request) throws IOException{ + String ids = request.getParameter("id"); + this.frontmenuService.deleteByIdMore(ids); + return ResultVoUtil.success(); + } + +} diff --git a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/frontmenu/controller/FrontmenuHtmlController.java b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/frontmenu/controller/FrontmenuHtmlController.java new file mode 100644 index 00000000..a1015675 --- /dev/null +++ b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/frontmenu/controller/FrontmenuHtmlController.java @@ -0,0 +1,69 @@ +package cn.jyjz.xiaoyao.frontmenu.controller; + +import java.io.IOException; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import cn.jyjz.xiaoyao.frontmenu.service.FrontmenuService; +import com.alibaba.fastjson.JSONObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; + +import cn.jyjz.xiaoyao.admin.service.UserService; +import cn.jyjz.xiaoyao.common.base.service.UserTokenService; +import cn.jyjz.xiaoyao.common.base.controller.BaseController; + +@Controller +@RequestMapping("/backstage/oa/frontmenuHtml") +public class FrontmenuHtmlController extends BaseController{ + + private Logger log = LoggerFactory.getLogger(this.getClass()); + + @Autowired + private FrontmenuService frontmenuService; + + @Autowired + private UserTokenService userTokenService; + @Autowired + private UserService userService; + /** + *方法描述:跳转到列表页面 + *创建人:mail.zhangyong@gmail.com + *创建时间:2024-04-21 20:49:27 + **/ + @GetMapping("/toList") + public String toListSFrontmenuT(HttpServletResponse response,HttpServletRequest request){ + String resourceid = request.getParameter("resourceid"); + request.setAttribute("resourceid",resourceid); + return "/backstage/oa/frontmenu/list"; + } + + /** + *方法描述:跳转到保存页面 + *创建人:mail.zhangyong@gmail.com + *创建时间:2024-04-21 20:49:27 + **/ + @GetMapping("/toSave") + public String toSaveSFrontmenuT(HttpServletResponse response,HttpServletRequest request){ + String resourceid = request.getParameter("resourceid"); + request.setAttribute("resourceid",resourceid); + return "/backstage/oa/frontmenu/add"; + } + + /** + *方法描述:根据ID跳转到修改页面 + *创建人:mail.zhangyong@gmail.com + *创建时间:2024-04-21 20:49:27 + **/ + @GetMapping("/toEdit/{id}") + public String toEditSFrontmenuT(HttpServletResponse response,HttpServletRequest request,@PathVariable("id") String id){ + String resourceid = request.getParameter("resourceid"); + request.setAttribute("resourceid",resourceid); + request.setAttribute("id", id); + return "/backstage/oa/frontmenu/edit"; + } + +} diff --git a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/frontmenu/controller/UserFrontmenuController.java b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/frontmenu/controller/UserFrontmenuController.java new file mode 100644 index 00000000..64d4fa2e --- /dev/null +++ b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/frontmenu/controller/UserFrontmenuController.java @@ -0,0 +1,104 @@ +package cn.jyjz.xiaoyao.frontmenu.controller; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import cn.jyjz.xiaoyao.admin.dataobject.User; +import cn.jyjz.xiaoyao.common.base.util.RequestBaseUtil; +import cn.jyjz.xiaoyao.common.base.vo.UserToken; +import cn.jyjz.xiaoyao.common.mybatisplus.util.SearchQueryFormat; +import cn.jyjz.xiaoyao.frontmenu.dataobject.Frontmenu; +import cn.jyjz.xiaoyao.frontmenu.dataobject.UserFrontmenu; +import cn.jyjz.xiaoyao.frontmenu.service.UserFrontmenuService; +import com.alanpoi.common.util.StringUtils; +import com.alibaba.fastjson.JSONObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; + +import cn.jyjz.xiaoyao.admin.service.UserService; +import cn.jyjz.xiaoyao.common.base.service.UserTokenService; +import cn.jyjz.xiaoyao.common.base.controller.BaseController; +import cn.jyjz.xiaoyao.common.base.param.ParamterPage; +import cn.jyjz.xiaoyao.common.base.util.requestFormat.SearchQuery; +import cn.jyjz.xiaoyao.common.base.vo.ResultVo; +import cn.jyjz.xiaoyao.common.base.vo.ResultVoUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; + +@RestController +@RequestMapping("/backstage/oa/userfrontmenu") +public class UserFrontmenuController extends BaseController{ + + private Logger log = LoggerFactory.getLogger(this.getClass()); + + @Autowired + private UserFrontmenuService userFrontmenuService; + + @Autowired + private UserTokenService userTokenService; + @Autowired + private UserService userService; + /** + *方法描述:返回json字符串,接受参数,dto名称以及分页信息 + *创建人:mail.zhangyong@gmail.com + *创建时间:2024-04-21 20:49:27 + **/ + @GetMapping("/list") + public ResultVo> listUserFrontmenu(ParamterPage paramterPage, HttpServletRequest request, HttpServletResponse response) throws IOException{ + SearchQuery searchQuery = this.getParametersStartingWithToSearchJson(request, "search_"); + + User user = this.userService.getSessionUser(request); + QueryWrapper queryWrapper = SearchQueryFormat.queryStringFormat(searchQuery,user,"u."); + + queryWrapper.ne("u.ID",user.getId()); + + + IPage page = this.userService.selectSearchListPage(paramterPage,queryWrapper); + + for(User usermodel:page.getRecords()){ + //查询关联的菜单集合 + List list = this.userFrontmenuService.listByUserid(usermodel.getId().toString()); + usermodel.setTempList(list); + } + + return ResultVoUtil.success(page); + } + + /** + *方法描述:保存添加数据 + *创建人:mail.zhangyong@gmail.com + *创建时间:2024-04-21 20:49:27 + **/ + @PostMapping("/saveactiongrant") + public ResultVo saveSUserFrontmenuT(HttpServletResponse response,HttpServletRequest request) throws IOException{ + UserToken userToken = this.userTokenService.getUserToken(RequestBaseUtil.getToken(request)); + + //获取选中的前端菜单主键 + String menuids = request.getParameter("menuids"); + String userid = request.getParameter("userid"); + + if(StringUtils.isNotBlank(menuids)){ + String[] mids = menuids.split(","); + List userFrontmenuList = new ArrayList<>(); + for(String mid:mids){ + UserFrontmenu userFrontmenu = new UserFrontmenu(); + userFrontmenu.setMenuid(Long.parseLong(mid)); + userFrontmenu.setUserid(Long.parseLong(userid)); + userFrontmenuList.add(userFrontmenu); + } + + //保存之前先删除关联 + this.userFrontmenuService.removeByUserid(userid); + return this.userFrontmenuService.saveBatch(userFrontmenuList)?ResultVoUtil.success():ResultVoUtil.error(); + } + + return ResultVoUtil.error(); + } + +} diff --git a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/frontmenu/controller/UserFrontmenuHtmlController.java b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/frontmenu/controller/UserFrontmenuHtmlController.java new file mode 100644 index 00000000..57179603 --- /dev/null +++ b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/frontmenu/controller/UserFrontmenuHtmlController.java @@ -0,0 +1,45 @@ +package cn.jyjz.xiaoyao.frontmenu.controller; + +import java.io.IOException; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import cn.jyjz.xiaoyao.frontmenu.service.UserFrontmenuService; +import com.alibaba.fastjson.JSONObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; + +import cn.jyjz.xiaoyao.admin.service.UserService; +import cn.jyjz.xiaoyao.common.base.service.UserTokenService; +import cn.jyjz.xiaoyao.common.base.controller.BaseController; + +@Controller +@RequestMapping("/backstage/oa/userfrontmenuHtml") +public class UserFrontmenuHtmlController extends BaseController{ + + private Logger log = LoggerFactory.getLogger(this.getClass()); + + @Autowired + private UserFrontmenuService userFrontmenuService; + + @Autowired + private UserTokenService userTokenService; + @Autowired + private UserService userService; + /** + *方法描述:跳转到列表页面 + *创建人:mail.zhangyong@gmail.com + *创建时间:2024-04-21 20:49:27 + **/ + @GetMapping("/showlist") + public String toListSUserFrontmenuT(HttpServletResponse response,HttpServletRequest request){ + + request.setAttribute("resourceid","3"); + return "/backstage/oa/frontmenu/userfrontmenu"; + } + + +} diff --git a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/frontmenu/dataDao/FrontmenuMybatisDao.java b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/frontmenu/dataDao/FrontmenuMybatisDao.java new file mode 100644 index 00000000..55575ef8 --- /dev/null +++ b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/frontmenu/dataDao/FrontmenuMybatisDao.java @@ -0,0 +1,11 @@ +package cn.jyjz.xiaoyao.frontmenu.dataDao; + +import cn.jyjz.xiaoyao.frontmenu.dataobject.Frontmenu; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; +/** +* 数据持久化 +*/ +@Mapper +public interface FrontmenuMybatisDao extends BaseMapper { +} diff --git a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/frontmenu/dataDao/UserFrontmenuMybatisDao.java b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/frontmenu/dataDao/UserFrontmenuMybatisDao.java new file mode 100644 index 00000000..9867a02c --- /dev/null +++ b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/frontmenu/dataDao/UserFrontmenuMybatisDao.java @@ -0,0 +1,11 @@ +package cn.jyjz.xiaoyao.frontmenu.dataDao; + +import cn.jyjz.xiaoyao.frontmenu.dataobject.UserFrontmenu; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Mapper; +/** +* 数据持久化 +*/ +@Mapper +public interface UserFrontmenuMybatisDao extends BaseMapper { +} diff --git a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/frontmenu/dataobject/Frontmenu.java b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/frontmenu/dataobject/Frontmenu.java new file mode 100644 index 00000000..924869bf --- /dev/null +++ b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/frontmenu/dataobject/Frontmenu.java @@ -0,0 +1,103 @@ +package cn.jyjz.xiaoyao.frontmenu.dataobject; + +import cn.jyjz.xiaoyao.common.mybatisplus.dto.BaseDto; +import cn.jyjz.xiaoyao.common.base.util.requestFormat.SearchQuery; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import java.util.Map; +import java.util.AbstractMap.SimpleEntry; +import java.util.stream.Stream; +import java.util.stream.Collectors; + + + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@Schema(name = "前端菜单管理", title = "前端菜单管理") +@TableName(value = "s_frontmenu_t") +public class Frontmenu implements BaseDto,java.io.Serializable { + + private static final long serialVersionUID = -7176960824610287118L; + @Schema(description = "主键ID") + @TableId(value = "id",type = IdType.ASSIGN_ID) + @JsonSerialize(using = ToStringSerializer.class) + @TableField(value="id") + private Long id; + + @Schema(description = "null") + @TableField(value="name") + private String name; + + @Schema(description = "父级菜单ID") + @TableField(value="parentId") + private Integer parentid; + + @Schema(description = "null") + @TableField(value="resKey") + private String reskey; + + @Schema(description = "null") + @TableField(value="resUrl") + private String resurl; + + @Schema(description = "菜单级别") + @TableField(value="level") + private Integer level; + + @Schema(description = "null") + @TableField(value="icon") + private String icon; + + @Schema(description = "菜单排序") + @TableField(value="orderNum") + private Integer ordernum; + + @Schema(description = "菜单是否隐藏(0:否,1:是)") + @TableField(value="ishide") + private Integer ishide; + + @Schema(description = "null") + @TableField(value="description") + private String description; + + + //保存当前登录用户的数据权限范围的搜索条件 + @TableField(exist = false) + private SearchQuery searchQueryrolesShowleave; + + @TableField(exist = false) + private final Map query = Stream.of( + new SimpleEntry<>("LISTDEPT","deptid"), + new SimpleEntry<>("ID","id"), + new SimpleEntry<>("NAME","name"), + new SimpleEntry<>("PARENTID","parentid"), + new SimpleEntry<>("RESKEY","reskey"), + new SimpleEntry<>("RESURL","resurl"), + new SimpleEntry<>("LEVEL","level"), + new SimpleEntry<>("ICON","icon"), + new SimpleEntry<>("ORDERNUM","ordernum"), + new SimpleEntry<>("ISHIDE","ishide"), + new SimpleEntry<>("DESCRIPTION","description") + ) + .collect(Collectors.toMap(SimpleEntry::getKey, SimpleEntry::getValue)); + @Override + public String getQueryFiled(String filedname){ + String obj = null; + if(null != query && query.size() > 0){ + obj = query.get(filedname); + } + return obj; + } +} diff --git a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/frontmenu/dataobject/UserFrontmenu.java b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/frontmenu/dataobject/UserFrontmenu.java new file mode 100644 index 00000000..feebd83a --- /dev/null +++ b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/frontmenu/dataobject/UserFrontmenu.java @@ -0,0 +1,57 @@ +package cn.jyjz.xiaoyao.frontmenu.dataobject; + +import cn.jyjz.xiaoyao.common.mybatisplus.dto.BaseDto; +import cn.jyjz.xiaoyao.common.base.util.requestFormat.SearchQuery; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; +import java.util.Map; +import java.util.AbstractMap.SimpleEntry; +import java.util.stream.Stream; +import java.util.stream.Collectors; + + + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@Schema(name = "用户和前端菜单关系表", title = "用户和前端菜单关系表") +@TableName(value = "s_user_frontmenu_t") +public class UserFrontmenu implements BaseDto,java.io.Serializable { + + private static final long serialVersionUID = 3139365577414759746L; + @Schema(description = "用户主键id") + @TableField(value="userId") + private Long userid; + + @Schema(description = "菜单ID") + @TableField(value="menuId") + private Long menuid; + + + //保存当前登录用户的数据权限范围的搜索条件 + @TableField(exist = false) + private SearchQuery searchQueryrolesShowleave; + + @TableField(exist = false) + private final Map query = Stream.of( + new SimpleEntry<>("listdept","deptid"), + new SimpleEntry<>("userId","userid"), + new SimpleEntry<>("menuId","menuid") + ) + .collect(Collectors.toMap(SimpleEntry::getKey, SimpleEntry::getValue)); + @Override + public String getQueryFiled(String filedname){ + String obj = null; + if(null != query && query.size() > 0){ + obj = query.get(filedname); + } + return obj; + } +} diff --git a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/frontmenu/service/FrontmenuService.java b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/frontmenu/service/FrontmenuService.java new file mode 100644 index 00000000..3643e143 --- /dev/null +++ b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/frontmenu/service/FrontmenuService.java @@ -0,0 +1,11 @@ +package cn.jyjz.xiaoyao.frontmenu.service; + +import java.util.List; +import cn.jyjz.xiaoyao.common.mybatisplus.base.BaseService; +import cn.jyjz.xiaoyao.frontmenu.dataobject.Frontmenu; + +/** +* 业务层 +*/ +public interface FrontmenuService extends BaseService { +} diff --git a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/frontmenu/service/UserFrontmenuService.java b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/frontmenu/service/UserFrontmenuService.java new file mode 100644 index 00000000..a9a9052f --- /dev/null +++ b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/frontmenu/service/UserFrontmenuService.java @@ -0,0 +1,26 @@ +package cn.jyjz.xiaoyao.frontmenu.service; + +import java.util.List; +import cn.jyjz.xiaoyao.common.mybatisplus.base.BaseService; +import cn.jyjz.xiaoyao.frontmenu.dataobject.Frontmenu; +import cn.jyjz.xiaoyao.frontmenu.dataobject.UserFrontmenu; + +/** +* 业务层 +*/ +public interface UserFrontmenuService extends BaseService { + + /** + * 根据用户主键,查询关联的菜单集合 + * @param userid + * @return + */ + public List listByUserid(String userid); + + /** + * 根据用户主键,删除已经关联的菜单集合 + * @param userid + * @return + */ + public boolean removeByUserid(String userid); +} diff --git a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/frontmenu/service/impl/FrontmenuServiceImpl.java b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/frontmenu/service/impl/FrontmenuServiceImpl.java new file mode 100644 index 00000000..e198f6f6 --- /dev/null +++ b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/frontmenu/service/impl/FrontmenuServiceImpl.java @@ -0,0 +1,20 @@ +package cn.jyjz.xiaoyao.frontmenu.service.impl; + +import cn.jyjz.xiaoyao.frontmenu.dataDao.FrontmenuMybatisDao; +import cn.jyjz.xiaoyao.frontmenu.dataobject.Frontmenu; +import cn.jyjz.xiaoyao.frontmenu.service.FrontmenuService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import cn.jyjz.xiaoyao.common.mybatisplus.base.BaseServiceImpl; +import lombok.extern.slf4j.Slf4j; + +/** +* 业务层实现 +*/ +@Service +@Slf4j +public class FrontmenuServiceImpl extends BaseServiceImpl implements FrontmenuService { + @Autowired + private FrontmenuMybatisDao frontmenuMybatisDao; + +} diff --git a/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/frontmenu/service/impl/UserFrontmenuServiceImpl.java b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/frontmenu/service/impl/UserFrontmenuServiceImpl.java new file mode 100644 index 00000000..45efe33d --- /dev/null +++ b/jyjz-system/jyjz-system-oa/src/main/java/cn/jyjz/xiaoyao/frontmenu/service/impl/UserFrontmenuServiceImpl.java @@ -0,0 +1,64 @@ +package cn.jyjz.xiaoyao.frontmenu.service.impl; + +import cn.jyjz.xiaoyao.frontmenu.dataDao.UserFrontmenuMybatisDao; +import cn.jyjz.xiaoyao.frontmenu.dataobject.Frontmenu; +import cn.jyjz.xiaoyao.frontmenu.dataobject.UserFrontmenu; +import cn.jyjz.xiaoyao.frontmenu.service.FrontmenuService; +import cn.jyjz.xiaoyao.frontmenu.service.UserFrontmenuService; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import cn.jyjz.xiaoyao.common.mybatisplus.base.BaseServiceImpl; +import lombok.extern.slf4j.Slf4j; + +import javax.annotation.Resource; +import java.util.List; +import java.util.stream.Collectors; + +/** +* 业务层实现 +*/ +@Service +@Slf4j +public class UserFrontmenuServiceImpl extends BaseServiceImpl implements UserFrontmenuService { + @Resource + private UserFrontmenuMybatisDao userFrontmenuMybatisDao; + + @Resource + private FrontmenuService frontmenuService; + /** + * 根据用户主键,查询关联的菜单集合 + * @param userid + * @return + */ + public List listByUserid(String userid){ + + QueryWrapper queryWrapper = new QueryWrapper(); + queryWrapper.eq("userId",userid); + List userFrontmenuList = this.userFrontmenuMybatisDao.selectList(queryWrapper); + + List list = null; + if(null != userFrontmenuList && !userFrontmenuList.isEmpty()){ + List ufidList = userFrontmenuList.stream().map(UserFrontmenu::getMenuid).collect(Collectors.toList()); + + QueryWrapper fmQuery = new QueryWrapper(); + fmQuery.in("id",ufidList); + list = this.frontmenuService.selectSearchList(fmQuery); + } + + return list; + } + + /** + * 根据用户主键,删除已经关联的菜单集合 + * @param userid + * @return + */ + public boolean removeByUserid(String userid){ + QueryWrapper queryWrapper = new QueryWrapper(); + queryWrapper.eq("userId",userid); + + return this.remove(queryWrapper); + } +} diff --git a/jyjz-system/jyjz-system-oa/src/main/resources/mapper/oa/SFrontmenuTMapper.xml b/jyjz-system/jyjz-system-oa/src/main/resources/mapper/oa/SFrontmenuTMapper.xml new file mode 100644 index 00000000..7bef3f84 --- /dev/null +++ b/jyjz-system/jyjz-system-oa/src/main/resources/mapper/oa/SFrontmenuTMapper.xml @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + id AS id, + name AS name, + parentId AS parentid, + resKey AS reskey, + resUrl AS resurl, + level AS level, + icon AS icon, + orderNum AS ordernum, + ishide AS ishide, + description AS description + + + + + + and id ${id.dataOp} ${id.likestar}#{id.value}${id.likeend} + and name ${name.dataOp} ${name.likestar}#{name.value}${name.likeend} + and parentId ${parentid.dataOp} ${parentid.likestar}#{parentid.value}${parentid.likeend} + and resKey ${reskey.dataOp} ${reskey.likestar}#{reskey.value}${reskey.likeend} + and resUrl ${resurl.dataOp} ${resurl.likestar}#{resurl.value}${resurl.likeend} + and level ${level.dataOp} ${level.likestar}#{level.value}${level.likeend} + and icon ${icon.dataOp} ${icon.likestar}#{icon.value}${icon.likeend} + and orderNum ${ordernum.dataOp} ${ordernum.likestar}#{ordernum.value}${ordernum.likeend} + and ishide ${ishide.dataOp} ${ishide.likestar}#{ishide.value}${ishide.likeend} + and description ${description.dataOp} ${description.likestar}#{description.value}${description.likeend} + and USERID ${userid.dataOp} ${userid.likestar}#{userid.value}${userid.likeend} + + and DEPARTID in + + #{item} + + + + + + order by ${page.sortname} ${page.sortorder} + limit ${page.start}, ${page.Pagesize} + + + + diff --git a/jyjz-system/jyjz-system-oa/src/main/resources/mapper/oa/SUserFrontmenuTMapper.xml b/jyjz-system/jyjz-system-oa/src/main/resources/mapper/oa/SUserFrontmenuTMapper.xml new file mode 100644 index 00000000..4f4c5ffc --- /dev/null +++ b/jyjz-system/jyjz-system-oa/src/main/resources/mapper/oa/SUserFrontmenuTMapper.xml @@ -0,0 +1,33 @@ + + + + + + + + + userId AS userid, + menuId AS menuid + + + + + + and userId ${userid.dataOp} ${userid.likestar}#{userid.value}${userid.likeend} + and menuId ${menuid.dataOp} ${menuid.likestar}#{menuid.value}${menuid.likeend} + and USERID ${userid.dataOp} ${userid.likestar}#{userid.value}${userid.likeend} + + and DEPARTID in + + #{item} + + + + + + order by ${page.sortname} ${page.sortorder} + limit ${page.start}, ${page.Pagesize} + + + + diff --git a/runstart/src/main/resources/application-dev.yml b/runstart/src/main/resources/application-dev.yml index ee6744ba..6e69b10b 100644 --- a/runstart/src/main/resources/application-dev.yml +++ b/runstart/src/main/resources/application-dev.yml @@ -22,16 +22,16 @@ spring: primary: master datasource: master: - url: jdbc:mysql://47.93.59.251:3306/ocrnew?useUnicode=true&nullCatalogMeansCurrent=true&characterEncoding=UTF-8&characterSetResults=utf8&serverTimezone=Asia/Shanghai&useSSL=false + url: jdbc:mysql://127.0.0.1:3306/ocrnew?useUnicode=true&nullCatalogMeansCurrent=true&characterEncoding=UTF-8&characterSetResults=utf8&serverTimezone=Asia/Shanghai&useSSL=false driver-class-name: com.mysql.cj.jdbc.Driver - username: ysltest - password: ysltest2024. + username: ocrnew + password: ocrnew type: com.alibaba.druid.pool.DruidDataSource slave: - url: jdbc:mysql://47.93.59.251:3306/ocrnew?useUnicode=true&nullCatalogMeansCurrent=true&characterEncoding=UTF-8&characterSetResults=utf8&serverTimezone=Asia/Shanghai&useSSL=false + url: jdbc:mysql://127.0.0.1:3306/ocrnew?useUnicode=true&nullCatalogMeansCurrent=true&characterEncoding=UTF-8&characterSetResults=utf8&serverTimezone=Asia/Shanghai&useSSL=false driver-class-name: com.mysql.cj.jdbc.Driver - username: ysltest - password: ysltest2024. + username: ocrnew + password: ocrnew type: com.alibaba.druid.pool.DruidDataSource druid: # 初始连接数 @@ -160,15 +160,15 @@ mybatis-plus: xiaoyao: web: #上传文件路径 - uploadPath: D:/Java/idea/IdeaWorkSpace/ocr/htmlweb/upload + uploadPath: D:/ideaWork/jeecg/ocr/htmlweb/upload #页面根路径 - frontPath: D:/Java/idea/IdeaWorkSpace/ocr/htmlweb + frontPath: D:/ideaWork/jeecg/ocr/htmlweb #js、css、图片存放路径 - staticPath: D:/Java/idea/IdeaWorkSpace/ocr/htmlweb/static + staticPath: D:/ideaWork/jeecg/ocr/htmlweb/static #页面模版路径 - webPath: D:/Java/idea/IdeaWorkSpace/ocr/htmlweb/web + webPath: D:/ideaWork/jeecg/ocr/htmlweb/web #Lucene索引路径 - lucenePath: D:/Java/idea/IdeaWorkSpace/ocr/htmlweb/lucene/indexDir + lucenePath: D:/ideaWork/jeecg/ocr/htmlweb/lucene/indexDir #是否开启flowable haveFlowable: true webconfig: From dc0605c7fe9048768a5fc269cd83e3c53f56c4b4 Mon Sep 17 00:00:00 2001 From: admin <149470858@qq.com> Date: Wed, 24 Apr 2024 23:59:46 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E5=A2=9E=E5=8A=A0menu=E8=8F=9C=E5=8D=95?= =?UTF-8?q?=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- runstart/doc/sql/update.sql | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/runstart/doc/sql/update.sql b/runstart/doc/sql/update.sql index 0dfc7d1d..ab5a8a36 100644 --- a/runstart/doc/sql/update.sql +++ b/runstart/doc/sql/update.sql @@ -212,3 +212,35 @@ INSERT INTO S_BACKSTAGEOPENURL_T(ID,URL,REMARK) VALUES(1196092352600928213, '/fl INSERT INTO S_BACKSTAGEOPENURL_T(ID,URL,REMARK) VALUES(1196092352600928214, '/backstage/admin/department/updateflowable', '公司关联工作流'); + + + +INSERT INTO S_RESOURCES_T(ID,RESOURCENAME,RPARENTID,ROOTID,RESOURCETYPE,PRIORITYPE,RESOURCE,RESOURCELIST,RESOURCEDESC,ENABLED,RIOCNIMAGE) +VALUES (1231708402914598912,'前端菜单管理',160000,160000, '1', '5','/backstage/oa/frontmenuHtml/toList','/backstage/oa/frontmenu/list','前端菜单管理', '1', 'icon-diamond'); + +INSERT INTO S_RESOURCEMETHOD_T (RESOURCEID,METHODID,RESOURCEBEFOR,RESOURCEAFTER) VALUES + (1231708402914598912, '101','/backstage/oa/frontmenuHtml/toSave','/backstage/oa/frontmenu/save'); + +INSERT INTO S_RESOURCEMETHOD_T (RESOURCEID,METHODID,RESOURCEBEFOR,RESOURCEAFTER) VALUES + (1231708402914598912, '102','/backstage/oa/frontmenuHtml/toEdit','/backstage/oa/frontmenu/edit'); + +INSERT INTO S_RESOURCEMETHOD_T (RESOURCEID,METHODID,RESOURCEBEFOR,RESOURCEAFTER) VALUES + (1231708402914598912, '103','/backstage/oa/frontmenu/delmore',null); + +INSERT INTO S_RESOURCEMETHOD_T (RESOURCEID,METHODID,RESOURCEBEFOR,RESOURCEAFTER) VALUES + (1231708402914598912, '104','/backstage/oa/frontmenu/getdata',null); + +INSERT INTO S_RESOURCEMETHOD_T (RESOURCEID,METHODID,RESOURCEBEFOR,RESOURCEAFTER) VALUES + (1231708402914598912, '111','/backstage/oa/frontmenuHtml/toEdit','/backstage/oa/frontmenu/edit'); + +INSERT INTO S_RESOURCEMETHOD_T (RESOURCEID,METHODID,RESOURCEBEFOR,RESOURCEAFTER) VALUES + (1231708402914598912, '112','/backstage/oa/frontmenu/delone',null); + +INSERT INTO S_RESOURCEMETHOD_T (RESOURCEID,METHODID,RESOURCEBEFOR,RESOURCEAFTER) +VALUES (1231708402914598912, 105,'/backstage/oa/userfrontmenu/list','/backstage/oa/userfrontmenu/saveactiongrant'); + +INSERT INTO S_BACKSTAGEOPENURL_T(ID,URL,REMARK) +VALUES(1231708402641969153, '/backstage/oa/userfrontmenuHtml/showlist', '进入前端菜单用户列表'); + +INSERT INTO S_BACKSTAGEOPENURL_T(ID,URL,REMARK) +VALUES(1231708402641969153, '/backstage/oa/userfrontmenuHtml/showlist', '进入前端菜单用户列表');