diff --git a/power-admin/src/main/java/com/manage/controller/methodForEmrMedical.java b/power-admin/src/main/java/com/manage/controller/methodForEmrMedical.java new file mode 100644 index 0000000..0dbedc9 --- /dev/null +++ b/power-admin/src/main/java/com/manage/controller/methodForEmrMedical.java @@ -0,0 +1,183 @@ +package com.manage.controller; + + +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; +import com.manage.service.cache.Cache; +import com.manage.service.cache.CacheManager; +import com.manage.util.DateUtils; +import com.manage.util.Msg; +import com.manage.vo.Power_UserVo; +import com.manage.vo.User_Dept_Menu; +import org.apache.commons.lang3.StringUtils; +import org.apache.cxf.endpoint.Client; +import org.apache.cxf.jaxws.endpoint.dynamic.JaxWsDynamicClientFactory; +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.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.util.ArrayList; +import java.util.List; +import java.util.Set; +import java.util.TreeSet; + +/** + * Author xuhx + * Date 2021/7/1 + * Time 16:39 + * Description 供无纸化归档使用的接口 + * Description 建党100周年纪念日 + */ +@Controller +@RequestMapping("methodForEmrMedical/") +public class methodForEmrMedical { + + @Autowired + Power_UserService powerUserService; + + @Autowired + private Power_MenuService powerMenuService; + + @Autowired + private Power_DeptService power_deptService; + + @Value("${EMRMEDICALRECORD_IP}") + private String ip; + + @Value("${EMRMEDICALRECORD_PORT}") + private String port; + + @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: 更新者 + * @UpdateDate: + */ + @RequestMapping(value = "getUserByUserName",method = RequestMethod.GET) + @ResponseBody + public Msg getUser(String userName){ + Power_UserVo user = powerUserService.selectByUserName(userName); + 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") + @ResponseBody + public String login(String sessionID, HttpServletRequest request, HttpServletResponse response) throws Exception { + String result = ""; + String returnMessage = ""; + if (sessionID != null && !"".equals(sessionID)) { + //请求对方webservices获取用户信息 + String endpoint = "http://10.6.0.170/csp/jhip/JHIP.JHIP.BS.JhipServicesBS.cls?wsdl"; + String method = "getUserDetailInfo"; + JaxWsDynamicClientFactory factory = JaxWsDynamicClientFactory.newInstance(); + Client client = factory.createClient(endpoint); + Object[] res = null; + String xml = "\n" + + "" + sessionID + "\n" + + ""; + res = client.invoke(method, xml); + returnMessage = (String) res[0]; + //获取登录名 + int start = returnMessage.indexOf("") + 17; + int end = returnMessage.indexOf(""); + //传进来的id已失效,无法获取用户信息 + 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 + delete from power_user where user_id = #{userId,jdbcType=INTEGER} diff --git a/power-service/src/main/java/com/manage/service/Power_UserService.java b/power-service/src/main/java/com/manage/service/Power_UserService.java index 01a7598..78dd503 100644 --- a/power-service/src/main/java/com/manage/service/Power_UserService.java +++ b/power-service/src/main/java/com/manage/service/Power_UserService.java @@ -22,6 +22,8 @@ public interface Power_UserService { Power_UserVo selectByPrimaryKey(Integer userId); + Power_UserVo selectByUserName(String userName); + int updateByPrimaryKeySelective(Power_User record,HttpServletRequest request); int updateByPrimaryKey(Power_User record); diff --git a/power-service/src/main/java/com/manage/service/ipml/Power_UserServiceImpl.java b/power-service/src/main/java/com/manage/service/ipml/Power_UserServiceImpl.java index ec99183..9618e15 100644 --- a/power-service/src/main/java/com/manage/service/ipml/Power_UserServiceImpl.java +++ b/power-service/src/main/java/com/manage/service/ipml/Power_UserServiceImpl.java @@ -99,6 +99,12 @@ public class Power_UserServiceImpl implements Power_UserService { return power_user; } + @Override + public Power_UserVo selectByUserName(String userName) { + Power_UserVo power_user = powerUserMapper.selectByUserName(userName); + return power_user; + } + @Override public int updateByPrimaryKeySelective(Power_User powerUser,HttpServletRequest request) { //取得当前登录账号