| | |
| | | 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; |
| | |
| | | |
| | | @Resource |
| | | private LuckyActivityMapper luckyActivityMapper; |
| | | |
| | | @Resource |
| | | private LuckyActivityManager luckyActivityManager; |
| | | |
| | | @Resource |
| | | private LuckyActivityOpenInfoManager luckyActivityOpenInfoManager; |
| | |
| | | |
| | | 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 |
| | |
| | | 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, "等待审核"); |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 检查要发布的活动 |
| | |
| | | * @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, "活动开始时间未设置"); |
| | | } |
| | |
| | | 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, "已发布"); |
| | | |
| | | //加入代发消息列表 |
| | | try { |
| | |
| | | } |
| | | } |
| | | |
| | | @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); |
| | | } |
| | | |
| | | |