Browse Source

Merge branch 'master' of http://git.elinkit.com.cn:7070/r/epmet-cloud into lingshan_master

master
wxz 2 years ago
parent
commit
eb9e33d3e4
  1. 24
      doc/epmet-cloud.md
  2. 9
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/dto/result/CustomerStaffInfoCacheResult.java
  3. 9
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/common/bean/CustomerStaffInfoCache.java
  4. 67
      epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/ScanContentUtils.java
  5. 9
      epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/result/CustomerStaffResultDTO.java
  6. 2
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/EpmetUserController.java
  7. 3
      epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java
  8. 2
      epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/NeighborHoodServiceImpl.java

24
doc/epmet-cloud.md

@ -4,17 +4,33 @@
``` ```
开发环境已经搭建好了 开发环境已经搭建好了
在最新的代码中: 在最新的代码中:
默认情况下,所有服务的pom.xml中应该启用dev环境,其他环境的active应该被注释掉(dev-local不再有用,可以删除) 默认情况下,所有服务的pom.xml中启用local环境,其他环境的active应该被注释掉
根据dev环境中的配置,微服务会注册到nacos,并且调用其他微服务的时候会从nacos中取目标微服务的ip来发送请求 根据dev环境中的配置,微服务会注册到nacos,并且调用其他微服务的时候会从nacos中取目标微服务的ip来发送请求
因此,本地电脑不再需要启动所有服务,只需要启动要开发的服务即可;默认情况下,本机的微服务在调用目标微服务的时候,都是调用的服务器,不再请求本地。 因此,本地电脑不再需要启动所有服务,只需要启动要开发的服务即可;默认情况下,本机的微服务在调用目标微服务的时候,都是调用的服务器,不再请求本地。
例如:有A、B2个服务,并且A调用B,如果我们只需要开发A服务,那本地只启动A服务即可,A调用B的时候,会调用服务器的B服务。 例如:有A、B2个服务,并且A调用B,如果我们只需要开发A服务,那本地只启动A服务即可,A调用B的时候,会调用服务器的B服务。
如果需要开发AB2个服务,那么将A中的FeignClient的url属性指向localhost。 如果需要开发AB2个服务,那么将A中的FeignClient的url属性指向localhost:[B的端口]
PS:目前正在测试通过负载均衡器和本地环境变量实现动态修改目标服务IP,成功之后就不需要再修改FeignClient的url,配置一下环境变量即可,到时候具体说 PS:目前正在测试通过负载均衡器和本地环境变量实现动态修改目标服务IP,成功之后就不需要再修改FeignClient的url,配置一下环境变量即可,到时候具体说
``` ```
## 私有化部署 ## 私有化部署
##### 需要开放哪些域名 ##### 需要对外访问哪些域名
- epmet-cloud.elinkservice.cn 微信交互代理 - epmet-cloud.elinkservice.cn 微信交互代理,第三方,客户等
- dysmsapi.aliyuncs.com 阿里云短信 - dysmsapi.aliyuncs.com 阿里云短信
- api.weixin.qq.com 微信直接交互(二维码等)
- oss-cn-qingdao.aliyuncs.com(如果需要用到oss)
#### 腾讯云呼叫中心需要调用,需要开放
- https://map.qq.com
- https://pr.map.qq.com
- https://webapi.amap.com
- https://tccc.qcloud.com
- https://aegis.qq.com
- https://api.tccc.qcloud.com
- wss://wss.im.qcloud.com
- https://tpstelemetry.tencent.com
- https://ccc.ap-shanghai.tencentcloudapi.com
- https://ccc.tencentcloudapi.com

9
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/dto/result/CustomerStaffInfoCacheResult.java

@ -22,6 +22,15 @@ public class CustomerStaffInfoCacheResult implements Serializable {
*/ */
private String agencyId; private String agencyId;
/**
* agencyId的上级
*/
private String pid;
/**
* 工作人员所属组织的org_id_path
*/
private String orgIdPath;
/** /**
* 工作人员所属组织ID的pids * 工作人员所属组织ID的pids
*/ */

9
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/redis/common/bean/CustomerStaffInfoCache.java

@ -21,7 +21,14 @@ public class CustomerStaffInfoCache implements Serializable {
* 工作人员所属组织ID * 工作人员所属组织ID
*/ */
private String agencyId; private String agencyId;
/**
* agencyId的上级
*/
private String pid;
/**
* 工作人员所属组织的org_id_path
*/
private String orgIdPath;
/** /**
* 工作人员所属组织ID的pids * 工作人员所属组织ID的pids
*/ */

67
epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/utils/ScanContentUtils.java

@ -27,12 +27,59 @@ import java.util.stream.Collectors;
**/ **/
@Slf4j @Slf4j
public class ScanContentUtils { public class ScanContentUtils {
// 内容审核是否可用。烟台是政务网,无法使用互联网,所以该功能不可用
public static final Boolean USABLE = true;
/**
* 模拟sync成功的结果(可以用来模拟也可以适用于无法使用互联网的环境)
* @author wxz
* @date 2022/12/13 15:37
*
* * @return Result<SyncScanResult>
*/
public static Result<SyncScanResult> mockSyncSuccessResult() {
Result<SyncScanResult> tempRst = new Result<>();
SyncScanResult syncScanResult = new SyncScanResult();
syncScanResult.setAllPass(true);
tempRst.setData(syncScanResult);
return tempRst;
}
/**
* 模拟async成功的结果(可以用来模拟也可以适用于无法使用互联网的环境)
* @author wxz
* @date 2022/12/13 15:46
*
* * @return Result<AsyncScanResult>
*/
public static Result<AsyncScanResult> mockAsyncSuccessResult() {
Result<AsyncScanResult> tempRst = new Result<>();
AsyncScanResult asyncScanResult = new AsyncScanResult();
asyncScanResult.setAllSuccess(true);
tempRst.setData(asyncScanResult);
return tempRst;
}
public static Result<VideoAsyncScanResultDTO> mockVideoAsyncSuccessResult() {
Result<VideoAsyncScanResultDTO> tempRst = new Result<>();
VideoAsyncScanResultDTO asyncScanResult = new VideoAsyncScanResultDTO();
asyncScanResult.setIsAllPass(true);
tempRst.setData(asyncScanResult);
return tempRst;
}
/** /**
* desc:图片同步扫描 * desc:图片同步扫描
* *
* @return * @return
*/ */
public static Result<SyncScanResult> imgSyncScan(String url, ImgScanParamDTO param) { public static Result<SyncScanResult> imgSyncScan(String url, ImgScanParamDTO param) {
if (!USABLE) {
return mockSyncSuccessResult();
}
//start 测试环境停机了,先这样改试试 //start 测试环境停机了,先这样改试试
EnvEnum currentEnv = EnvEnum.getCurrentEnv(); EnvEnum currentEnv = EnvEnum.getCurrentEnv();
if(EnvEnum.LOCAL.getCode().equals(currentEnv.getCode())||EnvEnum.DEV.getCode().equals(currentEnv.getCode())){ if(EnvEnum.LOCAL.getCode().equals(currentEnv.getCode())||EnvEnum.DEV.getCode().equals(currentEnv.getCode())){
@ -68,6 +115,11 @@ public class ScanContentUtils {
* @return * @return
*/ */
public static Result<SyncScanResult> textSyncScan(String url, TextScanParamDTO param) { public static Result<SyncScanResult> textSyncScan(String url, TextScanParamDTO param) {
if (!USABLE) {
return mockSyncSuccessResult();
}
//start 测试环境停机了,先这样改试试 //start 测试环境停机了,先这样改试试
EnvEnum currentEnv = EnvEnum.getCurrentEnv(); EnvEnum currentEnv = EnvEnum.getCurrentEnv();
if(EnvEnum.LOCAL.getCode().equals(currentEnv.getCode())||EnvEnum.DEV.getCode().equals(currentEnv.getCode())){ if(EnvEnum.LOCAL.getCode().equals(currentEnv.getCode())||EnvEnum.DEV.getCode().equals(currentEnv.getCode())){
@ -104,6 +156,11 @@ public class ScanContentUtils {
* @return 返回检测对象对应的任务id * @return 返回检测对象对应的任务id
*/ */
public static Result<AsyncScanResult> voiceAsyncScan(String url, VoiceScanParamDTO param){ public static Result<AsyncScanResult> voiceAsyncScan(String url, VoiceScanParamDTO param){
if (!USABLE) {
return mockAsyncSuccessResult();
}
log.debug("voiceAsyncScan param:{}", JSON.toJSONString(param)); log.debug("voiceAsyncScan param:{}", JSON.toJSONString(param));
if (StringUtils.isBlank(url) || param == null) { if (StringUtils.isBlank(url) || param == null) {
throw new RenException("参数错误"); throw new RenException("参数错误");
@ -164,6 +221,11 @@ public class ScanContentUtils {
* @description 异步检测-提交检测任务 * @description 异步检测-提交检测任务
**/ **/
public static Result<AsyncScanResult> videoAsyncScan(String url, VideoScanParamDTO param){ public static Result<AsyncScanResult> videoAsyncScan(String url, VideoScanParamDTO param){
if (!USABLE) {
return mockAsyncSuccessResult();
}
log.debug("videoAsyncScan param:{}", JSON.toJSONString(param)); log.debug("videoAsyncScan param:{}", JSON.toJSONString(param));
if (StringUtils.isBlank(url) || param == null) { if (StringUtils.isBlank(url) || param == null) {
throw new RenException("参数错误"); throw new RenException("参数错误");
@ -194,6 +256,11 @@ public class ScanContentUtils {
* @description 查询视频检测结果 * @description 查询视频检测结果
**/ **/
public static Result<VideoAsyncScanResultDTO> videoResults(String url, List<String> taskIds) { public static Result<VideoAsyncScanResultDTO> videoResults(String url, List<String> taskIds) {
if (!USABLE) {
return mockVideoAsyncSuccessResult();
}
if (StringUtils.isBlank(url) || CollectionUtils.isEmpty(taskIds)) { if (StringUtils.isBlank(url) || CollectionUtils.isEmpty(taskIds)) {
throw new RenException("参数错误"); throw new RenException("参数错误");
} }

9
epmet-module/data-aggregator/data-aggregator-client/src/main/java/com/epmet/dataaggre/dto/epmetuser/result/CustomerStaffResultDTO.java

@ -20,7 +20,14 @@ public class CustomerStaffResultDTO implements Serializable {
* 工作人员所属组织ID * 工作人员所属组织ID
*/ */
private String agencyId; private String agencyId;
/**
* agencyId的上级
*/
private String pid;
/**
* 工作人员所属组织的org_id_path
*/
private String orgIdPath;
/** /**
* 工作人员所属组织ID的pids * 工作人员所属组织ID的pids
*/ */

2
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/controller/EpmetUserController.java

@ -268,7 +268,7 @@ public class EpmetUserController {
* remark: * remark:
*/ */
@PostMapping("getStaffInfo/{staffId}") @PostMapping("getStaffInfo/{staffId}")
public Result getStaffInfo(@PathVariable(name = "staffId") String staffId){ public Result<CustomerStaffResultDTO> getStaffInfo(@PathVariable(name = "staffId") String staffId){
return new Result<CustomerStaffResultDTO>().ok(epmetUserService.getStaffInfo(staffId)); return new Result<CustomerStaffResultDTO>().ok(epmetUserService.getStaffInfo(staffId));
} }

3
epmet-module/data-aggregator/data-aggregator-server/src/main/java/com/epmet/dataaggre/service/epmetuser/impl/EpmetUserServiceImpl.java

@ -654,6 +654,9 @@ public class EpmetUserServiceImpl implements EpmetUserService, ResultDataResolve
} }
result.setStaffId(staffEntity.getUserId()); result.setStaffId(staffEntity.getUserId());
result.setAgencyId(agencyDTO.getId()); result.setAgencyId(agencyDTO.getId());
//新增pid,orgIdPath
result.setPid(agencyDTO.getPid());
result.setOrgIdPath(PidUtils.convertPid2OrgIdPath(agencyDTO.getId(),agencyDTO.getPids()));
result.setAgencyName(agencyDTO.getOrganizationName()); result.setAgencyName(agencyDTO.getOrganizationName());
result.setAgencyPIds(agencyDTO.getPids()); result.setAgencyPIds(agencyDTO.getPids());
result.setLevel(agencyDTO.getLevel()); result.setLevel(agencyDTO.getLevel());

2
epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/NeighborHoodServiceImpl.java

@ -12,6 +12,7 @@ import com.epmet.commons.tools.enums.CollectUrlEnum;
import com.epmet.commons.tools.enums.OrgTypeEnum; import com.epmet.commons.tools.enums.OrgTypeEnum;
import com.epmet.commons.tools.exception.EpmetErrorCode; import com.epmet.commons.tools.exception.EpmetErrorCode;
import com.epmet.commons.tools.exception.EpmetException; import com.epmet.commons.tools.exception.EpmetException;
import com.epmet.commons.tools.exception.ExceptionUtils;
import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.exception.RenException;
import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.page.PageData;
import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.ConvertUtils;
@ -134,6 +135,7 @@ public class NeighborHoodServiceImpl extends BaseServiceImpl<IcNeighborHoodDao,I
try { try {
neiEntity.setQrcodeUrl(createNeiQrcodeUrl(entity)); neiEntity.setQrcodeUrl(createNeiQrcodeUrl(entity));
} catch (Exception e) { } catch (Exception e) {
log.error("【新增小区】二维码生成失败:" + ExceptionUtils.getErrorStackTrace(e));
throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),"二维码生成失败","二维码生成失败"); throw new EpmetException(EpmetErrorCode.EPMET_COMMON_OPERATION_FAIL.getCode(),"二维码生成失败","二维码生成失败");
} }
baseDao.updateById(neiEntity); baseDao.updateById(neiEntity);

Loading…
Cancel
Save