| | |
| | | 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; |
| | |
| | | import org.yeshi.utils.StringUtil; |
| | | |
| | | import javax.annotation.Resource; |
| | | import java.math.BigDecimal; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | |
| | |
| | | @Resource |
| | | private LuckyActivityAwardMaterialDao luckyActivityAwardMaterialDao; |
| | | |
| | | @Resource |
| | | private LuckyActivityAwardMaterialService luckyActivityAwardMaterialService; |
| | | |
| | | /** |
| | | * 添加奖项 |
| | | * |
| | |
| | | * @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()); |
| | | } |
| | |
| | | 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); |
| | |
| | | awards.setMaterial(material); |
| | | } |
| | | } |
| | | awards.setActivityAwardParams(ActivityAwardParams.getBean(awards.getAwardParams())); |
| | | return awards; |
| | | } |
| | | |
| | |
| | | } |
| | | |
| | | |
| | | /** |
| | | * 计算奖项支出 |
| | | * |
| | | * @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; |
| | | } |
| | | |
| | | |
| | | } |