| | |
| | | package com.ks.lucky.service.impl.remote; |
| | | |
| | | import com.ks.daylucky.exception.LuckySponsorMoneyRecordException; |
| | | import com.ks.lib.common.exception.ParamsException; |
| | | import com.ks.lucky.exception.*; |
| | | import com.ks.lucky.mapper.LuckyActivityMapper; |
| | |
| | | import com.ks.lucky.remote.service.LuckyActivityService; |
| | | import com.ks.lucky.service.LuckyActivityImageService; |
| | | import com.ks.lucky.service.LuckyMQService; |
| | | import com.ks.lucky.service.LuckySponsorMoneyService; |
| | | import com.ks.lucky.service.impl.*; |
| | | import com.ks.lucky.util.annotation.RedisCache; |
| | | import com.ks.lucky.util.annotation.RedisCacheEvict; |
| | |
| | | import org.springframework.validation.annotation.Validated; |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.math.BigDecimal; |
| | | import java.util.ArrayList; |
| | | import java.util.Arrays; |
| | | import java.util.Date; |
| | |
| | | @Resource |
| | | private LuckyActivityImageService luckyActivityImageService; |
| | | |
| | | @Resource |
| | | private LuckySponsorMoneyService luckySponsorMoneyService; |
| | | |
| | | private void notNull(LuckyActivity activity) throws LuckyActivityException { |
| | | if (activity == null) { |
| | |
| | | public void publishActivity(Long activityId) throws LuckyActivityException { |
| | | LuckyActivity activity = luckyActivityMapper.selectByPrimaryKeyForUpdate(activityId); |
| | | checkActivityForPublish(activity); |
| | | BigDecimal money = luckyActivityAwardManager.computeAwardsMoney(activityId); |
| | | |
| | | |
| | | if (money.compareTo(new BigDecimal(0)) > 0) { |
| | | try { |
| | | luckySponsorMoneyService.publishActivity(activity.getSponsorId(), activityId, money); |
| | | } catch (LuckySponsorException e) { |
| | | throw new LuckyActivityException(e.getCode(), e.getMsg()); |
| | | } catch (LuckySponsorMoneyRecordException e) { |
| | | throw new LuckyActivityException(e.getCode(), e.getMsg()); |
| | | } catch (ParamsException e) { |
| | | throw new LuckyActivityException(e.getCode(), e.getMsg()); |
| | | } |
| | | } |
| | | luckyActivityManager.setState(activityId, LuckyActivity.STATE_NOT_STARTED, "已发布"); |
| | | |
| | | |
| | | //加入代发消息列表 |
| | | try { |
| | |
| | | |
| | | @Transactional(rollbackFor = Exception.class) |
| | | @Override |
| | | public void publishActivity(Long activityId, Date startTime, Date finishTime) throws LuckyActivityException { |
| | | //设置开始时间与结束时间 |
| | | LuckyActivity activity = new LuckyActivity(); |
| | | activity.setId(activityId); |
| | | activity.setPreStartTime(startTime); |
| | | activity.setPreFinishTime(finishTime); |
| | | activity.setUpdateTime(new Date()); |
| | | luckyActivityManager.updateSelectiveByPrimaryKey(activity); |
| | | //设置开奖时间 |
| | | LuckyActivityOpenInfo openInfo = luckyActivityOpenInfoManager.getOpenInfo(activityId); |
| | | if (openInfo != null && openInfo.getPreOpenTime() == null) { |
| | | LuckyActivityOpenInfo updateOpenInfo = new LuckyActivityOpenInfo(); |
| | | updateOpenInfo.setId(openInfo.getId()); |
| | | //结束后5分钟开奖 |
| | | updateOpenInfo.setPreOpenTime(new Date(finishTime.getTime() + 1000 * 60 * 5)); |
| | | try { |
| | | luckyActivityOpenInfoManager.updateOpenInfo(updateOpenInfo, activityId); |
| | | } catch (LuckyActivityOpenInfoException e) { |
| | | } |
| | | } |
| | | |
| | | publishActivity(activityId); |
| | | } |
| | | |
| | | @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) { |