Browse Source

Merge remote-tracking branch 'origin/master' into feature/lc_actsignin

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

1
esua-epdc/epdc-admin/epdc-admin-client/src/main/java/com/elink/esua/epdc/dto/DeptTreeDTO.java

@ -18,6 +18,7 @@ public class DeptTreeDTO implements Serializable {
private Long pid;
private String name;
private String typeKey;
}

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

@ -415,4 +415,17 @@ 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() {
return sysDeptService.getUserDeptOptionByUserId(String.valueOf(SecurityUser.getUserId()));
}
}

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

16
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);
@ -601,6 +604,7 @@ public class SysDeptServiceImpl extends BaseServiceImpl<SysDeptDao, SysDeptEntit
childNode = new JSONObject();
childNode.put("value", categoryTreeDto.getId());
childNode.put("label", categoryTreeDto.getName());
childNode.put("typeKey", categoryTreeDto.getTypeKey());
children.add(childNode);
allChildren.add(childNode);
}
@ -962,4 +966,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);
}
}

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

@ -133,13 +133,14 @@
<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, '%' )
LEFT JOIN sys_dept d1 ON d.pids LIKE CONCAT( '%', d1.id, '%' ) and d1.DEL_FLAG = '0'
WHERE
d.id IN <foreach collection="dataScopeDeptList" item="deptId" open="(" separator="," close=")" > #{deptId} </foreach>
AND d1.pid = 0
and d.DEL_FLAG = '0'
GROUP BY d1.id
ORDER BY d1.create_date ASC
</select>
@ -147,8 +148,8 @@
SELECT
tem2.*
FROM
( SELECT * FROM sys_dept d1 WHERE d1.id IN <foreach collection="dataScopeDeptList" item="item" open="(" separator="," close=")" > #{item} </foreach> ) tem1,
( SELECT * FROM sys_dept d2 WHERE d2.pid IN <foreach collection="parentDeptIdList" item="deptId" open="(" separator="," close=")" > #{deptId} </foreach>) tem2
( SELECT * FROM sys_dept d1 WHERE DEL_FLAG = '0' and d1.id IN <foreach collection="dataScopeDeptList" item="item" open="(" separator="," close=")" > #{item} </foreach> ) tem1,
( SELECT * FROM sys_dept d2 WHERE DEL_FLAG = '0' and d2.pid IN <foreach collection="parentDeptIdList" item="deptId" open="(" separator="," close=")" > #{deptId} </foreach>) tem2
WHERE
( tem1.PIDS LIKE CONCAT( '%', tem2.id, '%' ) OR tem1.PID = tem2.ID )
OR ( tem2.ID = tem1.ID AND NOT EXISTS ( SELECT 1 FROM sys_dept d WHERE d.PID = tem2.ID ) )
@ -196,7 +197,8 @@
SELECT
sd.id,
sd.pid,
sd.`name`
sd.`name`,
sd.type_key
FROM
sys_dept sd
where sd.del_flag='0'

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());
}
}

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

@ -243,6 +243,13 @@ ribbon:
ReadTimeout: 300000
ConnectTimeout: 300000
jwt:
token:
#秘钥
secret: 007e7e3620291354947e8b9791e2a4fa[elink.epdc]
#APPID
appid: 003edc9c09463b30e39a94353313ce56
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,10 @@ renren:
- /contentSecurity/** #内容安全接口
- /api/sys/**
worklog:
urls:
- /api/plugins/workLog/getUserInfo #获取用户信息
- /api/plugins/workLog/getUserDeptOptionByUserId #获取用户部门权限
epdc:
# 党建e家接口
@ -301,3 +313,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);
}
}

20
esua-epdc/epdc-module/epdc-api/epdc-api-client/src/main/java/com/elink/esua/epdc/dto/result/EpdcAppWorkLogUserResult.java

@ -0,0 +1,20 @@
package com.elink.esua.epdc.dto.result;
import com.elink.esua.epdc.dto.DeptOption;
import lombok.Data;
import java.util.List;
/**
* @author songyunpeng
* @Description
* @create 2021-02-05
*/
@Data
public class EpdcAppWorkLogUserResult {
private DeptOption deptOption;
private List<Long> deptIds;
}

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;
}

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

@ -0,0 +1,62 @@
package com.elink.esua.epdc.controller;
import com.elink.esua.epdc.commons.tools.utils.Result;
import com.elink.esua.epdc.dto.result.EpdcAppWorkLogUserResult;
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.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* 工作日志相关
*
* @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>
**/
@PostMapping("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<EpdcAppWorkLogUserResult> getUserDeptOptionByUserId(){
return adminService.getUserDeptOptionByUserId();
}
/**
* @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();
}
}

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

@ -178,4 +178,24 @@ 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();
/**
* @param
* @return com.elink.esua.epdc.commons.tools.utils.Result<com.elink.esua.epdc.dto.DeptOption>
* @Author yinzuomei
* @Description 获取所有组织机构信息
* @Date 2020/1/28 12:15
**/
@GetMapping("sys/dept/party/getDeptTree")
Result<DeptOption> getAllDeptTree();
}

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();
}

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

@ -90,4 +90,14 @@ 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() {
return ModuleUtils.feignConError(ServiceConstant.EPDC_ADMIN_SERVER, "getUserDeptOptionByUserId");
}
@Override
public Result<DeptOption> getAllDeptTree() {
return ModuleUtils.feignConError(ServiceConstant.EPDC_ADMIN_SERVER, "getDeptTree");
}
}

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

@ -3,6 +3,8 @@ 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.epdc.result.EpdcAppSysDictResultDTO;
import com.elink.esua.epdc.dto.result.EpdcAppWorkLogUserResult;
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<EpdcAppWorkLogUserResult> getUserDeptOptionByUserId();
/**
* @Description 获取customId
* @Author songyunpeng
* @Date 2021/1/27
* @Param []
* @return com.elink.esua.epdc.commons.tools.utils.Result<java.lang.String>
**/
Result<String> getCustomId();
}

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

@ -1,13 +1,23 @@
package com.elink.esua.epdc.service.impl;
import com.elink.esua.epdc.common.token.dto.TokenDto;
import com.elink.esua.epdc.commons.tools.enums.SuperAdminEnum;
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.EpdcAppWorkLogUserResult;
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 +35,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 +83,65 @@ 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("用户未登录");
}
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.setAdminFlag(String.valueOf(user.getSuperAdmin()));
epdcWorkLogUserDetailDTO.setMobile(user.getMobile());
if(user.getSuperAdmin() == SuperAdminEnum.NO.value()){
//查询用户部门等信息
Result<ParentAndAllDeptDTO> dtoResult = adminFeignClient.getParentAndAllDept(user.getDeptId());
ParentAndAllDeptDTO deptDTO = dtoResult.getData();
epdcWorkLogUserDetailDTO.setAgencyIdPath(deptDTO.getAllDeptIds());
epdcWorkLogUserDetailDTO.setAgencyName(deptDTO.getGrid());
epdcWorkLogUserDetailDTO.setAgencyNamePath(deptDTO.getAllDeptNames());
}
return new Result<EpdcWorkLogUserDetailDTO>().ok(epdcWorkLogUserDetailDTO);
}
@Override
public Result<EpdcAppWorkLogUserResult> getUserDeptOptionByUserId() {
//缓存中用户信息
UserDetail user = SecurityUser.getUser();
if(user == null){
throw new RenException("用户未登录");
}
EpdcAppWorkLogUserResult epdcAppWorkLogUserResult = new EpdcAppWorkLogUserResult();
epdcAppWorkLogUserResult.setDeptIds(user.getDeptIdList());
if(user.getSuperAdmin() == SuperAdminEnum.YES.value()){
Result<DeptOption> allDeptTree = adminFeignClient.getAllDeptTree();
if(allDeptTree==null || allDeptTree.getData() ==null){
return new Result<EpdcAppWorkLogUserResult>().error("获取部门列表失败");
}
epdcAppWorkLogUserResult.setDeptOption(allDeptTree.getData());
return new Result<EpdcAppWorkLogUserResult>().ok(epdcAppWorkLogUserResult);
}
Result<DeptOption> userDeptOptionByUserId = adminFeignClient.getUserDeptOptionByUserId();
if(userDeptOptionByUserId==null || userDeptOptionByUserId.getData() ==null){
return new Result<EpdcAppWorkLogUserResult>().error("获取部门列表失败");
}
epdcAppWorkLogUserResult.setDeptOption(userDeptOptionByUserId.getData());
return new Result<EpdcAppWorkLogUserResult>().ok(epdcAppWorkLogUserResult);
}
@Override
public Result<String> getCustomId() {
return analysisFeignClient.getCustomId();
}
}

1
esua-epdc/pom.xml

@ -147,5 +147,4 @@
</snapshots>
</pluginRepository>
</pluginRepositories>
</project>

Loading…
Cancel
Save