zxl
2025-08-19 bd9e6d9b7f673c5f55ef40b42b37ecd78ab36893
奖品
8个文件已修改
1个文件已添加
169 ■■■■■ 已修改文件
framework/src/main/java/cn/lili/modules/lmk/domain/entity/PrizeDraw.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
framework/src/main/java/cn/lili/modules/lmk/domain/query/PrizeDrawQuery.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
framework/src/main/java/cn/lili/modules/lmk/domain/vo/PrizeDrawVO.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
framework/src/main/java/cn/lili/modules/lmk/service/ActivityRefPrizeService.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
framework/src/main/java/cn/lili/modules/lmk/service/PrizeDrawService.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
framework/src/main/java/cn/lili/modules/lmk/service/impl/ActivityRefPrizeServiceImpl.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
framework/src/main/java/cn/lili/modules/lmk/service/impl/PrizeDrawServiceImpl.java 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
framework/src/main/resources/mapper/lmk/PrizeDrawMapper.xml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
manager-api/src/main/java/cn/lili/controller/lmk/PrizeDrawController.java 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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);
    }
}