From 74ee9c42c1d87f3724a21e92871bc8c95c8364c6 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期二, 03 九月 2019 17:04:03 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/div' into div
---
fanli/src/main/java/com/yeshi/fanli/service/impl/msg/MsgOrderDetailServiceImpl.java | 96 ++++++++++++++++++++++++++++++++++++++---------
1 files changed, 77 insertions(+), 19 deletions(-)
diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/msg/MsgOrderDetailServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/msg/MsgOrderDetailServiceImpl.java
index 7a1aa75..23f7f2c 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/impl/msg/MsgOrderDetailServiceImpl.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/msg/MsgOrderDetailServiceImpl.java
@@ -9,9 +9,14 @@
import com.yeshi.fanli.dao.mybatis.msg.MsgOrderDetailMapper;
import com.yeshi.fanli.entity.bus.msg.MsgOrderDetail;
+import com.yeshi.fanli.entity.order.CommonOrder;
import com.yeshi.fanli.exception.msg.MsgOrderDetailException;
import com.yeshi.fanli.service.inter.msg.MsgOrderDetailService;
+import com.yeshi.fanli.service.inter.msg.UserMsgReadStateService;
import com.yeshi.fanli.util.Constant;
+
+import redis.clients.jedis.Jedis;
+import redis.clients.jedis.JedisPool;
@Service
public class MsgOrderDetailServiceImpl implements MsgOrderDetailService {
@@ -19,29 +24,50 @@
@Resource
private MsgOrderDetailMapper msgOrderDetailMapper;
+ @Resource
+ private UserMsgReadStateService userMsgReadStateService;
+
+ @Resource
+ private JedisPool jedisPool;
+
@Override
- public void addMsgOrderDetail(MsgOrderDetail detail) throws MsgOrderDetailException {
+ public void addMsgOrderDetail(MsgOrderDetail detail, boolean needNotify) throws MsgOrderDetailException {
if (detail == null)
throw new MsgOrderDetailException(1, "娑堟伅涓虹┖");
- if (detail.getOrderId() == null || detail.getGoodsCount() == null || detail.getType() == null
- || detail.getState() == null || detail.getPayMoney() == null || detail.getUser() == null)
+ if (detail.getOrderId() == null || detail.getType() == null || detail.getState() == null
+ || detail.getUser() == null)
throw new MsgOrderDetailException(2, "娑堟伅涓嶅畬鏁�");
- MsgOrderDetail old = msgOrderDetailMapper.selectByUidAndOrderId(detail.getUser().getId(), detail.getOrderId());
- if (old == null) {
- detail.setCreateTime(new Date());
- detail.setUpdateTime(new Date());
- detail.setRead(false);
- msgOrderDetailMapper.insertSelective(detail);
- } else {
- MsgOrderDetail update = new MsgOrderDetail();
- update.setId(old.getId());
- update.setUpdateTime(new Date());
- update.setState(detail.getState());
- update.setPayMoney(detail.getPayMoney());
- update.setHongBaoMoney(detail.getHongBaoMoney());
- update.setRead(false);
- update.setBeiZhu(detail.getBeiZhu());
- msgOrderDetailMapper.updateByPrimaryKeySelective(update);
+ // 閿佷綇璁㈠崟鍙�
+ Jedis jedis = jedisPool.getResource();
+ try {
+ String key = "rs-order-" + detail.getOrderId();
+ if (jedis.setnx(key, "1") > 0) {
+ jedis.expire(key, 60);
+ MsgOrderDetail old = msgOrderDetailMapper.selectByUidAndOrderId(detail.getUser().getId(),
+ detail.getOrderId());
+ if (old == null) {
+ detail.setCreateTime(new Date());
+ detail.setUpdateTime(new Date());
+ detail.setRead(false);
+ msgOrderDetailMapper.insertSelective(detail);
+ } else {
+ MsgOrderDetail update = new MsgOrderDetail();
+ update.setId(old.getId());
+ update.setUpdateTime(new Date());
+ update.setState(detail.getState());
+ update.setPayMoney(detail.getPayMoney());
+ update.setHongBaoMoney(detail.getHongBaoMoney());
+ update.setRead(false);
+ update.setBeiZhu(detail.getBeiZhu());
+ msgOrderDetailMapper.updateByPrimaryKeySelective(update);
+ }
+ if (needNotify)
+ userMsgReadStateService.addOrderMsgUnReadCount(detail.getUser().getId(), 1);
+ jedis.del(key);
+ }
+
+ } finally {
+ jedisPool.returnResource(jedis);
}
}
@@ -61,4 +87,36 @@
msgOrderDetailMapper.setMsgReadByUid(uid);
}
+ @Override
+ public void updateMsgOrderDetail(MsgOrderDetail detail, boolean needNotify) throws MsgOrderDetailException {
+ if (detail == null)
+ throw new MsgOrderDetailException(1, "娑堟伅涓虹┖");
+ if (detail.getOrderId() == null || detail.getState() == null || detail.getUser() == null)
+ throw new MsgOrderDetailException(2, "娑堟伅涓嶅畬鏁�");
+
+ MsgOrderDetail msg = msgOrderDetailMapper.selectByUidAndOrderId(detail.getUser().getId(), detail.getOrderId());
+ if (msg == null)
+ return;
+
+ if (msg.getState() == CommonOrder.STATE_WQ)
+ return;
+
+ MsgOrderDetail update = new MsgOrderDetail();
+ update.setId(msg.getId());
+ update.setHongBaoMoney(detail.getHongBaoMoney());
+ update.setPayMoney(detail.getPayMoney());
+ if (detail.getState().intValue() != msg.getState()) {
+ update.setState(detail.getState());
+ // update.setUpdateTime(new Date());
+ if (needNotify)
+ userMsgReadStateService.addOrderMsgUnReadCount(detail.getUser().getId(), 1);
+ }
+ msgOrderDetailMapper.updateByPrimaryKeySelective(update);
+ }
+
+ @Override
+ public List<MsgOrderDetail> listMsgOrderByOrderId(String orderId) {
+ return msgOrderDetailMapper.listByOrderId(orderId);
+ }
+
}
--
Gitblit v1.8.0