From 2d0f0c3e6c0c06091f527c46883ad508ecba98db Mon Sep 17 00:00:00 2001
From: xieb <vip_xiaobin810@163.com>
Date: Tue, 05 Sep 2023 13:59:37 +0800
Subject: [PATCH] 蓝证用户推送接收接口

---
 skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/sync/controller/UserPushController.java |   94 ++++++++++++++++++++++++++++------------------
 1 files changed, 57 insertions(+), 37 deletions(-)

diff --git a/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/sync/controller/UserPushController.java b/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/sync/controller/UserPushController.java
index c5c9fee..bd68711 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/sync/controller/UserPushController.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/sync/controller/UserPushController.java
@@ -6,6 +6,7 @@
 import cn.gistack.system.user.sync.dto.ApiPushDTO;
 import cn.gistack.system.user.sync.exception.ErrorCode;
 import cn.gistack.system.user.sync.util.*;
+import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import lombok.AllArgsConstructor;
 import org.springblade.core.mp.support.Condition;
@@ -20,6 +21,7 @@
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.concurrent.*;
 
 /**
  * @PROJECT_NAME: skjcmanager
@@ -69,54 +71,72 @@
 		List<AccountBean> accountBeanList = JSONArray.parseArray(syncData, AccountBean.class);
 
 		// 异步执行用户处理
-		asyncUserGo(accountBeanList);
+
+		int pcount = Runtime.getRuntime().availableProcessors();
+		//最大线程数控制
+		int maxthreadNum = accountBeanList.size();
+		ExecutorService executor = new ThreadPoolExecutor(pcount, maxthreadNum, 10, TimeUnit.SECONDS,
+			new ArrayBlockingQueue<>(1000), Executors.defaultThreadFactory(), new ThreadPoolExecutor.CallerRunsPolicy());
+		System.out.println("开始执行用户处理!!!!!!!!!!!!");
+		//循环list
+		for (int i = 0; i < maxthreadNum; i++)  {
+			final int index = i;
+			final AccountBean accountBean = accountBeanList.get(i);
+			executor.execute(new Runnable() {
+				@Override
+				public void run() {
+					//业务处理
+					System.out.println("当前线程:" + Thread.currentThread().getName() + " " + index);
+					System.out.println("当前处理对象:" + JSON.toJSONString(accountBean));
+					asyncUserGo(accountBean);
+				}
+			});
+
+		};
 
 		ret.put("code", 1000);
 		ret.put("msg", "成功");
 		ret.put("data", apiPushDTO.getSign());
+		System.out.println("处理返回了~~~~");
 		return ret;
 	}
 
-	@Async
-	public void asyncUserGo(List<AccountBean> accountBeanList) {
-		//循环list
-		accountBeanList.forEach(accountBean -> {
-			//判断手机号是否在库中
-			User params = new User();
-			params.setPhone(accountBean.getPrincipalId());
-			User one = userService.getOne(Condition.getQueryWrapper(params));
+	public void asyncUserGo(AccountBean accountBean) {
+		//判断手机号是否在库中
+		User params = new User();
+		params.setPhone(accountBean.getPrincipalId());
+		User one = userService.getOne(Condition.getQueryWrapper(params));
 
-			if (one == null) {
-				//不在,看status状态,若为1则不操作。0添加进库
-				if (accountBean.getStatus().equals("0")) {
+		if (one == null) {
+			//不在,看status状态,若为1则不操作。0添加进库
+			if (accountBean.getStatus().equals("0")) {
 
-					User saveUser = new User();
-					//设置id为手机号
+				User saveUser = new User();
+				//设置id为手机号
 //					saveUser.setId(Long.parseLong(accountBean.getPrincipalId()));
-					//账号为手机号
-					saveUser.setAccount(accountBean.getPrincipalId());
-					saveUser.setPhone(accountBean.getPrincipalId());
-					//设置姓名
-					saveUser.setRealName(accountBean.getAttributes().get("realName"));
-					//设置部门(默认给省)
-					saveUser.setDeptId("420000000000");
-					//设置角色(权限与市州水库管理业务人员一致)
-					saveUser.setRoleId("1688732764750766082");
-					//设置租户id
-					saveUser.setTenantId("000000");
-					userService.save(saveUser);
-				}
-			} else {
-				//在,看status状态,若为1则删除用户。0更新?
-				if (accountBean.getStatus().equals("1")) {
-					userService.removeUser(accountBean.getPrincipalId());
-				} else { //更新
-					//设置姓名
-					one.setRealName(accountBean.getAttributes().get("realName"));
-					userService.updateUser(one);
-				}
+				//账号为手机号
+				saveUser.setAccount(accountBean.getPrincipalId());
+				saveUser.setPhone(accountBean.getPrincipalId());
+				//设置姓名
+				saveUser.setRealName(accountBean.getAttributes().get("realName"));
+				//设置部门(默认给省)
+				saveUser.setDeptId("420000000000");
+				//设置角色(权限与市州水库管理业务人员一致)
+				saveUser.setRoleId("1688732764750766082");
+				//设置租户id
+				saveUser.setTenantId("000000");
+				userService.save(saveUser);
 			}
-		});
+		} else {
+			//在,看status状态,若为1则删除用户。0更新?
+			if (accountBean.getStatus().equals("1")) {
+				userService.removeUser(accountBean.getPrincipalId());
+			} else { //更新
+				//设置姓名
+				one.setRealName(accountBean.getAttributes().get("realName"));
+				userService.updateUser(one);
+			}
+		}
 
 	}
 

--
Gitblit v1.9.3