From f20611265f7d34fd4fbcdfdaff6cb9cccd0b25fc Mon Sep 17 00:00:00 2001
From: shenyijian <1178253012@qq.com>
Date: Fri, 21 Jun 2024 11:53:21 +0800
Subject: [PATCH] 湖北水库:施工:项目查询过滤无效修复、根据角色查询用户

---
 skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/jcsb/service/impl/DangerReportServiceImpl.java |   73 ++++++++++++++++++++++++++++++++++--
 1 files changed, 68 insertions(+), 5 deletions(-)

diff --git a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/jcsb/service/impl/DangerReportServiceImpl.java b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/jcsb/service/impl/DangerReportServiceImpl.java
index e873ac9..e37cb1d 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/jcsb/service/impl/DangerReportServiceImpl.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-sm/src/main/java/cn/gistack/sm/jcsb/service/impl/DangerReportServiceImpl.java
@@ -1,5 +1,6 @@
 package cn.gistack.sm.jcsb.service.impl;
 
+import cn.gistack.common.utils.Base64Utils;
 import cn.gistack.pwd.dto.CBCResultDTO;
 import cn.gistack.pwd.dto.ResultDTO;
 import cn.gistack.pwd.fegin.IPwdClient;
@@ -24,6 +25,9 @@
 import org.springframework.transaction.annotation.Propagation;
 import org.springframework.transaction.annotation.Transactional;
 
+import java.io.Serializable;
+import java.net.URLDecoder;
+import java.net.URLEncoder;
 import java.util.List;
 
 /**
@@ -50,7 +54,26 @@
 
 	@Override
 	public IPage<DangerReportVO> selectPage(IPage<DangerReportVO> page, DangerReportVO dangerReportVO) {
-		return page.setRecords(baseMapper.selectRecordPage(page,dangerReportVO));
+
+
+		try {
+			List<DangerReportVO> dangerReportVOS = baseMapper.selectRecordPage(page, dangerReportVO);
+			dangerReportVOS.forEach(item->{
+				R<ResultDTO> res = pwdClient.getDecrypt(item.getSm4iv(), item.getKeyindexs(), item.getEncdata());
+				if (res.getCode() == 200){
+					item.setBase64Data(res.getData().getData());
+				}
+
+				item.setEncdata("");
+				item.setKeyindexs("");
+				item.setSm4iv("");
+			});
+			return page.setRecords(dangerReportVOS);
+		}catch (Exception e){
+			e.printStackTrace();
+		}
+		return page;
+
 	}
 
 	@Override
@@ -65,13 +88,34 @@
 
 		// 获取水库名称
 		AttResBase attResBase = attResBaseService.getDetailByCode(dangerReport.getReservoirId());
-		dangerReportSUPO.setReservoirName(attResBase.getName());
+		//转码后的水库名
+		String encodeReservoirName = "";
+		//转码后的上报人
+		String encodeCreateUserName = "";
+		//转码后的处理人
+		String encodeToUserName = "";
+		String encodeDesinfo = "";
+		R<User> userR = userClient.userInfoById(Long.parseLong(dangerReportSUPO.getToUser()));
+		R<User> createUser = userClient.userInfoById(dangerReportSUPO.getCreateUser());
+
+		try {
+			encodeReservoirName= URLEncoder.encode(attResBase.getName(), "UTF-8");
+			encodeCreateUserName = URLEncoder.encode(createUser.getData().getName(), "UTF-8");
+			encodeToUserName=URLEncoder.encode(userR.getData().getName(), "UTF-8");
+			encodeDesinfo = URLEncoder.encode(dangerReport.getDesinfo(), "UTF-8");
+		}catch (Exception e){
+			System.out.println(e);
+		}
+
+
+		dangerReportSUPO.setReservoirName(encodeReservoirName);
 		dangerReport.setReservoirName(attResBase.getName()); // 保存水库名称
+		dangerReport.setReservoirId(attResBase.getGuid());
 
 		// 获取用户
-		dangerReportSUPO.setCreateUserName(AuthUtil.getUser().getUserName());
-		R<User> userR = userClient.userInfoById(Long.parseLong(dangerReportSUPO.getToUser()));
-		dangerReportSUPO.setToUserName(userR.getData().getName());
+		dangerReportSUPO.setCreateUserName(encodeCreateUserName);
+		dangerReportSUPO.setToUserName(encodeToUserName);
+		dangerReportSUPO.setDesinfo(encodeDesinfo);
 
 		String message = JSONObject.toJSONString(dangerReportSUPO);
 		R<CBCResultDTO> cbcResultDTOR =  pwdClient.getCBCMacEncipher(message);
@@ -94,4 +138,23 @@
 
 	}
 
+	@Override
+	public DangerReportVO getVODetail(String id) {
+		DangerReport item = super.getById(id);
+		DangerReportVO newEntity = new DangerReportVO();
+		newEntity.setId(item.getId());
+
+		R<ResultDTO> res = pwdClient.getDecrypt(item.getSm4iv(), item.getKeyindexs(), item.getEncdata());
+
+		if (res.getCode() == 200){
+			newEntity.setBase64Data(res.getData().getData());
+			newEntity.setCreateTime(item.getCreateTime());
+		}
+
+		String  jsonStr = Base64Utils.getBase64Decode(res.getData().getData());
+		pwdClient.verify(item.getMaced(),item.getSm4iv(),item.getKeyindexs(),jsonStr,id,"sm_danger_report");
+
+		return newEntity;
+	}
+
 }

--
Gitblit v1.9.3