From e6c1f40ab4a1a58e641ee1bdd1ec225ad850dbd1 Mon Sep 17 00:00:00 2001 From: haozq <1611483981@qq.com> Date: Mon, 8 Dec 2025 18:03:24 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=A8=E6=88=B7=E7=AE=A1=E7=90=86=E5=8F=8A?= =?UTF-8?q?=E4=B8=8B=E6=8B=89=E9=80=89=E6=9F=A5=E8=AF=A2=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E5=BC=80=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/workspace.xml | 116 +++++++-- HnRealNameBmw/pom.xml | 20 +- .../login/controller/AllUserController.java | 13 +- .../login/controller/LoginController.java | 3 + .../controller/PublicLoginController.java | 152 ++++++++++++ .../hnrn/rnbmw/login/dao/AllUserDao.java | 94 ++++++++ .../rnbmw/login/service/AllUserService.java | 220 ++++++++++++++++++ .../rnbmw/login/service/LoginService.java | 5 +- .../bonus/hnrn/rnbmw/login/vo/AllUserVo.java | 98 ++++++++ .../hnrn/rnbmw/login/vo/PublicUserVo.java | 47 ++++ .../manager/config/BnsSecurityConfig.java | 6 +- .../manager/config/SecurityHeadersFilter.java | 4 +- .../manager/controller/OrgController.java | 2 + .../resources/mappers/login/AllUserMapper.xml | 112 +++++++++ .../controller/PublicLoginController.java | 53 +++++ .../backstage/login/dao/PublicLoginDao.java | 38 +++ .../login/service/PublicLoginService.java | 38 ++- .../backstage/login/vo/PublicUserVo.java | 47 ++++ .../backstage/manager/dao/UserDao.java | 3 +- .../backstage/manager/utils/AjaxRes.java | 32 ++- .../mappers/login/PublicLoginMapper.xml | 28 +++ .../resources/mappers/user/newUserMapper.xml | 6 + .../com/bonus/gateway/filter/AuthFilter.java | 6 +- .../bonus/gateway/filter/PathMatchUtil.java | 22 ++ hn-ldlz/ldlz-admin/pom.xml | 28 ++- .../controller/PublicLoginController.java | 80 +++++++ .../java/com/bns/ldlz/domain/LoginForm.java | 11 + .../com/bns/ldlz/domain/PublicUserVo.java | 51 ++++ .../com/bns/ldlz/domain/bo/PerformLogBo.java | 1 - .../bns/ldlz/mapper/PublicLoginMapper.java | 44 ++++ .../ldlz/service/impl/PublicLoginService.java | 127 ++++++++++ .../bns/web/core/config/SwaggerConfig.java | 64 ++--- .../src/main/resources/bootstrap.yml | 2 +- .../mapper/ldlz/PublicLoginMapper.xml | 36 +++ .../bns/framework/config/SecurityConfig.java | 2 +- .../com/bns/system/mapper/SysDeptMapper.java | 4 + .../com/bns/system/mapper/SysRoleMapper.java | 4 + .../bns/system/service/ISysDeptService.java | 6 + .../bns/system/service/ISysRoleService.java | 5 + .../service/impl/SysDeptServiceImpl.java | 20 ++ .../service/impl/SysRoleServiceImpl.java | 13 ++ .../resources/mapper/system/SysDeptMapper.xml | 27 ++- .../resources/mapper/system/SysRoleMapper.xml | 25 ++ hn-ldlz/pom.xml | 24 +- realname-app/pom.xml | 10 +- ...ation.java => RealNameAppApplication.java} | 4 +- 46 files changed, 1635 insertions(+), 118 deletions(-) create mode 100644 HnRealNameBmw/src/main/java/com/bonus/hnrn/rnbmw/login/vo/AllUserVo.java create mode 100644 HnRealNameBmw/src/main/java/com/bonus/hnrn/rnbmw/login/vo/PublicUserVo.java create mode 100644 hn-czl-service/src/main/java/com/bonus/hn/bearing/capacity/backstage/login/dao/PublicLoginDao.java create mode 100644 hn-czl-service/src/main/java/com/bonus/hn/bearing/capacity/backstage/login/vo/PublicUserVo.java create mode 100644 hn-czl-service/src/main/resources/mappers/login/PublicLoginMapper.xml create mode 100644 hn-gateway/bonus-gateway/src/main/java/com/bonus/gateway/filter/PathMatchUtil.java create mode 100644 hn-ldlz/ldlz-admin/src/main/java/com/bns/ldlz/controller/PublicLoginController.java create mode 100644 hn-ldlz/ldlz-admin/src/main/java/com/bns/ldlz/domain/LoginForm.java create mode 100644 hn-ldlz/ldlz-admin/src/main/java/com/bns/ldlz/domain/PublicUserVo.java create mode 100644 hn-ldlz/ldlz-admin/src/main/java/com/bns/ldlz/mapper/PublicLoginMapper.java create mode 100644 hn-ldlz/ldlz-admin/src/main/java/com/bns/ldlz/service/impl/PublicLoginService.java create mode 100644 hn-ldlz/ldlz-admin/src/main/resources/mapper/ldlz/PublicLoginMapper.xml rename realname-app/src/main/java/com/bonus/hnrn/rnama/{RnamaApplication.java => RealNameAppApplication.java} (78%) diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 8141e71..cbb5c62 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -4,12 +4,67 @@ - + - + - @@ -212,16 +285,12 @@ - - - file://$PROJECT_DIR$/hn-czl-service/src/main/java/com/bonus/hn/bearing/capacity/backstage/manager/controller/UserController.java - 58 - file://$PROJECT_DIR$/hn-czl-service/src/main/java/com/bonus/hn/bearing/capacity/backstage/manager/service/impl/UserServiceImpl.java 93 @@ -232,6 +301,15 @@ 126 + + file://$PROJECT_DIR$/hn-ldlz/ldlz-system/src/main/java/com/bns/system/mapper/SysUserPostMapper.java + 42 + + + diff --git a/HnRealNameBmw/pom.xml b/HnRealNameBmw/pom.xml index f3a57c7..73e009b 100644 --- a/HnRealNameBmw/pom.xml +++ b/HnRealNameBmw/pom.xml @@ -135,6 +135,12 @@ poi-ooxml ${poi.version} + + + org.apache.poi + poi-ooxml-schemas + ${poi.version} + com.jcraft jsch @@ -177,12 +183,7 @@ 1.6.2 compile - - - org.apache.poi - poi-ooxml - 3.17 - + com.jcraft @@ -362,12 +363,7 @@ xlsx-streamer 2.1.0 - - cn.hutool - hutool-all - 5.8.27 - compile - + io.jsonwebtoken jjwt diff --git a/HnRealNameBmw/src/main/java/com/bonus/hnrn/rnbmw/login/controller/AllUserController.java b/HnRealNameBmw/src/main/java/com/bonus/hnrn/rnbmw/login/controller/AllUserController.java index baa3263..3e45858 100644 --- a/HnRealNameBmw/src/main/java/com/bonus/hnrn/rnbmw/login/controller/AllUserController.java +++ b/HnRealNameBmw/src/main/java/com/bonus/hnrn/rnbmw/login/controller/AllUserController.java @@ -1,24 +1,19 @@ package com.bonus.hnrn.rnbmw.login.controller; -import com.bonus.hnrn.rnbmw.login.service.AllUserService; + import io.swagger.annotations.Api; -import org.springframework.beans.factory.annotation.Autowired; + import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; + @Api(tags = "系统用户管理") @RestController + @RequestMapping("allUser") public class AllUserController { - @Autowired - private AllUserService allUserService; - - - - - } diff --git a/HnRealNameBmw/src/main/java/com/bonus/hnrn/rnbmw/login/controller/LoginController.java b/HnRealNameBmw/src/main/java/com/bonus/hnrn/rnbmw/login/controller/LoginController.java index 2446eaa..2f3ead5 100644 --- a/HnRealNameBmw/src/main/java/com/bonus/hnrn/rnbmw/login/controller/LoginController.java +++ b/HnRealNameBmw/src/main/java/com/bonus/hnrn/rnbmw/login/controller/LoginController.java @@ -3,6 +3,7 @@ package com.bonus.hnrn.rnbmw.login.controller; import com.bonus.hnrn.rnbmw.login.service.LoginService; import com.bonus.hnrn.rnbmw.login.vo.AjaxResult; import com.bonus.hnrn.rnbmw.login.vo.LoginFormVo; +import com.bonus.hnrn.rnbmw.login.vo.PublicUserVo; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; @@ -30,4 +31,6 @@ public class LoginController { + + } diff --git a/HnRealNameBmw/src/main/java/com/bonus/hnrn/rnbmw/login/controller/PublicLoginController.java b/HnRealNameBmw/src/main/java/com/bonus/hnrn/rnbmw/login/controller/PublicLoginController.java index f8bef2d..b1bc9e1 100644 --- a/HnRealNameBmw/src/main/java/com/bonus/hnrn/rnbmw/login/controller/PublicLoginController.java +++ b/HnRealNameBmw/src/main/java/com/bonus/hnrn/rnbmw/login/controller/PublicLoginController.java @@ -1,26 +1,59 @@ package com.bonus.hnrn.rnbmw.login.controller; +import com.bonus.hnrn.rnbmw.login.service.AllUserService; import com.bonus.hnrn.rnbmw.login.service.PublicLoginService; +import com.bonus.hnrn.rnbmw.login.vo.AjaxResult; +import com.bonus.hnrn.rnbmw.login.vo.AllUserVo; import com.bonus.hnrn.rnbmw.login.vo.LoginForm; +import com.bonus.hnrn.rnbmw.manager.dao.UserDao; +import com.bonus.hnrn.rnbmw.manager.entity.OrgBean; +import com.bonus.hnrn.rnbmw.manager.entity.ZNode; +import com.bonus.hnrn.rnbmw.manager.model.SysUser; +import com.bonus.hnrn.rnbmw.manager.service.OrgService; +import com.bonus.hnrn.rnbmw.manager.table.PageTableHandler; +import com.bonus.hnrn.rnbmw.manager.table.PageTableRequest; +import com.bonus.hnrn.rnbmw.manager.table.PageTableResponse; +import com.bonus.hnrn.rnbmw.register.beans.RegisterBean; +import com.bonus.hnrn.rnbmw.register.service.RegisterService; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; +import java.util.ArrayList; +import java.util.List; /** * 默认公共登录方法 */ @RestController @RequestMapping(value = "/publicLogin") +@Slf4j public class PublicLoginController { @Autowired private PublicLoginService loginService; + @Autowired + private AllUserService allUserService; + + + @Autowired + private OrgService orgService; + + @Resource + private UserDao userDao; + + @Resource(name = "RegisterService") + private RegisterService registerService; + + /** * 系统登录 * @param token @@ -32,6 +65,125 @@ public class PublicLoginController { } + @PostMapping("getUserList") + @ApiOperation(value = "用户管理-列表查询") + public PageTableResponse getUserList(PageTableRequest request) { + return new PageTableHandler(new PageTableHandler.CountHandler() { + @Override + public int count(PageTableRequest request) { + return allUserService.getUserListCount(request.getParams()); + } + }, new PageTableHandler.ListHandler() { + @Override + public List list(PageTableRequest request) { + return allUserService.allUserService(request.getParams(), request.getOffset(), request.getLimit()); + } + }).handle(request); + } + + + @PostMapping("addUserData") + @ApiOperation(value = "用户管理-新增用户") + public AjaxResult addUserData(@RequestBody AllUserVo vo) { + return allUserService.addUserData(vo); + } + + @PostMapping("updateUserData") + @ApiOperation(value = "用户管理-修改用户") + public AjaxResult updateUserData(@RequestBody AllUserVo vo) { + return allUserService.updateUserData(vo); + } + + + @PostMapping("updatePassword") + @ApiOperation(value = "用户管理-修改密码") + public AjaxResult updatePassword(@RequestBody AllUserVo vo) { + return allUserService.updatePassword(vo); + } + + @PostMapping("resetPassword") + @ApiOperation(value = "用户管理-重置密码") + public AjaxResult resetPassword(@RequestBody AllUserVo vo) { + return allUserService.resetPassword(vo); + } + + @PostMapping("delUserData") + @ApiOperation(value = "用户管理-删除用户") + public AjaxResult delUserData(@RequestBody AllUserVo vo) { + return allUserService.delUserData(vo); + } + + + @PostMapping("getDeptTree") + @ApiOperation(value = "获取部门树") + public AjaxResult getDeptTree() { + OrgBean bean=new OrgBean(); + List list= orgService.getCompanyTree(bean); + return AjaxResult.success(list); + } + + /** + * 角色下拉选 + * @param + * @return + */ + @PostMapping("getRoleList") + @ApiOperation(value = "获取角色下拉选") + public AjaxResult getRoleList(SysUser user) { + int lv=userDao.getOrgLv(user); + user.setRoleLevel(lv+""); + List roleInfo = userDao.getRoleInfo(user); + return AjaxResult.success(roleInfo); + } + + /** + * 角色下拉选 + * @param + * @return + */ + @PostMapping("getProList") + @ApiOperation(value = "工程下拉选") + public AjaxResult getProList(SysUser user) { + int lv=userDao.getOrgLv(user); + user.setRoleLevel(lv+""); + List roleInfo = userDao.getRoleInfo(user); + return AjaxResult.success(roleInfo); + } + + /** + * 角色下拉选 + * @param + * @return + */ + @PostMapping("getSubList") + @ApiOperation(value = "分包商下拉选") + public AjaxResult getSubList(RegisterBean vo) { + List sub = new ArrayList<>(); + try { + sub = registerService.findSubList(vo); + } catch (Exception e) { + log.error(e.toString(),e); + } + return AjaxResult.success(sub); + } + /** + * 角色下拉选 + * @param + * @return + */ + @PostMapping("getTeamList") + @ApiOperation(value = "班组下拉选") + public AjaxResult getTeamList(RegisterBean vo) { + List team = new ArrayList<>(); + try { + team = registerService.findTeamList(vo); + } catch (Exception e) { + log.error(e.toString(),e); + } + return AjaxResult.success(team); + } + + diff --git a/HnRealNameBmw/src/main/java/com/bonus/hnrn/rnbmw/login/dao/AllUserDao.java b/HnRealNameBmw/src/main/java/com/bonus/hnrn/rnbmw/login/dao/AllUserDao.java index 171b736..58cdf06 100644 --- a/HnRealNameBmw/src/main/java/com/bonus/hnrn/rnbmw/login/dao/AllUserDao.java +++ b/HnRealNameBmw/src/main/java/com/bonus/hnrn/rnbmw/login/dao/AllUserDao.java @@ -1,7 +1,101 @@ package com.bonus.hnrn.rnbmw.login.dao; +import com.bonus.hnrn.rnbmw.login.vo.AllUserVo; +import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Repository; +import java.util.List; +import java.util.Map; + @Repository public interface AllUserDao { + /** + * 查询用户数据数量 + * @param params + * @return + */ + int getUserListCount(@Param("params") Map params); + + /** + * 查询用户数据信息 + * @param params + * @param offset + * @param limit + * @return + */ + List allUserService(@Param("params")Map params, @Param("offset")Integer offset, @Param("limit")Integer limit); + + /** + * 查询数据是否存在 + * @param data + * @return + */ + int getUserCount(AllUserVo data); + + /** + * 新增用户信息 + * @param vo + * @return + */ + int addUserData(AllUserVo vo); + + /** + * 修改用户数据 + * @param vo + * @return + */ + int updateUserData(AllUserVo vo); + + /** + * 删除用户数据 + * @param vo + * @return + */ + int delUserData(AllUserVo vo); + + /** + * 查询用户数据 + * @param vo + * @return + */ + AllUserVo getUserData(AllUserVo vo); + + /** + * 修改密码 + * @param vo + * @return + */ + + int updatePassword(AllUserVo vo); + + /** + * 查询实名制用户 + * @param vo + * @return + */ + String getSmzUserByName(AllUserVo vo); + + /** + * 新增实名制用户 + * @param vo + */ + void addSmzUser(AllUserVo vo); + + /** + * 添加用户权限 + * @param vo + */ + void addUserRole(AllUserVo vo); + + /** + * 更新实名制用户 + * @param vo + */ + void updateSmzUser(AllUserVo vo); + + /** + * 删除实名制用户角色权限 + * @param vo + */ + void delUserRole(AllUserVo vo); } diff --git a/HnRealNameBmw/src/main/java/com/bonus/hnrn/rnbmw/login/service/AllUserService.java b/HnRealNameBmw/src/main/java/com/bonus/hnrn/rnbmw/login/service/AllUserService.java index 6d51009..6801c05 100644 --- a/HnRealNameBmw/src/main/java/com/bonus/hnrn/rnbmw/login/service/AllUserService.java +++ b/HnRealNameBmw/src/main/java/com/bonus/hnrn/rnbmw/login/service/AllUserService.java @@ -1,7 +1,227 @@ package com.bonus.hnrn.rnbmw.login.service; +import com.bonus.hnrn.rnbmw.login.dao.AllUserDao; +import com.bonus.hnrn.rnbmw.login.vo.AjaxResult; +import com.bonus.hnrn.rnbmw.login.vo.AllUserVo; +import com.bonus.hnrn.rnbmw.manager.utils.StringHelper; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; import org.springframework.stereotype.Service; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + @Service +@Slf4j public class AllUserService { + + @Autowired + private AllUserDao allUserDao; + + @Autowired + private BCryptPasswordEncoder passwordEncoder; + /** + * 查询数据表格集合 + * @param params + * @return + */ + public int getUserListCount(Map params) { + try{ + return allUserDao.getUserListCount(params); + }catch (Exception e){ + log.error(e.toString(),e); + } + return 0; + } + + /** + * 查询数据信息 + * @param params + * @param offset + * @param limit + * @return + */ + public List allUserService(Map params, Integer offset, Integer limit) { + try{ + return allUserDao.allUserService(params,offset,limit); + }catch (Exception e){ + log.error(e.toString(),e); + } + return new ArrayList(); + } + + /** + * 新增用户管理 + * @param vo + * @return + */ + public AjaxResult addUserData(AllUserVo vo) { + try{ + AllUserVo data=new AllUserVo(); + data.setLoginName(vo.getLoginName()); + int isCz=allUserDao.getUserCount(data); + if(isCz>0){ + return AjaxResult.error("登录昵称已存在"); + } + data=new AllUserVo(); + data.setUserPhone(vo.getUserPhone()); + isCz=allUserDao.getUserCount(data); + if(isCz>0){ + return AjaxResult.error("手机号已被注册"); + } + data=new AllUserVo(); + data.setIdCard(vo.getIdCard()); + isCz=allUserDao.getUserCount(data); + if(isCz>0){ + return AjaxResult.error("身份证号码已被注册"); + } + if(StringHelper.isEmpty(vo.getPassword())){ + vo.setPassword("Hnsbd@admin123"); + } + String password= passwordEncoder.encode(vo.getPassword()); + vo.setPassword(password); + int num=allUserDao.addUserData(vo); + if(num>0){ + addSmzUser(vo); + return AjaxResult.success("添加成功"); + } + + }catch (Exception e){ + log.error(e.toString(),e); + } + return AjaxResult.error("添加失败"); + } + + /** + * 添加实名制用户细腻系 + * @param vo + */ + private void addSmzUser(AllUserVo vo) { + try{ + String id=allUserDao.getSmzUserByName(vo); + if(StringHelper.isEmpty(id)){ + //新增用户信息 + allUserDao.addSmzUser(vo); + allUserDao.addUserRole(vo); + }else{ + vo.setId(id); + allUserDao.updateSmzUser(vo); + allUserDao.delUserRole(vo); + allUserDao.addUserRole(vo); + } + + + }catch (Exception e){ + log.error(e.toString(),e); + } + } + + /** + * 查询】】修改用户数据 + * @param vo + * @return + */ + public AjaxResult updateUserData(AllUserVo vo) { + try{ + if(StringHelper.isNotEmpty(vo.getUserPhone())){ + AllUserVo data=new AllUserVo(); + data.setId(vo.getId()); + data.setUserPhone(vo.getUserPhone()); + int isCz=allUserDao.getUserCount(data); + if(isCz>0){ + return AjaxResult.error("手机号已被注册"); + } + } + if(StringHelper.isNotEmpty(vo.getIdCard())){ + AllUserVo data=new AllUserVo(); + data.setId(vo.getId()); + data.setIdCard(vo.getIdCard()); + int isCz=allUserDao.getUserCount(data); + if(isCz>0){ + return AjaxResult.error("身份证号码已被注册"); + } + int num=allUserDao.updateUserData(vo); + if(num>0){ + addSmzUser(vo); + return AjaxResult.success("修改成功"); + } + } + + }catch (Exception e){ + log.error(e.toString(),e); + } + return AjaxResult.error("修改失败"); + } + + /** + * 修改密码 + * @param vo + * @return + */ + public AjaxResult updatePassword(AllUserVo vo) { + try{ + AllUserVo data=allUserDao.getUserData(vo); + if(data==null){ + return AjaxResult.error("用户不存在"); + }else{ + String newPassword= passwordEncoder.encode(vo.getNewPassword()); + if (!passwordEncoder.matches(vo.getPassword(), data.getPassword())) { + return AjaxResult.error("旧密码错误!"); + } + vo.setNewPassword(newPassword); + int num=allUserDao.updatePassword(vo); + if(num>0){ + + return AjaxResult.success("修改成功"); + } + } + + }catch (Exception e){ + log.error(e.toString(),e); + } + return AjaxResult.error("修改失败"); + } + + /** + * 删除用户 + * @param vo + * @return + */ + public AjaxResult delUserData(AllUserVo vo) { + try{ + int num=allUserDao.delUserData(vo); + if(num>0){ + return AjaxResult.success("删除成功"); + } + }catch (Exception e){ + log.error(e.toString(),e); + } + return AjaxResult.error("删除失败"); + } + + /** + * 重置密码 + * @param vo + * @return + */ + public AjaxResult resetPassword(AllUserVo vo) { + try{ + AllUserVo data=allUserDao.getUserData(vo); + if(data==null){ + return AjaxResult.error("用户不存在"); + }else{ + String newPassword= passwordEncoder.encode("Hnsbd@admin123"); + vo.setNewPassword(newPassword); + int num=allUserDao.updatePassword(vo); + if(num>0){ + return AjaxResult.success("修改成功"); + } + } + }catch (Exception e){ + log.error(e.toString(),e); + } + return AjaxResult.error("修改失败"); + } } diff --git a/HnRealNameBmw/src/main/java/com/bonus/hnrn/rnbmw/login/service/LoginService.java b/HnRealNameBmw/src/main/java/com/bonus/hnrn/rnbmw/login/service/LoginService.java index 073d2be..adedb69 100644 --- a/HnRealNameBmw/src/main/java/com/bonus/hnrn/rnbmw/login/service/LoginService.java +++ b/HnRealNameBmw/src/main/java/com/bonus/hnrn/rnbmw/login/service/LoginService.java @@ -3,6 +3,7 @@ package com.bonus.hnrn.rnbmw.login.service; import com.bonus.hnrn.rnbmw.login.dao.LoginDao; import com.bonus.hnrn.rnbmw.login.vo.AjaxResult; import com.bonus.hnrn.rnbmw.login.vo.LoginFormVo; +import com.bonus.hnrn.rnbmw.login.vo.PublicUserVo; import com.bonus.hnrn.rnbmw.manager.utils.AESCBCUtils; import com.github.pagehelper.util.StringUtil; import lombok.extern.slf4j.Slf4j; @@ -59,8 +60,4 @@ public class LoginService { } - - - - } diff --git a/HnRealNameBmw/src/main/java/com/bonus/hnrn/rnbmw/login/vo/AllUserVo.java b/HnRealNameBmw/src/main/java/com/bonus/hnrn/rnbmw/login/vo/AllUserVo.java new file mode 100644 index 0000000..741c4ee --- /dev/null +++ b/HnRealNameBmw/src/main/java/com/bonus/hnrn/rnbmw/login/vo/AllUserVo.java @@ -0,0 +1,98 @@ +package com.bonus.hnrn.rnbmw.login.vo; + +import lombok.Data; + +@Data +public class AllUserVo { + + private String id; + /** + * 用户名称 + */ + private String userName; + /** + * 用户名称 + */ + private String loginName; + /** + * 密码 + */ + private String password; + /** + * 手机号 + */ + private String userPhone; + /** + * 数据权限 + */ + private String dataType; + /** + * 身份证号码 + */ + private String idCard; + /** + * json数据 + */ + private String jsonData; + /** + * 创建时间 + */ + private String createTime; + /** + * 更新时间 + */ + private String updateTime; + /** + * 管理员权限 + */ + private String isAdmin; + /** + * 关键字 + */ + private String keyWord; + /** + * 新密码 + */ + private String newPassword; + /** + * 角色id + */ + private String roleId; + /** + * 组织机构id + */ + private String orgId; + /** + * 工程名称 + */ + private String proName; + /** + * 工程id + */ + private String proId; + /** + * 分包商id + */ + private String subId; + /** + * 分包商名称 + */ + private String subName; + /** + * 班组id + */ + private String teamId; + /** + * 班组名称 + */ + private String teamName; + /** + * 权限类型 + */ + private String type; + /** + * 是否自有人员 + */ + private String isFree; + +} diff --git a/HnRealNameBmw/src/main/java/com/bonus/hnrn/rnbmw/login/vo/PublicUserVo.java b/HnRealNameBmw/src/main/java/com/bonus/hnrn/rnbmw/login/vo/PublicUserVo.java new file mode 100644 index 0000000..f112af4 --- /dev/null +++ b/HnRealNameBmw/src/main/java/com/bonus/hnrn/rnbmw/login/vo/PublicUserVo.java @@ -0,0 +1,47 @@ +package com.bonus.hnrn.rnbmw.login.vo; + +import lombok.Data; + +@Data +public class PublicUserVo { + + private String id; + /** + * 用户名称 + */ + private String userName; + /** + * 用户名称 + */ + private String loginName; + /** + * 密码 + */ + private String password; + /** + * 手机号 + */ + private String userPhone; + + /** + * 身份证号码 + */ + private String idCard; + /** + * json数据 + */ + private String jsonData; + /** + * 角色id + */ + private String roleId; + /** + * 组织机构id + */ + private String orgId; + + private String status; + + private String isActive; + +} diff --git a/HnRealNameBmw/src/main/java/com/bonus/hnrn/rnbmw/manager/config/BnsSecurityConfig.java b/HnRealNameBmw/src/main/java/com/bonus/hnrn/rnbmw/manager/config/BnsSecurityConfig.java index aaefa78..2fe47d1 100644 --- a/HnRealNameBmw/src/main/java/com/bonus/hnrn/rnbmw/manager/config/BnsSecurityConfig.java +++ b/HnRealNameBmw/src/main/java/com/bonus/hnrn/rnbmw/manager/config/BnsSecurityConfig.java @@ -1,6 +1,5 @@ package com.bonus.hnrn.rnbmw.manager.config; -import com.bonus.hnrn.rnbmw.manager.filter.SecurityFilter; import com.bonus.hnrn.rnbmw.manager.filter.TokenFilter; import com.bonus.hnrn.rnbmw.manager.filter.VerifyFilter; import org.springframework.beans.factory.annotation.Autowired; @@ -19,7 +18,6 @@ import org.springframework.security.web.authentication.AuthenticationFailureHand import org.springframework.security.web.authentication.AuthenticationSuccessHandler; import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter; import org.springframework.security.web.authentication.logout.LogoutSuccessHandler; -import org.springframework.security.web.authentication.www.BasicAuthenticationFilter; /** * spring security配置 @@ -58,7 +56,7 @@ public class BnsSecurityConfig extends WebSecurityConfigurerAdapter { @Override protected void configure(HttpSecurity http) throws Exception { // 添加安全过滤器,在认证前执行 -- 防御 sql 注入攻击 和 xss 攻击 - http.addFilterBefore(new SecurityFilter(), BasicAuthenticationFilter.class); + // http.addFilterBefore(new SecurityFilter(), BasicAuthenticationFilter.class); // 添加安全过滤器,在认证前执行 -- CSP // http.addFilterBefore(new CspFilter(), BasicAuthenticationFilter.class); http.csrf().disable(); @@ -69,7 +67,7 @@ public class BnsSecurityConfig extends WebSecurityConfigurerAdapter { http.authorizeRequests() .antMatchers("/", "/gzRealName/**","/attendance/**","/*.html", "/favicon.ico", "/css/**", "/js/**", "/fonts/**", "/layui/**", "/layui-v2.9.2/**","/layui2.3.6/**", "/layer-v3.1.0/**","/img/**", "/v2/api-docs/**", "/swagger-resources/**", "/webjars/**", "/pages/**", "/druid/**","/interface/**","/publicLogin/**", - "/statics/**","/download/**","/allSystem/login","/register/**","/companyManager/resetUserPwd","/getCode/**","/OwnContract/updateDownloadState") + "/statics/**","/download/**","/allSystem/login","/allUser/**","/register/**","/companyManager/resetUserPwd","/getCode/**","/OwnContract/updateDownloadState") .permitAll(). anyRequest().authenticated(); http.formLogin().loginProcessingUrl("/login") diff --git a/HnRealNameBmw/src/main/java/com/bonus/hnrn/rnbmw/manager/config/SecurityHeadersFilter.java b/HnRealNameBmw/src/main/java/com/bonus/hnrn/rnbmw/manager/config/SecurityHeadersFilter.java index 03a370a..5f9bbc1 100644 --- a/HnRealNameBmw/src/main/java/com/bonus/hnrn/rnbmw/manager/config/SecurityHeadersFilter.java +++ b/HnRealNameBmw/src/main/java/com/bonus/hnrn/rnbmw/manager/config/SecurityHeadersFilter.java @@ -12,8 +12,8 @@ import java.io.IOException; * 额外的安全头过滤器 * 用于设置更多的安全相关头信息 */ -@Component -@Order(2) +//@Component +//@Order(2) public class SecurityHeadersFilter implements Filter { @Override diff --git a/HnRealNameBmw/src/main/java/com/bonus/hnrn/rnbmw/manager/controller/OrgController.java b/HnRealNameBmw/src/main/java/com/bonus/hnrn/rnbmw/manager/controller/OrgController.java index 7c25314..dee8383 100644 --- a/HnRealNameBmw/src/main/java/com/bonus/hnrn/rnbmw/manager/controller/OrgController.java +++ b/HnRealNameBmw/src/main/java/com/bonus/hnrn/rnbmw/manager/controller/OrgController.java @@ -31,6 +31,8 @@ public class OrgController { @Autowired private OrgService service; + + @Resource private UserDao userDao; diff --git a/HnRealNameBmw/src/main/resources/mappers/login/AllUserMapper.xml b/HnRealNameBmw/src/main/resources/mappers/login/AllUserMapper.xml index 9b75f5c..b9aa791 100644 --- a/HnRealNameBmw/src/main/resources/mappers/login/AllUserMapper.xml +++ b/HnRealNameBmw/src/main/resources/mappers/login/AllUserMapper.xml @@ -3,7 +3,119 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> + + insert into all_system_user(user_name , login_name , + password , data_type , create_time , + update_time , is_admin , id_card , + json_data , user_phone + ) values ( + #{userName},#{loginName},#{password},#{dataType},now(),now(),#{isAdmin},#{idCard},#{jsonData},#{userPhone} + ) + + + insert into sys_user( + username,loginname,phone, id_number, + type, role_id, org_id, pro_id, + sub_id, team_id, post_id, password, sex, + status, create_type, + examine_status, createTime, + updateTime, is_free, is_active) + values (#{userName},#{loginName},#{loginName},#{idCard},#{type},#{roleId},#{orgId},#{proId},#{subId},#{teamId},#{orgId},#{password}, + 1,1,2,1,now(),now(),#{isFree},1) + + + insert into sys_role_user(roleId, userId) values + (#{roleId}, #{id}) + + + update all_system_user set user_name=#{userName},data_type=#{dataType}, + update_time=now(),is_admin=#{isAdmin},id_card=#{idCard},json_data=#{jsonData} + user_phone=#{userPhone} + + + update all_system_user set password=#{newPassword} + where id=#{id} + + + update sys_user set username=#{userName},loginname=#{loginName},phone=#{loginName},id_number=#{idCard},type=#{type}, + role_id=#{roleId}, org_id=#{orgId}, pro_id=#{proId},sub_id=#{subId},team_id=#{teamId},post_id=#{roleId}, + updateTime=now(),is_free=#{isFree} + where id=#{id} + + + delete from all_system_user where id=#{id} + + + delete from sys_role_user where userId=#{id} + + + + + + \ No newline at end of file diff --git a/hn-czl-service/src/main/java/com/bonus/hn/bearing/capacity/backstage/login/controller/PublicLoginController.java b/hn-czl-service/src/main/java/com/bonus/hn/bearing/capacity/backstage/login/controller/PublicLoginController.java index 4f0d191..9d948e0 100644 --- a/hn-czl-service/src/main/java/com/bonus/hn/bearing/capacity/backstage/login/controller/PublicLoginController.java +++ b/hn-czl-service/src/main/java/com/bonus/hn/bearing/capacity/backstage/login/controller/PublicLoginController.java @@ -2,6 +2,15 @@ package com.bonus.hn.bearing.capacity.backstage.login.controller; import com.bonus.hn.bearing.capacity.backstage.login.service.PublicLoginService; import com.bonus.hn.bearing.capacity.backstage.login.vo.LoginForm; +import com.bonus.hn.bearing.capacity.backstage.login.vo.PublicUserVo; +import com.bonus.hn.bearing.capacity.backstage.manager.annotation.LogAnnotation; +import com.bonus.hn.bearing.capacity.backstage.manager.entity.MapBean; +import com.bonus.hn.bearing.capacity.backstage.manager.entity.ZNode; +import com.bonus.hn.bearing.capacity.backstage.manager.service.UserService; +import com.bonus.hn.bearing.capacity.backstage.manager.utils.AjaxRes; +import com.bonus.hn.bearing.capacity.backstage.manager.utils.GlobalConst; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -9,17 +18,23 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.servlet.http.HttpServletResponse; +import java.util.ArrayList; +import java.util.List; /** * 默认公共登录方法 */ @RestController +@Slf4j @RequestMapping(value = "/publicLogin") public class PublicLoginController { @Autowired private PublicLoginService loginService; + @Autowired + private UserService userService; + /** * 系统登录 * @param token @@ -31,6 +46,44 @@ public class PublicLoginController { } + @LogAnnotation + @PostMapping("addUser") + @ApiOperation(value = "新增用户") + public AjaxRes addUser(@RequestBody PublicUserVo vo) { + return loginService.addUser(vo); + } + + + + @PostMapping("getDeptTree") + @ApiOperation(value = "获取部门树") + public AjaxRes getDeptTree() { + try{ + List result = userService.getRole(); + return AjaxRes.success(result); + }catch (Exception e){ + log.error(e.toString(),e); + } + return AjaxRes.success(new ArrayList()); + } + + /** + * 角色下拉选 + * @param + * @return + */ + @PostMapping("getRoleList") + @ApiOperation(value = "获取角色下拉选") + public AjaxRes getRoleList() { + AjaxRes ar = new AjaxRes(); + try { + List list = userService.getDepartmentTree(); + ar.setSucceed(list); + } catch (Exception e) { + ar.setFailMsg(GlobalConst.DATA_FAIL); + } + return ar; + } diff --git a/hn-czl-service/src/main/java/com/bonus/hn/bearing/capacity/backstage/login/dao/PublicLoginDao.java b/hn-czl-service/src/main/java/com/bonus/hn/bearing/capacity/backstage/login/dao/PublicLoginDao.java new file mode 100644 index 0000000..0ba0372 --- /dev/null +++ b/hn-czl-service/src/main/java/com/bonus/hn/bearing/capacity/backstage/login/dao/PublicLoginDao.java @@ -0,0 +1,38 @@ +package com.bonus.hn.bearing.capacity.backstage.login.dao; + +import com.bonus.hn.bearing.capacity.backstage.login.vo.PublicUserVo; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface PublicLoginDao { + /** + * 依据用户名查询 + * @param vo + * @return + */ + PublicUserVo getUserByName(PublicUserVo vo); + + /** + * 新增用户 + * @param vo + */ + void addUser(PublicUserVo vo); + + /** + * 新增用户角色 + * @param vo + */ + void addUserRole(PublicUserVo vo); + + /** + * 更新用户信息 + * @param data + */ + void updateUser(PublicUserVo data); + + /** + * 删除用户角色 + * @param vo + */ + void delUserRole(PublicUserVo vo); +} diff --git a/hn-czl-service/src/main/java/com/bonus/hn/bearing/capacity/backstage/login/service/PublicLoginService.java b/hn-czl-service/src/main/java/com/bonus/hn/bearing/capacity/backstage/login/service/PublicLoginService.java index a705053..0bf6af0 100644 --- a/hn-czl-service/src/main/java/com/bonus/hn/bearing/capacity/backstage/login/service/PublicLoginService.java +++ b/hn-czl-service/src/main/java/com/bonus/hn/bearing/capacity/backstage/login/service/PublicLoginService.java @@ -1,7 +1,9 @@ package com.bonus.hn.bearing.capacity.backstage.login.service; +import com.bonus.hn.bearing.capacity.backstage.login.dao.PublicLoginDao; import com.bonus.hn.bearing.capacity.backstage.login.vo.LoginForm; +import com.bonus.hn.bearing.capacity.backstage.login.vo.PublicUserVo; import com.bonus.hn.bearing.capacity.backstage.manager.dao.PermissionDao; import com.bonus.hn.bearing.capacity.backstage.manager.dao.UtilDao; import com.bonus.hn.bearing.capacity.backstage.manager.entity.LoginUser; @@ -10,6 +12,7 @@ import com.bonus.hn.bearing.capacity.backstage.manager.model.Permission; import com.bonus.hn.bearing.capacity.backstage.manager.model.SysUser; import com.bonus.hn.bearing.capacity.backstage.manager.service.TokenService; import com.bonus.hn.bearing.capacity.backstage.manager.service.UserService; +import com.bonus.hn.bearing.capacity.backstage.manager.utils.AjaxRes; import com.bonus.hn.bearing.capacity.backstage.manager.utils.ResponseUtil; import com.bonus.hn.bearing.capacity.backstage.utils.Aes; import lombok.extern.slf4j.Slf4j; @@ -21,6 +24,7 @@ import org.springframework.security.authentication.DisabledException; import org.springframework.security.authentication.LockedException; import org.springframework.security.core.GrantedAuthority; import org.springframework.security.core.authority.SimpleGrantedAuthority; +import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -49,6 +53,12 @@ public class PublicLoginService { @Autowired private TokenService tokenService; + @Autowired + private PublicLoginDao dao; + + @Autowired + private BCryptPasswordEncoder passwordEncoder; + /** * 系统登录 * @param us @@ -90,7 +100,6 @@ public class PublicLoginService { b.setMonth(formattedYearMonth); b.setUserId(sysUser.getId().toString()); utilDao.insertLoginInfo(b); - //创建token Token token = tokenService.saveToken(loginUser); token.setCode("200"); @@ -100,4 +109,31 @@ public class PublicLoginService { log.error(e.toString(),e); } } + + /** + * 新增用户数据 + * @param vo + * @return + */ + public AjaxRes addUser(PublicUserVo vo) { + try{ + vo.setPassword(passwordEncoder.encode("Hnsbd@admin123")); + PublicUserVo data=dao.getUserByName(vo); + if(data==null){ + //新增用户及角色关联信息 + dao.addUser(vo); + dao.addUserRole(vo); + }else{ + vo.setId(data.getId()); + //修改用户角色信息 + dao.updateUser(vo); + dao.delUserRole(vo); + dao.addUserRole(vo); + } + return AjaxRes.success("添加成功"); + }catch (Exception e){ + log.error(e.toString(),e); + } + return AjaxRes.error("添加失败"); + } } \ No newline at end of file diff --git a/hn-czl-service/src/main/java/com/bonus/hn/bearing/capacity/backstage/login/vo/PublicUserVo.java b/hn-czl-service/src/main/java/com/bonus/hn/bearing/capacity/backstage/login/vo/PublicUserVo.java new file mode 100644 index 0000000..e7c5d4e --- /dev/null +++ b/hn-czl-service/src/main/java/com/bonus/hn/bearing/capacity/backstage/login/vo/PublicUserVo.java @@ -0,0 +1,47 @@ +package com.bonus.hn.bearing.capacity.backstage.login.vo; + +import lombok.Data; + +@Data +public class PublicUserVo { + + private String id; + /** + * 用户名称 + */ + private String userName; + /** + * 用户名称 + */ + private String loginName; + /** + * 密码 + */ + private String password; + /** + * 手机号 + */ + private String userPhone; + + /** + * 身份证号码 + */ + private String idCard; + /** + * json数据 + */ + private String jsonData; + /** + * 角色id + */ + private String roleId; + /** + * 组织机构id + */ + private String orgId; + + private String status; + + private String isActive; + +} diff --git a/hn-czl-service/src/main/java/com/bonus/hn/bearing/capacity/backstage/manager/dao/UserDao.java b/hn-czl-service/src/main/java/com/bonus/hn/bearing/capacity/backstage/manager/dao/UserDao.java index 2f97ce7..5e891c9 100644 --- a/hn-czl-service/src/main/java/com/bonus/hn/bearing/capacity/backstage/manager/dao/UserDao.java +++ b/hn-czl-service/src/main/java/com/bonus/hn/bearing/capacity/backstage/manager/dao/UserDao.java @@ -27,8 +27,7 @@ public interface UserDao { @Select("select t.ID,t.username,t.login_name as loginName,t.phone, t.nickname,t.type,t.role_id as roleId, t.org_id as orgId, t.password, t.status,t.createTime from sys_user t where t.id = #{id}") SysUser getById(Long id); - @Select("select t.* ,t.role_id as roleId,t.org_id as orgId,t.org_id as orgId,so.`level`,so.org_name as department,so.parent_id as pId FROM sys_user t LEFT JOIN sys_organization so on so.id = t.org_id where t.phone = #{username} and t.is_active = '1'") - SysUser getUser(String username); + SysUser getUser(@Param("username") String username); @Update("update sys_user t set t.password = #{password} where t.id = #{id}") int changePassword(@Param("id") Long id, @Param("password") String password); diff --git a/hn-czl-service/src/main/java/com/bonus/hn/bearing/capacity/backstage/manager/utils/AjaxRes.java b/hn-czl-service/src/main/java/com/bonus/hn/bearing/capacity/backstage/manager/utils/AjaxRes.java index 5656a63..ccb72a3 100644 --- a/hn-czl-service/src/main/java/com/bonus/hn/bearing/capacity/backstage/manager/utils/AjaxRes.java +++ b/hn-czl-service/src/main/java/com/bonus/hn/bearing/capacity/backstage/manager/utils/AjaxRes.java @@ -20,7 +20,9 @@ public class AjaxRes implements Serializable { * 返回对象 */ private Object obj; - + + + public int getRes() { return res; } @@ -84,7 +86,35 @@ public class AjaxRes implements Serializable { this.obj = obj; this.setRes(GlobalConst.SUCCEED); } + public static AjaxRes success(String resMsg) { + AjaxRes ajaxRes = new AjaxRes(); + ajaxRes.setResMsg(resMsg); + ajaxRes.setRes(GlobalConst.SUCCEED); + return ajaxRes; + } + public static AjaxRes error(String resMsg) { + AjaxRes ajaxRes = new AjaxRes(); + ajaxRes.setResMsg(resMsg); + ajaxRes.setRes(GlobalConst.FAIL); + return ajaxRes; + } + + + + public static AjaxRes success(String resMsg,Object data) { + AjaxRes ajaxRes = success(resMsg); + ajaxRes.setObj(data); + return ajaxRes; + } + + public static AjaxRes success(Object data) { + AjaxRes ajaxRes = new AjaxRes(); + ajaxRes.setResMsg("success"); + ajaxRes.setRes(GlobalConst.SUCCEED); + ajaxRes.setObj(data); + return ajaxRes; + } /** * 设置成功值 * diff --git a/hn-czl-service/src/main/resources/mappers/login/PublicLoginMapper.xml b/hn-czl-service/src/main/resources/mappers/login/PublicLoginMapper.xml new file mode 100644 index 0000000..e60d186 --- /dev/null +++ b/hn-czl-service/src/main/resources/mappers/login/PublicLoginMapper.xml @@ -0,0 +1,28 @@ + + + + + insert into sys_user( + username,login_name, phone, nickname,role_id,org_id, + password, sex, status, createTime, updateTime,is_active + )values (#{userName},#{loginName},#{loginName},#{userPhone},#{roleId},#{orgId},#{password},1,1,now(),now(),1) + + + insert into sys_role_user(roleId, userId) values(#{roleId},#{id}) + + + update sys_user set username=#{userName},login_name=#{loginName}, nickname=#{userPhone}, + role_id=#{roleId},org_id=#{orgId},status=1,password=#{password} + where id=#{id} + + + delete from sys_role_user where userId=#{id} + + + \ No newline at end of file diff --git a/hn-czl-service/src/main/resources/mappers/user/newUserMapper.xml b/hn-czl-service/src/main/resources/mappers/user/newUserMapper.xml index 162b292..e1c109e 100644 --- a/hn-czl-service/src/main/resources/mappers/user/newUserMapper.xml +++ b/hn-czl-service/src/main/resources/mappers/user/newUserMapper.xml @@ -148,6 +148,12 @@ from bm_tower where pro_id = #{proId} and lon = '' + insert into sys_role_user(roleId, userId) values diff --git a/hn-gateway/bonus-gateway/src/main/java/com/bonus/gateway/filter/AuthFilter.java b/hn-gateway/bonus-gateway/src/main/java/com/bonus/gateway/filter/AuthFilter.java index ed75abb..b843030 100644 --- a/hn-gateway/bonus-gateway/src/main/java/com/bonus/gateway/filter/AuthFilter.java +++ b/hn-gateway/bonus-gateway/src/main/java/com/bonus/gateway/filter/AuthFilter.java @@ -43,18 +43,22 @@ public class AuthFilter implements GlobalFilter, Ordered { private RedisService redisService; + + @Override public Mono filter(ServerWebExchange exchange, GatewayFilterChain chain) { ServerHttpRequest request = exchange.getRequest(); ServerHttpRequest.Builder mutate = request.mutate(); String url = request.getURI().getPath(); - if(!url.endsWith("/publicLogin/defaultLogin")){ + //public 都是单独走的网关鉴权 + if(!PathMatchUtil.isPublicLoginPath(url)){ // 跳过不需要验证的路径 if (StringUtils.matches(url, ignoreWhite.getWhites())) { return chain.filter(exchange); } } + String token = getToken(request); if (StringUtils.isEmpty(token) || "null".equals(token)) { return unauthorizedResponse(exchange, "令牌不能为空"); diff --git a/hn-gateway/bonus-gateway/src/main/java/com/bonus/gateway/filter/PathMatchUtil.java b/hn-gateway/bonus-gateway/src/main/java/com/bonus/gateway/filter/PathMatchUtil.java new file mode 100644 index 0000000..6289564 --- /dev/null +++ b/hn-gateway/bonus-gateway/src/main/java/com/bonus/gateway/filter/PathMatchUtil.java @@ -0,0 +1,22 @@ +package com.bonus.gateway.filter; + +import org.springframework.util.AntPathMatcher; + +/** + * 路径匹配工具类 + */ +public class PathMatchUtil { + // 初始化 AntPathMatcher(单例,线程安全) + private static final AntPathMatcher PATH_MATCHER = new AntPathMatcher(); + + /** + * 判断请求路径是否匹配 /publicLogin/** 规则 + * @param requestPath 请求路径(如 /publicLogin/login、/publicLogin/api/user) + * @return true=匹配,false=不匹配 + */ + public static boolean isPublicLoginPath(String requestPath) { + // 匹配规则:/publicLogin/** + String pattern = "/publicLogin/**"; + return PATH_MATCHER.match(pattern, requestPath); + } +} \ No newline at end of file diff --git a/hn-ldlz/ldlz-admin/pom.xml b/hn-ldlz/ldlz-admin/pom.xml index 1e94386..f00363f 100644 --- a/hn-ldlz/ldlz-admin/pom.xml +++ b/hn-ldlz/ldlz-admin/pom.xml @@ -34,17 +34,31 @@ true - + + io.springfox - springfox-boot-starter + springfox-swagger2 + 2.8.0 + + + + org.springframework.plugin + spring-plugin-core + + - - + - io.swagger - swagger-models - 1.6.2 + org.springframework.plugin + spring-plugin-core + 1.2.0.RELEASE + + + + io.springfox + springfox-swagger-ui + 2.8.0 diff --git a/hn-ldlz/ldlz-admin/src/main/java/com/bns/ldlz/controller/PublicLoginController.java b/hn-ldlz/ldlz-admin/src/main/java/com/bns/ldlz/controller/PublicLoginController.java new file mode 100644 index 0000000..b95d42f --- /dev/null +++ b/hn-ldlz/ldlz-admin/src/main/java/com/bns/ldlz/controller/PublicLoginController.java @@ -0,0 +1,80 @@ +package com.bns.ldlz.controller; + + +import com.bns.common.constant.Constants; +import com.bns.common.core.controller.BaseController; +import com.bns.common.core.domain.AjaxResult; +import com.bns.common.core.domain.entity.SysDept; +import com.bns.common.core.domain.entity.SysRole; +import com.bns.ldlz.domain.LoginForm; +import com.bns.ldlz.domain.PublicUserVo; +import com.bns.ldlz.service.impl.PublicLoginService; +import com.bns.system.service.ISysDeptService; +import com.bns.system.service.ISysRoleService; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; + +/** + * 默认公共登录方法 + */ +@RestController +@RequestMapping(value = "/publicLogin") +public class PublicLoginController extends BaseController { + + @Autowired + private PublicLoginService loginService; + + @Autowired + private ISysDeptService deptService; + + @Autowired + private ISysRoleService roleService; + /** + * loginForm + * @param + * @param response + */ + @PostMapping("defaultLogin") + public AjaxResult login(@RequestBody LoginForm loginForm, HttpServletResponse response) { + AjaxResult ajax = AjaxResult.success(); + // 生成令牌 + String token = loginService.login(loginForm,response); + ajax.put(Constants.TOKEN, token); + return ajax; + } + + + @PostMapping("addUser") + @ApiOperation(value = "新增用户") + public AjaxResult addUser(@RequestBody PublicUserVo vo) { + return loginService.addUser(vo); + } + + + @PostMapping("getDeptTree") + @ApiOperation(value = "获取部门树") + public AjaxResult getDeptTree(@RequestBody SysDept dept) { + return success(deptService.selectPublicDeptTreeList(dept)); + } + + /** + * 角色下拉选 + * @param vo + * @return + */ + @PostMapping("getRoleList") + @ApiOperation(value = "获取角色下拉选") + public AjaxResult getRoleList(@RequestBody PublicUserVo vo) { + List roles = roleService.selectPublicRoleAll(); + return success(roles); + } + + +} diff --git a/hn-ldlz/ldlz-admin/src/main/java/com/bns/ldlz/domain/LoginForm.java b/hn-ldlz/ldlz-admin/src/main/java/com/bns/ldlz/domain/LoginForm.java new file mode 100644 index 0000000..75c1925 --- /dev/null +++ b/hn-ldlz/ldlz-admin/src/main/java/com/bns/ldlz/domain/LoginForm.java @@ -0,0 +1,11 @@ +package com.bns.ldlz.domain; + +import lombok.Data; + +@Data +public class LoginForm { + + private String username; + + private String type; +} diff --git a/hn-ldlz/ldlz-admin/src/main/java/com/bns/ldlz/domain/PublicUserVo.java b/hn-ldlz/ldlz-admin/src/main/java/com/bns/ldlz/domain/PublicUserVo.java new file mode 100644 index 0000000..0172a38 --- /dev/null +++ b/hn-ldlz/ldlz-admin/src/main/java/com/bns/ldlz/domain/PublicUserVo.java @@ -0,0 +1,51 @@ +package com.bns.ldlz.domain; + +import lombok.Data; + +@Data +public class PublicUserVo { + + private String id; + /** + * 用户名称 + */ + private String userName; + /** + * 用户名称 + */ + private String loginName; + /** + * 密码 + */ + private String password; + /** + * 手机号 + */ + private String userPhone; + + /** + * 身份证号码 + */ + private String idCard; + /** + * json数据 + */ + private String jsonData; + /** + * 角色id + */ + private String roleId; + /** + * 组织机构id + */ + private String orgId; + + private String status; + + private String isActive; + /** + * 是否是管理员 + */ + private String isLeader; + +} diff --git a/hn-ldlz/ldlz-admin/src/main/java/com/bns/ldlz/domain/bo/PerformLogBo.java b/hn-ldlz/ldlz-admin/src/main/java/com/bns/ldlz/domain/bo/PerformLogBo.java index 76240ed..8f90621 100644 --- a/hn-ldlz/ldlz-admin/src/main/java/com/bns/ldlz/domain/bo/PerformLogBo.java +++ b/hn-ldlz/ldlz-admin/src/main/java/com/bns/ldlz/domain/bo/PerformLogBo.java @@ -2,7 +2,6 @@ package com.bns.ldlz.domain.bo; import com.bns.common.annotation.Excel; import com.bns.common.core.domain.BaseEntity; -import io.swagger.models.auth.In; import lombok.Data; import java.math.BigDecimal; diff --git a/hn-ldlz/ldlz-admin/src/main/java/com/bns/ldlz/mapper/PublicLoginMapper.java b/hn-ldlz/ldlz-admin/src/main/java/com/bns/ldlz/mapper/PublicLoginMapper.java new file mode 100644 index 0000000..a8cb847 --- /dev/null +++ b/hn-ldlz/ldlz-admin/src/main/java/com/bns/ldlz/mapper/PublicLoginMapper.java @@ -0,0 +1,44 @@ +package com.bns.ldlz.mapper; + +import com.bns.ldlz.domain.PublicUserVo; +import org.apache.ibatis.annotations.Mapper; + +@Mapper +public interface PublicLoginMapper { + /** + * 依据登录信息查询用户 + * @param vo + * @return + */ + public String getUserIdByLoginName(PublicUserVo vo) ; + + /** + * 新增用户信息 + * @param vo + */ + void addUserData(PublicUserVo vo); + + /** + * 新增用户岗位信息 + * @param vo + */ + void inserUserPost(PublicUserVo vo); + + /** + * 新增用户角色信息 + * @param vo + */ + void insertUserRole(PublicUserVo vo); + + /** + * 更新用户数据 + * @param vo + */ + void updateUserData(PublicUserVo vo); + + /** + * 删除用户决赛 + * @param vo + */ + void delUserRole(PublicUserVo vo); +} diff --git a/hn-ldlz/ldlz-admin/src/main/java/com/bns/ldlz/service/impl/PublicLoginService.java b/hn-ldlz/ldlz-admin/src/main/java/com/bns/ldlz/service/impl/PublicLoginService.java new file mode 100644 index 0000000..a389399 --- /dev/null +++ b/hn-ldlz/ldlz-admin/src/main/java/com/bns/ldlz/service/impl/PublicLoginService.java @@ -0,0 +1,127 @@ +package com.bns.ldlz.service.impl; + + + +import com.bns.common.core.domain.AjaxResult; +import com.bns.common.core.domain.entity.SysUser; +import com.bns.common.core.domain.model.LoginUser; +import com.bns.common.enums.UserStatus; +import com.bns.common.exception.ServiceException; +import com.bns.common.utils.DateUtils; +import com.bns.common.utils.MessageUtils; +import com.bns.common.utils.SecurityUtils; +import com.bns.common.utils.StringUtils; +import com.bns.common.utils.ip.IpUtils; +import com.bns.framework.web.service.SysPermissionService; +import com.bns.framework.web.service.TokenService; +import com.bns.ldlz.domain.LoginForm; +import com.bns.ldlz.domain.PublicUserVo; +import com.bns.ldlz.mapper.PublicLoginMapper; +import com.bns.system.service.ISysUserService; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.BeanUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.security.authentication.AuthenticationCredentialsNotFoundException; +import org.springframework.security.authentication.DisabledException; +import org.springframework.security.authentication.LockedException; +import org.springframework.security.core.userdetails.UserDetails; +import org.springframework.stereotype.Service; + +import javax.servlet.http.HttpServletResponse; +import java.net.InetAddress; +import java.net.UnknownHostException; +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; +import java.util.List; + +/** + * 系统登录 + */ +@Service +@Slf4j +public class PublicLoginService { + + @Autowired + private PublicLoginMapper mapper; + + + @Autowired + private ISysUserService userService; + + @Autowired + private SysPermissionService permissionService; + + @Autowired + private TokenService tokenService; + + /** + * 系统登录 + * @param us + * @param response + */ + public String login(LoginForm us, HttpServletResponse response) { + String username = us.getUsername(); + SysUser user = userService.selectUserByUserName(us.getUsername()); + if (StringUtils.isNull(user)) + { + log.info("登录用户:{} 不存在.", username); + throw new ServiceException(MessageUtils.message("user.not.exists")); + } + else if (UserStatus.DELETED.getCode().equals(user.getDelFlag())) + { + log.info("登录用户:{} 已被删除.", username); + throw new ServiceException(MessageUtils.message("user.password.delete")); + } + else if (UserStatus.DISABLE.getCode().equals(user.getStatus())) + { + log.info("登录用户:{} 已被停用.", username); + throw new ServiceException(MessageUtils.message("user.blocked")); + } + LoginUser userDetails=new LoginUser(user.getUserId(), user.getDeptId(), user, permissionService.getMenuPermission(user)); + recordLoginInfo(userDetails.getUserId()); + // 生成token + return tokenService.createToken(userDetails); + + } + /** + * 记录登录信息 + * + * @param userId 用户ID + */ + public void recordLoginInfo(Long userId) { + SysUser sysUser = new SysUser(); + sysUser.setUserId(userId); + sysUser.setLoginIp(IpUtils.getIpAddr()); + sysUser.setLoginDate(DateUtils.getNowDate()); + userService.updateUserProfile(sysUser); + } + + /** + * 新增用户信息 + * @param vo + * @return + */ + public AjaxResult addUser(PublicUserVo vo) { + try{ + //默认密码 + vo.setPassword(SecurityUtils.encryptPassword("Hnsbd@admin123")); + String id=mapper.getUserIdByLoginName(vo); + if(StringUtils.isNull(id)){ + mapper.addUserData(vo); + // mapper.inserUserPost(vo); + mapper.insertUserRole(vo); + }else { + vo.setId(id); + mapper.updateUserData(vo); + mapper.delUserRole(vo); + // mapper.inserUserPost(vo); + mapper.insertUserRole(vo); + + } + }catch (Exception e){ + log.error(e.toString(),e); + } + return AjaxResult.error("添加失败"); + } +} \ No newline at end of file diff --git a/hn-ldlz/ldlz-admin/src/main/java/com/bns/web/core/config/SwaggerConfig.java b/hn-ldlz/ldlz-admin/src/main/java/com/bns/web/core/config/SwaggerConfig.java index 2ebc21d..4db6973 100644 --- a/hn-ldlz/ldlz-admin/src/main/java/com/bns/web/core/config/SwaggerConfig.java +++ b/hn-ldlz/ldlz-admin/src/main/java/com/bns/web/core/config/SwaggerConfig.java @@ -8,7 +8,6 @@ import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import com.bns.common.config.LdlzConfig; import io.swagger.annotations.ApiOperation; -import io.swagger.models.auth.In; import springfox.documentation.builders.ApiInfoBuilder; import springfox.documentation.builders.PathSelectors; import springfox.documentation.builders.RequestHandlerSelectors; @@ -21,15 +20,16 @@ import springfox.documentation.service.SecurityScheme; import springfox.documentation.spi.DocumentationType; import springfox.documentation.spi.service.contexts.SecurityContext; import springfox.documentation.spring.web.plugins.Docket; +import springfox.documentation.swagger2.annotations.EnableSwagger2; // 2.8.0 必须加这个注解 /** - * Swagger2的接口配置 - * + * Swagger2的接口配置(适配 Springfox 2.8.0 + Spring Boot 2.1.1.RELEASE) + * * @author ldlv */ @Configuration -public class SwaggerConfig -{ +@EnableSwagger2 // 关键:Springfox 2.x 必须启用这个注解,否则 Swagger 不生效 +public class SwaggerConfig { /** 系统基础配置 */ @Autowired private LdlzConfig ldlzConfig; @@ -43,60 +43,50 @@ public class SwaggerConfig private String pathMapping; /** - * 创建API + * 创建API(核心修改:替换为 Swagger 2.0 的 DocumentationType) */ @Bean - public Docket createRestApi() - { - return new Docket(DocumentationType.OAS_30) - // 是否启用Swagger + public Docket createRestApi() { + return new Docket(DocumentationType.SWAGGER_2) // 关键:2.8.0 不支持 OAS_30,改为 SWAGGER_2 .enable(enabled) - // 用来创建该API的基本信息,展示在文档的页面中(自定义展示的信息) .apiInfo(apiInfo()) - // 设置哪些接口暴露给Swagger展示 .select() - // 扫描所有有注解的api,用这种方式更灵活 - .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)) - // 扫描指定包中的swagger注解 - // .apis(RequestHandlerSelectors.basePackage("com.bns.project.tool.swagger")) - // 扫描所有 .apis(RequestHandlerSelectors.any()) + .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class)) // 保留你的扫描逻辑 .paths(PathSelectors.any()) .build() - /* 设置安全模式,swagger可以设置访问token */ - .securitySchemes(securitySchemes()) + .securitySchemes(securitySchemes()) // 保留token配置 .securityContexts(securityContexts()) .pathMapping(pathMapping); } /** - * 安全模式,这里指定token通过Authorization头请求头传递 + * 安全模式(修改:移除 3.x 的 In.HEADER,直接用字符串 "header") */ - private List securitySchemes() - { - List apiKeyList = new ArrayList(); - apiKeyList.add(new ApiKey("Authorization", "Authorization", In.HEADER.toValue())); + private List securitySchemes() { + List apiKeyList = new ArrayList<>(); + // 关键:Springfox 2.x 的 ApiKey 第三个参数直接传 "header"(不是 In.HEADER.toValue()) + apiKeyList.add(new ApiKey("Authorization", "Authorization", "header")); return apiKeyList; } /** - * 安全上下文 + * 安全上下文(无修改,2.8.0 兼容) */ - private List securityContexts() - { + private List securityContexts() { List securityContexts = new ArrayList<>(); securityContexts.add( SecurityContext.builder() .securityReferences(defaultAuth()) - .operationSelector(o -> o.requestMappingPattern().matches("/.*")) + // 替代 operationSelector:匹配所有路径的接口(效果与原逻辑一致) + .forPaths(PathSelectors.any()) .build()); return securityContexts; } /** - * 默认的安全上引用 + * 默认的安全引用(无修改,2.8.0 兼容) */ - private List defaultAuth() - { + private List defaultAuth() { AuthorizationScope authorizationScope = new AuthorizationScope("global", "accessEverything"); AuthorizationScope[] authorizationScopes = new AuthorizationScope[1]; authorizationScopes[0] = authorizationScope; @@ -106,20 +96,14 @@ public class SwaggerConfig } /** - * 添加摘要信息 + * 摘要信息(无修改,2.8.0 兼容) */ - private ApiInfo apiInfo() - { - // 用ApiInfoBuilder进行定制 + private ApiInfo apiInfo() { return new ApiInfoBuilder() - // 设置标题 .title("标题:领导履职管理系统_接口文档") - // 描述 .description("描述:用于管理集团旗下公司的人员信息,具体包括XXX,XXX模块...") - // 作者信息 .contact(new Contact(ldlzConfig.getName(), null, null)) - // 版本 .version("版本号:" + ldlzConfig.getVersion()) .build(); } -} +} \ No newline at end of file diff --git a/hn-ldlz/ldlz-admin/src/main/resources/bootstrap.yml b/hn-ldlz/ldlz-admin/src/main/resources/bootstrap.yml index 3450f54..6cf2415 100644 --- a/hn-ldlz/ldlz-admin/src/main/resources/bootstrap.yml +++ b/hn-ldlz/ldlz-admin/src/main/resources/bootstrap.yml @@ -95,7 +95,7 @@ pagehelper: # Swagger配置 swagger: # 是否开启swagger - enabled: true + enabled: false # 请求前缀 pathMapping: /dev-api diff --git a/hn-ldlz/ldlz-admin/src/main/resources/mapper/ldlz/PublicLoginMapper.xml b/hn-ldlz/ldlz-admin/src/main/resources/mapper/ldlz/PublicLoginMapper.xml new file mode 100644 index 0000000..d4905d4 --- /dev/null +++ b/hn-ldlz/ldlz-admin/src/main/resources/mapper/ldlz/PublicLoginMapper.xml @@ -0,0 +1,36 @@ + + + + + insert into sys_user( + dept_id, user_name, nick_name, user_type, + phonenumber, sex, password, status, + del_flag, create_time, update_time, is_leader, leader_order_num + )values (#{orgId},#{loginName},#{userName},'00',#{userPhone},1,#{password},0,0,now(),now(),#{isLeader},1) + + + insert into sys_user_post(user_id, post_id + )values (#{id},#{orgId}) + + + insert into sys_user_role(user_id, role_id,create_time + )values (#{id},#{roleId},now()) + + + update sys_user set dept_id=#{orgId},user_name=#{loginName},nick_name=#{userName}, + phonenumber=#{userPhone},is_leader=#{isLeader},update_time=now() + where id=#{id} + + + delete from sys_user_role where user_id=#{id} + + + + + \ No newline at end of file diff --git a/hn-ldlz/ldlz-framework/src/main/java/com/bns/framework/config/SecurityConfig.java b/hn-ldlz/ldlz-framework/src/main/java/com/bns/framework/config/SecurityConfig.java index 2e1c83f..dd3d328 100644 --- a/hn-ldlz/ldlz-framework/src/main/java/com/bns/framework/config/SecurityConfig.java +++ b/hn-ldlz/ldlz-framework/src/main/java/com/bns/framework/config/SecurityConfig.java @@ -111,7 +111,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter // 过滤请求 .authorizeRequests() // 对于登录login 注册register 验证码captchaImage 允许匿名访问 - .antMatchers("/token","/login", "/register", "/captchaImage").permitAll() + .antMatchers("/token","/login","/publicLogin/**", "/register", "/captchaImage").permitAll() // 静态资源,可匿名访问 .antMatchers(HttpMethod.GET, "/", "/*.html", "/**/*.html", "/**/*.css", "/**/*.js", "/profile/**").permitAll() .antMatchers( "/webjars/**", "/druid/**").permitAll() diff --git a/hn-ldlz/ldlz-system/src/main/java/com/bns/system/mapper/SysDeptMapper.java b/hn-ldlz/ldlz-system/src/main/java/com/bns/system/mapper/SysDeptMapper.java index aeb05f5..c36f65d 100644 --- a/hn-ldlz/ldlz-system/src/main/java/com/bns/system/mapper/SysDeptMapper.java +++ b/hn-ldlz/ldlz-system/src/main/java/com/bns/system/mapper/SysDeptMapper.java @@ -20,6 +20,9 @@ public interface SysDeptMapper * @return 部门信息集合 */ public List selectDeptList(SysDept dept); + + public List selectPublicDeptList(SysDept dept); + public List selectDeptUserList(SysDept dept); public List selectDeptOkUserList(String userIds); @@ -119,4 +122,5 @@ public interface SysDeptMapper * @return 结果 */ public int deleteDeptById(Long deptId); + } diff --git a/hn-ldlz/ldlz-system/src/main/java/com/bns/system/mapper/SysRoleMapper.java b/hn-ldlz/ldlz-system/src/main/java/com/bns/system/mapper/SysRoleMapper.java index d6b5383..c0976dc 100644 --- a/hn-ldlz/ldlz-system/src/main/java/com/bns/system/mapper/SysRoleMapper.java +++ b/hn-ldlz/ldlz-system/src/main/java/com/bns/system/mapper/SysRoleMapper.java @@ -18,6 +18,10 @@ public interface SysRoleMapper */ public List selectRoleList(SysRole role); + public List selectPublicRoleList(SysRole role); + + + /** * 根据用户ID查询角色 * diff --git a/hn-ldlz/ldlz-system/src/main/java/com/bns/system/service/ISysDeptService.java b/hn-ldlz/ldlz-system/src/main/java/com/bns/system/service/ISysDeptService.java index 23d5fa6..8a633ec 100644 --- a/hn-ldlz/ldlz-system/src/main/java/com/bns/system/service/ISysDeptService.java +++ b/hn-ldlz/ldlz-system/src/main/java/com/bns/system/service/ISysDeptService.java @@ -21,6 +21,10 @@ public interface ISysDeptService * @return 部门信息集合 */ public List selectDeptList(SysDept dept); + + List selectPublicDeptList(SysDept dept); + + public List selectAllDeptList(SysDept dept); public List selectDeptUserList(SysDept dept); @@ -31,6 +35,8 @@ public interface ISysDeptService * @return 部门树信息集合 */ public List selectDeptTreeList(SysDept dept); + + public List selectPublicDeptTreeList(SysDept dept); public List selectDeptUserTreeList(SysUser user); public List selectDeptOkUserTreeList(String userIds); diff --git a/hn-ldlz/ldlz-system/src/main/java/com/bns/system/service/ISysRoleService.java b/hn-ldlz/ldlz-system/src/main/java/com/bns/system/service/ISysRoleService.java index c76e78f..51e6279 100644 --- a/hn-ldlz/ldlz-system/src/main/java/com/bns/system/service/ISysRoleService.java +++ b/hn-ldlz/ldlz-system/src/main/java/com/bns/system/service/ISysRoleService.java @@ -20,6 +20,8 @@ public interface ISysRoleService */ public List selectRoleList(SysRole role); + public List selectPublicRoleList(SysRole role); + /** * 根据用户ID查询角色列表 * @@ -43,6 +45,9 @@ public interface ISysRoleService */ public List selectRoleAll(); + + + public List selectPublicRoleAll(); /** * 根据用户ID获取角色选择框列表 * diff --git a/hn-ldlz/ldlz-system/src/main/java/com/bns/system/service/impl/SysDeptServiceImpl.java b/hn-ldlz/ldlz-system/src/main/java/com/bns/system/service/impl/SysDeptServiceImpl.java index 41e0e6a..7d9e5d0 100644 --- a/hn-ldlz/ldlz-system/src/main/java/com/bns/system/service/impl/SysDeptServiceImpl.java +++ b/hn-ldlz/ldlz-system/src/main/java/com/bns/system/service/impl/SysDeptServiceImpl.java @@ -51,6 +51,12 @@ public class SysDeptServiceImpl implements ISysDeptService return deptMapper.selectDeptList(dept); } + @Override + public List selectPublicDeptList(SysDept dept) + { + return deptMapper.selectPublicDeptList(dept); + } + @Override public List selectAllDeptList(SysDept dept){ return deptMapper.selectDeptList(dept); @@ -69,6 +75,20 @@ public class SysDeptServiceImpl implements ISysDeptService return buildDeptTreeSelect(depts); } + /** + * 查询部门树结构信息 + * + * @param dept 部门信息 + * @return 部门树信息集合 + */ + @Override + public List selectPublicDeptTreeList(SysDept dept) + { + List depts = SpringUtils.getAopProxy(this).selectPublicDeptList(dept); + return buildDeptTreeSelect(depts); + } + + /** * 构建前端所需要树结构 * diff --git a/hn-ldlz/ldlz-system/src/main/java/com/bns/system/service/impl/SysRoleServiceImpl.java b/hn-ldlz/ldlz-system/src/main/java/com/bns/system/service/impl/SysRoleServiceImpl.java index 8581da3..b12e395 100644 --- a/hn-ldlz/ldlz-system/src/main/java/com/bns/system/service/impl/SysRoleServiceImpl.java +++ b/hn-ldlz/ldlz-system/src/main/java/com/bns/system/service/impl/SysRoleServiceImpl.java @@ -58,6 +58,13 @@ public class SysRoleServiceImpl implements ISysRoleService return roleMapper.selectRoleList(role); } + @Override + public List selectPublicRoleList(SysRole role) + { + return roleMapper.selectPublicRoleList(role); + } + + /** * 根据用户ID查询角色 * @@ -115,6 +122,12 @@ public class SysRoleServiceImpl implements ISysRoleService return SpringUtils.getAopProxy(this).selectRoleList(new SysRole()); } + @Override + public List selectPublicRoleAll() + { + return SpringUtils.getAopProxy(this).selectPublicRoleList(new SysRole()); + } + /** * 根据用户ID获取角色选择框列表 * diff --git a/hn-ldlz/ldlz-system/src/main/resources/mapper/system/SysDeptMapper.xml b/hn-ldlz/ldlz-system/src/main/resources/mapper/system/SysDeptMapper.xml index 4532036..cdd16ea 100644 --- a/hn-ldlz/ldlz-system/src/main/resources/mapper/system/SysDeptMapper.xml +++ b/hn-ldlz/ldlz-system/src/main/resources/mapper/system/SysDeptMapper.xml @@ -62,6 +62,29 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" order by d.parent_id, d.order_num + + + - - + + insert into sys_dept( dept_id, parent_id, diff --git a/hn-ldlz/ldlz-system/src/main/resources/mapper/system/SysRoleMapper.xml b/hn-ldlz/ldlz-system/src/main/resources/mapper/system/SysRoleMapper.xml index daa13ec..d8ed436 100644 --- a/hn-ldlz/ldlz-system/src/main/resources/mapper/system/SysRoleMapper.xml +++ b/hn-ldlz/ldlz-system/src/main/resources/mapper/system/SysRoleMapper.xml @@ -56,6 +56,31 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" ${params.dataScope} order by r.role_sort + +