From 69bee82b81626b82b7f39f0e459e4f56b1699b51 Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期三, 13 三月 2019 12:02:16 +0800 Subject: [PATCH] 正式数据库修改 --- fanli/src/main/java/com/yeshi/fanli/service/impl/hongbao/ThreeSaleSerivceImpl.java | 182 ++++++++++++++++++++++++++++++++++----------- 1 files changed, 137 insertions(+), 45 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/hongbao/ThreeSaleSerivceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/hongbao/ThreeSaleSerivceImpl.java index 17f0b0f..a2eefb0 100644 --- a/fanli/src/main/java/com/yeshi/fanli/service/impl/hongbao/ThreeSaleSerivceImpl.java +++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/hongbao/ThreeSaleSerivceImpl.java @@ -10,9 +10,6 @@ import javax.annotation.Resource; -import net.sf.json.JSONArray; -import net.sf.json.JSONObject; - import org.hibernate.HibernateException; import org.hibernate.Query; import org.hibernate.SQLQuery; @@ -32,10 +29,15 @@ import com.yeshi.fanli.service.inter.config.InviteGetMoneyService; import com.yeshi.fanli.service.inter.hongbao.HongBaoManageService; import com.yeshi.fanli.service.inter.hongbao.ThreeSaleSerivce; +import com.yeshi.fanli.service.inter.msg.MsgInviteDetailService; import com.yeshi.fanli.service.inter.msg.UserInviteMsgNotificationService; import com.yeshi.fanli.service.inter.user.UserInfoService; import com.yeshi.fanli.util.Constant; import com.yeshi.fanli.util.StringUtil; +import com.yeshi.fanli.util.ThreeSaleCMQManager; + +import net.sf.json.JSONArray; +import net.sf.json.JSONObject; @Service public class ThreeSaleSerivceImpl implements ThreeSaleSerivce { @@ -57,9 +59,12 @@ @Resource private ThreeSaleMapper threeSaleMapper; - + @Resource private UserInviteMsgNotificationService userInviteMsgNotificationService; + + @Resource + private MsgInviteDetailService msgInviteDetailService; public UserInfo getBoss(final long uid) { return (UserInfo) dao.excute(new HibernateCallback<UserInfo>() { @@ -94,13 +99,14 @@ } @Transactional - public void bind(UserInfo invitee, UserInfo inviter) throws ThreeSaleException { - if (invitee == null || inviter == null) + public void bind(UserInfo worker, UserInfo inviter) throws ThreeSaleException { + if (worker == null || inviter == null) throw new ThreeSaleException(1, "鐢ㄦ埛淇℃伅涓虹┖"); - if (invitee.getId() == null)// 璇ョ敤鎴疯繕涓嶅瓨鍦� + + if (worker.getId() == null)// 璇ョ敤鎴疯繕涓嶅瓨鍦� { // 淇濆瓨鐢ㄦ埛 - UserInfo inviteeUser = userInfoService.addUser(invitee, Constant.APPID); + UserInfo inviteeUser = userInfoService.addUser(worker, Constant.APPID); if (inviteeUser == null) throw new ThreeSaleException(2, "鍒涘缓鐢ㄦ埛澶辫触"); // 淇濆瓨鍏崇郴 @@ -112,22 +118,32 @@ threeSale.setUpdateTime(java.lang.System.currentTimeMillis()); threeSale.setWorker(inviteeUser); threeSaleMapper.insertSelective(threeSale); - - // 鍒犻櫎宸插け鏁堝叧绯� - threeSaleMapper.deleteExpireRecord(inviter.getId(), inviteeUser.getId()); - - //鍒涘缓閫氱煡 + + List<ThreeSale> listExpire = threeSaleMapper.getExpireRecord(inviter.getId(), inviteeUser.getId()); + if (listExpire != null && listExpire.size() > 0) { + // 鍒犻櫎澶辨晥 + for (ThreeSale saleExpire : listExpire) { + msgInviteDetailService.deleteByThreeSale(saleExpire); + } + // 鍒犻櫎宸插け鏁堝叧绯� + threeSaleMapper.deleteExpireRecord(inviter.getId(), inviteeUser.getId()); + } + + // 鍒涘缓閫氱煡 userInviteMsgNotificationService.inviteScan(inviter.getId(), threeSale); - - + } else {// 鏄凡缁忓瓨鍦ㄧ殑鐢ㄦ埛 + if (worker.getId().longValue() == inviter.getId()) + throw new ThreeSaleException(4, "涓嶈兘缁戝畾鑷繁"); + + worker = userInfoService.selectByPKey(worker.getId()); // 鐢ㄦ埛宸茬粡瀛樺湪鎴戜滑鐨勭敤鎴峰簱涓� - if (invitee.getLastLoginTime() == null || invitee.getLastLoginTime() == 0L) { + if (worker.getLastLoginTime() == null || worker.getLastLoginTime() == 0L) { // 鐢ㄦ埛鏈櫥褰� int outOfDateCount = 0;// 杩囨湡鏁伴噺 // 鏌ヨ閭�璇峰叧绯� - List<ThreeSale> list = listByWorkerId(invitee.getId()); + List<ThreeSale> list = listByWorkerId(worker.getId()); if (list != null && list.size() > 0) { for (ThreeSale ts : list) { if (!ts.getState() && ts.getExpire() == ThreeSale.EXPIRE_OUTOFDATE) { @@ -143,12 +159,22 @@ threeSale.setExpire(ThreeSale.EXPIRE_NORMAL); threeSale.setState(false); threeSale.setUpdateTime(java.lang.System.currentTimeMillis()); - threeSale.setWorker(invitee); + threeSale.setWorker(worker); threeSaleMapper.insertSelective(threeSale); - + // 鍒犻櫎宸插け鏁堝叧绯� - threeSaleMapper.deleteExpireRecord(inviter.getId(), invitee.getId()); - + threeSaleMapper.deleteExpireRecord(inviter.getId(), worker.getId()); + + List<ThreeSale> listExpire = threeSaleMapper.getExpireRecord(inviter.getId(), worker.getId()); + if (listExpire != null && listExpire.size() > 0) { + // 鍒犻櫎鍘嗗彶閫氱煡 + for (ThreeSale saleExpire : listExpire) { + msgInviteDetailService.deleteByThreeSale(saleExpire); + } + // 鍒犻櫎宸插け鏁堝叧绯� + threeSaleMapper.deleteExpireRecord(inviter.getId(), worker.getId()); + } + userInviteMsgNotificationService.inviteScan(inviter.getId(), threeSale); // threeSaleSerivce.bind(invitee, inviter); @@ -159,27 +185,77 @@ // 鐢ㄦ埛鏈櫥褰�,鍙堜笉瀛樺湪閭�璇峰叧绯�,涓嶅仛澶勭悊 } } else { - // 宸茬粡鐧诲綍锛屼笉鍋氬鐞� + // 宸茬粡鐧诲綍锛岃�屼笖娌℃湁涓婁笅绾у叧绯绘垨鑰呬笂涓嬬骇鍏崇郴鏈敓鏁堬紝鍒欑粦瀹氬叧绯� + List<ThreeSale> list = threeSaleMapper.listByWorkerId(worker.getId()); + // 鍒犻櫎鏃犳晥鐨� + 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.remove(i); + i--; + } + } + // 鏌ヨ涓婄骇鏄惁鏈夊拰鐜板湪涓婄骇涓�鏍风殑 + if (list == null || list.size() == 0)// 灏氭湭纭珛鍏崇郴锛屽缓绔嬪叧绯� + { + ThreeSale ts = new ThreeSale(); + ts.setBoss(inviter); + ts.setCreateTime(System.currentTimeMillis()); + ts.setExpire(ThreeSale.EXPIRE_NORMAL); + ts.setState(true); + 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()) {// 鏈敓鏁堢殑涓婄骇鍜岀幇鍦ㄤ笂绾т竴鏍峰氨鐢熸晥 + ThreeSale update = new ThreeSale(list.get(0).getId()); + update.setState(true); + update.setSucceedTime(System.currentTimeMillis()); + threeSaleMapper.updateByPrimaryKeySelective(update); + ThreeSaleCMQManager.getInstance().addThreeSaleMsg(list.get(0));// 娣诲姞閫氱煡 + userInviteMsgNotificationService.inviteSuccess(inviter.getId(), list.get(0)); + } + } } } } @Transactional - public void effective(UserInfo invitee) { - List<ThreeSale> list = dao.list("from ThreeSale ts where ts.worker.id = ? and ts.state=0 and ts.expire=0", - new Serializable[] { invitee.getId() }); + public void effective(UserInfo worker) { + List<ThreeSale> list = threeSaleMapper.listByWorkerId(worker.getId()); + 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_NORMAL) { + ; + } else { + list.remove(i); + i--; + } + } if (list.size() > 0) { - ThreeSale threeSale = list.get(0); - UserInfo inviter = threeSale.getBoss(); - threeSale.setState(true); - threeSale.setSucceedTime(System.currentTimeMillis()); - dao.update(threeSale); - if (inviter != null) - reComputeUserRank(inviter.getId()); - //閫氱煡 - userInviteMsgNotificationService.inviteSuccess(inviter.getId(), threeSale); - // } - // }); + ThreeSale oldSale = list.get(0); + + ThreeSale update = new ThreeSale(list.get(0).getId()); + update.setState(true); + update.setSucceedTime(System.currentTimeMillis()); + threeSaleMapper.updateByPrimaryKeySelective(update); + + 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); } } @@ -595,8 +671,7 @@ public List<ThreeSale> listByWorkerId(Long workerId) { return threeSaleMapper.listByWorkerId(workerId); } - - + @Override public int getSuccessRelationshipNum(Long uid) { return threeSaleMapper.getSuccessRelationshipNum(uid); @@ -605,14 +680,13 @@ @Override @Transactional 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 = threeSaleMapper.getRelationshipByBossIdAndWorkerId(inviter.getId(), invitee.getId()); + if (threeSale != null) { // 鏈夋晥鍏崇郴--鐢熸晥 threeSale.setState(true); @@ -631,11 +705,29 @@ 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); } - + + @Override + public long countSuccessFirstTeam(Long uid) { + return threeSaleMapper.countFirstTeam(uid, 1); + } + } -- Gitblit v1.8.0