From b3a68a33364e8032595581f6ec141bc7773cdb4c Mon Sep 17 00:00:00 2001 From: ALW <850658129@qq.com> Date: Thu, 14 Apr 2022 18:14:08 +0800 Subject: [PATCH] =?UTF-8?q?CA=E8=AE=A4=E8=AF=81=E7=99=BB=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 5 + .../src/main/java/com/manage/bean/QRcode.java | 40 ++ .../src/main/java/com/manage/bean/QrBean.java | 23 ++ .../main/java/com/manage/bean/ScanCode.java | 14 + .../java/com/manage/bean/ScanCodeRes.java | 22 ++ .../main/java/com/manage/bean/UserCode.java | 13 + .../java/com/manage/bean/UserCodeRes.java | 31 ++ .../com/manage/controller/FontController.java | 346 +++++++++++++++++- .../webapp/WEB-INF/views/loginDir/login.jsp | 15 +- .../src/main/webapp/static/js/login.js | 71 ++++ power-dao/power-dao.iml | 15 - .../java/com/manage/dao/Power_UserMapper.java | 4 + .../java/com/manage/entity/CodeLogin.java | 77 ++++ .../main/java/com/manage/vo/CodeLoginVO.java | 55 +++ .../resources/mapper/Power_UserMapper.xml | 5 + .../com/manage/service/Power_UserService.java | 4 + .../service/ipml/Power_UserServiceImpl.java | 8 + 17 files changed, 729 insertions(+), 19 deletions(-) create mode 100644 power-admin/src/main/java/com/manage/bean/QRcode.java create mode 100644 power-admin/src/main/java/com/manage/bean/QrBean.java create mode 100644 power-admin/src/main/java/com/manage/bean/ScanCode.java create mode 100644 power-admin/src/main/java/com/manage/bean/ScanCodeRes.java create mode 100644 power-admin/src/main/java/com/manage/bean/UserCode.java create mode 100644 power-admin/src/main/java/com/manage/bean/UserCodeRes.java delete mode 100644 power-dao/power-dao.iml create mode 100644 power-dao/src/main/java/com/manage/entity/CodeLogin.java create mode 100644 power-dao/src/main/java/com/manage/vo/CodeLoginVO.java diff --git a/pom.xml b/pom.xml index 9ceaaa3..b09d2d4 100644 --- a/pom.xml +++ b/pom.xml @@ -127,6 +127,11 @@ fastjson ${alibabaJson.version} + + org.apache.httpcomponents + httpclient + 4.2.6 + com.fasterxml.jackson.core diff --git a/power-admin/src/main/java/com/manage/bean/QRcode.java b/power-admin/src/main/java/com/manage/bean/QRcode.java new file mode 100644 index 0000000..b924f7d --- /dev/null +++ b/power-admin/src/main/java/com/manage/bean/QRcode.java @@ -0,0 +1,40 @@ +package com.manage.bean; + +public class QRcode { + int loginTypeBitValue; + private int type; + private String projectUid; + private String applicationId; + + public int getLoginTypeBitValue() { + return loginTypeBitValue; + } + + public void setLoginTypeBitValue(int loginTypeBitValue) { + this.loginTypeBitValue = loginTypeBitValue; + } + + public int getType() { + return type; + } + + public void setType(int type) { + this.type = type; + } + + public String getProjectUid() { + return projectUid; + } + + public void setProjectUid(String projectUid) { + this.projectUid = projectUid; + } + + public String getApplicationId() { + return applicationId; + } + + public void setApplicationId(String applicationId) { + this.applicationId = applicationId; + } +} diff --git a/power-admin/src/main/java/com/manage/bean/QrBean.java b/power-admin/src/main/java/com/manage/bean/QrBean.java new file mode 100644 index 0000000..599c0ff --- /dev/null +++ b/power-admin/src/main/java/com/manage/bean/QrBean.java @@ -0,0 +1,23 @@ +package com.manage.bean; + +public class QrBean { + + private String qrCodeBase64; + private String qrCodeIdentity; + + public String getQrCodeBase64() { + return qrCodeBase64; + } + + public void setQrCodeBase64(String qrCodeBase64) { + this.qrCodeBase64 = qrCodeBase64; + } + + public String getQrCodeIdentity() { + return qrCodeIdentity; + } + + public void setQrCodeIdentity(String qrCodeIdentity) { + this.qrCodeIdentity = qrCodeIdentity; + } +} diff --git a/power-admin/src/main/java/com/manage/bean/ScanCode.java b/power-admin/src/main/java/com/manage/bean/ScanCode.java new file mode 100644 index 0000000..ed5584a --- /dev/null +++ b/power-admin/src/main/java/com/manage/bean/ScanCode.java @@ -0,0 +1,14 @@ +package com.manage.bean; + +public class ScanCode { + + private String qrCodeIdentity; + + public String getQrCodeIdentity() { + return qrCodeIdentity; + } + + public void setQrCodeIdentity(String qrCodeIdentity) { + this.qrCodeIdentity = qrCodeIdentity; + } +} diff --git a/power-admin/src/main/java/com/manage/bean/ScanCodeRes.java b/power-admin/src/main/java/com/manage/bean/ScanCodeRes.java new file mode 100644 index 0000000..6601f98 --- /dev/null +++ b/power-admin/src/main/java/com/manage/bean/ScanCodeRes.java @@ -0,0 +1,22 @@ +package com.manage.bean; + +public class ScanCodeRes { + private String userToken; + private String verifyStatus; + + public String getUserToken() { + return userToken; + } + + public void setUserToken(String userToken) { + this.userToken = userToken; + } + + public String getVerifyStatus() { + return verifyStatus; + } + + public void setVerifyStatus(String verifyStatus) { + this.verifyStatus = verifyStatus; + } +} diff --git a/power-admin/src/main/java/com/manage/bean/UserCode.java b/power-admin/src/main/java/com/manage/bean/UserCode.java new file mode 100644 index 0000000..6c5a1d3 --- /dev/null +++ b/power-admin/src/main/java/com/manage/bean/UserCode.java @@ -0,0 +1,13 @@ +package com.manage.bean; + +public class UserCode { + private String userToken; + + public String getUserToken() { + return userToken; + } + + public void setUserToken(String userToken) { + this.userToken = userToken; + } +} diff --git a/power-admin/src/main/java/com/manage/bean/UserCodeRes.java b/power-admin/src/main/java/com/manage/bean/UserCodeRes.java new file mode 100644 index 0000000..be483b6 --- /dev/null +++ b/power-admin/src/main/java/com/manage/bean/UserCodeRes.java @@ -0,0 +1,31 @@ +package com.manage.bean; + +public class UserCodeRes { + private String msg; + private String uid; + private Integer msgType; + + public String getUid() { + return uid; + } + + public void setUid(String uid) { + this.uid = uid; + } + + public Integer getMsgType() { + return msgType; + } + + public void setMsgType(Integer msgType) { + this.msgType = msgType; + } + + public String getMsg() { + return msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } +} diff --git a/power-admin/src/main/java/com/manage/controller/FontController.java b/power-admin/src/main/java/com/manage/controller/FontController.java index 379e7c8..ad5a4cd 100644 --- a/power-admin/src/main/java/com/manage/controller/FontController.java +++ b/power-admin/src/main/java/com/manage/controller/FontController.java @@ -1,10 +1,12 @@ package com.manage.controller; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import com.fasterxml.jackson.databind.ObjectMapper; +import com.manage.bean.*; import com.manage.dao.Power_NoticeMapper; import com.manage.dao.Power_UserMapper; -import com.manage.encrypt.Base64; -import com.manage.encrypt.MD5; import com.manage.entity.*; import com.manage.service.*; import com.manage.service.cache.Cache; @@ -12,19 +14,32 @@ import com.manage.service.cache.CacheManager; import com.manage.service.ipml.Power_NoticeServiceImpl; import com.manage.service.webSocket.WsPool; import com.manage.util.ActionScopeUtils; -import com.manage.util.DateUtils; import com.manage.util.ExceptionPrintUtil; import com.manage.util.Msg; +import com.manage.util.MyCookieUtil; import com.manage.vo.*; import org.apache.commons.lang3.StringUtils; +import org.apache.http.HttpEntity; +import org.apache.http.client.ClientProtocolException; +import org.apache.http.client.methods.CloseableHttpResponse; +import org.apache.http.client.methods.HttpPost; +import org.apache.http.entity.StringEntity; +import org.apache.http.impl.client.CloseableHttpClient; +import org.apache.http.impl.client.HttpClientBuilder; +import org.apache.http.util.EntityUtils; import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.CrossOrigin; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; import java.util.*; /** @@ -46,9 +61,13 @@ public class FontController { private String STR_SPLIT; @Autowired private PowerService powerService; + @Value("${sysFlag}") + private Integer sysFlag; @Autowired private User_Dept_MenuService userDeptMenuService; @Autowired + private LogService logService; + @Autowired private Power_NoticeMapper powerNoticeMapper; @Autowired private Power_UserMapper userMapper; @@ -60,8 +79,20 @@ public class FontController { private long TOKEN_EXPIRE_TIME; @Autowired private Power_MenuService powerMenuService; + @Value("${EMRMEDICALRECORD_IP}") + private String ip; + @Value("${EMRMEDICALRECORD_SYSFLAG}") + private String recordAddress; + @Value("${EMRMEDICALRECORD_PORT}") + private String port; + @Value("${POWER_PORT}") + private String POWER_PORT; @Autowired private Power_DeptService power_deptService; + @Autowired + private Power_UserService power_userService; + @Value("${EMRMEDICALRECORD_URLHEAD}") + private String EMRMEDICALRECORD_URLHEAD; /** * 2.1 @@ -557,4 +588,313 @@ public class FontController { WsPool.sendMessageToAll(message.getSysFlag() + "_" + message.getUserId(), message.getTitle() + STR_SPLIT + message.getContent() + STR_SPLIT + message.getTypeFlag()); return Msg.success(); } + + + /** + * 获取二维码 + * @return + * @throws + */ + @RequestMapping(value="getQRcode") + @ResponseBody + public QrBean getQRcode(QRcode qRcode, HttpServletRequest request){ + + // 获得Http客户端 + CloseableHttpClient httpClient = HttpClientBuilder.create().build(); + // 创建Post请求 + HttpPost httpPost = new HttpPost("http://192.168.1.212:8080/cloudkeyserver/api/login/qrcode/nostatus/2CKV1"); +// qRcode.setLoginTypeBitValue(16); +// qRcode.setType(3); +// qRcode.setProjectUid("cloudkey-fstth"); +// qRcode.setApplicationId("fstth-wzh"); + System.out.println("qRcode:::::"+qRcode.getApplicationId()); + //json格式转换 + String jsonString = JSON.toJSONString(qRcode); + System.out.println("jsonString1::::"+jsonString); + StringEntity entity = new StringEntity(jsonString, "UTF-8"); + System.out.println("jsonString::::"+jsonString); + // post请求是将参数放在请求体里面传过去的;这里将entity放入post请求体中 + httpPost.setEntity(entity); + httpPost.setHeader("Content-Type", "application/json;charset=utf8"); + // 响应模型 + CloseableHttpResponse response = null; + HttpEntity responseEntity=null; + String s =""; + QrBean qrBean=new QrBean(); + try { + // 由客户端执行(发送)Post请求 + response = httpClient.execute(httpPost); + // 从响应模型中获取响应实体 + responseEntity = response.getEntity(); + System.out.println("responseEntity::::"+responseEntity); + System.out.println("响应状态为:" + response.getStatusLine()); + if (responseEntity != null) { + JSONObject jsonObject = JSONObject.parseObject(EntityUtils.toString(responseEntity)); + String contents = jsonObject.getString("contents"); + JSONObject contentsObject = JSONObject.parseObject(contents); + String qrCodeIdentity = contentsObject.getString("qrCodeIdentity"); + JSONArray qrCodes = contentsObject.getJSONArray("qrCodes"); + String qrCodeBase64 = qrCodes.getJSONObject(0).get("qrCodeBase64").toString(); + + + qrBean.setQrCodeBase64(qrCodeBase64); + qrBean.setQrCodeIdentity(qrCodeIdentity); + System.out.println("qrBean::::"+qrBean.getQrCodeIdentity()); + } + } catch (ClientProtocolException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } finally { + try { + // 释放资源 + if (httpClient != null) { + httpClient.close(); + } + if (response != null) { + response.close(); + } + } catch (IOException e) { + e.printStackTrace(); + } + } + + return qrBean; + + } + + /** + * 获取userToken + * @return + * @throws + */ + @RequestMapping(value="getScanCode") + @ResponseBody + public ScanCodeRes getQRcode(ScanCode scanCode, HttpServletRequest request){ + System.out.println("scanCode123::::"+scanCode.getQrCodeIdentity()); + // 获得Http客户端 + CloseableHttpClient httpClient = HttpClientBuilder.create().build(); + // 创建Post请求 + HttpPost httpPost = new HttpPost("http://192.168.1.212:8080/cloudkeyserver/api/qrcode/status"); + //json格式转换 + String jsonString = JSON.toJSONString(scanCode); + StringEntity entity = new StringEntity(jsonString, "UTF-8"); + // post请求是将参数放在请求体里面传过去的;这里将entity放入post请求体中 + httpPost.setEntity(entity); + httpPost.setHeader("Content-Type", "application/json;charset=utf8"); + // 响应模型 + CloseableHttpResponse response = null; + HttpEntity responseEntity=null; + ScanCodeRes scanCodeRes=new ScanCodeRes(); + try { + // 由客户端执行(发送)Post请求 + response = httpClient.execute(httpPost); + // 从响应模型中获取响应实体 + responseEntity = response.getEntity(); + System.out.println("responseEntity::::"+responseEntity); + System.out.println("响应状态为:" + response.getStatusLine()); + if (responseEntity != null) { + JSONObject jsonObject = JSONObject.parseObject(EntityUtils.toString(responseEntity)); + String contents = jsonObject.getString("contents"); + JSONObject contentsObject = JSONObject.parseObject(contents); + String userToken = contentsObject.getString("userToken"); + String verifyStatus = contentsObject.getString("verifyStatus"); + scanCodeRes.setUserToken(userToken); + scanCodeRes.setVerifyStatus(verifyStatus); + + } + } catch (ClientProtocolException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } finally { + try { + // 释放资源 + if (httpClient != null) { + httpClient.close(); + } + if (response != null) { + response.close(); + } + } catch (IOException e) { + e.printStackTrace(); + } + } + + return scanCodeRes; + + } + /** + * 获取用户信息 + * @return + * @throws + */ + @RequestMapping(value="getUserInfo") + @ResponseBody + public UserCodeRes getUserInfo(UserCode userCode, HttpServletRequest request){ + // 获得Http客户端 + CloseableHttpClient httpClient = HttpClientBuilder.create().build(); + // 创建Post请求 + HttpPost httpPost = new HttpPost("http://192.168.1.212:8080/cloudkeyserver/api/oprinfo/search/all"); + //json格式转换 + String jsonString = JSON.toJSONString(userCode); + StringEntity entity = new StringEntity(jsonString, "UTF-8"); + // post请求是将参数放在请求体里面传过去的;这里将entity放入post请求体中 + httpPost.setEntity(entity); + httpPost.setHeader("Content-Type", "application/json;charset=utf8"); + // 响应模型 + CloseableHttpResponse response = null; + HttpEntity responseEntity=null; + UserCodeRes userCodeRes =new UserCodeRes(); + try { + // 由客户端执行(发送)Post请求 + response = httpClient.execute(httpPost); + // 从响应模型中获取响应实体 + responseEntity = response.getEntity(); + System.out.println("responseEntity::::"+responseEntity); + System.out.println("响应状态为:" + response.getStatusLine()); + if (responseEntity != null) { + JSONObject jsonObject = JSONObject.parseObject(EntityUtils.toString(responseEntity)); + String responseResult = jsonObject.getString("responseResult"); + JSONObject responseResultObject = JSONObject.parseObject(responseResult); + String msg = responseResultObject.getString("msg"); + String contents = jsonObject.getString("contents"); + JSONObject contentsObject = JSONObject.parseObject(contents); + String uid = contentsObject.getString("uid"); + userCodeRes.setMsg(msg); + userCodeRes.setUid(uid); + if (msg.equals("成功")){ + userCodeRes.setMsgType(1); + }else { + userCodeRes.setMsgType(2); + } + + } + } catch (ClientProtocolException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } finally { + try { + // 释放资源 + if (httpClient != null) { + httpClient.close(); + } + if (response != null) { + response.close(); + } + } catch (IOException e) { + e.printStackTrace(); + } + } + return userCodeRes; + + } + + + @RequestMapping(value = "qRCodeLogin",method = RequestMethod.POST) + @ResponseBody + public Msg qRCodeLogin(Power_User powerUser, HttpServletResponse response, HttpServletRequest request, Model model){ + try { + Power_UserVo user = power_userService.findUserName(powerUser); + System.out.println("user:::::"+user); + //添加进操作日志 + Power_Log log = new Power_Log(); + if(user != null){ +// //存session密码置空 +//// //是否记住密码功能 +//// MyCookieUtil.remember(request, response); + //设置token缓存 + String token = UUID.randomUUID().toString(); + //查询归属医院 + /*long start5 = System.currentTimeMillis(); + Power_User_Dict powerUserDict = powerUserDictMapper.selectDictIdByUserId(user.getUserId()); + long end5 = System.currentTimeMillis(); + System.out.println("查询医院时间="+(end5-start5)/1000.0+"s"); + user.setDictId(powerUserDict.getDictId());*/ + //设置用户登录次数缓存 + //CacheManager.addloginUserCount(fmt.format(new Date()),user.getUserName()); + CacheManager.addExcCount("noExc"); + List list = null; + List menuList = new ArrayList<>(); + Set menus = new LinkedHashSet<>(); + if (user.getRoleId().equals(0) || user.getRoleId().equals(-100)) { + list = powerMenuService.queryAllPowerMenu(null,user.getRoleId()); + } else { + list = powerMenuService.selectUserAndRoleMenuListPower(user.getUserId(),null); + } + if(null != list && !list.isEmpty()){ + for (Power_Menu powerMenu : list) { + User_Dept_Menu deptMenu = new User_Dept_Menu(); + String menuUrl = powerMenu.getMenuUrl(); + if (StringUtils.isNotBlank(menuUrl)) { + BeanUtils.copyProperties(powerMenu, deptMenu); + deptMenu.setMethodParent(powerMenu.getParentId()); + menuList.add(deptMenu); + } + if (StringUtils.isNotBlank(powerMenu.getMethod())) { + menus.add(powerMenu.getMenuUrl()); + } + } + } + user.setMenuList(menuList); + user.setMenus(menus); + //设置科室 + StringBuilder powerDepts = new StringBuilder(); + List powerDeptsList = power_deptService.selectByPrimaryKeys(user.getDeptId()); + for(int j=0;j