admin
2021-01-15 5405154d6979f1b50ce2d881bb164b1acca80b6d
service-lucky/src/main/java/com/ks/lucky/service/impl/LuckyActivityAwardManager.java
@@ -1,11 +1,15 @@
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.pojo.DTO.ActivityAwardParams;
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;
@@ -13,6 +17,7 @@
import org.yeshi.utils.StringUtil;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
@@ -28,6 +33,9 @@
    @Resource
    private LuckyActivityAwardMaterialDao luckyActivityAwardMaterialDao;
    @Resource
    private LuckyActivityAwardMaterialService luckyActivityAwardMaterialService;
    /**
     * 添加奖项
     *
@@ -35,7 +43,7 @@
     * @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());
        }
@@ -46,6 +54,12 @@
        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);
@@ -103,6 +117,7 @@
                awards.setMaterial(material);
            }
        }
        awards.setActivityAwardParams(ActivityAwardParams.getBean(awards.getAwardParams()));
        return awards;
    }
@@ -124,4 +139,24 @@
    }
    /**
     * 计算奖项支出
     *
     * @param activityId
     * @return
     */
    public BigDecimal computeAwardsMoney(Long activityId) {
        BigDecimal money = new BigDecimal(0);
        List<LuckyActivityAwards> list = getAwardList(activityId);
        for (LuckyActivityAwards awards : list) {
            ActivityAwardParams params = ActivityAwardParams.getBean(awards.getAwardParams());
            if (params.getType() == ActivityAwardParams.ActivityAwardTypeEnum.alipayRedPackage) {
                money = money.add(params.getRedPackage());
            }
        }
        return money;
    }
}