| | |
| | | import com.google.gson.Gson;
|
| | | 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.redpack.RedPackDetail;
|
| | | import com.yeshi.fanli.entity.shop.BanLiShopGoods;
|
| | | import com.yeshi.fanli.entity.shop.BanLiShopGoodsClass;
|
| | |
| | | import com.yeshi.fanli.exception.redpack.RedPackDetailException;
|
| | | import com.yeshi.fanli.exception.shop.BanLiShopOrderException;
|
| | | import com.yeshi.fanli.exception.shop.FuLuChargeException;
|
| | | import com.yeshi.fanli.service.inter.money.msg.UserMoneyMsgNotificationService;
|
| | | import com.yeshi.fanli.service.inter.redpack.RedPackBalanceService;
|
| | | import com.yeshi.fanli.service.inter.redpack.RedPackDetailService;
|
| | | import com.yeshi.fanli.service.inter.shop.BanLiShopGoodsClassService;
|
| | |
| | | import com.yeshi.fanli.util.StringUtil;
|
| | | import com.yeshi.fanli.util.charge.FuLuChargeApiUtil;
|
| | | 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.wx.BanLiShopWXPayUtil;
|
| | |
|
| | |
| | |
|
| | | @Resource
|
| | | private RedPackDetailService redPackDetailService;
|
| | |
|
| | | @Resource
|
| | | private UserMoneyMsgNotificationService userMoneyMsgNotificationService;
|
| | |
|
| | | @Resource(name = "producer")
|
| | | private Producer producer;
|
| | |
| | | * 支付成功
|
| | | */
|
| | | private void paySuccess(BanLiShopOrder order) {
|
| | | // 将红包明细外显
|
| | | RedPackDetail detail = null;
|
| | | try {
|
| | | detail = RedPackDetailFactory.createUseByShopOrder(order.getId(), order.getUid(), "", "",
|
| | | order.getHongBaoPayment());
|
| | | } catch (RedPackDetailException e) {
|
| | | e.printStackTrace();
|
| | | }
|
| | |
|
| | | if (detail != null) {
|
| | | redPackDetailService.changeDisplayByIdentifyCode(detail.getIdentifyCode(), true);
|
| | | }
|
| | | }
|
| | |
|
| | | @Transactional
|
| | |
| | | order.setMoneyPaymentState(BanLiShopOrder.PAY_STATE_REFUNDING);
|
| | | // 发送退款消息
|
| | | BanLiShopOrderMQMsg msg = new BanLiShopOrderMQMsg(order.getId(), order.getUid());
|
| | | Message message = new Message(MQTopicName.TOPIC_ORDER.name(),
|
| | | OrderTopicTagEnum.banLiShopOrderRefund.name(), new Gson().toJson(msg).getBytes());
|
| | | Message message = MQMsgBodyFactory.create(MQTopicName.TOPIC_ORDER,
|
| | | OrderTopicTagEnum.banLiShopOrderRefund, msg);
|
| | | message.setStartDeliverTime(System.currentTimeMillis() + 1000 * 60 * 5L);// 延时24小时通知检测微信退款状态
|
| | | SendResult result = producer.send(message);
|
| | | if (result == null) {
|
| | |
| | | throw new BanLiShopOrderException(6, "微信支付退款失败");
|
| | | }
|
| | | }
|
| | |
|
| | | // 检查 是否退款成功
|
| | | if (update.getMoneyPaymentState() != null
|
| | | && update.getMoneyPaymentState() == BanLiShopOrder.PAY_STATE_REFUNDING) {
|
| | | if (order.getMoneyPaymentState() != null
|
| | | && order.getMoneyPaymentState() == BanLiShopOrder.PAY_STATE_REFUNDING) {
|
| | | try {
|
| | | boolean isS = BanLiShopWXPayUtil.isRefundSuccess(order.getOrderNo());
|
| | | if (isS) {
|
| | |
| | | update.setSuccessTime(new Date());
|
| | | banLiShopOrderService.udpateSelectiveByPrimaryKey(update);
|
| | |
|
| | | if (order.getHongBaoPayment() != null && order.getHongBaoPayment().compareTo(new BigDecimal(0)) > 0) {
|
| | | // 将红包明细外显
|
| | | RedPackDetail detail = null;
|
| | | try {
|
| | | detail = RedPackDetailFactory.createUseByShopOrder(order.getId(), order.getUid(), "", "",
|
| | | order.getHongBaoPayment());
|
| | | } catch (RedPackDetailException e) {
|
| | | e.printStackTrace();
|
| | | }
|
| | |
|
| | | if (detail != null) {
|
| | | redPackDetailService.changeDisplayByIdentifyCode(detail.getIdentifyCode(), true);
|
| | | }
|
| | | }
|
| | |
|
| | | // 消息发送
|
| | | MsgRedPackUseContentDTO dto = new MsgRedPackUseContentDTO();
|
| | | dto.setGoodsSetName(order.getOrderGoods().getSetName());
|
| | | dto.setHongBao(order.getHongBaoPayment());
|
| | | dto.setMoney(order.getMoneyPayment());
|
| | | dto.setTime(new Date());
|
| | | userMoneyMsgNotificationService.redPackMsg(order.getUid(), MsgTypeMoneyTypeEnum.redPackUseSuccess,
|
| | | new Gson().toJson(dto), null);
|
| | |
|
| | | try {
|
| | | if (Constant.IS_TEST) {
|
| | | FuLuChargeApiUtil.shaXiangCharge(set.getChargeFuLuNum(), "banlishop" + order.getOrderNo(),
|