From 51a4ff5d777028d52a19c314a99f796334cb7b51 Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期六, 23 十一月 2019 18:30:01 +0800 Subject: [PATCH] 配置文件修改 --- fanli/src/main/java/com/yeshi/fanli/service/impl/shop/BanLiShopOrderServiceImpl.java | 82 +++++++++++++++++++++++++++++++++++++--- 1 files changed, 75 insertions(+), 7 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/shop/BanLiShopOrderServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/shop/BanLiShopOrderServiceImpl.java index aa04c6a..614fb40 100644 --- a/fanli/src/main/java/com/yeshi/fanli/service/impl/shop/BanLiShopOrderServiceImpl.java +++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/shop/BanLiShopOrderServiceImpl.java @@ -10,6 +10,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.support.DefaultTransactionDefinition; +import org.yeshi.utils.exception.WXOrderException; import com.aliyun.openservices.ons.api.Message; import com.aliyun.openservices.ons.api.Producer; @@ -22,6 +23,8 @@ import com.yeshi.fanli.dao.mybatis.shop.BanLiShopOrderMapper; import com.yeshi.fanli.dto.mq.order.OrderTopicTagEnum; import com.yeshi.fanli.dto.mq.order.body.BanLiShopOrderMQMsg; +import com.yeshi.fanli.dto.msg.MsgRedPackUseContentDTO; +import com.yeshi.fanli.entity.bus.msg.MsgMoneyDetail.MsgTypeMoneyTypeEnum; import com.yeshi.fanli.entity.mq.MQUnSendInfo; import com.yeshi.fanli.entity.redpack.RedPackDetail; import com.yeshi.fanli.entity.shop.BanLiShopGoods; @@ -34,6 +37,7 @@ import com.yeshi.fanli.exception.redpack.RedPackBalanceException; import com.yeshi.fanli.exception.redpack.RedPackDetailException; import com.yeshi.fanli.exception.shop.BanLiShopOrderException; +import com.yeshi.fanli.service.inter.money.msg.UserMoneyMsgNotificationService; import com.yeshi.fanli.service.inter.mq.MQUnSendInfoService; import com.yeshi.fanli.service.inter.redpack.RedPackBalanceService; import com.yeshi.fanli.service.inter.shop.BanLiShopGoodsClassService; @@ -43,8 +47,10 @@ import com.yeshi.fanli.service.inter.shop.BanLiShopOrderService; import com.yeshi.fanli.util.Constant; import com.yeshi.fanli.util.factory.RedPackDetailFactory; +import com.yeshi.fanli.util.rocketmq.MQMsgBodyFactory; import com.yeshi.fanli.util.rocketmq.MQTopicName; import com.yeshi.fanli.util.shop.BanLiShopOrderUtil; +import com.yeshi.fanli.util.wx.BanLiShopWXPayUtil; @Service public class BanLiShopOrderServiceImpl implements BanLiShopOrderService { @@ -81,6 +87,9 @@ @Resource(name = "transactionManager") private DataSourceTransactionManager transactionManager; + + @Resource + private UserMoneyMsgNotificationService userMoneyMsgNotificationService; @Transactional @Override @@ -135,7 +144,12 @@ BanLiShopOrder update = new BanLiShopOrder(); update.setId(order.getId()); update.setOrderNo(orderNo); + order.setOrderNo(orderNo); banLiShopOrderMapper.updateByPrimaryKeySelective(update); + + // 澧炲姞閿�閲� + banLiShopGoodsSetService.addSalesCount(order.getGoodsSet().getId(), 1); + banLiShopGoodsService.addSalesCount(order.getGoods().getId(), 1); // 璁㈠崟娣诲姞鎴愬姛 ,寤舵椂閫氱煡鍚庣画 sendPlaceOrderMsg(order.getId(), order.getUid()); @@ -150,14 +164,15 @@ orderGoods.setSetName(set.getName()); orderGoods.setState(set.getState()); orderGoods.setZkPrice(set.getZkPrice()); + orderGoods.setPicture(goods.getSquarePicture()); banLiShopOrderGoodsMapper.insertSelective(orderGoods); return orderGoods; } private void sendPlaceOrderMsg(Long orderId, Long uid) { - Message msg = new Message(MQTopicName.TOPIC_ORDER.name(), OrderTopicTagEnum.banLiShopOrderDelay.name(), - new Gson().toJson(new BanLiShopOrderMQMsg(orderId, uid)).getBytes()); + Message msg = MQMsgBodyFactory.create(MQTopicName.TOPIC_ORDER, OrderTopicTagEnum.banLiShopOrderDelay, + new BanLiShopOrderMQMsg(orderId, uid)); msg.setKey(orderId + ""); long delayTime = System.currentTimeMillis() + (Constant.IS_TEST ? 1000 * 30L : 1000 * 60 * 10);// 10鍒嗛挓鍚庨�氱煡 msg.setStartDeliverTime(delayTime); @@ -182,12 +197,12 @@ @Override public List<BanLiShopOrder> listByUid(Long uid, int page, int pageSize) { - return banLiShopOrderMapper.listByUid(null, uid, (page - 1) * pageSize, pageSize); + return banLiShopOrderMapper.listByUidAndState(null, uid, (page - 1) * pageSize, pageSize); } @Override public long countByUid(Long uid) { - return banLiShopOrderMapper.countByUid(null, uid); + return banLiShopOrderMapper.countByUidAndState(null, uid); } @Override @@ -295,6 +310,7 @@ // 鏀粯鎴愬姛 BanLiShopOrder update = new BanLiShopOrder(); + update.setId(orderId); update.setMoneyPaymentState(BanLiShopOrder.PAY_STATE_PAID); // 鍒ゆ柇鍏朵粬寰呮敮浠橀」鏄惁宸茬粡鏀粯 update.setUpdateTime(new Date()); @@ -317,6 +333,28 @@ // 鍒ゆ柇鏄惁澶勪簬鏈粯娆� if (order.getState() == BanLiShopOrder.STATE_NO_PAY) { + /** + * 鏌ヨ鏄惁宸茬粡寰俊鏀粯 + */ + if (order.getMoneyPayment() != null) { + try { + boolean isS = BanLiShopWXPayUtil.isPaySuccess(order.getOrderNo()); + if (isS)// 鏀粯鎴愬姛锛岄噸鏂板彂閫佹敮浠樻垚鍔熸秷鎭� + { + BanLiShopOrderMQMsg msg = new BanLiShopOrderMQMsg(order.getId(), order.getUid()); + Message message =MQMsgBodyFactory.create(MQTopicName.TOPIC_ORDER, + OrderTopicTagEnum.banLiShopOrderPaid,msg); + producer.send(message); + return; + } + + } catch (WXOrderException e) { + e.printStackTrace(); + } catch (Exception e) { + + } + } + BanLiShopOrder update = new BanLiShopOrder(); update.setId(id); update.setStateDesc(desc); @@ -336,8 +374,8 @@ if (order.getState() != BanLiShopOrder.STATE_PAID) throw new BanLiShopOrderException(1, "璁㈠崟鏈浜庡緟瀹℃牳鐘舵��"); - Message message = new Message(MQTopicName.TOPIC_ORDER.name(), OrderTopicTagEnum.banLiShopOrderRefund.name(), - new Gson().toJson(new BanLiShopOrderMQMsg(order.getId(), order.getUid())).getBytes()); + Message message =MQMsgBodyFactory.create(MQTopicName.TOPIC_ORDER, OrderTopicTagEnum.banLiShopOrderRefund, + new BanLiShopOrderMQMsg(order.getId(), order.getUid())); try { orderTransactionProducer.send(message, new LocalTransactionExecuter() { @Override @@ -362,7 +400,17 @@ update.setState(BanLiShopOrder.STATE_REJECT); update.setStateDesc(msg); update.setUpdateTime(new Date()); + update.setRejectTime(new Date()); banLiShopOrderMapper.updateByPrimaryKeySelective(update); + // 娑堟伅鍙戦�� + MsgRedPackUseContentDTO dto = new MsgRedPackUseContentDTO(); + dto.setGoodsSetName(order.getOrderGoods().getSetName()); + dto.setHongBao(order.getHongBaoPayment()); + dto.setMoney(order.getMoneyPayment()); + dto.setReason(msg); + dto.setTime(new Date()); + userMoneyMsgNotificationService.redPackMsg(order.getUid(), MsgTypeMoneyTypeEnum.redPackUseFail, + new Gson().toJson(dto), null); transactionManager.commit(transactionStatus); } catch (Exception e) { transactionManager.rollback(transactionStatus); @@ -388,7 +436,12 @@ } if (pay.getHongBaoPrice() != null && pay.getHongBaoPrice().compareTo(new BigDecimal(0)) > 0) { - BigDecimal money = redPackBalanceService.getBalance(uid); + BigDecimal money = null; + try { + money = redPackBalanceService.getBalance(uid); + } catch (RedPackBalanceException e) { + throw new BanLiShopOrderException(25, "绾㈠寘鍔熻兘寮傚父"); + } if (money.compareTo(pay.getHongBaoPrice()) < 0) { throw new BanLiShopOrderException(24, "绾㈠寘浣欓涓嶈冻"); } @@ -420,4 +473,19 @@ return order; } + @Override + public BanLiShopOrder selectByOrderNo(String orderNo) { + return banLiShopOrderMapper.selectByOrderNo(orderNo); + } + + @Override + public List<BanLiShopOrder> listByUidAndState(Long uid, List<Integer> stateList, int page, int pageSize) { + return banLiShopOrderMapper.listByUidAndState(stateList, uid, (page - 1) * pageSize, pageSize); + } + + @Override + public long countByUidAndState(Long uid, List<Integer> stateList) { + return banLiShopOrderMapper.countByUidAndState(stateList, uid); + } + } -- Gitblit v1.8.0