From 24797ef3f03b3b59f9ddced9a7d4962a7efc413c Mon Sep 17 00:00:00 2001
From: zengh <123456>
Date: Mon, 01 Nov 2021 09:05:09 +0800
Subject: [PATCH] 资格审查内网穿透

---
 src/main/java/org/springblade/common/config/BladeConfiguration.java            |    1 
 src/main/java/org/springblade/modules/system/mapper/UserMapper.xml             |   19 ++
 src/main/java/org/springblade/modules/investigate/Investigate.java             |  236 +++++++++++++++++++++++++++++++++
 src/main/java/org/springblade/modules/system/service/impl/UserServiceImpl.java |    9 +
 src/main/java/org/springblade/common/utils/InvestigateUtil.java                |   93 +++++++++++++
 src/main/resources/application-dev.yml                                         |    6 
 src/main/java/org/springblade/modules/system/entity/User.java                  |   14 ++
 src/main/java/org/springblade/modules/system/mapper/UserMapper.java            |    6 
 src/main/java/org/springblade/modules/system/service/IUserService.java         |    6 
 9 files changed, 386 insertions(+), 4 deletions(-)

diff --git a/src/main/java/org/springblade/common/config/BladeConfiguration.java b/src/main/java/org/springblade/common/config/BladeConfiguration.java
index 610bb6b..e81bf16 100644
--- a/src/main/java/org/springblade/common/config/BladeConfiguration.java
+++ b/src/main/java/org/springblade/common/config/BladeConfiguration.java
@@ -100,6 +100,7 @@
 		secureRegistry.excludePathPatterns("/likes/**");
 		secureRegistry.excludePathPatterns("/comment/**");
 		secureRegistry.excludePathPatterns("/collect/**");
+		secureRegistry.excludePathPatterns("/investigate/**");
 		return secureRegistry;
 	}
 
diff --git a/src/main/java/org/springblade/common/utils/InvestigateUtil.java b/src/main/java/org/springblade/common/utils/InvestigateUtil.java
new file mode 100644
index 0000000..7951167
--- /dev/null
+++ b/src/main/java/org/springblade/common/utils/InvestigateUtil.java
@@ -0,0 +1,93 @@
+package org.springblade.common.utils;
+
+import okhttp3.OkHttpClient;
+import okhttp3.Request;
+import okhttp3.Response;
+
+import java.util.function.BiConsumer;
+import java.util.function.Consumer;
+
+/**
+ * @author zhongrj
+ * @date 2021-08-12
+ */
+public class InvestigateUtil {
+
+	/**
+	 * 人员审查
+	 * @param idCardNo 人员身份证号
+	 * @return
+	 */
+	public static String httpGet(String idCardNo,Integer pageNum,Integer pageSize) {
+		OkHttpClient client = new OkHttpClient();
+		Request request = new Request.Builder()
+			.url("http://47.49.27.44:8000/dbapi/dmc_bjhc?page_num="+pageNum+"&page_size="+pageSize+"&sfzh="+idCardNo)
+			.get()
+			.addHeader("Authorization","Bearer eyJ0eXAiOiJqd3QiLCJhbGciOiJIUzI1NiIsInVjIjoiMzYwNjAyMTk4OTA3MDgxMDE4IiwidG9rZW5fdHlwZSI6MX0.eyJpc3MiOiJITGdGVGYwZWwwNTRDYlNWNUptMUY1eXA3UjRWNnpuMyIsImlhdCI6MTYyOTc5NDk4MH0.KOyEdkXDc5FP98KFLYOBnDgthJZF6VDOxJvlYFrXmrA")
+			.build();
+		try{
+			Response response = client.newCall(request).execute();
+			return response.body().string();
+		} catch(Exception e) {
+
+		}
+		return null;
+	}
+
+	/**
+	 * 人员审查
+	 * @param idCardNo 人员身份证号
+	 * @return
+	 */
+	public static String httpGetOne(String idCardNo) {
+		OkHttpClient client = new OkHttpClient();
+		Request request = new Request.Builder()
+			.url("http://47.49.27.44:8000/dbapi/dmc_bjhc?page_num=1&page_size=1000&sfzh="+idCardNo)
+			.get()
+			.addHeader("Authorization","Bearer eyJ0eXAiOiJqd3QiLCJhbGciOiJIUzI1NiIsInVjIjoiMzYwNjAyMTk4OTA3MDgxMDE4IiwidG9rZW5fdHlwZSI6MX0.eyJpc3MiOiJITGdGVGYwZWwwNTRDYlNWNUptMUY1eXA3UjRWNnpuMyIsImlhdCI6MTYyOTc5NDk4MH0.KOyEdkXDc5FP98KFLYOBnDgthJZF6VDOxJvlYFrXmrA")
+			.build();
+		try{
+			Response response = client.newCall(request).execute();
+			return response.body().string();
+		} catch(Exception e) {
+
+		}
+		return null;
+	}
+
+	/**
+	 * 枪支定位
+	 * @param idCardNo  护卫员身份证号
+	 * @param deptName 所在单位名称
+	 * @param startTime 定位开始时间
+	 * @param endTime 定位结束时间
+	 */
+	public static String httpGetGunPosition(String idCardNo,String deptName,String startTime,String endTime,Integer pageNum,Integer pageSize) {
+		OkHttpClient client = new OkHttpClient();
+		Request request = new Request.Builder()
+			.url("http://47.49.27.44:8000/dbapi/dmc_qzdw?page_num="+pageNum+"&page_size="+pageSize+"&hwysfzh="+idCardNo+"&szdw="+deptName+"&kssj="+startTime+"&jssj="+endTime)
+			.get()
+			.addHeader("Authorization","Bearer eyJ0eXAiOiJqd3QiLCJhbGciOiJIUzI1NiIsInVjIjoiMzYwNjAyMTk4OTA3MDgxMDE4IiwidG9rZW5fdHlwZSI6MX0.eyJpc3MiOiI3aWN5MXplc3N2eVBPVlJKUVk2aHpPRTJhc0JMdkw1MyIsImlhdCI6MTYyOTI1MTMzOX0.DLasFawQHexpRBFORQU64tbSR_n76bpway42GfIwPf4")
+			.build();
+		try{
+			Response response = client.newCall(request).execute();
+			return response.body().string();
+		} catch(Exception e) {
+
+		}
+		return null;
+	}
+
+
+	// 工具方法
+	public static <T> Consumer<T> consumerWithIndex(BiConsumer<T, Integer> consumer) {
+		class Obj {
+			int i;
+		}
+		Obj obj = new Obj();
+		return t -> {
+			int index = obj.i++;
+			consumer.accept(t, index);
+		};
+	}
+}
diff --git a/src/main/java/org/springblade/modules/investigate/Investigate.java b/src/main/java/org/springblade/modules/investigate/Investigate.java
new file mode 100644
index 0000000..fa9e102
--- /dev/null
+++ b/src/main/java/org/springblade/modules/investigate/Investigate.java
@@ -0,0 +1,236 @@
+package org.springblade.modules.investigate;
+
+import lombok.AllArgsConstructor;
+import org.json.JSONArray;
+import org.json.JSONObject;
+import org.springblade.common.utils.InvestigateUtil;
+import org.springblade.core.tool.api.R;
+import org.springblade.modules.system.entity.User;
+import org.springblade.modules.system.service.IUserService;
+import org.springframework.web.bind.annotation.*;
+
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @author zhongrj
+ *
+ * 资格审核测试接口
+ */
+@RestController
+@AllArgsConstructor
+public class Investigate {
+
+	private final IUserService userService;
+
+	/**
+	 * 单个人员审查
+	 * @param idCardNo 身份证号码
+	 * @return
+	 */
+	@GetMapping("/investigate")
+	public String getInvestigate(String idCardNo,
+								 @RequestParam(defaultValue = "1")Integer pageNum,
+								 @RequestParam(defaultValue = "10")Integer pageSize){
+		return InvestigateUtil.httpGetOne(idCardNo);
+	}
+
+	/**
+	 * 枪支定位
+	 * @param idCardNo  护卫员身份证号
+	 * @param deptName 所在单位名称
+	 * @param startTime 定位开始时间
+	 * @param endTime 定位结束时间
+	 */
+	@GetMapping("/investigate/gun")
+	public String getInvestigateGun(String idCardNo,
+									String deptName,
+									String startTime,
+									String endTime,
+									@RequestParam(defaultValue = "1")Integer pageNum,
+									@RequestParam(defaultValue = "10")Integer pageSize){
+		return InvestigateUtil.httpGetGunPosition(idCardNo,deptName,startTime,endTime,pageNum,pageSize);
+	}
+
+
+
+
+//	/**
+//	 *
+//	 * @return
+//	 */
+//	@GetMapping("/investigate/byUser")
+//	public R investigateByUser(){
+//		//查询用户数据,未删除的
+//		List<User> users = userService.getAllUserList();
+//		//遍历
+//		users.forEach(InvestigateUtil.consumerWithIndex((user,index) ->{
+//			if (index==80){
+//				try {
+//					Thread.sleep(500);
+//				} catch (InterruptedException e) {
+//					e.printStackTrace();
+//				}
+//			}
+//			String body = InvestigateUtil.httpGet(user.getCardid());
+//			JSONObject jsonObject = new JSONObject(body);
+//			Object data = jsonObject.get("data");
+//			JSONObject jsonData = new JSONObject(data.toString());
+//			JSONArray res = jsonData.getJSONArray("res");
+//			if (res.length()==0){
+//				//没有数据正常
+//				user.setExamination_type("0");
+//			}else {
+//				user.setExamination_type("1");
+//				user.setExamination_mx(res.getJSONObject(0).get("zdxsfzqkry").toString());
+//			}
+//			//更新用户数据
+//			userService.updateById(user);
+//		}));
+//		return R.data(users.size());
+//	}
+
+	/**
+	 * 人员审查
+	 * @return
+	 */
+	@GetMapping("/investigate/byUser")
+	public R investigateByUser(@RequestParam(defaultValue = "1") Integer pageNum,
+							   @RequestParam(defaultValue = "1000")Integer pageSize){
+		//查询用户数据,未删除的,未审核的
+		List<User> users = userService.getNotAuditAllUserList();
+		//遍历
+		users.forEach(InvestigateUtil.consumerWithIndex((user,index) ->{
+			if (null!=user.getCardid() && user.getCardid()!="") {
+				if (index == 1000) {
+					try {
+						Thread.sleep(1000);
+					} catch (InterruptedException e) {
+						e.printStackTrace();
+					}
+				}
+				String body = InvestigateUtil.httpGetOne(user.getCardid());
+				JSONObject jsonObject = new JSONObject(body);
+				Object data = jsonObject.get("data");
+				JSONObject jsonData = new JSONObject(data.toString());
+				JSONArray res = jsonData.getJSONArray("res");
+				//设置审核时间
+				user.setAuditTime(new Date());
+				if (res.length() == 0) {
+					//没有数据正常
+					user.setExamination_type("0");
+				} else {
+					int count = 0;
+					user.setExamination_type("1");
+					for (int i = 0; i < res.length(); i++) {
+						if (res.getJSONObject(i).get("zdrylbjh").toString() != null
+							&& res.getJSONObject(i).get("zdrylbjh").toString() != ""
+							&& res.getJSONObject(i).get("zdrylbjh").toString() != "null"
+						) {
+							user.setExamination_mx(res.getJSONObject(i).get("zdrylbjh").toString());
+							//更新用户数据
+							userService.updateById(user);
+							break;
+						}
+						if (res.getJSONObject(i).get("zdryxlmc").toString() != null
+							&& res.getJSONObject(i).get("zdryxlmc").toString() != ""
+							&& res.getJSONObject(i).get("zdryxlmc").toString() != "null"
+						) {
+							user.setExamination_mx(res.getJSONObject(i).get("zdryxlmc").toString());
+							//更新用户数据
+							userService.updateById(user);
+							break;
+						}
+						if (res.getJSONObject(i).get("ztrylx").toString() != null
+							&& res.getJSONObject(i).get("ztrylx").toString() != ""
+							&& res.getJSONObject(i).get("ztrylx").toString() != "null"
+						) {
+							user.setExamination_mx(res.getJSONObject(i).get("ztrylx").toString());
+							//更新用户数据
+							userService.updateById(user);
+							break;
+						}
+//						if (res.getJSONObject(i).get("ajlbmc").toString() != null
+//							&& res.getJSONObject(i).get("ajlbmc").toString() != "") {
+//							user.setExamination_mx(res.getJSONObject(i).get("ajlbmc").toString());
+//							//更新用户数据
+//							userService.updateById(user);
+//							break;
+//						}
+						count++;
+						//条件中的数据都为空,则审查为正常
+						if (count==res.length()){
+							//更新用户数据,设为正常
+							user.setExamination_type("0");
+							userService.updateById(user);
+						}
+					}
+				}
+				//更新用户数据
+				userService.updateById(user);
+			}
+		}));
+		return R.data(users.size());
+	}
+
+	/**
+	 * 数据反向测试
+	 * @param body 数据反向测试
+	 * @return
+	 */
+	@PostMapping("/investigate/testBody")
+	public R testBody(@RequestBody String body){
+		JSONObject jsonObject = new JSONObject(body);
+		Object data = jsonObject.get("data");
+		JSONObject jsonData = new JSONObject(data.toString());
+		JSONArray res = jsonData.getJSONArray("res");
+		User user = new User();
+		if (res.length()>0){
+//			String zdxsfzqkry = res.getJSONObject(0).get("zdxsfzqkry").toString();
+			int count = 0;
+			for (int i = 0; i < res.length(); i++) {
+				System.out.println("res.length() =" + res.length());
+				if (res.getJSONObject(i).get("zdrylbjh").toString() != null
+					&& res.getJSONObject(i).get("zdrylbjh").toString() != ""
+					&& res.getJSONObject(i).get("zdrylbjh").toString() != "null"
+				) {
+					user.setExamination_mx(res.getJSONObject(i).get("zdrylbjh").toString());
+					//更新用户数据
+					userService.updateById(user);
+					break;
+				}
+				if (res.getJSONObject(i).get("zdryxlmc").toString() != null
+					&& res.getJSONObject(i).get("zdryxlmc").toString() != ""
+					&& res.getJSONObject(i).get("zdryxlmc").toString() != "null"
+				) {
+					user.setExamination_mx(res.getJSONObject(i).get("zdryxlmc").toString());
+					//更新用户数据
+					userService.updateById(user);
+					break;
+				}
+				if (res.getJSONObject(i).get("ztrylx").toString() != null
+					&& res.getJSONObject(i).get("ztrylx").toString() != ""
+					&& res.getJSONObject(i).get("ztrylx").toString() != "null"
+				) {
+					user.setExamination_mx(res.getJSONObject(i).get("ztrylx").toString());
+					//更新用户数据
+					userService.updateById(user);
+					break;
+				}
+				count++;
+				System.out.println("count = " + count);
+//				if (res.getJSONObject(i).get("ajlbmc").toString() != null
+//					&& res.getJSONObject(i).get("ajlbmc").toString() != ""
+//					&& res.getJSONObject(i).get("ajlbmc").toString() != "null"
+//				) {
+//					user.setExamination_mx(res.getJSONObject(i).get("ajlbmc").toString());
+//					//更新用户数据
+//					userService.updateById(user);
+//					break;
+//				}
+			}
+			return R.data(user);
+		}
+		return null;
+	}
+}
diff --git a/src/main/java/org/springblade/modules/system/entity/User.java b/src/main/java/org/springblade/modules/system/entity/User.java
index 70562a7..4cd92e3 100644
--- a/src/main/java/org/springblade/modules/system/entity/User.java
+++ b/src/main/java/org/springblade/modules/system/entity/User.java
@@ -23,6 +23,7 @@
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import org.springblade.core.tenant.mp.TenantEntity;
+import org.springframework.format.annotation.DateTimeFormat;
 
 import java.util.Date;
 
@@ -117,4 +118,17 @@
 	@ApiModelProperty(value = "行政区")
 	private String district;
 
+	/**
+	 * 审查时间
+	 */
+	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
+	@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+	@TableField("audit_time")
+	private Date auditTime;
+
+	/**
+	 * 身份证号
+	 */
+	private String cardid;
+
 }
diff --git a/src/main/java/org/springblade/modules/system/mapper/UserMapper.java b/src/main/java/org/springblade/modules/system/mapper/UserMapper.java
index 04c9c93..5727b62 100644
--- a/src/main/java/org/springblade/modules/system/mapper/UserMapper.java
+++ b/src/main/java/org/springblade/modules/system/mapper/UserMapper.java
@@ -110,4 +110,10 @@
 
     List<UserDistrictStatisVO> getUserDistrictTypeCount();
 
+	/**
+	 * 查询用户数据,未删除的,未审核的
+	 * @return
+	 */
+	List<User> getNotAuditAllUserList();
+
 }
diff --git a/src/main/java/org/springblade/modules/system/mapper/UserMapper.xml b/src/main/java/org/springblade/modules/system/mapper/UserMapper.xml
index 83cf1b4..3c355ba 100644
--- a/src/main/java/org/springblade/modules/system/mapper/UserMapper.xml
+++ b/src/main/java/org/springblade/modules/system/mapper/UserMapper.xml
@@ -29,6 +29,8 @@
         <result column="work_status" property="work_status"/>
         <result column="examination_type" property="examination_type"/>
         <result column="examination_mx" property="examination_mx"/>
+        <result column="audit_time" property="auditTime"/>
+        <result column="cardid" property="cardid"/>
         <result column="district" property="district"/>
     </resultMap>
     <resultMap id="userResultMaps" type="org.springblade.modules.system.vo.UsersVo">
@@ -60,6 +62,8 @@
         <result column="examination_type" property="examination_type"/>
         <result column="examination_mx" property="examination_mx"/>
         <result column="dept_name" property="deptName"/>
+        <result column="audit_time" property="auditTime"/>
+        <result column="cardid" property="cardid"/>
     </resultMap>
 
     <select id="selectUserPage" resultMap="userResultMap">
@@ -105,7 +109,7 @@
         blade_role br
         on
         s.role_id=br.id
-        where s.is_deleted = 0 and br.role_alias ='qfqkdw'
+        where s.is_deleted = 0
         <if test="user.account!=null and user.account != ''">
             and s.account = #{user.account}
         </if>
@@ -213,8 +217,7 @@
         on
         bu.role_id=br.id
         where
-        br.role_alias ='qfqkdw'
-        and bu.is_deleted=0
+        bu.is_deleted=0
         <if test="user.realName!=null and user.realName !=''">
             <bind name="realName" value="'%'+user.realName+'%'"/>
             and bu.real_name like #{realName}
@@ -325,4 +328,14 @@
         GROUP BY
             bu.district
     </select>
+
+
+    <!--查询用户数据,未审核的-->
+    <select id="getNotAuditAllUserList" resultType="org.springblade.modules.system.entity.User">
+        select id, cardid
+        from blade_user
+        where examination_type is null
+    </select>
+
+
 </mapper>
diff --git a/src/main/java/org/springblade/modules/system/service/IUserService.java b/src/main/java/org/springblade/modules/system/service/IUserService.java
index 6952a57..ecc3c0f 100644
--- a/src/main/java/org/springblade/modules/system/service/IUserService.java
+++ b/src/main/java/org/springblade/modules/system/service/IUserService.java
@@ -270,4 +270,10 @@
 	List<UserRegisterStatisVO> getUserTypeCount();
 
 	List<UserDistrictStatisVO> getUserDistrictTypeCount();
+
+	/**
+	 * 查询用户数据,未删除的,未审核的
+	 * @return
+	 */
+	List<User> getNotAuditAllUserList();
 }
diff --git a/src/main/java/org/springblade/modules/system/service/impl/UserServiceImpl.java b/src/main/java/org/springblade/modules/system/service/impl/UserServiceImpl.java
index ce2e8f7..ad9614f 100644
--- a/src/main/java/org/springblade/modules/system/service/impl/UserServiceImpl.java
+++ b/src/main/java/org/springblade/modules/system/service/impl/UserServiceImpl.java
@@ -506,4 +506,13 @@
 	public List<UserDistrictStatisVO> getUserDistrictTypeCount() {
 		return baseMapper.getUserDistrictTypeCount();
 	}
+
+	/**
+	 * 查询用户数据,未删除的,未审核的
+	 * @return
+	 */
+	@Override
+	public List<User> getNotAuditAllUserList() {
+		return baseMapper.getNotAuditAllUserList();
+	}
 }
diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml
index ff900ce..00b656d 100644
--- a/src/main/resources/application-dev.yml
+++ b/src/main/resources/application-dev.yml
@@ -21,7 +21,11 @@
 #    username: root
 #    password: zhba0728
 
-    url: jdbc:mysql://223.82.109.183:2083/qfqkpublic?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true
+#    url: jdbc:mysql://223.82.109.183:2083/qfqkpublic?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true
+#    username: root
+#    password: zhba0728
+
+    url: jdbc:mysql://47.49.36.191:3306/qfqkpublic?useSSL=false&useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&transformedBitIsBoolean=true&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true&allowPublicKeyRetrieval=true
     username: root
     password: zhba0728
 

--
Gitblit v1.9.3