fix: 完善拼团、秒杀、砍价活动管理
parent
afaef0dfbb
commit
5f9184904a
@ -0,0 +1,91 @@
|
||||
package cn.iocoder.yudao.module.promotion.controller.admin.bargain;
|
||||
|
||||
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
import cn.iocoder.yudao.module.product.api.spu.ProductSpuApi;
|
||||
import cn.iocoder.yudao.module.promotion.controller.admin.bargain.vo.activity.BargainActivityCreateReqVO;
|
||||
import cn.iocoder.yudao.module.promotion.controller.admin.bargain.vo.activity.BargainActivityPageReqVO;
|
||||
import cn.iocoder.yudao.module.promotion.controller.admin.bargain.vo.activity.BargainActivityRespVO;
|
||||
import cn.iocoder.yudao.module.promotion.controller.admin.bargain.vo.activity.BargainActivityUpdateReqVO;
|
||||
import cn.iocoder.yudao.module.promotion.convert.bargain.BargainActivityConvert;
|
||||
import cn.iocoder.yudao.module.promotion.dal.dataobject.bargain.BargainActivityDO;
|
||||
import cn.iocoder.yudao.module.promotion.dal.dataobject.bargain.BargainProductDO;
|
||||
import cn.iocoder.yudao.module.promotion.service.bargain.BargainActivityService;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.Parameter;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.validation.Valid;
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
import static cn.hutool.core.collection.CollectionUtil.newArrayList;
|
||||
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
||||
import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertSet;
|
||||
|
||||
@Tag(name = "管理后台 - 砍价活动")
|
||||
@RestController
|
||||
@RequestMapping("/promotion/bargain-activity")
|
||||
@Validated
|
||||
public class BargainActivityController {
|
||||
|
||||
@Resource
|
||||
private BargainActivityService activityService;
|
||||
|
||||
@Resource
|
||||
private ProductSpuApi spuApi;
|
||||
|
||||
@PostMapping("/create")
|
||||
@Operation(summary = "创建砍价活动")
|
||||
@PreAuthorize("@ss.hasPermission('promotion:bargain-activity:create')")
|
||||
public CommonResult<Long> createBargainActivity(@Valid @RequestBody BargainActivityCreateReqVO createReqVO) {
|
||||
return success(activityService.createBargainActivity(createReqVO));
|
||||
}
|
||||
|
||||
@PutMapping("/update")
|
||||
@Operation(summary = "更新砍价活动")
|
||||
@PreAuthorize("@ss.hasPermission('promotion:bargain-activity:update')")
|
||||
public CommonResult<Boolean> updateBargainActivity(@Valid @RequestBody BargainActivityUpdateReqVO updateReqVO) {
|
||||
activityService.updateBargainActivity(updateReqVO);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@DeleteMapping("/delete")
|
||||
@Operation(summary = "删除砍价活动")
|
||||
@Parameter(name = "id", description = "编号", required = true)
|
||||
@PreAuthorize("@ss.hasPermission('promotion:bargain-activity:delete')")
|
||||
public CommonResult<Boolean> deleteBargainActivity(@RequestParam("id") Long id) {
|
||||
activityService.deleteBargainActivity(id);
|
||||
return success(true);
|
||||
}
|
||||
|
||||
@GetMapping("/get")
|
||||
@Operation(summary = "获得砍价活动")
|
||||
@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
||||
@PreAuthorize("@ss.hasPermission('promotion:bargain-activity:query')")
|
||||
public CommonResult<BargainActivityRespVO> getBargainActivity(@RequestParam("id") Long id) {
|
||||
BargainActivityDO activity = activityService.getBargainActivity(id);
|
||||
List<BargainProductDO> products = activityService.getBargainProductsByActivityIds(newArrayList(id));
|
||||
return success(BargainActivityConvert.INSTANCE.convert(activity, products));
|
||||
}
|
||||
|
||||
@GetMapping("/page")
|
||||
@Operation(summary = "获得砍价活动分页")
|
||||
@PreAuthorize("@ss.hasPermission('promotion:bargain-activity:query')")
|
||||
public CommonResult<PageResult<BargainActivityRespVO>> getBargainActivityPage(
|
||||
@Valid BargainActivityPageReqVO pageVO) {
|
||||
// 查询砍价活动
|
||||
PageResult<BargainActivityDO> pageResult = activityService.getBargainActivityPage(pageVO);
|
||||
// 拼接数据
|
||||
Set<Long> activityIds = convertSet(pageResult.getList(), BargainActivityDO::getId);
|
||||
Set<Long> spuIds = convertSet(pageResult.getList(), BargainActivityDO::getSpuId);
|
||||
return success(BargainActivityConvert.INSTANCE.convertPage(pageResult,
|
||||
activityService.getBargainProductsByActivityIds(activityIds),
|
||||
spuApi.getSpuList(spuIds)));
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,22 @@
|
||||
package cn.iocoder.yudao.module.promotion.controller.admin.bargain.vo.activity;
|
||||
|
||||
import cn.iocoder.yudao.module.promotion.controller.admin.bargain.vo.product.BargainProductCreateReqVO;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.ToString;
|
||||
|
||||
import javax.validation.Valid;
|
||||
import java.util.List;
|
||||
|
||||
@Schema(description = "管理后台 - 砍价活动创建 Request VO")
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
public class BargainActivityCreateReqVO extends BargainActivityBaseVO {
|
||||
|
||||
@Schema(description = "砍价商品", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@Valid
|
||||
private List<BargainProductCreateReqVO> products;
|
||||
|
||||
}
|
||||
@ -0,0 +1,56 @@
|
||||
package cn.iocoder.yudao.module.promotion.controller.admin.bargain.vo.activity;
|
||||
|
||||
import cn.iocoder.yudao.module.promotion.controller.admin.bargain.vo.product.BargainProductRespVO;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.ToString;
|
||||
|
||||
import javax.validation.Valid;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
|
||||
@Schema(description = "管理后台 - 砍价活动 Response VO")
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
public class BargainActivityRespVO extends BargainActivityBaseVO {
|
||||
|
||||
@Schema(description = "商品名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "618大促")
|
||||
private String spuName;
|
||||
|
||||
@Schema(description = "商品主图", requiredMode = Schema.RequiredMode.REQUIRED, example = "https://www.iocoder.cn/xx.png")
|
||||
private String picUrl;
|
||||
|
||||
@Schema(description = "活动编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "22901")
|
||||
private Long id;
|
||||
|
||||
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private LocalDateTime createTime;
|
||||
|
||||
@Schema(description = "开团人数", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@NotNull(message = "开团人数不能为空")
|
||||
private Integer userSize;
|
||||
|
||||
@Schema(description = "开团组数", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@NotNull(message = "开团组数不能为空")
|
||||
private Integer totalNum;
|
||||
|
||||
@Schema(description = "成团组数", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@NotNull(message = "成团组数不能为空")
|
||||
private Integer successNum;
|
||||
|
||||
@Schema(description = "虚拟成团", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@NotNull(message = "虚拟成团不能为空")
|
||||
private Integer virtualGroup;
|
||||
|
||||
@Schema(description = "活动状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "0")
|
||||
@NotNull(message = "活动状态不能为空")
|
||||
private Integer status;
|
||||
|
||||
@Schema(description = "砍价商品", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@Valid
|
||||
private List<BargainProductRespVO> products;
|
||||
|
||||
}
|
||||
@ -0,0 +1,27 @@
|
||||
package cn.iocoder.yudao.module.promotion.controller.admin.bargain.vo.activity;
|
||||
|
||||
import cn.iocoder.yudao.module.promotion.controller.admin.bargain.vo.product.BargainProductUpdateReqVO;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.ToString;
|
||||
|
||||
import javax.validation.Valid;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.util.List;
|
||||
|
||||
@Schema(description = "管理后台 - 砍价活动更新 Request VO")
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
public class BargainActivityUpdateReqVO extends BargainActivityBaseVO {
|
||||
|
||||
@Schema(description = "活动编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "22901")
|
||||
@NotNull(message = "活动编号不能为空")
|
||||
private Long id;
|
||||
|
||||
@Schema(description = "砍价商品", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
@Valid
|
||||
private List<BargainProductUpdateReqVO> products;
|
||||
|
||||
}
|
||||
@ -0,0 +1,14 @@
|
||||
package cn.iocoder.yudao.module.promotion.controller.admin.bargain.vo.product;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.ToString;
|
||||
|
||||
@Schema(description = "管理后台 - 砍价商品创建 Request VO")
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
public class BargainProductCreateReqVO extends BargainProductBaseVO {
|
||||
|
||||
}
|
||||
@ -0,0 +1,47 @@
|
||||
package cn.iocoder.yudao.module.promotion.controller.admin.bargain.vo.product;
|
||||
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageParam;
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.ToString;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
|
||||
|
||||
@Schema(description = "管理后台 - 砍价商品分页 Request VO")
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
public class BargainProductPageReqVO extends PageParam {
|
||||
|
||||
@Schema(description = "砍价活动编号", example = "6829")
|
||||
private Long activityId;
|
||||
|
||||
@Schema(description = "商品 SPU 编号", example = "18731")
|
||||
private Long spuId;
|
||||
|
||||
@Schema(description = "商品 SKU 编号", example = "31675")
|
||||
private Long skuId;
|
||||
|
||||
@Schema(description = "砍价商品状态", example = "2")
|
||||
private Integer activityStatus;
|
||||
|
||||
@Schema(description = "活动开始时间点")
|
||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||
private LocalDateTime[] activityStartTime;
|
||||
|
||||
@Schema(description = "活动结束时间点")
|
||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||
private LocalDateTime[] activityEndTime;
|
||||
|
||||
@Schema(description = "砍价价格,单位分", example = "27682")
|
||||
private Integer activePrice;
|
||||
|
||||
@Schema(description = "创建时间")
|
||||
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||
private LocalDateTime[] createTime;
|
||||
|
||||
}
|
||||
@ -0,0 +1,22 @@
|
||||
package cn.iocoder.yudao.module.promotion.controller.admin.bargain.vo.product;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.ToString;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@Schema(description = "管理后台 - 砍价商品 Response VO")
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
public class BargainProductRespVO extends BargainProductBaseVO {
|
||||
|
||||
@Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "28322")
|
||||
private Long id;
|
||||
|
||||
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||
private LocalDateTime createTime;
|
||||
|
||||
}
|
||||
@ -0,0 +1,14 @@
|
||||
package cn.iocoder.yudao.module.promotion.controller.admin.bargain.vo.product;
|
||||
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.ToString;
|
||||
|
||||
@Schema(description = "管理后台 - 砍价商品更新 Request VO")
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@ToString(callSuper = true)
|
||||
public class BargainProductUpdateReqVO extends BargainProductBaseVO {
|
||||
|
||||
}
|
||||
@ -0,0 +1,95 @@
|
||||
package cn.iocoder.yudao.module.promotion.convert.bargain;
|
||||
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
|
||||
import cn.iocoder.yudao.framework.common.util.collection.MapUtils;
|
||||
import cn.iocoder.yudao.module.product.api.spu.dto.ProductSpuRespDTO;
|
||||
import cn.iocoder.yudao.module.promotion.controller.admin.bargain.vo.activity.BargainActivityCreateReqVO;
|
||||
import cn.iocoder.yudao.module.promotion.controller.admin.bargain.vo.activity.BargainActivityRespVO;
|
||||
import cn.iocoder.yudao.module.promotion.controller.admin.bargain.vo.activity.BargainActivityUpdateReqVO;
|
||||
import cn.iocoder.yudao.module.promotion.controller.admin.bargain.vo.product.BargainProductBaseVO;
|
||||
import cn.iocoder.yudao.module.promotion.controller.admin.bargain.vo.product.BargainProductRespVO;
|
||||
import cn.iocoder.yudao.module.promotion.controller.admin.bargain.vo.product.BargainProductUpdateReqVO;
|
||||
import cn.iocoder.yudao.module.promotion.dal.dataobject.bargain.BargainActivityDO;
|
||||
import cn.iocoder.yudao.module.promotion.dal.dataobject.bargain.BargainProductDO;
|
||||
import org.mapstruct.Mapper;
|
||||
import org.mapstruct.Mapping;
|
||||
import org.mapstruct.Mappings;
|
||||
import org.mapstruct.factory.Mappers;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import static cn.iocoder.yudao.framework.common.util.collection.CollectionUtils.convertMap;
|
||||
|
||||
/**
|
||||
* 拼团活动 Convert
|
||||
*
|
||||
* @author HUIHUI
|
||||
*/
|
||||
@Mapper
|
||||
public interface BargainActivityConvert {
|
||||
|
||||
BargainActivityConvert INSTANCE = Mappers.getMapper(BargainActivityConvert.class);
|
||||
|
||||
BargainActivityDO convert(BargainActivityCreateReqVO bean);
|
||||
|
||||
BargainActivityDO convert(BargainActivityUpdateReqVO bean);
|
||||
|
||||
BargainActivityRespVO convert(BargainActivityDO bean);
|
||||
|
||||
BargainProductRespVO convert(BargainProductDO bean);
|
||||
|
||||
default BargainActivityRespVO convert(BargainActivityDO bean, List<BargainProductDO> productDOs) {
|
||||
return convert(bean).setProducts(convertList2(productDOs));
|
||||
}
|
||||
|
||||
List<BargainActivityRespVO> convertList(List<BargainActivityDO> list);
|
||||
|
||||
PageResult<BargainActivityRespVO> convertPage(PageResult<BargainActivityDO> page);
|
||||
|
||||
default PageResult<BargainActivityRespVO> convertPage(PageResult<BargainActivityDO> page,
|
||||
List<BargainProductDO> productList,
|
||||
List<ProductSpuRespDTO> spuList) {
|
||||
Map<Long, ProductSpuRespDTO> spuMap = convertMap(spuList, ProductSpuRespDTO::getId);
|
||||
PageResult<BargainActivityRespVO> pageResult = convertPage(page);
|
||||
pageResult.getList().forEach(item -> {
|
||||
MapUtils.findAndThen(spuMap, item.getSpuId(), spu -> {
|
||||
item.setSpuName(spu.getName());
|
||||
item.setPicUrl(spu.getPicUrl());
|
||||
});
|
||||
item.setProducts(convertList2(productList));
|
||||
});
|
||||
return pageResult;
|
||||
}
|
||||
|
||||
List<BargainProductRespVO> convertList2(List<BargainProductDO> productDOs);
|
||||
|
||||
@Mappings({
|
||||
@Mapping(target = "id", ignore = true),
|
||||
@Mapping(target = "activityId", source = "activityDO.id"),
|
||||
@Mapping(target = "spuId", source = "activityDO.spuId"),
|
||||
@Mapping(target = "skuId", source = "vo.skuId"),
|
||||
@Mapping(target = "bargainFirstPrice", source = "vo.bargainFirstPrice"),
|
||||
@Mapping(target = "bargainPrice", source = "vo.bargainPrice"),
|
||||
@Mapping(target = "stock", source = "vo.stock"),
|
||||
@Mapping(target = "activityStartTime", source = "activityDO.startTime"),
|
||||
@Mapping(target = "activityEndTime", source = "activityDO.endTime")
|
||||
})
|
||||
BargainProductDO convert(BargainActivityDO activityDO, BargainProductBaseVO vo);
|
||||
|
||||
default List<BargainProductDO> convertList(List<? extends BargainProductBaseVO> products, BargainActivityDO activityDO) {
|
||||
return CollectionUtils.convertList(products, item -> convert(activityDO, item).setActivityStatus(activityDO.getStatus()));
|
||||
}
|
||||
|
||||
default List<BargainProductDO> convertList(List<BargainProductUpdateReqVO> updateProductVOs,
|
||||
List<BargainProductDO> products, BargainActivityDO activity) {
|
||||
Map<Long, Long> productMap = convertMap(products, BargainProductDO::getSkuId, BargainProductDO::getId);
|
||||
return CollectionUtils.convertList(updateProductVOs, updateProductVO -> convert(activity, updateProductVO)
|
||||
.setId(productMap.get(updateProductVO.getSkuId()))
|
||||
.setActivityStatus(activity.getStatus()));
|
||||
}
|
||||
|
||||
//BargainRecordDO convert(BargainRecordCreateReqDTO reqDTO);
|
||||
|
||||
}
|
||||
@ -0,0 +1,30 @@
|
||||
package cn.iocoder.yudao.module.promotion.dal.mysql.bargain;
|
||||
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
|
||||
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||
import cn.iocoder.yudao.module.promotion.controller.admin.bargain.vo.activity.BargainActivityPageReqVO;
|
||||
import cn.iocoder.yudao.module.promotion.dal.dataobject.bargain.BargainActivityDO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 砍价活动 Mapper
|
||||
*
|
||||
* @author HUIHUI
|
||||
*/
|
||||
@Mapper
|
||||
public interface BargainActivityMapper extends BaseMapperX<BargainActivityDO> {
|
||||
|
||||
default PageResult<BargainActivityDO> selectPage(BargainActivityPageReqVO reqVO) {
|
||||
return selectPage(reqVO, new LambdaQueryWrapperX<BargainActivityDO>()
|
||||
.likeIfPresent(BargainActivityDO::getName, reqVO.getName())
|
||||
.orderByDesc(BargainActivityDO::getId));
|
||||
}
|
||||
|
||||
default List<BargainActivityDO> selectListByStatus(Integer status) {
|
||||
return selectList(BargainActivityDO::getStatus, status);
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,37 @@
|
||||
package cn.iocoder.yudao.module.promotion.dal.mysql.bargain;
|
||||
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
|
||||
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||
import cn.iocoder.yudao.module.promotion.controller.admin.bargain.vo.product.BargainProductPageReqVO;
|
||||
import cn.iocoder.yudao.module.promotion.dal.dataobject.bargain.BargainProductDO;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 砍价商品 Mapper
|
||||
*
|
||||
* @author HUIHUI
|
||||
*/
|
||||
@Mapper
|
||||
public interface BargainProductMapper extends BaseMapperX<BargainProductDO> {
|
||||
|
||||
default PageResult<BargainProductDO> selectPage(BargainProductPageReqVO reqVO) {
|
||||
return selectPage(reqVO, new LambdaQueryWrapperX<BargainProductDO>()
|
||||
.eqIfPresent(BargainProductDO::getActivityId, reqVO.getActivityId())
|
||||
.eqIfPresent(BargainProductDO::getSpuId, reqVO.getSpuId())
|
||||
.eqIfPresent(BargainProductDO::getSkuId, reqVO.getSkuId())
|
||||
.eqIfPresent(BargainProductDO::getActivityStatus, reqVO.getActivityStatus())
|
||||
.betweenIfPresent(BargainProductDO::getActivityStartTime, reqVO.getActivityStartTime())
|
||||
.betweenIfPresent(BargainProductDO::getActivityEndTime, reqVO.getActivityEndTime())
|
||||
.betweenIfPresent(BargainProductDO::getCreateTime, reqVO.getCreateTime())
|
||||
.orderByDesc(BargainProductDO::getId));
|
||||
}
|
||||
|
||||
default List<BargainProductDO> selectListByActivityIds(Collection<Long> ids) {
|
||||
return selectList(BargainProductDO::getActivityId, ids);
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,75 @@
|
||||
package cn.iocoder.yudao.module.promotion.service.bargain;
|
||||
|
||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||
import cn.iocoder.yudao.module.promotion.controller.admin.bargain.vo.activity.BargainActivityCreateReqVO;
|
||||
import cn.iocoder.yudao.module.promotion.controller.admin.bargain.vo.activity.BargainActivityPageReqVO;
|
||||
import cn.iocoder.yudao.module.promotion.controller.admin.bargain.vo.activity.BargainActivityUpdateReqVO;
|
||||
import cn.iocoder.yudao.module.promotion.dal.dataobject.bargain.BargainActivityDO;
|
||||
import cn.iocoder.yudao.module.promotion.dal.dataobject.bargain.BargainProductDO;
|
||||
|
||||
import javax.validation.Valid;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 砍价活动 Service 接口
|
||||
*
|
||||
* @author HUIHUI
|
||||
*/
|
||||
public interface BargainActivityService {
|
||||
|
||||
/**
|
||||
* 创建砍价活动
|
||||
*
|
||||
* @param createReqVO 创建信息
|
||||
* @return 编号
|
||||
*/
|
||||
Long createBargainActivity(@Valid BargainActivityCreateReqVO createReqVO);
|
||||
|
||||
/**
|
||||
* 更新砍价活动
|
||||
*
|
||||
* @param updateReqVO 更新信息
|
||||
*/
|
||||
void updateBargainActivity(@Valid BargainActivityUpdateReqVO updateReqVO);
|
||||
|
||||
/**
|
||||
* 删除砍价活动
|
||||
*
|
||||
* @param id 编号
|
||||
*/
|
||||
void deleteBargainActivity(Long id);
|
||||
|
||||
/**
|
||||
* 获得砍价活动
|
||||
*
|
||||
* @param id 编号
|
||||
* @return 砍价活动
|
||||
*/
|
||||
BargainActivityDO getBargainActivity(Long id);
|
||||
|
||||
/**
|
||||
* 获得砍价活动列表
|
||||
*
|
||||
* @param ids 编号
|
||||
* @return 砍价活动列表
|
||||
*/
|
||||
List<BargainActivityDO> getBargainActivityList(Collection<Long> ids);
|
||||
|
||||
/**
|
||||
* 获得砍价活动分页
|
||||
*
|
||||
* @param pageReqVO 分页查询
|
||||
* @return 砍价活动分页
|
||||
*/
|
||||
PageResult<BargainActivityDO> getBargainActivityPage(BargainActivityPageReqVO pageReqVO);
|
||||
|
||||
/**
|
||||
* 获得砍价活动商品列表
|
||||
*
|
||||
* @param ids 砍价活动 ids
|
||||
* @return 砍价活动的商品列表
|
||||
*/
|
||||
List<BargainProductDO> getBargainProductsByActivityIds(Collection<Long> ids);
|
||||
|
||||
}
|
||||
@ -0,0 +1,51 @@
|
||||
package cn.iocoder.yudao.module.promotion.service.bargain;
|
||||
|
||||
|
||||
import cn.iocoder.yudao.module.promotion.dal.dataobject.bargain.BargainRecordDO;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* 商品活动记录 service
|
||||
*
|
||||
* @author HUIHUI
|
||||
*/
|
||||
public interface BargainRecordService {
|
||||
|
||||
/**
|
||||
* 更新砍价状态
|
||||
*
|
||||
* @param userId 用户编号
|
||||
* @param orderId 订单编号
|
||||
* @param status 状态
|
||||
*/
|
||||
void updateBargainRecordStatusByUserIdAndOrderId(Long userId, Long orderId, Integer status);
|
||||
|
||||
///**
|
||||
// * 创建砍价记录
|
||||
// *
|
||||
// * @param reqDTO 创建信息
|
||||
// */
|
||||
//void createBargainRecord(BargainRecordCreateReqDTO reqDTO);
|
||||
|
||||
/**
|
||||
* 更新砍价状态和开始时间
|
||||
*
|
||||
* @param userId 用户编号
|
||||
* @param orderId 订单编号
|
||||
* @param status 状态
|
||||
* @param startTime 开始时间
|
||||
*/
|
||||
void updateBargainRecordStatusAndStartTimeByUserIdAndOrderId(Long userId, Long orderId,
|
||||
Integer status, LocalDateTime startTime);
|
||||
|
||||
/**
|
||||
* 获得砍价状态
|
||||
*
|
||||
* @param userId 用户编号
|
||||
* @param orderId 订单编号
|
||||
* @return 砍价状态
|
||||
*/
|
||||
BargainRecordDO getBargainRecord(Long userId, Long orderId);
|
||||
|
||||
}
|
||||
Loading…
Reference in New Issue