From b59fef5c00b15fdfdfa9d4be26e5bf6b41c75458 Mon Sep 17 00:00:00 2001 From: admin <2780501319@qq.com> Date: 星期日, 23 二月 2020 00:16:52 +0800 Subject: [PATCH] 2.0.7相关服务端功能添加 --- fanli/src/main/java/com/yeshi/fanli/service/impl/user/vip/UserVIPInfoServiceImpl.java | 130 +++++++++++++++++++++--------------------- 1 files changed, 65 insertions(+), 65 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/user/vip/UserVIPInfoServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/user/vip/UserVIPInfoServiceImpl.java index 0a913a1..c1dcae6 100644 --- a/fanli/src/main/java/com/yeshi/fanli/service/impl/user/vip/UserVIPInfoServiceImpl.java +++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/user/vip/UserVIPInfoServiceImpl.java @@ -49,42 +49,41 @@ @Resource private UserVIPInfoMapper userVIPInfoMapper; - + @Resource private UserInfoService userInfoService; - + @Resource private UserInfoExtraService userInfoExtraService; - + @Resource private UserVipConfigService userVipConfigService; - + @Lazy @Resource private HongBaoV2CountService hongBaoV2CountService; - + @Resource private IntegralDetailService integralDetailService; - + @Resource private BanLiShopOrderService banLiShopOrderService; - + @Resource private UserOtherMsgNotificationService userOtherMsgNotificationService; - + @Resource private ThreeSaleSerivce threeSaleSerivce; - + @Resource private UserInviteSeparateService userInviteSeparateService; - + @Resource private ConfigService configService; - + @Lazy @Resource private UserSystemCouponService userSystemCouponService; - @Override @Transactional(rollbackFor = Exception.class) @@ -112,25 +111,25 @@ if (userVIPInfo.getState() != UserVIPInfo.STATE_VERIFING) { throw new UserVIPInfoException(2, "鐢宠鏈浜庡鏍哥姸鎬�"); } - + if (!verifyConform(uid)) throw new UserVIPInfoException(1, "绯荤粺楠岃瘉锛氫笉婊¤冻鍗囩骇鏉′欢"); - + UserVIPInfo info = new UserVIPInfo(); info.setId(userVIPInfo.getId()); info.setSuccessTime(new Date()); info.setState(UserVIPInfo.STATE_SUCCESS); info.setUpdateTime(new Date()); userVIPInfoMapper.updateByPrimaryKeySelective(info); - + // 涓嬬骇鐨勮秴绾т細鍛� 涓嶈劚绂� userInviteSeparateService.updateInvalidByBossId(uid); - + // 棰濆淇℃伅 UserInfoExtra userInfoExtra = userInfoExtraService.getByUidForUpdate(uid); if (userInfoExtra == null) throw new UserVIPInfoException(1, "鐢ㄦ埛淇℃伅涓嶅瓨鍦�"); - + // 娣诲姞閲戝竵 IntegralDetail detail = new IntegralDetail(); detail.setTitle("鍗囩骇VIP绂忓埄"); @@ -140,54 +139,55 @@ detail.setUniqueKey("VIP-" + uid); integralDetailService.insertSelective(detail); userInfoExtraService.addGoldCoinByUid(uid, Constant.VIP_COLDCOIN_NUM); - + try { // 濂栧姳鍒� BigDecimal percent = new BigDecimal(configService.get(ConfigKeyEnum.exchangeRebatePercent.getKey())); for (int i = 0; i < Constant.VIP_COUPON_REWARD_NUM; i++) { - userSystemCouponService.insertUserCoupon(uid, CouponTypeEnum.rebatePercentCoupon.name(), + userSystemCouponService.insertUserCoupon(uid, CouponTypeEnum.rebatePercentCoupon.name(), UserSystemCoupon.SOURCE_SYSTEM_PUSH, percent, false); } - + // 璧犻�佸厤鍗曞埜 for (int i = 0; i < Constant.VIP_COUPON_GIVEFREE_NUM; i++) { - userSystemCouponService.insertUserCoupon(uid, CouponTypeEnum.freeCouponGive.name(), + userSystemCouponService.insertUserCoupon(uid, CouponTypeEnum.freeCouponGive.name(), UserSystemCoupon.SOURCE_SYSTEM_PUSH, null, false); } } catch (Exception e) { throw new UserVIPInfoException(1, "鍒歌禒閫佸け璐�"); } - + // 娑堟伅 MsgOtherVIPDTO msgOther = new MsgOtherVIPDTO(); msgOther.setContent1("鎭枩浣狅紝宸叉垚涓鸿秴绾т細鍛�"); msgOther.setContent2("婊¤冻鍗囩骇鏉′欢"); msgOther.setContent3(TimeUtil.formatDateDot(new Date())); userOtherMsgNotificationService.passVIPApplyMsg(uid, "杩斿埄濂栧姳鍒稿拰銆佽禒閫佸厤鍗曞埜鍜岄噾甯佽鍒版垜鐨�-绂忓埄涓績涓煡鐪�", msgOther); - + // 閫氱煡涓婄骇 callBoss(uid); } /** * 閫氱煡涓婄骇鑴辩鍏崇郴 + * * @param uid */ @Transactional private void callBoss(Long uid) { // 鏄惁瀛樺湪涓婄骇 ThreeSale threeSale = threeSaleSerivce.getMyBoss(uid); - if (threeSale == null) + if (threeSale == null) return; // 涓婄骇鏄惁涓轰細鍛� Long bossId = threeSale.getBoss().getId(); UserVIPInfo bossVIP = userVIPInfoMapper.selectByPrimaryKeyForUpdate(bossId); if (bossVIP != null && bossVIP.getState() != null && bossVIP.getState() == UserVIPInfo.STATE_SUCCESS) return; - + // 涔嬪墠鎻掑叆璁板綍澶辨晥 userInviteSeparateService.updateStateByWorkerIdAndBossId(uid, bossId, UserInviteSeparate.STATE_INVALID); - + // 闄愬埗鏃堕棿 int limitDays = Integer.parseInt(configService.get(ConfigKeyEnum.inviteSeparateLimitDays.getKey())); UserInviteSeparate inviteSeparate = new UserInviteSeparate(); @@ -198,16 +198,16 @@ inviteSeparate.setCreateTime(new Date()); inviteSeparate.setUpdateTime(new Date()); userInviteSeparateService.insertSelective(inviteSeparate); - + UserInfo userInfo = userInfoService.selectByPKey(uid); // 娑堟伅 MsgOtherVIPDTO msgboss = new MsgOtherVIPDTO(); - msgboss.setContent1(userInfo.getNickName() +" "+ uid); + msgboss.setContent1(userInfo.getNickName() + " " + uid); msgboss.setContent2("浜�" + TimeUtil.formatDateDot(new Date()) + "鎴愬姛鍗囩骇鎴愪负瓒呯骇浼氬憳"); - msgboss.setContent3("浠婃棩璧�"+limitDays+"澶╁唴锛屼綘鏈兘鎴愪负瓒呯骇浼氬憳灏嗕細涓庡叾鑴辩閭�璇峰叧绯� "); + msgboss.setContent3("浠婃棩璧�" + limitDays + "澶╁唴锛屼綘鏈兘鎴愪负瓒呯骇浼氬憳灏嗕細涓庡叾鑴辩閭�璇峰叧绯� "); userOtherMsgNotificationService.teamVIPCallBoss(bossId, "濡傛湁鐤戦棶璇疯仈绯绘垜鐨�-浜哄伐瀹㈡湇", msgboss); } - + @Transactional(rollbackFor = Exception.class) @Override public void rejectVIPApply(Long uid, String reason) throws UserVIPInfoException { @@ -224,7 +224,7 @@ info.setState(UserVIPInfo.STATE_INVALID); info.setUpdateTime(new Date()); userVIPInfoMapper.updateByPrimaryKeySelective(info); - + // 娑堟伅 MsgOtherVIPDTO msgOther = new MsgOtherVIPDTO(); msgOther.setContent1("寰堟姳姝夛紝鏈�氳繃瓒呯骇浼氬憳鐢宠"); @@ -288,20 +288,19 @@ return map; } - @Override public boolean verifyConform(Long uid) { if (uid == null || uid <= 0) return false; - + UserInfoExtra extra = userInfoExtraService.getUserInfoExtra(uid); - if (extra == null) + if (extra == null) return false; - + // 1銆佺洿鎺ョ矇涓濓紙浠� 2020 骞� 1 鏈� 1 鏃ヨ捣鐩存帴绮変笣浜х敓鏈夋晥璁㈠崟锛� BigDecimal payMoney = new BigDecimal(userVipConfigService.getValueByKey("require_order_pay")); - long teamNum = hongBaoV2CountService.countValidOrderTeamUserByUid(uid, TimeUtil.convertDateToTemp(Constant.VIP_ONLINE_TIME), payMoney); - + long teamNum = hongBaoV2CountService.countValidOrderTeamUserByUid(uid, + TimeUtil.convertDateToTemp(Constant.VIP_ONLINE_TIME), payMoney); // 鍖哄垎鑰佺敤鎴峰拰鏂扮敤鎴� String limtDate = userVipConfigService.getValueByKey("vip_execute_time"); @@ -314,7 +313,7 @@ } if (executeDate == null) return false; - + if (extra.getFirstLoginTime() == null || extra.getFirstLoginTime().getTime() < executeDate.getTime()) { long limitNum = Long.parseLong(userVipConfigService.getValueByKey("require_invite_num_old_user")); if (teamNum < limitNum) @@ -324,19 +323,19 @@ if (teamNum < limitNum) return false; } - + // 2銆佺疮璁¤嚜璐繑鍒┾墺100 鍏冿紙浠庢敞鍐屾澘鏍楀揩鐪佽捣锛夛紱 BigDecimal fanMoney = new BigDecimal(userVipConfigService.getValueByKey("require_fan_money")); BigDecimal purchase = hongBaoV2CountService.getRewardMoneyBySelf(uid); if (purchase.compareTo(fanMoney) < 0) return false; - + // 3銆佺疮璁¢噾甯佲墺10000 鏋氾紙浠庢敞鍐屾澘鏍楀揩鐪佽捣锛夛紱 BigDecimal goldCoin = integralDetailService.getCumulativeMoney(uid); BigDecimal limitGoldCoin = new BigDecimal(userVipConfigService.getValueByKey("require_gold_coin")); if (goldCoin.compareTo(limitGoldCoin) < 0) return false; - + // 4銆佷娇鐢ㄧ孩鍖呪墺1 娆� List<Integer> list = new ArrayList<Integer>(); list.add(BanLiShopOrder.STATE_SUCCESS); @@ -344,73 +343,74 @@ long limitHongBao = Long.parseLong(userVipConfigService.getValueByKey("require_shop_buy")); if (useHongBao < limitHongBao) return false; - + // 绗﹀悎鏉′欢 return true; } - - + @Override - public List<UserVIPInfo> listQuery(int page, int count, String key, Integer state){ - return userVIPInfoMapper.listQuery((page-1) * count, count, key, state); + public List<UserVIPInfo> listQuery(int page, int count, String key, Integer state) { + return userVIPInfoMapper.listQuery((page - 1) * count, count, key, state); } - + @Override - public long countQuery(String key, Integer state){ + public long countQuery(String key, Integer state) { return userVIPInfoMapper.countQuery(key, state); } - - + @Override @Transactional(rollbackFor = Exception.class) public void inviteSeparate(Long workerId, Long bossId) { if (workerId == null || bossId == null) return; - + // 鏌ヨ璁板綍 UserInviteSeparate userInviteSeparate = userInviteSeparateService.selectByWorkerIdAndBossId(workerId, bossId); if (userInviteSeparate == null) return; - + // 鏄惁瀛樺湪閭�璇峰叧绯� ThreeSale threeSale = threeSaleSerivce.getMyBoss(workerId); - if (threeSale == null) + if (threeSale == null) return; Long bossIdExist = threeSale.getBoss().getId(); if (bossIdExist == null || bossId.longValue() != bossIdExist.longValue()) return; - + // 涓婄骇浼氬憳鎯呭喌 boolean separate = false; UserVIPInfo userVIPInfo = userVIPInfoMapper.selectByPrimaryKey(bossId); - if (userVIPInfo != null && userVIPInfo.getState() != null && userVIPInfo.getState() == UserVIPInfo.STATE_SUCCESS) { + if (userVIPInfo != null && userVIPInfo.getState() != null + && userVIPInfo.getState() == UserVIPInfo.STATE_SUCCESS) { if (userInviteSeparate.getEndTime().getTime() < userVIPInfo.getSuccessTime().getTime()) { separate = true; // 缁撴潫鏃堕棿宸茬粡瓒呰繃 } } else { - separate = true; // 涓婄骇闈炰細鍛� + separate = true; // 涓婄骇闈炰細鍛� } - + if (!separate) { // 鏈劚绂� - userInviteSeparateService.updateStateByWorkerIdAndBossId(workerId, bossId, UserInviteSeparate.STATE_INVALID); + userInviteSeparateService.updateStateByWorkerIdAndBossId(workerId, bossId, + UserInviteSeparate.STATE_INVALID); } else { // 鑴辩鍏崇郴 - userInviteSeparateService.updateStateByWorkerIdAndBossId(workerId, bossId, UserInviteSeparate.STATE_SUCCESS); - + userInviteSeparateService.updateStateByWorkerIdAndBossId(workerId, bossId, + UserInviteSeparate.STATE_SUCCESS); + // 鑴辩閭�璇峰叧绯� threeSaleSerivce.inviteSeparate(workerId, bossId); - + int limitDays = Integer.parseInt(configService.get(ConfigKeyEnum.inviteSeparateLimitDays.getKey())); // 娑堟伅 UserInfo userInfo = userInfoService.selectByPKey(workerId); MsgOtherVIPDTO msgboss = new MsgOtherVIPDTO(); - msgboss.setContent1(userInfo.getNickName() + workerId + "浜�" +TimeUtil.formatDateDot(userInviteSeparate.getCreateTime())+"鎴愬姛鍗囩骇鎴愪负瓒呯骇浼氬憳 "); - msgboss.setContent2("寰堥仐鎲撅紝浣犳湭鑳藉湪"+limitDays+"澶╁崌绾т负瓒呯骇浼氬憳 "); + msgboss.setContent1(userInfo.getNickName() + workerId + "浜�" + + TimeUtil.formatDateDot(userInviteSeparate.getCreateTime()) + "鎴愬姛鍗囩骇鎴愪负瓒呯骇浼氬憳 "); + msgboss.setContent2("寰堥仐鎲撅紝浣犳湭鑳藉湪" + limitDays + "澶╁崌绾т负瓒呯骇浼氬憳 "); msgboss.setContent3("宸蹭笌鍏惰劚绂婚個璇峰叧绯�"); userOtherMsgNotificationService.teamSplitCallBoss(bossId, "濡傛湁鐤戦棶璇疯仈绯绘垜鐨�-浜哄伐瀹㈡湇", msgboss); } } - - + } -- Gitblit v1.8.0