From f0893131c84e18a40daa04b73c0573aac989f9d2 Mon Sep 17 00:00:00 2001 From: zxl <763096477@qq.com> Date: 星期一, 25 八月 2025 15:00:39 +0800 Subject: [PATCH] 抽奖活动弹窗 --- framework/src/main/java/cn/lili/modules/lmk/service/impl/PrizeActivityServiceImpl.java | 115 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 114 insertions(+), 1 deletions(-) diff --git a/framework/src/main/java/cn/lili/modules/lmk/service/impl/PrizeActivityServiceImpl.java b/framework/src/main/java/cn/lili/modules/lmk/service/impl/PrizeActivityServiceImpl.java index 619d1eb..2bb6dff 100644 --- a/framework/src/main/java/cn/lili/modules/lmk/service/impl/PrizeActivityServiceImpl.java +++ b/framework/src/main/java/cn/lili/modules/lmk/service/impl/PrizeActivityServiceImpl.java @@ -1,20 +1,32 @@ package cn.lili.modules.lmk.service.impl; +import cn.lili.common.utils.StringUtils; +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; 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; import org.springframework.beans.BeanUtils; import org.springframework.util.Assert; +import org.springframework.util.CollectionUtils; +import java.util.ArrayList; +import java.util.Date; import java.util.List; import java.util.stream.Collectors; @@ -28,7 +40,82 @@ @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 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鐨勬椿鍔ㄤ负寮圭獥娲诲姩锛屽皢鍏朵粬娲诲姩鐨勫脊绐楃姸鎬佹敼涓篺alse. + 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) { + 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 +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("娣诲姞鎴愬姛"); } @@ -54,6 +143,7 @@ // 涓虹┖鎶汭llegalArgumentException锛屽仛鍏ㄥ眬寮傚父澶勭悊 Assert.notNull(entity, "璁板綍涓嶅瓨鍦�"); BeanUtils.copyProperties(form, entity); + entity.setEnableStatus(PrizeActivityStatusEnum.OFF.name()); baseMapper.updateById(entity); return Result.ok("淇敼鎴愬姛"); } @@ -89,6 +179,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()); } @@ -103,7 +217,6 @@ Assert.notNull(vo, "璁板綍涓嶅瓨鍦�"); return Result.ok().data(vo); } - /** * 鍒楄〃 * @return -- Gitblit v1.8.0