From 5405154d6979f1b50ce2d881bb164b1acca80b6d Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期五, 15 一月 2021 18:58:18 +0800 Subject: [PATCH] 修改相关bug --- service-lucky/src/main/java/com/ks/lucky/service/impl/remote/LuckyActivityOpenServiceImpl.java | 42 +++++++++++++++++++++++++++++------------- 1 files changed, 29 insertions(+), 13 deletions(-) diff --git a/service-lucky/src/main/java/com/ks/lucky/service/impl/remote/LuckyActivityOpenServiceImpl.java b/service-lucky/src/main/java/com/ks/lucky/service/impl/remote/LuckyActivityOpenServiceImpl.java index 16fccea..5dc36d9 100644 --- a/service-lucky/src/main/java/com/ks/lucky/service/impl/remote/LuckyActivityOpenServiceImpl.java +++ b/service-lucky/src/main/java/com/ks/lucky/service/impl/remote/LuckyActivityOpenServiceImpl.java @@ -1,9 +1,6 @@ package com.ks.lucky.service.impl.remote; -import com.ks.lucky.exception.LuckyActivityAwardException; -import com.ks.lucky.exception.LuckyActivityException; -import com.ks.lucky.exception.LuckyActivityOpenException; -import com.ks.lucky.exception.LuckyMQException; +import com.ks.lucky.exception.*; import com.ks.lucky.mapper.LuckyActivityMapper; import com.ks.lucky.pojo.DO.LuckyActivity; import com.ks.lucky.pojo.DO.LuckyActivityAwards; @@ -51,7 +48,7 @@ * @param activity * @return */ - private boolean canOpen(LuckyActivity activity) throws LuckyActivityException { + private boolean canOpen(LuckyActivity activity) throws LuckyActivityException, LuckyActivityOpenException { long now = System.currentTimeMillis(); if (activity.getState() != LuckyActivity.STATE_FINISH) { throw new LuckyActivityException(1, "娲诲姩灏氭湭缁撴潫"); @@ -59,16 +56,19 @@ LuckyActivityOpenInfo openInfo = luckyActivityOpenInfoManager.getOpenInfo(activity.getId()); - //鏈揪鍒版渶浣庡紑濂栦汉鏁� - if (activity.getCurrentPersonCount() < openInfo.getMinPersonCount()) { - throw new LuckyActivityException(2, "灏氭湭杈惧埌鏈�浣庡紑濂栦汉鏁�"); - } //鍒拌揪鏈�浣庡紑濂栦汉鏁板氨寮�濂� - if (activity.getPreOpenTime() != null) { - if (activity.getPreOpenTime().getTime() > now) { + if (openInfo.getPreOpenTime() != null) { + if (openInfo.getPreOpenTime().getTime() > now) { throw new LuckyActivityException(2, "灏氭湭杈惧埌寮�濂栨椂闂�"); } + } else { + throw new LuckyActivityException(2, "灏氭湭杈惧埌寮�濂栨椂闂�"); + } + + //鏈揪鍒版渶浣庡紑濂栦汉鏁� + if (activity.getCurrentPersonCount() < openInfo.getMinPersonCount()) { + throw new LuckyActivityOpenException(LuckyActivityOpenException.CODE_NOT_REACH_OPEN_PERSON_COUNT, "灏氭湭杈惧埌鏈�浣庡紑濂栦汉鏁�"); } return true; } @@ -86,6 +86,14 @@ //鍒ゆ柇鏄惁杈惧埌寮�濂栨潯浠� try { canOpen(activity); + } catch (LuckyActivityOpenException e) { + if (e.getCode() == LuckyActivityOpenException.CODE_NOT_REACH_OPEN_PERSON_COUNT) { + //寮�濂栧け璐� + luckyActivityManager.setState(activityId, LuckyActivity.STATE_OPEN_FAIL, "浜烘暟鏈揪鍒板紑濂栦汉鏁�,寮�濂栧け璐�"); + return; + } else { + throw new LuckyActivityOpenException(1, "灏氭湭杈惧埌寮�濂栨潯浠�"); + } } catch (LuckyActivityException e) { throw new LuckyActivityOpenException(1, "灏氭湭杈惧埌寮�濂栨潯浠�"); } @@ -120,7 +128,7 @@ @Transactional(rollbackFor = Exception.class) @Override - public void showOpenAward(Long activityId) throws LuckyActivityException { + public void showOpenAward(Long activityId) throws LuckyActivityException, LuckyActivityOpenInfoException { LuckyActivity activity = luckyActivityMapper.selectByPrimaryKeyForUpdate(activityId); if (activity.getState() != LuckyActivity.STATE_PRE_OPENED) { throw new LuckyActivityException(1, "灏氭湭寮�濂�"); @@ -132,6 +140,13 @@ update.setState(LuckyActivity.STATE_OPENED); update.setStateRemarks("宸插紑濂�"); luckyActivityManager.updateSelectiveByPrimaryKey(update); + + //璁剧疆瀹為檯寮�濂栨椂闂� + LuckyActivityOpenInfo openInfo = luckyActivityOpenInfoManager.getOpenInfo(activityId); + LuckyActivityOpenInfo updateOpenInfo = new LuckyActivityOpenInfo(); + updateOpenInfo.setId(openInfo.getId()); + updateOpenInfo.setActualOpenTime(new Date()); + luckyActivityOpenInfoManager.updateOpenInfo(updateOpenInfo, activityId); //鍏堣缃墍鏈夎褰曟湭涓 luckyActivityJoinManager.setActivityAllJoinerUnDraw(activityId); @@ -152,7 +167,8 @@ throw new LuckyActivityException(LuckyActivityException.CODE_NOT_EXIST, "娲诲姩涓嶅瓨鍦�"); } //濡傛灉鏈缃紑濂栨椂闂达紝涓旀椿鍔ㄦ鍦ㄨ繘琛岋紝灏卞垽鏂槸鍚﹁揪鍒版渶浣庝汉鏁� - if (activity.getPreOpenTime() == null) { + LuckyActivityOpenInfo openInfo = luckyActivityOpenInfoManager.getOpenInfo(activityId); + if (openInfo.getPreOpenTime() == null) { if (activity.getState() == LuckyActivity.STATE_STARTED) { try { luckyActivityManager.finishActivity(activityId, false, "杈惧埌鏈�浣庡紑濂栦汉鏁�"); -- Gitblit v1.8.0