fanli/src/main/java/com/yeshi/fanli/service/impl/redpack/RedPackWinInviteServiceImpl.java
@@ -467,24 +467,23 @@ @Override @RequestSerializableByKeyService(key = "#orderUid") @Transactional(rollbackFor = Exception.class) public void winRedPackByOrder(Long orderUid, String orderNo, Integer source, Date downTime) { public void winRedPackByOrder(Long orderUid, String orderNo, Integer source) { if (orderUid == null || StringUtil.isNullOrEmpty(orderNo)) { return; } // 验证是否未首单 CommonOrder firstOrder = commonOrderService.getFirstOrder(orderUid); if (!firstOrder.getOrderNo().equals(orderNo) && firstOrder.getSourceType() != source) return; Date downTime = firstOrder.getThirdCreateTime(); // 注册时间 UserInfoRegister register = userInfoRegisterService.selectByPrimaryKey(orderUid); if (register == null) return; // 注册48小时 以内 :新人 long registerTime = register.getCreateTime().getTime(); // 48小时限制 // 注册48小时内下单限制 if (downTime.getTime() < registerTime || downTime.getTime() > registerTime + 1000*60*60*48) return; // 验证是否未首单 CommonOrder firstOrder = commonOrderService.getFirstOrder(orderUid); if (!firstOrder.getOrderNo().equals(orderNo) && firstOrder.getSourceType() != source) return; // 是否存在上下级关系 @@ -495,17 +494,17 @@ if (bossId == null) return; // 该邀请是否已添加 RedPackWinInvite threeStage = redPackWinInviteMapper.getByUidAndTeamUid(bossId, orderUid); if (threeStage != null) return; // 小于2.1.3版本不增加 UserActiveLog activeLog = userActiveLogService.getUserLatestActiveInfo(bossId); if (activeLog == null) return; if (!VersionUtil.greaterThan_2_1_3("appstore".equalsIgnoreCase(activeLog.getChannel()) ? "ios" : "android", activeLog.getVersionCode())) return; // 该邀请是否已添加 RedPackWinInvite threeStage = redPackWinInviteMapper.getByUidAndTeamUid(bossId, orderUid); if (threeStage != null) return; // 查询订单 @@ -520,8 +519,8 @@ boolean satisfy = false; // 遍历是否存在符合相应商品 for (CommonOrder commonOrder: list) { // 订单失效 if(commonOrder.getState() != CommonOrder.STATE_FK && commonOrder.getState() != CommonOrder.STATE_JS) // 订单未结算 if(commonOrder.getState() != CommonOrder.STATE_JS) continue; // 邀请关系之后 fanli/src/main/java/com/yeshi/fanli/service/inter/redpack/RedPackWinInviteService.java
@@ -100,7 +100,7 @@ * @param orderNo * @param source */ public void winRedPackByOrder(Long orderUid, String orderNo, Integer source, Date downTime); public void winRedPackByOrder(Long orderUid, String orderNo, Integer source); /** * 查询上月用户id fanli/src/main/java/com/yeshi/fanli/util/rocketmq/consumer/redpack/RedPackMessageListener.java
@@ -11,12 +11,11 @@ import com.aliyun.openservices.ons.api.Producer; import com.google.gson.Gson; 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.OrderConfirmMQMsg; import com.yeshi.fanli.log.LogHelper; import com.yeshi.fanli.service.inter.redpack.RedPackGiveRecordService; import com.yeshi.fanli.service.inter.redpack.RedPackWinInviteService; import com.yeshi.fanli.service.inter.user.UserSystemCouponService; import com.yeshi.fanli.util.Constant; import com.yeshi.fanli.util.rocketmq.MQTopicName; /** @@ -49,48 +48,14 @@ tag = ""; if (MQTopicName.TOPIC_ORDER.name().equalsIgnoreCase(message.getTopic())) { if (tag.equalsIgnoreCase(OrderTopicTagEnum.orderStatistic.name())) {// 订单统 OrderMQMsg mqMsg = new Gson().fromJson(new String(message.getBody()), OrderMQMsg.class); // 订单确认收货 if (tag.equalsIgnoreCase(OrderTopicTagEnum.orderConfirm.name())) { OrderConfirmMQMsg mqMsg = new Gson().fromJson(new String(message.getBody()), OrderConfirmMQMsg.class); try {// 邀请奖励 redPackWinInviteService.winRedPackByOrder(mqMsg.getUid(), mqMsg.getOrderId(), mqMsg.getType(), mqMsg.getPlaceTime()); redPackWinInviteService.winRedPackByOrder(mqMsg.getSourceUid(), mqMsg.getOrderNo(), mqMsg.getSourceType()); } catch (Exception e) { LogHelper.errorDetailInfo(e); } // // 发送48小时延时消息 // boolean verifyOrder = redPackWinInviteService.verifyOrder(mqMsg.getUid(), mqMsg.getOrderId(), mqMsg.getType(), mqMsg.getPlaceTime()); // if (verifyOrder) { // int hour = 48; // if (Constant.IS_TEST) { // hour = 1; // } // mqMsg.setDelayHour(hour); // Message msg = new Message(message.getTopic(), OrderTopicTagEnum.orderStatisticDelay.name(), // new Gson().toJson(mqMsg).getBytes()); // if (mqMsg.getStaticticDate().getTime() + 1000 * 60 * 60L * hour > System.currentTimeMillis())// 时间是否已经过了 // msg.setStartDeliverTime(mqMsg.getStaticticDate().getTime() + 1000 * 60 * 60L * hour); // else // msg.setStartDeliverTime(System.currentTimeMillis() + 1000 * 60); // producer.send(msg); // } return Action.CommitMessage; } else if (tag.equalsIgnoreCase(OrderTopicTagEnum.orderStatisticDelay.name())) {// 订单统计 OrderMQMsg mqMsg = new Gson().fromJson(new String(message.getBody()), OrderMQMsg.class); int hour = 48; if (Constant.IS_TEST) { hour = 1; } // if (mqMsg.getDelayHour() == hour) { // try { // redPackWinInviteService.winFreeCoupon(mqMsg.getUid(), mqMsg.getOrderId(), mqMsg.getType(), mqMsg.getPlaceTime()); // } catch (Exception e) { // LogHelper.errorDetailInfo(e); // return Action.ReconsumeLater; // } // } return Action.CommitMessage; } } return Action.CommitMessage; fanli/src/main/resource/rocket/consumer.xml
@@ -355,12 +355,11 @@ </property> <property name="subscriptionTable"> <map> <!-- 产生订单/延时,订单到账 --> <entry value-ref="redPackMessageListener"> <key> <bean class="com.aliyun.openservices.ons.api.bean.Subscription"> <property name="topic" value="TOPIC_ORDER" /> <property name="expression" value="orderStatistic" /> <property name="expression" value="orderConfirm" /> </bean> </key> </entry>