From a6f34b99ee20e528b766c8ed5a61bd9c5aa0e7ae Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期六, 16 十一月 2019 18:10:33 +0800 Subject: [PATCH] 淘宝相似商品推荐接口优化,根据商品ID搜索商品基本信息优化 --- fanli/src/main/java/com/yeshi/fanli/service/impl/shop/BanLiShopOrderServiceImpl.java | 73 +++++++++++++++++++++++++++++++++++- 1 files changed, 70 insertions(+), 3 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..bdfdad8 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; @@ -45,6 +49,7 @@ import com.yeshi.fanli.util.factory.RedPackDetailFactory; 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 +86,9 @@ @Resource(name = "transactionManager") private DataSourceTransactionManager transactionManager; + + @Resource + private UserMoneyMsgNotificationService userMoneyMsgNotificationService; @Transactional @Override @@ -135,7 +143,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,6 +163,7 @@ orderGoods.setSetName(set.getName()); orderGoods.setState(set.getState()); orderGoods.setZkPrice(set.getZkPrice()); + orderGoods.setPicture(goods.getSquarePicture()); banLiShopOrderGoodsMapper.insertSelective(orderGoods); return orderGoods; } @@ -182,12 +196,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 +309,7 @@ // 鏀粯鎴愬姛 BanLiShopOrder update = new BanLiShopOrder(); + update.setId(orderId); update.setMoneyPaymentState(BanLiShopOrder.PAY_STATE_PAID); // 鍒ゆ柇鍏朵粬寰呮敮浠橀」鏄惁宸茬粡鏀粯 update.setUpdateTime(new Date()); @@ -317,6 +332,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 = new Message(MQTopicName.TOPIC_ORDER.name(), + OrderTopicTagEnum.banLiShopOrderPaid.name(), new Gson().toJson(msg).getBytes()); + producer.send(message); + return; + } + + } catch (WXOrderException e) { + e.printStackTrace(); + } catch (Exception e) { + + } + } + BanLiShopOrder update = new BanLiShopOrder(); update.setId(id); update.setStateDesc(desc); @@ -362,7 +399,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 +435,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 +472,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