From 30d8e227e8d823b6c38c3b9c90ac2df03b63befe Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期二, 25 二月 2025 16:41:22 +0800 Subject: [PATCH] 淘宝转链接口更新 --- fanli/src/main/java/com/yeshi/fanli/service/impl/order/msg/MsgOrderDetailServiceImpl.java | 240 ++++++++++++++++++++++++++++++++--------------------------- 1 files changed, 129 insertions(+), 111 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 31efbc3..31dd9c1 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,7 +5,9 @@ import javax.annotation.Resource; +import com.yeshi.fanli.service.inter.msg.MsgOverViewsService; import com.yeshi.fanli.util.RedisManager; +import com.yeshi.fanli.util.factory.msg.MsgOverViewsFactory; import org.springframework.stereotype.Service; import com.yeshi.fanli.dao.mybatis.msg.MsgOrderDetailMapper; @@ -20,135 +22,151 @@ import com.yeshi.fanli.util.Constant; import com.yeshi.fanli.util.StringUtil; +import org.springframework.transaction.annotation.Transactional; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; @Service public class MsgOrderDetailServiceImpl implements MsgOrderDetailService { - @Resource - private MsgOrderDetailMapper msgOrderDetailMapper; + @Resource + private MsgOrderDetailMapper msgOrderDetailMapper; - @Resource - private UserMsgReadStateService userMsgReadStateService; + @Resource + private UserMsgReadStateService userMsgReadStateService; - @Resource - private RedisManager redisManager; - - @Resource - private MsgExtraService msgExtraService; - + @Resource + private RedisManager redisManager; - @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.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 = redisManager.getJedis(); - 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); - // 娑堟伅鍐呭 - msgExtraService.addMsgExtra(detail.getId(), detail.getExtraInfo(), MsgExtra.MSG_TYPE_ORDER); - } 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); - msgExtraService.addMsgExtra(update.getId(), detail.getExtraInfo(), MsgExtra.MSG_TYPE_ORDER); - } - if (needNotify) - userMsgReadStateService.addOrderMsgUnReadCount(detail.getUser().getId(), 1); - jedis.del(key); - } + @Resource + private MsgExtraService msgExtraService; - } finally { - jedis.close(); - } + @Resource + private MsgOverViewsService msgOverViewsService; - } - @Override - public List<MsgOrderDetail> listMsgOrderDetail(Long uid, int page) { - return msgOrderDetailMapper.listByUid(uid, (page - 1) * Constant.PAGE_SIZE, Constant.PAGE_SIZE); - } + @Transactional(rollbackFor = Exception.class) + @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.getUser() == null + || StringUtil.isNullOrEmpty(detail.getExtraInfo())) + throw new MsgOrderDetailException(2, "娑堟伅涓嶅畬鏁�"); - @Override - public long countMsgOrderDetail(Long uid) { - return msgOrderDetailMapper.countByUid(uid); - } + if (detail.getType() == MsgTypeOrderTypeEnum.businessRunning) { + MsgOrderDetail msgOrderDetail = msgOrderDetailMapper.getByUniqueKey(detail.getUniquekey()); + if (msgOrderDetail != null) { + return; + } + } - @Override - public void readMsgByUid(Long uid) { - 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, "娑堟伅涓嶅畬鏁�"); + // 閿佷綇璁㈠崟鍙� + Jedis jedis = redisManager.getJedis(); + 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); + //鍔犲叆娑堟伅绱㈠紩 + msgOverViewsService.save(MsgOverViewsFactory.create(detail)); + // 娑堟伅鍐呭 + msgExtraService.addMsgExtra(detail.getId(), detail.getExtraInfo(), MsgExtra.MSG_TYPE_ORDER); + } 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()); - MsgOrderDetail msg = msgOrderDetailMapper.selectByUidAndOrderId(detail.getUser().getId(), detail.getOrderId()); - if (msg == null) - return; + msgOrderDetailMapper.updateByPrimaryKeySelective(update); + //鏇存柊娑堟伅绱㈠紩鏃堕棿 + update.setUser(old.getUser()); + msgOverViewsService.updateTime(MsgOverViewsFactory.create(update).getId(), update.getUpdateTime()); + msgExtraService.addMsgExtra(update.getId(), detail.getExtraInfo(), MsgExtra.MSG_TYPE_ORDER); + } + if (needNotify) + userMsgReadStateService.addOrderMsgUnReadCount(detail.getUser().getId(), 1); + jedis.del(key); + } - if (msg.getState() == CommonOrder.STATE_WQ) - return; + } finally { + jedis.close(); + } - 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); - } + @Override + public List<MsgOrderDetail> listMsgOrderDetail(Long uid, int page) { + return msgOrderDetailMapper.listByUid(uid, (page - 1) * Constant.PAGE_SIZE, Constant.PAGE_SIZE); + } - @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); - } - + @Override + public List<MsgOrderDetail> listDetail(List<Long> ids) { + return msgOrderDetailMapper.listByPrimaryKeys(ids); + } + + @Override + public long countMsgOrderDetail(Long uid) { + return msgOrderDetailMapper.countByUid(uid); + } + + @Override + public void readMsgByUid(Long uid) { + 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); + } + + @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