diff --git a/power-admin/src/main/java/com/manage/controller/methodForEmrMedical.java b/power-admin/src/main/java/com/manage/controller/methodForEmrMedical.java
index 0dbedc9..970b095 100644
--- a/power-admin/src/main/java/com/manage/controller/methodForEmrMedical.java
+++ b/power-admin/src/main/java/com/manage/controller/methodForEmrMedical.java
@@ -5,7 +5,6 @@ import com.manage.encrypt.Base64;
import com.manage.encrypt.MD5;
import com.manage.entity.Power_Dept;
import com.manage.entity.Power_Menu;
-import com.manage.entity.Power_User;
import com.manage.service.Power_DeptService;
import com.manage.service.Power_MenuService;
import com.manage.service.Power_UserService;
@@ -59,38 +58,42 @@ public class methodForEmrMedical {
@Value("${EMRMEDICALRECORD_PORT}")
private String port;
+ @Value("8081")
+ private String port2;
+
@Value("${TOKEN_EXPIRE_TIME}")
private long TOKEN_EXPIRE_TIME;
-
/**
* 2.1
- * @ProjectName: getUserByUserName
- * @Description: 获取用户
- * @Param 无
- * @Return getMenusByUserIdAndSysFlag
- * @Author: xuhx
- * @CreateDate: 20121/7/2 10:00
- * @UpdateUser: 更新者
+ *
+ * @ProjectName: getUserByUserName
+ * @Description: 获取用户
+ * @Param 无
+ * @Return getMenusByUserIdAndSysFlag
+ * @Author: xuhx
+ * @CreateDate: 20121/7/2 10:00
+ * @UpdateUser: 更新者
* @UpdateDate:
*/
- @RequestMapping(value = "getUserByUserName",method = RequestMethod.GET)
+ @RequestMapping(value = "getUserByUserName", method = RequestMethod.GET)
@ResponseBody
- public Msg getUser(String userName){
+ public Msg getUser(String userName) {
Power_UserVo user = powerUserService.selectByUserName(userName);
- if(user!=null){
- return Msg.success().add("user",user);
- }else{
+ if (user != null) {
+ return Msg.success().add("user", user);
+ } else {
return Msg.fail("没有此用户信息!!");
}
}
+
/*
* 单点登录
* author xuhx
* */
- @RequestMapping(value = "login",method = RequestMethod.GET,produces = "text/html;charset=utf-8")
+ @RequestMapping(value = "login", method = RequestMethod.GET, produces = "text/html;charset=utf-8")
@ResponseBody
public String login(String sessionID, HttpServletRequest request, HttpServletResponse response) throws Exception {
String result = "";
@@ -111,8 +114,87 @@ public class methodForEmrMedical {
int start = returnMessage.indexOf("") + 17;
int end = returnMessage.indexOf("");
//传进来的id已失效,无法获取用户信息
- if(start!=16&&end!=-1){
- String userName = returnMessage.substring(start, end);
+ if (start != 16 && end != -1) {
+ String userName = returnMessage.substring(start, end);
+ //根据登录名获取用户(需要确保用户登录名唯一)
+ Power_UserVo user = powerUserService.selectByUserName(userName);
+ if (user != null) {
+ String password = MD5.JM(Base64.decode(user.getUserPwd()));
+ if (password != null && !"".equals(password)) {
+ String date = String.valueOf(DateUtils.getDate());
+ //加密(此部分代码来自FontController的getToken方法,用来获取token及相关操作)
+ String token = Base64.encode(MD5.KL(date));
+ List list = null;
+ List menuList = new ArrayList<>();
+ Set menus = new TreeSet<>();
+ 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 power_menu : list) {
+ User_Dept_Menu deptMenu = new User_Dept_Menu();
+ String menuUrl = power_menu.getMenuUrl();
+ if (StringUtils.isNotBlank(menuUrl)) {
+ BeanUtils.copyProperties(power_menu, deptMenu);
+ deptMenu.setMethodParent(power_menu.getParentId());
+ menuList.add(deptMenu);
+ }
+ if (StringUtils.isNotBlank(power_menu.getMethod())) {
+ menus.add(power_menu.getMenuUrl());
+ }
+ }
+ }
+ user.setMenuList(menuList);
+ user.setMenus(menus);
+
+ //设置科室
+ StringBuilder power_depts = new StringBuilder();
+ List power_depts1 = power_deptService.selectByPrimaryKeys(user.getDeptId());
+ for (int j = 0; j < power_depts1.size(); j++) {
+ if (j < power_depts1.size() - 1) {
+ power_depts.append(power_depts1.get(j).getDeptName()).append(",");
+ } else {
+ power_depts.append(power_depts1.get(j).getDeptName());
+ }
+ }
+ user.setRemark(power_depts.toString());
+ //移除缓存
+ CacheManager.removeCacheByObject(user);
+ CacheManager.putCache(date, new Cache(date, user, TOKEN_EXPIRE_TIME));
+ if (!"".equals(token) && token != null) {
+ //返回跳转url
+ result = "http://" + ip + ":" + port + "/emr_medical_record/login?token=" + token + "&userName=" + userName;
+ response.sendRedirect(result);
+ } else {
+ result = "获取登录token失败,请检查数据!!";
+ }
+ } else {
+ result = "无法获取用户密码!!";
+ }
+ } else {
+ result = "登录用户不存在!!";
+ }
+ } else {
+ result = "sessionID已失效,请重新登录";
+ }
+
+ }
+ return result;
+ }
+
+
+ /*
+ * 单点登录,跳转病案归档系统
+ * author xm
+ * 需要传入userName,即工号
+ * */
+ @RequestMapping(value = "loginToEmrMedicalRecord", method = RequestMethod.GET, produces = "text/html;charset=utf-8")
+ @ResponseBody
+ public String loginToEmrMedicalRecord(String userName, HttpServletRequest request, HttpServletResponse response) throws Exception {
+ String result = "";
+ if (userName != null && !"".equals(userName)) {
//根据登录名获取用户(需要确保用户登录名唯一)
Power_UserVo user = powerUserService.selectByUserName(userName);
if (user != null) {
@@ -125,11 +207,11 @@ public class methodForEmrMedical {
List menuList = new ArrayList<>();
Set menus = new TreeSet<>();
if (user.getRoleId().equals(0) || user.getRoleId().equals(-100)) {
- list = powerMenuService.queryAllPowerMenu(null,user.getRoleId());
+ list = powerMenuService.queryAllPowerMenu(null, user.getRoleId());
} else {
- list = powerMenuService.selectUserAndRoleMenuListPower(user.getUserId(),null);
+ list = powerMenuService.selectUserAndRoleMenuListPower(user.getUserId(), null);
}
- if(null != list && !list.isEmpty()){
+ if (null != list && !list.isEmpty()) {
for (Power_Menu power_menu : list) {
User_Dept_Menu deptMenu = new User_Dept_Menu();
String menuUrl = power_menu.getMenuUrl();
@@ -145,24 +227,23 @@ public class methodForEmrMedical {
}
user.setMenuList(menuList);
user.setMenus(menus);
-
//设置科室
StringBuilder power_depts = new StringBuilder();
List power_depts1 = power_deptService.selectByPrimaryKeys(user.getDeptId());
- for(int j=0;j list = null;
+ List menuList = new ArrayList<>();
+ Set menus = new TreeSet<>();
+ 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 power_menu : list) {
+ User_Dept_Menu deptMenu = new User_Dept_Menu();
+ String menuUrl = power_menu.getMenuUrl();
+ if (StringUtils.isNotBlank(menuUrl)) {
+ BeanUtils.copyProperties(power_menu, deptMenu);
+ deptMenu.setMethodParent(power_menu.getParentId());
+ menuList.add(deptMenu);
+ }
+ if (StringUtils.isNotBlank(power_menu.getMethod())) {
+ menus.add(power_menu.getMenuUrl());
+ }
+ }
+ }
+ user.setMenuList(menuList);
+ user.setMenus(menus);
+ //设置科室
+ StringBuilder power_depts = new StringBuilder();
+ List power_depts1 = power_deptService.selectByPrimaryKeys(user.getDeptId());
+ for (int j = 0; j < power_depts1.size(); j++) {
+ if (j < power_depts1.size() - 1) {
+ power_depts.append(power_depts1.get(j).getDeptName()).append(",");
+ } else {
+ power_depts.append(power_depts1.get(j).getDeptName());
+ }
+ }
+ user.setRemark(power_depts.toString());
+ //移除缓存
+ CacheManager.removeCacheByObject(user);
+ CacheManager.putCache(date, new Cache(date, user, TOKEN_EXPIRE_TIME));
+ if (!"".equals(token) && token != null) {
+ //返回跳转url
+ result = "http://" + ip + ":" + port2 + "/emr_record/login?token=" + token + "&userName=" + userName;
+ response.sendRedirect(result);
+ } else {
+ result = "获取登录token失败,请检查数据!!";
+ }
+ } else {
+ result = "无法获取用户密码!!";
+ }
+ } else {
+ result = "登录用户不存在!!";
+ }
+ } else {
+ result = "请传入工号!!";
}
return result;
}
-}
+}
\ No newline at end of file