2 Commit-ok 62c69bd835 ... 710be6a6e0

Szerző SHA1 Üzenet Dátum
  lianshufeng 710be6a6e0 Merge branch 'master' of http://git.zonelife.cn:3001/IT/MicroService 1 éve
  lianshufeng 63baf9d45e update 1 éve

+ 24 - 4
angel/docker/standalone/frp/frpc/frpc.toml

@@ -24,11 +24,31 @@ transport.protocol = "tcp"
 # if tls_enable is true, frpc will connect frps by tls
 transport.tls.enable = true
 
+# [[proxies]]
+# name = "auth_center"
+# type = "tcp"
+# localIp = "192.168.31.98"
+# localPort = 8700
+# remotePort = 8700
+# transport.useEncryption = true
+# transport.useCompression = true
+
+
+
+#[[proxies]]
+#name = "pay_demo"
+#type = "tcp"
+#localIp = "192.168.31.98"
+#localPort = 9090
+#remotePort = 9090
+#transport.useEncryption = true
+#transport.useCompression = true
+
 [[proxies]]
-name = "auth_center"
-type = "tcp"
+name = "pay_demo"
+type = "http"
 localIp = "192.168.31.98"
-localPort = 8700
-remotePort = 8700
+localPort = 9090
+customDomains = ["consumerend.demo.danceyouth.cn"]
 transport.useEncryption = true
 transport.useCompression = true

+ 33 - 4
components/data/MongodbData/src/main/java/com/github/microservice/components/data/mongo/mongo/helper/DBHelper.java

@@ -2,12 +2,15 @@ package com.github.microservice.components.data.mongo.mongo.helper;
 
 import com.github.microservice.components.data.base.helper.TransactionHelper;
 import com.github.microservice.components.data.mongo.mongo.domain.SuperEntity;
+import com.github.microservice.core.util.bean.BeanUtil;
 import lombok.Getter;
 import lombok.Setter;
 import lombok.experimental.Delegate;
 import org.bson.Document;
 import org.bson.codecs.DocumentCodec;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.cglib.beans.BeanMap;
 import org.springframework.data.domain.Page;
 import org.springframework.data.domain.PageImpl;
 import org.springframework.data.domain.Pageable;
@@ -19,11 +22,9 @@ import org.springframework.data.mongodb.core.query.Query;
 import org.springframework.data.mongodb.core.query.Update;
 import org.springframework.stereotype.Component;
 
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.concurrent.ConcurrentHashMap;
+import java.util.stream.Collectors;
 
 @Component
 public class DBHelper {
@@ -65,6 +66,34 @@ public class DBHelper {
     private Map<Class, String> collectionCache = new ConcurrentHashMap();
 
 
+    /**
+     * 增量新增插入更新, 如果存在则覆盖非null的字段
+     *
+     * @param entity
+     */
+    public String incUpsert(SuperEntity entity, String... keys) {
+        Map<String, Object> entityMap = BeanMap.create(entity);
+        SuperEntity dbEntity = null;
+        if (keys != null && keys.length > 0) {
+            var criteria = Arrays.stream(keys).map((it) -> {
+                return Criteria.where(it).is(entityMap.get(it));
+            }).collect(Collectors.toSet());
+            dbEntity = this.mongoTemplate.findOne(Query.query(new Criteria().andOperator(criteria)), entity.getClass());
+        }
+        if (dbEntity == null) {
+            dbEntity = BeanUtil.newClass(entity.getClass());
+        }
+        Set<String> sets = new HashSet<>() {{
+            add("id");
+        }};
+        BeanUtil.getNullPropertyNames(entity, sets);
+        BeanUtils.copyProperties(entity, dbEntity, sets.toArray(String[]::new));
+        this.saveTime(dbEntity);
+        this.mongoTemplate.save(dbEntity);
+        return dbEntity.getId();
+    }
+
+
     /**
      * 设置更新时间
      *

+ 5 - 10
components/data/MongodbData/src/main/java/com/github/microservice/components/data/mongo/timer/core/SimpleTaskTimerCore.java

@@ -134,9 +134,7 @@ public class SimpleTaskTimerCore {
      */
     public void refreshTask() {
         this.cleanTask();
-        this.taskTimerDao.list().forEach((task) -> {
-            this.updateTask(task);
-        });
+        this.taskTimerDao.list().forEach(this::updateTask);
     }
 
 
@@ -176,18 +174,15 @@ public class SimpleTaskTimerCore {
     /**
      * 通知任务调度器被触发
      */
-    private void postEvent(final String taskId) {
+    private <T extends SuperEntity> void postEvent(final String taskId) {
         executorService.execute(() -> {
-            if (!this.taskTimerDao.lockTime(taskId)) {
-                return;
-            }
             try {
-                taskTimerEvent.execute(taskTimerDao.findById(taskId));
+                if (taskTimerDao.existsById(taskId)) {
+                    taskTimerEvent.execute(taskTimerDao.findById(taskId));
+                }
             } catch (Exception e) {
                 e.printStackTrace();
                 log.error("e : {}", e);
-            } finally {
-                this.taskTimerDao.unlockTime(taskId);
             }
         });
     }

+ 39 - 40
components/data/MongodbData/src/main/java/com/github/microservice/components/data/mongo/timer/core/SimpleTaskTimerDao.java

@@ -15,14 +15,15 @@ import org.springframework.data.domain.Page;
 import org.springframework.data.domain.PageRequest;
 import org.springframework.data.domain.Pageable;
 import org.springframework.data.domain.Sort;
-import org.springframework.data.mongodb.core.FindAndModifyOptions;
 import org.springframework.data.mongodb.core.MongoTemplate;
 import org.springframework.data.mongodb.core.query.Criteria;
 import org.springframework.data.mongodb.core.query.Query;
-import org.springframework.data.mongodb.core.query.Update;
 import org.springframework.stereotype.Component;
 
-import java.util.*;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Optional;
 import java.util.stream.Collectors;
 
 /**
@@ -78,17 +79,15 @@ public class SimpleTaskTimerDao {
         }).collect(Collectors.toList());
     }
 
-
-    /**
-     * 通过id找到这条数据
-     *
-     * @param id
-     * @return
-     */
     public <T> T findById(String id) {
         return (T) this.mongoTemplate.findById(id, this.taskTimerTableCls);
     }
 
+    public boolean existsById(String id) {
+        return this.mongoTemplate.exists(Query.query(Criteria.where("_id").is(id)), this.taskTimerTableCls);
+    }
+
+
     /**
      * 查询并转换为任务调度器对象
      *
@@ -112,36 +111,36 @@ public class SimpleTaskTimerDao {
     }
 
 
-    /**
-     * 执行锁定时间
-     */
-    public boolean lockTime(String id) {
-        final String lockSession = UUID.randomUUID().toString();
-        Query query = Query.query(
-                Criteria.where("_id").is(id).and("executeLockTIme").lt(this.dbHelper.getTime())
-        );
-        Update update = new Update();
-        update.set("executeLockTIme", (this.dbHelper.getTime() + this.taskTimerConf.getExecuteLockTIme()));
-        update.set("lockSession", lockSession);
-        this.dbHelper.updateTime(update);
-
-        //取出数据实体
-        final SimpleTaskTimerTable simpleTaskTimerTable = (SimpleTaskTimerTable) this.mongoTemplate.findAndModify(query, update, FindAndModifyOptions.options().returnNew(true), getTaskTimerTableCls());
-        return simpleTaskTimerTable != null && lockSession.equals(simpleTaskTimerTable.getLockSession());
-    }
-
-    /**
-     * 解除锁定时间
-     *
-     * @param id
-     */
-    public void unlockTime(String id) {
-        Query query = Query.query(Criteria.where("_id").is(id));
-        Update update = new Update();
-        update.set("executeLockTIme", 0);
-        this.dbHelper.updateTime(update);
-        this.mongoTemplate.updateFirst(query, update, getTaskTimerTableCls());
-    }
+//    /**
+//     * 执行锁定时间
+//     */
+//    public boolean lockTime(String id) {
+//        final String lockSession = UUID.randomUUID().toString();
+//        Query query = Query.query(
+//                Criteria.where("_id").is(id).and("executeLockTIme").lt(this.dbHelper.getTime())
+//        );
+//        Update update = new Update();
+//        update.set("executeLockTIme", (this.dbHelper.getTime() + this.taskTimerConf.getExecuteLockTIme()));
+//        update.set("lockSession", lockSession);
+//        this.dbHelper.updateTime(update);
+//
+//        //取出数据实体
+//        final SimpleTaskTimerTable simpleTaskTimerTable = (SimpleTaskTimerTable) this.mongoTemplate.findAndModify(query, update, FindAndModifyOptions.options().returnNew(true), getTaskTimerTableCls());
+//        return simpleTaskTimerTable != null && lockSession.equals(simpleTaskTimerTable.getLockSession());
+//    }
+//
+//    /**
+//     * 解除锁定时间
+//     *
+//     * @param id
+//     */
+//    public void unlockTime(String id) {
+//        Query query = Query.query(Criteria.where("_id").is(id));
+//        Update update = new Update();
+//        update.set("executeLockTIme", 0);
+//        this.dbHelper.updateTime(update);
+//        this.mongoTemplate.updateFirst(query, update, getTaskTimerTableCls());
+//    }
 
 
 }

+ 0 - 9
components/data/MongodbData/src/main/java/com/github/microservice/components/data/mongo/timer/domain/SimpleTaskTimerTable.java

@@ -27,13 +27,4 @@ public class SimpleTaskTimerTable extends SuperEntity {
     @Indexed
     private boolean disable;
 
-
-    //执行锁定时间
-    @Indexed
-    private long executeLockTIme;
-
-    //锁定的会话id
-    @Indexed
-    private String lockSession;
-
 }

+ 1 - 1
demo/auth/src/main/java/com/example/auth/core/config/ApiConfig.java

@@ -5,6 +5,6 @@ import org.springframework.context.annotation.Configuration;
 import org.springframework.context.annotation.Import;
 
 @Configuration
-@Import(SwaggerConfiguration.class)
+//@Import(SwaggerConfiguration.class)
 public class ApiConfig {
 }

+ 14 - 0
demo/auth/src/main/java/com/example/auth/core/controller/TestController.java

@@ -1,6 +1,8 @@
 package com.example.auth.core.controller;
 
 import com.github.microservice.auth.client.content.ResultContent;
+import com.github.microservice.auth.client.model.OrganizationModel;
+import com.github.microservice.auth.client.service.OrganizationService;
 import com.github.microservice.auth.client.service.UserService;
 import com.github.microservice.auth.security.annotations.ResourceAuth;
 import com.github.microservice.auth.security.helper.AuthHelper;
@@ -25,6 +27,10 @@ public class TestController {
     @Autowired
     private AuthHelper authHelper;
 
+
+    @Autowired
+    private OrganizationService organizationService;
+
     //    @ApiOperation("刷新访问令牌")
     @GetMapping("refreshToken")
     public Object refreshToken(
@@ -95,4 +101,12 @@ public class TestController {
         }};
     }
 
+    @GetMapping("add")
+    public Object add(){
+        OrganizationModel organizationModel = new OrganizationModel();
+        organizationModel.setName("test1");
+        organizationModel.setAuthType(AuthType.Enterprise);
+        return organizationService.add(organizationModel);
+    }
+
 }

+ 1 - 1
demo/auth/src/main/resources/application.yml

@@ -1,6 +1,6 @@
 #Web服务器端口
 server:
-  port: 8080
+  port: 8881
 
 #允许消息总线
 spring: