From a2fe11f549f52e887937dbdb63d967a09d3a3f21 Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期三, 02 十二月 2020 18:54:38 +0800 Subject: [PATCH] 抽奖核心服务完善,天天抽奖服务基本搭建 --- service-lucky/src/main/java/com/ks/lucky/service/impl/LuckyActivityManager.java | 61 +++++++++++++++++++++++++++++- 1 files changed, 59 insertions(+), 2 deletions(-) diff --git a/service-lucky/src/main/java/com/ks/lucky/service/impl/LuckyActivityManager.java b/service-lucky/src/main/java/com/ks/lucky/service/impl/LuckyActivityManager.java index d0cdc55..ce2dcce 100644 --- a/service-lucky/src/main/java/com/ks/lucky/service/impl/LuckyActivityManager.java +++ b/service-lucky/src/main/java/com/ks/lucky/service/impl/LuckyActivityManager.java @@ -1,11 +1,15 @@ package com.ks.lucky.service.impl; import com.ks.lucky.exception.LuckyActivityException; +import com.ks.lucky.exception.LuckyMQException; import com.ks.lucky.mapper.LuckyActivityMapper; import com.ks.lucky.pojo.DO.LuckyActivity; import com.ks.lucky.pojo.DO.LuckyActivityOpenInfo; +import com.ks.lucky.pojo.DO.LuckyMQ; import com.ks.lucky.pojo.DTO.ActivityMQMsg; +import com.ks.lucky.service.LuckyMQService; import com.ks.lucky.util.mq.CMQManager; +import com.ks.lucky.util.mq.LuckyMQFactory; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; @@ -21,6 +25,9 @@ @Resource private LuckyActivityOpenInfoManager luckyActivityOpenInfoManager; + + @Resource + private LuckyMQService luckyMQService; /** @@ -46,6 +53,23 @@ } return true; + } + + + /** + * 鏄惁鍙互鏇存敼娲诲姩鍐呭 + * + * @param activityId + * @return + */ + public boolean canUpdate(Long activityId) { + LuckyActivity activity = luckyActivityMapper.selectByPrimaryKey(activityId); + if (activity != null) { + if (activity.getState() == LuckyActivity.STATE_VERIFY_REJECT || activity.getState() == LuckyActivity.STATE_NOT_SUBMIT_VERIFY) { + return true; + } + } + return false; } /** @@ -90,7 +114,7 @@ * * @param activityId */ - public void startUpActivity(Long activityId) throws LuckyActivityException { + public void startUpActivity(Long activityId) throws LuckyActivityException, LuckyMQException { LuckyActivity luckyActivity = luckyActivityMapper.selectByPrimaryKeyForUpdate(activityId); if (luckyActivity == null) { throw new LuckyActivityException(LuckyActivityException.CODE_NOT_EXIST, "娲诲姩涓嶅瓨鍦�"); @@ -108,6 +132,23 @@ update.setActualStartTime(new Date()); update.setUpdateTime(new Date()); luckyActivityMapper.updateByPrimaryKeySelective(update); + + //鏈夐璁$粨鏉熸椂闂� + if (luckyActivity.getPreFinishTime() != null) { + //娣诲姞缁撴潫娑堟伅 + LuckyMQ mq = LuckyMQFactory.createFinishActivity(luckyActivity); + luckyMQService.addMQ(mq); + } + + //灏濊瘯鍒犻櫎娑堟伅 + try { + LuckyMQ mq = LuckyMQFactory.createStartUpActivity(luckyActivity); + luckyMQService.removeUnSendMsg(mq.getTaskId()); + } catch (LuckyMQException e) { + e.printStackTrace(); + } + + } @@ -119,7 +160,7 @@ * @param remarks */ @Transactional(rollbackFor = Exception.class) - public void finishActivity(Long activityId, boolean force, String remarks) throws LuckyActivityException { + public void finishActivity(Long activityId, boolean force, String remarks) throws LuckyActivityException, LuckyMQException { LuckyActivity activity = luckyActivityMapper.selectByPrimaryKeyForUpdate(activityId); if (activity.getState() != LuckyActivity.STATE_STARTED) { throw new LuckyActivityException(1, "娲诲姩鏈浜庡凡寮�濮嬬姸鎬�"); @@ -137,6 +178,22 @@ update.setUpdateTime(new Date()); luckyActivityMapper.updateByPrimaryKeySelective(update); + activity.setActualFinishTime(update.getActualFinishTime()); + //寮哄埗缁撴潫鐨勪笉寮�濂� + if (!force) { + //娣诲姞寮�濂栨秷鎭� + LuckyMQ mq = LuckyMQFactory.createOpenActivity(activity); + luckyMQService.addMQ(mq); + } + //灏濊瘯鍒犻櫎娑堟伅 + try { + LuckyMQ mq1 = LuckyMQFactory.createFinishActivity(activity); + luckyMQService.removeUnSendMsg(mq1.getTaskId()); + } catch (LuckyMQException e) { + e.printStackTrace(); + } + + } -- Gitblit v1.8.0