admin
2021-01-18 d6df4ca797ee1c6ce8fa78768f5425f187734bd9
service-lucky/src/main/java/com/ks/lucky/service/impl/LuckyActivityManager.java
@@ -8,11 +8,13 @@
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;
@@ -147,7 +149,7 @@
        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()));
@@ -165,6 +167,7 @@
     *
     * @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);
@@ -183,7 +186,7 @@
        update.setId(activityId);
        update.setActualStartTime(new Date());
        update.setUpdateTime(new Date());
        luckyActivityMapper.updateByPrimaryKeySelective(update);
        updateSelectiveByPrimaryKey(update);
        //有预计结束时间
        if (luckyActivity.getPreFinishTime() != null) {
@@ -200,7 +203,7 @@
            e.printStackTrace();
        }
        LoggerUtil.activityLogger.info("活动启动成功:activityId-{}", activityId);
    }
@@ -229,13 +232,18 @@
        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);
        }
        //尝试删除消息
@@ -246,7 +254,7 @@
            e.printStackTrace();
        }
        LoggerUtil.activityLogger.info("活动成功结束:activityId-{} force-{} remarks-{}", activityId, force, remarks);
    }
@@ -278,6 +286,7 @@
        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")