Browse Source

工作日志

feature/syp_points
songyunpeng 5 years ago
parent
commit
fa9696d8aa
  1. 20
      esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/controller/SysUserController.java
  2. 8
      esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/SysDeptService.java
  3. 15
      esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/impl/SysDeptServiceImpl.java
  4. 2
      esua-epdc/epdc-admin/epdc-admin-server/src/main/resources/mapper/SysDeptDao.xml
  5. 139
      esua-epdc/epdc-gateway/src/main/java/com/elink/esua/epdc/filter/WorkLogAuthFilter.java
  6. 33
      esua-epdc/epdc-gateway/src/main/java/com/elink/esua/epdc/utils/jwt/JwtTokenProperties.java
  7. 71
      esua-epdc/epdc-gateway/src/main/java/com/elink/esua/epdc/utils/jwt/JwtTokenUtils.java
  8. 12
      esua-epdc/epdc-gateway/src/main/resources/application.yml
  9. 36
      esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/worklog/WorkLogAnalysisController.java
  10. 96
      esua-epdc/epdc-module/epdc-api/epdc-api-client/src/main/java/com/elink/esua/epdc/dto/result/EpdcWorkLogUserDetailDTO.java
  11. 59
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiWorkLogController.java
  12. 11
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/AdminFeignClient.java
  13. 30
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/AnalysisFeignClient.java
  14. 5
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/fallback/AdminFeignClientFallback.java
  15. 20
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/fallback/AnalysisFeignClientFallback.java
  16. 26
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/AdminService.java
  17. 51
      esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/AdminServiceImpl.java
  18. 25
      esua-epdc/pom.xml

20
esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/controller/SysUserController.java

@ -8,9 +8,11 @@
package com.elink.esua.epdc.controller;
import com.alibaba.fastjson.JSONObject;
import com.elink.esua.epdc.commons.tools.annotation.LogOperation;
import com.elink.esua.epdc.commons.tools.constant.Constant;
import com.elink.esua.epdc.commons.tools.exception.ErrorCode;
import com.elink.esua.epdc.commons.tools.exception.RenException;
import com.elink.esua.epdc.commons.tools.page.PageData;
import com.elink.esua.epdc.commons.tools.security.bo.ResourceBO;
import com.elink.esua.epdc.commons.tools.security.password.PasswordUtils;
@ -415,4 +417,22 @@ public class SysUserController {
return new Result<UserDetail>().ok(userDetail);
}
/**
* 获取用户部门多层结构用户前端显示请求需携带token - 工作日志使用
*
* @return com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.dto.DeptOption>
* @author songyunpeng
* @date 2020/1/27 14:31
*/
@PostMapping("deptOptions/getUserDeptOptionByUserId")
public Result<DeptOption> getUserDeptOptionByUserId(@RequestBody String userId) {
JSONObject paramsJSONObject = JSONObject.parseObject(userId);
String realUserId = paramsJSONObject.getString("userId");
if (realUserId == null) {
throw new RenException("参数错误");
}
return sysDeptService.getUserDeptOptionByUserId(realUserId);
}
}

8
esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/SysDeptService.java

@ -280,4 +280,12 @@ public interface SysDeptService extends BaseService<SysDeptEntity> {
* @since 2021/1/20 9:59
*/
List<SysDeptDTO> listOfDeptInfoByTypeKey(String typeKey);
/**
* @Description 获取用户部门多层结构用户前端显示请求需携带token - 工作日志使用
* @Author songyunpeng
* @Date 2021/1/27
* @Param [userId]
* @return com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.dto.DeptOption>
**/
Result<DeptOption> getUserDeptOptionByUserId(String userId);
}

15
esua-epdc/epdc-admin/epdc-admin-server/src/main/java/com/elink/esua/epdc/service/impl/SysDeptServiceImpl.java

@ -472,6 +472,8 @@ public class SysDeptServiceImpl extends BaseServiceImpl<SysDeptDao, SysDeptEntit
node = new JSONObject();
node.put("label", headDepts.get(i).getName());
node.put("value", String.valueOf(deptId));
node.put("typeKey", headDepts.get(i).getTypeKey());
parentNodeArray.add(node);
}
// 用于存放 每次组装好的 某一级节点。页面只需展示三级,所以没有存放顶级节点(市区)
@ -541,6 +543,7 @@ public class SysDeptServiceImpl extends BaseServiceImpl<SysDeptDao, SysDeptEntit
if (nodeParent.get("value").equals(String.valueOf(childDepts.get(j).getPid()))) {
nodeChild = new JSONObject();
nodeChild.put("label", childDepts.get(j).getName());
nodeChild.put("typeKey", childDepts.get(j).getTypeKey());
nodeChild.put("value", String.valueOf(deptId));
childrenNodeList.add(nodeChild);
@ -962,4 +965,16 @@ public class SysDeptServiceImpl extends BaseServiceImpl<SysDeptDao, SysDeptEntit
public List<SysDeptDTO> listOfDeptInfoByTypeKey(String typeKey) {
return baseDao.selectListOfDeptInfoByTypeKey(typeKey);
}
@Override
public Result<DeptOption> getUserDeptOptionByUserId(String userId) {
Long realUserId = Long.parseLong(userId);
String deptOptionKey = RedisKeys.getAdminUserDeptOptionKey(realUserId);
Object obj = redisUtils.get(deptOptionKey);
if (null == obj) {
this.packageUserDeptOption(realUserId);
obj = redisUtils.get(deptOptionKey);
}
return new Result<DeptOption>().ok((DeptOption) obj);
}
}

2
esua-epdc/epdc-admin/epdc-admin-server/src/main/resources/mapper/SysDeptDao.xml

@ -133,7 +133,7 @@
<select id="selectListHeadDeptNode" resultType="com.elink.esua.epdc.entity.SysDeptEntity">
SELECT
d1.id, d1.`name`
d1.id, d1.`name`,d1.type_key
FROM
sys_dept d
LEFT JOIN sys_dept d1 ON d.pids LIKE CONCAT( '%', d1.id, '%' )

139
esua-epdc/epdc-gateway/src/main/java/com/elink/esua/epdc/filter/WorkLogAuthFilter.java

@ -0,0 +1,139 @@
/**
* Copyright (c) 2018 人人开源 All rights reserved.
*
* https://www.renren.io
*
* 版权所有侵权必究
*/
package com.elink.esua.epdc.filter;
import com.alibaba.fastjson.JSON;
import com.elink.esua.epdc.commons.tools.constant.Constant;
import com.elink.esua.epdc.commons.tools.exception.RenException;
import com.elink.esua.epdc.commons.tools.security.user.UserDetail;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.feign.ResourceFeignClient;
import com.elink.esua.epdc.utils.jwt.JwtTokenUtils;
import io.jsonwebtoken.Claims;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.cloud.gateway.filter.GatewayFilterChain;
import org.springframework.cloud.gateway.filter.GlobalFilter;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.buffer.DataBuffer;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.server.reactive.ServerHttpRequest;
import org.springframework.util.AntPathMatcher;
import org.springframework.web.server.ServerWebExchange;
import reactor.core.publisher.Flux;
import reactor.core.publisher.Mono;
import java.nio.charset.StandardCharsets;
import java.util.List;
/**
* 权限过滤器
*
* @author Mark sunlightcs@gmail.com
* @since 1.0.0
*/
@Configuration
@ConfigurationProperties(prefix = "worklog")
public class WorkLogAuthFilter implements GlobalFilter {
private final AntPathMatcher antPathMatcher = new AntPathMatcher();
@Autowired
private ResourceFeignClient resourceFeignClient;
@Autowired
private JwtTokenUtils jwtUtils;
/**
* 拦截的工作日志接口
*/
private List<String> urls;
@Override
public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
ServerHttpRequest request = exchange.getRequest();
String requestUri = request.getPath().pathWithinApplication().value();
//请求放行,无需验证权限
if(pathMatcher(requestUri)){
return chain.filter(exchange);
}
//获取AccessToken 并进行验证
String accessToken = request.getHeaders().getFirst(Constant.ACCESS_TOKEN);
if(StringUtils.isBlank(accessToken)){
// 表示请求信息中没有携带AccessToken,前端需要修改上送数据
throw new RenException("AccessToken为空");
}
Claims claims = jwtUtils.getClaimByToken(accessToken);
if (claims == null) {
throw new RenException("AccessToken验证不通过");
}
//验证结束
//获取用户token
String token = request.getHeaders().getFirst(Constant.TOKEN_HEADER);
if(StringUtils.isBlank(token)){
token = request.getHeaders().getFirst(Constant.AUTHORIZATION_HEADER);
if (StringUtils.isBlank(token)) {
token = request.getQueryParams().getFirst(Constant.TOKEN_HEADER);
}
}
//资源访问权限
String language = request.getHeaders().getFirst(HttpHeaders.ACCEPT_LANGUAGE);
Result<UserDetail> result = resourceFeignClient.resource(language, token, requestUri, request.getMethod().toString());
//没权限访问,直接返回
if(!result.success()){
return response(exchange, result);
}
//获取用户信息
UserDetail userDetail = result.getData();
if(userDetail != null){
//当前登录用户userId,添加到header中
ServerHttpRequest build = exchange.getRequest().mutate().header(Constant.USER_KEY, userDetail.getId()+"").build();
return chain.filter(exchange.mutate().request(build).build());
}
return chain.filter(exchange);
}
private Mono<Void> response(ServerWebExchange exchange, Object object) {
String json = JSON.toJSONString(object);
DataBuffer buffer = exchange.getResponse().bufferFactory().wrap(json.getBytes(StandardCharsets.UTF_8));
exchange.getResponse().getHeaders().setContentType(MediaType.APPLICATION_JSON_UTF8);
exchange.getResponse().setStatusCode(HttpStatus.OK);
return exchange.getResponse().writeWith(Flux.just(buffer));
}
private boolean pathMatcher(String requestUri){
for (String url : urls) {
if(antPathMatcher.match(url, requestUri)){
return false;
}
}
return true;
}
public List<String> getUrls() {
return urls;
}
public void setUrls(List<String> urls) {
this.urls = urls;
}
}

33
esua-epdc/epdc-gateway/src/main/java/com/elink/esua/epdc/utils/jwt/JwtTokenProperties.java

@ -0,0 +1,33 @@
/**
* Copyright (c) 2018 人人开源 All rights reserved.
*
* https://www.renren.io
*
* 版权所有侵权必究
*/
package com.elink.esua.epdc.utils.jwt;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;
/**
* Jwt
*
* @author Mark sunlightcs@gmail.com
* @since 1.0.0
*/
@Configuration
@ConfigurationProperties(prefix = "jwt.token")
public class JwtTokenProperties {
private String secret;
public String getSecret() {
return secret;
}
public void setSecret(String secret) {
this.secret = secret;
}
}

71
esua-epdc/epdc-gateway/src/main/java/com/elink/esua/epdc/utils/jwt/JwtTokenUtils.java

@ -0,0 +1,71 @@
/**
* Copyright (c) 2018 人人开源 All rights reserved.
* <p>
* https://www.renren.io
* <p>
* 版权所有侵权必究
*/
package com.elink.esua.epdc.utils.jwt;
import io.jsonwebtoken.Claims;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.Date;
import java.util.Map;
/**
* Jwt工具类
*
* @author Mark sunlightcs@gmail.com
* @since 1.0.0
*/
@Component
public class JwtTokenUtils {
private static final Logger logger = LoggerFactory.getLogger(JwtTokenUtils.class);
@Autowired
private JwtTokenProperties jwtProperties;
/**
* 生成上报接口accessToken
*
* @param claims
* @return java.lang.String
* @author Liuchuang
* @since 2020/9/7 14:11
*/
public String getEpmetAccessToken(Map<String,Object> claims){
return Jwts.builder()
.setHeaderParam("typ", "JWT")
.setClaims(claims)
.signWith(SignatureAlgorithm.HS512, jwtProperties.getSecret())
.compact();
}
public Claims getClaimByToken(String token) {
try {
return Jwts.parser()
.setSigningKey(jwtProperties.getSecret())
.parseClaimsJws(token)
.getBody();
} catch (Exception e) {
logger.debug("validate is token error, token = " + token, e);
return null;
}
}
/**
* token是否过期
*
* @return true过期
*/
public boolean isTokenExpired(Date expiration) {
return expiration.before(new Date());
}
}

12
esua-epdc/epdc-gateway/src/main/resources/application.yml

@ -243,6 +243,13 @@ ribbon:
ReadTimeout: 300000
ConnectTimeout: 300000
jwt:
token:
#秘钥
secret: 7016867071f0ebf1c46f123eaaf4b9d6[elink.epdc]
#APPID
appid: 3b60f3e6e8281efe96a032682e5e5f7e
renren:
urls:
- /auth/captcha
@ -271,6 +278,7 @@ renren:
- /api/residentConfig/getResidentConfig #获取居民端配置
- /api/screenPopulationInfo/** #获取居民端配置
- /analysis/admin/getDeptCode #获取组织结构编码
- /api/plugins/workLog/** #工作日志相关
workUrls:
- /api/work/** #工作端接口
- /api/analysis/** #数据端接口
@ -278,6 +286,9 @@ renren:
- /contentSecurity/** #内容安全接口
- /api/sys/**
worklog:
urls:
- /api/plugins/workLog/** #工作日志相关
epdc:
# 党建e家接口
@ -301,3 +312,4 @@ epdc:
- /api/residentConfig/getResidentConfig #获取居民端配置
- /api/screenPopulationInfo/** #获取居民端配置
- /analysis/admin/getDeptCode #获取组织结构编码
- /api/plugins/workLog/** #工作日志相关

36
esua-epdc/epdc-module/epdc-analysis/epdc-analysis-server/src/main/java/com/elink/esua/epdc/modules/worklog/WorkLogAnalysisController.java

@ -0,0 +1,36 @@
package com.elink.esua.epdc.modules.worklog;
import com.elink.esua.epdc.commons.tools.utils.Result;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @Description 获取customID
* @Author songyunpeng
* @Date 2020/2/10 16:06
*/
@RestController
@RequestMapping("workLog")
public class WorkLogAnalysisController {
@Value("${epmet.config.customerId}")
private String customId;
/**
* @Description 获取customId
* @Author songyunpeng
* @Date 2021/1/27
* @Param []
* @return com.elink.esua.epdc.commons.tools.utils.Result
**/
@GetMapping("getCustomId")
public Result<String> getCustomId(){
return new Result<String>().ok(customId);
}
}

96
esua-epdc/epdc-module/epdc-api/epdc-api-client/src/main/java/com/elink/esua/epdc/dto/result/EpdcWorkLogUserDetailDTO.java

@ -0,0 +1,96 @@
/**
* Copyright (c) 2018 人人开源 All rights reserved.
* <p>
* https://www.renren.io
* <p>
* 版权所有侵权必究
*/
package com.elink.esua.epdc.dto.result;
import lombok.Data;
import java.io.Serializable;
/**
* 工作日志 用户信息
*
* @author Mark sunlightcs@gmail.com
* @since 1.0.0
*/
@Data
public class EpdcWorkLogUserDetailDTO implements Serializable {
private static final long serialVersionUID = 3908231797102233188L;
/**
* 用户ID
*/
private String userId;
/**
* 微信昵称
*/
private String nickname;
/**
* 头像
*/
private String profile;
/**
* 真实姓名
*/
private String realName;
/**
* 客户Id
*/
private String customerId;
/**
* 客户名称
*/
private String customerName;
/**
* 所属组织Id
*/
private String agencyId;
/**
* 所属组织Id路径
*/
private String agencyIdPath;
/**
* 所属组织名称
*/
private String agencyName;
/**
* 所属组织名称路径
*/
private String agencyNamePath;
/**
* 所在网格Id工作人员最一次访问的网格
*/
private String gridId;
/**
* 所在网格名称
*/
private String gridName;
/**
* 是否总管理员1是0否
*/
private String adminFlag;
/**
* 手机号
*/
private String mobile;
}

59
esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/controller/ApiWorkLogController.java

@ -0,0 +1,59 @@
package com.elink.esua.epdc.controller;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dto.DeptOption;
import com.elink.esua.epdc.dto.result.EpdcWorkLogUserDetailDTO;
import com.elink.esua.epdc.service.AdminService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
/**
* 工作日志相关
*
* @author songyunpeng
* @date 2021/1/27 10:30
*/
@RestController
@RequestMapping("plugins/workLog")
public class ApiWorkLogController {
@Autowired
private AdminService adminService;
/**
* @Description 获取用户信息
* @Author songyunpeng
* @Date 2021/1/27
* @Param []
* @return com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.dto.result.EpdcWorkLogUserDetailDTO>
**/
@GetMapping("getUserInfo")
public Result<EpdcWorkLogUserDetailDTO> getUserInfo(){
return adminService.getUserInfo();
}
/**
* @Description 获取用户部门权限
* @Author songyunpeng
* @Date 2021/1/27
* @Param []
* @return com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.dto.result.EpdcWorkLogUserDetailDTO>
**/
@PostMapping("getUserDeptOptionByUserId")
public Result<DeptOption> getUserDeptOptionByUserId(@RequestBody String userId){
return adminService.getUserDeptOptionByUserId(userId);
}
/**
* @Description 获取customId
* @Author songyunpeng
* @Date 2021/1/27
* @Param []
* @return com.elink.esua.epdc.commons.tools.utils.Result
**/
@GetMapping("getCustomId")
public Result<String> getCustomId(){
return adminService.getCustomId();
}
}

11
esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/AdminFeignClient.java

@ -178,4 +178,15 @@ public interface AdminFeignClient {
*/
@GetMapping("sys/dept/getdeptinfo/{typeKey}")
Result<List<SysDeptDTO>> getDeptInfoByTypeKey(@PathVariable String typeKey);
/**
* 获取用户部门多层结构用户前端显示请求需携带token -- 工作日志使用
*
* @return com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.dto.DeptOption>
* @author work@yujt.net.cn
* @date 2019/11/27 14:31
*/
@PostMapping(value = "sys/user/deptOptions/getUserDeptOptionByUserId", consumes = MediaType.APPLICATION_JSON_VALUE)
Result<DeptOption> getUserDeptOptionByUserId(String userId);
}

30
esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/AnalysisFeignClient.java

@ -0,0 +1,30 @@
package com.elink.esua.epdc.feign;
import com.elink.esua.epdc.commons.tools.constant.ServiceConstant;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.feign.fallback.AnalysisFeignClientFallback;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.GetMapping;
/**
* 数据分析模块调用
*
* @Authorliuchuang
* @Date2020/9/9 15:41
*/
@FeignClient(name = ServiceConstant.EPDC_ANALYSIS_SERVER, fallback = AnalysisFeignClientFallback.class)
public interface AnalysisFeignClient {
/**
* @Description 组织机构编码获取
* @Author songyunpeng
* @Date 2021/1/7
* @Param []
* @return com.elink.esua.epdc.commons.tools.utils.Result
**/
@GetMapping(value = "analysis/workLog/getCustomId", consumes = MediaType.APPLICATION_JSON_VALUE)
Result<String> getCustomId();
}

5
esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/fallback/AdminFeignClientFallback.java

@ -90,4 +90,9 @@ public class AdminFeignClientFallback implements AdminFeignClient {
public Result<List<SysDeptDTO>> getDeptInfoByTypeKey(String typeKey) {
return ModuleUtils.feignConError(ServiceConstant.EPDC_ADMIN_SERVER, "getDeptInfoByTypeKey", typeKey);
}
@Override
public Result<DeptOption> getUserDeptOptionByUserId(String userId) {
return ModuleUtils.feignConError(ServiceConstant.EPDC_ADMIN_SERVER, "getUserDeptOptionByUserId",userId);
}
}

20
esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/feign/fallback/AnalysisFeignClientFallback.java

@ -0,0 +1,20 @@
package com.elink.esua.epdc.feign.fallback;
import com.elink.esua.epdc.commons.tools.constant.ServiceConstant;
import com.elink.esua.epdc.commons.tools.utils.ModuleUtils;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.feign.AnalysisFeignClient;
import org.springframework.stereotype.Component;
/**
* @Authorsongyunpeg
* @Date2020/9/9 15:42
*/
@Component
public class AnalysisFeignClientFallback implements AnalysisFeignClient {
@Override
public Result getCustomId() {
return ModuleUtils.feignConError(ServiceConstant.EPDC_ANALYSIS_SERVER, "getCustomId");
}
}

26
esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/AdminService.java

@ -2,7 +2,9 @@ package com.elink.esua.epdc.service;
import com.elink.esua.epdc.common.token.dto.TokenDto;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dto.DeptOption;
import com.elink.esua.epdc.dto.epdc.result.EpdcAppSysDictResultDTO;
import com.elink.esua.epdc.dto.result.EpdcWorkLogUserDetailDTO;
import java.util.List;
@ -59,4 +61,28 @@ public interface AdminService {
* @return com.elink.esua.epdc.commons.tools.utils.Result<java.lang.String>
**/
Result<String> getScripBySysUserId(Long userId);
/**
* @Description 获取用户信息
* @Author songyunpeng
* @Date 2021/1/27
* @Param []
* @return com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.dto.result.EpdcWorkLogUserDetailDTO>
**/
Result<EpdcWorkLogUserDetailDTO> getUserInfo();
/**
* @Description 获取用户部门权限
* @Author songyunpeng
* @Date 2021/1/27
* @Param [userId]
* @return com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.dto.DeptOption>
**/
Result<DeptOption> getUserDeptOptionByUserId(String userId);
/**
* @Description 获取customId
* @Author songyunpeng
* @Date 2021/1/27
* @Param []
* @return com.elink.esua.epdc.commons.tools.utils.Result<java.lang.String>
**/
Result<String> getCustomId();
}

51
esua-epdc/epdc-module/epdc-api/epdc-api-server/src/main/java/com/elink/esua/epdc/service/impl/AdminServiceImpl.java

@ -1,13 +1,21 @@
package com.elink.esua.epdc.service.impl;
import com.elink.esua.epdc.common.token.dto.TokenDto;
import com.elink.esua.epdc.commons.tools.exception.RenException;
import com.elink.esua.epdc.commons.tools.security.user.SecurityUser;
import com.elink.esua.epdc.commons.tools.security.user.UserDetail;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dto.CompleteDeptDTO;
import com.elink.esua.epdc.dto.DeptOption;
import com.elink.esua.epdc.dto.ParentAndAllDeptDTO;
import com.elink.esua.epdc.dto.SysSimpleDictDTO;
import com.elink.esua.epdc.dto.epdc.form.EpdcScripUserInfoFormDTO;
import com.elink.esua.epdc.dto.epdc.result.EpdcAppSysDictResultDTO;
import com.elink.esua.epdc.dto.result.EpdcWorkLogUserDetailDTO;
import com.elink.esua.epdc.feign.AdminFeignClient;
import com.elink.esua.epdc.feign.AnalysisFeignClient;
import com.elink.esua.epdc.service.AdminService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -25,6 +33,9 @@ public class AdminServiceImpl implements AdminService {
@Autowired
private AdminFeignClient adminFeignClient;
@Autowired
private AnalysisFeignClient analysisFeignClient;
@Override
public Result<String> getCompleteDeptName(Long gridId) {
Result<CompleteDeptDTO> adminResult = adminFeignClient.getCompleteDept(gridId);
@ -70,4 +81,44 @@ public class AdminServiceImpl implements AdminService {
public Result<String> getScripBySysUserId(Long userId) {
return adminFeignClient.getScripBySysUserId(userId);
}
@Override
public Result<EpdcWorkLogUserDetailDTO> getUserInfo() {
//缓存中用户信息
UserDetail user = SecurityUser.getUser();
if(user == null){
throw new RenException("用户未登录");
}
//查询用户部门等信息
//获取所有上级机构名称和ID拼接
Result<ParentAndAllDeptDTO> dtoResult = adminFeignClient.getParentAndAllDept(user.getDeptId());
ParentAndAllDeptDTO deptDTO = dtoResult.getData();
Result<String> customIdResult = analysisFeignClient.getCustomId();
if(customIdResult == null || StringUtils.isBlank(customIdResult.getData())){
throw new RenException("无法获取到CustomID");
}
EpdcWorkLogUserDetailDTO epdcWorkLogUserDetailDTO = new EpdcWorkLogUserDetailDTO();
epdcWorkLogUserDetailDTO.setUserId(String.valueOf(user.getId()));
epdcWorkLogUserDetailDTO.setNickname(user.getRealName());
epdcWorkLogUserDetailDTO.setProfile(user.getHeadUrl());
epdcWorkLogUserDetailDTO.setRealName(user.getRealName());
epdcWorkLogUserDetailDTO.setCustomerId(customIdResult.getData());
epdcWorkLogUserDetailDTO.setAgencyId(String.valueOf(user.getDeptId()));
epdcWorkLogUserDetailDTO.setAgencyIdPath(deptDTO.getAllDeptIds());
epdcWorkLogUserDetailDTO.setAgencyName(deptDTO.getGrid());
epdcWorkLogUserDetailDTO.setAgencyNamePath(deptDTO.getAllDeptNames());
epdcWorkLogUserDetailDTO.setAgencyNamePath(String.valueOf(user.getSuperAdmin()));
epdcWorkLogUserDetailDTO.setMobile(user.getMobile());
return new Result<EpdcWorkLogUserDetailDTO>().ok(epdcWorkLogUserDetailDTO);
}
@Override
public Result<DeptOption> getUserDeptOptionByUserId(String userId) {
return adminFeignClient.getUserDeptOptionByUserId(userId);
}
@Override
public Result<String> getCustomId() {
return analysisFeignClient.getCustomId();
}
}

25
esua-epdc/pom.xml

@ -116,26 +116,10 @@
</build>
<repositories>
<!-- <repository>-->
<!-- <id>public</id>-->
<!-- <name>aliyun nexus</name>-->
<!-- <url>http://47.104.85.99:9002/repository/maven-public/</url>-->
<!-- <releases>-->
<!-- <enabled>true</enabled>-->
<!-- </releases>-->
<!-- </repository>-->
<!-- <repository>-->
<!-- <id>elink-release</id>-->
<!-- <name>aliyun nexus</name>-->
<!-- <url>http://47.104.224.45:9002/repository/elink-release/</url>-->
<!-- <releases>-->
<!-- <enabled>true</enabled>-->
<!-- </releases>-->
<!-- </repository>-->
<repository>
<id>elink-release</id>
<name>aliyun nexus</name>
<url>http://47.104.224.45:9002/repository/maven-public/</url>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<releases>
<enabled>true</enabled>
</releases>
@ -153,7 +137,7 @@
<pluginRepository>
<id>public</id>
<name>aliyun nexus</name>
<url>http://47.104.224.45:9002/repository/maven-public/</url>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<releases>
<enabled>true</enabled>
</releases>
@ -162,5 +146,4 @@
</snapshots>
</pluginRepository>
</pluginRepositories>
</project>

Loading…
Cancel
Save