From d4588f4e43336b26b356b869c29d0c76390167d5 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期三, 15 四月 2020 10:22:51 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/div' into div
---
fanli/src/main/java/com/yeshi/fanli/service/impl/user/invite/ThreeSaleSerivceImpl.java | 361 +++++++++++++++++++++++++--------------------------
1 files changed, 178 insertions(+), 183 deletions(-)
diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/user/invite/ThreeSaleSerivceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/user/invite/ThreeSaleSerivceImpl.java
index c31f84f..07bb037 100644
--- a/fanli/src/main/java/com/yeshi/fanli/service/impl/user/invite/ThreeSaleSerivceImpl.java
+++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/user/invite/ThreeSaleSerivceImpl.java
@@ -13,16 +13,18 @@
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+import com.aliyun.openservices.ons.api.Message;
+import com.aliyun.openservices.ons.api.Producer;
import com.yeshi.fanli.dao.mybatis.ThreeSaleMapper;
import com.yeshi.fanli.dao.mybatis.UserInfoMapper;
+import com.yeshi.fanli.dto.mq.user.UserTopicTagEnum;
+import com.yeshi.fanli.dto.mq.user.body.UserInviteMQMsg;
import com.yeshi.fanli.entity.bus.user.ThreeSale;
import com.yeshi.fanli.entity.bus.user.ThreeSaleExtraInfo;
import com.yeshi.fanli.entity.bus.user.UserActiveLog;
import com.yeshi.fanli.entity.bus.user.UserInfo;
import com.yeshi.fanli.exception.user.ThreeSaleException;
-import com.yeshi.fanli.log.LogHelper;
import com.yeshi.fanli.service.inter.order.config.HongBaoManageService;
-import com.yeshi.fanli.service.inter.tlj.UserTaoLiJinOriginService;
import com.yeshi.fanli.service.inter.user.UserActiveLogService;
import com.yeshi.fanli.service.inter.user.UserInfoExtraService;
import com.yeshi.fanli.service.inter.user.UserInfoService;
@@ -34,7 +36,8 @@
import com.yeshi.fanli.util.Constant;
import com.yeshi.fanli.util.StringUtil;
import com.yeshi.fanli.util.VersionUtil;
-import com.yeshi.fanli.util.cmq.ThreeSaleCMQManager;
+import com.yeshi.fanli.util.rocketmq.MQMsgBodyFactory;
+import com.yeshi.fanli.util.rocketmq.MQTopicName;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
@@ -61,9 +64,6 @@
private MsgInviteDetailService msgInviteDetailService;
@Resource
- private UserTaoLiJinOriginService userTaoLiJinOriginService;
-
- @Resource
private UserActiveLogService userActiveLogService;
@Resource
@@ -72,7 +72,6 @@
@Resource
private ThreeSaleExtraInfoSerivce threeSaleExtraInfoSerivce;
-
@Lazy
@Resource
private IntegralGetService integralGetService;
@@ -80,11 +79,14 @@
@Resource(name = "taskExecutor")
private TaskExecutor executor;
+ @Resource(name = "producer")
+ private Producer producer;
+
public UserInfo getBoss(final long uid) {
return threeSaleMapper.selectBoss(uid);
}
- @Transactional
+ @Transactional(rollbackFor = Exception.class)
public void bind(UserInfo worker, UserInfo inviter) throws ThreeSaleException {
if (worker == null || inviter == null)
throw new ThreeSaleException(1, "鐢ㄦ埛淇℃伅涓虹┖");
@@ -115,9 +117,6 @@
threeSaleMapper.deleteExpireRecord(inviter.getId(), inviteeUser.getId());
}
- // 鍒涘缓閫氱煡
- userInviteMsgNotificationService.inviteScan(inviter.getId(), threeSale);
-
} else {// 鏄凡缁忓瓨鍦ㄧ殑鐢ㄦ埛
if (worker.getId().longValue() == inviter.getId())
throw new ThreeSaleException(4, "涓嶈兘缁戝畾鑷繁");
@@ -132,7 +131,7 @@
List<ThreeSale> list = listByWorkerId(worker.getId());
if (list != null && list.size() > 0) {
for (ThreeSale ts : list) {
- if (!ts.getState() && ts.getExpire() == ThreeSale.EXPIRE_OUTOFDATE) {
+ if (!ts.getState() && ts.getExpire() == ThreeSale.EXPIRE_BREAK) {
outOfDateCount++;
}
}
@@ -161,9 +160,6 @@
threeSaleMapper.deleteExpireRecord(inviter.getId(), worker.getId());
}
- userInviteMsgNotificationService.inviteScan(inviter.getId(), threeSale);
- // threeSaleSerivce.bind(invitee, inviter);
-
} else {
// 杩樺瓨鍦ㄦ湁鏁堢殑閭�璇凤紝鍒欎笉鍋氬鐞�
}
@@ -177,7 +173,7 @@
if (list != null)
for (int i = 0; i < list.size(); i++) {
if (list.get(i).getState() != null && list.get(i).getState() == false
- && list.get(i).getExpire() == ThreeSale.EXPIRE_OUTOFDATE) {// 杩囨湡鐨�
+ && list.get(i).getExpire() == ThreeSale.EXPIRE_BREAK) {// 杩囨湡鐨�
list.remove(i);
i--;
}
@@ -193,8 +189,6 @@
ts.setSucceedTime(System.currentTimeMillis());
ts.setWorker(worker);
threeSaleMapper.insertSelective(ts);
- ThreeSaleCMQManager.getInstance().addThreeSaleMsg(ts);
- userInviteMsgNotificationService.inviteSuccess(inviter.getId(), ts);
} else {
if (!list.get(0).getState() && list.get(0).getExpire() == ThreeSale.EXPIRE_NORMAL
&& list.get(0).getBoss().getId() == inviter.getId().longValue()) {// 鏈敓鏁堢殑涓婄骇鍜岀幇鍦ㄤ笂绾т竴鏍峰氨鐢熸晥
@@ -202,8 +196,6 @@
update.setState(true);
update.setSucceedTime(System.currentTimeMillis());
threeSaleMapper.updateByPrimaryKeySelective(update);
- ThreeSaleCMQManager.getInstance().addThreeSaleMsg(list.get(0));// 娣诲姞閫氱煡
- userInviteMsgNotificationService.inviteSuccess(inviter.getId(), list.get(0));
}
}
}
@@ -234,14 +226,11 @@
oldSale.setState(update.getState());
oldSale.setSucceedTime(update.getSucceedTime());
- UserInfo inviter = list.get(0).getBoss();
// 涓嶄互閭�璇蜂汉鏁拌绠楃瓑绾�
// if (inviter != null)
// reComputeUserRank(inviter.getId());
// 娣诲姞鍒伴槦鍒�
- ThreeSaleCMQManager.getInstance().addThreeSaleMsg(oldSale);
- // 閫氱煡
- userInviteMsgNotificationService.inviteSuccess(inviter.getId(), oldSale);
+ inviteSuccess(oldSale.getBoss().getId(), worker);
}
}
@@ -503,185 +492,81 @@
}
@Override
- @Transactional
+ @Transactional(rollbackFor = Exception.class)
public void bindRelationshipByInviteCode(UserInfo invitee, UserInfo inviter) throws ThreeSaleException {
-
if (invitee == null || inviter == null)
throw new ThreeSaleException(1, "鐢ㄦ埛淇℃伅涓虹┖");
- // 鑾峰彇鏈夋晥鐨勯個璇峰叧绯�
- ThreeSale threeSale = threeSaleMapper.getRelationshipByBossIdAndWorkerId(inviter.getId(), invitee.getId());
+ // 鏂板缓绔嬬‘瀹氬叧绯�
+ ThreeSale threeSale = new ThreeSale();
+ threeSale.setBoss(inviter);
+ threeSale.setWorker(invitee);
+ threeSale.setState(true);
+ threeSale.setExpire(ThreeSale.EXPIRE_NORMAL);
+ threeSale.setSucceedTime(java.lang.System.currentTimeMillis());
+ threeSale.setCreateTime(java.lang.System.currentTimeMillis());
+ threeSale.setUpdateTime(java.lang.System.currentTimeMillis());
+ threeSaleMapper.insertSelective(threeSale);
- if (threeSale != null) {
- // 鏈夋晥鍏崇郴--鐢熸晥
- threeSale.setBoss(inviter);
- threeSale.setWorker(invitee);
- threeSale.setState(true);
- threeSale.setExpire(ThreeSale.EXPIRE_NORMAL);
- threeSale.setSucceedTime(java.lang.System.currentTimeMillis());
- threeSale.setUpdateTime(java.lang.System.currentTimeMillis());
- threeSaleMapper.updateByPrimaryKeySelective(threeSale);
- } else {
- // 鏂板缓绔嬬‘瀹氬叧绯�
- threeSale = new ThreeSale();
- threeSale.setBoss(inviter);
- threeSale.setWorker(invitee);
- threeSale.setState(true);
- threeSale.setExpire(ThreeSale.EXPIRE_NORMAL);
- threeSale.setSucceedTime(java.lang.System.currentTimeMillis());
- threeSale.setCreateTime(java.lang.System.currentTimeMillis());
- threeSale.setUpdateTime(java.lang.System.currentTimeMillis());
- threeSaleMapper.insertSelective(threeSale);
- }
-
- List<ThreeSale> listExpire = threeSaleMapper.getExpireRecord(inviter.getId(), invitee.getId());
- if (listExpire != null && listExpire.size() > 0) {
- // 鍒犻櫎鍘嗗彶閫氱煡
- for (ThreeSale saleExpire : listExpire) {
- msgInviteDetailService.deleteByThreeSale(saleExpire);
- }
- // 鍒犻櫎宸插け鏁堝叧绯�
- threeSaleMapper.deleteExpireRecord(inviter.getId(), invitee.getId());
- }
-
- // 娣诲姞鍒伴槦鍒�
- ThreeSaleCMQManager.getInstance().addThreeSaleMsg(threeSale);
-
- // 閭�璇锋秷鎭�
- userInviteMsgNotificationService.inviteSuccess(inviter.getId(), threeSale);
-
- executor.execute(new Runnable() {
- @Override
- public void run() {
-
- UserActiveLog activeLog = userActiveLogService.getUserLatestActiveInfo(inviter.getId());
- try {
- if (activeLog != null && !StringUtil.isNullOrEmpty(activeLog.getVersionCode())) {
- String versionCode = activeLog.getVersionCode();
- String channel = activeLog.getChannel();
-
- boolean result = false;
- // 娓犻亾鏄痑ppstore 鍒ゆ柇涓篒OS
- if (!StringUtil.isNullOrEmpty(channel) && "appstore".equalsIgnoreCase(channel)) {
- result = VersionUtil.greaterThan_1_5_60("ios", versionCode);
- } else {
- result = VersionUtil.greaterThan_1_5_60("android", versionCode);
- }
-
- if (result) {
- // 琚個璇峰悕绉�
- String inviteName = invitee.getNickName();
- if (StringUtil.isNullOrEmpty(inviteName)) {
- UserInfo userInfo = userInfoService.selectByPKey(invitee.getId());
- if (userInfo != null) {
- inviteName = userInfo.getNickName();
- }
- }
- // 濂栧姳閭�璇风孩鍖咃紙娣樼ぜ閲戯級
- userTaoLiJinOriginService.addInviteWinMoney(inviter.getId(), inviteName);
- }
- }
- } catch (Exception e) {
- LogHelper.errorDetailInfo(e);
- }
-
- // 閭�璇烽噾甯�
- integralGetService.addInviteLevelOne(inviter.getId(), invitee.getId());
- }
- });
-
+ inviteSuccess(inviter.getId(), invitee);
}
@Override
- @Transactional
- public void bindRelationshipByWX(UserInfo invitee, Long inviterId, ThreeSale threeSaleOld)
- throws ThreeSaleException {
-
- if (invitee == null || (inviterId == null && threeSaleOld == null))
+ @Transactional(rollbackFor = Exception.class)
+ public void bindRelationshipByWX(UserInfo invitee, Long inviterId) throws ThreeSaleException {
+ if (invitee == null || inviterId == null)
throw new ThreeSaleException(1, "鐢ㄦ埛淇℃伅涓虹┖");
-
- ThreeSale threeSale = null;
- if (inviterId != null) {
- // 鏂板缓绔嬬‘瀹氬叧绯�
- threeSale = new ThreeSale();
- threeSale.setBoss(new UserInfo(inviterId));
- threeSale.setWorker(invitee);
- threeSale.setState(true);
- threeSale.setExpire(ThreeSale.EXPIRE_NORMAL);
- threeSale.setSucceedTime(java.lang.System.currentTimeMillis());
- threeSale.setCreateTime(java.lang.System.currentTimeMillis());
- threeSale.setUpdateTime(java.lang.System.currentTimeMillis());
- threeSaleMapper.insertSelective(threeSale);
-
- // 閭�璇峰叧绯诲け鏁� 1.5.3 涔嬪墠澶辨晥
- if (threeSaleOld != null) {
- ThreeSale three = new ThreeSale();
- three.setId(threeSaleOld.getId());
- three.setExpire(ThreeSale.EXPIRE_OUTOFDATE);
- three.setUpdateTime(java.lang.System.currentTimeMillis());
- threeSaleMapper.updateByPrimaryKeySelective(three);
- }
- } else if (threeSaleOld != null && inviterId == null) {
- // 1.5.3 涔嬪墠鐢熸晥
- threeSaleOld.setState(true);
- threeSaleOld.setExpire(ThreeSale.EXPIRE_NORMAL);
- threeSaleOld.setSucceedTime(java.lang.System.currentTimeMillis());
- threeSaleOld.setUpdateTime(java.lang.System.currentTimeMillis());
- threeSaleMapper.updateByPrimaryKeySelective(threeSaleOld);
-
- threeSale = threeSaleOld;
- }
-
- if (threeSale == null) {
- throw new ThreeSaleException(1, "鍏崇郴缁戝畾澶辫触");
- }
-
- UserInfo boss = userInfoService.selectByPKey(threeSale.getBoss().getId());
- threeSale.setBoss(boss);
+ // 鏂板缓绔嬬‘瀹氬叧绯�
+ ThreeSale threeSale = new ThreeSale();
+ threeSale.setBoss(new UserInfo(inviterId));
threeSale.setWorker(invitee);
+ threeSale.setState(true);
+ threeSale.setExpire(ThreeSale.EXPIRE_NORMAL);
+ threeSale.setSucceedTime(java.lang.System.currentTimeMillis());
+ threeSale.setCreateTime(java.lang.System.currentTimeMillis());
+ threeSale.setUpdateTime(java.lang.System.currentTimeMillis());
+ threeSaleMapper.insertSelective(threeSale);
- // 娣诲姞鍒伴槦鍒�
- ThreeSaleCMQManager.getInstance().addThreeSaleMsg(threeSale);
+ // 閭�璇锋垚鍔燂細娑堟伅銆佺浉鍏冲鐞�
+ inviteSuccess(inviterId, invitee);
+ }
- // 閭�璇锋秷鎭�
- userInviteMsgNotificationService.inviteSuccess(threeSale.getBoss().getId(), threeSale);
+ /**
+ * 閭�璇锋垚鍔�
+ */
+ @Transactional
+ private void inviteSuccess(Long bossId, UserInfo invitee) {
+ if (!Constant.IS_TEST) {
+ UserInviteMQMsg msg = new UserInviteMQMsg(bossId, invitee.getId(), null, new Date(), UserInviteMQMsg.STATE_SUCCESS);
+ Message message = MQMsgBodyFactory.create(MQTopicName.TOPIC_USER, UserTopicTagEnum.inviteSuccess, msg);
+ producer.send(message);
+ }
executor.execute(new Runnable() {
@Override
public void run() {
try {
- UserActiveLog activeLog = userActiveLogService.getUserLatestActiveInfo(inviterId);
- if (activeLog != null && !StringUtil.isNullOrEmpty(activeLog.getVersionCode())) {
- boolean result = false;
- String versionCode = activeLog.getVersionCode();
- String channel = activeLog.getChannel();
-
- // 娓犻亾鏄痑ppstore 鍒ゆ柇涓篒OS
- if (!StringUtil.isNullOrEmpty(channel) && "appstore".equalsIgnoreCase(channel)) {
- result = VersionUtil.greaterThan_1_5_60("ios", versionCode);
- } else {
- result = VersionUtil.greaterThan_1_5_60("android", versionCode);
- }
-
- if (result) {
- // 琚個璇峰悕绉�
- String inviteName = invitee.getNickName();
- if (StringUtil.isNullOrEmpty(inviteName)) {
- UserInfo userInfo = userInfoService.selectByPKey(invitee.getId());
- if (userInfo != null) {
- inviteName = userInfo.getNickName();
- }
- }
- // 濂栧姳閭�璇风孩鍖咃紙娣樼ぜ閲戯級
- userTaoLiJinOriginService.addInviteWinMoney(inviterId, inviteName);
- }
- }
+ // 閭�璇烽噾甯�
+ integralGetService.addInviteLevelOne(bossId, invitee.getId());
} catch (Exception e) {
- LogHelper.errorDetailInfo(e);
+ e.printStackTrace();
}
- // 閭�璇烽噾甯�
- integralGetService.addInviteLevelOne(boss.getId(), invitee.getId());
+ try {
+ // 鐩存帴绮変笣閭�璇锋垚鍔�
+ userInviteMsgNotificationService.directInviteSuccess(bossId, invitee.getNickName(),
+ invitee.getPortrait(), new Date());
+
+ // 闂存帴绮変笣閭�璇锋垚鍔�
+ ThreeSale myBoss = threeSaleMapper.getMyBoss(bossId);
+ if (myBoss != null) {
+ UserInfo boss = userInfoService.selectByPKey(bossId);
+ userInviteMsgNotificationService.indirectInviteSuccess(bossId, boss.getNickName(),
+ invitee.getNickName(), invitee.getPortrait(), new Date());
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
}
});
}
@@ -708,6 +593,11 @@
}
@Override
+ public ThreeSale getNearRelationByBossIdAndWorkerId(Long bossId, Long workerId) {
+ return threeSaleMapper.getNearRelationByBossIdAndWorkerId(bossId, workerId);
+ }
+
+ @Override
public List<ThreeSale> getSuccessByDate(Long bossId, Long minTime, Long maxTime) {
return threeSaleMapper.getSuccessByDate(bossId, minTime, maxTime);
}
@@ -718,8 +608,113 @@
}
@Override
+ public List<ThreeSale> listFirstTeamByUndeleted(long start, int count, Long uid) {
+ return threeSaleMapper.listFirstTeamByUndeleted(start, count, uid);
+ }
+
+ @Override
+ public long countFirstTeamByUndeleted(Long uid) {
+ return threeSaleMapper.countFirstTeamByUndeleted(uid);
+ }
+
+ @Override
+ public List<ThreeSale> listSecondTeamByUndeleted(long start, int count, Long uid) {
+ return threeSaleMapper.listSecondTeamByUndeleted(start, count, uid);
+ }
+
+ @Override
+ public long countSecondTeamByUndeleted(Long uid) {
+ return threeSaleMapper.countSecondTeamByUndeleted(uid);
+ }
+
+ @Override
public List<ThreeSale> listSecondTeam(long start, int count, Long uid, Integer state) {
return threeSaleMapper.listSecondTeam(start, count, uid, state);
}
+ @Override
+ public ThreeSale selectLatestByWorkerIdAndState(Long workerId, int state) {
+ return threeSaleMapper.selectLatestByWorkerIdAndState(workerId, state);
+ }
+
+ @Override
+ public ThreeSale getByWorkerIdAndTime(Long workerId, long time) {
+ return threeSaleMapper.getByWorkerIdAndTime(workerId, time);
+ }
+
+ @Override
+ public void inviteSeparate(Long workerId, Long bossId) {
+ threeSaleMapper.inviteSeparate(workerId, bossId);
+ }
+
+ @Override
+ public long getTeamOrderNumByWorkerId(Long workerId) {
+ return threeSaleMapper.getTeamOrderNumByWorkerId(workerId);
+ }
+
+ @Override
+ public List<ThreeSale> getValidWorkerIdsByTime(Long bossId, long limitTime) {
+ return threeSaleMapper.getValidWorkerIdsByTime(bossId, limitTime);
+ }
+
+ @Override
+ public List<ThreeSale> getMyBossDeepList(Long uid, int deep) {
+
+ List<ThreeSale> deepList = new ArrayList<>();
+ ThreeSale boss = getMyBoss(uid);
+ while (deep > 0 && boss != null) {
+ deep--;
+ deepList.add(boss);
+ boss = getMyBoss(boss.getBoss().getId());
+ }
+
+ return deepList;
+ }
+
+ @Override
+ public List<ThreeSale> getMyBossDeepList(Long uid) {
+ //TODO 闇�瑕佹洿鍔犵畝渚跨殑鏂瑰紡澶勭悊
+ return getMyBossDeepList(uid, 100);
+ }
+
+ @Override
+ public void remvoeBreak(Long id, Long uid, Long tid) {
+ ThreeSale threeSale = threeSaleMapper.selectByPrimaryKey(id);
+ if (threeSale == null) {
+ return;
+ }
+
+ Long workerId = threeSale.getWorker().getId();
+ if (tid.longValue() != workerId.longValue()) {
+ return;
+ }
+
+ Integer expire = threeSale.getExpire();
+ if (expire == ThreeSale.EXPIRE_NORMAL) {
+ return;
+ }
+
+ int upExpire = expire;
+ Long bossId = threeSale.getBoss().getId();
+ if (bossId.longValue() == uid.longValue()) { // 鐩存帴绮変笣
+ if (expire == ThreeSale.EXPIRE_BREAK_VIP_DEL4) {
+ upExpire = ThreeSale.EXPIRE_BREAK_VIP_DEL34;
+ } else {
+ upExpire = ThreeSale.EXPIRE_BREAK_VIP_DEL3;
+ }
+ } else { // 闂存帴绮変笣
+ if (expire == ThreeSale.EXPIRE_BREAK_VIP_DEL3) {
+ upExpire = ThreeSale.EXPIRE_BREAK_VIP_DEL34;
+ } else {
+ upExpire = ThreeSale.EXPIRE_BREAK_VIP_DEL4;
+ }
+ }
+
+ ThreeSale update = new ThreeSale();
+ update.setId(id);
+ update.setExpire(upExpire);
+ update.setUpdateTime(java.lang.System.currentTimeMillis());
+ threeSaleMapper.updateByPrimaryKeySelective(update);
+ }
+
}
--
Gitblit v1.8.0