admin
2022-10-28 0e9b6603d4ae9d11c1fbc90257ce816c5807b8ff
批量添加结算消息
5个文件已修改
62 ■■■■ 已修改文件
app/src/main/java/com/yeshi/makemoney/app/controller/admin/goldcorn/GoldCornSettleRecordAdminController.java 21 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/yeshi/makemoney/app/service/impl/goldcorn/GoldCornSettleServiceImpl.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/yeshi/makemoney/app/service/inter/goldcorn/GoldCornSettleService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/yeshi/makemoney/app/utils/mq/CMQManager.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/test/java/test/Test.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/yeshi/makemoney/app/controller/admin/goldcorn/GoldCornSettleRecordAdminController.java
@@ -26,6 +26,7 @@
import javax.servlet.http.HttpSession;
import java.lang.reflect.Type;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@@ -97,6 +98,9 @@
        } catch (ParamsException e) {
            e.printStackTrace();
            return JsonUtil.loadFalseResult(e.getMessage());
        } catch (Exception e) {
            e.printStackTrace();
            return JsonUtil.loadFalseResult(e.getMessage());
        }
    }
@@ -157,16 +161,21 @@
        }
        long count = goldCornGetRecordService.countUidsByDay(record.getDay());
        int pageSize = 1000;
        int pageSize = 16;
        int page = (int) (count % pageSize == 0 ? count / pageSize : count / pageSize + 1);
        for (int i = 0; i < page; i++) {
            List<Long> list = goldCornGetRecordService.getUidsByDay(record.getDay(), i + 1, pageSize);
            for (Long uid : list) {
        try {
            for (int i = 0; i < page; i++) {
                List<Long> list = goldCornGetRecordService.getUidsByDay(record.getDay(), i + 1, pageSize);
                List<GoldCornSettleMQMsg> msgList = new ArrayList<>();
                for (Long uid : list) {
                    msgList.add(new GoldCornSettleMQMsg(record.getId(), uid, record.getDay(), System.currentTimeMillis()));
                }
                //加入到CMQ
                CMQManager.getInstance().addGoldCornSettleMsg(new GoldCornSettleMQMsg(record.getId(), uid, record.getDay(), System.currentTimeMillis()));
                CMQManager.getInstance().addGoldCornSettleMsg(msgList);
            }
        } catch (Exception e) {
            return JsonUtil.loadFalseResult(e.getMessage());
        }
        return JsonUtil.loadTrueResult(gson.toJson(record));
    }
app/src/main/java/com/yeshi/makemoney/app/service/impl/goldcorn/GoldCornSettleServiceImpl.java
@@ -30,11 +30,13 @@
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.yeshi.utils.JsonUtil;
import org.yeshi.utils.ThreadUtil;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
@@ -47,7 +49,7 @@
 */
@Service
public class GoldCornSettleServiceImpl implements GoldCornSettleService {
    Logger settleLogger= LoggerFactory.getLogger("settleLog");
    Logger settleLogger = LoggerFactory.getLogger("settleLog");
    @Resource
    private GoldCornGetRecordService goldCornGetRecordService;
@@ -74,7 +76,7 @@
    private GoldCornSettleRecordService goldCornSettleRecordService;
    @Override
    public void startSettle(Date date, String remarks, SystemEnum system) throws GoldCornSettleRecordException, ParamsException {
    public void startSettle(Date date, String remarks, SystemEnum system) throws Exception {
        String day = GoldCornUtil.getFormatDay(date);
        if (GoldCornUtil.convertFormatDay(day).getTime() >= GoldCornUtil.convertFormatDay(GoldCornUtil.getFormatDay(new Date())).getTime()) {
@@ -108,18 +110,19 @@
        record.setSettledUserCount(0L);
        goldCornSettleRecordService.add(record);
        int pageSize = 1000;
        int pageSize = 16;
        int page = (int) (count % pageSize == 0 ? count / pageSize : count / pageSize + 1);
        for (int i = 0; i < page; i++) {
            List<Long> list = goldCornGetRecordService.getUidsByDay(day, i + 1, pageSize);
            List<Long> list = goldCornGetRecordService.getUidsByDay(record.getDay(), i + 1, pageSize);
            List<GoldCornSettleMQMsg> msgList = new ArrayList<>();
            for (Long uid : list) {
                //加入到CMQ
                GoldCornSettleMQMsg msg=  new GoldCornSettleMQMsg(record.getId(), uid, day, System.currentTimeMillis());
                settleLogger.info("加入结算队列:{}",new Gson().toJson(msg));
                CMQManager.getInstance().addGoldCornSettleMsg(msg);
                GoldCornSettleMQMsg msg = new GoldCornSettleMQMsg(record.getId(), uid, day, System.currentTimeMillis());
                msgList.add(msg);
                settleLogger.info("加入结算队列:{}", new Gson().toJson(msg));
            }
            //加入到CMQ
            CMQManager.getInstance().addGoldCornSettleMsg(msgList);
        }
    }
@@ -129,7 +132,7 @@
        long cornNum = goldCornGetRecordService.getGoldCornByDay(uid, GoldCornUtil.convertFormatDay(day));
        //金币数量
        GoldCornConsumeRecord record = GoldCornConsumeRecordFactory.createExchange(uid, day, (int) cornNum, rate, settleId);
        if(goldCornConsumeRecordService.get(record.getId())!=null){
        if (goldCornConsumeRecordService.get(record.getId()) != null) {
            //已经结算过了
            return;
        }
app/src/main/java/com/yeshi/makemoney/app/service/inter/goldcorn/GoldCornSettleService.java
@@ -27,7 +27,7 @@
     * @date 11:46 2022/4/7
     * @param: day
     **/
    public void startSettle(Date day, String remarks, SystemEnum system) throws GoldCornSettleRecordException, ParamsException;
    public void startSettle(Date day, String remarks, SystemEnum system) throws Exception;
    /**
app/src/main/java/com/yeshi/makemoney/app/utils/mq/CMQManager.java
@@ -10,6 +10,7 @@
import org.yeshi.utils.StringUtil;
import org.yeshi.utils.mq.TDMQUtil;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -132,6 +133,19 @@
        //添加日志
        logger.debug("添加结算消息结束:{}",content);
    }
    /**
     * 批量添加
     **/
    public void addGoldCornSettleMsg(List<GoldCornSettleMQMsg> msgList) throws Exception {
        List<String> contentList=new ArrayList<>();
        for(GoldCornSettleMQMsg msg:msgList) {
            contentList.add(new Gson().toJson(msg));
        }
        logger.debug("添加结算消息开始:{}",msgList.size());
        TDMQUtil.getInstance().batchSendMsg(QUEUE_GOLDCORN_SETTLE, contentList);
        //添加日志
        logger.debug("添加结算消息结束:{}",msgList.size());
    }
    public Map<String, GoldCornSettleMQMsg> consumeGoldCornSettleMsg(int count) {
        List<Message> list =  TDMQUtil.getInstance().recieveMsg(count, QUEUE_GOLDCORN_SETTLE);
app/src/test/java/test/Test.java
@@ -26,7 +26,7 @@
//            test1();
//            return;
//        }
        String dir = "C:\\Users\\Administrator\\Desktop\\ocr\\gpcode";
        String dir = "C:\\Users\\Administrator\\Desktop\\ocr\\number_trade";
        File[] fs = new File(dir).listFiles();
        Set<String> md5Set = new HashSet<>();
        for (File f : fs) {