zxl
1 天以前 f97f81f5c118240183d5731745b243dd312c6a7c
framework/src/main/java/cn/lili/modules/lmk/service/impl/PrizeActivityServiceImpl.java
@@ -1,5 +1,11 @@
package cn.lili.modules.lmk.service.impl;
import cn.lili.common.utils.StringUtils;
import cn.lili.modules.lmk.domain.entity.ActivityRefPrize;
import cn.lili.modules.lmk.domain.vo.ActivityRefPrizeInfoVO;
import cn.lili.modules.lmk.enums.general.PrizeActivityStatusEnum;
import cn.lili.modules.lmk.service.ActivityRefPrizeService;
import cn.lili.utils.COSUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
import cn.lili.modules.lmk.domain.entity.PrizeActivity;
import cn.lili.modules.lmk.mapper.PrizeActivityMapper;
@@ -14,7 +20,9 @@
import cn.lili.utils.PageUtil;
import org.springframework.beans.BeanUtils;
import org.springframework.util.Assert;
import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
@@ -28,7 +36,43 @@
@RequiredArgsConstructor
public class PrizeActivityServiceImpl extends ServiceImpl<PrizeActivityMapper, PrizeActivity> implements PrizeActivityService {
    private final ActivityRefPrizeService activityRefPrizeService;
    private final PrizeActivityMapper prizeActivityMapper;
    private final COSUtil cOSUtil;
    @Override
    public Result publishPrizeActivity(String id) {
        PrizeActivity prizeActivity = baseMapper.selectById(id);
        //判断活动是否存在奖品 存在允许开启
        Object data = activityRefPrizeService.getActivityRefPrizeByActivityId(id).get("data");
        if (data instanceof List<?>) {
            List<?> rawList = (List<?>) data;
            List<ActivityRefPrizeInfoVO> list = new ArrayList<>();
            for (Object item : rawList) {
                if (item instanceof ActivityRefPrizeInfoVO) {
                    list.add((ActivityRefPrizeInfoVO) item);
                }
            }
            if (CollectionUtils.isEmpty(list)) {
                return Result.error("开启抽奖活动前请设置奖品");
            }
            // 使用 list
        }
        if (PrizeActivityStatusEnum.OFF.name().equals(prizeActivity.getEnableStatus())) {
            prizeActivity.setEnableStatus(PrizeActivityStatusEnum.ON.name());
            baseMapper.updateById(prizeActivity);
            return Result.ok("启动成功");
        }else {
            prizeActivity.setEnableStatus(PrizeActivityStatusEnum.OFF.name());
            baseMapper.updateById(prizeActivity);
            return Result.ok("关闭成功");
        }
    }
    /**
     * 添加
@@ -38,6 +82,7 @@
    @Override
    public Result add(PrizeActivityForm form) {
        PrizeActivity entity = PrizeActivityForm.getEntityByForm(form, null);
        entity.setEnableStatus(PrizeActivityStatusEnum.OFF.name());
        baseMapper.insert(entity);
        return Result.ok("添加成功");
    }
@@ -54,6 +99,7 @@
        // 为空抛IllegalArgumentException,做全局异常处理
        Assert.notNull(entity, "记录不存在");
        BeanUtils.copyProperties(form, entity);
        entity.setEnableStatus(PrizeActivityStatusEnum.OFF.name());
        baseMapper.updateById(entity);
        return Result.ok("修改成功");
    }
@@ -89,6 +135,30 @@
    public Result page(PrizeActivityQuery query) {
        IPage<PrizeActivityVO> page = PageUtil.getPage(query, PrizeActivityVO.class);
        baseMapper.getPage(page, query);
        //
        for (PrizeActivityVO vo : page.getRecords()) {
            Object data = activityRefPrizeService.getActivityRefPrizeByActivityId(vo.getId()).get("data");
            if (data instanceof List<?>) {
                List<?> rawList = (List<?>) data;
                List<ActivityRefPrizeInfoVO> list = new ArrayList<>();
                for (Object item : rawList) {
                    if (item instanceof ActivityRefPrizeInfoVO) {
                        list.add((ActivityRefPrizeInfoVO) item);
                    }
                }
                vo.setCanSet(CollectionUtils.isEmpty(list));
                // 使用 list
            }
            if (StringUtils.isNotBlank(vo.getActivityCover())){
                vo.setActivityCoverUrl(cOSUtil.getPreviewUrl(vo.getActivityCover()));
            }
            if (StringUtils.isNotBlank(vo.getActivityImg())){
                vo.setActivityImgUrl(cOSUtil.getPreviewUrl(vo.getActivityImg()));
            }
        }
        return Result.ok().data(page.getRecords()).total(page.getTotal());
    }