From dd5b15229cb15459fa7c31ccea77dac28cbfafbd Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期一, 13 四月 2020 10:04:20 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/div' into div --- fanli/src/main/java/com/yeshi/fanli/service/impl/user/invite/ThreeSaleSerivceImpl.java | 270 +++++++++++++++++++++++++++++++---------------------- 1 files changed, 159 insertions(+), 111 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 addd16c..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 @@ -15,7 +15,6 @@ import com.aliyun.openservices.ons.api.Message; import com.aliyun.openservices.ons.api.Producer; -import com.google.gson.Gson; import com.yeshi.fanli.dao.mybatis.ThreeSaleMapper; import com.yeshi.fanli.dao.mybatis.UserInfoMapper; import com.yeshi.fanli.dto.mq.user.UserTopicTagEnum; @@ -87,7 +86,7 @@ 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, "鐢ㄦ埛淇℃伅涓虹┖"); @@ -118,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, "涓嶈兘缁戝畾鑷繁"); @@ -135,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++; } } @@ -164,9 +160,6 @@ threeSaleMapper.deleteExpireRecord(inviter.getId(), worker.getId()); } - userInviteMsgNotificationService.inviteScan(inviter.getId(), threeSale); - // threeSaleSerivce.bind(invitee, inviter); - } else { // 杩樺瓨鍦ㄦ湁鏁堢殑閭�璇凤紝鍒欎笉鍋氬鐞� } @@ -180,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--; } @@ -196,7 +189,6 @@ ts.setSucceedTime(System.currentTimeMillis()); ts.setWorker(worker); threeSaleMapper.insertSelective(ts); - inviteSuccess(inviter.getId(), worker.getId(), ts); } else { if (!list.get(0).getState() && list.get(0).getExpire() == ThreeSale.EXPIRE_NORMAL && list.get(0).getBoss().getId() == inviter.getId().longValue()) {// 鏈敓鏁堢殑涓婄骇鍜岀幇鍦ㄤ笂绾т竴鏍峰氨鐢熸晥 @@ -204,7 +196,6 @@ update.setState(true); update.setSucceedTime(System.currentTimeMillis()); threeSaleMapper.updateByPrimaryKeySelective(update); - inviteSuccess(list.get(0).getBoss().getId(), list.get(0).getWorker().getId(), list.get(0)); } } } @@ -239,7 +230,7 @@ // if (inviter != null) // reComputeUserRank(inviter.getId()); // 娣诲姞鍒伴槦鍒� - inviteSuccess(oldSale.getBoss().getId(), oldSale.getWorker().getId(), oldSale); + inviteSuccess(oldSale.getBoss().getId(), worker); } } @@ -501,127 +492,83 @@ } @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()); - } - - inviteSuccess(inviter.getId(), invitee.getId(), threeSale); + 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); - inviteSuccess(boss.getId(), invitee.getId(), threeSale); - + // 閭�璇锋垚鍔燂細娑堟伅銆佺浉鍏冲鐞� + inviteSuccess(inviterId, invitee); } /** * 閭�璇锋垚鍔� */ @Transactional - private void inviteSuccess(Long bossId, Long workerId, ThreeSale threeSale) { - // 閭�璇锋秷鎭� - UserActiveLog activeLog = userActiveLogService.getUserLatestActiveInfo(bossId); - if (activeLog != null && VersionUtil.greaterThan_2_1("appstore".equalsIgnoreCase(activeLog.getChannel()) ? "ios" : "android", - activeLog.getVersionCode())) { // 2.1鐗堟湰浠ヤ笂 - userInviteMsgNotificationService.inviteSuccess2_1(bossId, threeSale); - } else { // 鏈�鍒濇秷鎭� - userInviteMsgNotificationService.inviteSuccess(threeSale.getBoss().getId(), threeSale); + 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() { - // 閭�璇烽噾甯� - integralGetService.addInviteLevelOne(bossId, workerId); + try { + // 閭�璇烽噾甯� + integralGetService.addInviteLevelOne(bossId, invitee.getId()); + } catch (Exception e) { + e.printStackTrace(); + } + + 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(); + } } }); - UserInviteMQMsg msg = new UserInviteMQMsg(bossId, workerId, null, new Date(), UserInviteMQMsg.STATE_SUCCESS); - Message message = MQMsgBodyFactory.create(MQTopicName.TOPIC_USER, UserTopicTagEnum.inviteSuccess, - msg); - producer.send(message); } /** @@ -646,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); } @@ -653,6 +605,26 @@ @Override public List<ThreeSale> listFirstTeam(long start, int count, Long uid, Integer state) { return threeSaleMapper.listFirstTeam(start, count, uid, state); + } + + @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 @@ -669,4 +641,80 @@ 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