Browse Source

运营端logout接口修改

dev_shibei_match
yinzuomei 5 years ago
parent
commit
9715a018bb
  1. 6
      epmet-auth/pom.xml
  2. 1
      epmet-auth/src/main/java/com/epmet/controller/LoginController.java
  3. 18
      epmet-auth/src/main/java/com/epmet/service/impl/LoginServiceImpl.java
  4. 5
      epmet-gateway/pom.xml
  5. 26
      epmet-module/oper-access/oper-access-client/src/main/java/com/epmet/feign/OperAccessFeignClient.java
  6. 22
      epmet-module/oper-access/oper-access-client/src/main/java/com/epmet/feign/fallback/OperAccessFeignClientFallback.java
  7. 12
      epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/controller/OperMenuController.java
  8. 2
      epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/service/OperMenuService.java
  9. 11
      epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/service/impl/OperMenuServiceImpl.java

6
epmet-auth/pom.xml

@ -98,6 +98,12 @@
<version>2.0.0</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.epmet</groupId>
<artifactId>oper-access-client</artifactId>
<version>2.0.0</version>
<scope>compile</scope>
</dependency>
</dependencies>
<build>

1
epmet-auth/src/main/java/com/epmet/controller/LoginController.java

@ -94,7 +94,6 @@ public class LoginController {
**/
@PostMapping(value = "logout")
public Result logout(@LoginUser TokenDto tokenDto, HttpServletRequest request) {
//String token = request.getParameter(Constant.TOKEN_HEADER);
return loginService.logoutByToken(tokenDto);
}
}

18
epmet-auth/src/main/java/com/epmet/service/impl/LoginServiceImpl.java

@ -17,6 +17,7 @@ import com.epmet.dto.form.*;
import com.epmet.dto.result.PasswordLoginUserInfoResultDTO;
import com.epmet.dto.result.UserTokenResultDTO;
import com.epmet.feign.EpmetUserFeignClient;
import com.epmet.feign.OperAccessFeignClient;
import com.epmet.jwt.JwtTokenProperties;
import com.epmet.jwt.JwtTokenUtils;
import com.epmet.service.CaptchaService;
@ -61,6 +62,9 @@ public class LoginServiceImpl implements LoginService {
@Autowired
private CaptchaService captchaService;
@Autowired
private OperAccessFeignClient operAccessFeignClient;
/**
* 居民端微信小程序登录
*
@ -249,7 +253,9 @@ public class LoginServiceImpl implements LoginService {
//1、验证码是否正确
boolean flag = captchaService.validate(formDTO.getUuid(), formDTO.getCaptcha());
if (!flag) {
return new Result<UserTokenResultDTO>().error(EpmetErrorCode.ERR10019.getCode());
logger.error(String.format("用户%s登录,验证码输入错误,暂时放行",formDTO.getPhone()));
//2020-05-21去除验证码校验 TODO
//return new Result<UserTokenResultDTO>().error(EpmetErrorCode.ERR10019.getCode());
}
//2、账号是否存在
//获取用户信息
@ -309,11 +315,17 @@ public class LoginServiceImpl implements LoginService {
//记录登出日志
//删除redis
if (null == tokenDto) {
logger.error("账号不存在");
throw new RenException("当前用户信息获取失败");
logger.error("运营端用户退出系统错误:账号不存在,接口继续执行返回成功");
return new Result();
}
cpUserDetailRedis.logout(tokenDto.getApp(), tokenDto.getClient(), tokenDto.getUserId());
//web端清空菜单栏和权限
Result operAccessResult = operAccessFeignClient.clearOperUserAccess();
if (operAccessResult.success()) {
logger.info(String.format("运营人员%s退出成功,清空菜单和权限redis成功", tokenDto.getUserId()));
} else {
logger.error(String.format("运营人员%s退出成功,清空菜单和权限redis异常", tokenDto.getUserId()));
}
return new Result();
}

5
epmet-gateway/pom.xml

@ -108,8 +108,8 @@
<nacos.ip></nacos.ip>
<!-- gateway routes -->
<!-- 1、认证服务 -->
<!-- <gateway.routes.epmet-auth-server.uri>http://localhost:8081</gateway.routes.epmet-auth-server.uri>-->
<gateway.routes.epmet-auth-server.uri>lb://epmet-auth-server</gateway.routes.epmet-auth-server.uri>
<gateway.routes.epmet-auth-server.uri>http://localhost:8081</gateway.routes.epmet-auth-server.uri>
<!-- <gateway.routes.epmet-auth-server.uri>lb://epmet-auth-server</gateway.routes.epmet-auth-server.uri>-->
<!-- 2、Admin服务 -->
<gateway.routes.epmet-admin-server.uri>lb://epmet-admin-server</gateway.routes.epmet-admin-server.uri>
<!-- 4、OSS服务 -->
@ -135,6 +135,7 @@
<!-- <gateway.routes.gov-org-server.uri>http://localhost:8092</gateway.routes.gov-org-server.uri>-->
<gateway.routes.gov-org-server.uri>lb://gov-org-server</gateway.routes.gov-org-server.uri>
<!-- 14、#运营端访问权限控制 -->
<!-- <gateway.routes.oper-access-server.uri>http://localhost:8093</gateway.routes.oper-access-server.uri>-->
<gateway.routes.oper-access-server.uri>lb://oper-access-server</gateway.routes.oper-access-server.uri>
<!-- 15、居民端个人信息 -->
<!-- <gateway.routes.resi-mine-server.uri>http://localhost:8094</gateway.routes.resi-mine-server.uri>-->

26
epmet-module/oper-access/oper-access-client/src/main/java/com/epmet/feign/OperAccessFeignClient.java

@ -0,0 +1,26 @@
package com.epmet.feign;
import com.epmet.commons.tools.constant.ServiceConstant;
import com.epmet.commons.tools.utils.Result;
import com.epmet.feign.fallback.OperAccessFeignClientFallback;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
/**
* @Description 运营端权限模块
* @Author yinzuomei
* @Date 2020/5/21 15:17
*/
//, url = "http://localhost:8093"
@FeignClient(name = ServiceConstant.OPER_ACCESS_SERVER, fallback = OperAccessFeignClientFallback.class)
public interface OperAccessFeignClient {
/**
* @param
* @return com.epmet.commons.tools.utils.Result
* @Author yinzuomei
* @Description 清空运营人员权限信息菜单信息
* @Date 2020/5/21 17:08
**/
@GetMapping("/oper/access/menu/clearoperuseraccess")
Result clearOperUserAccess();
}

22
epmet-module/oper-access/oper-access-client/src/main/java/com/epmet/feign/fallback/OperAccessFeignClientFallback.java

@ -0,0 +1,22 @@
package com.epmet.feign.fallback;
import com.epmet.commons.tools.constant.ServiceConstant;
import com.epmet.commons.tools.utils.ModuleUtils;
import com.epmet.commons.tools.utils.Result;
import com.epmet.feign.OperAccessFeignClient;
import org.springframework.stereotype.Component;
/**
* @Description 运营端权限模块
* @Author yinzuomei
* @Date 2020/5/21 15:47
*/
@Component
public class OperAccessFeignClientFallback implements OperAccessFeignClient {
@Override
public Result clearOperUserAccess() {
return ModuleUtils.feignConError(ServiceConstant.OPER_ACCESS_SERVER, "clearOperUserAccess");
}
}

12
epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/controller/OperMenuController.java

@ -149,4 +149,16 @@ public class OperMenuController {
return new Result<List<OperMenuDTO>>().ok(list);
}
/**
* @param tokenDto
* @return com.epmet.commons.tools.utils.Result
* @Author yinzuomei
* @Description 运营端用户退出系统清空菜单和操作权限
* @Date 2020/5/21 18:07
**/
@GetMapping("clearoperuseraccess")
public Result clearOperUserAccess(@LoginUser TokenDto tokenDto) {
operMenuService.clearOperUserAccess(tokenDto.getApp(), tokenDto.getClient(), tokenDto.getUserId());
return new Result();
}
}

2
epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/service/OperMenuService.java

@ -141,4 +141,6 @@ public interface OperMenuService extends BaseService<OperMenuEntity> {
* @param pid 父菜单ID
*/
List<OperMenuDTO> getListPid(String pid);
void clearOperUserAccess(String app, String client, String userId);
}

11
epmet-module/oper-access/oper-access-server/src/main/java/com/epmet/service/impl/OperMenuServiceImpl.java

@ -45,6 +45,8 @@ import com.epmet.service.OperMenuService;
import com.epmet.service.OperResourceService;
import com.epmet.service.OperRoleMenuService;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -59,7 +61,7 @@ import java.util.*;
*/
@Service
public class OperMenuServiceImpl extends BaseServiceImpl<OperMenuDao, OperMenuEntity> implements OperMenuService {
protected Logger logger = LoggerFactory.getLogger(getClass());
@Autowired
private OperMenuRedis operMenuRedis;
@Autowired
@ -236,6 +238,13 @@ public class OperMenuServiceImpl extends BaseServiceImpl<OperMenuDao, OperMenuEn
return ConvertUtils.sourceToTarget(menuList, OperMenuDTO.class);
}
@Override
public void clearOperUserAccess(String app, String client, String userId) {
//清空当前用户,菜单导航、权限标识
operMenuRedis.delete(userId, app, client);
logger.info(String.format("运营端用户退出系统%s,清空菜单、权限成功",userId));
}
private void saveLanguage(String tableId, String fieldName, String fieldValue){
operLanguageService.saveOrUpdate("oper_menu", tableId, fieldName, fieldValue, HttpContextUtils.getLanguage());
}

Loading…
Cancel
Save