admin
2020-12-02 a2fe11f549f52e887937dbdb63d967a09d3a3f21
service-lucky/src/main/java/com/ks/lucky/service/impl/LuckyActivityManager.java
@@ -1,11 +1,15 @@
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;
@@ -21,6 +25,9 @@
    @Resource
    private LuckyActivityOpenInfoManager luckyActivityOpenInfoManager;
    @Resource
    private LuckyMQService luckyMQService;
    /**
@@ -46,6 +53,23 @@
        }
        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;
    }
    /**
@@ -90,7 +114,7 @@
     *
     * @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, "活动不存在");
@@ -108,6 +132,23 @@
        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();
        }
    }
@@ -119,7 +160,7 @@
     * @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, "活动未处于已开始状态");
@@ -137,6 +178,22 @@
        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();
        }
    }