zxl
昨天 f0893131c84e18a40daa04b73c0573aac989f9d2
framework/src/main/java/cn/lili/modules/lmk/service/impl/PrizeActivityServiceImpl.java
@@ -1,7 +1,6 @@
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;
@@ -11,10 +10,14 @@
import cn.lili.modules.lmk.mapper.PrizeActivityMapper;
import cn.lili.modules.lmk.service.PrizeActivityService;
import cn.lili.base.Result;
import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper;
import com.baomidou.mybatisplus.extension.conditions.update.LambdaUpdateChainWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import cn.lili.modules.lmk.domain.form.PrizeActivityForm;
import cn.lili.modules.lmk.domain.vo.PrizeActivityVO;
import cn.lili.modules.lmk.domain.query.PrizeActivityQuery;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
import org.springframework.stereotype.Service;
import lombok.RequiredArgsConstructor;
import cn.lili.utils.PageUtil;
@@ -23,6 +26,7 @@
import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
@@ -40,6 +44,45 @@
    private final PrizeActivityMapper prizeActivityMapper;
    private final COSUtil cOSUtil;
    @Override
    public Result getPopup() {
        //获得弹窗活动
        PrizeActivity prizeActivity = new LambdaQueryChainWrapper<>(baseMapper)
                .eq(PrizeActivity::getDeleteFlag,Boolean.FALSE)
                .eq(PrizeActivity::getPopup,Boolean.TRUE)
                .one();
        PrizeActivityVO prizeActivityVO = new PrizeActivityVO();
        PrizeActivityVO vo = PrizeActivityVO.getVoByEntity(prizeActivity, prizeActivityVO);
        if (StringUtils.isNotBlank(vo.getActivityCover())){
            vo.setActivityCoverUrl(cOSUtil.getPreviewUrl(vo.getActivityCover()));
        }
        return Result.ok().data(prizeActivityVO);
    }
    @Override
    public Result popup(String id){
        //设置id的活动为弹窗活动,将其他活动的弹窗状态改为false.
        PrizeActivity prizeActivity = baseMapper.selectById(id);
        if (prizeActivity.getPopup()){
            prizeActivity.setPopup(Boolean.FALSE);
            prizeActivityMapper.updateById(prizeActivity);
            return Result.ok("取消弹窗活动成功!");
        }else {
            prizeActivity.setPopup(Boolean.TRUE);
            //修改其他活动的推荐状态后,修改该对象的修改状态
            prizeActivityMapper.updateById(prizeActivity);
            new LambdaUpdateChainWrapper<>(baseMapper).eq(PrizeActivity::getPopup,Boolean.TRUE)
                    .eq(PrizeActivity::getDeleteFlag,Boolean.FALSE)
                    .set(PrizeActivity::getPopup, Boolean.FALSE)
                    .ne(PrizeActivity::getId, prizeActivity.getId())
                    .set(PrizeActivity::getUpdateTime, new Date())
                    .update();
            return Result.ok("弹窗活动开启成功");
        }
    }
    @Override
    public Result publishPrizeActivity(String id) {
@@ -61,14 +104,12 @@
            }
            // 使用 list
        }
        if (PrizeActivityStatusEnum.OFF.getDescription().equals(prizeActivity.getEnableStatus())) {
            prizeActivity.setEnableStatus(PrizeActivityStatusEnum.ON.getDescription());
        if (PrizeActivityStatusEnum.OFF.name().equals(prizeActivity.getEnableStatus())) {
            prizeActivity.setEnableStatus(PrizeActivityStatusEnum.ON.name());
            baseMapper.updateById(prizeActivity);
            return Result.ok("启动成功");
        }else {
            prizeActivity.setEnableStatus(PrizeActivityStatusEnum.OFF.getDescription());
            prizeActivity.setEnableStatus(PrizeActivityStatusEnum.OFF.name());
            baseMapper.updateById(prizeActivity);
            return Result.ok("关闭成功");
        }
@@ -84,6 +125,8 @@
    @Override
    public Result add(PrizeActivityForm form) {
        PrizeActivity entity = PrizeActivityForm.getEntityByForm(form, null);
        entity.setEnableStatus(PrizeActivityStatusEnum.OFF.name());
        entity.setPopup(Boolean.FALSE);
        baseMapper.insert(entity);
        return Result.ok("添加成功");
    }
@@ -100,6 +143,7 @@
        // 为空抛IllegalArgumentException,做全局异常处理
        Assert.notNull(entity, "记录不存在");
        BeanUtils.copyProperties(form, entity);
        entity.setEnableStatus(PrizeActivityStatusEnum.OFF.name());
        baseMapper.updateById(entity);
        return Result.ok("修改成功");
    }
@@ -135,8 +179,23 @@
    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()));
            }
@@ -158,7 +217,6 @@
        Assert.notNull(vo, "记录不存在");
        return Result.ok().data(vo);
    }
    /**
     * 列表
     * @return