From 77bd1cd5a821e8be666c65b28db11d1bbc8ca9ea Mon Sep 17 00:00:00 2001 From: linjj <850658129@qq.com> Date: Mon, 14 Aug 2023 13:55:17 +0800 Subject: [PATCH] =?UTF-8?q?=E7=AC=AC=E4=B8=89=E6=96=B9=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 7 + power-admin/pom.xml | 58 +- .../com/manage/config/WebServiceConfig.java | 3 + .../com/manage/controller/FontController.java | 1032 ++-- .../manage/controller/LoginController.java | 16 +- .../com/manage/controller/UserController.java | 7 + .../main/resources/config/config.properties | 18 +- .../src/main/resources/config/jdbc.properties | 15 +- .../main/webapp/WEB-INF/jspf/webSocket.jspf | 13 +- .../WEB-INF/views/gatewayDir/gatewayIndex.jsp | 647 +-- .../webapp/WEB-INF/views/loginDir/index.jsp | 7 +- .../webapp/WEB-INF/views/loginDir/login.jsp | 180 +- .../WEB-INF/views/loginDir/xmzslogin.jsp | 233 + .../views/userDir/XMZSYYupdatePassword.jsp | 40 + .../dist/css/skins/_all-skins.min.css | 2 +- .../webapp/static/css/gatewayPageStyles.css | 4894 +---------------- .../main/webapp/static/img/login/login_bg.png | Bin 0 -> 355667 bytes .../login/厦门中山医院修改密码.png | Bin 0 -> 17810 bytes .../src/main/webapp/static/js/getewayIndex.js | 54 +- .../src/main/webapp/static/js/login.js | 108 +- power-admin/src/main/webapp/static/js/md5.js | 256 + .../webapp/static/js/zsxmHospitalLogin.js | 124 + power-dao/pom.xml | 5 + .../manage/dao/Power_Hospital_FlagMapper.java | 18 + .../java/com/manage/dao/Power_UserMapper.java | 4 + .../java/com/manage/entity/Power_User.java | 1 + .../java/com/manage/vo/PowerHospitalVo.java | 41 + .../main/java/com/manage/vo/Power_UserVo.java | 13 + .../mapper/Power_Hospital_FlagMapper.xml | 10 + .../resources/mapper/Power_Sys_DictMapper.xml | 4 +- .../resources/mapper/Power_UserMapper.xml | 64 +- power-foundaton/pom.xml | 15 + .../main/java/com/manage/util/HttpUtil.java | 167 + .../src/main/java/com/manage/util/Msg.java | 22 +- power-service/pom.xml | 5 + .../com/manage/service/Power_UserService.java | 12 + .../manage/service/ipml/PowerServiceImpl.java | 17 +- .../service/ipml/Power_UserServiceImpl.java | 90 +- .../manage/service/webSocket/StartFilter.java | 2 +- 39 files changed, 2436 insertions(+), 5768 deletions(-) create mode 100644 power-admin/src/main/webapp/WEB-INF/views/loginDir/xmzslogin.jsp create mode 100644 power-admin/src/main/webapp/WEB-INF/views/userDir/XMZSYYupdatePassword.jsp create mode 100644 power-admin/src/main/webapp/static/img/login/login_bg.png create mode 100644 power-admin/src/main/webapp/static/img/login/厦门中山医院修改密码.png create mode 100644 power-admin/src/main/webapp/static/js/md5.js create mode 100644 power-admin/src/main/webapp/static/js/zsxmHospitalLogin.js create mode 100644 power-dao/src/main/java/com/manage/dao/Power_Hospital_FlagMapper.java create mode 100644 power-dao/src/main/java/com/manage/vo/PowerHospitalVo.java create mode 100644 power-dao/src/main/resources/mapper/Power_Hospital_FlagMapper.xml create mode 100644 power-foundaton/src/main/java/com/manage/util/HttpUtil.java diff --git a/pom.xml b/pom.xml index 5e7bc4b..2f9ec7e 100644 --- a/pom.xml +++ b/pom.xml @@ -226,6 +226,13 @@ + + + com.github.anish7kumar + XML_JSON + 1.0.1 + + diff --git a/power-admin/pom.xml b/power-admin/pom.xml index 03938c3..680d2e8 100644 --- a/power-admin/pom.xml +++ b/power-admin/pom.xml @@ -16,8 +16,14 @@ UTF-8 UTF-8 + 1.2.5 + + com.docus + docus-soap-api-client + 1.0-SNAPSHOT + com.manage power-dao @@ -30,6 +36,18 @@ 1.0-SNAPSHOT + + javax.inject + javax.inject + 1 + + + + com.alibaba + fastjson + 1.2.50 + + com.manage power-foundaton @@ -56,6 +74,11 @@ org.mybatis mybatis-spring + + org.apache.httpcomponents + httpclient + 4.3.5 + com.alibaba @@ -107,6 +130,11 @@ org.apache.cxf cxf-rt-frontend-jaxws + + org.apache.shiro + shiro-spring + ${shiro.version} + org.apache.commons @@ -122,17 +150,45 @@ commons-fileupload commons-fileupload + + + + org.apache.httpcomponents + httpclient + 4.5.2 + + + + org.apache.httpcomponents + httpcore + 4.4.5 + + + + org.apache.logging.log4j log4j-web + + + + com.google.code.gson + gson + 1.7.2 + org.apache.logging.log4j log4j-slf4j-impl + + com.github.anish7kumar + XML_JSON + 1.0.1 + power @@ -155,7 +211,7 @@ 2.2 /power - 8080 + 8081 UTF-8 diff --git a/power-admin/src/main/java/com/manage/config/WebServiceConfig.java b/power-admin/src/main/java/com/manage/config/WebServiceConfig.java index 0b7b30a..fa61b40 100644 --- a/power-admin/src/main/java/com/manage/config/WebServiceConfig.java +++ b/power-admin/src/main/java/com/manage/config/WebServiceConfig.java @@ -1,5 +1,7 @@ package com.manage.config; + +import com.docus.soap.api.EnableSoapAPIClient; import com.manage.interfaces.webservice.PowerWebService; import com.manage.interfaces.webservice.impl.PowerWebServiceImpl; import org.apache.cxf.Bus; @@ -12,6 +14,7 @@ import javax.xml.ws.Endpoint; @Configuration +@EnableSoapAPIClient public class WebServiceConfig { @Bean(name = Bus.DEFAULT_BUS_ID) 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 0fcb599..2974764 100644 --- a/power-admin/src/main/java/com/manage/controller/FontController.java +++ b/power-admin/src/main/java/com/manage/controller/FontController.java @@ -1,9 +1,18 @@ package com.manage.controller; -import com.alibaba.fastjson.JSON; + import com.alibaba.fastjson.JSONObject; +import com.docus.soap.api.SoapAPISettings; +import com.docus.soap.api.request.zsyy.GetLoginInfoRequest; +import com.docus.soap.api.request.zsyy.GetQRCodeBySysRequest; +import com.docus.soap.api.request.zsyy.GetQueryQRCodeRequest; +import com.docus.soap.api.response.zsyy.GetLoginInfoResponse; +import com.docus.soap.api.response.zsyy.GetQRCodeBySysResponse; +import com.docus.soap.api.response.zsyy.GetQueryQRCodeResponse; +import com.docus.soap.api.service.XMZSYYQRCodeAPIService; import com.fasterxml.jackson.databind.ObjectMapper; import com.manage.dao.Power_NoticeMapper; +import com.manage.dao.Power_Sys_DictMapper; import com.manage.dao.Power_UserMapper; import com.manage.encrypt.Base64; import com.manage.encrypt.MD5; @@ -11,14 +20,20 @@ import com.manage.entity.*; import com.manage.service.*; import com.manage.service.cache.Cache; import com.manage.service.cache.CacheManager; +import com.manage.service.ipml.PageServiceImpl; 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.*; import com.manage.vo.*; import org.apache.commons.lang3.StringUtils; +import org.apache.http.HttpEntity; +import org.apache.http.HttpResponse; +import org.apache.http.client.ClientProtocolException; +import org.apache.http.client.HttpClient; +import org.apache.http.client.methods.HttpPost; +import org.apache.http.entity.StringEntity; +import org.apache.http.impl.client.HttpClients; +import org.apache.http.util.EntityUtils; import org.dom4j.Document; import org.dom4j.DocumentHelper; import org.dom4j.Element; @@ -28,11 +43,16 @@ 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.util.CollectionUtils; import org.springframework.web.bind.annotation.*; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.io.StringReader; +import java.io.UnsupportedEncodingException; +import java.nio.charset.Charset; import java.text.SimpleDateFormat; import java.util.*; @@ -55,6 +75,12 @@ public class FontController { private String STR_SPLIT; @Value("${EMRRECORD_URLHEAD}") private String EMRRECORD_URLHEAD; + @Value("${EMRMEDICALRECORD_URLHEAD}") + private String EMRMEDICALRECORD_URLHEAD; + @Value("${EMRAPPLYCOPY_URLHEAD}") + private String EMRAPPLYCOPY_URLHEAD; + @Value("${EMRFILES_URLHEAD}") + private String EMRFILES_URLHEAD; @Autowired private PowerService powerService; @Autowired @@ -64,52 +90,324 @@ public class FontController { @Autowired private Power_UserMapper userMapper; @Autowired + private Power_UserService powerUserService; + @Autowired private Power_NoticeServiceImpl noticeService; @Autowired private Power_UserService userService; + @Autowired + private Power_NoticeServiceImpl powerNoticeService; + @Autowired + private PageServiceImpl pageService; + @Autowired + private Power_Sys_DictMapper sysDictMapper; + @Autowired + private LogService logService; @Value("${TOKEN_EXPIRE_TIME}") private long TOKEN_EXPIRE_TIME; @Autowired private Power_MenuService powerMenuService; @Autowired private Power_DeptService power_deptService; + @Autowired + private XMZSYYQRCodeAPIService xmzsyyqrCodeAPIService; + + @Value("${WEBSOCKET_URLHEAD}") + private String WEBSOCKET_URLHEAD; + + @Value("${wsdlUrl}") + private String wsdlUrl; + @Value("${operationName}") + private String operationName; + @Value("${queryQRCodeUrl}") + private String queryQRCodeUrl; + + @Value("${queryQRCodeUrlName}") + private String queryQRCodeUrlName; + @Value("${getLoginUserInfoName}") + private String getLoginUserInfoName; + + @Value("${getLoginUserInfoUrl}") + private String getLoginUserInfoUrl; + public static Class getUserClass(Object root) { return null; } + + /** + * @description: 五邑中医院单点登录 + * @params: ticket + * @return: gatewayPage + * @author linjj + * @date: 2023/4/7 11:50 + */ + @RequestMapping(value = "casLogin") + public String casLogin(String ticket) { + String url = "http://172.16.1.50:34084/casServer/appservice/validateService"; + String username = sendPost(url, ticket); + Power_UserVo user = powerUserService.casLoginUserName(username); + if (user != null) { + String date = String.valueOf(DateUtils.getDate()); + String token = Base64.encode(MD5.KL(date)); + ActionScopeUtils.setSessionAttribute("token", token, Integer.valueOf(String.valueOf(TOKEN_EXPIRE_TIME)) / 1000); + + //设置用户登录次数缓存 + SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd"); + 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 powerDeptList = power_deptService.selectByPrimaryKeys(user.getDeptId()); + for (int j = 0; j < powerDeptList.size(); j++) { + if (j < powerDeptList.size() - 1) { + powerDepts.append(powerDeptList.get(j).getDeptName()).append(","); + } else { + powerDepts.append(powerDeptList.get(j).getDeptName()); + } + } + user.setRemark(powerDepts.toString()); + + //设置进缓存 + CacheManager.putCache(date, new Cache(date, user, TOKEN_EXPIRE_TIME)); + ActionScopeUtils.setSessionAttribute("CURRENT_USER", user, Integer.valueOf(String.valueOf(TOKEN_EXPIRE_TIME)) / 1000); + return "redirect:gatewayPage"; + } + return "查无此账号"; + } + + + @RequestMapping(value = "gatewayPage") + public String register(Model model, HttpServletRequest request, Integer noticeId) { + model.addAttribute("EMRMEDICALRECORD_URLHEAD", EMRMEDICALRECORD_URLHEAD); + + model.addAttribute("EMRRECORD_URLHEAD", EMRRECORD_URLHEAD); + + model.addAttribute("EMRAPPLYCOPY_URLHEAD", EMRAPPLYCOPY_URLHEAD); + + model.addAttribute("EMRFILES_URLHEAD", EMRFILES_URLHEAD); + + model.addAttribute("WEBSOCKET_URLHEAD", WEBSOCKET_URLHEAD); + model.addAttribute("STR_SPLIT", STR_SPLIT); + model.addAttribute("flag", noticeId); + //登录成功 + //插入成功日志 + Power_UserVo powerUser = (Power_UserVo) request.getSession().getAttribute("CURRENT_USER"); + Power_Log log = new Power_Log(); + log.setLogTitle("登录"); + log.setLogContent("用户登录成功"); + log.setCreater(powerUser.getUserName()); + //查询系统权限 + List sysList = new ArrayList<>(); + try { + logService.insert(log); + //修改该通知为已读 + if (null != noticeId && noticeId != -1) { + powerNoticeService.updateNoticeReadFlag(noticeId); + CacheManager.addExcCount("noExc"); + } + //查询当前用户 + Power_UserVo user = (Power_UserVo) request.getSession().getAttribute("CURRENT_USER"); + if (user.getRoleId() == 0) { + sysList = sysDictMapper.selectSysFlagsByUserId(null, null); + } else { + sysList = sysDictMapper.selectSysFlagsByUserId(user.getUserId(), user.getRoleId()); + } + } catch (Exception e) { + ExceptionPrintUtil.printException(e); + e.printStackTrace(); + CacheManager.addExcCount("exc"); + } + int power = 0; + int emr_medical_record = 0; + int emr_record = 0; + int emr_apply_copy = 0; + int emr_files = 0; + int power1 = 0; + int emr_medical_record1 = 0; + int emr_record1 = 0; + int emr_apply_copy1 = 0; + int emr_files1 = 0; + if (null != sysList && !sysList.isEmpty()) { + //获取权限菜单 + List menuList = powerUser.getMenuList(); + if (null != menuList && !menuList.isEmpty()) { + for (User_Dept_Menu menu : menuList) { + String sysFlag = menu.getSysFlag(); + if (StringUtils.isNotBlank(sysFlag)) { + if ("power".equals(sysFlag)) { + power1 = 1; + continue; + } + if ("emr_medical_record".equals(sysFlag)) { + emr_medical_record1 = 1; + continue; + } + if ("emr_record".equals(sysFlag)) { + emr_record1 = 1; + continue; + } + if ("emr_apply_copy".equals(sysFlag)) { + emr_apply_copy1 = 1; + continue; + } + if ("emr_files".equals(sysFlag)) { + emr_files1 = 1; + continue; + } + } + } + } + for (Power_Sys_Dict powerSysDict : sysList) { + String sysFlag = powerSysDict.getSysFlag(); + if (StringUtils.isNotBlank(sysFlag)) { + if ("power".equals(sysFlag)) { + power = 1; + continue; + } + if ("emr_medical_record".equals(sysFlag)) { + emr_medical_record = 1; + continue; + } + if ("emr_record".equals(sysFlag)) { + emr_record = 1; + continue; + } + if ("emr_apply_copy".equals(sysFlag)) { + emr_apply_copy = 1; + continue; + } + if ("emr_files".equals(sysFlag)) { + emr_files = 1; + continue; + } + } + } + } + if (power == 1 && power1 == 1) { + power = 1; + } else { + power = 0; + } + if (emr_medical_record == 1 && emr_medical_record1 == 1) { + emr_medical_record = 1; + } else { + emr_medical_record = 0; + } + if (emr_record == 1 && emr_record1 == 1) { + emr_record = 1; + } else { + emr_record = 0; + } + if (emr_apply_copy == 1 && emr_apply_copy1 == 1) { + emr_apply_copy = 1; + } else { + emr_apply_copy = 0; + } + if (emr_files == 1 && emr_files1 == 1) { + emr_files = 1; + } else { + emr_files = 0; + } + model.addAttribute("power", power); + model.addAttribute("emr_medical_record", emr_medical_record); + model.addAttribute("emr_record", emr_record); + model.addAttribute("emr_apply_copy", emr_apply_copy); + model.addAttribute("emr_files", emr_files); + return "/gatewayDir/gatewayIndex"; + } + + + //发起httppost请求 + public static String sendPost(String url, String ticket) { + String username = ""; + HttpClient client = HttpClients.createDefault(); + //默认post请求 + HttpPost post = new HttpPost(url); + //拼接多参数 + JSONObject json = new JSONObject(); + json.put("ticket", ticket); + try { + post.addHeader("Content-type", "application/json; charset=utf-8"); + post.setHeader("Accept", "application/json"); + post.setEntity(new StringEntity(json.toString(), Charset.forName("utf-8"))); + HttpResponse httpResponse = client.execute(post); + + HttpEntity responseEntity = httpResponse.getEntity(); + System.out.println("响应状态为:" + httpResponse.getStatusLine()); + if (responseEntity != null) { + JSONObject jsonObject = JSONObject.parseObject(EntityUtils.toString(responseEntity)); + username = jsonObject.getString("username"); + } + } catch (UnsupportedEncodingException e1) { + e1.printStackTrace(); + } catch (ClientProtocolException e) { + e.printStackTrace(); + } catch (IOException e) { + e.printStackTrace(); + } + return username; + } + /** * 2.1 - * @ProjectName: getRolePowerTreeBySysFlag - * @Description: 获取菜单通过系统标识 - * @Param 无 - * @Return getMenusByUserIdAndSysFlag - * @Author: 曾文和 - * @CreateDate: 2019/7/9 10:00 - * @UpdateUser: 更新者 - * @UpdateDate: 2019/7/9 10:00 - * @UpdateRemark: 更新说明 - * @Version: 1.0 + * + * @ProjectName: getRolePowerTreeBySysFlag + * @Description: 获取菜单通过系统标识 + * @Param 无 + * @Return getMenusByUserIdAndSysFlag + * @Author: 曾文和 + * @CreateDate: 2019/7/9 10:00 + * @UpdateUser: 更新者 + * @UpdateDate: 2019/7/9 10:00 + * @UpdateRemark: 更新说明 + * @Version: 1.0 */ - @RequestMapping(value = "getMenusByUserIdAndSysFlag",method = RequestMethod.GET) + @RequestMapping(value = "getMenusByUserIdAndSysFlag", method = RequestMethod.GET) @ResponseBody - public Msg getMenusByUserIdAndSysFlag(String userName,String sysFlag,Integer userId,Integer roleId,Integer sysId,Integer hospitalId) throws Exception{ - if(StringUtils.isNotBlank(sysFlag) && StringUtils.isBlank(userName) && userId == null && roleId == null - && sysId == null && hospitalId == null){ + public Msg getMenusByUserIdAndSysFlag(String userName, String sysFlag, Integer userId, Integer roleId, Integer sysId, Integer hospitalId) throws Exception { + if (StringUtils.isNotBlank(sysFlag) && StringUtils.isBlank(userName) && userId == null && roleId == null + && sysId == null && hospitalId == null) { return Msg.fail("查询复杂,数据大,暂不支持只带sysFlag参数查询"); } - if(StringUtils.isBlank(sysFlag) && StringUtils.isBlank(userName) && userId == null && roleId == null - && sysId != null && hospitalId == null){ + if (StringUtils.isBlank(sysFlag) && StringUtils.isBlank(userName) && userId == null && roleId == null + && sysId != null && hospitalId == null) { return Msg.fail("查询复杂,数据大,暂不支持只带sysId参数查询"); } - if(StringUtils.isBlank(sysFlag) && StringUtils.isBlank(userName) && userId == null && roleId == null - && sysId == null && hospitalId != null){ + if (StringUtils.isBlank(sysFlag) && StringUtils.isBlank(userName) && userId == null && roleId == null + && sysId == null && hospitalId != null) { return Msg.fail("查询复杂,数据大,暂不支持只带hospitalId参数查询"); } - if(StringUtils.isNotBlank(userName)){ + if (StringUtils.isNotBlank(userName)) { List powerUsers = userMapper.checkUserName(userName); - if(null != powerUsers && !powerUsers.isEmpty()){ - if(powerUsers.get(0).getRoleId().equals(0) || powerUsers.get(0).getRoleId().equals(-100)){ + if (null != powerUsers && !powerUsers.isEmpty()) { + if (powerUsers.get(0).getRoleId().equals(0) || powerUsers.get(0).getRoleId().equals(-100)) { roleId = powerUsers.get(0).getRoleId(); } } @@ -117,59 +415,61 @@ public class FontController { List list = userDeptMenuService.selectAll(userName, sysFlag, userId, roleId, sysId, hospitalId); CacheManager.addExcCount("noExc"); - return Msg.success().add("list",list); + return Msg.success().add("list", list); } /** * 2.2 - * @ProjectName: selectAllByUserIdOrRoleIdAndSysIdOrSysFlag - * @Description: 根据用户id或角色id和系统id或系统标识查询通知记录 - * @Param 无 - * @Return selectAllByUserIdOrRoleIdAndSysIdOrSysFlag - * @Author: 曾文和 - * @CreateDate: 2019/7/29 10:00 - * @UpdateUser: 更新者 - * @UpdateDate: 2019/7/29 10:00 - * @UpdateRemark: 更新说明 - * @Version: 1.0 + * + * @ProjectName: selectAllByUserIdOrRoleIdAndSysIdOrSysFlag + * @Description: 根据用户id或角色id和系统id或系统标识查询通知记录 + * @Param 无 + * @Return selectAllByUserIdOrRoleIdAndSysIdOrSysFlag + * @Author: 曾文和 + * @CreateDate: 2019/7/29 10:00 + * @UpdateUser: 更新者 + * @UpdateDate: 2019/7/29 10:00 + * @UpdateRemark: 更新说明 + * @Version: 1.0 */ @RequestMapping(value = "selectAllByUserIdOrRoleIdAndSysIdOrSysFlag") @ResponseBody - public Msg selectAllByUserIdOrRoleIdAndSysIdOrSysFlag(Integer userId,Integer roleId,Integer sysId,String sysFlag) throws Exception{ + public Msg selectAllByUserIdOrRoleIdAndSysIdOrSysFlag(Integer userId, Integer roleId, Integer sysId, String sysFlag) throws Exception { List list = powerNoticeMapper.selectAllByUserIdOrRoleIdAndSysIdOrSysFlag(userId, roleId, sysId, sysFlag); CacheManager.addExcCount("noExc"); - return Msg.success().add("list",list); + return Msg.success().add("list", list); } /** * 2.4 - * @ProjectName: getUserPowerTreeBySysFlag - * @Description: 获取系统用户树通过系统标识 - * @Param 无 - * @Return PowerTree - * @Author: 曾文和 - * @CreateDate: 2019/7/9 10:00 - * @UpdateUser: 更新者 - * @UpdateDate: 2019/7/9 10:00 - * @UpdateRemark: 更新说明 - * @Version: 1.0 + * + * @ProjectName: getUserPowerTreeBySysFlag + * @Description: 获取系统用户树通过系统标识 + * @Param 无 + * @Return PowerTree + * @Author: 曾文和 + * @CreateDate: 2019/7/9 10:00 + * @UpdateUser: 更新者 + * @UpdateDate: 2019/7/9 10:00 + * @UpdateRemark: 更新说明 + * @Version: 1.0 */ - @RequestMapping(value = "getUserPowerTreeBySysFlag",produces = {"text/json;charset=UTF-8"}) + @RequestMapping(value = "getUserPowerTreeBySysFlag", produces = {"text/json;charset=UTF-8"}) @ResponseBody - public String getUserPowerTreeBySysFlag(String sysFlag,Integer userId){ + public String getUserPowerTreeBySysFlag(String sysFlag, Integer userId) { try { - if(null != userId){ + if (null != userId) { //查询该用户 Power_UserVo user = userMapper.selectByPrimaryKey(userId); - List dicts = powerService.getUserPowerTreeBySysFlag(sysFlag,user); + List dicts = powerService.getUserPowerTreeBySysFlag(sysFlag, user); ObjectMapper mapper = new ObjectMapper(); String json = mapper.writeValueAsString(dicts); CacheManager.addExcCount("noExc"); return json; - }else{ + } else { return null; } - }catch(Exception e){ + } catch (Exception e) { ExceptionPrintUtil.printException(e); CacheManager.addExcCount("exc"); e.printStackTrace(); @@ -179,32 +479,33 @@ public class FontController { /** * 2.5 - * @ProjectName: getRolePowerTreeBySysFlag - * @Description: 获取系统角色树通过系统标识 - * @Param 无 - * @Return PowerTree - * @Author: 曾文和 - * @CreateDate: 2019/7/9 10:00 - * @UpdateUser: 更新者 - * @UpdateDate: 2019/7/9 10:00 - * @UpdateRemark: 更新说明 - * @Version: 1.0 + * + * @ProjectName: getRolePowerTreeBySysFlag + * @Description: 获取系统角色树通过系统标识 + * @Param 无 + * @Return PowerTree + * @Author: 曾文和 + * @CreateDate: 2019/7/9 10:00 + * @UpdateUser: 更新者 + * @UpdateDate: 2019/7/9 10:00 + * @UpdateRemark: 更新说明 + * @Version: 1.0 */ - @RequestMapping(value = "getRolePowerTreeBySysFlag",produces = {"text/json;charset=UTF-8"}) + @RequestMapping(value = "getRolePowerTreeBySysFlag", produces = {"text/json;charset=UTF-8"}) @ResponseBody - public String getRolePowerTreeBySysFlag(String sysFlag,Integer userId){ + public String getRolePowerTreeBySysFlag(String sysFlag, Integer userId) { try { - if(null != userId){ + if (null != userId) { Power_UserVo user = userMapper.selectByPrimaryKey(userId); - List dicts = powerService.getRolePowerTreeBySysFlag(sysFlag,user); + List dicts = powerService.getRolePowerTreeBySysFlag(sysFlag, user); ObjectMapper mapper = new ObjectMapper(); String json = mapper.writeValueAsString(dicts); CacheManager.addExcCount("noExc"); return json; - }else{ + } else { return null; } - }catch(Exception e){ + } catch (Exception e) { ExceptionPrintUtil.printException(e); CacheManager.addExcCount("exc"); e.printStackTrace(); @@ -214,55 +515,57 @@ public class FontController { /** * 2.6 - * @ProjectName: getUserList - * @Description: 获取用户id和用户名 - * @Param 无 - * @Return userList - * @Author: 曾文和 - * @CreateDate: 2019/9/6 10:00 - * @UpdateUser: 更新者 - * @UpdateDate: 2019/9/6 10:00 - * @UpdateRemark: 更新说明 - * @Version: 1.0 + * + * @ProjectName: getUserList + * @Description: 获取用户id和用户名 + * @Param 无 + * @Return userList + * @Author: 曾文和 + * @CreateDate: 2019/9/6 10:00 + * @UpdateUser: 更新者 + * @UpdateDate: 2019/9/6 10:00 + * @UpdateRemark: 更新说明 + * @Version: 1.0 */ @RequestMapping(value = "getUserList") @ResponseBody - public Msg getUserList(String userName) throws Exception{ + public Msg getUserList(String userName) throws Exception { List list = new ArrayList<>(); - if(StringUtils.isNoneBlank(userName)){ + if (StringUtils.isNoneBlank(userName)) { List users = userMapper.checkUserName(userName); - if(null != users && !users.isEmpty()){ + if (null != users && !users.isEmpty()) { Integer roleId = users.get(0).getRoleId(); - if(roleId == 0){ + if (roleId == 0) { list = userMapper.selectUserIdAndUserNameList(null); - }else{ + } else { list = userMapper.selectUserIdAndUserNameList(users.get(0).getUserId()); } } - }else{ + } else { return Msg.fail("用户名不能为空"); } CacheManager.addExcCount("noExc"); - return Msg.success().add("userList",list); + return Msg.success().add("userList", list); } /** * 2.7 - * @ProjectName: checkToken - * @Description: 验证token是否有效 - * @Param 无 - * @Return Msg - * @Author: 曾文和 - * @CreateDate: 2019/9/24 10:00 - * @UpdateUser: 更新者 - * @UpdateDate: 2019/9/24 10:00 - * @UpdateRemark: 更新说明 - * @Version: 1.0 + * + * @ProjectName: checkToken + * @Description: 验证token是否有效 + * @Param 无 + * @Return Msg + * @Author: 曾文和 + * @CreateDate: 2019/9/24 10:00 + * @UpdateUser: 更新者 + * @UpdateDate: 2019/9/24 10:00 + * @UpdateRemark: 更新说明 + * @Version: 1.0 */ - @RequestMapping(value = "checkToken",method = RequestMethod.POST) + @RequestMapping(value = "checkToken", method = RequestMethod.POST) @ResponseBody - public Msg checkToken(String token) throws Exception{ - if(StringUtils.isNotBlank(token) && StringUtils.isNotBlank(token) ) { + public Msg checkToken(String token) throws Exception { + if (StringUtils.isNotBlank(token) && StringUtils.isNotBlank(token)) { token = MD5.JM(Base64.decode(token)); Cache cache = CacheManager.getCacheInfo(token); if (cache == null) { @@ -271,8 +574,8 @@ public class FontController { //更新过期时间 Power_UserVo user = (Power_UserVo) cache.getValue(); String date = String.valueOf(DateUtils.getDate()); - CacheManager.putCache(token,new Cache(date,user,TOKEN_EXPIRE_TIME)); - }else{ + CacheManager.putCache(token, new Cache(date, user, TOKEN_EXPIRE_TIME)); + } else { return Msg.fail("token不能为空"); } return Msg.success(); @@ -280,39 +583,40 @@ public class FontController { /** * 2.8 - * @ProjectName: getUserByToken - * @Description: 根据token获取用户 - * @Param 无 - * @Return getMenuListByToken - * @Author: 曾文和 - * @CreateDate: 2019/10/31 10:00 - * @UpdateUser: 更新者 - * @UpdateDate: 2019/10/31 10:00 - * @UpdateRemark: 更新说明 - * @Version: 1.0 + * + * @ProjectName: getUserByToken + * @Description: 根据token获取用户 + * @Param 无 + * @Return getMenuListByToken + * @Author: 曾文和 + * @CreateDate: 2019/10/31 10:00 + * @UpdateUser: 更新者 + * @UpdateDate: 2019/10/31 10:00 + * @UpdateRemark: 更新说明 + * @Version: 1.0 */ - @RequestMapping(value = "getUserByToken",method = RequestMethod.POST) + @RequestMapping(value = "getUserByToken", method = RequestMethod.POST) @ResponseBody - public Msg getMenuListByToken(String token,String sysFlag) throws Exception{ - if(StringUtils.isBlank(token)){ + public Msg getMenuListByToken(String token, String sysFlag) throws Exception { + if (StringUtils.isBlank(token)) { return Msg.fail("token不能为空!"); } - if(StringUtils.isBlank(sysFlag)){ + if (StringUtils.isBlank(sysFlag)) { return Msg.fail("sysFlag不能为空!"); } token = MD5.JM(Base64.decode(token)); Cache cacheInfo = CacheManager.getCacheInfo(token); Power_UserVo user = (Power_UserVo) cacheInfo.getValue(); - if(null != user){ + if (null != user) { List menuList = user.getMenuList(); List list = new ArrayList<>(); Set menus = new TreeSet<>(); - if(null != menuList && !menuList.isEmpty()){ + if (null != menuList && !menuList.isEmpty()) { for (int i = 0; i < menuList.size(); i++) { String menuSysFlag = menuList.get(i).getSysFlag(); - if(StringUtils.isNotBlank(menuSysFlag) && menuSysFlag.equals(sysFlag)){ + if (StringUtils.isNotBlank(menuSysFlag) && menuSysFlag.equals(sysFlag)) { list.add(menuList.get(i)); - if(StringUtils.isNotBlank(menuList.get(i).getMethod())){ + if (StringUtils.isNotBlank(menuList.get(i).getMethod())) { menus.add(menuList.get(i).getMenuUrl()); } } @@ -321,44 +625,45 @@ public class FontController { user.setMenuList(list); user.setMenus(menus); UserVo userVo = new UserVo(); - BeanUtils.copyProperties(user,userVo); + BeanUtils.copyProperties(user, userVo); //查询用户集合 List userList = new ArrayList<>(); Integer roleId = userVo.getRoleId(); - if(roleId == 0){ + if (roleId == 0) { userList = userMapper.selectUserIdAndUserNameList(null); - }else{ + } else { userList = userMapper.selectUserIdAndUserNameList(userVo.getUserId()); } //设置用户集合 userVo.setUserList(userList); CacheManager.addExcCount("noExc"); - return Msg.success().add("user",userVo); - }else{ + return Msg.success().add("user", userVo); + } else { return Msg.fail("token已失效"); } } /** * 2.9 - * @ProjectName: getMenuByToken - * @Description: 根据token获取菜单 - * @Param 无 - * @Return getMenuListByToken - * @Author: 曾文和 - * @CreateDate: 2019/10/31 10:00 - * @UpdateUser: 更新者 - * @UpdateDate: 2019/10/31 10:00 - * @UpdateRemark: 更新说明 - * @Version: 1.0 + * + * @ProjectName: getMenuByToken + * @Description: 根据token获取菜单 + * @Param 无 + * @Return getMenuListByToken + * @Author: 曾文和 + * @CreateDate: 2019/10/31 10:00 + * @UpdateUser: 更新者 + * @UpdateDate: 2019/10/31 10:00 + * @UpdateRemark: 更新说明 + * @Version: 1.0 */ - @RequestMapping(value = "getMenuByToken",method = RequestMethod.POST) + @RequestMapping(value = "getMenuByToken", method = RequestMethod.POST) @ResponseBody - public Msg getMenuByToken(String token,String sysFlag) throws Exception{ - if(StringUtils.isBlank(token)){ + public Msg getMenuByToken(String token, String sysFlag) throws Exception { + if (StringUtils.isBlank(token)) { return Msg.fail("token不能为空!"); } - if(StringUtils.isBlank(sysFlag)){ + if (StringUtils.isBlank(sysFlag)) { return Msg.fail("sysFlag不能为空!"); } token = MD5.JM(Base64.decode(token)); @@ -366,16 +671,16 @@ public class FontController { Power_UserVo user = (Power_UserVo) cacheInfo.getValue(); List menuList = user.getMenuList(); List list = new ArrayList<>(); - if(null != menuList && !menuList.isEmpty()){ + if (null != menuList && !menuList.isEmpty()) { for (int i = 0; i < menuList.size(); i++) { String menuSysFlag = menuList.get(i).getSysFlag(); - if(StringUtils.isNotBlank(menuSysFlag) && menuSysFlag.equals(sysFlag)){ + if (StringUtils.isNotBlank(menuSysFlag) && menuSysFlag.equals(sysFlag)) { list.add(menuList.get(i)); } } } CacheManager.addExcCount("noExc"); - return Msg.success().add("list",list); + return Msg.success().add("list", list); } @@ -391,16 +696,17 @@ public class FontController { /** * 2.10 - * @ProjectName: getToken - * @Description: 获取token - * @Param 无 - * @Return Msg - * @Author: 曾文和 - * @CreateDate: 2019/11/06 10:00 - * @UpdateUser: 更新者 - * @UpdateDate: 2019/11/06 10:00 - * @UpdateRemark: 更新说明 - * @Version: 1.0 + * + * @ProjectName: getToken + * @Description: 获取token + * @Param 无 + * @Return Msg + * @Author: 曾文和 + * @CreateDate: 2019/11/06 10:00 + * @UpdateUser: 更新者 + * @UpdateDate: 2019/11/06 10:00 + * @UpdateRemark: 更新说明 + * @Version: 1.0 */ // @RequestMapping(value = "getTokenForHis",method = RequestMethod.POST) // @ResponseBody @@ -439,16 +745,13 @@ public class FontController { // String token = setToken(userVo); // return Msg.success().add("token",token); // } - - - - @RequestMapping(value = "saveThirdUser",method = RequestMethod.POST) + @RequestMapping(value = "saveThirdUser", method = RequestMethod.POST) @ResponseBody - public Msg saveThirdUser(@RequestParam("userName") String userName,@RequestParam("passWord")String passWord) throws Exception{ - if(StringUtils.isBlank(userName)){ - return Msg.fail("用户名不能为空"); + public Msg saveThirdUser(@RequestParam("userName") String userName, @RequestParam("passWord") String passWord) throws Exception { + if (StringUtils.isBlank(userName)) { + return Msg.fail("用户名不能为空"); } - if(StringUtils.isBlank(passWord)){ + if (StringUtils.isBlank(passWord)) { return Msg.fail("密码不能为空"); } Power_UserVo userVo = new Power_UserVo(); @@ -458,16 +761,17 @@ public class FontController { userVo.setPassWord(passWord); userMapper.insertUserInfo(userVo); return Msg.fail("同步用户密码成功"); - }else { + } else { userVo.setUserName(userName); userVo.setPassWord(passWord); userMapper.updateinsertUserInfo(userVo); return Msg.fail("同步用户密码成功"); } } - @RequestMapping(value = "getThirdToken",method = RequestMethod.POST) + + @RequestMapping(value = "getThirdToken", method = RequestMethod.POST) @ResponseBody - public Msg getThirdToken(String userName,String passWord) throws Exception { + public Msg getThirdToken(String userName, String passWord) throws Exception { if (StringUtils.isBlank(userName)) { return Msg.fail("账号不能为空"); } @@ -479,21 +783,21 @@ public class FontController { if (!CollectionUtils.isEmpty(userInfo)) { String date = String.valueOf(DateUtils.getDate()); String token = Base64.encode(MD5.KL(date)); - ActionScopeUtils.setSessionAttribute("token",token,Integer.valueOf(String.valueOf(TOKEN_EXPIRE_TIME))/1000); + ActionScopeUtils.setSessionAttribute("token", token, Integer.valueOf(String.valueOf(TOKEN_EXPIRE_TIME)) / 1000); //设置用户登录次数缓存 SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd"); - CacheManager.addloginUserCount(fmt.format(new Date()),userName); + CacheManager.addloginUserCount(fmt.format(new Date()), userName); CacheManager.addExcCount("noExc"); List list = null; List menuList = new ArrayList<>(); Set menus = new LinkedHashSet<>(); userVo.setRoleId(0); if (userVo.getRoleId().equals(0) || userVo.getRoleId().equals(-100)) { - list = powerMenuService.queryAllPowerMenu(null,userVo.getRoleId()); + list = powerMenuService.queryAllPowerMenu(null, userVo.getRoleId()); } else { - list = powerMenuService.selectUserAndRoleMenuListPower(userVo.getUserId(),null); + list = powerMenuService.selectUserAndRoleMenuListPower(userVo.getUserId(), null); } - if(null != list && !list.isEmpty()){ + if (null != list && !list.isEmpty()) { for (Power_Menu powerMenu : list) { User_Dept_Menu deptMenu = new User_Dept_Menu(); String menuUrl = powerMenu.getMenuUrl(); @@ -512,98 +816,14 @@ public class FontController { userVo.setRemark("HIS科室"); //设置进缓存 - CacheManager.putCache(date,new Cache(date,userVo,TOKEN_EXPIRE_TIME)); - ActionScopeUtils.setSessionAttribute("CURRENT_USER",userVo,Integer.valueOf(String.valueOf(TOKEN_EXPIRE_TIME))/1000); -// UserVo userVo1 =new UserVo(); -//// userVo1.setUserName("admin"); -//// userVo1.setPassWord("123456"); -//// CloseableHttpClient httpClient = HttpClientBuilder.create().build(); -//// // 创建Post请求 -//// HttpPost httpPost = new HttpPost(EMRRECORD_URLHEAD+"/login"); -//// String jsonString = JSON.toJSONString(userVo1); -//// 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; -//// try { -//// // 由客户端执行(发送)Post请求 -//// response = httpClient.execute(httpPost); -//// // 从响应模型中获取响应实体 -//// responseEntity = response.getEntity(); -//// System.out.println("responseEntity::::"+responseEntity); -//// System.out.println("响应状态为:" + response.getStatusLine()); -//// } 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(); -//// } -//// } -//// String date = String.valueOf(DateUtils.getDate()); -//// String token = Base64.encode(MD5.KL(date)); -//// ActionScopeUtils.setSessionAttribute("token", token, Integer.valueOf(String.valueOf(TOKEN_EXPIRE_TIME)) / 1000); -//// SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd"); -//// CacheManager.addloginUserCount(fmt.format(new Date()), userVo.getUserName()); -//// CacheManager.addExcCount("noExc"); -//// List list = null; -//// List menuList = new ArrayList<>(); -//// Set menus = new LinkedHashSet<>(); -//// userVo.setRoleId(0); -//// if (userVo.getRoleId().equals(0) || userVo.getRoleId().equals(-100)) { -//// list = powerMenuService.queryAllPowerMenu(null, userVo.getRoleId()); -//// } else { -//// list = powerMenuService.selectUserAndRoleMenuListPower(userVo.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()); -//// } -//// } -//// } -//// userVo.setMenuList(menuList); -//// userVo.setMenus(menus); -//// -//// //设置科室 -////// StringBuilder powerDepts = new StringBuilder(); -////// List powerDeptList = power_deptService.selectByPrimaryKeys(user.getDeptId()); -////// for(int j=0;j 0) { @@ -630,7 +850,7 @@ public class FontController { map.put(element.getName().trim(), element.getTextTrim()); } } else { - map.put(element.getName().trim(), path+ element.getName().trim() + "."); + map.put(element.getName().trim(), path + element.getName().trim() + "."); parseXml2Map(element.asXML(), map); } } @@ -643,13 +863,14 @@ public class FontController { /** * 解析result中xml中的name节点值 + * * @param result * @param name * @return */ private String analysis(String result, String name) { String nameValue = ""; - Map map = new HashMap<>(); + Map map = new HashMap<>(); Map valueMap = parseXml2Map(result, map); nameValue = valueMap.get("Name"); return nameValue; @@ -717,7 +938,8 @@ public class FontController { return document.asXML(); } -// private String setToken1(Power_UserVo userVo){ + + // private String setToken1(Power_UserVo userVo){ // String date = String.valueOf(DateUtils.getDate()); // String token = Base64.encode(MD5.KL(date)); // List list = null; @@ -751,18 +973,18 @@ public class FontController { // CacheManager.putCache(date,new Cache(date,userVo,TOKEN_EXPIRE_TIME)); // return token; // } - private String setToken(Power_UserVo userVo){ + private String setToken(Power_UserVo userVo) { String date = String.valueOf(DateUtils.getDate()); String token = Base64.encode(MD5.KL(date)); List list = null; List menuList = new ArrayList<>(); Set menus = new TreeSet<>(); if (userVo.getRoleId().equals(0) || userVo.getRoleId().equals(-100)) { - list = powerMenuService.queryAllPowerMenu(null,userVo.getRoleId()); + list = powerMenuService.queryAllPowerMenu(null, userVo.getRoleId()); } else { - list = powerMenuService.selectUserAndRoleMenuListPower(userVo.getUserId(),null); + list = powerMenuService.selectUserAndRoleMenuListPower(userVo.getUserId(), null); } - if(null != list && !list.isEmpty()){ + if (null != list && !list.isEmpty()) { for (Power_Menu powerMenu : list) { User_Dept_Menu deptMenu = new User_Dept_Menu(); String menuUrl = powerMenu.getMenuUrl(); @@ -782,47 +1004,48 @@ public class FontController { //设置科室 StringBuilder powerDepts = new StringBuilder(); List powerDeptList = power_deptService.selectByPrimaryKeys(userVo.getDeptId()); - for(int j = 0;j < powerDeptList.size();j++){ - if(j menuList = new ArrayList<>(); Set menus = new TreeSet<>(); if (userVo.getRoleId().equals(0) || userVo.getRoleId().equals(-100)) { - list = powerMenuService.queryAllPowerMenu(null,userVo.getRoleId()); + list = powerMenuService.queryAllPowerMenu(null, userVo.getRoleId()); } else { - list = powerMenuService.selectUserAndRoleMenuListPower(userVo.getUserId(),null); + list = powerMenuService.selectUserAndRoleMenuListPower(userVo.getUserId(), null); } - if(null != list && !list.isEmpty()){ + if (null != list && !list.isEmpty()) { for (Power_Menu powerMenu : list) { User_Dept_Menu deptMenu = new User_Dept_Menu(); String menuUrl = powerMenu.getMenuUrl(); @@ -856,49 +1079,50 @@ public class FontController { //设置科室 StringBuilder powerDepts = new StringBuilder(); List powerDeptList = power_deptService.selectByPrimaryKeys(userVo.getDeptId()); - for(int j = 0;j < powerDeptList.size();j++){ - if(j powerUsers = userService.checkUserName(userName); - if(CollectionUtils.isEmpty(powerUsers)){ + if (CollectionUtils.isEmpty(powerUsers)) { return Msg.fail("用户名不正确"); } String date = String.valueOf(DateUtils.getDate()); String token = Base64.encode(MD5.KL(date)); Power_UserVo userVo = new Power_UserVo(); - BeanUtils.copyProperties(powerUsers.get(0),userVo); + BeanUtils.copyProperties(powerUsers.get(0), userVo); List list = null; List menuList = new ArrayList<>(); Set menus = new TreeSet<>(); if (userVo.getRoleId().equals(0) || userVo.getRoleId().equals(-100)) { - list = powerMenuService.queryAllPowerMenu(null,userVo.getRoleId()); + list = powerMenuService.queryAllPowerMenu(null, userVo.getRoleId()); } else { - list = powerMenuService.selectUserAndRoleMenuListPower(userVo.getUserId(),null); + list = powerMenuService.selectUserAndRoleMenuListPower(userVo.getUserId(), null); } - if(null != list && !list.isEmpty()){ + if (null != list && !list.isEmpty()) { for (Power_Menu powerMenu : list) { User_Dept_Menu deptMenu = new User_Dept_Menu(); String menuUrl = powerMenu.getMenuUrl(); @@ -917,7 +1141,7 @@ public class FontController { //设置科室 StringBuilder powerDepts = new StringBuilder(); - if(StringUtils.isNotBlank(userVo.getDeptId())) { + if (StringUtils.isNotBlank(userVo.getDeptId())) { List powerDeptList = power_deptService.selectByPrimaryKeys(userVo.getDeptId()); for (int j = 0; j < powerDeptList.size(); j++) { if (j < powerDeptList.size() - 1) { @@ -930,12 +1154,13 @@ public class FontController { } //移除缓存 CacheManager.removeCacheByObject(userVo); - CacheManager.putCache(date,new Cache(date,userVo,TOKEN_EXPIRE_TIME)); - return Msg.success().add("token",token); + CacheManager.putCache(date, new Cache(date, userVo, TOKEN_EXPIRE_TIME)); + return Msg.success().add("token", token); } /** * 2.11 + * * @MethodName getUnReadCount * @Description: 根据用户获取未读通知数量 * @Param 无 @@ -949,17 +1174,17 @@ public class FontController { */ @RequestMapping("notice/getUnReadCount") @ResponseBody - public Msg getUnReadCount(Integer userId) throws Exception{ - if(null == userId){ + public Msg getUnReadCount(Integer userId) throws Exception { + if (null == userId) { return Msg.fail("用户id不能为空"); } Power_UserVo userVo = userMapper.selectByPrimaryKey(userId); - if(null == userVo){ + if (null == userVo) { return Msg.fail("用户id不存在"); } int unReadCount = noticeService.getUnReadCount(userId); CacheManager.addExcCount("noExc"); - return Msg.success().add("unReadCount",unReadCount); + return Msg.success().add("unReadCount", unReadCount); } /** @@ -976,16 +1201,16 @@ public class FontController { */ @RequestMapping("checkUserName") @ResponseBody - public Msg checkUserName(String userName) throws Exception{ - if(StringUtils.isBlank(userName)){ + public Msg checkUserName(String userName) throws Exception { + if (StringUtils.isBlank(userName)) { return Msg.fail("工号不能为空!"); } //查询用户 List user = userMapper.checkUserName(userName); - if(null == user || user.isEmpty()){ + if (null == user || user.isEmpty()) { return Msg.fail("该工号不存在!"); } - return Msg.success().add("user",user); + return Msg.success().add("user", user); } /** @@ -1003,21 +1228,200 @@ public class FontController { */ @RequestMapping("sendEmrRecordApproveNotice") @ResponseBody - public void sendEmrRecordApproveNotice(String applyType,Integer count){ + public void sendEmrRecordApproveNotice(String applyType, Integer count) { try { String title = "待审批通知"; - String content = "您有"+count+"份"+applyType+"待审批!"; + String content = "您有" + count + "份" + applyType + "待审批!"; //查询有借阅审批权限的id集合 String menuUrl = "/approve/updateApprove"; List users = userMapper.selectUserIdsWithApprove(menuUrl); - for(Power_User user : users){ - if(null != user) { + for (Power_User user : users) { + if (null != user) { WsPool.sendMessageToAll("emr_record_" + user.getUserId(), title + STR_SPLIT + content + STR_SPLIT + "emr_record"); } } + } catch (Exception e) { + ExceptionPrintUtil.printException(e); + e.printStackTrace(); + } + } + /** + * @description: 厦门中山医院获取二维码 + * @author linjj + * @date: 2023/5/24 11:08 + */ + @RequestMapping("getBase64") + @ResponseBody + public GetQRCodeBySysResponse getBase64() { + GetQRCodeBySysRequest request = new GetQRCodeBySysRequest(); + request.setSys("JSScan"); + GetQRCodeBySysResponse response = xmzsyyqrCodeAPIService.getQRCodeBySys(request, xmzzyySoapAPISettings()); + return response; + } + + /** + * @description: 厦门中山医院获取二维码接口连接 + * @author linjj + * @date: 2023/5/24 14:07 + */ + private SoapAPISettings xmzzyySoapAPISettings() { + SoapAPISettings soapAPISettings = new SoapAPISettings(); + soapAPISettings.setAction(operationName); + soapAPISettings.setUri(wsdlUrl); + return soapAPISettings; + } + /** + * @description: 厦门中山医院监听用户扫码状态 + * @author linjj + * @date: 2023/5/24 13:43 + */ + @RequestMapping("getQueryQRCode") + @ResponseBody + public GetQueryQRCodeResponse getQueryQRCode(String qrCode){ + GetQueryQRCodeRequest request = new GetQueryQRCodeRequest(); + request.setQrCode(qrCode); + GetQueryQRCodeResponse queryQRCode = xmzsyyqrCodeAPIService.getQueryQRCode(request, queryQRCodeUrlAndName()); + return queryQRCode; + } + /** + * @description: 厦门中山医院获取用户扫码状态接口连接 + * @author linjj + * @date: 2023/5/24 14:07 + */ + private SoapAPISettings queryQRCodeUrlAndName() { + SoapAPISettings soapAPISettings = new SoapAPISettings(); + soapAPISettings.setAction(queryQRCodeUrlName); + soapAPISettings.setUri(queryQRCodeUrl); + return soapAPISettings; + } + + + /** + * @description: 厦门中山医院扫码登录认证接口 + * @params: idCard + * @author linjj + * @date: 2023/5/24 15:45 + */ + @RequestMapping(value = "XMZSYYlogin",method = RequestMethod.POST) + public String XMZSYYlogin(Power_User powerUser, HttpServletResponse response, HttpServletRequest request, Model model){ + try { + Power_UserVo user = powerUserService.findPowerUserByIdCard(powerUser); + if (user != null) { + loginByPowerUser(user); + }else { + //在账号不存在时同步用户信息 + powerUserService.insertUserName(powerUser); + //新增用户重新登录 + Power_UserVo userNew = powerUserService.findPowerUserByIdCard(powerUser); + loginByPowerUser(userNew); + } }catch (Exception e){ ExceptionPrintUtil.printException(e); e.printStackTrace(); + CacheManager.addExcCount("exc"); } + return "loginDir/login"; + } + + + + @RequestMapping(value = "zsxmHospitalLogin",method = RequestMethod.POST) + public String zsxmHospitalLogin(Power_User powerUser) { + GetLoginInfoRequest getLoginInfoRequest = new GetLoginInfoRequest(); + getLoginInfoRequest.setSys("JSScan"); + getLoginInfoRequest.setAccountType("EmployeeNumber"); + getLoginInfoRequest.setAccount(powerUser.getUserName()); + getLoginInfoRequest.setPassword(powerUser.getUserPwd()); + GetLoginInfoResponse loginInfo = xmzsyyqrCodeAPIService.getLoginInfo(getLoginInfoRequest, getLoginUserInfo()); + if (StringUtils.isNotBlank(loginInfo.getData()) && loginInfo.getData().equals("0")) { + try { + Power_UserVo user = powerUserService.findPowerUserByIdCard(powerUser); + if (user != null) { + loginByPowerUser(user); + }else { + //在账号不存在时同步用户信息 + powerUserService.insertUserName(powerUser); + //新增用户重新登录 + Power_UserVo userNew = powerUserService.findPowerUserByIdCard(powerUser); + loginByPowerUser(userNew); + } + } catch (Exception e) { + ExceptionPrintUtil.printException(e); + e.printStackTrace(); + CacheManager.addExcCount("exc"); + } + } + return "loginDir/login"; + } + + private String loginByPowerUser(Power_UserVo user){ + //设置token缓存 + String date = String.valueOf(DateUtils.getDate()); + String token = Base64.encode(MD5.KL(date)); + ActionScopeUtils.setSessionAttribute("token", token, Integer.valueOf(String.valueOf(TOKEN_EXPIRE_TIME)) / 1000); + + //设置用户登录次数缓存 + SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd"); + 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 powerDeptList = power_deptService.selectByPrimaryKeys(user.getDeptId()); + for (int j = 0; j < powerDeptList.size(); j++) { + if (j < powerDeptList.size() - 1) { + powerDepts.append(powerDeptList.get(j).getDeptName()).append(","); + } else { + powerDepts.append(powerDeptList.get(j).getDeptName()); + } + } + user.setRemark(powerDepts.toString()); + //设置进缓存 + CacheManager.putCache(date, new Cache(date, user, TOKEN_EXPIRE_TIME)); + ActionScopeUtils.setSessionAttribute("CURRENT_USER", user, Integer.valueOf(String.valueOf(TOKEN_EXPIRE_TIME)) / 1000); + //添加进操作日志 + Power_Log log = new Power_Log(); + log.setCreater(user.getUserName()); + log.setLogTitle("登录"); + log.setLogContent("登录成功"); + log.setRemark("通过扫码登录进入"); + logService.insert(log); + return "redirect:gatewayPage"; + } + + /** + * @description: 厦门中山医院获取用户扫码状态接口连接 + * @author linjj + * @date: 2023/5/24 14:07 + */ + private SoapAPISettings getLoginUserInfo() { + SoapAPISettings soapAPISettings = new SoapAPISettings(); + soapAPISettings.setAction(getLoginUserInfoName); + soapAPISettings.setUri(getLoginUserInfoUrl); + return soapAPISettings; } } \ No newline at end of file diff --git a/power-admin/src/main/java/com/manage/controller/LoginController.java b/power-admin/src/main/java/com/manage/controller/LoginController.java index ab0ca51..d8a52d9 100644 --- a/power-admin/src/main/java/com/manage/controller/LoginController.java +++ b/power-admin/src/main/java/com/manage/controller/LoginController.java @@ -2,6 +2,7 @@ package com.manage.controller; import com.alibaba.fastjson.JSON; import com.manage.dao.Power_Login_SetMapper; +import com.manage.dao.Power_Hospital_FlagMapper; import com.manage.encrypt.Base64; import com.manage.encrypt.MD5; import com.manage.entity.*; @@ -39,12 +40,18 @@ public class LoginController { private Power_DeptService power_deptService; @Autowired private Power_Login_SetMapper powerLoginSetMapper; + @Autowired + private Power_Hospital_FlagMapper powerHospitalFlagMapper; @RequestMapping(value = "login",method = RequestMethod.GET) public String toLogin(Model model){ Power_Login_Set loginSet = powerLoginSetMapper.selectByPrimaryKey(1); model.addAttribute("loginSet",loginSet); CacheManager.addExcCount("noExc"); + List hospitalFlag = powerHospitalFlagMapper.getHospitalFlag(); + if (hospitalFlag.size()!=0){ + return "loginDir/xmzslogin"; + } return "loginDir/login"; } @@ -68,15 +75,6 @@ public class LoginController { //设置token缓存 String date = String.valueOf(DateUtils.getDate()); String token = Base64.encode(MD5.KL(date)); - - - //查询归属医院 - /* 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());*/ - //科室id科室名 ActionScopeUtils.setSessionAttribute("token",token,Integer.valueOf(String.valueOf(TOKEN_EXPIRE_TIME))/1000); //设置用户登录次数缓存 diff --git a/power-admin/src/main/java/com/manage/controller/UserController.java b/power-admin/src/main/java/com/manage/controller/UserController.java index 691cf76..71cd5c0 100644 --- a/power-admin/src/main/java/com/manage/controller/UserController.java +++ b/power-admin/src/main/java/com/manage/controller/UserController.java @@ -2,6 +2,7 @@ package com.manage.controller; import com.manage.annotation.OptionalLog; import com.manage.annotation.RequiresPermissions; +import com.manage.dao.Power_Hospital_FlagMapper; import com.manage.dao.Power_User_DictMapper; import com.manage.encrypt.Base64; import com.manage.encrypt.MD5; @@ -49,6 +50,8 @@ public class UserController { private Power_DeptService deptService; @Autowired private Power_User_DictMapper userDictMapper; + @Autowired + private Power_Hospital_FlagMapper powerHospitalFlagMapper; @ResponseBody @RequestMapping("/pageList") public PageHelper list(Power_UserVo powerUser, HttpServletRequest request){ @@ -219,6 +222,10 @@ public class UserController { CacheManager.addExcCount("exc"); e.printStackTrace(); } + List hospitalFlag = powerHospitalFlagMapper.getHospitalFlag(); + if (hospitalFlag.size()!=0){ + return "userDir/XMZSYYupdatePassword"; + } return "/userDir/updatePassword"; } diff --git a/power-admin/src/main/resources/config/config.properties b/power-admin/src/main/resources/config/config.properties index 4d32999..f2b7e59 100644 --- a/power-admin/src/main/resources/config/config.properties +++ b/power-admin/src/main/resources/config/config.properties @@ -1,7 +1,7 @@ # 拦截菜单配置文件 ljx 2019-4-27 #interceptRequest 未登录之前放行。默认为none #ajaxRequest ajax请求没有对应模块,需要放行。 默认为none -releaseRequest = /login,/logout,/services,/font,/refuse,/swagger-ui.html,/webjars,/swagger-resources,/v2 +releaseRequest = /login,/logout,/services,/font,/refuse,/swagger-ui.html,/webjars,/swagger-resources,/v2,/qualityModel ajaxRequest = none #session过期时间 @@ -9,7 +9,7 @@ TOKEN_EXPIRE_TIME = 3600000 ##################################################服务器ip########################################################## #通用服务器IP与通用服务器端口 -SERVER_IP = 192.168.1.3 +SERVER_IP = localhost SERVER_PORT = 8081 #power权限系统ip @@ -68,4 +68,16 @@ log.days = 90 #定义是否为长期登录用户次数 login.times = 3 -synchronizationSwitch = 1 \ No newline at end of file +synchronizationSwitch = 1 +#厦门中山医院获取二维码接口地址 +wsdlUrl = http://101.132.67.155:8087/PKIQRCode/services/v1?wsdl +#厦门中山医院获取二维码接口名称标识 +operationName = SOF_GetQRCodeBySys +#厦门中山医院获取用户扫码状态接口地址 +queryQRCodeUrl= http://101.132.67.155:8087/PKIQRCode/services/v1?wsdl +#厦门中山医院获取用户扫码状态接口标识 +queryQRCodeUrlName= SOF_QueryQRCode +#厦门中山医院获取用户扫码状态接口标识 +getLoginUserInfoName=SOF_LoginWithAccountInfo +#厦门中山医院获取用户扫码状态接口地址 +getLoginUserInfoUrl=http://101.132.67.155:8087/pkis/services/v1?wsdl diff --git a/power-admin/src/main/resources/config/jdbc.properties b/power-admin/src/main/resources/config/jdbc.properties index a51355d..0b8e380 100644 --- a/power-admin/src/main/resources/config/jdbc.properties +++ b/power-admin/src/main/resources/config/jdbc.properties @@ -1,26 +1,25 @@ jdbc.driver=com.mysql.jdbc.Driver -jdbc.url=jdbc\:mysql\://192.168.1.3\:3306/qfpower?useUnicode\=true&characterEncoding\=utf-8 +jdbc.url=jdbc\:mysql\://localhost\:3306/qf_power?useUnicode\=true&characterEncoding\=utf-8 jdbc.username=root -jdbc.password=docus702 +jdbc.password=root #hibernate config hibernate.dialect = org.hibernate.dialect.MySQLDialect hibernate.show_sql = true hibernate.format_sql = true hibernate.hbm2ddl.auto =update -#hibernate.current_session_context_class=org.springframework.orm.hibernate5.SpringSessionContext +#hibernate.current_session_context_class=org.springframework.orm.hibernate5.SpringSessionContext hibernate.current_session_context_class=thread - + hibernate.jdbc.batch_size=50 hibernate.enable_lazy_load_no_trans=true -#ִ:Ҽ Run As ---->Maven build ---->Goals:mybatis-generator:generate -#Ŀ¼ + targetProject=src/main/java -#modelPackage,sqlMapperPackage,daoMapperPackage ͨһ?? +#modelPackage,sqlMapperPackage,daoMapperPackage ͨ��һ��?? modelPackage=com.manage.entity daoMapperPackage=com.manage.dao -#Ŀ¼ + targetProject2=src/main/resources sqlMapperPackage=mapper diff --git a/power-admin/src/main/webapp/WEB-INF/jspf/webSocket.jspf b/power-admin/src/main/webapp/WEB-INF/jspf/webSocket.jspf index 122fc1f..e49b611 100644 --- a/power-admin/src/main/webapp/WEB-INF/jspf/webSocket.jspf +++ b/power-admin/src/main/webapp/WEB-INF/jspf/webSocket.jspf @@ -71,17 +71,16 @@ } function narn (type,title,text,noticeId) { - debugger naranja()[type]({ title: title, text: text, timeout: 1000*60, - buttons: [{ - text: '查看详情', - click: function (e) { - noticeManage1(noticeId); - } - }] + buttons: [{ + text: '查看详情', + click: function (e) { + noticeManage1(noticeId); + } + }] }) } diff --git a/power-admin/src/main/webapp/WEB-INF/views/gatewayDir/gatewayIndex.jsp b/power-admin/src/main/webapp/WEB-INF/views/gatewayDir/gatewayIndex.jsp index 34a6974..0784387 100644 --- a/power-admin/src/main/webapp/WEB-INF/views/gatewayDir/gatewayIndex.jsp +++ b/power-admin/src/main/webapp/WEB-INF/views/gatewayDir/gatewayIndex.jsp @@ -13,143 +13,86 @@ var path = "${path}"; -<%--hhhhhhhhhhhhhhhh--%> @@ -157,401 +100,231 @@
-
-
Copyright © 2019-2090 厦门嘉时软件. All rights reserved.
- + <%@ include file="/WEB-INF/jspf/webSocket.jspf" %> <%----%> diff --git a/power-admin/src/main/webapp/WEB-INF/views/loginDir/index.jsp b/power-admin/src/main/webapp/WEB-INF/views/loginDir/index.jsp index b85a035..cabb0da 100644 --- a/power-admin/src/main/webapp/WEB-INF/views/loginDir/index.jsp +++ b/power-admin/src/main/webapp/WEB-INF/views/loginDir/index.jsp @@ -30,6 +30,9 @@ .row-fluid{ overflow-y: hidden; } + .g{ + background-color: #f6f6f6; + } @@ -71,7 +74,6 @@ - @@ -82,7 +84,6 @@ - @@ -112,7 +113,7 @@ -