瀏覽代碼

【第一版开发】
1.修复双色球模板数据异常
2.完善调用定时任务代码
3.完善查询用户订阅推送配置代码

ChenYL 9 月之前
父節點
當前提交
e04c48154e

+ 1 - 1
data-easy/src/main/java/com/dataeasy/server/constant/ScheduleTaskEnum.java

@@ -20,7 +20,7 @@ public enum ScheduleTaskEnum {
     SHUANG_SE_QIU("双色球定时任务"),
     IPO_BOND("新债定时任务"),
     IPO_STOCK("新股定时任务"),
-    PRODUCT_HUNT("ProductHunt热榜定时任务"),
+    PRODUCT_HUNT_POST("ProductHunt热榜定时任务"),
     AUTO_CLOSE_PAY_ORDER("支付订单自动关闭定时任务"),
     AUTO_DELETE_SUBSCRIPTION_USER_CONFIG("用户订阅源配置过期自动删除");
 

+ 11 - 7
data-easy/src/main/java/com/dataeasy/server/service/manager/impl/OpManagerImpl.java

@@ -29,14 +29,18 @@ public class OpManagerImpl implements IOpManager {
 
     @Override
     public void scheduleTask(String beanName) {
-        TaskExecutor task = SpringUtils.getBean(beanName);
-        if (Objects.isNull(task)) {
-            BusinessException.throwFail("bean不存在");
+        try {
+            TaskExecutor task = SpringUtils.getBean(beanName);
+            if (Objects.isNull(task)) {
+                BusinessException.throwFail("bean不存在");
+            }
+            if (!(task instanceof TaskExecutor)) {
+                BusinessException.throwFail("bean没有实现TaskExecutor接口,无法调用");
+            }
+            task.execute();
+        } catch (Exception e) {
+            log.error("调起定时任务异常", e);
         }
-        if (!(task instanceof TaskExecutor)) {
-            BusinessException.throwFail("bean没有实现TaskExecutor接口,无法调用");
-        }
-        task.execute();
     }
 
     @Override

+ 26 - 21
data-easy/src/main/java/com/dataeasy/server/service/manager/impl/SubscriptionManagerImpl.java

@@ -1,5 +1,23 @@
 package com.dataeasy.server.service.manager.impl;
 
+import java.time.LocalDate;
+import java.time.temporal.ChronoUnit;
+import java.util.Arrays;
+import java.util.List;
+import java.util.Map;
+import java.util.Objects;
+import java.util.Set;
+import java.util.function.Function;
+import java.util.stream.Collectors;
+
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.cache.CacheManager;
+import org.springframework.cache.annotation.Cacheable;
+import org.springframework.stereotype.Component;
+import org.springframework.util.CollectionUtils;
+import org.springframework.util.StringUtils;
+
 import com.dataeasy.server.atomic.entity.SubscriptionPlan;
 import com.dataeasy.server.atomic.entity.SubscriptionSource;
 import com.dataeasy.server.atomic.entity.SubscriptionUserConfig;
@@ -10,33 +28,17 @@ import com.dataeasy.server.common.exception.BusinessException;
 import com.dataeasy.server.common.utils.Assert;
 import com.dataeasy.server.constant.CacheNameConstant;
 import com.dataeasy.server.pojo.subscription.PushOptionRequest;
-import com.dataeasy.server.pojo.subscription.SubscriptionSourcePlanVO;
-import com.dataeasy.server.pojo.subscription.SubscriptionSourceVO;
 import com.dataeasy.server.pojo.subscription.SubscriptionPlanQuery;
-import com.dataeasy.server.pojo.subscription.SubscriptionSourceQuery;
 import com.dataeasy.server.pojo.subscription.SubscriptionSourceDetailVO;
+import com.dataeasy.server.pojo.subscription.SubscriptionSourcePlanVO;
+import com.dataeasy.server.pojo.subscription.SubscriptionSourceQuery;
+import com.dataeasy.server.pojo.subscription.SubscriptionSourceVO;
 import com.dataeasy.server.pojo.subscription.SubscriptionUserConfigQuery;
 import com.dataeasy.server.pojo.subscription.SubscriptionUserConfigVO;
 import com.dataeasy.server.service.manager.ISubscriptionManager;
 import com.dataeasy.server.utiis.UserUtils;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.BeanUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.cache.CacheManager;
-import org.springframework.cache.annotation.Cacheable;
-import org.springframework.stereotype.Component;
-import org.springframework.util.CollectionUtils;
-import org.springframework.util.StringUtils;
 
-import java.time.LocalDateTime;
-import java.time.temporal.ChronoUnit;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Map;
-import java.util.Objects;
-import java.util.Set;
-import java.util.function.Function;
-import java.util.stream.Collectors;
+import lombok.extern.slf4j.Slf4j;
 
 /**
  * @author tyuio
@@ -116,9 +118,12 @@ public class SubscriptionManagerImpl implements ISubscriptionManager {
     @Override
     @Cacheable(cacheNames = CacheNameConstant.SUBSCRIPTION_USER_CONFIG_LIST, key = "#userId")
     public List<SubscriptionUserConfigVO> querySubscriptionUserConfig(Long userId) {
+        // 当前日期
+        LocalDate currentDate = LocalDate.now();
         // 查询当前用户拥有的订阅源
         SubscriptionUserConfigQuery subscriptionUserConfigQuery = new SubscriptionUserConfigQuery();
         subscriptionUserConfigQuery.setUserId(userId);
+        subscriptionUserConfigQuery.setCurrentDate(currentDate);
         List<SubscriptionUserConfig> userConfigList = subscriptionUserConfigService.getByCondition(subscriptionUserConfigQuery);
         if (CollectionUtils.isEmpty(userConfigList)) {
             return List.of();
@@ -145,7 +150,7 @@ public class SubscriptionManagerImpl implements ISubscriptionManager {
             }
 
             // 因为ChronoUnit.DAYS.between不包含结束的那天,所以需要+1
-            long remainingDays = ChronoUnit.DAYS.between(userConfig.getStartDate(), userConfig.getEndDate().plusDays(1));
+            long remainingDays = ChronoUnit.DAYS.between(currentDate, userConfig.getEndDate().plusDays(1));
             subscriptionUserConfigVO.setRemainingDays(remainingDays);
 
             return subscriptionUserConfigVO;

+ 1 - 1
data-easy/src/main/java/com/dataeasy/server/task/ProductHuntTask.java

@@ -65,7 +65,7 @@ import me.chanjar.weixin.mp.bean.template.WxMpTemplateData;
  */
 @Slf4j
 @Component
-@ScheduleTask(ScheduleTaskEnum.PRODUCT_HUNT)
+@ScheduleTask(ScheduleTaskEnum.PRODUCT_HUNT_POST)
 public class ProductHuntTask extends AbstractDataTask {
 
     /**

+ 1 - 1
data-easy/src/main/java/com/dataeasy/server/task/ShuangSeQiuTask.java

@@ -103,7 +103,7 @@ public class ShuangSeQiuTask extends AbstractHzApiTask {
         // 模板所需数据
         List<WxMpTemplateData> templateDataList = new ArrayList();
         templateDataList.add(new WxMpTemplateData("thing76", String.format("双色球开奖结果-%s期", drwaDate)));
-        templateDataList.add(new WxMpTemplateData("time4", drawTime));
+        templateDataList.add(new WxMpTemplateData("time4", drawTime.substring(0, 10)));
 
         TemplateData templateData = new TemplateData();
         templateData.setTemplateMessage(templateDataList);

+ 1 - 1
data-easy/src/main/resources/application-prod.yaml

@@ -63,7 +63,7 @@ product-hunt:
   # 系统自访问密钥
   api-key: ENC(z2rDV5xcbhkO3JuGB83J+0GmLREenc7ucsn0s5POe2NtMtblIgdOfQ==)
   # 同一时间翻译数量
-  translate-num: 10
+  translate-num: 5
 
 # 系统配置
 biz: