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/remote/LuckyActivityServiceImpl.java | 70 +++++++++++++++++++++++++---------- 1 files changed, 50 insertions(+), 20 deletions(-) diff --git a/service-lucky/src/main/java/com/ks/lucky/service/impl/remote/LuckyActivityServiceImpl.java b/service-lucky/src/main/java/com/ks/lucky/service/impl/remote/LuckyActivityServiceImpl.java index 55f195f..818d6be 100644 --- a/service-lucky/src/main/java/com/ks/lucky/service/impl/remote/LuckyActivityServiceImpl.java +++ b/service-lucky/src/main/java/com/ks/lucky/service/impl/remote/LuckyActivityServiceImpl.java @@ -1,13 +1,11 @@ package com.ks.lucky.service.impl.remote; import com.ks.app.exception.AppException; +import com.ks.lib.common.exception.ParamsException; 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.LuckyActivityAwards; -import com.ks.lucky.pojo.DO.LuckyActivityOpenInfo; -import com.ks.lucky.pojo.DO.LuckyActivitySponsorInfo; +import com.ks.lucky.pojo.DO.*; import com.ks.lucky.query.ActivityDaoQuery; import com.ks.lucky.remote.service.LuckyActivityService; import com.ks.lucky.service.LuckyMQService; @@ -91,7 +89,15 @@ @Validated @Override @Transactional(rollbackFor = Exception.class) - public Long createActivity(LuckyActivity activity) throws LuckyActivityException { + public Long createActivity(LuckyActivity activity) throws ParamsException, LuckyActivityException { + + activity.setState(LuckyActivity.STATE_NOT_SUBMIT_VERIFY); + activity.setStateRemarks("鏈彁浜ゅ鏍�"); + + if (activity.getCreateTime() == null) { + activity.setCreateTime(new Date()); + } + luckyActivityMapper.insertSelective(activity); return activity.getId(); } @@ -115,15 +121,15 @@ */ private void checkActivityForPublish(LuckyActivity activity) throws LuckyActivityException { notNull(activity); - if (activity.getStartTime() == null) { + if (activity.getPreStartTime() == null) { throw new LuckyActivityException(1, "娲诲姩寮�濮嬫椂闂存湭璁剧疆"); } - if (activity.getStartTime().getTime() < System.currentTimeMillis()) { + if (activity.getPreStartTime().getTime() < System.currentTimeMillis()) { throw new LuckyActivityException(1, "娲诲姩寮�濮嬫椂闂翠笉鑳藉皬浜庡綋鍓嶆椂闂�"); } - if (activity.getFinishTime() != null && activity.getStartTime().getTime() >= activity.getFinishTime().getTime()) { + if (activity.getPreFinishTime() != null && activity.getPreStartTime().getTime() >= activity.getPreFinishTime().getTime()) { throw new LuckyActivityException(1, "娲诲姩寮�濮嬬粨鏉熸椂闂翠笉鑳藉皬浜庡紑濮嬫椂闂�"); } @@ -179,22 +185,25 @@ throw new LuckyActivityException(2, "娲诲姩灏氭湭澶勪簬宸插彂甯冪姸鎬�"); } - luckyActivityManager.startUpActivity(activityId); - - + try { + luckyActivityManager.startUpActivity(activityId); + } catch (LuckyMQException e) { + throw new LuckyActivityException(e.getCode(), e.getMsg()); + } } @Transactional(rollbackFor = Exception.class) @Override public void verifyActivity(Long activityId, boolean pass, String remarks) throws LuckyActivityException { LuckyActivity activity = luckyActivityMapper.selectByPrimaryKeyForUpdate(activityId); + notNull(activity); if (activity.getState() != LuckyActivity.STATE_WAITING_VERIFY) { throw new LuckyActivityException(2, "娲诲姩灏氭湭澶勪簬瀹℃牳鐘舵��"); } //瀹℃牳娲诲姩 - //瀹℃牳閫氳繃 if (pass) { + //瀹℃牳閫氳繃 luckyActivityManager.setState(activityId, LuckyActivity.STATE_NOT_PUBLISH, remarks); } else { //瀹℃牳鏈�氳繃 @@ -203,18 +212,15 @@ } - @Transactional(rollbackFor = Exception.class) @Override public void forceFinishActivity(Long activityId, String remarks) throws LuckyActivityException { - LuckyActivity activity = luckyActivityMapper.selectByPrimaryKeyForUpdate(activityId); + LuckyActivity activity = luckyActivityMapper.selectByPrimaryKey(activityId); notNull(activity); - - if (activity.getState() != LuckyActivity.STATE_STARTED) { - throw new LuckyActivityException(1, "娲诲姩鏈浜庡凡寮�濮嬬姸鎬�"); + try { + luckyActivityManager.finishActivity(activityId, true, remarks); + } catch (LuckyMQException e) { + throw new LuckyActivityException(e.getCode(), e.getMsg()); } - - //璁剧疆娲诲姩澶勪簬寮哄埗缁撴潫鐘舵�� - luckyActivityManager.setState(activityId, LuckyActivity.STATE_FOUCE_FINISH, remarks); } @Transactional(rollbackFor = Exception.class) @@ -229,6 +235,26 @@ //璁剧疆娲诲姩涓烘湭鍙戝竷鐘舵�� luckyActivityManager.setState(activityId, LuckyActivity.STATE_NOT_PUBLISH, remarks); + //鍒犻櫎鐩稿叧鐨勬秷鎭� + LuckyMQ mq = LuckyMQFactory.createStartUpActivity(activity); + + try { + luckyMQService.removeUnSendMsg(mq.getTaskId()); + } catch (LuckyMQException e) { + throw new LuckyActivityException(2, e.getMsg()); + } + + } + + @Override + public void cancelVerify(Long activityId) throws LuckyActivityException { + LuckyActivity activity = luckyActivityMapper.selectByPrimaryKeyForUpdate(activityId); + notNull(activity); + if (activity.getState() != LuckyActivity.STATE_WAITING_VERIFY) { + throw new LuckyActivityException(1, "娲诲姩鏈浜庣瓑寰呭鏍哥姸鎬�"); + } + + luckyActivityManager.setState(activityId, LuckyActivity.STATE_NOT_SUBMIT_VERIFY, "涓诲姩鍙栨秷瀹℃牳"); } @Override @@ -260,6 +286,10 @@ if (activity.getState() != null) { throw new LuckyActivityException(1, "涓嶈兘鏇存敼娲诲姩鐘舵��"); } + if (!luckyActivityManager.canUpdate(activity.getId())) { + throw new LuckyActivityException(1, "褰撳墠娲诲姩涓嶈兘淇敼"); + } + activity.setUpdateTime(new Date()); luckyActivityMapper.updateByPrimaryKeySelective(activity); } -- Gitblit v1.8.0