From 9fe0aefb466a87815ef450cb4ef99405dad63b4e Mon Sep 17 00:00:00 2001
From: peng <peng.com>
Date: 星期一, 17 十一月 2025 11:49:11 +0800
Subject: [PATCH] 中奖用户打* 解决首页视频显示不全问题
---
framework/src/main/java/cn/lili/modules/lmk/service/impl/PrizeServiceImpl.java | 457 ++++++++++++++++++++++++++++++++++++---------------------
1 files changed, 289 insertions(+), 168 deletions(-)
diff --git a/framework/src/main/java/cn/lili/modules/lmk/service/impl/PrizeServiceImpl.java b/framework/src/main/java/cn/lili/modules/lmk/service/impl/PrizeServiceImpl.java
index fa8eda8..0d061d6 100644
--- a/framework/src/main/java/cn/lili/modules/lmk/service/impl/PrizeServiceImpl.java
+++ b/framework/src/main/java/cn/lili/modules/lmk/service/impl/PrizeServiceImpl.java
@@ -16,6 +16,8 @@
import cn.lili.modules.lmk.domain.vo.PrizeResultVO;
import cn.lili.modules.lmk.enums.general.*;
import cn.lili.modules.lmk.service.*;
+import cn.lili.modules.member.entity.dos.Member;
+import cn.lili.modules.member.service.MemberService;
import cn.lili.modules.order.order.entity.dos.Order;
import cn.lili.modules.order.order.service.OrderService;
import cn.lili.modules.promotion.entity.dos.Coupon;
@@ -74,6 +76,9 @@
private final ShareActionService shareActionService;
private final AddNumCheekService addNumCheekService;
private final OrderService orderService;
+ private final MemberService memberService;
+ private final VideoService videoService;
+ private final VideoAuditRecordService videoAuditRecordService;
@Override
@Transactional(rollbackFor = Exception.class)
@@ -524,6 +529,7 @@
}
@Override
+ @Transactional(rollbackFor = Exception.class)
public Result addPrizeNum(AddPrizeNumForm addPrizeNumForm) {
//鎸囧畾娲诲姩缁欐寚瀹氭椿鍔ㄦ坊鍔犳病鎸囧畾娲诲姩缁欓粯璁ゆ椿鍔ㄦ坊鍔�
String prizeActivityId = addPrizeNumForm.getPrizeActivityId();
@@ -547,180 +553,295 @@
addPrizeNumForm.setUserId(currentUser.getId());
}
- PrizeActivity activity = prizeActivityService.getById(addPrizeNumForm.getPrizeActivityId());
- if (activity == null) {
- throw new ServiceException("褰撳墠娲诲姩涓嶅瓨鍦�");
- }
- if (!PrizeActivityStatusEnum.ON.name().equals(activity.getEnableStatus())) {
- throw new ServiceException("褰撳墠娲诲姩娌″紑鍚�");
- }
- Date date = new Date();
- //娲诲姩缁撴潫涓嶉渶瑕佹坊鍔�
- if (date.after(activity.getEndTime())) {
- throw new ServiceException("褰撳墠娲诲姩宸茬粨鏉�");
- }
- Integer maxPrize = activity.getMaxPrize();
- String userId = addPrizeNumForm.getUserId();
- List<PrizeNumber> prizeNumberList = getPrizeNumberList(activity.getId(), userId);
- if (prizeNumberList.size() >= maxPrize) {
- throw new ServiceException("鎶藉娆℃暟宸茶揪鍒颁笂闄愪簡");
- }
- PrizeUserActionEnum actionEnum = PrizeUserActionEnum.select(addPrizeNumForm.getAddType());
- if (actionEnum == null) {
- throw new ServiceException("褰撳墠绫诲瀷涓嶅瓨鍦�");
- }
- AddPrizeRule addPrizeRule = getAddPrizeRule(actionEnum.name());
- if (addPrizeRule == null) {
- return Result.ok().data(0);
- }
- List<PrizeNumber> needAdd = new ArrayList<>();
- Integer addNum = addPrizeRule.getAddNum();
- if (addNum == null) {
- return Result.ok().data(0);
- }
- //鍒よ娣诲姞鍚庢槸鍚﹀ぇ浜庢渶澶ф鏁�
- if (prizeNumberList.size()+addNum >= maxPrize){
- addNum = maxPrize-prizeNumberList.size();
- }
- boolean addFlag = false;
- //鍒ゆ柇璇ョ被鍨嬪綋澶╂槸鍚︽坊鍔犺繃浜�
- for (PrizeNumber prizeNumber : prizeNumberList) {
- if (actionEnum.name().equals(prizeNumber.getUserAction())) {
- addFlag = true;
- break;
- }
- }
String extend = addPrizeNumForm.getExtend();
JSONObject jsonObject = JSONObject.parseObject(extend);
- LambdaQueryWrapper<AddNumCheek> query = Wrappers.lambdaQuery();
- AddNumCheek addNumCheek = null;
- String orderSn = null;
- Order order = null;
- String ruleValue= null;
- switch (actionEnum) {
- case SHARE_GOODS_VIDEO:
- String shareId = jsonObject.getString("shareId");
- ShareAction shareAction = shareActionService.getById(shareId);
- if (shareAction == null) {
- return Result.ok().data(0);
- }
- if (addFlag){
- log.info("褰撳墠鐢ㄦ埛褰撳ぉ宸茬粡娣诲姞杩囦簡鍒嗕韩娣诲姞娆℃暟浜�-------->{}",userId);
- return Result.ok().data(0);
- }
- break;
- case SHARE_USER_REGISTRY:
- String memberId = jsonObject.getString("memberId");
- query.eq(AddNumCheek::getType,PrizeUserActionEnum.SHARE_USER_REGISTRY.name())
- .eq(AddNumCheek::getCheckNo, memberId);
- if (addNumCheekService.getOne(query) != null) {
- log.info("褰撳墠鐢ㄦ埛宸茬粡琚個璇疯繃浜�----------------->{}",memberId);
- return Result.ok().data(0);
- }
- addNumCheek = new AddNumCheek();
- addNumCheek.setType(PrizeUserActionEnum.SHARE_USER_REGISTRY.name());
- addNumCheek.setUserId(userId);
- addNumCheek.setCheckNo(memberId);
- addNumCheekService.save(addNumCheek);
- break;
- case SHARE_USER_SHOPPING:
- orderSn = jsonObject.getString("orderSn");
- //鏍¢獙璁㈠崟鏄惁瀛樺湪
- order = orderService.getBySn(orderSn);
- if (order == null) {
- log.info("鍒嗕韩鐢ㄦ埛璐墿璁㈠崟涓嶅瓨鍦▄}",orderSn);
- return Result.ok().data(0);
- }
- query.eq(AddNumCheek::getType,PrizeUserActionEnum.SHARE_USER_SHOPPING.name())
- .eq(AddNumCheek::getCheckNo, orderSn);
- if (addNumCheekService.getOne(query) != null) {
- log.info("褰撳墠閭�璇疯鍗曞凡缁忚棰嗗彇杩囦簡----------------->{}",orderSn);
- return Result.ok().data(0);
- }
- addNumCheek = new AddNumCheek();
- addNumCheek.setType(PrizeUserActionEnum.SHARE_USER_SHOPPING.name());
- addNumCheek.setUserId(userId);
- addNumCheek.setCheckNo(orderSn);
- addNumCheekService.save(addNumCheek);
- break;
- case USER_STAY_TIME:
- //todo 閫氳繃鐢ㄦ埛琛屼负鍒嗘瀽鑾峰彇鏁版嵁杩涜鍒ゆ柇
- ruleValue = addPrizeRule.getRuleValue();
-
- if (addFlag){
- log.info("褰撳墠鐢ㄦ埛褰撳ぉ宸茬粡娣诲姞杩囦簡鍋滅暀鏃堕棿娣诲姞娆℃暟浜�-------->{}",userId);
- return Result.ok().data(0);
- }
- break;
- case USER_BUY_SUM_PRICE:
- orderSn = jsonObject.getString("orderSn");
- //鏍¢獙璁㈠崟鏄惁瀛樺湪
- order = orderService.getBySn(orderSn);
- if (order == null) {
- log.info("鐢ㄦ埛璐墿璁㈠崟涓嶅瓨鍦▄}",orderSn);
- return Result.ok().data(0);
- }
- ruleValue = addPrizeRule.getRuleValue();
- double price = Double.parseDouble(ruleValue);
- Double flowPrice = order.getFlowPrice();
- if (flowPrice < price) {
- log.info("褰撳墠璐墿璁㈠崟閲戦灏忎簬娣诲姞瑕佹眰----------------->{}",orderSn);
- return Result.ok().data(0);
- }
- query.eq(AddNumCheek::getType,PrizeUserActionEnum.USER_BUY_SUM_PRICE.name())
- .eq(AddNumCheek::getCheckNo, orderSn);
- if (addNumCheekService.getOne(query) != null) {
- log.info("褰撳墠璐墿璁㈠崟宸茬粡琚鍙栬繃浜�----------------->{}",orderSn);
- return Result.ok().data(0);
- }
- addNumCheek = new AddNumCheek();
- addNumCheek.setType(PrizeUserActionEnum.USER_BUY_SUM_PRICE.name());
- addNumCheek.setUserId(userId);
- addNumCheek.setCheckNo(orderSn);
- addNumCheekService.save(addNumCheek);
- break;
- case USER_BUY_ORDER_NUM:
- orderSn = jsonObject.getString("orderSn");
- //鏍¢獙璁㈠崟鏄惁瀛樺湪
- order = orderService.getBySn(orderSn);
- if (order == null) {
- log.info("鐢ㄦ埛璐墿鏁伴噺璁㈠崟涓嶅瓨鍦▄}",orderSn);
- return Result.ok().data(0);
- }
- query.eq(AddNumCheek::getType,PrizeUserActionEnum.USER_BUY_ORDER_NUM.name())
- .eq(AddNumCheek::getCheckNo, orderSn);
- if (addNumCheekService.getOne(query) != null) {
- log.info("褰撳墠璐墿璁㈠崟鏁伴噺宸茬粡琚鍙栬繃浜�----------------->{}",orderSn);
- return Result.ok().data(0);
- }
- addNumCheek = new AddNumCheek();
- addNumCheek.setType(PrizeUserActionEnum.USER_BUY_ORDER_NUM.name());
- addNumCheek.setUserId(userId);
- addNumCheek.setCheckNo(orderSn);
- addNumCheekService.save(addNumCheek);
- break;
- case USER_SCAN_STORE:
- break;
- case USER_PUBLISH_EXAMINE:
-
- break;
- default:
+ String shareId =null;
+ if (jsonObject != null) {
+ shareId = jsonObject.getString("shareId");
+ }
+ Date date = new Date();
+ ShareAction shareAction =null;
+ //鍒嗕韩杩涙潵鐨勯渶瑕佹坊鍔犲垎浜殑鐢ㄦ埛
+ if (StringUtils.isNotBlank(shareId)) {
+ shareAction = shareActionService.getById(shareId);
+ String userId = shareAction.getUserId();
+ addPrizeNumForm.setUserId(userId);
+ Date createTime = shareAction.getCreateTime();
+ Calendar calendar = Calendar.getInstance();
+ calendar.setTime(createTime); // 灏咲ate璁剧疆鍒癈alendar涓�
+ calendar.add(Calendar.DAY_OF_MONTH, 1); // 鍔犱竴澶�
+ Date nextDay = calendar.getTime();
+ //鍒ゆ柇鏄惁鏄柊鐢ㄦ埛
+ if (nextDay.before(date)) {
+ //褰撳墠鍒嗕韩涓嶆槸浠婂ぉ鐨勫垎浜�
+ log.info("褰撳墠鍒嗕韩涓嶆槸浠婂ぉ鐨勫垎浜珄}",shareId);
return Result.ok().data(0);
+ }
+ // 闄や簡瑙嗛澶栭渶瑕佹牎楠岀敤鎴锋槸鍚﹁嚜宸辩偣鍑讳簡鑷繁鐨勫垎浜�
+ PrizeUserActionEnum actionEnum = PrizeUserActionEnum.select(addPrizeNumForm.getAddType());
+ if (actionEnum == null) {
+ log.info("褰撳墠绫诲瀷涓嶅瓨鍦�");
+ return Result.ok().data(0);
+ }
+ if (!PrizeUserActionEnum.SHARE_GOODS_VIDEO.name().equals(actionEnum.name())) {
+ if (currentUser.getId().equals(userId)) {
+ //鍒嗕韩鐨勭敤鎴疯嚜宸辩偣鍑讳簡
+ log.info("鐢ㄦ埛鑷繁鐐瑰嚮浜嗚嚜宸辩殑鍒嗕韩");
+ return Result.ok().data(0);
+ }
+ }
+
}
- //璁剧疆榛樿鎶藉娆℃暟骞惰繑鍥為粯璁ゆ娊濂栨鏁�
- for (int i = 0; i < addNum; i++) {
- PrizeNumber prizeNumber = new PrizeNumber();
- prizeNumber.setActivityPrizeId(Long.parseLong(addPrizeNumForm.getPrizeActivityId()));
- prizeNumber.setUserId(Long.parseLong(userId));
- prizeNumber.setUserAction(actionEnum.name());
- prizeNumber.setUseStatus(PrizeNumberUseEnum.WAIT.name());
- needAdd.add(prizeNumber);
+
+ String userId = addPrizeNumForm.getUserId();
+ RLock lock = redissonClient.getLock(PRIZE_ADD_NUM + userId);
+ try {
+
+ lock.lock();
+ PrizeActivity activity = prizeActivityService.getById(addPrizeNumForm.getPrizeActivityId());
+ if (activity == null) {
+ throw new ServiceException("褰撳墠娲诲姩涓嶅瓨鍦�");
+ }
+ if (!PrizeActivityStatusEnum.ON.name().equals(activity.getEnableStatus())) {
+ throw new ServiceException("褰撳墠娲诲姩娌″紑鍚�");
+ }
+ //娲诲姩缁撴潫涓嶉渶瑕佹坊鍔�
+ if (date.after(activity.getEndTime())) {
+ throw new ServiceException("褰撳墠娲诲姩宸茬粨鏉�");
+ }
+ Integer maxPrize = activity.getMaxPrize();
+ List<PrizeNumber> prizeNumberList = getPrizeNumberList(activity.getId(), userId);
+ if (prizeNumberList.size() >= maxPrize) {
+ throw new ServiceException("鎶藉娆℃暟宸茶揪鍒颁笂闄愪簡");
+ }
+ PrizeUserActionEnum actionEnum = PrizeUserActionEnum.select(addPrizeNumForm.getAddType());
+ if (actionEnum == null) {
+ throw new ServiceException("褰撳墠绫诲瀷涓嶅瓨鍦�");
+ }
+ AddPrizeRule addPrizeRule = getAddPrizeRule(actionEnum.name());
+ if (addPrizeRule == null) {
+ return Result.ok().data(0);
+ }
+ List<PrizeNumber> needAdd = new ArrayList<>();
+ Integer addNum = addPrizeRule.getAddNum();
+ if (addNum == null) {
+ return Result.ok().data(0);
+ }
+ //鍒よ娣诲姞鍚庢槸鍚﹀ぇ浜庢渶澶ф鏁�
+ if (prizeNumberList.size() + addNum >= maxPrize) {
+ addNum = maxPrize - prizeNumberList.size();
+ }
+ boolean addFlag = false;
+ //鍒ゆ柇璇ョ被鍨嬪綋澶╂槸鍚︽坊鍔犺繃浜�
+ for (PrizeNumber prizeNumber : prizeNumberList) {
+ if (actionEnum.name().equals(prizeNumber.getUserAction())) {
+ addFlag = true;
+ break;
+ }
+ }
+ LambdaQueryWrapper<AddNumCheek> query = Wrappers.lambdaQuery();
+ AddNumCheek addNumCheek = null;
+ String orderSn = null;
+ Order order = null;
+ String ruleValue = null;
+ switch (actionEnum) {
+ case SHARE_GOODS_VIDEO:
+ if (shareAction == null) {
+ log.info("褰撳墠鐢ㄦ埛娌℃湁鍒嗕韩{}",userId);
+ return Result.ok().data(0);
+ }
+ if (addFlag) {
+ log.info("褰撳墠鐢ㄦ埛褰撳ぉ宸茬粡娣诲姞杩囦簡鍒嗕韩娣诲姞娆℃暟浜�-------->{}", userId);
+ return Result.ok().data(0);
+ }
+ break;
+ case SHARE_USER_REGISTRY:
+ if (shareAction == null) {
+ log.info("褰撳墠鐢ㄦ埛娌℃湁鍒嗕韩{}",userId);
+ return Result.ok().data(0);
+ }
+ Member member = memberService.getById(shareAction.getUserId());
+ Date createTime = member.getCreateTime();
+ Calendar calendar = Calendar.getInstance();
+ calendar.setTime(createTime); // 灏咲ate璁剧疆鍒癈alendar涓�
+ calendar.add(Calendar.DAY_OF_MONTH, 1); // 鍔犱竴澶�
+ Date nextDay = calendar.getTime();
+ //鍒ゆ柇鏄惁鏄柊鐢ㄦ埛
+ if (nextDay.before(date)) {
+ //褰撳墠鐢ㄦ埛涓嶆槸鏂扮敤鎴�
+ log.info("褰撳墠鐢ㄦ埛涓嶆槸鏂扮敤鎴穥}",currentUser.getId());
+ return Result.ok().data(0);
+ }
+ query.eq(AddNumCheek::getType, PrizeUserActionEnum.SHARE_USER_REGISTRY.name())
+ .eq(AddNumCheek::getCheckNo, currentUser.getId());
+ if (addNumCheekService.getOne(query) != null) {
+ log.info("褰撳墠鐢ㄦ埛宸茬粡琚個璇疯繃浜�----------------->{}", currentUser.getId());
+ return Result.ok().data(0);
+ }
+ addNumCheek = new AddNumCheek();
+ addNumCheek.setType(PrizeUserActionEnum.SHARE_USER_REGISTRY.name());
+ addNumCheek.setUserId(userId);
+ addNumCheek.setCheckNo(currentUser.getId());
+ addNumCheekService.save(addNumCheek);
+ break;
+ case SHARE_USER_SHOPPING:
+ orderSn = jsonObject.getString("orderSn");
+ //鏍¢獙璁㈠崟鏄惁瀛樺湪
+ order = orderService.getBySn(orderSn);
+ if (order == null) {
+ log.info("鍒嗕韩鐢ㄦ埛璐墿璁㈠崟涓嶅瓨鍦▄}", orderSn);
+ return Result.ok().data(0);
+ }
+ query.eq(AddNumCheek::getType, PrizeUserActionEnum.SHARE_USER_SHOPPING.name())
+ .eq(AddNumCheek::getCheckNo, orderSn);
+ if (addNumCheekService.getOne(query) != null) {
+ log.info("褰撳墠閭�璇疯鍗曞凡缁忚棰嗗彇杩囦簡----------------->{}", orderSn);
+ return Result.ok().data(0);
+ }
+ addNumCheek = new AddNumCheek();
+ addNumCheek.setType(PrizeUserActionEnum.SHARE_USER_SHOPPING.name());
+ addNumCheek.setUserId(userId);
+ addNumCheek.setCheckNo(orderSn);
+ addNumCheekService.save(addNumCheek);
+ break;
+ case USER_STAY_TIME:
+ if (addFlag) {
+ log.info("褰撳墠鐢ㄦ埛褰撳ぉ宸茬粡娣诲姞杩囦簡鍋滅暀鏃堕棿娣诲姞娆℃暟浜�-------->{}", userId);
+ return Result.ok().data(0);
+ }
+ ruleValue = addPrizeRule.getRuleValue();
+ LocalDate now = LocalDate.now();
+ LocalDateTime begin = LocalDateTime.of(now, LocalTime.MIN);
+ LocalDateTime end = LocalDateTime.of(now, LocalTime.MAX);
+ BigDecimal toDayStayTime = actionRecordService.getToDayStayTime(currentUser.getId(), begin, end);
+ BigDecimal divide = toDayStayTime.divide(new BigDecimal(60), 2, RoundingMode.HALF_UP);
+ if (divide.compareTo(new BigDecimal(ruleValue)) < 0) {
+ log.info("褰撳墠鐢ㄦ埛鍋滅暀鏃堕棿涓嶈冻鏃犳硶澧炲姞娆℃暟");
+ return Result.ok().data(0);
+ }
+ break;
+ case USER_BUY_SUM_PRICE:
+ orderSn = jsonObject.getString("orderSn");
+ //鏍¢獙璁㈠崟鏄惁瀛樺湪
+ order = orderService.getBySn(orderSn);
+ if (order == null) {
+ log.info("鐢ㄦ埛璐墿璁㈠崟涓嶅瓨鍦▄}", orderSn);
+ return Result.ok().data(0);
+ }
+ ruleValue = addPrizeRule.getRuleValue();
+ double price = Double.parseDouble(ruleValue);
+ Double flowPrice = order.getFlowPrice();
+ if (flowPrice < price) {
+ log.info("褰撳墠璐墿璁㈠崟閲戦灏忎簬娣诲姞瑕佹眰----------------->{}", orderSn);
+ return Result.ok().data(0);
+ }
+ query.eq(AddNumCheek::getType, PrizeUserActionEnum.USER_BUY_SUM_PRICE.name())
+ .eq(AddNumCheek::getCheckNo, orderSn);
+ if (addNumCheekService.getOne(query) != null) {
+ log.info("褰撳墠璐墿璁㈠崟宸茬粡琚鍙栬繃浜�----------------->{}", orderSn);
+ return Result.ok().data(0);
+ }
+ addNumCheek = new AddNumCheek();
+ addNumCheek.setType(PrizeUserActionEnum.USER_BUY_SUM_PRICE.name());
+ addNumCheek.setUserId(userId);
+ addNumCheek.setCheckNo(orderSn);
+ addNumCheekService.save(addNumCheek);
+ break;
+ case USER_BUY_ORDER_NUM:
+ orderSn = jsonObject.getString("orderSn");
+ //鏍¢獙璁㈠崟鏄惁瀛樺湪
+ order = orderService.getBySn(orderSn);
+ if (order == null) {
+ log.info("鐢ㄦ埛璐墿鏁伴噺璁㈠崟涓嶅瓨鍦▄}", orderSn);
+ return Result.ok().data(0);
+ }
+ query.eq(AddNumCheek::getType, PrizeUserActionEnum.USER_BUY_ORDER_NUM.name())
+ .eq(AddNumCheek::getCheckNo, orderSn);
+ if (addNumCheekService.getOne(query) != null) {
+ log.info("褰撳墠璐墿璁㈠崟鏁伴噺宸茬粡琚鍙栬繃浜�----------------->{}", orderSn);
+ return Result.ok().data(0);
+ }
+ addNumCheek = new AddNumCheek();
+ addNumCheek.setType(PrizeUserActionEnum.USER_BUY_ORDER_NUM.name());
+ addNumCheek.setUserId(userId);
+ addNumCheek.setCheckNo(orderSn);
+ addNumCheekService.save(addNumCheek);
+ break;
+ case USER_SCAN_STORE:
+ break;
+ case USER_PUBLISH_EXAMINE:
+ String videoId = jsonObject.getString("videoId");
+ query.eq(AddNumCheek::getType, PrizeUserActionEnum.USER_PUBLISH_EXAMINE.name())
+ .eq(AddNumCheek::getCheckNo, videoId);
+ if (addNumCheekService.getOne(query) != null) {
+ log.info("褰撳墠瑙嗛瀹℃牳宸茬粡鍙戞斁杩囦簡----------------->{}", videoId);
+ return Result.ok().data(0);
+ }
+ Video video = videoService.getById(videoId);
+ if (video == null) {
+ log.info("褰撳墠瑙嗛涓嶅瓨鍦▄}",videoId);
+ return Result.ok().data(0);
+ }
+ String status = video.getStatus();
+ if (!"1".equals(status)) {
+ log.info("褰撳墠瑙嗛娌℃湁瀹℃牳閫氳繃{}",videoId);
+ return Result.ok().data(0);
+ }
+ LambdaQueryWrapper<VideoAuditRecord> eq = Wrappers.<VideoAuditRecord>lambdaQuery()
+ .eq(VideoAuditRecord::getVideoId, videoId)
+ .eq(VideoAuditRecord::getAuditSuccess, true);
+ List<VideoAuditRecord> list = videoAuditRecordService.list(eq);
+ if (list.isEmpty()) {
+ log.info("褰撳墠瑙嗛娌℃湁瀹℃牳閫氳繃{}",videoId);
+ return Result.ok().data(0);
+ }
+ addNumCheek = new AddNumCheek();
+ addNumCheek.setType(PrizeUserActionEnum.USER_PUBLISH_EXAMINE.name());
+ addNumCheek.setUserId(userId);
+ addNumCheek.setCheckNo(videoId);
+ addNumCheekService.save(addNumCheek);
+ break;
+ default:
+ return Result.ok().data(0);
+ }
+ //璁剧疆榛樿鎶藉娆℃暟骞惰繑鍥為粯璁ゆ娊濂栨鏁�
+ for (int i = 0; i < addNum; i++) {
+ PrizeNumber prizeNumber = new PrizeNumber();
+ prizeNumber.setActivityPrizeId(Long.parseLong(addPrizeNumForm.getPrizeActivityId()));
+ prizeNumber.setUserId(Long.parseLong(userId));
+ prizeNumber.setUserAction(actionEnum.name());
+ prizeNumber.setUseStatus(PrizeNumberUseEnum.WAIT.name());
+ needAdd.add(prizeNumber);
+ }
+ prizeNumberService.saveBatch(needAdd);
+ return Result.ok().data(0);
+ } finally {
+ TransactionSynchronizationManager.registerSynchronization(new TransactionSynchronization() {
+ @Override
+ public void afterCommit() {
+ if (lock.isHeldByCurrentThread()) {
+ lock.unlock();
+ }
+ }
+
+ @Override
+ public void afterCompletion(int status) {
+ if (lock.isHeldByCurrentThread()) {
+ lock.unlock();
+ }
+ }
+ });
}
- prizeNumberService.saveBatch(needAdd);
- return Result.ok().data(0);
}
- public AddPrizeRule getAddPrizeRule(String ruleCode) {
+
+ public AddPrizeRule getAddPrizeRule(String ruleCode) {
LambdaQueryWrapper<AddPrizeRule> one = Wrappers.<AddPrizeRule>lambdaQuery().eq(AddPrizeRule::getRuleCode, ruleCode);
- return addPrizeRuleService.getOne(one);
+ return addPrizeRuleService.getOne(one);
+ }
+
+ @Override
+ public Result getPrizeRule() {
+ List<AddPrizeRule> list = addPrizeRuleService.list(Wrappers.<AddPrizeRule>lambdaQuery().orderByDesc(AddPrizeRule::getId));
+ return Result.ok().data(list);
}
}
--
Gitblit v1.8.0