From 0e9b6603d4ae9d11c1fbc90257ce816c5807b8ff Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期五, 28 十月 2022 16:55:02 +0800
Subject: [PATCH] 批量添加结算消息

---
 app/src/main/java/com/yeshi/makemoney/app/Application.java |   93 ++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 93 insertions(+), 0 deletions(-)

diff --git a/app/src/main/java/com/yeshi/makemoney/app/Application.java b/app/src/main/java/com/yeshi/makemoney/app/Application.java
index bfd01d7..571cd03 100644
--- a/app/src/main/java/com/yeshi/makemoney/app/Application.java
+++ b/app/src/main/java/com/yeshi/makemoney/app/Application.java
@@ -1,17 +1,37 @@
 package com.yeshi.makemoney.app;
 
+import com.google.gson.Gson;
+import com.ks.lib.common.exception.ParamsException;
+import com.yeshi.makemoney.app.dto.mq.ExtractTransferResultMQMsg;
+import com.yeshi.makemoney.app.dto.mq.GoldCornSettleMQMsg;
+import com.yeshi.makemoney.app.exception.goldcorn.GoldCornConsumeRecordException;
+import com.yeshi.makemoney.app.exception.goldcorn.GoldCornMoneyExchangeRateRecordException;
+import com.yeshi.makemoney.app.exception.money.UserMoneyRecordException;
+import com.yeshi.makemoney.app.exception.user.UserInfoException;
+import com.yeshi.makemoney.app.service.inter.goldcorn.GoldCornSettleService;
+import com.yeshi.makemoney.app.service.inter.money.ExtractService;
+import com.yeshi.makemoney.app.utils.Constant;
+import com.yeshi.makemoney.app.utils.LogUtil;
+import com.yeshi.makemoney.app.utils.mq.CMQManager;
 import org.mybatis.spring.annotation.MapperScan;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.boot.web.servlet.MultipartConfigFactory;
 import org.springframework.context.ApplicationListener;
+import org.springframework.context.annotation.Bean;
 import org.springframework.context.event.ContextRefreshedEvent;
 import org.springframework.transaction.annotation.EnableTransactionManagement;
 import org.yeshi.utils.mq.JobThreadExecutorServiceImpl;
 import org.yeshi.utils.tencentcloud.COSManager;
 import org.yeshi.utils.tencentcloud.entity.COSInitParams;
 
+import javax.annotation.Resource;
+import javax.servlet.MultipartConfigElement;
+import java.io.File;
+import java.util.Iterator;
+import java.util.Map;
 import java.util.Properties;
 
 //涓嶅紩鍏ユ暟鎹簱
@@ -22,10 +42,12 @@
 @EnableTransactionManagement
 //@EnableDubbo(scanBasePackages = "com.ks.push.service.remote")
 public class Application implements ApplicationListener<ContextRefreshedEvent> {
+    Logger settleLogger= LoggerFactory.getLogger("settleLog");
     private final static Logger logger = LoggerFactory.getLogger(Application.class);
 
     public static void main(String[] args) {
         SpringApplication.run(Application.class, args);
+        logger.info(Constant.wxTransferConfig.toString());
         logger.info("搴旂敤鍚姩鎴愬姛");
     }
 
@@ -35,7 +57,15 @@
         logger.info("瀹瑰櫒鍔犺浇瀹屾瘯");
         initMQMsgConsumer();
         initCOS();
+        LogUtil.settleLogger.info("test123");
+
     }
+
+    @Resource
+    private GoldCornSettleService goldCornSettleService;
+
+    @Resource
+    private ExtractService extractService;
 
     private void initMQMsgConsumer() {
         final int THREAD_NUM = 3;
@@ -46,9 +76,60 @@
                 @Override
                 public void run() {
 
+                    Map<String, GoldCornSettleMQMsg> map = CMQManager.getInstance().consumeGoldCornSettleMsg(10);
+                    if (map != null) {
+                        for (Iterator<String> its = map.keySet().iterator(); its.hasNext(); ) {
+                            String key = its.next();
+                            GoldCornSettleMQMsg msg = map.get(key);
+                            try {
+                                settleLogger.info("娑堣垂缁撶畻娑堟伅寮�濮嬶細{}",new Gson().toJson(msg));
+                                goldCornSettleService.settle(msg.getUid(), msg.getDay(),msg.getSettleId());
+                                CMQManager.getInstance().deleteGoldCornSettleMsg(key);
+                                settleLogger.info("娑堣垂缁撶畻娑堟伅鎴愬姛锛歿}",new Gson().toJson(msg));
+                            } catch (UserInfoException e) {
+                                e.printStackTrace();
+                                settleLogger.error("娑堣垂缁撶畻娑堟伅寮傚父锛歿} ",new Gson().toJson(msg),e);
+                            } catch (GoldCornMoneyExchangeRateRecordException e) {
+                                e.printStackTrace();
+                                settleLogger.error("娑堣垂缁撶畻娑堟伅寮傚父锛歿} ",new Gson().toJson(msg),e);
+                            } catch (UserMoneyRecordException e) {
+                                e.printStackTrace();
+                                settleLogger.error("娑堣垂缁撶畻娑堟伅寮傚父锛歿} ",new Gson().toJson(msg),e);
+                            } catch (GoldCornConsumeRecordException e) {
+                                e.printStackTrace();
+                                settleLogger.error("娑堣垂缁撶畻娑堟伅寮傚父锛歿} ",new Gson().toJson(msg),e);
+                            } catch (Exception e) {
+                                e.printStackTrace();
+                                settleLogger.error("娑堣垂缁撶畻娑堟伅寮傚父锛歿} ",new Gson().toJson(msg),e);
+                            }
+                        }
+                    }
+
+
                 }
             });
         }
+
+        //澶勭悊鎻愮幇缁撴灉
+        new JobThreadExecutorServiceImpl().run(new Runnable() {
+            @Override
+            public void run() {
+                Map<String, ExtractTransferResultMQMsg> map = CMQManager.getInstance().consumeExtractResultMsg(1);
+                if (map != null) {
+                    for (Iterator<String> its = map.keySet().iterator(); its.hasNext(); ) {
+                        String key = its.next();
+                        ExtractTransferResultMQMsg msg = map.get(key);
+                        try {
+                            extractService.processExtractResult(msg);
+                            CMQManager.getInstance().deleteExtractResultMsg(key);
+                        } catch (ParamsException e) {
+                            e.printStackTrace();
+                        }
+                    }
+                }
+            }
+        });
+
     }
 
 
@@ -69,4 +150,16 @@
         COSManager.getInstance().init(params);
     }
 
+    @Bean
+    MultipartConfigElement multipartConfigElement() {
+        MultipartConfigFactory factory = new MultipartConfigFactory();
+        String location = System.getProperty("user.dir") + "/data/tmp";
+        File tmpFile = new File(location);
+        if (!tmpFile.exists()) {
+            tmpFile.mkdirs();
+        }
+        factory.setLocation(location);
+        return factory.createMultipartConfig();
+    }
+
 }

--
Gitblit v1.8.0