admin
2021-01-08 7e389247b3b2877c12f1eaae6e33c9c33e91d2dd
service-lucky/src/main/java/com/ks/lucky/service/impl/LuckyActivityAwardManager.java
@@ -1,10 +1,16 @@
package com.ks.lucky.service.impl;
import com.ks.lib.common.exception.ParamsException;
import com.ks.lucky.dao.LuckyActivityAwardMaterialDao;
import com.ks.lucky.exception.LuckyActivityAwardException;
import com.ks.lucky.exception.LuckyActivityAwardMaterialException;
import com.ks.lucky.mapper.LuckyActivityAwardsMapper;
import com.ks.lucky.pojo.DO.LuckyActivityAwardMaterial;
import com.ks.lucky.pojo.DO.LuckyActivityAwards;
import com.ks.lucky.query.ActivityAwardQuery;
import com.ks.lucky.remote.service.LuckyActivityAwardMaterialService;
import com.ks.lucky.util.annotation.RedisCache;
import com.ks.lucky.util.annotation.RedisCacheEvict;
import org.springframework.stereotype.Component;
import org.springframework.validation.annotation.Validated;
import org.yeshi.utils.StringUtil;
@@ -23,7 +29,10 @@
    private LuckyActivityAwardsMapper luckyActivityAwardsMapper;
    @Resource
    private LuckyActivityAwardMaterialManager luckyActivityAwardMaterialManager;
    private LuckyActivityAwardMaterialDao luckyActivityAwardMaterialDao;
    @Resource
    private LuckyActivityAwardMaterialService luckyActivityAwardMaterialService;
    /**
     * 添加奖项
@@ -32,10 +41,25 @@
     * @throws LuckyActivityAwardException
     */
    @Validated
    public void addAward(LuckyActivityAwards award) throws LuckyActivityAwardException {
    public void addAward(LuckyActivityAwards award) throws LuckyActivityAwardException, LuckyActivityAwardMaterialException, ParamsException {
        if (award.getCreateTime() == null) {
            award.setCreateTime(new Date());
        }
        ActivityAwardQuery query = new ActivityAwardQuery();
        query.activityId = award.getActivityId();
        query.level = award.getLevel();
        query.count = 1;
        List<LuckyActivityAwards> list = luckyActivityAwardsMapper.list(query);
        if (list != null && list.size() > 0) {
            throw new LuckyActivityAwardException(LuckyActivityAwardException.CODE_EXIST, "同等级的奖项已经存在");
        }
        if (award.getMaterial() != null && award.getMaterial().getId() == null) {
            String id = luckyActivityAwardMaterialService.addAwardMaterial(award.getMaterial());
            award.getMaterial().setId(id);
            award.setMaterialId(id);
        }
        luckyActivityAwardsMapper.insertSelective(award);
    }
@@ -46,7 +70,10 @@
     * @param award
     * @throws LuckyActivityAwardException
     */
    public void updateAward(LuckyActivityAwards award) throws LuckyActivityAwardException {
    @RedisCacheEvict(cate = "activity", key = "'activity-detail-'+#activityId")
    @RedisCacheEvict(cate = "activity-awards", key = "'getAwardList-'+#activityId")
    @RedisCacheEvict(cate = "activity-awards", key = "'getAwardDetail-'+#award.id")
    public void updateAward(LuckyActivityAwards award, Long activityId) throws LuckyActivityAwardException {
        if (award.getId() == null) {
            throw new LuckyActivityAwardException(LuckyActivityAwardException.CODE_PARAMS_NOT_ENOUGH, "参数不完整");
        }
@@ -64,6 +91,7 @@
     * @param activityId
     * @return
     */
    @RedisCache(cate = "activity-awards", key = "'getAwardList-'+#activityId", second = 3600)
    public List<LuckyActivityAwards> getAwardList(Long activityId) {
        ActivityAwardQuery query = new ActivityAwardQuery();
        query.activityId = activityId;
@@ -78,10 +106,11 @@
     * @param id
     * @return
     */
    @RedisCache(cate = "activity-awards", key = "'getAwardDetail-'+#id", second = 3600)
    public LuckyActivityAwards getAwardDetail(Long id) {
        LuckyActivityAwards awards = luckyActivityAwardsMapper.selectByPrimaryKey(id);
        if (!StringUtil.isNullOrEmpty(awards.getMaterialId())) {
            LuckyActivityAwardMaterial material = luckyActivityAwardMaterialManager.getAwardMaterialDetail(awards.getMaterialId());
            LuckyActivityAwardMaterial material = luckyActivityAwardMaterialDao.get(awards.getMaterialId());
            if (material != null) {
                awards.setMaterial(material);
            }
@@ -95,10 +124,13 @@
     * @param id
     */
    public void deleteAward(Long id) {
    @RedisCacheEvict(cate = "activity", key = "'activity-detail-'+#activityId")
    @RedisCacheEvict(cate = "activity-awards", key = "'getAwardList-'+#activityId")
    @RedisCacheEvict(cate = "activity-awards", key = "'getAwardDetail-'+#id")
    public void deleteAward(Long id, Long activityId) {
        LuckyActivityAwards awards = getAwardDetail(id);
        if (awards.getMaterial() != null) {
            luckyActivityAwardMaterialManager.deleteAwardMaterial(awards.getMaterial().getId());
            luckyActivityAwardMaterialDao.delete(awards.getMaterial().getId());
        }
        luckyActivityAwardsMapper.deleteByPrimaryKey(id);
    }