| | |
| | | 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; |
| | | |
| | |
| | | |
| | | @Resource |
| | | private LuckyActivityOpenInfoManager luckyActivityOpenInfoManager; |
| | | |
| | | @Resource |
| | | private LuckyMQService luckyMQService; |
| | | |
| | | |
| | | /** |
| | |
| | | } |
| | | |
| | | 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; |
| | | } |
| | | |
| | | /** |
| | |
| | | * |
| | | * @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, "活动不存在"); |
| | |
| | | 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(); |
| | | } |
| | | |
| | | |
| | | } |
| | | |
| | | |
| | |
| | | * @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, "活动未处于已开始状态"); |
| | |
| | | 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(); |
| | | } |
| | | |
| | | |
| | | } |
| | | |
| | | |