From d6df4ca797ee1c6ce8fa78768f5425f187734bd9 Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期一, 18 一月 2021 18:44:08 +0800 Subject: [PATCH] 外网部署参数修改 --- service-lucky/src/main/java/com/ks/lucky/service/impl/remote/LuckyActivityOpenServiceImpl.java | 103 ++++++++++++++++++++++++++++++++++++++------------- 1 files changed, 76 insertions(+), 27 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 52ade23..31df726 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,17 +1,15 @@ package com.ks.lucky.service.impl.remote; -import com.ks.lucky.exception.LuckyActivityAwardException; -import com.ks.lucky.exception.LuckyActivityException; +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; import com.ks.lucky.pojo.DO.LuckyActivityOpenInfo; +import com.ks.lucky.pojo.DTO.ActivityMQMsg; import com.ks.lucky.remote.service.LuckyActivityOpenService; -import com.ks.lucky.service.impl.LuckyActivityAwardManager; -import com.ks.lucky.service.impl.LuckyActivityAwardResultManager; -import com.ks.lucky.service.impl.LuckyActivityJoinManager; -import com.ks.lucky.service.impl.LuckyActivityOpenInfoManager; +import com.ks.lucky.service.impl.*; import com.ks.lucky.util.LuckyRunUtil; +import com.ks.lucky.util.mq.CMQManager; import org.apache.dubbo.config.annotation.Service; import org.springframework.transaction.annotation.Transactional; @@ -21,7 +19,7 @@ import java.util.Map; import java.util.Set; -@Service(version = "1.0") +@Service(version = "1.0.0") public class LuckyActivityOpenServiceImpl implements LuckyActivityOpenService { @Resource @@ -29,6 +27,7 @@ @Resource private LuckyActivityMapper luckyActivityMapper; + @Resource private LuckyActivityOpenInfoManager luckyActivityOpenInfoManager; @@ -39,6 +38,9 @@ @Resource private LuckyActivityAwardResultManager luckyActivityAwardResultManager; + @Resource + private LuckyActivityManager luckyActivityManager; + /** * 鏄惁鍙互寮�濂栦簡 @@ -46,25 +48,27 @@ * @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, "娲诲姩灏氭湭缁撴潫"); } 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; } @@ -72,16 +76,27 @@ @Transactional(rollbackFor = Exception.class) @Override - public void preOpenAward(Long activityId) throws LuckyActivityException, LuckyActivityAwardException { + public void preOpenAward(Long activityId) throws LuckyActivityException, LuckyActivityOpenException, LuckyActivityAwardException { //鍒ゆ柇娲诲姩鐘舵�� LuckyActivity activity = luckyActivityMapper.selectByPrimaryKeyForUpdate(activityId); if (activity == null) { throw new LuckyActivityException(LuckyActivityException.CODE_NOT_EXIST, "娲诲姩涓嶅瓨鍦�"); } - //鍒ゆ柇鏄惁杈惧埌寮�濂栨潯浠� - canOpen(activity); + 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, "灏氭湭杈惧埌寮�濂栨潯浠�"); + } //------------璁$畻寮�濂�------------- //鑾峰彇濂栭」鏁版嵁 @@ -101,17 +116,15 @@ //鏇存柊鐘舵�� - LuckyActivity update = new LuckyActivity(); - update.setId(activityId); - update.setState(LuckyActivity.STATE_PRE_OPENED); - update.setStateRemarks("棰勫紑濂栨垚鍔�"); - update.setUpdateTime(new Date()); - luckyActivityMapper.updateByPrimaryKeySelective(update); + luckyActivityManager.setState(activityId,LuckyActivity.STATE_PRE_OPENED,"棰勫紑濂栨垚鍔�"); + + //娣诲姞娑堟伅 + CMQManager.getInstance().addActivityMsg(new ActivityMQMsg(activityId, ActivityMQMsg.TYPE_OPEN_SHOW, new Date())); } @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, "灏氭湭寮�濂�"); @@ -122,8 +135,44 @@ update.setUpdateTime(new Date()); update.setState(LuckyActivity.STATE_OPENED); update.setStateRemarks("宸插紑濂�"); - luckyActivityMapper.updateByPrimaryKeySelective(update); - luckyActivityAwardResultManager.setResultShow(activityId); + 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); + //璁剧疆涓鐢ㄦ埛鐘舵�佷负涓 + luckyActivityJoinManager.setActivityDrawnJoinerState(activityId); + + try { + luckyActivityAwardResultManager.setResultShow(activityId); + } catch (LuckyMQException e) { + throw new LuckyActivityException(10, "娣诲姞MQ鍑洪敊"); + } + } + + @Override + public void reachMinPerson(Long activityId) throws LuckyActivityException { + LuckyActivity activity = luckyActivityMapper.selectByPrimaryKey(activityId); + if (activity == null) { + throw new LuckyActivityException(LuckyActivityException.CODE_NOT_EXIST, "娲诲姩涓嶅瓨鍦�"); + } + //濡傛灉鏈缃紑濂栨椂闂达紝涓旀椿鍔ㄦ鍦ㄨ繘琛岋紝灏卞垽鏂槸鍚﹁揪鍒版渶浣庝汉鏁� + LuckyActivityOpenInfo openInfo = luckyActivityOpenInfoManager.getOpenInfo(activityId); + if (openInfo.getPreOpenTime() == null) { + if (activity.getState() == LuckyActivity.STATE_STARTED) { + try { + luckyActivityManager.finishActivity(activityId, false, "杈惧埌鏈�浣庡紑濂栦汉鏁�"); + } catch (LuckyMQException e) { + throw new LuckyActivityException(1, e.getMsg()); + } + } + } } -- Gitblit v1.8.0