admin
2022-05-10 2922e51a7a8e657a8467c818ae16700e41ddac77
app/src/main/java/com/yeshi/makemoney/app/Application.java
@@ -1,17 +1,35 @@
package com.yeshi.makemoney.app;
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.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;
//不引入数据库
@@ -26,6 +44,7 @@
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
        logger.info(Constant.wxTransferConfig.toString());
        logger.info("应用启动成功");
    }
@@ -37,6 +56,12 @@
        initCOS();
    }
    @Resource
    private GoldCornSettleService goldCornSettleService;
    @Resource
    private ExtractService extractService;
    private void initMQMsgConsumer() {
        final int THREAD_NUM = 3;
@@ -45,10 +70,53 @@
            new JobThreadExecutorServiceImpl().run(new Runnable() {
                @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 {
                                goldCornSettleService.settle(msg.getUid(), msg.getDay(),msg.getSettleId());
                                CMQManager.getInstance().deleteGoldCornSettleMsg(key);
                            } catch (UserInfoException e) {
                                e.printStackTrace();
                            } catch (GoldCornMoneyExchangeRateRecordException e) {
                                e.printStackTrace();
                            } catch (UserMoneyRecordException e) {
                                e.printStackTrace();
                            } catch (GoldCornConsumeRecordException e) {
                                e.printStackTrace();
                            } catch (Exception e) {
                                e.printStackTrace();
                            }
                        }
                    }
                }
            });
        }
        //处理提现结果
        new JobThreadExecutorServiceImpl().run(new Runnable() {
            @Override
            public void run() {
                Map<String, ExtractTransferResultMQMsg> map = CMQManager.getInstance().consumeExtractResultMsg(10);
                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 +137,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();
    }
}