framework/src/main/java/cn/lili/modules/lmk/domain/entity/PrizeDraw.java
@@ -28,7 +28,7 @@ @TableField("coupon_id") /** 优惠卷id */ private Long couponId; private String couponId; @TableField("prize_content") /** 奖品内容 */ framework/src/main/java/cn/lili/modules/lmk/domain/query/PrizeDrawQuery.java
@@ -18,5 +18,13 @@ @Data @ApiModel(value = "PrizeDraw查询参数", description = "抽奖活动奖品查询参数") public class PrizeDrawQuery extends AbsQuery { /** * 奖品名 */ private String prizeName; /** * 奖品类型 */ private String prizeType; } framework/src/main/java/cn/lili/modules/lmk/domain/vo/PrizeDrawVO.java
@@ -48,6 +48,9 @@ @ApiModelProperty("奖品图片") private String prizeImg; private String prizeCoverUrl; private String prizeImgUrl; public static PrizeDrawVO getVoByEntity(@NonNull PrizeDraw entity, PrizeDrawVO vo) { if(vo == null) { vo = new PrizeDrawVO(); framework/src/main/java/cn/lili/modules/lmk/service/ActivityRefPrizeService.java
@@ -16,6 +16,20 @@ public interface ActivityRefPrizeService extends IService<ActivityRefPrize> { /** * 根据抽奖活动id 返回奖品集合 * @param prizeActivityId * @return */ Result getActivityRefPrizeByActivityId(String prizeActivityId); /** * 更具奖品id活动相关活动 * @param prizeId * @return */ Result getPrizeByIdAndPrizeActivityId(String prizeId); /** * 添加 * @param form * @return framework/src/main/java/cn/lili/modules/lmk/service/PrizeDrawService.java
@@ -14,6 +14,12 @@ * @since 2025-08-14 */ public interface PrizeDrawService extends IService<PrizeDraw> { /** * 返回能否修改,以及若是优惠劵类型,返回优惠劵信息。 * @param prizeDrawId * @return */ Result canUpDatePrizeDraw(String prizeDrawId); /** * 添加 @@ -22,6 +28,7 @@ */ Result add(PrizeDrawForm form); /** * 修改 * @param form framework/src/main/java/cn/lili/modules/lmk/service/impl/ActivityRefPrizeServiceImpl.java
@@ -5,6 +5,7 @@ import cn.lili.modules.lmk.mapper.ActivityRefPrizeMapper; import cn.lili.modules.lmk.service.ActivityRefPrizeService; import cn.lili.base.Result; import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import cn.lili.modules.lmk.domain.form.ActivityRefPrizeForm; import cn.lili.modules.lmk.domain.vo.ActivityRefPrizeVO; @@ -14,6 +15,7 @@ import cn.lili.utils.PageUtil; import org.springframework.beans.BeanUtils; import org.springframework.util.Assert; import org.springframework.util.CollectionUtils; import java.util.List; import java.util.stream.Collectors; @@ -30,6 +32,25 @@ private final ActivityRefPrizeMapper activityRefPrizeMapper; @Override public Result getActivityRefPrizeByActivityId(String prizeActivityId){ List<ActivityRefPrize> activityRefPrizeList = new LambdaQueryChainWrapper<>(baseMapper) .eq(ActivityRefPrize::getPrizeActivityId,prizeActivityId) .eq(ActivityRefPrize::getDeleteFlag,Boolean.FALSE) .list(); return Result.ok().data(activityRefPrizeList); } @Override public Result getPrizeByIdAndPrizeActivityId(String prizeId){ List<ActivityRefPrize> activityRefPrizeList = new LambdaQueryChainWrapper<>(baseMapper) .eq(ActivityRefPrize::getPrizeId,prizeId) .eq(ActivityRefPrize::getDeleteFlag,Boolean.FALSE) .list(); return Result.ok().data(activityRefPrizeList); } /** * 添加 * @param form framework/src/main/java/cn/lili/modules/lmk/service/impl/PrizeDrawServiceImpl.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.service.ActivityRefPrizeService; import cn.lili.modules.promotion.entity.vos.CouponVO; import cn.lili.modules.promotion.service.CouponService; import cn.lili.utils.COSUtil; import com.baomidou.mybatisplus.core.metadata.IPage; import cn.lili.modules.lmk.domain.entity.PrizeDraw; import cn.lili.modules.lmk.mapper.PrizeDrawMapper; @@ -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; @@ -29,6 +37,41 @@ public class PrizeDrawServiceImpl extends ServiceImpl<PrizeDrawMapper, PrizeDraw> implements PrizeDrawService { private final PrizeDrawMapper prizeDrawMapper; private final ActivityRefPrizeService activityRefPrizeService; private final CouponService couponService; private final COSUtil cOSUtil; @Override public Result canUpDatePrizeDraw(String prizeDrawId) { PrizeDraw prizeDraw = baseMapper.selectById(prizeDrawId); CouponVO detail = new CouponVO(); if (StringUtils.isNotBlank(prizeDraw.getCouponId())){ detail = couponService.getDetail(prizeDraw.getCouponId()); } Result result = Result.ok(); result.data(detail); Object data = activityRefPrizeService.getPrizeByIdAndPrizeActivityId(prizeDrawId).get("data"); if (data instanceof List<?>) { List<?> rawList = (List<?>) data; List<ActivityRefPrize> list = new ArrayList<>(); for (Object item : rawList) { if (item instanceof ActivityRefPrize) { list.add((ActivityRefPrize) item); } } if (CollectionUtils.isEmpty(list)) { return result.put("state",true); }else{ return result.put("state",false); } // 使用 list } return result.put("state",false); } /** * 添加 @@ -50,7 +93,6 @@ @Override public Result update(PrizeDrawForm form) { PrizeDraw entity = baseMapper.selectById(form.getId()); // 为空抛IllegalArgumentException,做全局异常处理 Assert.notNull(entity, "记录不存在"); BeanUtils.copyProperties(form, entity); @@ -89,6 +131,14 @@ public Result page(PrizeDrawQuery query) { IPage<PrizeDrawVO> page = PageUtil.getPage(query, PrizeDrawVO.class); baseMapper.getPage(page, query); for (PrizeDrawVO vo : page.getRecords()) { if (vo.getPrizeCover() != null && StringUtils.isNotBlank(vo.getPrizeCover())){ vo.setPrizeCoverUrl(cOSUtil.getPreviewUrl(vo.getPrizeCover())); } if (vo.getPrizeImg() != null && StringUtils.isNotBlank(vo.getPrizeImg())){ vo.setPrizeImgUrl(cOSUtil.getPreviewUrl(vo.getPrizeImg())); } } return Result.ok().data(page.getRecords()).total(page.getTotal()); } framework/src/main/resources/mapper/lmk/PrizeDrawMapper.xml
@@ -51,6 +51,12 @@ lmk_prize_draw LPD WHERE LPD.delete_flag = 0 <if test="query.prizeName != null and query.prizeName != ''"> AND LPD.prize_name like concat('%',#{query.prizeName},'%') </if> <if test="query.prizeType != null and query.prizeType != ''"> AND LPD.prize_type = #{query.prizeType} </if> </select> </mapper> manager-api/src/main/java/cn/lili/controller/lmk/PrizeDrawController.java
New file @@ -0,0 +1,56 @@ package cn.lili.controller.lmk; import cn.lili.base.Result; import cn.lili.modules.lmk.domain.entity.ActivityRefPrize; import cn.lili.modules.lmk.domain.form.PrizeDrawForm; import cn.lili.modules.lmk.domain.query.PrizeDrawQuery; import cn.lili.modules.lmk.service.ActivityRefPrizeService; import cn.lili.modules.lmk.service.PrizeDrawService; import lombok.RequiredArgsConstructor; import org.springframework.util.CollectionUtils; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import java.util.ArrayList; import java.util.List; /** * lmk-shop-java * * @author : zxl * @date : 2025-08-18 15:49 **/ @Validated @RequiredArgsConstructor @RestController @RequestMapping("/manager/lmk/prizeDraw") public class PrizeDrawController { private final PrizeDrawService prizeDrawService; private final ActivityRefPrizeService activityRefPrizeService; @GetMapping public Result getPage(PrizeDrawQuery query){ return prizeDrawService.page(query); } @GetMapping("/{id}") public Result detail(@PathVariable("id") String id){ return prizeDrawService.detail(id); } @PutMapping public Result edit(@RequestBody PrizeDrawForm form){ return prizeDrawService.update(form); } @PostMapping public Result add(@RequestBody PrizeDrawForm form){ return prizeDrawService.add(form); } @DeleteMapping("/{id}") public Result del(@PathVariable("id") String id){ return prizeDrawService.removeById(id); } @GetMapping("/canUpDatePrizeDraw/{id}") public Result canUpDatePrizeDraw(@PathVariable("id") String id){ return prizeDrawService.canUpDatePrizeDraw(id); } }