From 47a26c3365cfe2a9705aea8ae0887086f521ef7b Mon Sep 17 00:00:00 2001 From: ZhuDongming <773644075@qq.com> Date: Fri, 27 Dec 2019 16:27:51 +0800 Subject: [PATCH] 新增大屏登陆接口 --- src/main/java/com/moral/mapper/AccountMapper.java | 4 + src/main/java/com/moral/service/impl/AccountServiceImpl.java | 31 ++++++++++ src/main/resources/mapper/AccountMapper.xml | 37 ++++++++++++ src/main/java/com/moral/controller/ScreenController.java | 52 +++++++++++++++++ src/main/java/com/moral/service/AccountService.java | 2 5 files changed, 126 insertions(+), 0 deletions(-) diff --git a/src/main/java/com/moral/controller/ScreenController.java b/src/main/java/com/moral/controller/ScreenController.java index 0fd3457..474f0ef 100644 --- a/src/main/java/com/moral/controller/ScreenController.java +++ b/src/main/java/com/moral/controller/ScreenController.java @@ -247,6 +247,58 @@ return resultMap; } + @GetMapping("loginNew") + public Map<String, Object> screenLoginNew(HttpServletRequest request) { + Map<String, Object> resultMap = new HashMap<String, Object>(); + Map<String, Object> parameters = getParametersStartingWith(request, null); + if (!(parameters.containsKey("account") && parameters.containsKey("password"))) { + resultMap.put("msg", "������������������������������������"); + resultMap.put("accountId", -1); + } else { + resultMap = accountService.screenLoginNew(parameters); + // ������������������������������������������ + Object orgId = resultMap.get("orgId"); + if (resultMap.get("orgId") != null && resultMap.get("orgId") instanceof Integer) { + StringBuilder areaNamesBuilder = new StringBuilder("������"); + if (!((Integer) orgId).equals(dictionaryDataService.querySupperOrgId())) { + Organization organization = organizationService.getOrganizationById((Integer) orgId); + if (organization.getAreaNames() != null) { + Map<String, String> areaNameMap = BeanUtils.beanToMap(organization.getAreaNames()); + List<String> names = areaNameMap.entrySet().stream().filter(item -> { + return item.getValue() != null; + }).map(item -> { + return item.getValue(); + }).collect(Collectors.toList()); + AreaNames areaNames = organization.getAreaNames(); + areaNamesBuilder.append("/"); + areaNamesBuilder.append(String.join("/", names)); + } + // ������������ + if (organization.getRank() != null && organization.getRank() == 0) { + resultMap.put("type", "enterprise"); + } else { + resultMap.put("type", "government"); + } + Number mapAreaCode = null; + if (organization.getVillageCode() != null) { + mapAreaCode = organization.getVillageCode(); + } else if (organization.getTownCode() != null) { + mapAreaCode = organization.getTownCode(); + } else if (organization.getAreaCode() != null) { + mapAreaCode = organization.getAreaCode(); + } else if (organization.getCityCode() != null) { + mapAreaCode = organization.getCityCode(); + } else if (organization.getProvinceCode() != null) { + mapAreaCode = organization.getProvinceCode(); + } + resultMap.put("mapAreaCode", mapAreaCode.toString()); + } + resultMap.put("mapPath", areaNamesBuilder.toString()); + } + } + return resultMap; + } + /** * Gets the equipment states. ��������������������������������������� * diff --git a/src/main/java/com/moral/mapper/AccountMapper.java b/src/main/java/com/moral/mapper/AccountMapper.java index 6fc6fc0..c3bfbed 100644 --- a/src/main/java/com/moral/mapper/AccountMapper.java +++ b/src/main/java/com/moral/mapper/AccountMapper.java @@ -28,4 +28,8 @@ List<Menu> getChildMenuIdsByAccountName(@Param("accountName") String accountName, @Param("id") Integer id); + List<Menu> getScreenMenuListsByAccountName(@Param("accountName") String accountName); + + Integer getScreenRoleByAccountName(@Param("accountName") String accountName); + } \ No newline at end of file diff --git a/src/main/java/com/moral/service/AccountService.java b/src/main/java/com/moral/service/AccountService.java index b3cd3a5..0dd7c82 100644 --- a/src/main/java/com/moral/service/AccountService.java +++ b/src/main/java/com/moral/service/AccountService.java @@ -12,6 +12,8 @@ Map<String, Object> screenLogin(Map<String, Object> parameters); + Map<String, Object> screenLoginNew(Map<String, Object> parameters); + Account getAccountByAccountName(String account); Account getAccountById(Integer id); diff --git a/src/main/java/com/moral/service/impl/AccountServiceImpl.java b/src/main/java/com/moral/service/impl/AccountServiceImpl.java index 7d4b446..a865fa9 100644 --- a/src/main/java/com/moral/service/impl/AccountServiceImpl.java +++ b/src/main/java/com/moral/service/impl/AccountServiceImpl.java @@ -82,6 +82,37 @@ } @Override + public Map<String, Object> screenLoginNew(Map<String, Object> parameters) { + Map<String, Object> result = new HashMap<String, Object>(); + Account account = new Account(); + account.setAccountName((String) parameters.get("account")); + String rawPassword = (String) parameters.get("password"); +// account.setPassword(encoder.encode((String) parameters.get("password"))); + account = accountMapper.selectOne(account); + Integer existRole=accountMapper.getScreenRoleByAccountName(account.getAccountName()); + List<Menu> menuList = accountMapper.getScreenMenuListsByAccountName(account.getAccountName()); + boolean isValid = account == null ? false : encoder.matches(rawPassword, account.getPassword()); + if (!isValid) { + result.put("msg", "���������������������������������"); + } else { + if (IS_DELETE_FALSE.equals(account.getIsDelete())) { + if(existRole!=null) { + result.put("msg", "���������������"); + result.put("accountId", account.getId()); + result.put("orgId", account.getOrganizationId()); + result.put("data",menuList); + setOrgIdsByAccount(result); + }else{ + result.put("msg", "���������������������"); + } + } else { + result.put("msg", "���������������������������������������������"); + } + } + return result; + } + + @Override public Account getAccountByAccountName(String accountName) { Account account = new Account(); account.setAccountName(accountName); diff --git a/src/main/resources/mapper/AccountMapper.xml b/src/main/resources/mapper/AccountMapper.xml index 2c97198..f981613 100644 --- a/src/main/resources/mapper/AccountMapper.xml +++ b/src/main/resources/mapper/AccountMapper.xml @@ -88,6 +88,19 @@ a.account_name = #{accountName} and r.id is not null </select> + <select id="getScreenRoleByAccountName" resultType="int"> + SELECT channel_id + from + (select DISTINCT channel_id FROM role_menu + WHERE role_id in ( select r.id from + role r + right join account_role ar on ar.role_id = r.id + right join account a on a.id = ar.account_id + where + a.account_name = #{accountName} and r.id is not null)) s + where s.channel_id=1; + </select> + <select id="getParentMenuListsByAccountName" resultMap="MenuResultMap" parameterType="java.lang.String"> select DISTINCT @@ -143,4 +156,28 @@ where account_name = #{accountName} </select> + <select id="getScreenMenuListsByAccountName" resultMap="MenuResultMap" parameterType="java.lang.String"> + select + DISTINCT + m.id,m.menu_name,m.menu_icon,m.menu_url,m.menu_order,m.menu_parent_id + from + menu m + right join role_menu rm on rm.channel_id = m.channel_id and rm.menu_id=m.id and m.channel_id=1 + right join role on rm.role_id in + ( + select + r.id + from + role r + right join + account_role ar on ar.role_id = r.id + right join + account a on a.id = ar.account_id + where + a.account_name = #{accountName} and r.is_delete=0 and r.id is not null + ) + where m.menu_parent_id=0 and m.is_delete=0 + order by m.menu_order + </select> + </mapper> \ No newline at end of file -- Gitblit v1.8.0