From f54093a69938aca18ca6ba005e17afe5ee5bbfe6 Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期二, 24 九月 2019 16:40:35 +0800 Subject: [PATCH] oppo推送绑定 --- fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserSystemCouponServiceImpl.java | 314 +++++++++++++++++++++++++++++----------------------- 1 files changed, 175 insertions(+), 139 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserSystemCouponServiceImpl.java b/fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserSystemCouponServiceImpl.java index d8024a5..acd520b 100644 --- a/fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserSystemCouponServiceImpl.java +++ b/fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserSystemCouponServiceImpl.java @@ -10,7 +10,9 @@ import javax.annotation.Resource; +import org.springframework.context.annotation.Lazy; import org.springframework.core.task.TaskExecutor; +import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.yeshi.utils.DateUtil; @@ -19,7 +21,6 @@ import com.yeshi.fanli.dto.msg.MsgOtherCouponActivateDTO; import com.yeshi.fanli.dto.msg.MsgOtherGiveContentDTO; import com.yeshi.fanli.entity.bus.msg.MsgOtherDetail.MsgTypeOtherTypeEnum; -import com.yeshi.fanli.entity.bus.user.DeviceLotteryRecord; import com.yeshi.fanli.entity.bus.user.HongBaoV2; import com.yeshi.fanli.entity.bus.user.Order; import com.yeshi.fanli.entity.bus.user.TokenRecord; @@ -41,25 +42,24 @@ import com.yeshi.fanli.service.inter.common.JumpDetailV2Service; import com.yeshi.fanli.service.inter.config.ConfigService; import com.yeshi.fanli.service.inter.config.SystemCouponService; -import com.yeshi.fanli.service.inter.hongbao.HongBaoV2Service; -import com.yeshi.fanli.service.inter.hongbao.ThreeSaleSerivce; -import com.yeshi.fanli.service.inter.msg.UserMoneyMsgNotificationService; +import com.yeshi.fanli.service.inter.money.UserMoneyDetailService; +import com.yeshi.fanli.service.inter.money.msg.UserMoneyMsgNotificationService; import com.yeshi.fanli.service.inter.msg.UserOtherMsgNotificationService; import com.yeshi.fanli.service.inter.order.CommonOrderCountService; import com.yeshi.fanli.service.inter.order.CommonOrderService; import com.yeshi.fanli.service.inter.order.HongBaoOrderService; +import com.yeshi.fanli.service.inter.order.HongBaoV2Service; import com.yeshi.fanli.service.inter.order.OrderHongBaoMapService; import com.yeshi.fanli.service.inter.order.OrderService; import com.yeshi.fanli.service.inter.push.PushCouponRecordService; import com.yeshi.fanli.service.inter.push.PushCouponService; -import com.yeshi.fanli.service.inter.user.DeviceLotteryRecordService; import com.yeshi.fanli.service.inter.user.TokenRecordService; import com.yeshi.fanli.service.inter.user.UserInfoExtraService; import com.yeshi.fanli.service.inter.user.UserInfoService; -import com.yeshi.fanli.service.inter.user.UserMoneyDetailService; import com.yeshi.fanli.service.inter.user.UserSystemCouponGiveRecordService; import com.yeshi.fanli.service.inter.user.UserSystemCouponRecordService; import com.yeshi.fanli.service.inter.user.UserSystemCouponService; +import com.yeshi.fanli.service.inter.user.invite.ThreeSaleSerivce; import com.yeshi.fanli.util.Constant; import com.yeshi.fanli.util.MoneyBigDecimalUtil; import com.yeshi.fanli.util.RedisManager; @@ -105,6 +105,7 @@ private UserSystemCouponRecordService userSystemCouponRecordService; @Resource + @Lazy private HongBaoV2Service hongBaoV2Service; @Resource @@ -135,12 +136,10 @@ private UserOtherMsgNotificationService userOtherMsgNotificationService; @Resource - private DeviceLotteryRecordService deviceLotteryRecordService; - - @Resource private CommonOrderCountService commonOrderCountService; @Resource + @Lazy private PushCouponService pushCouponService; @Resource @@ -245,7 +244,10 @@ // 缁撴潫鏃ユ湡 // 浠婂ぉ鍦ㄥ唴 鍑忓幓涓�澶� String endDay = DateUtil.plusDay(expiryDay - 1, new Date()); - SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + if (endDay != null && endDay.trim().length() > 0) { + endDay += " 23:59:59"; + } Date endTime = format.parse(endDay); UserSystemCoupon userCoupon = new UserSystemCoupon(); @@ -645,7 +647,44 @@ return list; } + + @Override + public long countUsableFreeCouponForBuy (Long uid) { + if (uid == null) + return 0; + + List<SystemCoupon> couponList = systemCouponService.getGoodsCouponList(); + if (couponList == null || couponList.size() == 0) + return 0; + + List<Long> listCouponId = new ArrayList<Long>(); + for (SystemCoupon systemCoupon : couponList) { + listCouponId.add(systemCoupon.getId()); + } + + return userSystemCouponMapper.countUsableByUid(uid, listCouponId); + } + + + @Override + public long countUsableRewardCoupon (Long uid) { + if (uid == null) + return 0; + + List<SystemCoupon> couponList = systemCouponService.getOrderCouponList(); + if (couponList == null || couponList.size() == 0) + return 0; + + List<Long> listCouponId = new ArrayList<Long>(); + for (SystemCoupon systemCoupon : couponList) { + listCouponId.add(systemCoupon.getId()); + } + + return userSystemCouponMapper.countUsableByUid(uid, listCouponId); + } + + @Transactional @Override public void useGoodsCoupon(Long uid, Long id, Long goodId, Integer sourceType) throws UserSystemCouponException, Exception { @@ -1321,110 +1360,78 @@ @Transactional public void copyLotteryPrize(Long uid, int platform, String device) throws Exception { - if (uid == null || device == null) { - return; - } - - // 鏈櫥闄嗕箣鍓嶆娊濂栬褰� - List<DeviceLotteryRecord> list = deviceLotteryRecordService.listByPlatformAndDevice(platform, device); - if (list == null || list.size() == 0) { - return; - } - - // 鑾峰彇棰濆淇℃伅 - UserInfoExtra userInfoExtra = userInfoExtraService.getUserInfoExtra(uid); - - // 宸茬粡鎶借繃濂栫殑鎴栬�呭凡缁忚繘鍏ヨ繃鎶藉椤甸潰鐨� - if (userInfoExtra != null && userInfoExtra.getLotteryNewbies() != null) { - return; - } - - // 鏄惁鏄柊鐢ㄦ埛 - boolean isNewUser = userInfoExtraService.isNewUser(uid); - if (!isNewUser) { - return; - } - - int coupon = 0; - - for (DeviceLotteryRecord reviceLotteryRecord : list) { - - // 鍒犻櫎璁板綍 - deviceLotteryRecordService.deleteByPrimaryKey(reviceLotteryRecord.getId()); - - Long systemCouponId = reviceLotteryRecord.getSystemCouponId(); - if (systemCouponId == null) { - continue; - } - SystemCoupon systemCoupon = systemCouponService.selectByPrimaryKey(systemCouponId); - if (systemCoupon == null) { - continue; - } - - int stateActivated = 1; - if (systemCoupon.getType() == CouponTypeEnum.welfareFreeCoupon) { - // 绂忓埄鍒哥姸鎬� - long countSuccess = threeSaleSerivce.countSuccessFirstTeam(uid); - // 娌℃湁涓嬬骇闃熷憳 --寰呮縺娲� - if (countSuccess == 0) { - stateActivated = 0; - } - } - - // 缁撴潫鏃ユ湡 - // 浠婂ぉ鍦ㄥ唴 鍑忓幓涓�澶� - String endDay = DateUtil.plusDay(systemCoupon.getExpiryDay() - 1, new Date()); - SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); - Date endTime = format.parse(endDay); - - UserSystemCoupon userCoupon = new UserSystemCoupon(); - userCoupon.setUid(uid); - userCoupon.setSource(UserSystemCoupon.SOURCE_NEWBIES); - userCoupon.setSystemCoupon(systemCoupon); - userCoupon.setState(UserSystemCoupon.STATE_CAN_USE); - userCoupon.setStateActivated(stateActivated); - userCoupon.setStartTime(new Date()); - userCoupon.setEndTime(endTime); - userCoupon.setCreateTime(new Date()); - userCoupon.setUpdateTime(new Date()); - // 鎻掑叆鏁版嵁搴� - insertSelective(userCoupon); - - // 鍒告暟閲� - coupon++; - - // 娑堟伅鎺ㄩ�� - try { - if (systemCoupon.getType() == CouponTypeEnum.welfareFreeCoupon) { - userOtherMsgNotificationService.welfareCouponGet(userCoupon); - } else if (systemCoupon.getType() == CouponTypeEnum.freeCoupon) { - userOtherMsgNotificationService.freeSheetCouponGet(userCoupon); - } else if (systemCoupon.getType() == CouponTypeEnum.rebatePercentCoupon) { - userOtherMsgNotificationService.rewardCouponGet(userCoupon, systemCoupon.getPercent().intValue()); - } - - } catch (Exception e) { - try { - LogHelper.errorDetailInfo(e); - } catch (Exception e1) { - e1.printStackTrace(); - } - } - } - - if (userInfoExtra == null) { - userInfoExtra = new UserInfoExtra(); - userInfoExtra.setUserInfo(new UserInfo(uid)); - } - - userInfoExtra.setLotteryNewbies(Constant.MAX_COUNT_LOTTERY_NEWBIES - list.size()); - Integer couponNews = userInfoExtra.getCouponNews(); - if (couponNews == null) { - userInfoExtra.setCouponNews(coupon); - } else { - userInfoExtra.setCouponNews(couponNews + coupon); - } - userInfoExtraService.saveUserInfoExtra(userInfoExtra); + return; + + /* + * if (uid == null || device == null) { return; } + * + * // 鏈櫥闄嗕箣鍓嶆娊濂栬褰� List<DeviceLotteryRecord> list = + * deviceLotteryRecordService.listByPlatformAndDevice(platform, device); if + * (list == null || list.size() == 0) { return; } + * + * // 鑾峰彇棰濆淇℃伅 UserInfoExtra userInfoExtra = + * userInfoExtraService.getUserInfoExtra(uid); + * + * // 宸茬粡鎶借繃濂栫殑鎴栬�呭凡缁忚繘鍏ヨ繃鎶藉椤甸潰鐨� if (userInfoExtra != null && + * userInfoExtra.getLotteryNewbies() != null) { return; } + * + * // 鏄惁鏄柊鐢ㄦ埛 boolean isNewUser = userInfoExtraService.isNewUser(uid); if + * (!isNewUser) { return; } + * + * int coupon = 0; + * + * for (DeviceLotteryRecord reviceLotteryRecord : list) { + * + * // 鍒犻櫎璁板綍 + * deviceLotteryRecordService.deleteByPrimaryKey(reviceLotteryRecord.getId()); + * + * Long systemCouponId = reviceLotteryRecord.getSystemCouponId(); if + * (systemCouponId == null) { continue; } SystemCoupon systemCoupon = + * systemCouponService.selectByPrimaryKey(systemCouponId); if (systemCoupon == + * null) { continue; } + * + * int stateActivated = 1; if (systemCoupon.getType() == + * CouponTypeEnum.welfareFreeCoupon) { // 绂忓埄鍒哥姸鎬� long countSuccess = + * threeSaleSerivce.countSuccessFirstTeam(uid); // 娌℃湁涓嬬骇闃熷憳 --寰呮縺娲� if (countSuccess + * == 0) { stateActivated = 0; } } + * + * // 缁撴潫鏃ユ湡 // 浠婂ぉ鍦ㄥ唴 鍑忓幓涓�澶� String endDay = + * DateUtil.plusDay(systemCoupon.getExpiryDay() - 1, new Date()); + * SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); if + * (endDay != null && endDay.trim().length() > 0) { endDay += " 23:59:59"; } + * Date endTime = format.parse(endDay); + * + * UserSystemCoupon userCoupon = new UserSystemCoupon(); userCoupon.setUid(uid); + * userCoupon.setSource(UserSystemCoupon.SOURCE_NEWBIES); + * userCoupon.setSystemCoupon(systemCoupon); + * userCoupon.setState(UserSystemCoupon.STATE_CAN_USE); + * userCoupon.setStateActivated(stateActivated); userCoupon.setStartTime(new + * Date()); userCoupon.setEndTime(endTime); userCoupon.setCreateTime(new + * Date()); userCoupon.setUpdateTime(new Date()); // 鎻掑叆鏁版嵁搴� + * insertSelective(userCoupon); + * + * // 鍒告暟閲� coupon++; + * + * // 娑堟伅鎺ㄩ�� try { if (systemCoupon.getType() == CouponTypeEnum.welfareFreeCoupon) + * { userOtherMsgNotificationService.welfareCouponGet(userCoupon); } else if + * (systemCoupon.getType() == CouponTypeEnum.freeCoupon) { + * userOtherMsgNotificationService.freeSheetCouponGet(userCoupon); } else if + * (systemCoupon.getType() == CouponTypeEnum.rebatePercentCoupon) { + * userOtherMsgNotificationService.rewardCouponGet(userCoupon, + * systemCoupon.getPercent().intValue()); } + * + * } catch (Exception e) { try { LogHelper.errorDetailInfo(e); } catch + * (Exception e1) { e1.printStackTrace(); } } } + * + * if (userInfoExtra == null) { userInfoExtra = new UserInfoExtra(); + * userInfoExtra.setUserInfo(new UserInfo(uid)); } + * + * userInfoExtra.setLotteryNewbies(Constant.MAX_COUNT_LOTTERY_NEWBIES - + * list.size()); Integer couponNews = userInfoExtra.getCouponNews(); if + * (couponNews == null) { userInfoExtra.setCouponNews(coupon); } else { + * userInfoExtra.setCouponNews(couponNews + coupon); } + * userInfoExtraService.saveUserInfoExtra(userInfoExtra); + */ } @@ -1449,7 +1456,10 @@ // 缁撴潫鏃ユ湡 浠婂ぉ鍦ㄥ唴 鍑忓幓涓�澶� String endDay = DateUtil.plusDay(systemCoupon.getExpiryDay() - 1, new Date()); - SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + if (endDay != null && endDay.trim().length() > 0) { + endDay += " 23:59:59"; + } Date endTime = format.parse(endDay); UserSystemCoupon userCoupon = new UserSystemCoupon(); @@ -1586,7 +1596,10 @@ // 璁$畻缁撴潫鏃ユ湡锛氫粖澶╁湪鍐� 鍑忓幓涓�澶� String endDay = DateUtil.plusDay(expiryDay - 1, new Date()); - SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + if (endDay != null && endDay.trim().length() > 0) { + endDay += " 23:59:59"; + } Date endTime = format.parse(endDay); UserSystemCoupon userCoupon = new UserSystemCoupon(); @@ -1754,9 +1767,12 @@ // 鍙娇鐢ㄣ�� 鍙禒閫� userCouponVO.setState(UserSystemCoupon.STATE_USE_GIVE); - // 杩斿埄濂栧姳鍒�- 璺宠浆鑷冲凡鍒拌处-宸叉敹璐� - jumpLink.put("state", "2"); - jumpLink.put("type", "1"); + // 璁㈠崟鍒楄〃 + jumpLink.put("state", "2"); // 宸叉敹璐� + jumpLink.put("showNav", false); // 涓嶆樉绀轰笂鏂圭粺璁′俊鎭� + jumpLink.put("type", "1"); // 杩斿埄璁㈠崟 + jumpLink.put("title", "杩斿埄璁㈠崟"); // 鏍囬鍚� + jumpLink.put("goodsType", "0"); // 璁㈠崟鏉ユ簮 jumpBtn = new HashMap<String, Object>(); jumpBtn.put("params", jumpLink); jumpBtn.put("jumpDetail", jumpDetailV2Service.getByTypeCache("order_screen_list")); @@ -1775,7 +1791,7 @@ if (CouponTypeEnum.rebatePercentCoupon == type) { userCouponVO.setState(UserSystemCoupon.STATE_GIVE_IN); - tips = configService.get("give_free_coupon_tips"); + tips = configService.get("give_rebate_percent_coupon_tips"); tokenType = TokenTypeEnum.rebatePercentCoupon; } @@ -2019,7 +2035,10 @@ try { Integer expiryDay = systemCoupon.getExpiryDay(); String endDay = DateUtil.plusDay(expiryDay - 1, nowDate); - SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + if (endDay != null && endDay.trim().length() > 0) { + endDay += " 23:59:59"; + } Date endTime = format.parse(endDay); UserSystemCoupon userCoupon = new UserSystemCoupon(); @@ -2145,16 +2164,10 @@ userSystemCoupon.setUseTime(null); userSystemCoupon.setState(UserSystemCoupon.STATE_CAN_USE); userSystemCoupon.setUpdateTime(new Date()); - userSystemCouponMapper.updateByPrimaryKey(userSystemCoupon); + userSystemCouponMapper.updateByPrimaryKeySelective(userSystemCoupon); // 浣跨敤璁板綍 if (record != null) { - UserSystemCouponRecord useRecordUpdate = new UserSystemCouponRecord(); - useRecordUpdate.setId(record.getId()); - useRecordUpdate.setState(UserSystemCouponRecord.STATE_WAIT_TIME_OUT); - useRecordUpdate.setUpdateTime(new Date()); - userSystemCouponRecordService.updateByPrimaryKeySelective(useRecordUpdate); - if (CouponTypeEnum.welfareFreeCoupon.name().equals(record.getCouponType())) { userOtherMsgNotificationService.welfareCouponDrawBack(userSystemCoupon, record.getOrderNo()); } else if (CouponTypeEnum.freeCoupon.name().equals(record.getCouponType())) { @@ -2166,27 +2179,44 @@ } + @Async() @Transactional @Override public void sendBackTimeOutCoupon(Long uid) { - // 瓒呰繃10鍒嗛挓 鏈鍖归厤鐨勫埜 - List<UserSystemCouponRecord> list = userSystemCouponRecordService.getCouponByUsingTimeOut(uid, 600L); - if (list == null || list.size() == 0) { + // 鍟嗗搧鐩稿叧鐨勫埜 + List<SystemCoupon> couponList = systemCouponService.getGoodsCouponList(); + if (couponList == null || couponList.size() == 0) { return; } - for (UserSystemCouponRecord couponRecord : list) { - // 鏇存柊鐘舵�侊細鍖归厤瓒呮椂 - couponRecord.setState(UserSystemCouponRecord.STATE_WAIT_TIME_OUT); - couponRecord.setUpdateTime(new Date()); - userSystemCouponRecordService.updateByPrimaryKeySelective(couponRecord); + List<Long> list = new ArrayList<Long>(); + for (SystemCoupon systemCoupon: couponList) { + list.add(systemCoupon.getId()); + } + + // 瓒呰繃10鍒嗛挓 鏈鍖归厤鐨勫厤鍗曞埜 + List<UserSystemCoupon> listUserCoupon = userSystemCouponMapper.getCouponByUsingTimeOut(uid, list, 600L); + if (listUserCoupon == null || listUserCoupon.size() == 0) { + return; + } + for (UserSystemCoupon userCoupon : listUserCoupon) { // 鐘舵�佸垵濮嬪寲 - UserSystemCoupon userSystemCoupon = couponRecord.getUserSystemCoupon(); + UserSystemCoupon userSystemCoupon = new UserSystemCoupon(); + userSystemCoupon.setId(userCoupon.getId()); userSystemCoupon.setState(UserSystemCoupon.STATE_CAN_USE); userSystemCoupon.setUseTime(null); userSystemCoupon.setUpdateTime(new Date()); - userSystemCouponMapper.updateByPrimaryKey(userSystemCoupon); + userSystemCouponMapper.updateByPrimaryKeySelective(userSystemCoupon); + + UserSystemCouponRecord record = userSystemCouponRecordService.getNearByUserCouponId(userCoupon.getId()); + if (record != null) { + UserSystemCouponRecord couponRecord = new UserSystemCouponRecord(); + couponRecord.setId(record.getId()); + couponRecord.setUpdateTime(new Date()); + couponRecord.setState(UserSystemCouponRecord.STATE_WAIT_TIME_OUT); + userSystemCouponRecordService.updateByPrimaryKeySelective(couponRecord); + } } } @@ -2241,7 +2271,7 @@ userSystemCoupon.setUseTime(null); userSystemCoupon.setState(UserSystemCoupon.STATE_CAN_USE); userSystemCoupon.setUpdateTime(new Date()); - userSystemCouponMapper.updateByPrimaryKey(userSystemCoupon); + userSystemCouponMapper.updateByPrimaryKeySelective(userSystemCoupon); // 浣跨敤璁板綍 UserSystemCouponRecord useRecord = userSystemCouponRecordService.getNearByUserCouponId(couponId); @@ -2387,4 +2417,10 @@ return listCoupon; } + + + @Override + public List<UserSystemCoupon> getFreeCouponByType(Long uid, String type) { + return userSystemCouponMapper.getFreeCouponByType(uid, type); + } } -- Gitblit v1.8.0