Browse Source

记录同步状态信息到数据库

huxz 7 years ago
parent
commit
54047cb1ee

+ 22 - 1
sso-manage-console/src/main/java/com/uas/sso/sso/backend/config/SyncThreadPool.java

@@ -3,8 +3,12 @@ package com.uas.sso.sso.backend.config;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
 import com.uas.sso.common.util.HttpUtil;
+import com.uas.sso.dao.SyncLogDao;
 import com.uas.sso.entity.App;
+import com.uas.sso.entity.SyncLog;
 import com.uas.sso.entity.User;
+import com.uas.sso.logging.LoggerManager;
+import com.uas.sso.logging.SyncBufferedLogger;
 import com.uas.sso.sso.backend.util.JacksonUtils;
 import java.util.ArrayList;
 import java.util.Collections;
@@ -14,6 +18,7 @@ import java.util.concurrent.ExecutorService;
 import org.apache.log4j.Logger;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
+import org.springframework.util.Assert;
 import org.springframework.util.CollectionUtils;
 import org.springframework.util.StringUtils;
 
@@ -30,9 +35,12 @@ public class SyncThreadPool {
 
     private final ExecutorService executorService;
 
+    private final SyncLogDao syncLogDao;
+
     @Autowired
-    public SyncThreadPool(ExecutorService executorService) {
+    public SyncThreadPool(ExecutorService executorService, SyncLogDao syncLogDao) {
         this.executorService = executorService;
+        this.syncLogDao = syncLogDao;
     }
 
     public void transferDataToOtherPlatforms(String type, List<App> appList, JSONObject data, String message) {
@@ -75,13 +83,16 @@ public class SyncThreadPool {
 
                         HttpUtil.ResponseWrap res = HttpUtil.doPost(url, data, 30000);
                         if (!res.isSuccess()) {
+                            logError(appId, message + ", 同步信息失败", JSON.toJSONString(data), res.getContent());
                             logger.error(String.format("%s:同步信息失败, %s, %s, %s", message, appId,
                                     JSON.toJSONString(data), res.getContent()));
                         } else {
+                            logInfo(appId, message + ", 同步信息成功", JSON.toJSONString(data));
                             logger.info(String.format("%s:同步信息成功, %s, %s", message, appId,
                                     JSON.toJSONString(data)));
                         }
                     } catch (Exception e) {
+                        logError(appId, message + ", 同步信息失败", JSON.toJSONString(data), e.getMessage());
                         logger.error(String.format("%s:同步信息失败, %s, %s, %s", message, appId,
                                 JSON.toJSONString(data), e.getMessage()));
                     }
@@ -90,6 +101,16 @@ public class SyncThreadPool {
         }
     }
 
+    private void logError(String appId, String message, String data, String errorMessage) {
+        SyncLog log = new SyncLog(appId, message, data, "ERROR", errorMessage);
+        syncLogDao.save(log);
+    }
+
+    private void logInfo(String appId, String message, String data) {
+        SyncLog log = new SyncLog(appId, message, data, "INFO");
+        syncLogDao.save(log);
+    }
+
     private List<String> getBackUrl(List<App> appList, BackAppUrl backAppUrl) {
         List<String> urls = new ArrayList<>();
 

+ 14 - 2
sso-manage-console/src/main/java/com/uas/sso/sso/backend/service/impl/AppealServiceImpl.java

@@ -4,9 +4,11 @@ import static com.uas.sso.sso.backend.AuthenticationUtils.getEncryPassword;
 
 import com.alibaba.fastjson.JSONObject;
 import com.uas.sso.core.Const;
+import com.uas.sso.dao.AppDao;
 import com.uas.sso.dao.AppealDao;
 import com.uas.sso.dao.UserDao;
 import com.uas.sso.dao.UserspaceDao;
+import com.uas.sso.entity.App;
 import com.uas.sso.entity.Appeal;
 import com.uas.sso.entity.User;
 import com.uas.sso.entity.Userspace;
@@ -63,6 +65,8 @@ public class AppealServiceImpl implements AppealService {
 
     private static final String CHANGE_ADMIN = "changeAdmin";
 
+    private final AppDao appDao;
+
     private final AppealDao appealDao;
 
     private final UserDao userDao;
@@ -78,8 +82,9 @@ public class AppealServiceImpl implements AppealService {
     private final SyncThreadPool syncThreadPool;
 
     @Autowired
-    public AppealServiceImpl(AppealDao appealDao, UserDao userDao,
+    public AppealServiceImpl(AppDao appDao, AppealDao appealDao, UserDao userDao,
                              UserspaceDao spaceDao, AdminChangeRecordDao recordDao, UserBackendService userService, MailService mailService, SyncThreadPool syncThreadPool) {
+        this.appDao = appDao;
         this.appealDao = appealDao;
         this.userDao = userDao;
         this.spaceDao = spaceDao;
@@ -185,7 +190,10 @@ public class AppealServiceImpl implements AppealService {
             User user = assertUserExist(appeal.getSubmitterUU());
             user.setMobile(appeal.getMobile());
 
+            String message = "[后台]更换手机号申诉";
             if (RESET_PASS.equals(appeal.getType())) {
+                message = "[后台]重置密码申诉";
+
                 String password = (String) map.get("password");
                 Assert.hasText(password, "申诉修改密码时,密码为必须字段");
                 boolean validPassword = password.length() >= 6 && password.length() <= 20;
@@ -195,6 +203,10 @@ public class AppealServiceImpl implements AppealService {
             }
             userDao.save(user);
 
+            List<App> appList = appDao.findAll();
+            JSONObject data = JacksonUtils.fromJson(JacksonUtils.toJson(user.toView()), JSONObject.class);
+            syncThreadPool.transferDataToOtherPlatforms("BackChangeAdmin", appList, data, "[后台]更换管理员申诉");
+
             synSendMail(appeal.getContactEmail(), appeal.getType(), appeal.getContactName(), null, isPass);
         } else if (CHANGE_ADMIN.equals(appeal.getType())) {
             JSONObject jsonObject = JacksonUtils.fromJson(appeal.getSubmitInfo(), JSONObject.class);
@@ -265,7 +277,7 @@ public class AppealServiceImpl implements AppealService {
             spaceDao.save(space);
 
             JSONObject data = JacksonUtils.fromJson(JacksonUtils.toJson(space), JSONObject.class);
-            syncThreadPool.transferDataToOtherPlatforms("BackChangeAdmin", space.getApps(), data, "同步更换管理员信息");
+            syncThreadPool.transferDataToOtherPlatforms("BackChangeAdmin", space.getApps(), data, "[后台]更换管理员申诉");
             synSendMail(appeal.getContactEmail(), appeal.getType(), appeal.getContactName(), space.getSpaceName(), isPass);
         } else {
             logger.info("暂无支持申诉类型");

+ 3 - 3
sso-manage-console/src/main/java/com/uas/sso/sso/backend/service/impl/UserBackendServiceImpl.java

@@ -226,7 +226,7 @@ public class UserBackendServiceImpl implements UserBackendService {
 
         List<App> appList = appDao.findAll();
         JSONObject data = JacksonUtils.fromJson(JacksonUtils.toJson(existUser.toView()), JSONObject.class);
-        syncThreadPool.transferDataToOtherPlatforms("BackUser", appList, data, "同步用户信息修改");
+        syncThreadPool.transferDataToOtherPlatforms("BackUser", appList, data, "[后台]修改用户信息");
 
         return existUser;
     }
@@ -256,7 +256,7 @@ public class UserBackendServiceImpl implements UserBackendService {
 
         List<App> appList = appDao.findAll();
         JSONObject data = JacksonUtils.fromJson(JacksonUtils.toJson(user.toView()), JSONObject.class);
-        syncThreadPool.transferDataToOtherPlatforms("BackUser", appList, data, "同步新增用户信息");
+        syncThreadPool.transferDataToOtherPlatforms("BackUser", appList, data, "[后台]新增用户信息");
 
         return user;
     }
@@ -305,7 +305,7 @@ public class UserBackendServiceImpl implements UserBackendService {
 
         List<App> appList = appDao.findAll();
         JSONObject data = JacksonUtils.fromJson(JacksonUtils.toJson(userInfo.toView()), JSONObject.class);
-        syncThreadPool.transferDataToOtherPlatforms("BackUser", appList, data, "同步用户认证状态信息");
+        syncThreadPool.transferDataToOtherPlatforms("BackUser", appList, data, "[后台]用户身份认证");
 
         return userInfo;
     }

+ 6 - 6
sso-manage-console/src/main/java/com/uas/sso/sso/backend/service/impl/UserSpaceServiceImpl.java

@@ -137,7 +137,7 @@ public class UserSpaceServiceImpl implements UserSpaceService {
         userspaceDao.save(userspace);
 
         JSONObject data = JacksonUtils.fromJson(JacksonUtils.toJson(userspace), JSONObject.class);
-        syncThreadPool.transferDataToOtherPlatforms("BackChangeAdmin", userspace.getApps(), data, "同步企业信息修改");
+        syncThreadPool.transferDataToOtherPlatforms("BackChangeAdmin", userspace.getApps(), data, "[后台]修改企业信息");
 
         return userspace;
     }
@@ -158,7 +158,7 @@ public class UserSpaceServiceImpl implements UserSpaceService {
         userspaceDao.save(space);
 
         JSONObject data = JacksonUtils.fromJson(JacksonUtils.toJson(space), JSONObject.class);
-        syncThreadPool.transferDataToOtherPlatforms("BackChangeAdmin", space.getApps(), data, "同步企业成员变更信息");
+        syncThreadPool.transferDataToOtherPlatforms("BackChangeAdmin", space.getApps(), data, "[后台]企业解绑用户");
 
         return space;
     }
@@ -203,7 +203,7 @@ public class UserSpaceServiceImpl implements UserSpaceService {
         userspaceDao.save(space);
 
         JSONObject data = JacksonUtils.fromJson(JacksonUtils.toJson(space), JSONObject.class);
-        syncThreadPool.transferDataToOtherPlatforms("BackChangeAdmin", space.getApps(), data, "同步新增管理员信息");
+        syncThreadPool.transferDataToOtherPlatforms("BackChangeAdmin", space.getApps(), data, "[后台]更换企业管理员");
         return space;
     }
 
@@ -260,7 +260,7 @@ public class UserSpaceServiceImpl implements UserSpaceService {
         spaceValidDao.save(spaceValid);
 
         JSONObject data = JacksonUtils.fromJson(JacksonUtils.toJson(space), JSONObject.class);
-        syncThreadPool.transferDataToOtherPlatforms("BackChangeAdmin", space.getApps(), data, "同步企业认证信息");
+        syncThreadPool.transferDataToOtherPlatforms("BackChangeAdmin", space.getApps(), data, "[后台]企业信息认证");
         return space;
     }
 
@@ -278,7 +278,7 @@ public class UserSpaceServiceImpl implements UserSpaceService {
             userspaceDao.save(space);
 
             JSONObject data = JacksonUtils.fromJson(JacksonUtils.toJson(space), JSONObject.class);
-            syncThreadPool.transferDataToOtherPlatforms("BackChangeAdmin", space.getApps(), data, "同步企业新增成员信息");
+            syncThreadPool.transferDataToOtherPlatforms("BackChangeAdmin", space.getApps(), data, "[后台]绑定用户到企业");
         }
     }
 
@@ -306,7 +306,7 @@ public class UserSpaceServiceImpl implements UserSpaceService {
             appList.add(app);
 
             JSONObject data = JacksonUtils.fromJson(JacksonUtils.toJson(space), JSONObject.class);
-            syncThreadPool.transferDataToOtherPlatforms("BackChangeAdmin", appList, data, "同步企业企业信息到新开通应用");
+            syncThreadPool.transferDataToOtherPlatforms("BackChangeAdmin", appList, data, "[后台]开通应用同步企业信息");
         }
         return space;
     }