From 8c04d27e5cebb7e654c208533e9567c4df2c8acc Mon Sep 17 00:00:00 2001 From: yujian <yujian@163.com> Date: 星期四, 12 十二月 2019 14:21:44 +0800 Subject: [PATCH] 券时间限制 --- fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderProcessServiceImpl.java | 109 +++++++++++++++++++++++++++++++++++------------------- 1 files changed, 70 insertions(+), 39 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderProcessServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderProcessServiceImpl.java index 99052bb..09ebb52 100644 --- a/fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderProcessServiceImpl.java +++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/order/OrderProcessServiceImpl.java @@ -19,7 +19,7 @@ import org.yeshi.utils.NumberUtil; import com.aliyun.openservices.ons.api.Message; -import com.aliyun.openservices.ons.api.SendResult; +import com.aliyun.openservices.ons.api.Producer; import com.aliyun.openservices.ons.api.transaction.LocalTransactionExecuter; import com.aliyun.openservices.ons.api.transaction.TransactionProducer; import com.aliyun.openservices.ons.api.transaction.TransactionStatus; @@ -30,9 +30,10 @@ import com.yeshi.fanli.dao.mybatis.order.HongBaoOrderMapper; import com.yeshi.fanli.dao.mybatis.order.OrderMapper; import com.yeshi.fanli.dao.mybatis.taobao.TaoBaoWeiQuanOrderMapper; +import com.yeshi.fanli.dto.mq.order.OrderTopicTagEnum; +import com.yeshi.fanli.dto.mq.order.body.OrderMQMsg; +import com.yeshi.fanli.dto.mq.order.body.OrderMoneyRecievedMQMsg; import com.yeshi.fanli.dto.order.CommonOrderAddResultDTO; -import com.yeshi.fanli.dto.order.OrderMQMsgDTO; -import com.yeshi.fanli.dto.order.OrderMoneyRecievedMQMsgDTO; import com.yeshi.fanli.entity.bus.user.HongBaoV2; import com.yeshi.fanli.entity.bus.user.Order; import com.yeshi.fanli.entity.bus.user.UserExtraTaoBaoInfo; @@ -56,6 +57,7 @@ import com.yeshi.fanli.exception.order.HongBaoException; import com.yeshi.fanli.exception.order.OrderItemException; import com.yeshi.fanli.exception.order.TaoBaoWeiQuanException; +import com.yeshi.fanli.exception.user.UserAccountException; import com.yeshi.fanli.log.LogHelper; import com.yeshi.fanli.service.inter.elme.ElmeHongBaoOrderMapService; import com.yeshi.fanli.service.inter.elme.ElmeOrderService; @@ -75,6 +77,7 @@ import com.yeshi.fanli.service.inter.taobao.TaoBaoUnionConfigService; import com.yeshi.fanli.service.inter.user.UserSystemCouponService; import com.yeshi.fanli.service.inter.user.tb.UserExtraTaoBaoInfoService; +import com.yeshi.fanli.service.manger.HongBaoV2AddManager; import com.yeshi.fanli.util.CMQManager; import com.yeshi.fanli.util.Constant; import com.yeshi.fanli.util.MoneyBigDecimalUtil; @@ -85,7 +88,7 @@ import com.yeshi.fanli.util.factory.UserMoneyDetailFactory; import com.yeshi.fanli.util.jd.JDApiUtil; import com.yeshi.fanli.util.pinduoduo.PinDuoDuoApiUtil; -import com.yeshi.fanli.util.rocketmq.MQTagConstant; +import com.yeshi.fanli.util.rocketmq.MQMsgBodyFactory; import com.yeshi.fanli.util.rocketmq.MQTopicName; @Service @@ -151,8 +154,14 @@ @Resource(name = "orderTransactionProducer") private TransactionProducer orderTransactionProducer; + @Resource(name = "producer") + private Producer producer; + @Resource private OrderMoneySettleService orderMoneySettleService; + + @Resource + private HongBaoV2AddManager hongBaoV2AddManager; /** * 鏄惁鏄垎浜鍗� @@ -410,11 +419,11 @@ } // 鑷喘鍒拌处浜嬪姟娑堟伅 - OrderMoneyRecievedMQMsgDTO mqMsg = new OrderMoneyRecievedMQMsgDTO(OrderMoneyRecievedMQMsgDTO.TYPE_ZIGOU, + OrderMoneyRecievedMQMsg mqMsg = new OrderMoneyRecievedMQMsg(OrderMoneyRecievedMQMsg.TYPE_ZIGOU, mainUser.getId(), hongBaoOrder.getCommonOrder().getSourceType(), - hongBaoOrder.getCommonOrder().getOrderNo(), null, new Date()); + hongBaoOrder.getCommonOrder().getOrderNo(), null, new Date(), 0); mqMsg.setOrderFirst(first); - Message msg = new Message(MQTopicName.TOPIC_FANLI.name(), "actual", new Gson().toJson(mqMsg).getBytes()); + Message msg = MQMsgBodyFactory.create(MQTopicName.TOPIC_ORDER, OrderTopicTagEnum.orderFanLiActual, mqMsg); String key = mainUser.getId() + "-" + UUID.randomUUID().toString(); msg.setKey(key); try { @@ -498,8 +507,10 @@ List<Long> inviteAndShareUids = hongBaoV2Mapper.listUidCanBanlanceShareAndInvite(1000); Set<Long> uidSets = new HashSet<>(); if (inviteAndShareUids != null) - for (Long uid : inviteAndShareUids) - uidSets.add(uid); + for (Long uid : inviteAndShareUids) { + if (userInfoMapper.selectAvailableByPrimaryKey(uid) != null) + uidSets.add(uid); + } // 鏍规嵁鐢ㄦ埛ID Iterator<Long> its = uidSets.iterator(); while (its.hasNext()) { @@ -522,15 +533,13 @@ } catch (OrderMoneySettleException e) { e.printStackTrace(); } - if (1 > 0) - return; - + // try { orderMoneySettleService.inviteSettleJD(uid); } catch (OrderMoneySettleException e) { e.printStackTrace(); } - + // try { orderMoneySettleService.inviteSettlePDD(uid); } catch (OrderMoneySettleException e) { @@ -549,7 +558,7 @@ } catch (OrderMoneySettleException e) { e.printStackTrace(); } - + // try { orderMoneySettleService.shareSettlePDD(uid); } catch (OrderMoneySettleException e) { @@ -729,12 +738,15 @@ public void processJDOrder(JDOrder order) { if (order == null || order.getOrderItemList() == null || order.getOrderItemList().size() == 0) return; - // 鎷嗗崟鐨勪笉鍋氬鐞� if (order.getValidCode() == 2) return; + // 鏍规嵁ext1涓巗ubUnionId璺熷崟 String uidStr = order.getExt1(); + if (StringUtil.isNullOrEmpty(uidStr)) + uidStr = order.getOrderItemList().get(0).getSubUnionId(); + Long uid = null; if (!StringUtil.isNullOrEmpty(uidStr) && NumberUtil.isNumeric(uidStr)) uid = Long.parseLong(uidStr); @@ -1194,33 +1206,52 @@ * @param sourceType * @param hongBaoType */ + @Transactional private void addHongBaoWithMQ(List<CommonOrderAddResultDTO> commonOrderList, String orderId, Long uid, int sourceType, int hongBaoType) { + final List<CommonOrder> coList = convertCommonOrder(commonOrderList); - OrderMQMsgDTO mqMsg = new OrderMQMsgDTO(orderId, sourceType, uid); - Message msg = new Message(MQTopicName.TOPIC_ORDER.name(), - String.format(MQTagConstant.TAG_ORDER_STATISTIC_PREFIX + "%s-%s", sourceType, hongBaoType), - new Gson().toJson(mqMsg).getBytes()); - SendResult result = orderTransactionProducer.send(msg, new LocalTransactionExecuter() { - @Override - public TransactionStatus execute(Message arg0, Object arg1) { - int resultCode = 0; - try { - resultCode = hongBaoV2Service.addHongBao(coList, hongBaoType); - } catch (HongBaoException e) { - try { - LogHelper.errorDetailInfo(e, "addJDOrder鎴朼ddHongBao鍑洪敊", "璁㈠崟鍙�:" + orderId); - } catch (Exception e1) { - e1.printStackTrace(); - } - } - return TransactionStatus.CommitTransaction; - // if (resultCode != 0) - // return TransactionStatus.CommitTransaction; - // else - // return TransactionStatus.RollbackTransaction; + int resultCode = 0; + try { + long time = TimeUtil.convertToTimeTemp("2019-12-06", "yyyy-MM-dd"); + if (!Constant.IS_TEST) + time = TimeUtil.convertToTimeTemp("2020-01-01", "yyyy-MM-dd"); + + if (coList.get(0).getThirdCreateTime().getTime() < time) + resultCode = hongBaoV2Service.addHongBao(coList, hongBaoType); + else + resultCode = hongBaoV2AddManager.addHongBao(coList, hongBaoType); + } catch (HongBaoException e) { + try { + LogHelper.errorDetailInfo(e, "addJDOrder鎴朼ddHongBao鍑洪敊", "璁㈠崟鍙�:" + orderId); + } catch (Exception e1) { + e1.printStackTrace(); } - }, null); - System.out.println(result); + } catch (UserAccountException e) { + + } + if (resultCode == 1) {// 鍙彂閫佹柊澧炴秷鎭� + OrderMQMsg mqMsg = new OrderMQMsg(orderId, sourceType, uid, OrderMQMsg.HANDLE_TYPE_ADD, + isCommonOrderValid(coList), 0, new Date()); + Message msg = MQMsgBodyFactory.create(MQTopicName.TOPIC_ORDER, OrderTopicTagEnum.orderStatistic, mqMsg); + producer.send(msg); + } } + + /** + * 璁㈠崟鏄惁鏈夋晥 + * + * @param coList + * @return + */ + private boolean isCommonOrderValid(List<CommonOrder> coList) { + for (CommonOrder commonOrder : coList) { + if (commonOrder.getState() == CommonOrder.STATE_JS || commonOrder.getState() == CommonOrder.STATE_FK + || commonOrder.getState() == CommonOrder.STATE_WQ) { + return true; + } + } + return false; + } + } -- Gitblit v1.8.0