Forráskód Böngészése

新增同步fjnx机构用户定时任务

zhulu 2 éve
szülő
commit
d38eddac32

+ 28 - 0
soc-api/soc-api-system/src/main/java/com/xunmei/system/api/RemoteSyncOrgAndUserService.java

@@ -0,0 +1,28 @@
+package com.xunmei.system.api;
+
+import com.xunmei.common.core.constant.SecurityConstants;
+import com.xunmei.common.core.constant.ServiceNameConstants;
+import com.xunmei.common.core.domain.R;
+import com.xunmei.system.api.factory.RemoteSyncOrgAndUserFactory;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestHeader;
+
+/**
+ * 日志服务
+ * 
+ * @author xunmei
+ */
+@FeignClient(contextId = "remoteSyncOrgAndUserService", value = ServiceNameConstants.SYNC_SERVICE, fallbackFactory = RemoteSyncOrgAndUserFactory.class)
+public interface RemoteSyncOrgAndUserService
+{
+    /**
+     * 同步机构和用户
+     * @param source
+     * @return
+     * @throws Exception
+     */
+    @GetMapping("/fjnx/organduser")
+    public R<Boolean> syncOrgAndUser(@RequestHeader(SecurityConstants.FROM_SOURCE) String source);
+}

+ 36 - 0
soc-api/soc-api-system/src/main/java/com/xunmei/system/api/factory/RemoteSyncOrgAndUserFactory.java

@@ -0,0 +1,36 @@
+package com.xunmei.system.api.factory;
+
+import com.xunmei.common.core.domain.R;
+import com.xunmei.system.api.RemoteOrgService;
+import com.xunmei.system.api.RemoteSyncOrgAndUserService;
+import com.xunmei.system.api.domain.SysOrg;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.cloud.openfeign.FallbackFactory;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+
+/**
+ * 用户服务降级处理
+ * 
+ * @author xunmei
+ */
+@Component
+public class RemoteSyncOrgAndUserFactory implements FallbackFactory<RemoteSyncOrgAndUserService>
+{
+    private static final Logger log = LoggerFactory.getLogger(RemoteSyncOrgAndUserFactory.class);
+
+    @Override
+    public RemoteSyncOrgAndUserService create(Throwable throwable)
+    {
+        log.error("同步服务调用失败:{}", throwable.getMessage());
+        return new RemoteSyncOrgAndUserService()
+        {
+            @Override
+            public R<Boolean> syncOrgAndUser(String source) {
+                return R.fail("同步机构、用户失败:" + throwable.getMessage());
+            }
+        };
+    }
+}

+ 1 - 0
soc-api/soc-api-system/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports

@@ -4,3 +4,4 @@ com.xunmei.system.api.factory.RemoteFileFallbackFactory
 com.xunmei.system.api.factory.RemoteOrgFallbackFactory
 com.xunmei.system.api.factory.RemoteConfigFallbackFactory
 com.xunmei.system.api.factory.RemoteWorkTimesFallbackFactory
+com.xunmei.system.api.factory.RemoteSyncOrgAndUserFactory

+ 2 - 0
soc-common/soc-common-core/src/main/java/com/xunmei/common/core/constant/ServiceNameConstants.java

@@ -22,4 +22,6 @@ public class ServiceNameConstants
      */
     public static final String FILE_SERVICE = "soc-file";
     public static final String CORE_SERVICE = "soc-core";
+
+    public static final String SYNC_SERVICE = "soc-sync";
 }

+ 37 - 0
soc-modules/soc-modules-job/src/main/java/com/xunmei/job/task/SyncFjnxOrgUserTask.java

@@ -0,0 +1,37 @@
+package com.xunmei.job.task;
+
+
+import com.alibaba.fastjson.JSON;
+import com.xunmei.common.core.constant.SecurityConstants;
+import com.xunmei.common.core.domain.R;
+import com.xunmei.system.api.RemoteSyncOrgAndUserService;
+import com.xunmei.system.api.RemoteUserService;
+import com.xunmei.system.api.model.LoginUser;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+/**
+ * 定时任务调度测试
+ *
+ * @author xunmei
+ */
+
+@Component("SyncFjnxOrgUserTask")
+public class SyncFjnxOrgUserTask {
+
+    @Autowired
+    private RemoteSyncOrgAndUserService remoteSyncOrgAndUserService;
+
+    /**
+     * 同步 fjnx 机构、用户
+     */
+    public void syncFjnxOrgAndUser()
+    {
+        System.out.println("执行无参方法");
+        R<Boolean> booleanR = remoteSyncOrgAndUserService.syncOrgAndUser(SecurityConstants.INNER);
+        System.out.println(JSON.toJSONString(booleanR));
+    }
+
+
+
+}

+ 1 - 1
soc-modules/soc-modules-sync/src/main/java/com/xunmei/sync/controller/FjnxSyncController.java

@@ -27,7 +27,7 @@ import java.io.IOException;
 @Api(description = "机构")
 @Controller
 @ApiOperation(value = "同步机构")
-@RequestMapping("/api/fjnx/sync")
+@RequestMapping("/fjnx")
 class FjnxSyncController {
 
 //    @Autowired

+ 2 - 2
soc-modules/soc-modules-sync/src/main/java/com/xunmei/sync/service/impl/FJNXOrgSyncServiceImpl.java

@@ -38,7 +38,7 @@ public class FJNXOrgSyncServiceImpl implements IFJNXOrgSyncService {
         params.put("systemCode", 61303);
         params.put("orgCode", "900000000");
 //        final JSONObject data = this.fjnxApi.get(HttpParamsGet.get("/sp-app-batch/api/syncout/orgdirect", params));
-        final JSONObject data = this.fjnxApi.get(HttpParamsGet.get("/api/fjnx/sync/test/org", params));
+        final JSONObject data = this.fjnxApi.get(HttpParamsGet.get("/fjnx/mock/orgfileInfo", params));
         if (data == null) {
             return null;
         }
@@ -57,7 +57,7 @@ public class FJNXOrgSyncServiceImpl implements IFJNXOrgSyncService {
         params.put("fileId", syncResponseDto.getData().getFileId());
         params.put("storageType", "localdisk");
 //        final String data= fjnxXmlApi.get(HttpParamsGet.get("/yusp-file/api/file/download", params));
-        final String data= fjnxXmlApi.get(HttpParamsGet.get("/api/fjnx/sync/test/orgxmldata", params));
+        final String data= fjnxXmlApi.get(HttpParamsGet.get("/fjnx/mock/orgxmldata", params));
 
         try {
             return FjnxXmlApi.convertXmlToJavaBean(data, FJNXXmlOrgDto.class);

+ 2 - 1
soc-modules/soc-modules-sync/src/main/java/com/xunmei/sync/service/impl/FJNXSyncServiceImpl.java

@@ -124,7 +124,7 @@ public class FJNXSyncServiceImpl implements IFJNXSyncService {
         deleteList.forEach(x -> x.setDeleted(1L));
         existUserList.addAll(addList);
 
-        final R<Boolean> booleanR = remoteUserService.batchSaveSyncUser(FjnxUsersConvertToUsers(fjnxXmlUserDto.getUserVos(), existOrgList), SecurityConstants.INNER);
+        final R<Boolean> booleanR = remoteUserService.batchSaveSyncUser(existUserList, SecurityConstants.INNER);
         if (booleanR != null && booleanR.getCode() != 200) {
             log.error("调用远程服务接口remoteUserService.batchSaveSyncOrg 失败:{0}", booleanR.getMsg());
             return "remoteUserService.batchSaveSyncUser 调用失败:" + booleanR.getMsg();
@@ -405,6 +405,7 @@ public class FJNXSyncServiceImpl implements IFJNXSyncService {
         org.setIsLock(fjnxOrgDto.getUsableFlag());
         org.setDeleted(0);
         org.setSource(1);
+        // todo 机构类型转换
         return org;
     }
 //

+ 2 - 2
soc-modules/soc-modules-sync/src/main/java/com/xunmei/sync/service/impl/FJNXUserSyncServiceImpl.java

@@ -31,7 +31,7 @@ public class FJNXUserSyncServiceImpl implements IFJNXUserSyncService {
         // TODO 放在数据库中,放在配置文件中如果不是多套需要修改多个配置文件,可以放在数据库中 获取一次后放入Redis缓存
         params.put("systemCode", 61303);
 //        final JSONObject data = this.fjnxApi.get(HttpParamsGet.get("/sp-app-batch/api/syncout/userdirect", params));
-        final JSONObject data = this.fjnxApi.get(HttpParamsGet.get("/api/fjnx/sync/mock/orgfileInfo", params));
+        final JSONObject data = this.fjnxApi.get(HttpParamsGet.get("/fjnx/mock/orgfileInfo", params));
         if (data == null) {
             return null;
         }
@@ -51,7 +51,7 @@ public class FJNXUserSyncServiceImpl implements IFJNXUserSyncService {
         params.put("storageType", "localdisk");
 //        final String data= fjnxXmlApi.get(HttpParamsGet.get("/yusp-file/api/file/download", params));
 
-        final String data= fjnxXmlApi.get(HttpParamsGet.get("/api/fjnx/sync/mock/userxmldata", params));
+        final String data= fjnxXmlApi.get(HttpParamsGet.get("/fjnx/mock/userxmldata", params));
 
         try {
             return FjnxXmlApi.convertXmlToJavaBean(data, FJNXXmlUserDto.class);

+ 0 - 1
soc-modules/soc-modules-system/src/main/java/com/xunmei/system/controller/SysUserController.java

@@ -321,7 +321,6 @@ private ISysUserInformationService sysUserInformationService;
     @PostMapping("/sync/list")
     public R<List<SysUser>> syncUserList(@RequestBody SysUser user) {
         try {
-            String a="";
             return R.ok(userService.selectSyncUserList(user));
         } catch (Exception e) {
             return R.fail(e.getMessage());