From 2a93320d3adf8c72ea127df59d0bdd043917dd79 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期五, 15 十一月 2019 15:12:11 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/div' into div
---
fanli/src/main/java/com/yeshi/fanli/service/impl/user/UserSystemCouponServiceImpl.java | 90 ++++++++++++++++++++++++++++++++------------
1 files changed, 65 insertions(+), 25 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 9b91ba3..6c85258 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
@@ -21,6 +21,7 @@
import org.yeshi.utils.entity.DateInfo;
import com.aliyun.openservices.ons.api.Message;
+import com.aliyun.openservices.ons.api.Producer;
import com.aliyun.openservices.ons.api.SendResult;
import com.aliyun.openservices.ons.api.transaction.LocalTransactionExecuter;
import com.aliyun.openservices.ons.api.transaction.TransactionProducer;
@@ -174,6 +175,11 @@
@Resource
private UserSystemCouponActivateService userSystemCouponActivateService;
+
+ @Resource(name = "producer")
+ private Producer producer;
+
+
@Override
public int insertSelective(UserSystemCoupon record) {
@@ -2071,7 +2077,20 @@
}
tips = tips.replace("{鍙d护}", token).replace("{涓嬭浇閾炬帴}", configService.get("app_down_link"));
- return createUserCouponVOo(userSystemCoupon, systemCoupon, giveRecord, tips);
+ UserSystemCouponVO couponVO = createUserCouponVOo(userSystemCoupon, systemCoupon, giveRecord, tips);
+
+ UserSystemCouponUseMQMsg msg = new UserSystemCouponUseMQMsg();
+ msg.setUserSystemCouponId(id);
+ msg.setCouponType(type.name());
+ Message message = new Message(MQTopicName.TOPIC_USER.name(), UserTopicTagEnum.systemCouponDrawback.name(),
+ new Gson().toJson(msg).getBytes());
+ try {
+ producer.send(message);
+ } catch (Exception e) {
+ throw new UserSystemCouponException(1, "鍒涘缓璧犻�佷俊鎭け璐�");
+ }
+
+ return couponVO;
}
private UserSystemCouponVO createUserCouponVOo(UserSystemCoupon userSystemCoupon, SystemCoupon systemCoupon,
@@ -2258,30 +2277,10 @@
@Override
- @RequestSerializableByKeyService(key = "#giveid")
+ @RequestSerializableByKeyService(key = "#id")
@Transactional(rollbackFor = Exception.class)
- public void sendBackByGiveId(Long giveid) {
- if (giveid == null)
- return;
-
- UserSystemCouponGiveRecord giveRecord = userSystemCouponGiveRecordService.selectByPrimaryKey(giveid);
- if (giveRecord == null)
- return;
-
- if (giveRecord.getState() != null && giveRecord.getState() != UserSystemCouponGiveRecord.STATE_INIT)
- return;
-
- // 鏇存柊璧犻�佽褰�
- UserSystemCouponGiveRecord updateRecord = new UserSystemCouponGiveRecord();
- updateRecord.setId(giveid);
- updateRecord.setState(UserSystemCouponGiveRecord.STATE_OVERDUE);
- userSystemCouponGiveRecordService.updateByPrimaryKeySelective(updateRecord);
-
- // 鍙d护澶辨晥
- tokenRecordService.invalidByCoupon(giveid);
-
- Long couponId = giveRecord.getCouponId();
- if (couponId == null)
+ public void sendBackByGiveId(Long couponId) {
+ if (couponId == null)
return;
UserSystemCoupon userCoupon = userSystemCouponMapper.selectByPrimaryKey(couponId);
@@ -2291,6 +2290,23 @@
Integer state = userCoupon.getState();
if (state != UserSystemCoupon.STATE_IN_USE)
return;
+
+ UserSystemCouponGiveRecord giveRecord = userSystemCouponGiveRecordService.getByCouponId(couponId);
+ if (giveRecord == null)
+ return;
+
+ if (giveRecord.getState() != null && giveRecord.getState() != UserSystemCouponGiveRecord.STATE_INIT)
+ return;
+
+ // 鏇存柊璧犻�佽褰�
+ UserSystemCouponGiveRecord updateRecord = new UserSystemCouponGiveRecord();
+ updateRecord.setId(giveRecord.getId());
+ updateRecord.setState(UserSystemCouponGiveRecord.STATE_OVERDUE);
+ userSystemCouponGiveRecordService.updateByPrimaryKeySelective(updateRecord);
+
+ // 鍙d护澶辨晥
+ tokenRecordService.invalidByCoupon(giveRecord.getId());
+
Date now = new Date();
Date endTime = userCoupon.getEndTime();
@@ -2544,7 +2560,10 @@
@RequestSerializableByKeyService(key = "#uid")
@Override
@Transactional(rollbackFor = Exception.class)
- public void triggerFreeCouponActivate(Long uid) {
+ public void triggerFreeCouponActivate(Long uid, String orderNo, Integer source) {
+ if (uid == null || source == null || StringUtil.isNullOrEmpty(orderNo))
+ return;
+
UserSystemCoupon coupon = userSystemCouponMapper.getNeedActivateCouponByType(uid,
CouponTypeEnum.freeCoupon.name());
if (coupon == null)
@@ -2552,6 +2571,20 @@
Long id = coupon.getId();
UserSystemCouponActivate couponActivate = userSystemCouponActivateService.selectForUpdate(id);
+ if (couponActivate == null)
+ return;
+
+ // 楠岃瘉鍚岃鍗曟槸鍚﹀瓨鍦�
+ String key = orderNo + "_" + source;
+ String ordernos = couponActivate.getOrdernos();
+ if (!StringUtil.isNullOrEmpty(ordernos)) {
+ String[] array = ordernos.split(",");
+ if (array != null)
+ for (int i= 0; i < array.length; i ++) {
+ if (array[i].equals(key))
+ return;
+ }
+ }
// 婵�娲绘暟閲�
boolean result = false;
@@ -2565,10 +2598,17 @@
state = UserSystemCouponActivate.STATE_END;
}
+ if (StringUtil.isNullOrEmpty(ordernos)) {
+ ordernos = key;
+ } else {
+ ordernos = ordernos + "," + key;
+ }
+
UserSystemCouponActivate updateActivate = new UserSystemCouponActivate();
updateActivate.setId(id);
updateActivate.setState(state);
updateActivate.setCount(count);
+ updateActivate.setOrdernos(ordernos);
updateActivate.setUpdateTime(new Date());
userSystemCouponActivateService.updateByPrimaryKeySelective(updateActivate);
--
Gitblit v1.8.0