From fe879975a3e8a0a1aa280fb839e02d159bfbcff8 Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期二, 27 八月 2019 18:04:38 +0800 Subject: [PATCH] 金币任务多次获取bug修改 --- fanli/src/main/java/com/yeshi/fanli/service/impl/order/LostOrderServiceImpl.java | 71 ++++++++++++++++++++++++----------- 1 files changed, 49 insertions(+), 22 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/order/LostOrderServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/order/LostOrderServiceImpl.java index 4263557..b01e542 100644 --- a/fanli/src/main/java/com/yeshi/fanli/service/impl/order/LostOrderServiceImpl.java +++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/order/LostOrderServiceImpl.java @@ -1,6 +1,7 @@ package com.yeshi.fanli.service.impl.order; import java.util.ArrayList; +import java.util.Date; import java.util.List; import java.util.Map; import java.util.concurrent.locks.ReentrantReadWriteLock.ReadLock; @@ -16,10 +17,10 @@ import com.yeshi.fanli.entity.bus.user.LostOrder; import com.yeshi.fanli.entity.bus.user.Order; import com.yeshi.fanli.service.inter.config.ConfigService; +import com.yeshi.fanli.service.inter.msg.UserOrderMsgNotificationService; import com.yeshi.fanli.service.inter.order.HongBaoOrderService; import com.yeshi.fanli.service.inter.order.LostOrderService; import com.yeshi.fanli.service.inter.order.OrderService; -import com.yeshi.fanli.util.Constant; import com.yeshi.fanli.util.Utils; @Service @@ -33,9 +34,12 @@ @Resource private LostOrderMapper lostOrderMapper; - + @Resource private ConfigService configService; + + @Resource + private UserOrderMsgNotificationService userOrderMsgNotificationService; @Transactional @Override @@ -48,7 +52,7 @@ } // 璁㈠崟鏄惁宸茬敵璇� - List<LostOrder> orderList = lostOrderMapper.selectByOrderId(orderId); + List<LostOrder> orderList = lostOrderMapper.selectByOrderIdAndType(orderId, type); if (orderList != null && orderList.size() > 0) { if (orderList.get(0).getState() == 0 || orderList.get(0).getResultCode() == LostOrder.RESULT_CODE_VERFING) { return -2; @@ -67,17 +71,16 @@ } // 鏄惁涓哄垎浜禋璁㈠崟 - if (hongBaoOrderService.countByOrderNoAndHongBaoType(orderId, HongBaoV2.TYPE_SHARE_GOODS) > 0) + if (hongBaoOrderService.countByOrderNoAndHongBaoType(orderId, HongBaoV2.TYPE_SHARE_GOODS, type) > 0) return -5; - // 娆℃暟闄愬埗 long count = lostOrderMapper.countTodayAppeal(lostOrder.getUserInfo().getId()); String countMax = configService.get("order_appeal_count_day"); if (countMax != null && countMax.trim().length() > 0 && count >= Long.parseLong(countMax)) { return -7; } - + WriteLock lostOrderwriteLock = lostOrderLock.writeLock(); ReadLock lostOrderReadLock = lostOrderLock.readLock(); try { @@ -100,8 +103,8 @@ lostOrderReadLock.lock(); lostOrderwriteLock.unlock(); } - - Order or = orderService.getSystemOrderByUid(Constant.TAOBAO, lostOrder.getUserInfo().getId()); + + Order or = orderService.getSystemOrderByUid(type, lostOrder.getUserInfo().getId()); if (or != null) { boolean b = Utils.isUserOrder(or.getOrderId(), lostOrder.getOrderId()); if (b) { @@ -114,7 +117,6 @@ lostOrder.setJudge("涓嶅尮閰�"); } - try { Order addorder = new Order(); addorder.setBeizhu("琛ュ崟"); @@ -123,7 +125,7 @@ addorder.setOrderType(lostOrder.getType()); addorder.setState(1); addorder.setUserInfo(lostOrder.getUserInfo()); - + boolean b = orderService.addOrder(addorder); if (b) { lostOrder.setRemake("澶勭悊鎴愬姛"); @@ -142,12 +144,12 @@ lostOrder.setRemake(e.getMessage()); lostOrder.setState(LostOrder.STATE_REJECT); } - + lostOrder.setResultCode(LostOrder.RESULT_CODE_VERFING); lostOrder.setHandleTime(System.currentTimeMillis()); lostOrder.setCreateTime(System.currentTimeMillis()); lostOrderMapper.insertSelective(lostOrder); - + } finally { lostOrderReadLock.unlock(); } @@ -210,38 +212,58 @@ @Transactional @Override - public void processSuceess(String orderId) { + public void processSuceess(String orderId, int orderType) { // 鏌ヨ璁㈠崟鍙锋槸鍚﹀湪鐢宠瘔鍒楄〃涓� - List<LostOrder> list = lostOrderMapper.selectByOrderId(orderId); + List<LostOrder> list = lostOrderMapper.selectByOrderIdAndType(orderId, orderType); if (list == null || list.size() == 0) return; for (LostOrder lo : list) { - if (lo.getState() == 1 && lo.getResultCode() != null + if (lo.getState() == LostOrder.STATE_PASS && lo.getResultCode() != null && lo.getResultCode() == LostOrder.RESULT_CODE_VERFING) { LostOrder update = new LostOrder(); update.setId(lo.getId()); update.setResultCode(LostOrder.RESULT_CODE_SUCCESS); lostOrderMapper.updateByPrimaryKeySelective(update); + Order order = orderService.findOrderByOrderIdAndType(orderId, Order.ORDER_TYPE_TAOBAO); + if (order != null) + // 娣诲姞閫氱煡 + userOrderMsgNotificationService.orderFoundSuccess(lo.getUserInfo().getId(), lo.getOrderId(), + order.getMoney(), 1, new Date(lo.getHandleTime())); } } } @Override - public void processFail(String orderId) { - List<LostOrder> list = lostOrderMapper.selectByOrderId(orderId); + public void processFail(String orderId, int orderType) { + List<LostOrder> list = lostOrderMapper.selectByOrderIdAndType(orderId, orderType); if (list != null) for (LostOrder order : list) { LostOrder update = new LostOrder(); update.setId(order.getId()); update.setResultCode(LostOrder.RESULT_CODE_FAIL); lostOrderMapper.updateByPrimaryKeySelective(update); + // 娣诲姞閫氱煡 + userOrderMsgNotificationService.orderFoundFail(order.getUserInfo().getId(), order.getOrderId(), null, 1, + new Date(order.getHandleTime())); } } @Override public void processFail() { // 璁㈠崟鐢宠瘔浜哄伐閫氳繃鍚庯紝浣嗘槸闅斾簡3澶╄繕鏈鐞嗘垚鍔熷氨瑙嗕负璇ヨ鍗曠敵璇夊け璐� - lostOrderMapper.processFail(); + List<LostOrder> list = lostOrderMapper.listByMaxHandleTimeAndStateAndResultCode( + System.currentTimeMillis() - 1000 * 60 * 60 * 24 * 3L, LostOrder.STATE_PASS, + LostOrder.RESULT_CODE_VERFING); + if (list != null) + for (LostOrder order : list) { + LostOrder update = new LostOrder(); + update.setId(order.getId()); + update.setResultCode(LostOrder.RESULT_CODE_FAIL); + lostOrderMapper.updateByPrimaryKeySelective(update); + // 娣诲姞閫氱煡 + userOrderMsgNotificationService.orderFoundFail(order.getUserInfo().getId(), order.getOrderId(), null, 1, + new Date(order.getHandleTime())); + } } @Override @@ -269,13 +291,13 @@ * @return */ @Override - public List<LostOrder> listQuery(long start, int count, String key, Integer state, Integer handleType) { - return lostOrderMapper.listQuery(start, count, key, state, handleType); + public List<LostOrder> listQuery(long start, int count, String key, Integer state, Integer handleType, Integer type) { + return lostOrderMapper.listQuery(start, count, key, state, handleType, type); } @Override - public long countQuery(String key, Integer state, Integer handleType) { - return lostOrderMapper.countQuery(key, state, handleType); + public long countQuery(String key, Integer state, Integer handleType, Integer type) { + return lostOrderMapper.countQuery(key, state, handleType, type); } @Override @@ -295,4 +317,9 @@ return lostOrderMapper.listByStateAndResultCode(state, resultCode, (page - 1) * pageSize, pageSize); } + @Override + public void saveLostOrder(LostOrder lostOrder) { + lostOrderMapper.insertSelective(lostOrder); + } + } -- Gitblit v1.8.0