admin
2021-01-15 5405154d6979f1b50ce2d881bb164b1acca80b6d
service-lucky/src/main/java/com/ks/lucky/service/impl/remote/LuckyActivityServiceImpl.java
@@ -1,5 +1,6 @@
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;
@@ -8,6 +9,7 @@
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;
@@ -17,6 +19,7 @@
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;
@@ -49,6 +52,8 @@
    @Resource
    private LuckyActivityImageService luckyActivityImageService;
    @Resource
    private LuckySponsorMoneyService luckySponsorMoneyService;
    private void notNull(LuckyActivity activity) throws LuckyActivityException {
        if (activity == null) {
@@ -216,9 +221,21 @@
    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 {
@@ -230,6 +247,32 @@
    @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) {