From 3145bfd60c4028a4c6da67484634bfc5a1cca470 Mon Sep 17 00:00:00 2001
From: yujian <yujian@123.com>
Date: 星期三, 11 九月 2019 15:47:42 +0800
Subject: [PATCH] 领取券加入信息邀请消息
---
fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserSystemCouponServiceImpl.java | 299 ++++++++++++++++++++++++++++++++---------------------------
1 files changed, 164 insertions(+), 135 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 d0d61fd..a30eec6 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;
@@ -52,7 +53,6 @@
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;
@@ -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 {
@@ -910,7 +949,7 @@
userRecordVO.setCouponEffect("杩斿埄楼" + hongBao.setScale(2, BigDecimal.ROUND_DOWN) + "宸茶繑" + percent + "%");
// 璧勯噾鏄庣粏
- JumpDetailV2 welfareCore = jumpDetailV2Service.getByTypeCache("capitalDetails");
+ JumpDetailV2 welfareCore = jumpDetailV2Service.getByTypeCache("moneyDetails");
Map<String, Object> jumpWelfare = new HashMap<String, Object>();
jumpWelfare.put("jumpDetail", welfareCore);
Map<String, Object> jumpparms = new HashMap<String, Object>();
@@ -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,11 @@
// 鍙娇鐢ㄣ�� 鍙禒閫�
userCouponVO.setState(UserSystemCoupon.STATE_USE_GIVE);
- // 杩斿埄濂栧姳鍒�- 璺宠浆鑷冲凡鍒拌处-宸叉敹璐�
- jumpLink.put("state", "2");
- jumpLink.put("type", "1");
+ // 璁㈠崟鍒楄〃
+ jumpLink.put("state", "2"); // 宸叉敹璐�
+ 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"));
@@ -2019,7 +2034,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 +2163,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 +2178,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 +2270,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);
--
Gitblit v1.8.0