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) {