From c4e7a59d3266c09f59405faface88f71a8da9a11 Mon Sep 17 00:00:00 2001
From: yujian <yujian>
Date: 星期一, 15 四月 2019 14:47:45 +0800
Subject: [PATCH] 用户订单申诉-改为系统自动处理 + 次数限制

---
 fanli/src/main/java/com/yeshi/fanli/service/impl/order/LostOrderServiceImpl.java |   54 +++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 49 insertions(+), 5 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 2ef5fbc..4263557 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
@@ -15,6 +15,7 @@
 import com.yeshi.fanli.entity.bus.user.HongBaoV2;
 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.order.HongBaoOrderService;
 import com.yeshi.fanli.service.inter.order.LostOrderService;
 import com.yeshi.fanli.service.inter.order.OrderService;
@@ -32,6 +33,9 @@
 
 	@Resource
 	private LostOrderMapper lostOrderMapper;
+	
+	@Resource
+	private ConfigService configService;
 
 	@Transactional
 	@Override
@@ -43,7 +47,7 @@
 			type = 1;
 		}
 
-		// 鏌ヨ鏄惁鎻愪氦
+		// 璁㈠崟鏄惁宸茬敵璇�
 		List<LostOrder> orderList = lostOrderMapper.selectByOrderId(orderId);
 		if (orderList != null && orderList.size() > 0) {
 			if (orderList.get(0).getState() == 0 || orderList.get(0).getResultCode() == LostOrder.RESULT_CODE_VERFING) {
@@ -56,15 +60,24 @@
 			}
 		}
 
+		// 璁㈠崟宸插瓨鍦�
 		Order order = orderService.findOrderByOrderIdAndType(orderId, type);
 		if (order != null) {
 			return -3;
 		}
 
-		// 鏌ヨ鏄惁涓哄垎浜禋璁㈠崟
+		// 鏄惁涓哄垎浜禋璁㈠崟
 		if (hongBaoOrderService.countByOrderNoAndHongBaoType(orderId, HongBaoV2.TYPE_SHARE_GOODS) > 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 {
@@ -87,9 +100,7 @@
 				lostOrderReadLock.lock();
 				lostOrderwriteLock.unlock();
 			}
-			lostOrder.setState(0);
-			lostOrder.setHandleTime(0L);
-			lostOrder.setCreateTime(System.currentTimeMillis());
+			
 			Order or = orderService.getSystemOrderByUid(Constant.TAOBAO, lostOrder.getUserInfo().getId());
 			if (or != null) {
 				boolean b = Utils.isUserOrder(or.getOrderId(), lostOrder.getOrderId());
@@ -103,7 +114,40 @@
 				lostOrder.setJudge("涓嶅尮閰�");
 			}
 
+			
+			try {
+				Order addorder = new Order();
+				addorder.setBeizhu("琛ュ崟");
+				addorder.setCreatetime(lostOrder.getCreateTime());
+				addorder.setOrderId(lostOrder.getOrderId());
+				addorder.setOrderType(lostOrder.getType());
+				addorder.setState(1);
+				addorder.setUserInfo(lostOrder.getUserInfo());
+				
+				boolean b = orderService.addOrder(addorder);
+				if (b) {
+					lostOrder.setRemake("澶勭悊鎴愬姛");
+					lostOrder.setState(LostOrder.STATE_PASS);
+					lostOrder.setOrder(order);
+				} else {
+					lostOrder.setRemake("璁㈠崟宸插瓨鍦�!");
+					lostOrder.setState(LostOrder.STATE_REJECT);
+				}
+			} catch (Exception e) {
+				e.printStackTrace();
+				String message = e.getMessage();
+				if (message.length() > 255) {
+					message = message.substring(0, 255);
+				}
+				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();
 		}

--
Gitblit v1.8.0