| | |
| | | import com.ks.lucky.pojo.DTO.mq.ActivityStateChangeMsgDTO; |
| | | import com.ks.lucky.service.LuckyActivityImageService; |
| | | import com.ks.lucky.service.LuckyMQService; |
| | | import com.ks.lucky.util.LoggerUtil; |
| | | import com.ks.lucky.util.annotation.RedisCache; |
| | | import com.ks.lucky.util.annotation.RedisCacheEvict; |
| | | import com.ks.lucky.util.mq.CMQManager; |
| | | import com.ks.lucky.util.mq.LuckyMQFactory; |
| | | import org.springframework.stereotype.Component; |
| | | import org.springframework.transaction.annotation.Propagation; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | |
| | | import javax.annotation.Resource; |
| | |
| | | update.setId(activityId); |
| | | update.setCurrentPersonCount(currentCount + count); |
| | | update.setUpdateTime(new Date()); |
| | | luckyActivityMapper.updateByPrimaryKeySelective(update); |
| | | updateSelectiveByPrimaryKey(update); |
| | | if (update.getCurrentPersonCount().intValue() >= openInfo.getMinPersonCount() && currentCount < openInfo.getMinPersonCount()) { |
| | | //达到最低开奖人数 |
| | | CMQManager.getInstance().addActivityMsg(new ActivityMQMsg(activityId, ActivityMQMsg.TYPE_REACH_MIN_PERSON, new Date())); |
| | |
| | | * |
| | | * @param activityId |
| | | */ |
| | | @Transactional(propagation = Propagation.REQUIRES_NEW, rollbackFor = Exception.class) |
| | | @RedisCacheEvict(cate = "activity", key = "'activity-detail-'+#activityId") |
| | | public void startUpActivity(Long activityId) throws LuckyActivityException, LuckyMQException { |
| | | LuckyActivity luckyActivity = luckyActivityMapper.selectByPrimaryKeyForUpdate(activityId); |
| | |
| | | update.setId(activityId); |
| | | update.setActualStartTime(new Date()); |
| | | update.setUpdateTime(new Date()); |
| | | luckyActivityMapper.updateByPrimaryKeySelective(update); |
| | | updateSelectiveByPrimaryKey(update); |
| | | |
| | | //有预计结束时间 |
| | | if (luckyActivity.getPreFinishTime() != null) { |
| | |
| | | e.printStackTrace(); |
| | | } |
| | | |
| | | |
| | | LoggerUtil.activityLogger.info("活动启动成功:activityId-{}", activityId); |
| | | } |
| | | |
| | | |
| | |
| | | update.setId(activityId); |
| | | update.setActualFinishTime(new Date()); |
| | | update.setUpdateTime(new Date()); |
| | | luckyActivityMapper.updateByPrimaryKeySelective(update); |
| | | updateSelectiveByPrimaryKey(update); |
| | | |
| | | activity.setActualFinishTime(update.getActualFinishTime()); |
| | | //强制结束的不开奖 |
| | | if (!force) { |
| | | //添加开奖消息 |
| | | LuckyMQ mq = LuckyMQFactory.createOpenActivity(activity); |
| | | LuckyActivityOpenInfo openInfo = luckyActivityOpenInfoManager.getOpenInfo(activityId); |
| | | Date openTime = openInfo.getPreOpenTime(); |
| | | if (openTime == null) { |
| | | openTime = new Date(); |
| | | } |
| | | LuckyMQ mq = LuckyMQFactory.createOpenActivity(activityId, openTime); |
| | | luckyMQService.addMQ(mq); |
| | | } |
| | | //尝试删除消息 |
| | |
| | | e.printStackTrace(); |
| | | } |
| | | |
| | | |
| | | LoggerUtil.activityLogger.info("活动成功结束:activityId-{} force-{} remarks-{}", activityId, force, remarks); |
| | | } |
| | | |
| | | |
| | |
| | | activity.setUpdateTime(new Date()); |
| | | updateSelectiveByPrimaryKey(activity); |
| | | CMQManager.getInstance().publishActivityStateChangeMsg(new ActivityStateChangeMsgDTO(activityId, state, stateRemarks, activity.getUpdateTime())); |
| | | LoggerUtil.activityLogger.info("活动状态更改:activityId-{} state-{} stateRemarks-{}", activityId, state, stateRemarks); |
| | | } |
| | | |
| | | @RedisCacheEvict(cate = "activity", key = "'activity-detail-'+#activity.id") |