mirror of
				https://github.com/YunaiV/ruoyi-vue-pro.git
				synced 2025-10-31 18:49:06 +08:00 
			
		
		
		
	| @ -4,6 +4,9 @@ import cn.iocoder.yudao.module.product.api.spu.dto.ProductSpuRespDTO; | |||||||
|  |  | ||||||
| import java.util.Collection; | import java.util.Collection; | ||||||
| import java.util.List; | import java.util.List; | ||||||
|  | import java.util.Map; | ||||||
|  |  | ||||||
|  | import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertMap; | ||||||
|  |  | ||||||
| /** | /** | ||||||
|  * 商品 SPU API 接口 |  * 商品 SPU API 接口 | ||||||
| @ -21,6 +24,16 @@ public interface ProductSpuApi { | |||||||
|      */ |      */ | ||||||
|     List<ProductSpuRespDTO> getSpuList(Collection<Long> ids); |     List<ProductSpuRespDTO> getSpuList(Collection<Long> ids); | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * 批量查询 SPU MAP | ||||||
|  |      * | ||||||
|  |      * @param ids SPU 编号列表 | ||||||
|  |      * @return SPU MAP | ||||||
|  |      */ | ||||||
|  |     default Map<Long, ProductSpuRespDTO> getSpusMap(Collection<Long> ids) { | ||||||
|  |         return convertMap(getSpuList(ids), ProductSpuRespDTO::getId); | ||||||
|  |     } | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * 批量查询 SPU 数组,并且校验是否 SPU 是否有效。 |      * 批量查询 SPU 数组,并且校验是否 SPU 是否有效。 | ||||||
|      * |      * | ||||||
|  | |||||||
| @ -1,31 +1,35 @@ | |||||||
| package cn.iocoder.yudao.module.promotion.controller.admin.point; | package cn.iocoder.yudao.module.promotion.controller.admin.point; | ||||||
|  |  | ||||||
| import cn.iocoder.yudao.framework.apilog.core.annotation.ApiAccessLog; | import cn.hutool.core.collection.CollUtil; | ||||||
| import cn.iocoder.yudao.framework.common.pojo.CommonResult; | import cn.iocoder.yudao.framework.common.pojo.CommonResult; | ||||||
| import cn.iocoder.yudao.framework.common.pojo.PageParam; |  | ||||||
| import cn.iocoder.yudao.framework.common.pojo.PageResult; | import cn.iocoder.yudao.framework.common.pojo.PageResult; | ||||||
|  | import cn.iocoder.yudao.framework.common.util.collection.MapUtils; | ||||||
| import cn.iocoder.yudao.framework.common.util.object.BeanUtils; | import cn.iocoder.yudao.framework.common.util.object.BeanUtils; | ||||||
| import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; | import cn.iocoder.yudao.module.product.api.spu.ProductSpuApi; | ||||||
|  | import cn.iocoder.yudao.module.product.api.spu.dto.ProductSpuRespDTO; | ||||||
| import cn.iocoder.yudao.module.promotion.controller.admin.point.vo.activity.PointActivityPageReqVO; | import cn.iocoder.yudao.module.promotion.controller.admin.point.vo.activity.PointActivityPageReqVO; | ||||||
| import cn.iocoder.yudao.module.promotion.controller.admin.point.vo.activity.PointActivityRespVO; | import cn.iocoder.yudao.module.promotion.controller.admin.point.vo.activity.PointActivityRespVO; | ||||||
| import cn.iocoder.yudao.module.promotion.controller.admin.point.vo.activity.PointActivitySaveReqVO; | import cn.iocoder.yudao.module.promotion.controller.admin.point.vo.activity.PointActivitySaveReqVO; | ||||||
|  | import cn.iocoder.yudao.module.promotion.controller.admin.point.vo.product.PointProductRespVO; | ||||||
| import cn.iocoder.yudao.module.promotion.dal.dataobject.point.PointActivityDO; | import cn.iocoder.yudao.module.promotion.dal.dataobject.point.PointActivityDO; | ||||||
|  | import cn.iocoder.yudao.module.promotion.dal.dataobject.point.PointProductDO; | ||||||
| import cn.iocoder.yudao.module.promotion.service.point.PointActivityService; | import cn.iocoder.yudao.module.promotion.service.point.PointActivityService; | ||||||
| import io.swagger.v3.oas.annotations.Operation; | import io.swagger.v3.oas.annotations.Operation; | ||||||
| import io.swagger.v3.oas.annotations.Parameter; | import io.swagger.v3.oas.annotations.Parameter; | ||||||
| import io.swagger.v3.oas.annotations.tags.Tag; | import io.swagger.v3.oas.annotations.tags.Tag; | ||||||
| import jakarta.annotation.Resource; | import jakarta.annotation.Resource; | ||||||
| import jakarta.servlet.http.HttpServletResponse; |  | ||||||
| import jakarta.validation.Valid; | import jakarta.validation.Valid; | ||||||
| import org.springframework.security.access.prepost.PreAuthorize; | import org.springframework.security.access.prepost.PreAuthorize; | ||||||
| import org.springframework.validation.annotation.Validated; | import org.springframework.validation.annotation.Validated; | ||||||
| import org.springframework.web.bind.annotation.*; | import org.springframework.web.bind.annotation.*; | ||||||
|  |  | ||||||
| import java.io.IOException; | import java.util.Collections; | ||||||
| import java.util.List; | import java.util.List; | ||||||
|  | import java.util.Map; | ||||||
|  |  | ||||||
| import static cn.iocoder.yudao.framework.apilog.core.enums.OperateTypeEnum.EXPORT; |  | ||||||
| import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; | import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; | ||||||
|  | import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertMultiMap; | ||||||
|  | import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet; | ||||||
|  |  | ||||||
| @Tag(name = "管理后台 - 积分商城活动") | @Tag(name = "管理后台 - 积分商城活动") | ||||||
| @RestController | @RestController | ||||||
| @ -35,6 +39,8 @@ public class PointActivityController { | |||||||
|  |  | ||||||
|     @Resource |     @Resource | ||||||
|     private PointActivityService pointActivityService; |     private PointActivityService pointActivityService; | ||||||
|  |     @Resource | ||||||
|  |     private ProductSpuApi productSpuApi; | ||||||
|  |  | ||||||
|     @PostMapping("/create") |     @PostMapping("/create") | ||||||
|     @Operation(summary = "创建积分商城活动") |     @Operation(summary = "创建积分商城活动") | ||||||
| @ -75,7 +81,14 @@ public class PointActivityController { | |||||||
|     @PreAuthorize("@ss.hasPermission('promotion:point-activity:query')") |     @PreAuthorize("@ss.hasPermission('promotion:point-activity:query')") | ||||||
|     public CommonResult<PointActivityRespVO> getPointActivity(@RequestParam("id") Long id) { |     public CommonResult<PointActivityRespVO> getPointActivity(@RequestParam("id") Long id) { | ||||||
|         PointActivityDO pointActivity = pointActivityService.getPointActivity(id); |         PointActivityDO pointActivity = pointActivityService.getPointActivity(id); | ||||||
|         return success(BeanUtils.toBean(pointActivity, PointActivityRespVO.class)); |         if (pointActivity == null) { | ||||||
|  |             return success(null); | ||||||
|  |         } | ||||||
|  |  | ||||||
|  |         List<PointProductDO> products = pointActivityService.getPointProductListByActivityIds(Collections.singletonList(id)); | ||||||
|  |         PointActivityRespVO respVO = BeanUtils.toBean(pointActivity, PointActivityRespVO.class); | ||||||
|  |         respVO.setProducts(BeanUtils.toBean(products, PointProductRespVO.class)); | ||||||
|  |         return success(respVO); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     @GetMapping("/page") |     @GetMapping("/page") | ||||||
| @ -83,20 +96,24 @@ public class PointActivityController { | |||||||
|     @PreAuthorize("@ss.hasPermission('promotion:point-activity:query')") |     @PreAuthorize("@ss.hasPermission('promotion:point-activity:query')") | ||||||
|     public CommonResult<PageResult<PointActivityRespVO>> getPointActivityPage(@Valid PointActivityPageReqVO pageReqVO) { |     public CommonResult<PageResult<PointActivityRespVO>> getPointActivityPage(@Valid PointActivityPageReqVO pageReqVO) { | ||||||
|         PageResult<PointActivityDO> pageResult = pointActivityService.getPointActivityPage(pageReqVO); |         PageResult<PointActivityDO> pageResult = pointActivityService.getPointActivityPage(pageReqVO); | ||||||
|         return success(BeanUtils.toBean(pageResult, PointActivityRespVO.class)); |         if (CollUtil.isEmpty(pageResult.getList())) { | ||||||
|  |             return success(PageResult.empty(pageResult.getTotal())); | ||||||
|         } |         } | ||||||
|  |  | ||||||
|     @GetMapping("/export-excel") |         // 拼接数据 | ||||||
|     @Operation(summary = "导出积分商城活动 Excel") |         List<PointProductDO> products = pointActivityService.getPointProductListByActivityIds( | ||||||
|     @PreAuthorize("@ss.hasPermission('promotion:point-activity:export')") |                 convertSet(pageResult.getList(), PointActivityDO::getId)); | ||||||
|     @ApiAccessLog(operateType = EXPORT) |         Map<Long, List<PointProductDO>> productsMap = convertMultiMap(products, PointProductDO::getActivityId); | ||||||
|     public void exportPointActivityExcel(@Valid PointActivityPageReqVO pageReqVO, |         Map<Long, ProductSpuRespDTO> spuMap = productSpuApi.getSpusMap( | ||||||
|                                          HttpServletResponse response) throws IOException { |                 convertSet(pageResult.getList(), PointActivityDO::getSpuId)); | ||||||
|         pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); |         PageResult<PointActivityRespVO> result = BeanUtils.toBean(pageResult, PointActivityRespVO.class); | ||||||
|         List<PointActivityDO> list = pointActivityService.getPointActivityPage(pageReqVO).getList(); |         result.getList().forEach(activity -> { | ||||||
|         // 导出 Excel |             activity.setProducts(BeanUtils.toBean(productsMap.get(activity.getId()), PointProductRespVO.class)); | ||||||
|         ExcelUtils.write(response, "积分商城活动.xls", "数据", PointActivityRespVO.class, |             MapUtils.findAndThen(spuMap, activity.getSpuId(), | ||||||
|                 BeanUtils.toBean(list, PointActivityRespVO.class)); |                     spu -> activity.setSpuName(spu.getName()).setPicUrl(spu.getPicUrl()).setMarketPrice(spu.getMarketPrice())); | ||||||
|  |  | ||||||
|  |         }); | ||||||
|  |         return success(result); | ||||||
|     } |     } | ||||||
|  |  | ||||||
| } | } | ||||||
| @ -1,6 +1,6 @@ | |||||||
| package cn.iocoder.yudao.module.promotion.controller.admin.point.vo.activity; | package cn.iocoder.yudao.module.promotion.controller.admin.point.vo.activity; | ||||||
|  |  | ||||||
| import cn.iocoder.yudao.module.promotion.controller.admin.point.vo.product.PointProductSaveReqVO; | import cn.iocoder.yudao.module.promotion.controller.admin.point.vo.product.PointProductRespVO; | ||||||
| import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; | import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; | ||||||
| import com.alibaba.excel.annotation.ExcelProperty; | import com.alibaba.excel.annotation.ExcelProperty; | ||||||
| import io.swagger.v3.oas.annotations.media.Schema; | import io.swagger.v3.oas.annotations.media.Schema; | ||||||
| @ -39,7 +39,7 @@ public class PointActivityRespVO { | |||||||
|     private LocalDateTime createTime; |     private LocalDateTime createTime; | ||||||
|  |  | ||||||
|     @Schema(description = "积分商城商品", requiredMode = Schema.RequiredMode.REQUIRED) |     @Schema(description = "积分商城商品", requiredMode = Schema.RequiredMode.REQUIRED) | ||||||
|     private List<PointProductSaveReqVO> products; |     private List<PointProductRespVO> products; | ||||||
|  |  | ||||||
|     // ========== 商品字段 ========== |     // ========== 商品字段 ========== | ||||||
|  |  | ||||||
|  | |||||||
| @ -18,10 +18,6 @@ public class PointActivitySaveReqVO { | |||||||
|     @NotNull(message = "积分商城活动商品不能为空") |     @NotNull(message = "积分商城活动商品不能为空") | ||||||
|     private Long spuId; |     private Long spuId; | ||||||
|  |  | ||||||
|     @Schema(description = "活动状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") |  | ||||||
|     @NotNull(message = "活动状态不能为空") |  | ||||||
|     private Integer status; |  | ||||||
|  |  | ||||||
|     @Schema(description = "备注", example = "你说的对") |     @Schema(description = "备注", example = "你说的对") | ||||||
|     private String remark; |     private String remark; | ||||||
|  |  | ||||||
|  | |||||||
| @ -1,55 +1,39 @@ | |||||||
| package cn.iocoder.yudao.module.promotion.controller.admin.point.vo.product; | package cn.iocoder.yudao.module.promotion.controller.admin.point.vo.product; | ||||||
|  |  | ||||||
| import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; | import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; | ||||||
| import com.alibaba.excel.annotation.ExcelProperty; |  | ||||||
| import io.swagger.v3.oas.annotations.media.Schema; | import io.swagger.v3.oas.annotations.media.Schema; | ||||||
| import lombok.Data; | import lombok.Data; | ||||||
|  |  | ||||||
| import java.time.LocalDateTime; |  | ||||||
|  |  | ||||||
| @Schema(description = "管理后台 - 积分商城商品 Response VO") | @Schema(description = "管理后台 - 积分商城商品 Response VO") | ||||||
| @Data | @Data | ||||||
| @ExcelIgnoreUnannotated | @ExcelIgnoreUnannotated | ||||||
| public class PointProductRespVO { | public class PointProductRespVO { | ||||||
|  |  | ||||||
|     @Schema(description = "积分商城商品编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "31718") |     @Schema(description = "积分商城商品编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "31718") | ||||||
|     @ExcelProperty("积分商城商品编号") |  | ||||||
|     private Long id; |     private Long id; | ||||||
|  |  | ||||||
|     @Schema(description = "积分商城活动 id", requiredMode = Schema.RequiredMode.REQUIRED, example = "29388") |     @Schema(description = "积分商城活动 id", requiredMode = Schema.RequiredMode.REQUIRED, example = "29388") | ||||||
|     @ExcelProperty("积分商城活动 id") |  | ||||||
|     private Long activityId; |     private Long activityId; | ||||||
|  |  | ||||||
|     @Schema(description = "商品 SPU 编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "8112") |     @Schema(description = "商品 SPU 编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "8112") | ||||||
|     @ExcelProperty("商品 SPU 编号") |  | ||||||
|     private Long spuId; |     private Long spuId; | ||||||
|  |  | ||||||
|     @Schema(description = "商品 SKU 编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "2736") |     @Schema(description = "商品 SKU 编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "2736") | ||||||
|     @ExcelProperty("商品 SKU 编号") |  | ||||||
|     private Long skuId; |     private Long skuId; | ||||||
|  |  | ||||||
|     @Schema(description = "可兑换数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "3926") |     @Schema(description = "可兑换数量", requiredMode = Schema.RequiredMode.REQUIRED, example = "3926") | ||||||
|     @ExcelProperty("可兑换数量") |     private Integer count; | ||||||
|     private Integer maxCount; |  | ||||||
|  |  | ||||||
|     @Schema(description = "兑换积分", requiredMode = Schema.RequiredMode.REQUIRED) |     @Schema(description = "兑换积分", requiredMode = Schema.RequiredMode.REQUIRED) | ||||||
|     @ExcelProperty("兑换积分") |  | ||||||
|     private Integer point; |     private Integer point; | ||||||
|  |  | ||||||
|     @Schema(description = "兑换金额,单位:分", requiredMode = Schema.RequiredMode.REQUIRED, example = "15860") |     @Schema(description = "兑换金额,单位:分", requiredMode = Schema.RequiredMode.REQUIRED, example = "15860") | ||||||
|     @ExcelProperty("兑换金额,单位:分") |  | ||||||
|     private Integer price; |     private Integer price; | ||||||
|  |  | ||||||
|     @Schema(description = "兑换类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") |     @Schema(description = "积分商城商品库存", requiredMode = Schema.RequiredMode.REQUIRED, example = "100") | ||||||
|     @ExcelProperty("兑换类型") |     private Integer stock; | ||||||
|     private Integer type; |  | ||||||
|  |  | ||||||
|     @Schema(description = "积分商城商品状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") |     @Schema(description = "积分商城商品状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "2") | ||||||
|     @ExcelProperty("积分商城商品状态") |  | ||||||
|     private Integer activityStatus; |     private Integer activityStatus; | ||||||
|  |  | ||||||
|     @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) |  | ||||||
|     @ExcelProperty("创建时间") |  | ||||||
|     private LocalDateTime createTime; |  | ||||||
|  |  | ||||||
| } | } | ||||||
| @ -4,8 +4,12 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult; | |||||||
| import cn.iocoder.yudao.module.promotion.controller.admin.point.vo.activity.PointActivityPageReqVO; | import cn.iocoder.yudao.module.promotion.controller.admin.point.vo.activity.PointActivityPageReqVO; | ||||||
| import cn.iocoder.yudao.module.promotion.controller.admin.point.vo.activity.PointActivitySaveReqVO; | import cn.iocoder.yudao.module.promotion.controller.admin.point.vo.activity.PointActivitySaveReqVO; | ||||||
| import cn.iocoder.yudao.module.promotion.dal.dataobject.point.PointActivityDO; | import cn.iocoder.yudao.module.promotion.dal.dataobject.point.PointActivityDO; | ||||||
|  | import cn.iocoder.yudao.module.promotion.dal.dataobject.point.PointProductDO; | ||||||
| import jakarta.validation.Valid; | import jakarta.validation.Valid; | ||||||
|  |  | ||||||
|  | import java.util.Collection; | ||||||
|  | import java.util.List; | ||||||
|  |  | ||||||
| /** | /** | ||||||
|  * 积分商城活动 Service 接口 |  * 积分商城活动 Service 接口 | ||||||
|  * |  * | ||||||
| @ -58,4 +62,12 @@ public interface PointActivityService { | |||||||
|      */ |      */ | ||||||
|     PageResult<PointActivityDO> getPointActivityPage(PointActivityPageReqVO pageReqVO); |     PageResult<PointActivityDO> getPointActivityPage(PointActivityPageReqVO pageReqVO); | ||||||
|  |  | ||||||
|  |     /** | ||||||
|  |      * 获得活动商品 | ||||||
|  |      * | ||||||
|  |      * @param activityIds 活动编号 | ||||||
|  |      * @return 获得活动商品 | ||||||
|  |      */ | ||||||
|  |     List<PointProductDO> getPointProductListByActivityIds(Collection<Long> activityIds); | ||||||
|  |  | ||||||
| } | } | ||||||
| @ -17,8 +17,10 @@ import cn.iocoder.yudao.module.promotion.dal.mysql.point.PointActivityMapper; | |||||||
| import cn.iocoder.yudao.module.promotion.dal.mysql.point.PointProductMapper; | import cn.iocoder.yudao.module.promotion.dal.mysql.point.PointProductMapper; | ||||||
| import jakarta.annotation.Resource; | import jakarta.annotation.Resource; | ||||||
| import org.springframework.stereotype.Service; | import org.springframework.stereotype.Service; | ||||||
|  | import org.springframework.transaction.annotation.Transactional; | ||||||
| import org.springframework.validation.annotation.Validated; | import org.springframework.validation.annotation.Validated; | ||||||
|  |  | ||||||
|  | import java.util.Collection; | ||||||
| import java.util.List; | import java.util.List; | ||||||
| import java.util.Map; | import java.util.Map; | ||||||
|  |  | ||||||
| @ -51,7 +53,14 @@ public class PointActivityServiceImpl implements PointActivityService { | |||||||
|     @Resource |     @Resource | ||||||
|     private ProductSkuApi productSkuApi; |     private ProductSkuApi productSkuApi; | ||||||
|  |  | ||||||
|  |     private static List<PointProductDO> buildPointProductDO(PointActivityDO pointActivity, List<PointProductSaveReqVO> products) { | ||||||
|  |         return BeanUtils.toBean(products, PointProductDO.class, product -> | ||||||
|  |                 product.setSpuId(pointActivity.getSpuId()).setActivityId(pointActivity.getId()) | ||||||
|  |                         .setActivityStatus(pointActivity.getStatus())); | ||||||
|  |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|  |     @Transactional(rollbackFor = Exception.class) | ||||||
|     public Long createPointActivity(PointActivitySaveReqVO createReqVO) { |     public Long createPointActivity(PointActivitySaveReqVO createReqVO) { | ||||||
|         // 1.1 校验商品是否存在 |         // 1.1 校验商品是否存在 | ||||||
|         validateProductExists(createReqVO.getSpuId(), createReqVO.getProducts()); |         validateProductExists(createReqVO.getSpuId(), createReqVO.getProducts()); | ||||||
| @ -69,12 +78,8 @@ public class PointActivityServiceImpl implements PointActivityService { | |||||||
|         return pointActivity.getId(); |         return pointActivity.getId(); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|     private static List<PointProductDO> buildPointProductDO(PointActivityDO pointActivity, List<PointProductSaveReqVO> products) { |  | ||||||
|         return BeanUtils.toBean(products, PointProductDO.class, product -> |  | ||||||
|                 product.setActivityId(pointActivity.getId()).setActivityStatus(pointActivity.getStatus())); |  | ||||||
|     } |  | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|  |     @Transactional(rollbackFor = Exception.class) | ||||||
|     public void updatePointActivity(PointActivitySaveReqVO updateReqVO) { |     public void updatePointActivity(PointActivitySaveReqVO updateReqVO) { | ||||||
|         // 1.1 校验存在 |         // 1.1 校验存在 | ||||||
|         PointActivityDO activity = validatePointActivityExists(updateReqVO.getId()); |         PointActivityDO activity = validatePointActivityExists(updateReqVO.getId()); | ||||||
| @ -98,6 +103,7 @@ public class PointActivityServiceImpl implements PointActivityService { | |||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|  |     @Transactional(rollbackFor = Exception.class) | ||||||
|     public void closePointActivity(Long id) { |     public void closePointActivity(Long id) { | ||||||
|         // 校验存在 |         // 校验存在 | ||||||
|         PointActivityDO pointActivity = validatePointActivityExists(id); |         PointActivityDO pointActivity = validatePointActivityExists(id); | ||||||
| @ -143,6 +149,7 @@ public class PointActivityServiceImpl implements PointActivityService { | |||||||
|     } |     } | ||||||
|  |  | ||||||
|     @Override |     @Override | ||||||
|  |     @Transactional(rollbackFor = Exception.class) | ||||||
|     public void deletePointActivity(Long id) { |     public void deletePointActivity(Long id) { | ||||||
|         // 校验存在 |         // 校验存在 | ||||||
|         PointActivityDO pointActivity = validatePointActivityExists(id); |         PointActivityDO pointActivity = validatePointActivityExists(id); | ||||||
| @ -227,4 +234,9 @@ public class PointActivityServiceImpl implements PointActivityService { | |||||||
|         return pointActivityMapper.selectPage(pageReqVO); |         return pointActivityMapper.selectPage(pageReqVO); | ||||||
|     } |     } | ||||||
|  |  | ||||||
|  |     @Override | ||||||
|  |     public List<PointProductDO> getPointProductListByActivityIds(Collection<Long> activityIds) { | ||||||
|  |         return pointProductMapper.selectListByActivityId(activityIds); | ||||||
|  |     } | ||||||
|  |  | ||||||
| } | } | ||||||
		Reference in New Issue
	
	Block a user
	 芋道源码
					芋道源码