From e97b71caed03d1f1aa3ae21b1ea0deac4dd9ffe0 Mon Sep 17 00:00:00 2001 From: yujian <yujian@123.com> Date: 星期五, 16 八月 2019 14:28:38 +0800 Subject: [PATCH] Merge branch 'div' of ssh://193.112.35.168:29418/fanli-server into div --- fanli/src/main/java/com/yeshi/fanli/service/impl/msg/MsgOrderDetailServiceImpl.java | 58 +++++++++++++++++++++++++++++++++++++++------------------- 1 files changed, 39 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 0af5783..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 @@ -15,6 +15,9 @@ 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 { @@ -24,6 +27,9 @@ @Resource private UserMsgReadStateService userMsgReadStateService; + @Resource + private JedisPool jedisPool; + @Override public void addMsgOrderDetail(MsgOrderDetail detail, boolean needNotify) throws MsgOrderDetailException { if (detail == null) @@ -31,25 +37,39 @@ 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); } - if (needNotify) - userMsgReadStateService.addOrderMsgUnReadCount(detail.getUser().getId(), 1); + } @Override @@ -87,7 +107,7 @@ update.setPayMoney(detail.getPayMoney()); if (detail.getState().intValue() != msg.getState()) { update.setState(detail.getState()); -// update.setUpdateTime(new Date()); + // update.setUpdateTime(new Date()); if (needNotify) userMsgReadStateService.addOrderMsgUnReadCount(detail.getUser().getId(), 1); } -- Gitblit v1.8.0