deason 5 роки тому
батько
коміт
09e4b83062

+ 8 - 0
examcloud-core-basic-dao/src/main/java/cn/com/qmth/examcloud/core/basic/dao/LoginRuleRepo.java

@@ -0,0 +1,8 @@
+package cn.com.qmth.examcloud.core.basic.dao;
+
+import cn.com.qmth.examcloud.core.basic.dao.entity.LoginRuleEntity;
+import org.springframework.data.jpa.repository.JpaRepository;
+
+public interface LoginRuleRepo extends JpaRepository<LoginRuleEntity, Long> {
+
+}

+ 55 - 0
examcloud-core-basic-dao/src/main/java/cn/com/qmth/examcloud/core/basic/dao/entity/LoginRuleEntity.java

@@ -0,0 +1,55 @@
+package cn.com.qmth.examcloud.core.basic.dao.entity;
+
+import cn.com.qmth.examcloud.web.jpa.JpaEntity;
+
+import javax.persistence.*;
+
+/**
+ * 登录规则(白名单)
+ */
+@Entity
+@Table(name = "ec_b_login_rule", indexes = {@Index(name = "IDX_B_LR_010001", columnList = "rootOrgId")})
+public class LoginRuleEntity extends JpaEntity {
+
+    private static final long serialVersionUID = 1L;
+
+    @Id
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
+    private Long id;
+
+    /**
+     * 顶级机构
+     */
+    @Column(nullable = false)
+    private Long rootOrgId;
+
+    /**
+     * 是否白名单
+     */
+    @Column(nullable = false)
+    private Boolean white;
+
+    public Long getId() {
+        return id;
+    }
+
+    public void setId(Long id) {
+        this.id = id;
+    }
+
+    public Long getRootOrgId() {
+        return rootOrgId;
+    }
+
+    public void setRootOrgId(Long rootOrgId) {
+        this.rootOrgId = rootOrgId;
+    }
+
+    public Boolean getWhite() {
+        return white;
+    }
+
+    public void setWhite(Boolean white) {
+        this.white = white;
+    }
+}

+ 7 - 0
examcloud-core-basic-service/src/main/java/cn/com/qmth/examcloud/core/basic/service/LoginRuleService.java

@@ -0,0 +1,7 @@
+package cn.com.qmth.examcloud.core.basic.service;
+
+public interface LoginRuleService {
+
+    void refreshLoginRule();
+
+}

+ 27 - 0
examcloud-core-basic-service/src/main/java/cn/com/qmth/examcloud/core/basic/service/impl/LoginRuleServiceImpl.java

@@ -0,0 +1,27 @@
+package cn.com.qmth.examcloud.core.basic.service.impl;
+
+import cn.com.qmth.examcloud.commons.logging.ExamCloudLog;
+import cn.com.qmth.examcloud.commons.logging.ExamCloudLogFactory;
+import cn.com.qmth.examcloud.core.basic.dao.LoginRuleRepo;
+import cn.com.qmth.examcloud.core.basic.service.LoginRuleService;
+import cn.com.qmth.examcloud.web.redis.RedisClient;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+@Service
+public class LoginRuleServiceImpl implements LoginRuleService {
+
+    private static final ExamCloudLog log = ExamCloudLogFactory.getLog("INTERFACE_LOGGER");
+
+    @Autowired
+    private LoginRuleRepo loginRuleRepo;
+
+    @Autowired
+    private RedisClient redisClient;
+
+    @Override
+    public void refreshLoginRule() {
+
+    }
+
+}

+ 28 - 0
examcloud-core-basic-starter/src/main/java/cn/com/qmth/examcloud/core/basic/starter/config/ScheduleConfig.java

@@ -0,0 +1,28 @@
+package cn.com.qmth.examcloud.core.basic.starter.config;
+
+import cn.com.qmth.examcloud.core.basic.service.LoginRuleService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.EnableScheduling;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+import java.io.Serializable;
+
+@Component
+@EnableScheduling
+public class ScheduleConfig implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @Autowired
+    private LoginRuleService loginRuleService;
+
+    /**
+     * 定时刷新登录规则(每N分钟执行)
+     */
+    @Scheduled(cron = "0 3/3 * * * ?")
+    public void execute() {
+        loginRuleService.refreshLoginRule();
+    }
+
+}