From b5cf0267dfc95bf56dceb76ca44e849347a7b85f Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期一, 18 十一月 2019 13:55:49 +0800
Subject: [PATCH] 1.饿了么订单定时爬取 2.相似商品推荐修改
---
fanli/src/main/java/com/yeshi/fanli/service/impl/redpack/RedPackWinInviteServiceImpl.java | 88 +++++++++++++++++++++++--------------------
1 files changed, 47 insertions(+), 41 deletions(-)
diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/redpack/RedPackWinInviteServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/redpack/RedPackWinInviteServiceImpl.java
index d16ce64..2af35c3 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/impl/redpack/RedPackWinInviteServiceImpl.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/redpack/RedPackWinInviteServiceImpl.java
@@ -14,6 +14,7 @@
import com.yeshi.fanli.dao.mybatis.redpack.RedPackWinInviteMapper;
import com.yeshi.fanli.dto.msg.MsgRedPackAddContentDTO;
import com.yeshi.fanli.entity.bus.msg.MsgMoneyDetail.MsgTypeMoneyTypeEnum;
+import com.yeshi.fanli.entity.bus.user.ThreeSale;
import com.yeshi.fanli.entity.bus.user.UserActiveLog;
import com.yeshi.fanli.entity.bus.user.UserExtraTaoBaoInfo;
import com.yeshi.fanli.entity.bus.user.UserInfo;
@@ -35,7 +36,6 @@
import com.yeshi.fanli.util.StringUtil;
import com.yeshi.fanli.util.VersionUtil;
import com.yeshi.fanli.util.annotation.RequestSerializableByKeyService;
-import com.yeshi.fanli.util.annotation.redpack.RedPackGetVersionLimit;
import com.yeshi.fanli.util.factory.RedPackDetailFactory;
import com.yeshi.fanli.vo.order.CommonOrderVO;
@@ -90,28 +90,29 @@
}
- @RedPackGetVersionLimit(uid = "#uid")
@RequestSerializableByKeyService(key = "#uid")
@Transactional(rollbackFor = Exception.class)
@Override
public void orderArriveReward(Long uid, Integer source, String orderNo) throws Exception {
- if (uid == null || source == null || orderNo == null)
+ if (uid == null || source == null || StringUtil.isNullOrEmpty(orderNo))
return;
- // 涓婁竴绾х殑濂栧姳
- UserInfo boss = threeSaleSerivce.getBoss(uid);
- if(boss != null) {
- UserActiveLog activeLog = userActiveLogService.getUserLatestActiveInfo(boss.getId());
- if (activeLog == null)
- return;
+ ThreeSale threeSale = threeSaleSerivce.getByWorkerIdAndTime(uid, Constant.RED_PACK_REWARD_TIME);
+ if(threeSale == null)
+ return;
- // 灏忎簬2.0.2鐗堟湰涓嶅鍔�
- if (!VersionUtil.greaterThan_2_0_2("appstore".equalsIgnoreCase(activeLog.getChannel()) ? "ios" : "android",
- activeLog.getVersionCode()))
- return;
-
- bossReward(boss.getId(), uid, source, orderNo);
- }
+ Long bossId = threeSale.getBoss().getId();
+ UserActiveLog activeLog = userActiveLogService.getUserLatestActiveInfo(bossId);
+ if (activeLog == null)
+ return;
+
+ // 灏忎簬2.0.2鐗堟湰涓嶅鍔�
+ if (!VersionUtil.greaterThan_2_1("appstore".equalsIgnoreCase(activeLog.getChannel()) ? "ios" : "android",
+ activeLog.getVersionCode()))
+ return;
+
+ // 濂栧姳涓婄骇
+ bossReward(bossId, uid, source, orderNo);
}
@@ -123,7 +124,6 @@
* @param orderNo
* @throws Exception
*/
- @RedPackGetVersionLimit(uid = "#uid")
@Transactional
private void bossReward(Long uid, Long teamUid, Integer source, String orderNo) throws Exception {
firstSharedOrderRewardToBoss(uid, teamUid, source, orderNo);
@@ -139,19 +139,23 @@
*/
@Transactional
private void firstSharedOrderRewardToBoss(Long uid, Long inviteeUid, Integer source, String orderNo) throws Exception{
- // 鍚屼竴闃熷憳濂栧姳涓�娆�
+ // 1銆佸悓涓�闃熷憳濂栧姳涓�娆�
long totalReward = redPackWinInviteMapper.countByUidAndTeamUidAndType(uid, inviteeUid, RedPackWinInviteTypeEnum.firstSharedOrder.name());
if (totalReward > 0)
return;
- // 1銆佸垽鏂槸鍚︽槸鏀圭敤鎴烽涓垎浜鍗�
- CommonOrderVO order = commonOrderService.firstValidOrderByUidAndType(inviteeUid, 2);
- if (order == null || source != order.getSourceType() || !orderNo.equals(order.getOrderNo()))
+ // 2銆佹槸鍚︿笅绾х殑棣栦釜鍒嗕韩璁㈠崟
+ CommonOrder commonOrder = commonOrderService.getFirstShareOrderByUid(inviteeUid);
+ if (commonOrder == null || !orderNo.equals(commonOrder.getOrderNo()) || source != commonOrder.getSourceType())
+ return ;
+
+ // 3銆佸埌璐﹀鍔遍噾棰� 鏄惁澶т簬5
+ BigDecimal totalRewardMoney = commonOrderService.getTotalRewardMoneyByOrderNoAndSourceType(orderNo, source);
+ if (totalRewardMoney == null || totalRewardMoney.compareTo(Constant.RED_PACK_ORDER_REWARD_MIN) < 0)
return;
// 2銆佸垽鏂槸绗嚑涓汉
long total = redPackWinInviteMapper.countByUidAndType(uid, RedPackWinInviteTypeEnum.firstSharedOrder.name());
-
// 璁$畻搴斿鍔犵孩鍖呴噾棰�
BigDecimal money = new BigDecimal(redPackConfigService.getValueByKey("first_shared_order"));
@@ -185,7 +189,7 @@
new Gson().toJson(dto), "璇峰埌鈥滄垜鐨�-绾㈠寘鈥濅腑鏌ョ湅");
}
-
+
/**
* 涓婄骇濂栧姳锛氭鏈堝紑濮嬩骇鐢熸弧瓒虫潯浠剁殑鍒嗕韩璁㈠崟锛堝垎浜鍗曞疄浠樻鈮�10鍏冿級 杩炵画15涓湀 鑷劧鏈堣幏寰楋紙宸插埌璐︼級姣忔湀鏈�楂�2鍏�
* @param uid
@@ -195,6 +199,7 @@
*/
@Transactional
private void firstSharedOrderRewardTheMonthToBoss(Long uid, Long inviteeUid, Integer source, String orderNo) throws Exception{
+
// 1銆佸垽鏂槸鍚︽槸涓婁釜鏈堥鍗�
CommonOrderVO order = commonOrderService.firstValidOrderLastMonthByUidAndType(inviteeUid, 2);
if (order == null || source != order.getSourceType() || !orderNo.equals(order.getOrderNo()) ||
@@ -205,15 +210,15 @@
if (order.getPayment() == null || order.getPayment().compareTo(Constant.RED_PACK_PAY_MIN) < 0)
return;
- // 鏌ヨ棣栧崟濂栧姳鏃堕棿
- CommonOrderVO firstorder = commonOrderService.firstValidOrderByUidAndType(inviteeUid, 2);
- if (firstorder == null || firstorder.getAccountTime() == null)
- return;
+ // 2銆佹槸鍚︿笅绾х殑棣栦釜鍒嗕韩璁㈠崟
+// CommonOrder firstorder = commonOrderService.getFirstShareOrderByUid(inviteeUid);
+// if (firstorder == null || (orderNo.equals(firstorder.getOrderNo()) && source == firstorder.getSourceType()));
+// return;
// 绗竴娆″埌璐︾殑娆℃湀寮�濮嬭繛缁�15涓湀 鑷劧鏈堣幏寰楋紙宸插埌璐︼級
- int monthSpace = DateUtil.getMonthSpace( order.getAccountTime(), firstorder.getAccountTime());
- if (monthSpace == 0 || monthSpace > Constant.RED_PACK_REWARd_MONTH)
- return;
+// int monthSpace = DateUtil.getMonthSpace(order.getThirdCreateTime(), firstorder.getThirdCreateTime());
+// if (monthSpace == 0 || monthSpace > Constant.RED_PACK_REWARD_MONTH)
+// return;
// 璁$畻闅忔満濂栧姳
@@ -247,26 +252,27 @@
@Override
- @RedPackGetVersionLimit(uid = "#uid")
@RequestSerializableByKeyService(key = "#uid")
@Transactional(rollbackFor = Exception.class)
public void inviteSucceedReward(Long uid) throws Exception{
// 楠岃瘉鏄惁瀛樺湪涓婄骇
- UserInfo boss = threeSaleSerivce.getBoss(uid);
- if(boss == null)
+ ThreeSale threeSale = threeSaleSerivce.getByWorkerIdAndTime(uid, Constant.RED_PACK_REWARD_TIME);
+ if (threeSale == null)
return;
-
- UserActiveLog activeLog = userActiveLogService.getUserLatestActiveInfo(boss.getId());
+ // 涓婄骇id
+ Long bossId = threeSale.getBoss().getId();
+
+ UserActiveLog activeLog = userActiveLogService.getUserLatestActiveInfo(bossId);
if (activeLog == null)
return;
// 灏忎簬2.0.2鐗堟湰涓嶅鍔�
- if (!VersionUtil.greaterThan_2_0_2("appstore".equalsIgnoreCase(activeLog.getChannel()) ? "ios" : "android",
+ if (!VersionUtil.greaterThan_2_1("appstore".equalsIgnoreCase(activeLog.getChannel()) ? "ios" : "android",
activeLog.getVersionCode()))
return;
// 鍚屼竴闃熷憳濂栧姳涓�娆�
- long totalReward = redPackWinInviteMapper.countByUidAndTeamUidAndType(boss.getId(), uid, RedPackWinInviteTypeEnum.inviteSucceed.name());
+ long totalReward = redPackWinInviteMapper.countByUidAndTeamUidAndType(bossId, uid, RedPackWinInviteTypeEnum.inviteSucceed.name());
if (totalReward > 0)
return;
@@ -310,20 +316,20 @@
winInvite.setCreateTime(new Date());
winInvite.setUpdateTime(new Date());
winInvite.setType(RedPackWinInviteTypeEnum.inviteSucceed);
- winInvite.setUid(boss.getId());
+ winInvite.setUid(bossId);
winInvite.setTeamUid(uid);
winInvite.setMoney(money);
redPackWinInviteMapper.insertSelective(winInvite);
// 澧炲姞绾㈠寘
- redPackBalanceService.addRedPack(boss.getId(), money, RedPackDetailFactory.createInvite(winInvite));
+ redPackBalanceService.addRedPack(bossId, money, RedPackDetailFactory.createInvite(winInvite));
// 娑堟伅
MsgRedPackAddContentDTO dto = new MsgRedPackAddContentDTO();
dto.setTitle("绾㈠寘澧炲姞");
dto.setMoney("楼" + money.setScale(2));
- dto.setBalance("楼" + redPackBalanceService.getBalance(boss.getId()).setScale(2));
- userMoneyMsgNotificationService.redPackMsg(boss.getId(), MsgTypeMoneyTypeEnum.redPackInviteSucceed,
+ dto.setBalance("楼" + redPackBalanceService.getBalance(bossId).setScale(2));
+ userMoneyMsgNotificationService.redPackMsg(bossId, MsgTypeMoneyTypeEnum.redPackInviteSucceed,
new Gson().toJson(dto), "璇峰埌鈥滄垜鐨�-绾㈠寘鈥濅腑鏌ョ湅");
}
}
--
Gitblit v1.8.0