促销活动代码迁移
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
package cn.iocoder.mall.promotion.api.enums.activity;
|
||||
|
||||
/**
|
||||
* 推广活动类型枚举
|
||||
* 促销活动类型枚举
|
||||
*/
|
||||
public enum PromotionActivityTypeEnum {
|
||||
|
||||
|
||||
@@ -1,20 +1,19 @@
|
||||
package cn.iocoder.mall.promotion.api.rpc.activity;
|
||||
|
||||
import cn.iocoder.common.framework.vo.CommonResult;
|
||||
import cn.iocoder.common.framework.vo.PageResult;
|
||||
import cn.iocoder.mall.promotion.api.rpc.activity.dto.PromotionActivityListReqDTO;
|
||||
import cn.iocoder.mall.promotion.api.rpc.activity.dto.PromotionActivityPageReqDTO;
|
||||
import cn.iocoder.mall.promotion.api.rpc.activity.dto.PromotionActivityRespDTO;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 促销活动 Rpc 接口
|
||||
*/
|
||||
public interface PromotionActivityRpc {
|
||||
|
||||
// List<PromotionActivityRespDTO> getPromotionActivityListBySpuId(Integer spuId,
|
||||
// Collection<Integer> activityStatuses);
|
||||
//
|
||||
// List<PromotionActivityRespDTO> getPromotionActivityListBySpuIds(Collection<Integer> spuIds,
|
||||
// Collection<Integer> activityStatuses);
|
||||
//
|
||||
// PromotionActivityPageReqDTO getPromotionActivityPage(PromotionActivityPageRespDTO promotionActivityPageDTO);
|
||||
CommonResult<PageResult<PromotionActivityRespDTO>> pagePromotionActivity(PromotionActivityPageReqDTO pageReqDTO);
|
||||
|
||||
CommonResult<List<PromotionActivityRespDTO>> listPromotionActivities(PromotionActivityListReqDTO listReqDTO);
|
||||
|
||||
|
||||
@@ -1,24 +1,33 @@
|
||||
package cn.iocoder.mall.promotion.api.rpc.activity.dto;
|
||||
|
||||
import cn.iocoder.common.framework.vo.PageParam;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Collection;
|
||||
|
||||
/**
|
||||
* 促销活动分页 BO
|
||||
* 促销活动分页 Request DTO
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@Accessors(chain = true)
|
||||
public class PromotionActivityPageReqDTO {
|
||||
public class PromotionActivityPageReqDTO extends PageParam {
|
||||
|
||||
/**
|
||||
* PromotionActivityBO 数组
|
||||
* 标题
|
||||
*
|
||||
* 模糊匹配
|
||||
*/
|
||||
private List<PromotionActivityRespDTO> list;
|
||||
private String title;
|
||||
/**
|
||||
* 总量
|
||||
* 活动类型
|
||||
*/
|
||||
private Integer total;
|
||||
private Integer activityType;
|
||||
/**
|
||||
* 状态
|
||||
*/
|
||||
private Collection<Integer> statuses;
|
||||
|
||||
}
|
||||
|
||||
@@ -1,37 +0,0 @@
|
||||
package cn.iocoder.mall.promotion.api.rpc.activity.dto;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.io.Serializable;
|
||||
import java.util.Collection;
|
||||
|
||||
/**
|
||||
* 商品推荐分页 DTO
|
||||
*/
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class PromotionActivityPageRespDTO implements Serializable {
|
||||
|
||||
/**
|
||||
* 标题
|
||||
*
|
||||
* 模糊匹配
|
||||
*/
|
||||
private String title;
|
||||
/**
|
||||
* 活动类型
|
||||
*/
|
||||
private Integer activityType;
|
||||
/**
|
||||
* 状态
|
||||
*/
|
||||
private Collection<Integer> statuses;
|
||||
|
||||
@NotNull(message = "页码不能为空")
|
||||
private Integer pageNo;
|
||||
@NotNull(message = "每页条数不能为空")
|
||||
private Integer pageSize;
|
||||
|
||||
}
|
||||
@@ -52,6 +52,10 @@ public class PromotionActivityRespDTO implements Serializable {
|
||||
* 满减送
|
||||
*/
|
||||
private FullPrivilege fullPrivilege;
|
||||
/**
|
||||
* 创建时间
|
||||
*/
|
||||
private Date createTime;
|
||||
|
||||
/**
|
||||
* 限时折扣
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
package cn.iocoder.mall.promotionservice.convert.activity;
|
||||
|
||||
import cn.iocoder.common.framework.vo.PageResult;
|
||||
import cn.iocoder.mall.promotion.api.rpc.activity.dto.PromotionActivityRespDTO;
|
||||
import cn.iocoder.mall.promotionservice.dal.mysql.dataobject.activity.PromotionActivityDO;
|
||||
import cn.iocoder.mall.promotionservice.service.activity.bo.PromotionActivityBO;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import org.mapstruct.Mapper;
|
||||
import org.mapstruct.Mappings;
|
||||
import org.mapstruct.Mapping;
|
||||
import org.mapstruct.factory.Mappers;
|
||||
|
||||
import java.util.List;
|
||||
@@ -14,24 +15,9 @@ public interface PromotionActivityConvert {
|
||||
|
||||
PromotionActivityConvert INSTANCE = Mappers.getMapper(PromotionActivityConvert.class);
|
||||
|
||||
@Mappings({})
|
||||
PromotionActivityBO convertToBO(PromotionActivityDO activity);
|
||||
|
||||
@Mappings({})
|
||||
List<PromotionActivityBO> convertToBO(List<PromotionActivityDO> activityList);
|
||||
|
||||
@Mappings({})
|
||||
List<PromotionActivityDO> convertToDO(List<PromotionActivityBO> activityList);
|
||||
|
||||
@Mappings({})
|
||||
List<PromotionActivityRespDTO> convertToRespDTO(List<PromotionActivityDO> activityList);
|
||||
|
||||
List<PromotionActivityRespDTO> convertList(List<PromotionActivityDO> list);
|
||||
|
||||
// @Mappings({})
|
||||
// PromotionActivityDO convert(PromotionActivityAddDTO activityAddDTO);
|
||||
//
|
||||
// @Mappings({})
|
||||
// PromotionActivityDO convert(PromotionActivityUpdateDTO activityUpdateDTO);
|
||||
@Mapping(source = "records", target = "list")
|
||||
PageResult<PromotionActivityRespDTO> convertPage(IPage<PromotionActivityDO> page);
|
||||
|
||||
}
|
||||
|
||||
@@ -2,10 +2,12 @@ package cn.iocoder.mall.promotionservice.dal.mysql.mapper.activity;
|
||||
|
||||
import cn.iocoder.mall.mybatis.core.query.QueryWrapperX;
|
||||
import cn.iocoder.mall.promotion.api.rpc.activity.dto.PromotionActivityListReqDTO;
|
||||
import cn.iocoder.mall.promotion.api.rpc.activity.dto.PromotionActivityPageReqDTO;
|
||||
import cn.iocoder.mall.promotionservice.dal.mysql.dataobject.activity.PromotionActivityDO;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import java.util.Collection;
|
||||
@@ -14,19 +16,16 @@ import java.util.List;
|
||||
@Repository
|
||||
public interface PromotionActivityMapper extends BaseMapper<PromotionActivityDO> {
|
||||
|
||||
default List<PromotionActivityDO> selectListByStatus(@Param("statuses") Collection<Integer> statuses) {
|
||||
default List<PromotionActivityDO> selectListByStatus(Collection<Integer> statuses) {
|
||||
return selectList(new QueryWrapper<PromotionActivityDO>().in("status", statuses));
|
||||
}
|
||||
|
||||
List<PromotionActivityDO> selectListByPage(@Param("title") String title,
|
||||
@Param("activityType") Integer activityType,
|
||||
@Param("statuses") Collection<Integer> statuses,
|
||||
@Param("offset") Integer offset,
|
||||
@Param("limit") Integer limit);
|
||||
|
||||
Integer selectCountByPage(@Param("title") String title,
|
||||
@Param("activityType") Integer activityType,
|
||||
@Param("statuses") Collection<Integer> statuses);
|
||||
default IPage<PromotionActivityDO> selectPage(PromotionActivityPageReqDTO pageReqDTO) {
|
||||
return selectPage(new Page<>(pageReqDTO.getPageNo(), pageReqDTO.getPageSize()),
|
||||
new QueryWrapperX<PromotionActivityDO>().likeIfPresent("title", pageReqDTO.getTitle())
|
||||
.eqIfPresent("activity_type", pageReqDTO.getActivityType())
|
||||
.inIfPresent("status", pageReqDTO.getStatuses()));
|
||||
}
|
||||
|
||||
default List<PromotionActivityDO> selectList(PromotionActivityListReqDTO listReqDTO) {
|
||||
return selectList(new QueryWrapperX<PromotionActivityDO>().inIfPresent("id", listReqDTO.getActiveIds()));
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
package cn.iocoder.mall.promotionservice.manager.activity;
|
||||
|
||||
import cn.iocoder.common.framework.vo.PageResult;
|
||||
import cn.iocoder.mall.promotion.api.rpc.activity.dto.PromotionActivityListReqDTO;
|
||||
import cn.iocoder.mall.promotion.api.rpc.activity.dto.PromotionActivityPageReqDTO;
|
||||
import cn.iocoder.mall.promotion.api.rpc.activity.dto.PromotionActivityRespDTO;
|
||||
import cn.iocoder.mall.promotionservice.service.activity.PromotionActivityService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
@@ -23,4 +25,8 @@ public class PromotionActivityManager {
|
||||
return promotionActivityService.listPromotionActivities(listReqDTO);
|
||||
}
|
||||
|
||||
public PageResult<PromotionActivityRespDTO> pagePromotionActivity(PromotionActivityPageReqDTO pageReqDTO) {
|
||||
return promotionActivityService.pagePromotionActivity(pageReqDTO);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,8 +1,10 @@
|
||||
package cn.iocoder.mall.promotionservice.rpc.activity;
|
||||
|
||||
import cn.iocoder.common.framework.vo.CommonResult;
|
||||
import cn.iocoder.common.framework.vo.PageResult;
|
||||
import cn.iocoder.mall.promotion.api.rpc.activity.PromotionActivityRpc;
|
||||
import cn.iocoder.mall.promotion.api.rpc.activity.dto.PromotionActivityListReqDTO;
|
||||
import cn.iocoder.mall.promotion.api.rpc.activity.dto.PromotionActivityPageReqDTO;
|
||||
import cn.iocoder.mall.promotion.api.rpc.activity.dto.PromotionActivityRespDTO;
|
||||
import cn.iocoder.mall.promotionservice.manager.activity.PromotionActivityManager;
|
||||
import org.apache.dubbo.config.annotation.DubboService;
|
||||
@@ -18,6 +20,11 @@ public class PromotionActivityRpcImpl implements PromotionActivityRpc {
|
||||
@Autowired
|
||||
private PromotionActivityManager promotionActivityManager;
|
||||
|
||||
@Override
|
||||
public CommonResult<PageResult<PromotionActivityRespDTO>> pagePromotionActivity(PromotionActivityPageReqDTO pageReqDTO) {
|
||||
return success(promotionActivityManager.pagePromotionActivity(pageReqDTO));
|
||||
}
|
||||
|
||||
@Override
|
||||
public CommonResult<List<PromotionActivityRespDTO>> listPromotionActivities(PromotionActivityListReqDTO listReqDTO) {
|
||||
return success(promotionActivityManager.listPromotionActivities(listReqDTO));
|
||||
|
||||
@@ -1,13 +1,15 @@
|
||||
package cn.iocoder.mall.promotionservice.service.activity;
|
||||
|
||||
import cn.iocoder.mall.promotion.api.enums.activity.PromotionActivityTypeEnum;
|
||||
import cn.iocoder.common.framework.vo.PageResult;
|
||||
import cn.iocoder.mall.promotion.api.enums.RangeTypeEnum;
|
||||
import cn.iocoder.mall.promotion.api.enums.activity.PromotionActivityTypeEnum;
|
||||
import cn.iocoder.mall.promotion.api.rpc.activity.dto.PromotionActivityListReqDTO;
|
||||
import cn.iocoder.mall.promotion.api.rpc.activity.dto.PromotionActivityPageReqDTO;
|
||||
import cn.iocoder.mall.promotion.api.rpc.activity.dto.PromotionActivityRespDTO;
|
||||
import cn.iocoder.mall.promotionservice.convert.activity.PromotionActivityConvert;
|
||||
import cn.iocoder.mall.promotionservice.dal.mysql.dataobject.activity.PromotionActivityDO;
|
||||
import cn.iocoder.mall.promotionservice.dal.mysql.mapper.activity.PromotionActivityMapper;
|
||||
import cn.iocoder.mall.promotionservice.service.activity.bo.PromotionActivityPageBO;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.Assert;
|
||||
@@ -31,10 +33,6 @@ public class PromotionActivityService {
|
||||
return PromotionActivityConvert.INSTANCE.convertList(activityList);
|
||||
}
|
||||
|
||||
public List<PromotionActivityRespDTO> listPromotionActivitiesBySpuId(Integer spuId, Collection<Integer> activityStatuses) {
|
||||
return this.listPromotionActivitiesBySpuIds(Collections.singleton(spuId), activityStatuses);
|
||||
}
|
||||
|
||||
public List<PromotionActivityRespDTO> listPromotionActivitiesBySpuIds(Collection<Integer> spuIds, Collection<Integer> activityStatuses) {
|
||||
if (spuIds.isEmpty() || activityStatuses.isEmpty()) {
|
||||
return Collections.emptyList();
|
||||
@@ -72,16 +70,9 @@ public class PromotionActivityService {
|
||||
return PromotionActivityConvert.INSTANCE.convertList(activityList);
|
||||
}
|
||||
|
||||
public PromotionActivityPageBO getPromotionActivityPage(Integer pageNo,Integer pageSize,String title,Integer activityType,Collection<Integer> statuses) {
|
||||
PromotionActivityPageBO promotionActivityPageBO = new PromotionActivityPageBO();
|
||||
// 查询分页数据
|
||||
int offset = (pageNo - 1) * pageSize;
|
||||
promotionActivityPageBO.setList(PromotionActivityConvert.INSTANCE.convertToRespDTO(promotionActivityMapper.selectListByPage(
|
||||
title, activityType,statuses, offset, pageSize)));
|
||||
// 查询分页总数
|
||||
promotionActivityPageBO.setTotal(promotionActivityMapper.selectCountByPage(
|
||||
title,activityType,statuses));
|
||||
return promotionActivityPageBO;
|
||||
public PageResult<PromotionActivityRespDTO> pagePromotionActivity(PromotionActivityPageReqDTO pageReqDTO) {
|
||||
IPage<PromotionActivityDO> promotionActivityPage = promotionActivityMapper.selectPage(pageReqDTO);
|
||||
return PromotionActivityConvert.INSTANCE.convertPage(promotionActivityPage);
|
||||
}
|
||||
|
||||
private boolean isSpuMatchTimeLimitDiscount(Integer spuId, PromotionActivityDO activity) {
|
||||
|
||||
@@ -1,153 +0,0 @@
|
||||
package cn.iocoder.mall.promotionservice.service.activity.bo;
|
||||
|
||||
import cn.iocoder.mall.promotion.api.enums.activity.PromotionActivityStatusEnum;
|
||||
import cn.iocoder.mall.promotion.api.enums.activity.PromotionActivityTypeEnum;
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class PromotionActivityBO implements Serializable {
|
||||
|
||||
/**
|
||||
* 活动编号
|
||||
*/
|
||||
private Integer id;
|
||||
/**
|
||||
* 活动标题
|
||||
*/
|
||||
private String title;
|
||||
/**
|
||||
* 活动类型
|
||||
*
|
||||
* 参见 {@link PromotionActivityTypeEnum} 枚举
|
||||
*/
|
||||
private Integer activityType;
|
||||
/**
|
||||
* 活动状态
|
||||
*
|
||||
* 参见 {@link PromotionActivityStatusEnum} 枚举
|
||||
*/
|
||||
private Integer status;
|
||||
/**
|
||||
* 开始时间
|
||||
*/
|
||||
private Date startTime;
|
||||
/**
|
||||
* 结束时间
|
||||
*/
|
||||
private Date endTime;
|
||||
/**
|
||||
* 限制折扣
|
||||
*/
|
||||
private TimeLimitedDiscount timeLimitedDiscount;
|
||||
/**
|
||||
* 满减送
|
||||
*/
|
||||
private FullPrivilege fullPrivilege;
|
||||
|
||||
/**
|
||||
* 限时折扣
|
||||
*/
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public static class TimeLimitedDiscount implements Serializable {
|
||||
|
||||
/**
|
||||
* 商品折扣
|
||||
*/
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public static class Item implements Serializable {
|
||||
|
||||
/**
|
||||
* 商品 SPU 编号
|
||||
*/
|
||||
private Integer spuId;
|
||||
/**
|
||||
* 优惠类型
|
||||
*/
|
||||
private Integer preferentialType;
|
||||
/**
|
||||
* 优惠值
|
||||
*/
|
||||
private Integer preferentialValue;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 每人每种限购多少
|
||||
*
|
||||
* 当 quota = 0 时,表示不限购
|
||||
*/
|
||||
private Integer quota;
|
||||
/**
|
||||
* 商品折扣数组
|
||||
*/
|
||||
private List<Item> items;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 满减送
|
||||
*/
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public static class FullPrivilege implements Serializable {
|
||||
|
||||
/**
|
||||
* 优惠
|
||||
*/
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public static class Privilege implements Serializable {
|
||||
|
||||
/**
|
||||
* 满足类型
|
||||
*
|
||||
* 1 - 金额
|
||||
* 2 - 件数
|
||||
*/
|
||||
private Integer meetType;
|
||||
/**
|
||||
* 满足值
|
||||
*/
|
||||
private Integer meetValue;
|
||||
/**
|
||||
* 优惠类型
|
||||
*/
|
||||
private Integer preferentialType;
|
||||
/**
|
||||
* 优惠值
|
||||
*/
|
||||
private Integer preferentialValue;
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 可用范围的类型
|
||||
*
|
||||
* 参见 {@link cn.iocoder.mall.promotion.api.enums.RangeTypeEnum} 枚举
|
||||
* 暂时只用 “所有可用” + “PRODUCT_INCLUDE_PRT”
|
||||
*/
|
||||
private Integer rangeType;
|
||||
/**
|
||||
* 指定可用商品列表
|
||||
*/
|
||||
private List<Integer> rangeValues;
|
||||
/**
|
||||
* 是否循环
|
||||
*/
|
||||
private Boolean cycled;
|
||||
/**
|
||||
* 优惠数组
|
||||
*/
|
||||
private List<Privilege> privileges;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1,25 +0,0 @@
|
||||
package cn.iocoder.mall.promotionservice.service.activity.bo;
|
||||
|
||||
import cn.iocoder.mall.promotion.api.rpc.activity.dto.PromotionActivityRespDTO;
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 促销活动分页 BO
|
||||
*/
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class PromotionActivityPageBO {
|
||||
|
||||
/**
|
||||
* PromotionActivityBO 数组
|
||||
*/
|
||||
private List<PromotionActivityRespDTO> list;
|
||||
/**
|
||||
* 总量
|
||||
*/
|
||||
private Integer total;
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user