Pārlūkot izejas kodu

feature 生成账单时增加对应的日志信息

xiahan 4 mēneši atpakaļ
vecāks
revīzija
85db5b300d

+ 8 - 18
zhsw-common/src/main/java/com/rongwei/zhsw/system/config/ThreadPoolConfig.java

@@ -10,6 +10,7 @@ import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
 import org.springframework.web.context.request.RequestAttributes;
 import org.springframework.web.context.request.RequestContextHolder;
 
+import javax.annotation.PreDestroy;
 import java.util.concurrent.ThreadPoolExecutor;
 import java.util.concurrent.TimeUnit;
 
@@ -22,20 +23,21 @@ import java.util.concurrent.TimeUnit;
 
 @Configuration
 public class ThreadPoolConfig implements AsyncConfigurer {
-    public static final String NAME_PRE="zhsw-";
 
-    @Bean("customThreadPool")
+    @Bean("zhswThreadPool")
     @Override
     public ThreadPoolTaskExecutor getAsyncExecutor() {
         ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor();
-        executor.setCorePoolSize(8);
-        executor.setMaxPoolSize(16);
-        executor.setQueueCapacity(30);
-        executor.setThreadNamePrefix(NAME_PRE);
+        executor.setCorePoolSize(4);
+        executor.setMaxPoolSize(8);
+        executor.setQueueCapacity(16);
+        executor.setThreadNamePrefix("zhsw-");
         executor.setTaskDecorator(new RequestContextTaskDecorator());
+        executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy());
         executor.initialize();
         return executor;
     }
+
     static class RequestContextTaskDecorator implements TaskDecorator {
         @Override
         public Runnable decorate(Runnable runnable) {
@@ -53,16 +55,4 @@ public class ThreadPoolConfig implements AsyncConfigurer {
             };
         }
     }
-    // public static ThreadPoolExecutor getExecutor(){
-    //     ThreadPoolExecutor threadPoolExecutor = ExecutorBuilder.create()
-    //             .setCorePoolSize(8)
-    //             .setMaxPoolSize(16)
-    //             .setKeepAliveTime(60, TimeUnit.SECONDS)
-    //             .setHandler(new ThreadPoolExecutor.CallerRunsPolicy())
-    //             .setAllowCoreThreadTimeOut(true)
-    //             .setThreadFactory(ThreadFactoryBuilder.create().setNamePrefix(NAME_PRE).build())
-    //             .build();
-    //     return threadPoolExecutor;
-    // }
-
 }

+ 1 - 9
zhsw-common/src/main/java/com/rongwei/zhsw/system/interceptor/WeChatTokenInterceptor.java

@@ -24,7 +24,7 @@ public class WeChatTokenInterceptor implements  HandlerInterceptor {
         String saasToken = request.getHeader("!SAAS_LOGIN_TOKEN_!"); // 假设token在Authorization头中
         // 或者从请求参数中获取: String token = request.getParameter("token");
         if(StringUtils.isBlank(source) || !WE_CHAT_SIGN.equals(source)){
-            request.removeAttribute(Constants.SAAS_LOGIN_TOKEN);
+            return true;
         }
         // 在这里添加token验证逻辑
         if (StringUtils.isNotBlank(saasToken)) {
@@ -37,12 +37,4 @@ public class WeChatTokenInterceptor implements  HandlerInterceptor {
         return true;
     }
 
-    // 这是一个假设的方法,用于验证token的有效性
-    private boolean isValidToken(String token) {
-        // 在这里添加你的token验证逻辑
-        // 例如,你可以查询数据库或调用外部服务来验证token
-        return "valid-token-example".equals(token); // 这是一个示例,你应该替换为实际的验证逻辑
-    }
-
-    // postHandle和afterCompletion
 }

+ 11 - 4
zhsw-common/src/main/java/com/rongwei/zhsw/system/service/impl/BillGenerationServiceImpl.java

@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.rongwe.zhsw.system.domain.SwBillManagementUnpaidDo;
 import com.rongwe.zhsw.system.domain.SwUserManagementDo;
 import com.rongwe.zhsw.system.domain.SwWaterUsageEntryDo;
+import com.rongwei.rwadmincommon.system.vo.SysUserVo;
 import com.rongwei.rwcommon.base.BaseDo;
 import com.rongwei.rwcommon.utils.SecurityUtil;
 import com.rongwei.zhsw.system.utils.ZHSWCommonUtils;
@@ -51,11 +52,13 @@ public class BillGenerationServiceImpl {
     }
 
     public void generateBill(List<SwWaterUsageEntryDo> swWaterUsageEntryDoList) {
-        log.info("开始生成账单信息");
+        SysUserVo currentUser = ZHSWCommonUtils.getCurrentUser();
+        log.info("当前生成账单的用户:{},所属的租户库为:{}",currentUser.getAccount(),currentUser.getTenantDo().getDskey());
         if (swWaterUsageEntryDoList == null || swWaterUsageEntryDoList.isEmpty()) {
             log.error("暂无需要生成账单的信息");
             return;
         }
+        log.debug("需要生成账单的抄表记录为:{}",swWaterUsageEntryDoList);
         // 对数据按照抄表日期排序
         List<SwWaterUsageEntryDo> collect = swWaterUsageEntryDoList.stream()
                 .sorted(Comparator.comparing(SwWaterUsageEntryDo::getCurrentreadingdate))
@@ -144,26 +147,30 @@ public class BillGenerationServiceImpl {
         dataSave(saveList, saveUsageEntryList, userSaveList);
     }
 
-    @Async(value = "customThreadPool")
+    @Async(value = "zhswThreadPool")
     public void generateBill(String id) {
+        log.info("开始给抄表记录:{},生成账单信息",id);
+
         SwWaterUsageEntryDo swWaterUsageEntryDo = swWaterUsageEntryService.getById(id);
         this.generateBill(Collections.singletonList(swWaterUsageEntryDo));
     }
 
-    @Async(value = "customThreadPool")
+    @Async(value = "zhswThreadPool")
     public void generateBill(List<String> ids, boolean a) {
         if (ids.isEmpty()) {
             log.error("抄表记录ID为空");
             return;
         }
+        log.info("开始给抄表记录:{},生成账单信息",ids);
         this.generateBill(swWaterUsageEntryService.getBaseMapper().selectBatchIds(ids));
     }
 
-    @Async(value = "customThreadPool")
+    @Async(value = "zhswThreadPool")
     public void generateBill() {
         List<SwWaterUsageEntryDo> list = swWaterUsageEntryService.list(new LambdaQueryWrapper<SwWaterUsageEntryDo>()
                 .eq(SwWaterUsageEntryDo::getDeleted, "0")
                 .eq(SwWaterUsageEntryDo::getState, 0));
+        log.info("开始给抄表记录:{},生成账单信息",list.stream().map(SwWaterUsageEntryDo::getId).collect(Collectors.toList()));
         this.generateBill(list);
     }