Source/plt-web/plt-web-parent/plt-web-base/src/main/java/com/vci/starter/web/interceptor/VciSessionForLoginI.java
@@ -1,5 +1,6 @@ package com.vci.starter.web.interceptor; import com.vci.corba.common.PLException; import com.vci.starter.web.exception.VciBaseException; import com.vci.starter.web.pagemodel.SessionInfo; import com.vci.starter.web.pagemodel.TokenVO; @@ -60,8 +61,9 @@ /** * 退出登录 * @param userToken 用户的会话许可 * @param userId 用户id */ void logout(String userToken); void logout(String userToken,String userId) throws PLException; /** * 根据token获取用户在系统中还可以存在的时间 Source/plt-web/plt-web-parent/plt-web-permission/src/main/java/com/vci/web/service/impl/SmUserQueryServiceImpl.java
@@ -1533,7 +1533,8 @@ @Transactional(rollbackFor = Exception.class) public boolean stopUsers(String[] ids, boolean flag) throws PLException { VciBaseUtil.alertNotNull(ids,"停用/启用的用户id列表"); return platformClientUtil.getFrameworkService().stopUsers(ids, flag,null); return platformClientUtil.getFrameworkService().stopUsers(ids, flag,new UserEntityInfo(WebUtil.getCurrentUserId(),"用户管理")); } /** Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/OsLoginController.java
@@ -1,6 +1,7 @@ package com.vci.web.controller; import com.vci.bo.LoginResultBO; import com.vci.corba.common.PLException; import com.vci.dto.LoginUserDTO; import com.vci.starter.web.annotation.controller.VciUnCheckRight; import com.vci.starter.web.annotation.log.VciBusinessLog; @@ -12,6 +13,7 @@ import com.vci.starter.web.util.VciBaseUtil; import com.vci.starter.web.util.WebThreadLocalUtil; import com.vci.web.service.OsLoginServiceI; import com.zeroc.IceInternal.Ex; import eu.bitwalker.useragentutils.*; import org.apache.commons.lang3.StringUtils; import org.slf4j.Logger; @@ -179,8 +181,15 @@ @ResponseBody public BaseResult logout(HttpServletRequest request){ String userToken = request.getHeader(TokenKeyConstant.USER_TOKEN_KEY); loginService.logout(userToken); return BaseResult.success(); try { loginService.logout(userToken); return BaseResult.success("退出成功"); } catch (Exception e) { e.printStackTrace(); String errorLog = "登出时出现异常,原因:"+ VciBaseUtil.getExceptionMessage(e); logger.error(errorLog); return BaseResult.fail(errorLog); } } } Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/controller/WebFlowController.java
@@ -1,7 +1,6 @@ package com.vci.web.controller; import com.vci.corba.wf.data.ProcessCategoryInfo; import com.vci.dto.OsEnumDTO; import com.vci.starter.web.annotation.log.VciBusinessLog; import com.vci.starter.web.pagemodel.BaseQueryObject; import com.vci.starter.web.pagemodel.BaseResult; @@ -61,9 +60,9 @@ */ @GetMapping( "/getProcessCategoriesByPage") @VciBusinessLog(operateName = "流程分类分页查询") public BaseResult<DataGrid<ProcessCategoryInfo>> getProcessCategoriesByPage(BaseQueryObject baseQueryObject){ public BaseResult getProcessCategoriesByPage(BaseQueryObject baseQueryObject){ try { return BaseResult.dataList(webFlowServiceI.getProcessCategoriesByPage(baseQueryObject)); return BaseResult.dataGrid(webFlowServiceI.getProcessCategoriesByPage(baseQueryObject)); } catch (Exception e) { e.printStackTrace(); String exceptionMessage = "流程分类分页查询时出现错误,原因:" + VciBaseUtil.getExceptionMessage(e); Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/OsLoginServiceI.java
@@ -1,6 +1,7 @@ package com.vci.web.service; import com.vci.bo.LoginResultBO; import com.vci.corba.common.PLException; import com.vci.dto.LoginUserDTO; import com.vci.starter.web.exception.VciBaseException; import com.vci.starter.web.pagemodel.RequestClientInfo; @@ -26,5 +27,5 @@ * @param userToken 用户的许可码 * @throws VciBaseException 删除会话信息出错的时候会抛出异常 */ void logout(String userToken) throws VciBaseException; void logout(String userToken) throws Exception; } Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/OsLoginServiceImpl.java
@@ -181,16 +181,6 @@ return loginResult; } //4、判断密码是否正确(平台的checkLogin方法好像有对密码进行比对的方法) /*if (checkPassword) { boolean passwordIsEqual = userQueryService.checkPasswordEqual(userDTO.getPassword(), user.getOid()); if (!passwordIsEqual) { if (logger.isDebugEnabled()) { logger.debug("{}密码不正确", user.getId()); } } }*/ //5、调用平台登录接口,进行登录 MachineInfo machine = getMachieInfo(clientInfo); machine.country = clientInfo.getCountry(); @@ -313,7 +303,7 @@ * @throws VciBaseException 删除会话信息出错的时候会抛出异常 */ @Override public void logout(String userToken) throws VciBaseException { public void logout(String userToken) throws Exception { VciBaseUtil.alertNotNull(userToken,"用户的会话许可"); Map<String, Object> logoutpluginBeanMap =ApplicationContextProvider.getApplicationContext().getBeansWithAnnotation(VciLogoutPlugin.class); if(!CollectionUtils.isEmpty(logoutpluginBeanMap)){ @@ -337,7 +327,10 @@ } //清除存当前登录的用户(总数-1) redisService.decreOnlineUser(VConstant.CURRENT_LOGGED_USERS_KEY); sessionForLogin.logout(userToken); sessionForLogin.logout( WebThreadLocalUtil.getCurrentUserSessionInfoInThread().getToken() ,WebThreadLocalUtil.getCurrentUserSessionInfoInThread().getUserId() ); if(!CollectionUtils.isEmpty(logoutpluginBeanMap)){ logoutpluginBeanMap.forEach((k,v) -> { Method[] methods = v.getClass().getDeclaredMethods(); Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/SmSessionForLoginImpl.java
@@ -195,12 +195,15 @@ /** * 退出登录 * * 清除用户session * @param userToken 用户的会话许可 */ @Override public void logout(String userToken) { public void logout(String userToken,String userId) throws PLException { //TODO 根据情况,单独处理 redisService.deleteObject(CacheNameConstant.USERID_TOKEN_KEY + userId); redisService.deleteObject(TokenKeyConstant.TOKEN_KEY_PREFIX_IN_REDIS + userToken); platformClientUtil.getFrameworkService().logoff(userToken); } /** Source/plt-web/plt-web-parent/plt-web/src/main/java/com/vci/web/service/impl/WebFlowServiceImpl.java
@@ -8,13 +8,16 @@ import com.vci.starter.web.pagemodel.DataGrid; import com.vci.starter.web.util.Lcm.Func; import com.vci.starter.web.util.VciBaseUtil; import com.vci.web.dao.WebProcessDaoI; import com.vci.web.service.WebFlowServiceI; import com.vci.web.util.PlatformClientUtil; import com.vci.web.util.WebUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.Arrays; import java.util.Comparator; import java.util.Date; import java.util.List; import java.util.stream.Collectors; @@ -31,6 +34,9 @@ */ @Autowired private PlatformClientUtil platformClientUtil; @Autowired private WebProcessDaoI webProcessDaoI; /** * 流程分类全查询 @@ -79,7 +85,12 @@ if(Func.isBlank(category.parentId)){ category.parentId = "root"; } long time = new Date().getTime(); String userId = WebUtil.getCurrentUserId(); category.createTime = time; category.modifyTime = time; category.creator = userId; category.modifer = userId; return platformClientUtil.getWFService().saveProcessCategory(category); } @@ -95,6 +106,8 @@ category.parentId = "root"; } this.checkNameExisted(category); category.modifyTime = new Date().getTime(); category.modifer = WebUtil.getCurrentUserId(); return platformClientUtil.getWFService().updateProcessCategory(category); }