diff --git a/epdc-cloud-api/src/main/java/com/elink/esua/epdc/controller/ApiWorkLogController.java b/epdc-cloud-api/src/main/java/com/elink/esua/epdc/controller/ApiWorkLogController.java new file mode 100644 index 0000000..b6a530a --- /dev/null +++ b/epdc-cloud-api/src/main/java/com/elink/esua/epdc/controller/ApiWorkLogController.java @@ -0,0 +1,61 @@ +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.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 + **/ + @PostMapping("getUserInfo") + public Result getUserInfo(){ + return adminService.getUserInfo(); + } + + /** + * @Description 获取用户部门权限 + * @Author songyunpeng + * @Date 2021/1/27 + * @Param [] + * @return com.elink.esua.epdc.commons.tools.utils.Result + **/ + @PostMapping("getUserDeptOptionByUserId") + public Result 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 getCustomId(){ + return adminService.getCustomId(); + } + + +} diff --git a/epdc-cloud-api/src/main/java/com/elink/esua/epdc/feign/AdminFeignClient.java b/epdc-cloud-api/src/main/java/com/elink/esua/epdc/feign/AdminFeignClient.java index 62f3a9b..d4e475c 100644 --- a/epdc-cloud-api/src/main/java/com/elink/esua/epdc/feign/AdminFeignClient.java +++ b/epdc-cloud-api/src/main/java/com/elink/esua/epdc/feign/AdminFeignClient.java @@ -13,6 +13,7 @@ import org.springframework.cloud.openfeign.FeignClient; import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestParam; import java.util.List; @@ -124,4 +125,25 @@ public interface AdminFeignClient { */ @GetMapping(value = "sys/user/updateAvatar", consumes = MediaType.APPLICATION_JSON_VALUE) Result updateAvatar(@RequestParam("avatar") String avatar); + + /** + * 获取用户部门多层结构,用户前端显示,请求需携带token -- 工作日志使用 + * + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @author work@yujt.net.cn + * @date 2019/11/27 14:31 + */ + @PostMapping(value = "sys/user/deptOptions/getUserDeptOptionByUserId", consumes = MediaType.APPLICATION_JSON_VALUE) + Result getUserDeptOptionByUserId(); + + /** + * @param + * @return com.elink.esua.epdc.commons.tools.utils.Result + * @Author yinzuomei + * @Description 获取所有组织机构信息 + * @Date 2020/1/28 12:15 + **/ + @GetMapping("sys/dept/party/getDeptTree") + Result getAllDeptTree(); + } diff --git a/epdc-cloud-api/src/main/java/com/elink/esua/epdc/feign/AnalysisFeignClient.java b/epdc-cloud-api/src/main/java/com/elink/esua/epdc/feign/AnalysisFeignClient.java new file mode 100644 index 0000000..c206e8a --- /dev/null +++ b/epdc-cloud-api/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; + +/** + * 数据分析模块调用 + * + * @Author:liuchuang + * @Date:2020/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 getCustomId(); + + +} diff --git a/epdc-cloud-api/src/main/java/com/elink/esua/epdc/feign/fallback/AdminFeignClientFallback.java b/epdc-cloud-api/src/main/java/com/elink/esua/epdc/feign/fallback/AdminFeignClientFallback.java index ba5917a..42f07b8 100644 --- a/epdc-cloud-api/src/main/java/com/elink/esua/epdc/feign/fallback/AdminFeignClientFallback.java +++ b/epdc-cloud-api/src/main/java/com/elink/esua/epdc/feign/fallback/AdminFeignClientFallback.java @@ -67,4 +67,14 @@ public class AdminFeignClientFallback implements AdminFeignClient { public Result updateAvatar(String avatar) { return ModuleUtils.feignConError(ServiceConstant.EPDC_ADMIN_SERVER, "updateAvatar", avatar); } + + @Override + public Result getUserDeptOptionByUserId() { + return ModuleUtils.feignConError(ServiceConstant.EPDC_ADMIN_SERVER, "getUserDeptOptionByUserId"); + } + + @Override + public Result getAllDeptTree() { + return ModuleUtils.feignConError(ServiceConstant.EPDC_ADMIN_SERVER, "getDeptTree"); + } } diff --git a/epdc-cloud-api/src/main/java/com/elink/esua/epdc/feign/fallback/AnalysisFeignClientFallback.java b/epdc-cloud-api/src/main/java/com/elink/esua/epdc/feign/fallback/AnalysisFeignClientFallback.java new file mode 100644 index 0000000..bb6072e --- /dev/null +++ b/epdc-cloud-api/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; + +/** + * @Author:songyunpeg + * @Date:2020/9/9 15:42 + */ +@Component +public class AnalysisFeignClientFallback implements AnalysisFeignClient { + + @Override + public Result getCustomId() { + return ModuleUtils.feignConError(ServiceConstant.EPDC_ANALYSIS_SERVER, "getCustomId"); + } +} diff --git a/epdc-cloud-api/src/main/java/com/elink/esua/epdc/service/AdminService.java b/epdc-cloud-api/src/main/java/com/elink/esua/epdc/service/AdminService.java index 55e0688..89354d2 100644 --- a/epdc-cloud-api/src/main/java/com/elink/esua/epdc/service/AdminService.java +++ b/epdc-cloud-api/src/main/java/com/elink/esua/epdc/service/AdminService.java @@ -1,6 +1,8 @@ package com.elink.esua.epdc.service; import com.elink.esua.epdc.commons.tools.utils.Result; +import com.elink.esua.epdc.dto.DeptOption; +import com.elink.esua.epdc.dto.result.EpdcWorkLogUserDetailDTO; /** * 管理端相关接口 @@ -20,4 +22,29 @@ public interface AdminService { * @date 2019/9/11 09:46 */ Result getCompleteDeptName(Long gridId); + /** + * @Description 获取用户信息 + * @Author songyunpeng + * @Date 2021/1/27 + * @Param [] + * @return com.elink.esua.epdc.commons.tools.utils.Result + **/ + Result getUserInfo(); + /** + * @Description 获取用户部门权限 + * @Author songyunpeng + * @Date 2021/1/27 + * @Param [userId] + * @return com.elink.esua.epdc.commons.tools.utils.Result + **/ + Result getUserDeptOptionByUserId(); + + /** + * @Description 获取customId + * @Author songyunpeng + * @Date 2021/1/27 + * @Param [] + * @return com.elink.esua.epdc.commons.tools.utils.Result + **/ + Result getCustomId(); } diff --git a/epdc-cloud-api/src/main/java/com/elink/esua/epdc/service/impl/AdminServiceImpl.java b/epdc-cloud-api/src/main/java/com/elink/esua/epdc/service/impl/AdminServiceImpl.java index c5f7998..fb6304c 100644 --- a/epdc-cloud-api/src/main/java/com/elink/esua/epdc/service/impl/AdminServiceImpl.java +++ b/epdc-cloud-api/src/main/java/com/elink/esua/epdc/service/impl/AdminServiceImpl.java @@ -1,9 +1,18 @@ package com.elink.esua.epdc.service.impl; +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.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; @@ -19,6 +28,9 @@ public class AdminServiceImpl implements AdminService { @Autowired private AdminFeignClient adminFeignClient; + @Autowired + private AnalysisFeignClient analysisFeignClient; + @Override public Result getCompleteDeptName(Long gridId) { Result adminResult = adminFeignClient.getCompleteDept(gridId); @@ -33,4 +45,52 @@ public class AdminServiceImpl implements AdminService { .concat(completeDept.getGrid()); return new Result().ok(deptName); } + + @Override + public Result getUserInfo() { + //缓存中用户信息 + UserDetail user = SecurityUser.getUser(); + if(user == null){ + throw new RenException("用户未登录"); + } + Result 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 dtoResult = adminFeignClient.getParentAndAllDept(user.getDeptId()); + ParentAndAllDeptDTO deptDTO = dtoResult.getData(); + epdcWorkLogUserDetailDTO.setAgencyIdPath(deptDTO.getAllDeptIds()); + epdcWorkLogUserDetailDTO.setAgencyName(deptDTO.getGrid()); + epdcWorkLogUserDetailDTO.setAgencyNamePath(deptDTO.getAllDeptNames()); + } + return new Result().ok(epdcWorkLogUserDetailDTO); + } + + @Override + public Result getUserDeptOptionByUserId() { + //缓存中用户信息 + UserDetail user = SecurityUser.getUser(); + if(user == null){ + throw new RenException("用户未登录"); + } + if(user.getSuperAdmin() == SuperAdminEnum.YES.value()){ + return adminFeignClient.getAllDeptTree(); + } + return adminFeignClient.getUserDeptOptionByUserId(); + } + @Override + public Result getCustomId() { + return analysisFeignClient.getCustomId(); + } }