diff --git a/pom.xml b/pom.xml
index cae0a17..2088496 100644
--- a/pom.xml
+++ b/pom.xml
@@ -303,6 +303,7 @@
wxpay-sdk
+ ruoyi-segchk-test
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/security/SecurityConfig.java b/ruoyi-admin/src/main/java/com/ruoyi/security/SecurityConfig.java
index f6592ef..20fafc8 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/security/SecurityConfig.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/security/SecurityConfig.java
@@ -87,7 +87,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter {
// 过滤请求
.authorizeRequests()
// 对于登录login 验证码captchaImage 允许匿名访问
- .antMatchers("/login", "/captchaImage").anonymous()
+ .antMatchers("/login", "/captchaImage", "/test/user/**").anonymous()
.antMatchers(
HttpMethod.GET,
"/*.html",
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/security/web/service/AdminSchedule.java b/ruoyi-admin/src/main/java/com/ruoyi/security/web/service/AdminSchedule.java
new file mode 100644
index 0000000..2a419ed
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/security/web/service/AdminSchedule.java
@@ -0,0 +1,10 @@
+package com.ruoyi.security.web.service;
+
+public interface AdminSchedule {
+
+ /**
+ * 将redis中商家流量缓存到数据库中
+ * @author seg_yinzy
+ */
+ int flushCount2DB();
+}
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/security/web/service/AdminScheduleImpl.java b/ruoyi-admin/src/main/java/com/ruoyi/security/web/service/AdminScheduleImpl.java
new file mode 100644
index 0000000..9cbb50e
--- /dev/null
+++ b/ruoyi-admin/src/main/java/com/ruoyi/security/web/service/AdminScheduleImpl.java
@@ -0,0 +1,254 @@
+package com.ruoyi.security.web.service;
+
+import com.alibaba.fastjson.JSON;
+import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.utils.RedisUtil;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.segchk.domain.SegchkFlushCnt;
+import com.ruoyi.segchk.domain.SegchkProviderMgt;
+import com.ruoyi.segchk.domain.SegchkStoreCntCtrl;
+import com.ruoyi.segchk.domain.SimpleListObj;
+import com.ruoyi.segchk.service.ISegchkProviderMgtService;
+import com.ruoyi.segchk.service.ISegchkStoreBasicInfoService;
+import com.ruoyi.segchk.service.ISegchkStoreCntCtrlService;
+import com.ruoyi.segchk.utils.RateRandomNumber;
+import javafx.util.Pair;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.stereotype.Component;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.util.ObjectUtils;
+
+import javax.annotation.PostConstruct;
+import javax.annotation.Resource;
+import java.util.*;
+import java.util.concurrent.ConcurrentMap;
+import java.util.stream.Collectors;
+import java.util.stream.Stream;
+
+import static java.util.stream.Collectors.*;
+
+@Component
+public class AdminScheduleImpl implements AdminSchedule {
+ private static final Logger log = LoggerFactory.getLogger(AdminScheduleImpl.class);
+
+ @Resource
+ private RedisUtil redisUtil;
+
+ @Resource
+ private ISegchkProviderMgtService segchkProviderMgtService;
+
+ @Resource
+ private ISegchkStoreBasicInfoService segchkStoreBasicInfoService;
+
+ @Resource
+ private ISegchkStoreCntCtrlService segchkStoreCntCtrlService;
+
+ @PostConstruct
+ public void init(){
+ loadAllWechatCnt();
+ }
+
+ private void loadAllWechatCnt() {
+ log.debug("loadAllWechatCnt is called");
+ List segchkStoreCntCtrls = segchkStoreCntCtrlService.selectSegchkStoreCntCtrlListByRecent();
+ int ret = segchkStoreCntCtrlService.invalidateByOutId(segchkStoreCntCtrls.parallelStream().map(v -> v.getCntId()).collect(toList()));
+ Map collectMap = get2RedisMap(segchkStoreCntCtrls, 0);
+ redisUtil.hmset("wechatCount", collectMap);
+ collectMap = get2RedisMap(segchkStoreCntCtrls, 1);
+ redisUtil.hmset("wechatCount1", collectMap);
+ }
+
+ private Map get2RedisMap(List segchkStoreCntCtrls, int flag) {
+ List