From 3eaccc9b10eca4f103785232ef0d804a12a60571 Mon Sep 17 00:00:00 2001
From: guoshilong <123456>
Date: Tue, 08 Aug 2023 10:56:46 +0800
Subject: [PATCH] 蓝证用户平台用户推送
---
skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/sync/dto/ApiPushDTO.java | 22 +++++++++++
skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/sync/controller/UserPushController.java | 41 ++++++++++++++++++++
skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/sync/util/GenerateUtil.java | 41 ++++++++++++++++++++
3 files changed, 104 insertions(+), 0 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 51db758..63235f3 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
@@ -1,12 +1,15 @@
package cn.gistack.system.user.sync.controller;
import cn.gistack.system.user.entity.User;
+import cn.gistack.system.user.service.IUserService;
import cn.gistack.system.user.sync.dto.AccountBean;
import cn.gistack.system.user.sync.dto.ApiPushDTO;
+import cn.gistack.system.user.sync.util.GenerateUtil;
import cn.gistack.system.user.sync.util.SecurityUtil;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import lombok.AllArgsConstructor;
+import org.springblade.core.mp.support.Condition;
import org.springblade.core.tenant.annotation.NonDS;
import org.springblade.core.tool.api.IResultCode;
import org.springblade.core.tool.api.R;
@@ -28,11 +31,49 @@
@AllArgsConstructor
public class UserPushController {
+ private final IUserService userService;
+
@PostMapping("/userpush")
public R userPush(ApiPushDTO apiPushDTO) {
String syncData = SecurityUtil.decryptAES(apiPushDTO.getSyncData(),apiPushDTO.getSign());
List<AccountBean> accountBeanList = JSONArray.parseArray(syncData, AccountBean.class);
+// List<AccountBean> accountBeanList = JSONArray.parseArray(GenerateUtil.generateSyncData(), AccountBean.class);
+
+ //循环list
+ accountBeanList.forEach(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")){
+
+ 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());
+ }
+ }
+ });
return R.data(apiPushDTO.getTimestamp());
}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/sync/dto/ApiPushDTO.java b/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/sync/dto/ApiPushDTO.java
index e091a5c..3d2d31a 100644
--- a/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/sync/dto/ApiPushDTO.java
+++ b/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/sync/dto/ApiPushDTO.java
@@ -10,10 +10,32 @@
*/
@Data
public class ApiPushDTO {
+ /**
+ * 0为全量,1为增量
+ */
private String syncType;
+ /**
+ * 1为部门,2为账号
+ */
private String dataType;
+
+ /**
+ * 13位unix时间戳
+ */
private String timestamp;
+
+ /**
+ * 签名
+ */
private String sign;
+
+ /**
+ * 当前推送任务Id
+ */
private String transactionId;
+
+ /**
+ *加密的部门或账号数据
+ */
private String syncData;
}
diff --git a/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/sync/util/GenerateUtil.java b/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/sync/util/GenerateUtil.java
new file mode 100644
index 0000000..3650e95
--- /dev/null
+++ b/skjcmanager/skjcmanager-service/skjcmanager-user/src/main/java/cn/gistack/system/user/sync/util/GenerateUtil.java
@@ -0,0 +1,41 @@
+package cn.gistack.system.user.sync.util;
+
+import cn.gistack.system.user.sync.dto.AccountBean;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class GenerateUtil {
+
+ public static String generateSyncData(){
+
+ String syncData = "[\n" +
+ "\t\t{\n" +
+ "\t\t\t\"syncType\": 0,\n" +
+ "\t\t\t\"eventTimestamp\": 1640160139389,\n" +
+ "\t\t\t\"createTime\": 1640160139473,\n" +
+ "\t\t\t\"taskId\": \"fc5fbc9f603c46219d1c07d02f16c6e7\",\n" +
+ "\t\t\t\"appId\": \"659240c7ae18415e945cdab21e822cd3\",\n" +
+ "\t\t\t\"principalId\": \"19998851452\",\n" +
+ "\t\t\t\"status\": \"1\",\n" +
+ "\t\t\t\"attributes\": {\n" +
+ "\t\t\t\t\"deptNums\": \",csbm1,\",\n" +
+ "\t\t\t\t\"address\": \"北京市海淀区\",\n" +
+ "\t\t\t\t\"gender\": \"男\",\n" +
+ "\t\t\t\t\"realName\": \"cszh1\"\n" +
+ "\t\t\t},\n" +
+ "\t\t\t\"deptNums\": [\n" +
+ "\t\t\t\t\"csbm1\"\n" +
+ "\t\t\t],\n" +
+ "\t\t\t\"appRoles\": []\n" +
+ "\t\t}\n" +
+ "\t]\n";
+
+ return syncData;
+ }
+
+
+
+
+
+}
--
Gitblit v1.9.3