From 6e281067fe81dbf180c63a2833f74c1615d32f18 Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期一, 30 十一月 2020 16:44:46 +0800 Subject: [PATCH] 抽奖服务完善 --- service-lucky/src/main/java/com/ks/lucky/service/impl/remote/LuckyActivityServiceImpl.java | 118 ++++++++++++++++++++++++++++++++++++++++++++++++++++------- 1 files changed, 104 insertions(+), 14 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 ae684a0..55f195f 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 @@ -11,10 +11,7 @@ import com.ks.lucky.query.ActivityDaoQuery; import com.ks.lucky.remote.service.LuckyActivityService; import com.ks.lucky.service.LuckyMQService; -import com.ks.lucky.service.impl.AppManager; -import com.ks.lucky.service.impl.LuckyActivityAwardManager; -import com.ks.lucky.service.impl.LuckyActivityOpenInfoManager; -import com.ks.lucky.service.impl.LuckyActivitySponsorInfoManager; +import com.ks.lucky.service.impl.*; import com.ks.lucky.util.mq.LuckyMQFactory; import org.apache.dubbo.config.annotation.Service; import org.springframework.transaction.annotation.Transactional; @@ -29,6 +26,9 @@ @Resource private LuckyActivityMapper luckyActivityMapper; + + @Resource + private LuckyActivityManager luckyActivityManager; @Resource private LuckyActivityOpenInfoManager luckyActivityOpenInfoManager; @@ -47,6 +47,12 @@ private Long getAppId(String appKey) throws AppException { return appManager.getAppId(appKey); + } + + private void notNull(LuckyActivity activity) throws LuckyActivityException { + if (activity == null) { + throw new LuckyActivityException(LuckyActivityException.CODE_NOT_EXIST, "娲诲姩涓嶅瓨鍦�"); + } } @Override @@ -90,6 +96,17 @@ return activity.getId(); } + @Override + public void submitVerify(Long activityId) throws LuckyActivityException { + LuckyActivity activity = luckyActivityMapper.selectByPrimaryKeyForUpdate(activityId); + notNull(activity); + if (activity.getState() != LuckyActivity.STATE_NOT_SUBMIT_VERIFY && activity.getState() != LuckyActivity.STATE_VERIFY_REJECT) { + throw new LuckyActivityException(1, "娲诲姩鏈浜庡鏍歌鎷掔粷/鏈彁浜ゅ鏍哥姸鎬�"); + } + + luckyActivityManager.setState(activityId, LuckyActivity.STATE_WAITING_VERIFY, "绛夊緟瀹℃牳"); + } + /** * 妫�鏌ヨ鍙戝竷鐨勬椿鍔� @@ -97,9 +114,7 @@ * @param activity */ private void checkActivityForPublish(LuckyActivity activity) throws LuckyActivityException { - if (activity == null) { - throw new LuckyActivityException(LuckyActivityException.CODE_NOT_EXIST, "娲诲姩涓嶅瓨鍦�"); - } + notNull(activity); if (activity.getStartTime() == null) { throw new LuckyActivityException(1, "娲诲姩寮�濮嬫椂闂存湭璁剧疆"); } @@ -145,11 +160,8 @@ LuckyActivity activity = luckyActivityMapper.selectByPrimaryKeyForUpdate(activityId); checkActivityForPublish(activity); - LuckyActivity update = new LuckyActivity(); - update.setId(activityId); - update.setState(LuckyActivity.STATE_NOT_STARTED); - update.setStateRemarks("宸插彂甯�"); - update.setUpdateTime(new Date()); + + luckyActivityManager.setState(activityId, LuckyActivity.STATE_NOT_STARTED, "宸插彂甯�"); //鍔犲叆浠e彂娑堟伅鍒楄〃 try { @@ -159,19 +171,97 @@ } } + @Transactional(rollbackFor = Exception.class) + @Override + public void startActivity(Long activityId, String remarks) throws LuckyActivityException { + LuckyActivity activity = luckyActivityMapper.selectByPrimaryKeyForUpdate(activityId); + if (activity.getState() != LuckyActivity.STATE_NOT_STARTED) { + throw new LuckyActivityException(2, "娲诲姩灏氭湭澶勪簬宸插彂甯冪姸鎬�"); + } + + luckyActivityManager.startUpActivity(activityId); + + + } + + @Transactional(rollbackFor = Exception.class) @Override public void verifyActivity(Long activityId, boolean pass, String remarks) throws LuckyActivityException { + LuckyActivity activity = luckyActivityMapper.selectByPrimaryKeyForUpdate(activityId); + if (activity.getState() != LuckyActivity.STATE_WAITING_VERIFY) { + throw new LuckyActivityException(2, "娲诲姩灏氭湭澶勪簬瀹℃牳鐘舵��"); + } + //瀹℃牳娲诲姩 + //瀹℃牳閫氳繃 + if (pass) { + luckyActivityManager.setState(activityId, LuckyActivity.STATE_NOT_PUBLISH, remarks); + } else { + //瀹℃牳鏈�氳繃 + luckyActivityManager.setState(activityId, LuckyActivity.STATE_VERIFY_REJECT, remarks); + } + + } + + @Transactional(rollbackFor = Exception.class) + @Override + public void forceFinishActivity(Long activityId, String remarks) throws LuckyActivityException { + LuckyActivity activity = luckyActivityMapper.selectByPrimaryKeyForUpdate(activityId); + notNull(activity); + + if (activity.getState() != LuckyActivity.STATE_STARTED) { + throw new LuckyActivityException(1, "娲诲姩鏈浜庡凡寮�濮嬬姸鎬�"); + } + + //璁剧疆娲诲姩澶勪簬寮哄埗缁撴潫鐘舵�� + luckyActivityManager.setState(activityId, LuckyActivity.STATE_FOUCE_FINISH, remarks); + } + + @Transactional(rollbackFor = Exception.class) + @Override + public void cancelPublish(Long activityId, String remarks) throws LuckyActivityException { + LuckyActivity activity = luckyActivityMapper.selectByPrimaryKeyForUpdate(activityId); + notNull(activity); + + if (activity.getState() != LuckyActivity.STATE_NOT_STARTED) { + throw new LuckyActivityException(1, "娲诲姩鏈浜庡凡鍙戝竷鐘舵��"); + } + + //璁剧疆娲诲姩涓烘湭鍙戝竷鐘舵�� + luckyActivityManager.setState(activityId, LuckyActivity.STATE_NOT_PUBLISH, remarks); } @Override public LuckyActivity getActivityDetail(Long id) { - return null; + LuckyActivity activity = luckyActivityMapper.selectByPrimaryKey(id); + if (activity == null) { + return null; + } + //鍔犺浇寮�濂栦俊鎭� + LuckyActivityOpenInfo openInfo = luckyActivityOpenInfoManager.getOpenInfo(activity.getId()); + activity.setOpenInfo(openInfo); + + //鍔犺浇璧炲姪淇℃伅 + LuckyActivitySponsorInfo sponsorInfo = luckyActivitySponsorInfoManager.getSponsorInfo(activity.getId()); + if (sponsorInfo != null) { + sponsorInfo = luckyActivitySponsorInfoManager.getSponsorInfoDetail(sponsorInfo.getId()); + } + activity.setSponsorInfo(sponsorInfo); + + //鍔犺浇濂栭」淇℃伅 + List<LuckyActivityAwards> awardsList = luckyActivityAwardManager.getAwardList(activity.getId()); + activity.setAwardsList(awardsList); + + return activity; } @Override public void updateActivity(LuckyActivity activity) throws LuckyActivityException { - + if (activity.getState() != null) { + throw new LuckyActivityException(1, "涓嶈兘鏇存敼娲诲姩鐘舵��"); + } + activity.setUpdateTime(new Date()); + luckyActivityMapper.updateByPrimaryKeySelective(activity); } -- Gitblit v1.8.0