From 2b71bd05caf230bf9d35e0f000cea6d0413a774e Mon Sep 17 00:00:00 2001
From: yujian <yujian@123.com>
Date: 星期五, 01 十一月 2019 11:39:45 +0800
Subject: [PATCH] 邀请奖励红包
---
fanli/src/main/java/com/yeshi/fanli/service/impl/redpack/RedPackWinInviteServiceImpl.java | 114 +++++++++++++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 103 insertions(+), 11 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 0ce5c0d..c17cb30 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,7 +14,9 @@
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.UserExtraTaoBaoInfo;
import com.yeshi.fanli.entity.bus.user.UserInfo;
+import com.yeshi.fanli.entity.order.CommonOrder;
import com.yeshi.fanli.entity.redpack.RedPackWinInvite;
import com.yeshi.fanli.entity.redpack.RedPackWinInvite.RedPackWinInviteTypeEnum;
import com.yeshi.fanli.service.inter.money.msg.UserMoneyMsgNotificationService;
@@ -22,9 +24,13 @@
import com.yeshi.fanli.service.inter.redpack.RedPackBalanceService;
import com.yeshi.fanli.service.inter.redpack.RedPackConfigService;
import com.yeshi.fanli.service.inter.redpack.RedPackWinInviteService;
+import com.yeshi.fanli.service.inter.user.UserInfoService;
+import com.yeshi.fanli.service.inter.user.integral.IntegralTaskRecordService;
import com.yeshi.fanli.service.inter.user.invite.ThreeSaleSerivce;
+import com.yeshi.fanli.service.inter.user.tb.UserExtraTaoBaoInfoService;
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.MoneyBigDecimalUtil;
+import com.yeshi.fanli.util.StringUtil;
import com.yeshi.fanli.util.factory.RedPackDetailFactory;
import com.yeshi.fanli.vo.order.CommonOrderVO;
@@ -49,6 +55,26 @@
@Resource
private UserMoneyMsgNotificationService userMoneyMsgNotificationService;
+ @Resource
+ private UserInfoService userInfoService;
+
+ @Resource
+ private UserExtraTaoBaoInfoService userExtraTaoBaoInfoService;
+
+ @Resource
+ private IntegralTaskRecordService integralTaskRecordService;
+
+
+ @Override
+ public List<RedPackWinInvite> getRewardList(int start, int count, Long uid) {
+ return redPackWinInviteMapper.getRewardList(start, count, uid);
+ }
+
+
+ @Override
+ public Long countRewardRecord(Long uid) {
+ return redPackWinInviteMapper.countRewardRecord(uid);
+ }
@Override
@Transactional(rollbackFor = Exception.class)
@@ -56,19 +82,18 @@
if (uid == null || source == null || orderNo == null)
return;
- // 鑷繁鐨勫鍔�
- firstReward(uid, source, orderNo);
-
// 涓婁竴绾х殑濂栧姳
UserInfo boss = threeSaleSerivce.getBoss(uid);
if(boss != null) {
+ firstReward(uid, source, orderNo);
firstSharedOrderRewardToBoss(boss.getId(), uid, source, orderNo);
firstSharedOrderRewardTheMonthToBoss(boss.getId(), uid, source, orderNo);
}
}
/**
- * 鏂颁汉濂栧姳锛氬畬鎴愰绗旇鍗� 锛堝凡鍒拌处锛� 棣栧崟=涓嶉檺鍒堕噾棰濄�佷笉闄愬埗鍟嗗搧銆佷笉闄愬埗鏁伴噺銆佷笉闄愬埗璁㈠崟绫诲瀷锛�
+ * 琚個璇蜂汉涓嬮鍗曡繑鍒╋紙涓嬪崟灏辩粰锛夛細
+ * 瀹屾垚棣栫瑪璁㈠崟 锛堝凡鍒拌处锛� 棣栧崟=涓嶉檺鍒堕噾棰濄�佷笉闄愬埗鍟嗗搧銆佷笉闄愬埗鏁伴噺銆佷笉闄愬埗璁㈠崟绫诲瀷锛�
* @param uid
* @param source
* @param orderNo
@@ -76,6 +101,11 @@
*/
@Transactional
private void firstReward(Long uid, Integer source, String orderNo) throws Exception{
+ // 濂栧姳涓�娆�
+ long total = redPackWinInviteMapper.countByUidAndType(uid, RedPackWinInviteTypeEnum.newUserReward.name());
+ if (total > 1)
+ return;
+
// 1銆佸垽鏂槸鍚︾敤鎴烽涓鍗�
CommonOrderVO order = commonOrderService.firstValidOrderByUid(uid);
if (order == null || source == order.getSourceType() || orderNo.equals(order.getOrderNo()))
@@ -117,6 +147,11 @@
*/
@Transactional
private void firstSharedOrderRewardToBoss(Long uid, Long inviteeUid, Integer source, String orderNo) throws Exception{
+ // 鍚屼竴闃熷憳濂栧姳涓�娆�
+ long totalReward = redPackWinInviteMapper.countByUidAndTeamUidAndType(uid, inviteeUid, RedPackWinInviteTypeEnum.firstSharedOrder.name());
+ if (totalReward > 1)
+ return;
+
// 1銆佸垽鏂槸鍚︽槸鏀圭敤鎴烽涓垎浜鍗�
CommonOrderVO order = commonOrderService.firstValidOrderByUidAndType(inviteeUid, 2);
if (order == null || source == order.getSourceType() || orderNo.equals(order.getOrderNo()))
@@ -203,6 +238,7 @@
winInvite.setSource(source);
winInvite.setOrderNo(orderNo);
redPackWinInviteMapper.insertSelective(winInvite);
+
// 4銆佸鍔犵孩鍖�
redPackBalanceService.addRedPack(uid, money, RedPackDetailFactory.createSeriesReward(winInvite));
@@ -215,19 +251,75 @@
}
- public List<RedPackWinInvite> getRewardList() {
+
+ @Transactional
+ private void inviteSucceedReward(Long uid) throws Exception{
+ // 楠岃瘉鏄惁瀛樺湪涓婄骇
+ UserInfo boss = threeSaleSerivce.getBoss(uid);
+ if(boss == null)
+ return;
+
+ // 鍚屼竴闃熷憳濂栧姳涓�娆�
+ long totalReward = redPackWinInviteMapper.countByUidAndTeamUidAndType(boss.getId(), uid, RedPackWinInviteTypeEnum.inviteSucceed.name());
+ if (totalReward > 1)
+ return;
+
+ // 1銆佺粦瀹氱數璇濆彿鐮�
+ UserInfo userInfo = userInfoService.selectByPKey(uid);
+ if (userInfo == null || StringUtil.isNullOrEmpty(userInfo.getPhone()))
+ return;
+
+ // 2銆佹巿鏉冩窐瀹�
+ UserExtraTaoBaoInfo taoBaoInfo = userExtraTaoBaoInfoService.getByUid(uid);
+ if (taoBaoInfo == null || StringUtil.isNullOrEmpty(taoBaoInfo.getTaoBaoUid()))
+ return;
+ boolean finishTask = false;
+ // 3.1銆佷骇鐢熶换鎰忔湁鏁堣鍗曪紙鏃犻渶鍒拌处锛�
+ CommonOrder commonOrder = commonOrderService.selectLatestValidByUid(uid);
+ if (commonOrder != null)
+ finishTask = true;
+ // 3.2銆佸崟浣嶆椂闂寸被绱浜х敓鈮�200閲戝竵
+ if (!finishTask) {
+ long totalGoldCoin = integralTaskRecordService.getTotalGoldCoinByUid(uid);
+ if (totalGoldCoin >= Constant.RED_PACK_GOLD_COIN)
+ finishTask = true;
+ }
+ // 3.3銆佹垚鍔熼個璇蜂竴涓ソ鍙�
+ if (!finishTask) {
+ long countTeam = threeSaleSerivce.countSuccessFirstTeam(uid);
+ if (countTeam >= 1)
+ finishTask = true;
+ }
-
-
- return null;
+ if (finishTask) {
+ // 濂栧姳閲戦
+ BigDecimal money = new BigDecimal(redPackConfigService.getValueByKey("invite_succeed"));
+
+ // 鑾峰緱绾㈠寘璁板綍
+ RedPackWinInvite winInvite = new RedPackWinInvite();
+ winInvite.setCreateTime(new Date());
+ winInvite.setUpdateTime(new Date());
+ winInvite.setType(RedPackWinInviteTypeEnum.inviteSucceed);
+ winInvite.setUid(boss.getId());
+ winInvite.setTeamUid(uid);
+ winInvite.setMoney(money);
+ redPackWinInviteMapper.insertSelective(winInvite);
+
+ // 澧炲姞绾㈠寘
+ redPackBalanceService.addRedPack(boss.getId(), 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, new Gson().toJson(dto), "绾㈠寘鍙敤浜庤喘涔颁細鍛�");
+ }
}
-
-
-
}
--
Gitblit v1.8.0