From 01955bc3f6e6eec6d82a5a3848efde1fa6cc8137 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期三, 30 九月 2020 17:29:26 +0800
Subject: [PATCH] 云发单优化

---
 fanli/src/main/java/com/yeshi/fanli/service/impl/order/msg/MsgOrderDetailServiceImpl.java |   40 ++++++++++++++++++++++++++++++++++++----
 1 files changed, 36 insertions(+), 4 deletions(-)

diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/order/msg/MsgOrderDetailServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/order/msg/MsgOrderDetailServiceImpl.java
index 64fcb6a..c0ee15a 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/impl/order/msg/MsgOrderDetailServiceImpl.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/order/msg/MsgOrderDetailServiceImpl.java
@@ -5,15 +5,20 @@
 
 import javax.annotation.Resource;
 
+import com.yeshi.fanli.util.RedisManager;
 import org.springframework.stereotype.Service;
 
 import com.yeshi.fanli.dao.mybatis.msg.MsgOrderDetailMapper;
+import com.yeshi.fanli.entity.bus.msg.MsgExtra;
 import com.yeshi.fanli.entity.bus.msg.MsgOrderDetail;
+import com.yeshi.fanli.entity.bus.msg.MsgOrderDetail.MsgTypeOrderTypeEnum;
 import com.yeshi.fanli.entity.order.CommonOrder;
 import com.yeshi.fanli.exception.msg.MsgOrderDetailException;
+import com.yeshi.fanli.service.inter.msg.MsgExtraService;
 import com.yeshi.fanli.service.inter.msg.UserMsgReadStateService;
 import com.yeshi.fanli.service.inter.order.msg.MsgOrderDetailService;
 import com.yeshi.fanli.util.Constant;
+import com.yeshi.fanli.util.StringUtil;
 
 import redis.clients.jedis.Jedis;
 import redis.clients.jedis.JedisPool;
@@ -28,17 +33,30 @@
 	private UserMsgReadStateService userMsgReadStateService;
 
 	@Resource
-	private JedisPool jedisPool;
+	private RedisManager redisManager;
+	
+	@Resource
+	private MsgExtraService msgExtraService;
+	
 
 	@Override
 	public void addMsgOrderDetail(MsgOrderDetail detail, boolean needNotify) throws MsgOrderDetailException {
 		if (detail == null)
 			throw new MsgOrderDetailException(1, "娑堟伅涓虹┖");
-		if (detail.getOrderId() == null || detail.getType() == null || detail.getState() == null
-				|| detail.getUser() == null)
+		if (detail.getOrderId() == null || detail.getType() == null	|| detail.getUser() == null
+				|| StringUtil.isNullOrEmpty(detail.getExtraInfo()))
 			throw new MsgOrderDetailException(2, "娑堟伅涓嶅畬鏁�");
+		
+		if (detail.getType() == MsgTypeOrderTypeEnum.businessRunning) {
+			MsgOrderDetail msgOrderDetail = msgOrderDetailMapper.getByUniqueKey(detail.getUniquekey());
+			if (msgOrderDetail != null) {
+				return;
+			}
+		}
+		
+		
 		// 閿佷綇璁㈠崟鍙�
-		Jedis jedis = jedisPool.getResource();
+		Jedis jedis = redisManager.getJedis();
 		try {
 			String key = "rs-order-" + detail.getOrderId();
 			if (jedis.setnx(key, "1") > 0) {
@@ -50,6 +68,8 @@
 					detail.setUpdateTime(new Date());
 					detail.setRead(false);
 					msgOrderDetailMapper.insertSelective(detail);
+					// 娑堟伅鍐呭
+					msgExtraService.addMsgExtra(detail.getId(), detail.getExtraInfo(), MsgExtra.MSG_TYPE_ORDER);
 				} else {
 					MsgOrderDetail update = new MsgOrderDetail();
 					update.setId(old.getId());
@@ -60,6 +80,7 @@
 					update.setRead(false);
 					update.setBeiZhu(detail.getBeiZhu());
 					msgOrderDetailMapper.updateByPrimaryKeySelective(update);
+					msgExtraService.addMsgExtra(update.getId(), detail.getExtraInfo(), MsgExtra.MSG_TYPE_ORDER);
 				}
 				if (needNotify)
 					userMsgReadStateService.addOrderMsgUnReadCount(detail.getUser().getId(), 1);
@@ -119,4 +140,15 @@
 		return msgOrderDetailMapper.listByOrderId(orderId);
 	}
 
+	@Override
+	public MsgOrderDetail selectByPrimaryKey(Long id) {
+		return msgOrderDetailMapper.selectByPrimaryKey(id);
+	}
+	
+	@Override
+	public void deleteByPrimaryKey(Long id) {
+		msgOrderDetailMapper.deleteByPrimaryKey(id);
+		msgExtraService.deleteByPidAndType(id, MsgExtra.MSG_TYPE_ORDER);
+	}
+	
 }

--
Gitblit v1.8.0