power更新,加入单点登录等小修改

master
xuhaoxiang 4 years ago
parent ae1844dcda
commit e7f5428580

@ -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 = "<REQUEST>\n" +
"<JHSESSIONID>" + sessionID + "</JHSESSIONID>\n" +
"</REQUEST>";
res = client.invoke(method, xml);
returnMessage = (String) res[0];
//获取登录名
int start = returnMessage.indexOf("<USER_LOGIN_NAME>") + 17;
int end = returnMessage.indexOf("</USER_LOGIN_NAME>");
//传进来的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<Power_Menu> list = null;
List<User_Dept_Menu> menuList = new ArrayList<>();
Set<String> 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_Dept> 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;
}
}

@ -6,6 +6,7 @@ import com.manage.encrypt.Base64;
import com.manage.encrypt.MD5;
import com.manage.entity.Power_Menu;
import com.manage.entity.Power_User;
import com.manage.service.Power_UserService;
import com.manage.service.cache.Cache;
import com.manage.service.cache.CacheManager;
import com.manage.interfaces.webservice.PowerWebService;
@ -33,6 +34,10 @@ public class PowerWebServiceImpl implements PowerWebService {
@Autowired
User_Dept_MenuService userDeptMenuService;
@Autowired
Power_UserService powerUserService;
@Override
public String getInfosByUserId(String token,String sysFlag) {
Power_UserWebServiceVo userWebServiceVo = new Power_UserWebServiceVo();

@ -1,7 +1,7 @@
# \u62E6\u622A\u83DC\u5355\u914D\u7F6E\u6587\u4EF6 ljx 2019-4-27
#interceptRequest \u672A\u767B\u5F55\u4E4B\u524D\u653E\u884C\u3002\u9ED8\u8BA4\u4E3Anone
#ajaxRequest ajax\u8BF7\u6C42\u6CA1\u6709\u5BF9\u5E94\u6A21\u5757\uFF0C\u9700\u8981\u653E\u884C\u3002 \u9ED8\u8BA4\u4E3Anone
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,/methodForEmrMedical
ajaxRequest = none
#session\u8FC7\u671F\u65F6\u95F4

@ -16,6 +16,8 @@ public interface Power_UserMapper {
Power_UserVo selectByPrimaryKey(Integer userId);
Power_UserVo selectByUserName(String userName);
int updateByPrimaryKeySelective(Power_User record);
int updateByPrimaryKey(Power_User record);

@ -34,11 +34,17 @@
role_id, dept_id, effective, create_date, creater, update_date, updater, remark
</sql>
<select id="selectByPrimaryKey" parameterType="java.lang.Integer" resultMap="BaseResultMap">
select
select
<include refid="Base_Column_List" />
from power_user
where user_id = #{userId,jdbcType=INTEGER}
</select>
<select id="selectByUserName" parameterType="java.lang.String" resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
from power_user
where user_name = #{userName,jdbcType=INTEGER}
</select>
<delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
delete from power_user
where user_id = #{userId,jdbcType=INTEGER}

@ -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);

@ -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) {
//取得当前登录账号

Loading…
Cancel
Save