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