package com.ks.lijin.service.manager;
|
|
import org.springframework.stereotype.Component;
|
|
|
@Component
|
public class LuckyActivityManager {
|
//
|
// @Resource
|
// private LuckyActivityMapper luckyActivityMapper;
|
//
|
// @Resource
|
// private LuckyActivityOpenInfoManager luckyActivityOpenInfoManager;
|
//
|
// @Resource
|
// private LuckyMQService luckyMQService;
|
// @Resource
|
// private LuckyActivityImageService luckyActivityImageService;
|
// @Resource
|
// private LuckyActivitySponsorInfoManager luckyActivitySponsorInfoManager;
|
// @Resource
|
// private LuckyActivityAwardManager luckyActivityAwardManager;
|
//
|
//
|
// @RedisCache(cate = "activity", key = "'activity-detail-'+#id", second = 3600)
|
// public LuckyActivity getActivityDetail(Long id) {
|
// LuckyActivity activity = luckyActivityMapper.selectByPrimaryKey(id);
|
// if (activity == null) {
|
// return null;
|
// }
|
//
|
// //加载图片信息
|
// List<LuckyActivityImage> bannerList = luckyActivityImageService.listByActivityId(id, LuckyActivityImage.LuckyImageType.banner);
|
// activity.setBannerList(bannerList);
|
//
|
// //加载开奖信息
|
// 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());
|
// List<LuckyActivityAwards> awardsDetailList = new ArrayList<>();
|
// if (awardsList != null) {
|
// for (LuckyActivityAwards awards : awardsList) {
|
// awards = luckyActivityAwardManager.getAwardDetail(awards.getId());
|
// if (awards != null) {
|
// awardsDetailList.add(awards);
|
// }
|
// }
|
// }
|
// activity.setAwardsList(awardsDetailList);
|
//
|
// return activity;
|
// }
|
//
|
//
|
// /**
|
// * 活动是否还可以参加
|
// *
|
// * @param activityId
|
// * @return
|
// * @throws LuckyActivityException
|
// */
|
// public boolean canJoin(Long activityId) throws LuckyActivityException {
|
// LuckyActivity activity = luckyActivityMapper.selectByPrimaryKey(activityId);
|
// if (activity == null) {
|
// throw new LuckyActivityException(LuckyActivityException.CODE_NOT_EXIST, "活动不存在");
|
// }
|
//
|
//
|
// if (activity.getState() != LuckyActivity.STATE_STARTED) {
|
// throw new LuckyActivityException(1, "活动不可参与");
|
// }
|
//
|
// if (activity.getCurrentPersonCount() >= activity.getMaxPersonCount()) {
|
// throw new LuckyActivityException(1, "参与人数已满");
|
// }
|
//
|
// 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
|
// * @param count
|
// * @throws LuckyActivityException
|
// */
|
// @RedisCacheEvict(cate = "activity", key = "'activity-detail-'+#activityId")
|
// @Transactional(rollbackFor = Exception.class)
|
// public void addJoinCount(Long activityId, int count) throws LuckyActivityException {
|
// LuckyActivity luckyActivity = luckyActivityMapper.selectByPrimaryKeyForUpdate(activityId);
|
// if (luckyActivity == null) {
|
// throw new LuckyActivityException(LuckyActivityException.CODE_NOT_EXIST, "活动不存在");
|
// }
|
//
|
// LuckyActivityOpenInfo openInfo = luckyActivityOpenInfoManager.getOpenInfo(activityId);
|
// if (openInfo == null) {
|
// throw new LuckyActivityException(1, "活动信息不完整");
|
// }
|
//
|
// int currentCount = luckyActivity.getCurrentPersonCount();
|
// LuckyActivity update = new LuckyActivity();
|
// update.setId(activityId);
|
// update.setCurrentPersonCount(currentCount + count);
|
// update.setUpdateTime(new Date());
|
// updateSelectiveByPrimaryKey(update);
|
// if (update.getCurrentPersonCount().intValue() >= openInfo.getMinPersonCount() && currentCount < openInfo.getMinPersonCount()) {
|
// //达到最低开奖人数
|
// CMQManager.getInstance().addActivityMsg(new ActivityMQMsg(activityId, ActivityMQMsg.TYPE_REACH_MIN_PERSON, new Date()));
|
// }
|
//
|
// if (update.getCurrentPersonCount().intValue() >= luckyActivity.getMaxPersonCount() && currentCount < luckyActivity.getMaxPersonCount()) {
|
// //达到最大开奖人数
|
// CMQManager.getInstance().addActivityMsg(new ActivityMQMsg(activityId, ActivityMQMsg.TYPE_REACH_MAX_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, LiJinMQException {
|
// LuckyActivity luckyActivity = luckyActivityMapper.selectByPrimaryKeyForUpdate(activityId);
|
// if (luckyActivity == null) {
|
// throw new LuckyActivityException(LuckyActivityException.CODE_NOT_EXIST, "活动不存在");
|
// }
|
//
|
// if (luckyActivity.getState() != LuckyActivity.STATE_NOT_STARTED) {
|
// throw new LuckyActivityException(1, "活动尚未处于待启动状态");
|
// }
|
//
|
// //启动活动
|
// setState(activityId, LuckyActivity.STATE_STARTED, "已经启动");
|
// //设置实际开始时间
|
// LuckyActivity update = new LuckyActivity();
|
// update.setId(activityId);
|
// update.setActualStartTime(new Date());
|
// update.setUpdateTime(new Date());
|
// updateSelectiveByPrimaryKey(update);
|
//
|
// //有预计结束时间
|
// if (luckyActivity.getPreFinishTime() != null) {
|
// //添加结束消息
|
// LiJinMQ mq = LuckyMQFactory.createFinishActivity(luckyActivity);
|
// luckyMQService.addMQ(mq);
|
// }
|
//
|
// //尝试删除消息
|
// try {
|
// LiJinMQ mq = LuckyMQFactory.createStartUpActivity(luckyActivity);
|
// luckyMQService.removeUnSendMsg(mq.getTaskId());
|
// } catch (LiJinMQException e) {
|
// e.printStackTrace();
|
// }
|
//
|
// LoggerUtil.activityLogger.info("活动启动成功:activityId-{}", activityId);
|
// }
|
//
|
//
|
// /**
|
// * 结束活动
|
// *
|
// * @param activityId
|
// * @param force 是否强制结束
|
// * @param remarks
|
// */
|
// @RedisCacheEvict(cate = "activity", key = "'activity-detail-'+#activityId")
|
// @Transactional(rollbackFor = Exception.class)
|
// public void finishActivity(Long activityId, boolean force, String remarks) throws LuckyActivityException, LiJinMQException {
|
// LuckyActivity activity = luckyActivityMapper.selectByPrimaryKeyForUpdate(activityId);
|
// if (activity.getState() != LuckyActivity.STATE_STARTED) {
|
// throw new LuckyActivityException(1, "活动未处于已开始状态");
|
// }
|
//
|
// //设置活动处于强制结束状态
|
// if (force) {
|
// setState(activityId, LuckyActivity.STATE_FOUCE_FINISH, remarks);
|
// } else {
|
// setState(activityId, LuckyActivity.STATE_FINISH, remarks);
|
// }
|
// LuckyActivity update = new LuckyActivity();
|
// update.setId(activityId);
|
// update.setActualFinishTime(new Date());
|
// update.setUpdateTime(new Date());
|
// updateSelectiveByPrimaryKey(update);
|
//
|
// activity.setActualFinishTime(update.getActualFinishTime());
|
// //强制结束的不开奖
|
// if (!force) {
|
// //添加开奖消息
|
// LuckyActivityOpenInfo openInfo = luckyActivityOpenInfoManager.getOpenInfo(activityId);
|
// Date openTime = openInfo.getPreOpenTime();
|
// if (openTime == null) {
|
// openTime = new Date();
|
// }
|
// LiJinMQ mq = LuckyMQFactory.createOpenActivity(activityId, openTime);
|
// luckyMQService.addMQ(mq);
|
// }
|
// //尝试删除消息
|
// try {
|
// LiJinMQ mq1 = LuckyMQFactory.createFinishActivity(activity);
|
// luckyMQService.removeUnSendMsg(mq1.getTaskId());
|
// } catch (LiJinMQException e) {
|
// e.printStackTrace();
|
// }
|
//
|
// LoggerUtil.activityLogger.info("活动成功结束:activityId-{} force-{} remarks-{}", activityId, force, remarks);
|
// }
|
//
|
//
|
// /**
|
// * 按主键查询
|
// *
|
// * @param id
|
// * @return
|
// */
|
// public LuckyActivity selectByPrimaryKey(Long id) {
|
// return luckyActivityMapper.selectByPrimaryKey(id);
|
// }
|
//
|
//
|
// /**
|
// * 设置状态
|
// *
|
// * @param activityId
|
// * @param state
|
// * @param stateRemarks
|
// */
|
// @RedisCacheEvict(cate = "activity", key = "'activity-detail-'+#activityId")
|
// @Transactional(rollbackFor = Exception.class)
|
// public void setState(Long activityId, int state, String stateRemarks) {
|
// LuckyActivity activity = new LuckyActivity();
|
// activity.setId(activityId);
|
// activity.setState(state);
|
// activity.setStateRemarks(stateRemarks);
|
// 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")
|
// public void updateSelectiveByPrimaryKey(LuckyActivity activity) {
|
// if (activity.getUpdateTime() == null) {
|
// activity.setUpdateTime(new Date());
|
// }
|
// luckyActivityMapper.updateByPrimaryKeySelective(activity);
|
// }
|
|
}
|