admin
2020-11-30 6e281067fe81dbf180c63a2833f74c1615d32f18
抽奖服务完善
3个文件已修改
146 ■■■■ 已修改文件
service-lucky/src/main/java/com/ks/lucky/service/impl/LuckyActivityManager.java 24 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-lucky/src/main/java/com/ks/lucky/service/impl/remote/LuckyActivityOpenServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-lucky/src/main/java/com/ks/lucky/service/impl/remote/LuckyActivityServiceImpl.java 118 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
service-lucky/src/main/java/com/ks/lucky/service/impl/LuckyActivityManager.java
@@ -104,13 +104,7 @@
        }
        //启动活动
        LuckyActivity update = new LuckyActivity();
        update.setId(activityId);
        update.setUpdateTime(new Date());
        update.setState(LuckyActivity.STATE_STARTED);
        update.setStateRemarks("已经启动");
        luckyActivityMapper.updateByPrimaryKeySelective(update);
        setState(activityId, LuckyActivity.STATE_STARTED, "已经启动");
    }
@@ -125,4 +119,20 @@
    }
    /**
     * 设置状态
     *
     * @param activityId
     * @param state
     * @param stateRemarks
     */
    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());
        luckyActivityMapper.updateByPrimaryKeySelective(activity);
    }
}
service-lucky/src/main/java/com/ks/lucky/service/impl/remote/LuckyActivityOpenServiceImpl.java
@@ -103,7 +103,7 @@
        //更新状态
        LuckyActivity update = new LuckyActivity();
        update.setId(activityId);
        update.setState(LuckyActivity.STATE_PRE_OPEND);
        update.setState(LuckyActivity.STATE_PRE_OPENED);
        update.setStateRemarks("预开奖成功");
        update.setUpdateTime(new Date());
        luckyActivityMapper.updateByPrimaryKeySelective(update);
@@ -113,7 +113,7 @@
    @Override
    public void showOpenAward(Long activityId) throws LuckyActivityException {
        LuckyActivity activity = luckyActivityMapper.selectByPrimaryKeyForUpdate(activityId);
        if (activity.getState() != LuckyActivity.STATE_PRE_OPEND) {
        if (activity.getState() != LuckyActivity.STATE_PRE_OPENED) {
            throw new LuckyActivityException(1, "尚未开奖");
        }
service-lucky/src/main/java/com/ks/lucky/service/impl/remote/LuckyActivityServiceImpl.java
@@ -11,10 +11,7 @@
import com.ks.lucky.query.ActivityDaoQuery;
import com.ks.lucky.remote.service.LuckyActivityService;
import com.ks.lucky.service.LuckyMQService;
import com.ks.lucky.service.impl.AppManager;
import com.ks.lucky.service.impl.LuckyActivityAwardManager;
import com.ks.lucky.service.impl.LuckyActivityOpenInfoManager;
import com.ks.lucky.service.impl.LuckyActivitySponsorInfoManager;
import com.ks.lucky.service.impl.*;
import com.ks.lucky.util.mq.LuckyMQFactory;
import org.apache.dubbo.config.annotation.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -29,6 +26,9 @@
    @Resource
    private LuckyActivityMapper luckyActivityMapper;
    @Resource
    private LuckyActivityManager luckyActivityManager;
    @Resource
    private LuckyActivityOpenInfoManager luckyActivityOpenInfoManager;
@@ -47,6 +47,12 @@
    private Long getAppId(String appKey) throws AppException {
        return appManager.getAppId(appKey);
    }
    private void notNull(LuckyActivity activity) throws LuckyActivityException {
        if (activity == null) {
            throw new LuckyActivityException(LuckyActivityException.CODE_NOT_EXIST, "活动不存在");
        }
    }
    @Override
@@ -90,6 +96,17 @@
        return activity.getId();
    }
    @Override
    public void submitVerify(Long activityId) throws LuckyActivityException {
        LuckyActivity activity = luckyActivityMapper.selectByPrimaryKeyForUpdate(activityId);
        notNull(activity);
        if (activity.getState() != LuckyActivity.STATE_NOT_SUBMIT_VERIFY && activity.getState() != LuckyActivity.STATE_VERIFY_REJECT) {
            throw new LuckyActivityException(1, "活动未处于审核被拒绝/未提交审核状态");
        }
        luckyActivityManager.setState(activityId, LuckyActivity.STATE_WAITING_VERIFY, "等待审核");
    }
    /**
     * 检查要发布的活动
@@ -97,9 +114,7 @@
     * @param activity
     */
    private void checkActivityForPublish(LuckyActivity activity) throws LuckyActivityException {
        if (activity == null) {
            throw new LuckyActivityException(LuckyActivityException.CODE_NOT_EXIST, "活动不存在");
        }
        notNull(activity);
        if (activity.getStartTime() == null) {
            throw new LuckyActivityException(1, "活动开始时间未设置");
        }
@@ -145,11 +160,8 @@
        LuckyActivity activity = luckyActivityMapper.selectByPrimaryKeyForUpdate(activityId);
        checkActivityForPublish(activity);
        LuckyActivity update = new LuckyActivity();
        update.setId(activityId);
        update.setState(LuckyActivity.STATE_NOT_STARTED);
        update.setStateRemarks("已发布");
        update.setUpdateTime(new Date());
        luckyActivityManager.setState(activityId, LuckyActivity.STATE_NOT_STARTED, "已发布");
        //加入代发消息列表
        try {
@@ -159,19 +171,97 @@
        }
    }
    @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) {
            throw new LuckyActivityException(2, "活动尚未处于已发布状态");
        }
        luckyActivityManager.startUpActivity(activityId);
    }
    @Transactional(rollbackFor = Exception.class)
    @Override
    public void verifyActivity(Long activityId, boolean pass, String remarks) throws LuckyActivityException {
        LuckyActivity activity = luckyActivityMapper.selectByPrimaryKeyForUpdate(activityId);
        if (activity.getState() != LuckyActivity.STATE_WAITING_VERIFY) {
            throw new LuckyActivityException(2, "活动尚未处于审核状态");
        }
        //审核活动
        //审核通过
        if (pass) {
            luckyActivityManager.setState(activityId, LuckyActivity.STATE_NOT_PUBLISH, remarks);
        } else {
            //审核未通过
            luckyActivityManager.setState(activityId, LuckyActivity.STATE_VERIFY_REJECT, remarks);
        }
    }
    @Transactional(rollbackFor = Exception.class)
    @Override
    public void forceFinishActivity(Long activityId, String remarks) throws LuckyActivityException {
        LuckyActivity activity = luckyActivityMapper.selectByPrimaryKeyForUpdate(activityId);
        notNull(activity);
        if (activity.getState() != LuckyActivity.STATE_STARTED) {
            throw new LuckyActivityException(1, "活动未处于已开始状态");
        }
        //设置活动处于强制结束状态
        luckyActivityManager.setState(activityId, LuckyActivity.STATE_FOUCE_FINISH, remarks);
    }
    @Transactional(rollbackFor = Exception.class)
    @Override
    public void cancelPublish(Long activityId, String remarks) throws LuckyActivityException {
        LuckyActivity activity = luckyActivityMapper.selectByPrimaryKeyForUpdate(activityId);
        notNull(activity);
        if (activity.getState() != LuckyActivity.STATE_NOT_STARTED) {
            throw new LuckyActivityException(1, "活动未处于已发布状态");
        }
        //设置活动为未发布状态
        luckyActivityManager.setState(activityId, LuckyActivity.STATE_NOT_PUBLISH, remarks);
    }
    @Override
    public LuckyActivity getActivityDetail(Long id) {
        return null;
        LuckyActivity activity = luckyActivityMapper.selectByPrimaryKey(id);
        if (activity == null) {
            return null;
        }
        //加载开奖信息
        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());
        activity.setAwardsList(awardsList);
        return activity;
    }
    @Override
    public void updateActivity(LuckyActivity activity) throws LuckyActivityException {
        if (activity.getState() != null) {
            throw new LuckyActivityException(1, "不能更改活动状态");
        }
        activity.setUpdateTime(new Date());
        luckyActivityMapper.updateByPrimaryKeySelective(activity);
    }