修改砍价活动

This commit is contained in:
lifenlong 2021-07-13 16:17:53 +08:00
parent 656e2a9307
commit 4718ce292d
27 changed files with 478 additions and 384 deletions

View File

@ -1,58 +0,0 @@
package cn.lili.controller.promotion;
import cn.lili.common.enums.ResultUtil;
import cn.lili.common.security.context.UserContext;
import cn.lili.common.vo.PageVO;
import cn.lili.common.vo.ResultMessage;
import cn.lili.modules.promotion.entity.dos.KanJiaActivity;
import cn.lili.modules.promotion.entity.dos.KanJiaActivityLog;
import cn.lili.modules.promotion.entity.dto.KanJiaActivityQuery;
import cn.lili.modules.promotion.service.KanJiaActivityService;
import com.baomidou.mybatisplus.core.metadata.IPage;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* 买家端,砍价活动
*
* @author qiuqiu
* @date 2021/7/12
**/
@RestController
@Api(tags = "买家端,砍价活动参与记录接口")
@RequestMapping("/buyer/promotion/kanJiaActivity")
public class KanJiaActivityBuyerController {
@Autowired
private KanJiaActivityService kanJiaActivityService;
@GetMapping
@ApiOperation(value = "分页获取为参与的砍价活动")
public ResultMessage<IPage<KanJiaActivity>> getPointsGoodsPage(KanJiaActivityQuery kanJiaActivityQuery, PageVO page) {
// 会员端查询到的肯定是已经开始的活动商品
kanJiaActivityQuery.setMemberId(UserContext.getCurrentUser().getId());
IPage<KanJiaActivity> kanJiaActivityIPage = kanJiaActivityService.getForPage(kanJiaActivityQuery, page);
return ResultUtil.data(kanJiaActivityIPage);
}
@PostMapping
@ApiOperation(value = "发起砍价活动")
public ResultMessage<KanJiaActivityLog> launchKanJiaActivity(String skuId) {
KanJiaActivityLog kanJiaActivityLog = kanJiaActivityService.add(skuId);
return ResultUtil.data(kanJiaActivityLog);
}
@PostMapping("/help")
@ApiOperation(value = "帮砍一刀")
public ResultMessage<KanJiaActivityLog> helpKanJia(String kanJiaActivityId) {
KanJiaActivityLog kanJiaActivityLog = kanJiaActivityService.helpKanJia(kanJiaActivityId);
return ResultUtil.data(kanJiaActivityLog);
}
}

View File

@ -1,46 +0,0 @@
package cn.lili.controller.promotion;
import cn.lili.common.enums.ResultUtil;
import cn.lili.common.security.context.UserContext;
import cn.lili.common.vo.PageVO;
import cn.lili.common.vo.ResultMessage;
import cn.lili.modules.promotion.entity.dos.KanJiaActivity;
import cn.lili.modules.promotion.entity.dos.KanJiaActivityLog;
import cn.lili.modules.promotion.entity.dto.KanJiaActivityLogQuery;
import cn.lili.modules.promotion.entity.dto.KanJiaActivityQuery;
import cn.lili.modules.promotion.service.KanJiaActivityLogService;
import cn.lili.modules.promotion.service.KanJiaActivityService;
import com.baomidou.mybatisplus.core.metadata.IPage;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* 买家端,砍价活动
*
* @author qiuqiu
* @date 2021/7/12
**/
@RestController
@Api(tags = "买家端,砍价活动帮砍记录接口")
@RequestMapping("/buyer/promotion/kanJiaActivityLog")
public class KanJiaActivityLogBuyerController {
@Autowired
private KanJiaActivityLogService kanJiaActivityLogService;
@GetMapping
@ApiOperation(value = "分页获取为参与的帮砍记录")
public ResultMessage<IPage<KanJiaActivityLog>> getPointsGoodsPage(KanJiaActivityLogQuery kanJiaActivityLogQuery, PageVO page) {
// 会员端查询到的肯定是已经开始的活动商品
kanJiaActivityLogQuery.setMemberId(UserContext.getCurrentUser().getId());
IPage<KanJiaActivityLog> kanJiaActivityLogIPage = kanJiaActivityLogService.getForPage(kanJiaActivityLogQuery, page);
return ResultUtil.data(kanJiaActivityLogIPage);
}
}

View File

@ -1,42 +0,0 @@
package cn.lili.controller.promotion;
import cn.lili.common.enums.ResultUtil;
import cn.lili.common.vo.PageVO;
import cn.lili.common.vo.ResultMessage;
import cn.lili.modules.promotion.entity.dto.KanJiaActivityGoodsDTO;
import cn.lili.modules.promotion.entity.enums.PromotionStatusEnum;
import cn.lili.modules.promotion.entity.vos.KanJiaActivityGoodsParams;
import cn.lili.modules.promotion.service.KanJiaActivityGoodsService;
import com.baomidou.mybatisplus.core.metadata.IPage;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* 买家端,砍价活动商品
*
* @author qiuqiu
* @date 2021/7/12
**/
@RestController
@Api(tags = "买家端,砍价商品接口")
@RequestMapping("/buyer/promotion/kanJiaGoods")
public class KanJiaGoodsActivityBuyerController {
@Autowired
private KanJiaActivityGoodsService kanJiaActivityGoodsService;
@GetMapping
@ApiOperation(value = "分页获取砍价商品")
public ResultMessage<IPage<KanJiaActivityGoodsDTO>> getPointsGoodsPage(KanJiaActivityGoodsParams kanJiaActivityGoodsParams, PageVO page) {
// 会员端查询到的肯定是已经开始的活动商品
kanJiaActivityGoodsParams.setPromotionStatus(PromotionStatusEnum.START.name());
IPage<KanJiaActivityGoodsDTO> kanJiaActivityGoodsDTOIPage = kanJiaActivityGoodsService.getForPage(kanJiaActivityGoodsParams, page);
return ResultUtil.data(kanJiaActivityGoodsDTOIPage);
}
}

View File

@ -0,0 +1,111 @@
package cn.lili.controller.promotion;
import cn.hutool.core.util.StrUtil;
import cn.lili.common.enums.ResultUtil;
import cn.lili.common.security.context.UserContext;
import cn.lili.common.vo.PageVO;
import cn.lili.common.vo.ResultMessage;
import cn.lili.modules.promotion.entity.dos.KanjiaActivity;
import cn.lili.modules.promotion.entity.dos.KanjiaActivityLog;
import cn.lili.modules.promotion.entity.dto.KanJiaActivityLogQuery;
import cn.lili.modules.promotion.entity.dto.KanjiaActivityQuery;
import cn.lili.modules.promotion.entity.enums.PromotionStatusEnum;
import cn.lili.modules.promotion.entity.vos.KanjiaActivityGoodsListVO;
import cn.lili.modules.promotion.entity.vos.KanjiaActivityGoodsParams;
import cn.lili.modules.promotion.entity.vos.KanjiaActivityGoodsVO;
import cn.lili.modules.promotion.entity.vos.KanjiaActivitySearchParams;
import cn.lili.modules.promotion.service.KanjiaActivityGoodsService;
import cn.lili.modules.promotion.service.KanjiaActivityLogService;
import cn.lili.modules.promotion.service.KanjiaActivityService;
import com.baomidou.mybatisplus.core.metadata.IPage;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
/**
* 买家端,砍价活动商品
*
* @author qiuqiu
* @date 2021/7/12
**/
@RestController
@Api(tags = "买家端,砍价商品接口")
@RequestMapping("/buyer/promotion/kanjiaGoods")
public class KanjiaGoodsActivityBuyerController {
/**
* 砍价活动商品
*/
@Autowired
private KanjiaActivityGoodsService kanJiaActivityGoodsService;
/**
* 帮砍记录
*/
@Autowired
private KanjiaActivityLogService kanJiaActivityLogService;
/**
* 砍价活动
*/
@Autowired
private KanjiaActivityService kanJiaActivityService;
@GetMapping
@ApiOperation(value = "分页获取砍价商品")
public ResultMessage<IPage<KanjiaActivityGoodsListVO>> kanJiaActivityGoodsPage(KanjiaActivityGoodsParams kanJiaActivityGoodsParams, PageVO page) {
// 会员端查询到的肯定是已经开始的活动商品
kanJiaActivityGoodsParams.setPromotionStatus(PromotionStatusEnum.START.name());
return ResultUtil.data(kanJiaActivityGoodsService.kanJiaGoodsVOPage(kanJiaActivityGoodsParams, page));
}
@GetMapping("/{id}")
@ApiOperation(value = "获取砍价活动商品")
@ApiImplicitParam(name = "id", value = "砍价活动商品ID", required = true, paramType = "path")
public ResultMessage<KanjiaActivityGoodsVO> getPointsGoodsPage(@PathVariable String id) {
return ResultUtil.data(kanJiaActivityGoodsService.getKanJiaGoodsVO(id));
}
@GetMapping("/getKanjiaActivity/logs")
@ApiOperation(value = "分页获取砍价活动-帮砍记录")
public ResultMessage<IPage<KanjiaActivityLog>> getPointsGoodsPage(KanJiaActivityLogQuery kanJiaActivityLogQuery, PageVO page) {
// 会员端查询到的肯定是已经开始的活动商品
kanJiaActivityLogQuery.setMemberId(UserContext.getCurrentUser().getId());
return ResultUtil.data(kanJiaActivityLogService.getForPage(kanJiaActivityLogQuery, page));
}
@PostMapping("/getKanjiaActivity")
@ApiOperation(value = "获取砍价活动")
public ResultMessage<KanjiaActivity> getKanJiaActivity(KanjiaActivitySearchParams kanJiaActivitySearchParams) {
//如果是非被邀请关系则填写会员ID
if (StrUtil.isEmpty(kanJiaActivitySearchParams.getKanjiaActivityId())) {
kanJiaActivitySearchParams.setMemberId(UserContext.getCurrentUser().getId());
}
return ResultUtil.data(kanJiaActivityService.getKanjiaActivity(kanJiaActivitySearchParams));
}
@PostMapping
@ApiImplicitParam(name = "id", value = "砍价活动商品ID", required = true, paramType = "path")
@ApiOperation(value = "发起砍价活动")
public ResultMessage<KanjiaActivityLog> launchKanJiaActivity(String id) {
KanjiaActivityLog kanJiaActivityLog = kanJiaActivityService.add(id);
return ResultUtil.data(kanJiaActivityLog);
}
@PostMapping("/help")
@ApiOperation(value = "帮砍一刀")
public ResultMessage<KanjiaActivityLog> helpKanJia(String kanJiaActivityId) {
KanjiaActivityLog kanJiaActivityLog = kanJiaActivityService.helpKanJia(kanJiaActivityId);
return ResultUtil.data(kanJiaActivityLog);
}
@GetMapping("/kanjiaActivity/mine/")
@ApiOperation(value = "分页获取已参与的砍价活动")
public ResultMessage<IPage<KanjiaActivity>> getPointsGoodsPage(KanjiaActivityQuery kanJiaActivityQuery, PageVO page) {
// 会员端查询到的肯定是已经开始的活动商品
kanJiaActivityQuery.setMemberId(UserContext.getCurrentUser().getId());
IPage<KanjiaActivity> kanJiaActivityIPage = kanJiaActivityService.getForPage(kanJiaActivityQuery, page);
return ResultUtil.data(kanJiaActivityIPage);
}
}

View File

@ -20,13 +20,13 @@ import javax.persistence.Table;
@Table(name = "li_kanjia_activity") @Table(name = "li_kanjia_activity")
@TableName("li_kanjia_activity") @TableName("li_kanjia_activity")
@ApiModel(value = "砍价活动参与对象") @ApiModel(value = "砍价活动参与对象")
public class KanJiaActivity extends BaseEntity { public class KanjiaActivity extends BaseEntity {
private static final long serialVersionUID = -1583030890805926292L; private static final long serialVersionUID = -1583030890805926292L;
@ApiModelProperty(value = "砍价商品id") @ApiModelProperty(value = "砍价商品id")
private String kanJiaActivityGoodsId; private String kanjiaActivityGoodsId;
@ApiModelProperty(value = "参与砍价活动会员id") @ApiModelProperty(value = "参与砍价活动会员id")
private String memberId; private String memberId;

View File

@ -26,7 +26,7 @@ import java.util.Date;
@Table(name = "li_kanjia_activity_goods") @Table(name = "li_kanjia_activity_goods")
@TableName("li_kanjia_activity_goods") @TableName("li_kanjia_activity_goods")
@ApiModel(value = "砍价活动商品对象") @ApiModel(value = "砍价活动商品对象")
public class KanJiaActivityGoods extends BaseEntity { public class KanjiaActivityGoods extends BaseEntity {
private static final long serialVersionUID = 6694714877345423488L; private static final long serialVersionUID = 6694714877345423488L;

View File

@ -1,19 +1,13 @@
package cn.lili.modules.promotion.entity.dos; package cn.lili.modules.promotion.entity.dos;
import cn.lili.base.BaseEntity; import cn.lili.base.BaseEntity;
import cn.lili.modules.promotion.entity.enums.PromotionStatusEnum;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import javax.persistence.Entity; import javax.persistence.Entity;
import javax.persistence.Table; import javax.persistence.Table;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import java.util.Date;
/** /**
* 砍价活动商品实体类 * 砍价活动商品实体类
@ -26,25 +20,25 @@ import java.util.Date;
@Table(name = "li_kanjia_activity_log") @Table(name = "li_kanjia_activity_log")
@TableName("li_kanjia_activity_log") @TableName("li_kanjia_activity_log")
@ApiModel(value = "砍价活动日志对象") @ApiModel(value = "砍价活动日志对象")
public class KanJiaActivityLog extends BaseEntity { public class KanjiaActivityLog extends BaseEntity {
private static final long serialVersionUID = 3977352717995562783L; private static final long serialVersionUID = 3977352717995562783L;
@ApiModelProperty(value = "砍价活动参与记录id") @ApiModelProperty(value = "砍价活动参与记录id")
private String kanJiaActivityId; private String kanjiaActivityId;
@ApiModelProperty(value = "砍价会员id") @ApiModelProperty(value = "砍价会员id")
private String kanJiaMemberId; private String kanjiaMemberId;
@ApiModelProperty(value = "砍价会员名称") @ApiModelProperty(value = "砍价会员名称")
private String kanJiaMemberName; private String kanjiaMemberName;
@ApiModelProperty(value = "砍价会员头像") @ApiModelProperty(value = "砍价会员头像")
private String kanJiaMemberFace; private String kanjiaMemberFace;
@ApiModelProperty(value = "砍价金额") @ApiModelProperty(value = "砍价金额")
private Double kanJiaPrice; private Double kanjiaPrice;
@ApiModelProperty(value = "剩余购买金额") @ApiModelProperty(value = "剩余购买金额")
private Double surplusPrice; private Double surplusPrice;

View File

@ -1,7 +1,7 @@
package cn.lili.modules.promotion.entity.dto; package cn.lili.modules.promotion.entity.dto;
import cn.lili.modules.promotion.entity.dos.KanJiaActivityLog; import cn.lili.modules.promotion.entity.dos.KanjiaActivityLog;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
@ -15,9 +15,9 @@ import lombok.Data;
*/ */
@Data @Data
@ApiModel(value = "砍价活动参与记录对象") @ApiModel(value = "砍价活动参与记录对象")
public class KanJiaActivityDTO extends KanJiaActivityLog { public class KanjiaActivityDTO extends KanjiaActivityLog {
@ApiModelProperty(value = "砍价金额") @ApiModelProperty(value = "砍价金额")
private String kanJiaActivityGoodsId; private String kanjiaActivityGoodsId;
} }

View File

@ -2,7 +2,7 @@ package cn.lili.modules.promotion.entity.dto;
import cn.lili.modules.goods.entity.dos.GoodsSku; import cn.lili.modules.goods.entity.dos.GoodsSku;
import cn.lili.modules.promotion.entity.dos.KanJiaActivityGoods; import cn.lili.modules.promotion.entity.dos.KanjiaActivityGoods;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
@ -15,7 +15,7 @@ import java.io.Serializable;
* @date 2020/8/21 * @date 2020/8/21
**/ **/
@Data @Data
public class KanJiaActivityGoodsDTO extends KanJiaActivityGoods implements Serializable { public class KanjiaActivityGoodsDTO extends KanjiaActivityGoods implements Serializable {
private static final long serialVersionUID = 1969340823809319805L; private static final long serialVersionUID = 1969340823809319805L;

View File

@ -17,7 +17,7 @@ import java.util.List;
* @date 2020/8/21 * @date 2020/8/21
**/ **/
@Data @Data
public class KanJiaActivityGoodsOperationDTO implements Serializable { public class KanjiaActivityGoodsOperationDTO implements Serializable {
private static final long serialVersionUID = -1378599087650538592L; private static final long serialVersionUID = -1378599087650538592L;
@ -33,6 +33,6 @@ public class KanJiaActivityGoodsOperationDTO implements Serializable {
private Date endTime; private Date endTime;
@ApiModelProperty(value = "砍价活动商品列表") @ApiModelProperty(value = "砍价活动商品列表")
List<KanJiaActivityGoodsDTO> promotionGoodsList; List<KanjiaActivityGoodsDTO> promotionGoodsList;
} }

View File

@ -17,7 +17,7 @@ import java.util.Date;
*/ */
@Data @Data
@ApiModel(value = "砍价活动参与记录查询对象") @ApiModel(value = "砍价活动参与记录查询对象")
public class KanJiaActivityQuery { public class KanjiaActivityQuery {
private static final long serialVersionUID = -1583030890805926292L; private static final long serialVersionUID = -1583030890805926292L;

View File

@ -0,0 +1,30 @@
package cn.lili.modules.promotion.entity.vos;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 砍价商品视图对象
*
* @author paulG
* @date 2021/1/13
**/
@Data
public class KanjiaActivityGoodsListVO {
@ApiModelProperty(value = "货品id")
private String skuId;
@ApiModelProperty(value = "货品名称")
private String goodsName;
@ApiModelProperty(value = "缩略图")
private String thumbnail;
@ApiModelProperty(value = "最低购买金额")
private Double purchasePrice;
@ApiModelProperty(value = "活动库存")
private Integer stock;
}

View File

@ -1,19 +1,14 @@
package cn.lili.modules.promotion.entity.vos; package cn.lili.modules.promotion.entity.vos;
import org.springframework.data.domain.Sort;
import org.springframework.data.domain.Sort.Direction;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import cn.hutool.core.text.CharSequenceUtil; import cn.hutool.core.text.CharSequenceUtil;
import cn.lili.modules.promotion.entity.enums.*; import cn.lili.modules.promotion.entity.enums.PromotionStatusEnum;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import org.springframework.data.domain.Sort;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date; import java.util.Date;
@ -26,17 +21,17 @@ import java.util.regex.Pattern;
* @date 2020/8/21 * @date 2020/8/21
**/ **/
@Data @Data
public class KanJiaActivityGoodsParams implements Serializable { public class KanjiaActivityGoodsParams implements Serializable {
private static final long serialVersionUID = 1344104067705714289L; private static final long serialVersionUID = 1344104067705714289L;
@ApiModelProperty(value = "活动商品") @ApiModelProperty(value = "活动商品")
private String goodsName; private String goodsName;
@ApiModelProperty(value = "活动开始时间", required = true) @ApiModelProperty(value = "活动开始时间")
private Long startTime; private Long startTime;
@ApiModelProperty(value = "活动结束时间", required = true) @ApiModelProperty(value = "活动结束时间")
private Long endTime; private Long endTime;
@ApiModelProperty(value = "skuId") @ApiModelProperty(value = "skuId")

View File

@ -1,10 +1,8 @@
package cn.lili.modules.promotion.entity.vos; package cn.lili.modules.promotion.entity.vos;
import cn.lili.modules.goods.entity.dos.GoodsSku; import cn.lili.modules.goods.entity.dos.GoodsSku;
import cn.lili.modules.promotion.entity.dos.KanJiaActivityGoods;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import lombok.EqualsAndHashCode;
/** /**
* 砍价商品视图对象 * 砍价商品视图对象
@ -12,13 +10,16 @@ import lombok.EqualsAndHashCode;
* @author paulG * @author paulG
* @date 2021/1/13 * @date 2021/1/13
**/ **/
@EqualsAndHashCode(callSuper = true)
@Data @Data
public class KanJiaGoodsVO extends KanJiaActivityGoods { public class KanjiaActivityGoodsVO {
private static final long serialVersionUID = -5163709626742905057L;
@ApiModelProperty(value = "商品规格详细信息") @ApiModelProperty(value = "商品规格详细信息")
private GoodsSku goodsSku; private GoodsSku goodsSku;
@ApiModelProperty(value = "最低购买金额")
private Double purchasePrice;
@ApiModelProperty(value = "活动库存")
private Integer stock;
} }

View File

@ -0,0 +1,42 @@
package cn.lili.modules.promotion.entity.vos;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* 砍价活动搜索参数
*
* @author Bulbasaur
* @date: 2021/7/13 2:41 下午
*/
@Data
public class KanjiaActivitySearchParams {
@ApiModelProperty(value = "砍价活动ID")
private String id;
@ApiModelProperty(value = "砍价商品SkuID")
private String kanjiaActivityGoodsId;
@ApiModelProperty(value = "会员ID" ,hidden = true)
private String memberId;
@ApiModelProperty(value = "状态")
private String status;
@ApiModelProperty(value = "邀请活动ID有值说明是被邀请人")
private String kanjiaActivityId;
public <T> QueryWrapper<T> wrapper() {
QueryWrapper<T> queryWrapper = new QueryWrapper<>();
queryWrapper.eq(StrUtil.isNotEmpty(id), "id", id);
queryWrapper.eq(StrUtil.isNotEmpty(kanjiaActivityId), "id", kanjiaActivityId);
queryWrapper.eq(StrUtil.isNotEmpty(kanjiaActivityGoodsId), "kanJia_activity_goods_id", kanjiaActivityGoodsId);
queryWrapper.eq(StrUtil.isNotEmpty(memberId), "member_id", memberId);
queryWrapper.eq(StrUtil.isNotEmpty(status), "status", status);
return wrapper();
}
}

View File

@ -1,7 +1,13 @@
package cn.lili.modules.promotion.mapper; package cn.lili.modules.promotion.mapper;
import cn.lili.modules.promotion.entity.dos.KanJiaActivityGoods; import cn.lili.modules.promotion.entity.dos.KanjiaActivityGoods;
import cn.lili.modules.promotion.entity.vos.KanjiaActivityGoodsListVO;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
/** /**
* *
@ -10,6 +16,15 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
* @author qiuqiu * @author qiuqiu
* @date 2021/7/1 * @date 2021/7/1
*/ */
public interface KanJiaActivityGoodsMapper extends BaseMapper<KanJiaActivityGoods> { public interface KanJiaActivityGoodsMapper extends BaseMapper<KanjiaActivityGoods> {
/**
* 获取砍价商品VO分页
* @param page 分页
* @param queryWrapper 查询条件
* @return 砍价商品VO分页
*/
@Select("SELECT * FROM li_kanjia_activity_goods ${ew.customSqlSegment}")
IPage<KanjiaActivityGoodsListVO> kanjiaActivityGoodsVOPage(IPage<KanjiaActivityGoods> page, @Param(Constants.WRAPPER) Wrapper<KanjiaActivityGoods> queryWrapper);
} }

View File

@ -1,6 +1,6 @@
package cn.lili.modules.promotion.mapper; package cn.lili.modules.promotion.mapper;
import cn.lili.modules.promotion.entity.dos.KanJiaActivityLog; import cn.lili.modules.promotion.entity.dos.KanjiaActivityLog;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/** /**
@ -10,6 +10,6 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
* @author qiuqiu * @author qiuqiu
* @date 2021/7/1 * @date 2021/7/1
*/ */
public interface KanJiaActivityLogMapper extends BaseMapper<KanJiaActivityLog> { public interface KanJiaActivityLogMapper extends BaseMapper<KanjiaActivityLog> {
} }

View File

@ -1,6 +1,6 @@
package cn.lili.modules.promotion.mapper; package cn.lili.modules.promotion.mapper;
import cn.lili.modules.promotion.entity.dos.KanJiaActivity; import cn.lili.modules.promotion.entity.dos.KanjiaActivity;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/** /**
@ -10,6 +10,6 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
* @author qiuqiu * @author qiuqiu
* @date 2021/7/1 * @date 2021/7/1
*/ */
public interface KanJiaActivityMapper extends BaseMapper<KanJiaActivity> { public interface KanJiaActivityMapper extends BaseMapper<KanjiaActivity> {
} }

View File

@ -1,47 +0,0 @@
package cn.lili.modules.promotion.service;
import cn.lili.common.vo.PageVO;
import cn.lili.modules.promotion.entity.dos.KanJiaActivity;
import cn.lili.modules.promotion.entity.dos.KanJiaActivityLog;
import cn.lili.modules.promotion.entity.dto.KanJiaActivityGoodsDTO;
import cn.lili.modules.promotion.entity.dto.KanJiaActivityQuery;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* 砍价活动参与记录业务层
*
* @author qiuqiu
* @date 2021/7/1 9:45 上午
*/
public interface KanJiaActivityService extends IService<KanJiaActivity> {
/**
* 发起人发起砍价活动
*
* @param skuId 商品skuId
* @return
*/
KanJiaActivityLog add(String skuId);
/**
* 帮砍
*
* @param kanJiaActivityId 活动id
* @return 砍价详细
*/
KanJiaActivityLog helpKanJia(String kanJiaActivityId);
/**
* 根据条件查询我参与的砍价活动
*
* @param kanJiaActivityQuery 砍价活动查询条件
* @param page 分页对象
* @return 我参与的砍价活动信息
*/
IPage<KanJiaActivity> getForPage(KanJiaActivityQuery kanJiaActivityQuery, PageVO page);
}

View File

@ -2,11 +2,12 @@ package cn.lili.modules.promotion.service;
import cn.lili.common.vo.PageVO; import cn.lili.common.vo.PageVO;
import cn.lili.modules.promotion.entity.dos.KanJiaActivity; import cn.lili.modules.promotion.entity.dos.KanjiaActivityGoods;
import cn.lili.modules.promotion.entity.dos.KanJiaActivityGoods; import cn.lili.modules.promotion.entity.dto.KanjiaActivityGoodsDTO;
import cn.lili.modules.promotion.entity.dto.KanJiaActivityGoodsDTO; import cn.lili.modules.promotion.entity.dto.KanjiaActivityGoodsOperationDTO;
import cn.lili.modules.promotion.entity.dto.KanJiaActivityGoodsOperationDTO; import cn.lili.modules.promotion.entity.vos.KanjiaActivityGoodsListVO;
import cn.lili.modules.promotion.entity.vos.KanJiaActivityGoodsParams; import cn.lili.modules.promotion.entity.vos.KanjiaActivityGoodsParams;
import cn.lili.modules.promotion.entity.vos.KanjiaActivityGoodsVO;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
@ -19,7 +20,7 @@ import java.util.List;
* @author qiuqiu * @author qiuqiu
* @date 2021/7/1 9:45 上午 * @date 2021/7/1 9:45 上午
*/ */
public interface KanJiaActivityGoodsService extends IService<KanJiaActivityGoods> { public interface KanjiaActivityGoodsService extends IService<KanjiaActivityGoods> {
/** /**
@ -28,7 +29,7 @@ public interface KanJiaActivityGoodsService extends IService<KanJiaActivityGoods
* @param kanJiaActivityGoodsDTOS 砍价商品 * @param kanJiaActivityGoodsDTOS 砍价商品
* @return 是否添加成功 * @return 是否添加成功
*/ */
boolean add(KanJiaActivityGoodsOperationDTO kanJiaActivityGoodsDTOS); boolean add(KanjiaActivityGoodsOperationDTO kanJiaActivityGoodsDTOS);
/** /**
* 查询砍价活动商品分页信息 * 查询砍价活动商品分页信息
@ -37,7 +38,16 @@ public interface KanJiaActivityGoodsService extends IService<KanJiaActivityGoods
* @param pageVO 分页信息 * @param pageVO 分页信息
* @return 砍价商品 * @return 砍价商品
*/ */
IPage<KanJiaActivityGoodsDTO> getForPage(KanJiaActivityGoodsParams kanJiaActivityGoodsParams, PageVO pageVO); IPage<KanjiaActivityGoodsDTO> getForPage(KanjiaActivityGoodsParams kanJiaActivityGoodsParams, PageVO pageVO);
/**
* 查询砍价活动商品分页信息
*
* @param kanJiaActivityGoodsParams 砍价活动商品
* @param pageVO 分页信息
* @return 砍价商品
*/
IPage<KanjiaActivityGoodsListVO> kanJiaGoodsVOPage(KanjiaActivityGoodsParams kanJiaActivityGoodsParams, PageVO pageVO);
/** /**
* 查询砍价活动商品 * 查询砍价活动商品
@ -45,7 +55,14 @@ public interface KanJiaActivityGoodsService extends IService<KanJiaActivityGoods
* @param goodsId 砍价活动商品id * @param goodsId 砍价活动商品id
* @return 砍价活动商品信息 * @return 砍价活动商品信息
*/ */
KanJiaActivityGoodsDTO getKanJiaGoodsDetail(String goodsId); KanjiaActivityGoodsDTO getKanJiaGoodsDetail(String goodsId);
/**
* 查询砍价活动商品VO
* @param id 砍价活动商品ID
* @return 砍价活动商品
*/
KanjiaActivityGoodsVO getKanJiaGoodsVO(String id);
/** /**
* 修改看见商品信息 * 修改看见商品信息
@ -53,7 +70,7 @@ public interface KanJiaActivityGoodsService extends IService<KanJiaActivityGoods
* @param kanJiaActivityGoodsDTO 砍价商品信息 * @param kanJiaActivityGoodsDTO 砍价商品信息
* @return 是否修改成功 * @return 是否修改成功
*/ */
boolean updateKanJiaActivityGoods(KanJiaActivityGoodsDTO kanJiaActivityGoodsDTO); boolean updateKanJiaActivityGoods(KanjiaActivityGoodsDTO kanJiaActivityGoodsDTO);
/** /**
* 删除砍价商品 * 删除砍价商品
@ -69,6 +86,6 @@ public interface KanJiaActivityGoodsService extends IService<KanJiaActivityGoods
* @param skuId 商品skuId * @param skuId 商品skuId
* @return * @return
*/ */
KanJiaActivityGoodsDTO getKanJiaGoodsBySku(String skuId); KanjiaActivityGoodsDTO getKanJiaGoodsBySku(String skuId);
} }

View File

@ -2,8 +2,8 @@ package cn.lili.modules.promotion.service;
import cn.lili.common.vo.PageVO; import cn.lili.common.vo.PageVO;
import cn.lili.modules.promotion.entity.dos.KanJiaActivityLog; import cn.lili.modules.promotion.entity.dos.KanjiaActivityLog;
import cn.lili.modules.promotion.entity.dto.KanJiaActivityDTO; import cn.lili.modules.promotion.entity.dto.KanjiaActivityDTO;
import cn.lili.modules.promotion.entity.dto.KanJiaActivityLogQuery; import cn.lili.modules.promotion.entity.dto.KanJiaActivityLogQuery;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
@ -15,7 +15,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
* @author qiuqiu * @author qiuqiu
* @date 2021/7/1 9:45 上午 * @date 2021/7/1 9:45 上午
*/ */
public interface KanJiaActivityLogService extends IService<KanJiaActivityLog> { public interface KanjiaActivityLogService extends IService<KanjiaActivityLog> {
/** /**
* 根据砍价参与记录id查询砍价记录 * 根据砍价参与记录id查询砍价记录
@ -24,7 +24,7 @@ public interface KanJiaActivityLogService extends IService<KanJiaActivityLog> {
* @param pageVO 分页信息 * @param pageVO 分页信息
* @return 砍价日志 * @return 砍价日志
*/ */
IPage<KanJiaActivityLog> getForPage(KanJiaActivityLogQuery kanJiaActivityLogQuery, PageVO pageVO); IPage<KanjiaActivityLog> getForPage(KanJiaActivityLogQuery kanJiaActivityLogQuery, PageVO pageVO);
/** /**
* 砍一刀 * 砍一刀
@ -32,5 +32,5 @@ public interface KanJiaActivityLogService extends IService<KanJiaActivityLog> {
* @param kanJiaActivityDTO 砍价记录 * @param kanJiaActivityDTO 砍价记录
* @return * @return
*/ */
KanJiaActivityLog addKanJiaActivityLog(KanJiaActivityDTO kanJiaActivityDTO); KanjiaActivityLog addKanJiaActivityLog(KanjiaActivityDTO kanJiaActivityDTO);
} }

View File

@ -0,0 +1,58 @@
package cn.lili.modules.promotion.service;
import cn.lili.common.vo.PageVO;
import cn.lili.modules.promotion.entity.dos.KanjiaActivity;
import cn.lili.modules.promotion.entity.dos.KanjiaActivityLog;
import cn.lili.modules.promotion.entity.dto.KanjiaActivityQuery;
import cn.lili.modules.promotion.entity.vos.KanjiaActivitySearchParams;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* 砍价活动参与记录业务层
*
* @author qiuqiu
* @date 2021/7/1 9:45 上午
*/
public interface KanjiaActivityService extends IService<KanjiaActivity> {
/**
* 获取砍价活动
*
* 有值说明是已参加的砍价活动
* 没有值说明是未参加的砍价活动
*
* @param kanJiaActivitySearchParams 砍价活动搜索参数
* @return 砍价活动
*/
KanjiaActivity getKanjiaActivity(KanjiaActivitySearchParams kanJiaActivitySearchParams);
/**
* 发起人发起砍价活动
*
* @param id 活动ID
* @return
*/
KanjiaActivityLog add(String id);
/**
* 帮砍
*
* @param kanJiaActivityId 活动id
* @return 砍价详细
*/
KanjiaActivityLog helpKanJia(String kanJiaActivityId);
/**
* 根据条件查询我参与的砍价活动
*
* @param kanJiaActivityQuery 砍价活动查询条件
* @param page 分页对象
* @return 我参与的砍价活动信息
*/
IPage<KanjiaActivity> getForPage(KanjiaActivityQuery kanJiaActivityQuery, PageVO page);
}

View File

@ -11,19 +11,22 @@ import cn.lili.common.trigger.model.TimeExecuteConstant;
import cn.lili.common.trigger.model.TimeTriggerMsg; import cn.lili.common.trigger.model.TimeTriggerMsg;
import cn.lili.common.trigger.util.DelayQueueTools; import cn.lili.common.trigger.util.DelayQueueTools;
import cn.lili.common.utils.DateUtil; import cn.lili.common.utils.DateUtil;
import cn.lili.common.utils.PageUtil;
import cn.lili.common.vo.PageVO; import cn.lili.common.vo.PageVO;
import cn.lili.config.rocketmq.RocketmqCustomProperties; import cn.lili.config.rocketmq.RocketmqCustomProperties;
import cn.lili.modules.goods.entity.dos.GoodsSku; import cn.lili.modules.goods.entity.dos.GoodsSku;
import cn.lili.modules.goods.entity.enums.GoodsStatusEnum; import cn.lili.modules.goods.entity.enums.GoodsStatusEnum;
import cn.lili.modules.goods.service.GoodsSkuService; import cn.lili.modules.goods.service.GoodsSkuService;
import cn.lili.modules.promotion.entity.dos.KanJiaActivityGoods; import cn.lili.modules.promotion.entity.dos.KanjiaActivityGoods;
import cn.lili.modules.promotion.entity.dto.KanJiaActivityGoodsDTO; import cn.lili.modules.promotion.entity.dto.KanjiaActivityGoodsDTO;
import cn.lili.modules.promotion.entity.dto.KanJiaActivityGoodsOperationDTO; import cn.lili.modules.promotion.entity.dto.KanjiaActivityGoodsOperationDTO;
import cn.lili.modules.promotion.entity.enums.PromotionStatusEnum; import cn.lili.modules.promotion.entity.enums.PromotionStatusEnum;
import cn.lili.modules.promotion.entity.enums.PromotionTypeEnum; import cn.lili.modules.promotion.entity.enums.PromotionTypeEnum;
import cn.lili.modules.promotion.entity.vos.KanJiaActivityGoodsParams; import cn.lili.modules.promotion.entity.vos.KanjiaActivityGoodsListVO;
import cn.lili.modules.promotion.entity.vos.KanjiaActivityGoodsParams;
import cn.lili.modules.promotion.entity.vos.KanjiaActivityGoodsVO;
import cn.lili.modules.promotion.mapper.KanJiaActivityGoodsMapper; import cn.lili.modules.promotion.mapper.KanJiaActivityGoodsMapper;
import cn.lili.modules.promotion.service.KanJiaActivityGoodsService; import cn.lili.modules.promotion.service.KanjiaActivityGoodsService;
import cn.lili.modules.promotion.tools.PromotionTools; import cn.lili.modules.promotion.tools.PromotionTools;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
@ -47,7 +50,7 @@ import java.util.List;
*/ */
@Service @Service
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public class KanJiaActivityGoodsServiceImpl extends ServiceImpl<KanJiaActivityGoodsMapper, KanJiaActivityGoods> implements KanJiaActivityGoodsService { public class KanjiaActivityGoodsServiceImpl extends ServiceImpl<KanJiaActivityGoodsMapper, KanjiaActivityGoods> implements KanjiaActivityGoodsService {
//规格商品 //规格商品
@Autowired @Autowired
@ -67,9 +70,9 @@ public class KanJiaActivityGoodsServiceImpl extends ServiceImpl<KanJiaActivityGo
@Override @Override
public boolean add(KanJiaActivityGoodsOperationDTO kanJiaActivityGoodsOperationDTO) { public boolean add(KanjiaActivityGoodsOperationDTO kanJiaActivityGoodsOperationDTO) {
List<KanJiaActivityGoods> kanJiaActivityGoodsList = new ArrayList<>(); List<KanjiaActivityGoods> kanjiaActivityGoodsList = new ArrayList<>();
for (KanJiaActivityGoodsDTO kanJiaActivityGoodsDTO : kanJiaActivityGoodsOperationDTO.getPromotionGoodsList()) { for (KanjiaActivityGoodsDTO kanJiaActivityGoodsDTO : kanJiaActivityGoodsOperationDTO.getPromotionGoodsList()) {
//根据skuId查询商品信息 //根据skuId查询商品信息
GoodsSku goodsSku = this.checkSkuExist(kanJiaActivityGoodsDTO.getSkuId()); GoodsSku goodsSku = this.checkSkuExist(kanJiaActivityGoodsDTO.getSkuId());
//参数检测 //参数检测
@ -87,12 +90,12 @@ public class KanJiaActivityGoodsServiceImpl extends ServiceImpl<KanJiaActivityGo
kanJiaActivityGoodsDTO.setThumbnail(goodsSku.getThumbnail()); kanJiaActivityGoodsDTO.setThumbnail(goodsSku.getThumbnail());
kanJiaActivityGoodsDTO.setGoodsName(goodsSku.getGoodsName()); kanJiaActivityGoodsDTO.setGoodsName(goodsSku.getGoodsName());
kanJiaActivityGoodsDTO.setPromotionStatus(PromotionStatusEnum.NEW.name()); kanJiaActivityGoodsDTO.setPromotionStatus(PromotionStatusEnum.NEW.name());
kanJiaActivityGoodsList.add(kanJiaActivityGoodsDTO); kanjiaActivityGoodsList.add(kanJiaActivityGoodsDTO);
} }
Boolean result = this.saveBatch(kanJiaActivityGoodsList); Boolean result = this.saveBatch(kanjiaActivityGoodsList);
if (result) { if (result) {
//发送砍价延迟任务消息 //发送砍价延迟任务消息
for (KanJiaActivityGoodsDTO kanJiaActivityGoodsDTO : kanJiaActivityGoodsOperationDTO.getPromotionGoodsList()) { for (KanjiaActivityGoodsDTO kanJiaActivityGoodsDTO : kanJiaActivityGoodsOperationDTO.getPromotionGoodsList()) {
this.mongoTemplate.save(kanJiaActivityGoodsDTO); this.mongoTemplate.save(kanJiaActivityGoodsDTO);
this.addKanJiaGoodsPromotionTask(kanJiaActivityGoodsDTO); this.addKanJiaGoodsPromotionTask(kanJiaActivityGoodsDTO);
} }
@ -106,7 +109,7 @@ public class KanJiaActivityGoodsServiceImpl extends ServiceImpl<KanJiaActivityGo
* *
* @param kanJiaActivityGoods 砍价商品信息 * @param kanJiaActivityGoods 砍价商品信息
*/ */
private void addKanJiaGoodsPromotionTask(KanJiaActivityGoodsDTO kanJiaActivityGoods) { private void addKanJiaGoodsPromotionTask(KanjiaActivityGoodsDTO kanJiaActivityGoods) {
PromotionMessage promotionMessage = new PromotionMessage(kanJiaActivityGoods.getId(), PromotionTypeEnum.KAN_JIA.name(), PromotionMessage promotionMessage = new PromotionMessage(kanJiaActivityGoods.getId(), PromotionTypeEnum.KAN_JIA.name(),
PromotionStatusEnum.START.name(), PromotionStatusEnum.START.name(),
kanJiaActivityGoods.getStartTime(), kanJiaActivityGoods.getEndTime()); kanJiaActivityGoods.getStartTime(), kanJiaActivityGoods.getEndTime());
@ -120,21 +123,26 @@ public class KanJiaActivityGoodsServiceImpl extends ServiceImpl<KanJiaActivityGo
} }
@Override @Override
public IPage<KanJiaActivityGoodsDTO> getForPage(KanJiaActivityGoodsParams kanJiaActivityGoodsParams, PageVO pageVO) { public IPage<KanjiaActivityGoodsDTO> getForPage(KanjiaActivityGoodsParams kanJiaActivityGoodsParams, PageVO pageVO) {
IPage<KanJiaActivityGoodsDTO> kanJiaActivityGoodsDTOIPage = new Page<>(); IPage<KanjiaActivityGoodsDTO> kanJiaActivityGoodsDTOIPage = new Page<>();
Query query = kanJiaActivityGoodsParams.mongoQuery(); Query query = kanJiaActivityGoodsParams.mongoQuery();
if (pageVO != null) { if (pageVO != null) {
PromotionTools.mongoQueryPageParam(query, pageVO); PromotionTools.mongoQueryPageParam(query, pageVO);
kanJiaActivityGoodsDTOIPage.setSize(pageVO.getPageSize()); kanJiaActivityGoodsDTOIPage.setSize(pageVO.getPageSize());
kanJiaActivityGoodsDTOIPage.setCurrent(pageVO.getPageNumber()); kanJiaActivityGoodsDTOIPage.setCurrent(pageVO.getPageNumber());
} }
List<KanJiaActivityGoodsDTO> kanJiaActivityGoodsDTOS = this.mongoTemplate.find(query, KanJiaActivityGoodsDTO.class); List<KanjiaActivityGoodsDTO> kanJiaActivityGoodsDTOS = this.mongoTemplate.find(query, KanjiaActivityGoodsDTO.class);
kanJiaActivityGoodsDTOIPage.setRecords(kanJiaActivityGoodsDTOS); kanJiaActivityGoodsDTOIPage.setRecords(kanJiaActivityGoodsDTOS);
kanJiaActivityGoodsDTOIPage.setTotal(this.mongoTemplate.count(kanJiaActivityGoodsParams.mongoQuery(), KanJiaActivityGoodsDTO.class)); kanJiaActivityGoodsDTOIPage.setTotal(this.mongoTemplate.count(kanJiaActivityGoodsParams.mongoQuery(), KanjiaActivityGoodsDTO.class));
return kanJiaActivityGoodsDTOIPage; return kanJiaActivityGoodsDTOIPage;
} }
@Override
public IPage<KanjiaActivityGoodsListVO> kanJiaGoodsVOPage(KanjiaActivityGoodsParams kanjiaActivityGoodsParams, PageVO pageVO) {
return this.baseMapper.kanjiaActivityGoodsVOPage(PageUtil.initPage(pageVO),kanjiaActivityGoodsParams.wrapper());
}
/** /**
* 检查商品Sku是否存 * 检查商品Sku是否存
@ -157,7 +165,7 @@ public class KanJiaActivityGoodsServiceImpl extends ServiceImpl<KanJiaActivityGo
* @param kanJiaActivityGoodsDTO 砍价商品信息 * @param kanJiaActivityGoodsDTO 砍价商品信息
* @param goodsSku 商品sku信息 * @param goodsSku 商品sku信息
*/ */
private void checkParam(KanJiaActivityGoodsDTO kanJiaActivityGoodsDTO, GoodsSku goodsSku) { private void checkParam(KanjiaActivityGoodsDTO kanJiaActivityGoodsDTO, GoodsSku goodsSku) {
//校验商品是否存在 //校验商品是否存在
if (goodsSku == null) { if (goodsSku == null) {
throw new ServiceException(ResultCode.PROMOTION_GOODS_NOT_EXIT); throw new ServiceException(ResultCode.PROMOTION_GOODS_NOT_EXIT);
@ -199,25 +207,25 @@ public class KanJiaActivityGoodsServiceImpl extends ServiceImpl<KanJiaActivityGo
* @param kanJiaActivityGoodsDTO 砍价商品 * @param kanJiaActivityGoodsDTO 砍价商品
* @return 积分商品信息 * @return 积分商品信息
*/ */
private KanJiaActivityGoods checkSkuDuplicate(String skuId, KanJiaActivityGoodsDTO kanJiaActivityGoodsDTO) { private KanjiaActivityGoods checkSkuDuplicate(String skuId, KanjiaActivityGoodsDTO kanJiaActivityGoodsDTO) {
LambdaQueryWrapper<KanJiaActivityGoods> queryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<KanjiaActivityGoods> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(KanJiaActivityGoods::getSkuId, skuId); queryWrapper.eq(KanjiaActivityGoods::getSkuId, skuId);
if (kanJiaActivityGoodsDTO != null && StrUtil.isNotEmpty(kanJiaActivityGoodsDTO.getId())) { if (kanJiaActivityGoodsDTO != null && StrUtil.isNotEmpty(kanJiaActivityGoodsDTO.getId())) {
queryWrapper.ne(KanJiaActivityGoods::getId, kanJiaActivityGoodsDTO.getId()); queryWrapper.ne(KanjiaActivityGoods::getId, kanJiaActivityGoodsDTO.getId());
} }
queryWrapper.ne(KanJiaActivityGoods::getPromotionStatus, PromotionStatusEnum.END.name()); queryWrapper.ne(KanjiaActivityGoods::getPromotionStatus, PromotionStatusEnum.END.name());
queryWrapper.ge(KanJiaActivityGoods::getStartTime, kanJiaActivityGoodsDTO.getStartTime()); queryWrapper.ge(KanjiaActivityGoods::getStartTime, kanJiaActivityGoodsDTO.getStartTime());
queryWrapper.le(KanJiaActivityGoods::getEndTime, kanJiaActivityGoodsDTO.getEndTime()); queryWrapper.le(KanjiaActivityGoods::getEndTime, kanJiaActivityGoodsDTO.getEndTime());
return this.getOne(queryWrapper); return this.getOne(queryWrapper);
} }
@Override @Override
public KanJiaActivityGoodsDTO getKanJiaGoodsDetail(String goodsId) { public KanjiaActivityGoodsDTO getKanJiaGoodsDetail(String goodsId) {
KanJiaActivityGoodsDTO kanJiaActivityGoodsDTO = this.mongoTemplate.findById(goodsId, KanJiaActivityGoodsDTO.class); KanjiaActivityGoodsDTO kanJiaActivityGoodsDTO = this.mongoTemplate.findById(goodsId, KanjiaActivityGoodsDTO.class);
if (kanJiaActivityGoodsDTO == null) { if (kanJiaActivityGoodsDTO == null) {
log.error("id为" + goodsId + "的砍价商品不存在!"); log.error("id为" + goodsId + "的砍价商品不存在!");
throw new ServiceException(); throw new ServiceException();
@ -226,9 +234,26 @@ public class KanJiaActivityGoodsServiceImpl extends ServiceImpl<KanJiaActivityGo
} }
@Override @Override
public boolean updateKanJiaActivityGoods(KanJiaActivityGoodsDTO kanJiaActivityGoodsDTO) { public KanjiaActivityGoodsVO getKanJiaGoodsVO(String id) {
KanjiaActivityGoodsVO kanJiaActivityGoodsVO = new KanjiaActivityGoodsVO();
//获取砍价商品
KanjiaActivityGoods kanJiaActivityGoods=this.getById(id);
//获取商品SKU
GoodsSku goodsSku = this.goodsSkuService.getGoodsSkuByIdFromCache(kanJiaActivityGoods.getSkuId());
//填写活动商品价格剩余数量
kanJiaActivityGoodsVO.setGoodsSku(goodsSku);
kanJiaActivityGoodsVO.setStock(kanJiaActivityGoods.getStock());
kanJiaActivityGoodsVO.setPurchasePrice(kanJiaActivityGoods.getPurchasePrice());
//返回商品数据
return kanJiaActivityGoodsVO;
}
@Override
public boolean updateKanJiaActivityGoods(KanjiaActivityGoodsDTO kanJiaActivityGoodsDTO) {
//校验砍价商品是否存在 //校验砍价商品是否存在
KanJiaActivityGoodsDTO dbKanJiaActivityGoods = this.getKanJiaGoodsDetail(kanJiaActivityGoodsDTO.getId()); KanjiaActivityGoodsDTO dbKanJiaActivityGoods = this.getKanJiaGoodsDetail(kanJiaActivityGoodsDTO.getId());
//校验当前活动是否已经开始,只有新建的未开始的活动可以编辑 //校验当前活动是否已经开始,只有新建的未开始的活动可以编辑
if (!dbKanJiaActivityGoods.getPromotionStatus().equals(PromotionStatusEnum.NEW.name())) { if (!dbKanJiaActivityGoods.getPromotionStatus().equals(PromotionStatusEnum.NEW.name())) {
throw new ServiceException(ResultCode.PROMOTION_UPDATE_ERROR); throw new ServiceException(ResultCode.PROMOTION_UPDATE_ERROR);
@ -271,7 +296,7 @@ public class KanJiaActivityGoodsServiceImpl extends ServiceImpl<KanJiaActivityGo
public boolean deleteKanJiaGoods(List<String> ids) { public boolean deleteKanJiaGoods(List<String> ids) {
List<String> skuIds = new ArrayList<>(); List<String> skuIds = new ArrayList<>();
for (String id : ids) { for (String id : ids) {
KanJiaActivityGoodsDTO kanJiaActivityGoodsDTO = this.getKanJiaGoodsDetail(id); KanjiaActivityGoodsDTO kanJiaActivityGoodsDTO = this.getKanJiaGoodsDetail(id);
this.timeTrigger.delete(TimeExecuteConstant.PROMOTION_EXECUTOR, this.timeTrigger.delete(TimeExecuteConstant.PROMOTION_EXECUTOR,
kanJiaActivityGoodsDTO.getStartTime().getTime(), kanJiaActivityGoodsDTO.getStartTime().getTime(),
DelayQueueTools.wrapperUniqueKey(DelayTypeEnums.PROMOTION, (PromotionTypeEnum.KAN_JIA.name() + kanJiaActivityGoodsDTO.getId())), DelayQueueTools.wrapperUniqueKey(DelayTypeEnums.PROMOTION, (PromotionTypeEnum.KAN_JIA.name() + kanJiaActivityGoodsDTO.getId())),
@ -282,21 +307,21 @@ public class KanJiaActivityGoodsServiceImpl extends ServiceImpl<KanJiaActivityGo
if (result) { if (result) {
Query query = new Query(); Query query = new Query();
query.addCriteria(new Criteria("id").in(ids)); query.addCriteria(new Criteria("id").in(ids));
this.mongoTemplate.remove(query, KanJiaActivityGoodsDTO.class); this.mongoTemplate.remove(query, KanjiaActivityGoodsDTO.class);
} }
return result; return result;
} }
@Override @Override
public KanJiaActivityGoodsDTO getKanJiaGoodsBySku(String skuId) { public KanjiaActivityGoodsDTO getKanJiaGoodsBySku(String skuId) {
//构建查询条件 //构建查询条件
KanJiaActivityGoodsParams kanJiaActivityGoodsParams = new KanJiaActivityGoodsParams(); KanjiaActivityGoodsParams kanJiaActivityGoodsParams = new KanjiaActivityGoodsParams();
kanJiaActivityGoodsParams.setSkuId(skuId); kanJiaActivityGoodsParams.setSkuId(skuId);
kanJiaActivityGoodsParams.setPromotionStatus(PromotionStatusEnum.START.name()); kanJiaActivityGoodsParams.setPromotionStatus(PromotionStatusEnum.START.name());
//查询相关数据 //查询相关数据
Query query = kanJiaActivityGoodsParams.mongoQuery(); Query query = kanJiaActivityGoodsParams.mongoQuery();
List<KanJiaActivityGoodsDTO> kanJiaActivityGoodsDTOS = this.mongoTemplate.find(query, KanJiaActivityGoodsDTO.class); List<KanjiaActivityGoodsDTO> kanJiaActivityGoodsDTOS = this.mongoTemplate.find(query, KanjiaActivityGoodsDTO.class);
// 为了担心会查到多条数据 所以查询集合 正常情况下只会查询到一条 // 为了担心会查到多条数据 所以查询集合 正常情况下只会查询到一条
if (kanJiaActivityGoodsDTOS.size() > 0) { if (kanJiaActivityGoodsDTOS.size() > 0) {
return kanJiaActivityGoodsDTOS.get(0); return kanJiaActivityGoodsDTOS.get(0);

View File

@ -3,20 +3,19 @@ package cn.lili.modules.promotion.serviceimpl;
import cn.lili.common.enums.ResultCode; import cn.lili.common.enums.ResultCode;
import cn.lili.common.exception.ServiceException; import cn.lili.common.exception.ServiceException;
import cn.lili.common.security.context.UserContext;
import cn.lili.common.utils.BeanUtil; import cn.lili.common.utils.BeanUtil;
import cn.lili.common.utils.PageUtil; import cn.lili.common.utils.PageUtil;
import cn.lili.common.vo.PageVO; import cn.lili.common.vo.PageVO;
import cn.lili.modules.promotion.entity.dos.KanJiaActivity; import cn.lili.modules.promotion.entity.dos.KanjiaActivity;
import cn.lili.modules.promotion.entity.dos.KanJiaActivityGoods; import cn.lili.modules.promotion.entity.dos.KanjiaActivityGoods;
import cn.lili.modules.promotion.entity.dos.KanJiaActivityLog; import cn.lili.modules.promotion.entity.dos.KanjiaActivityLog;
import cn.lili.modules.promotion.entity.dto.KanJiaActivityDTO; import cn.lili.modules.promotion.entity.dto.KanjiaActivityDTO;
import cn.lili.modules.promotion.entity.dto.KanJiaActivityLogQuery; import cn.lili.modules.promotion.entity.dto.KanJiaActivityLogQuery;
import cn.lili.modules.promotion.entity.enums.PromotionStatusEnum; import cn.lili.modules.promotion.entity.enums.PromotionStatusEnum;
import cn.lili.modules.promotion.mapper.KanJiaActivityLogMapper; import cn.lili.modules.promotion.mapper.KanJiaActivityLogMapper;
import cn.lili.modules.promotion.service.KanJiaActivityGoodsService; import cn.lili.modules.promotion.service.KanjiaActivityGoodsService;
import cn.lili.modules.promotion.service.KanJiaActivityLogService; import cn.lili.modules.promotion.service.KanjiaActivityLogService;
import cn.lili.modules.promotion.service.KanJiaActivityService; import cn.lili.modules.promotion.service.KanjiaActivityService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@ -33,41 +32,41 @@ import org.springframework.transaction.annotation.Transactional;
*/ */
@Service @Service
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public class KanJiaActivityLogServiceImpl extends ServiceImpl<KanJiaActivityLogMapper, KanJiaActivityLog> implements KanJiaActivityLogService { public class KanjiaActivityLogServiceImpl extends ServiceImpl<KanJiaActivityLogMapper, KanjiaActivityLog> implements KanjiaActivityLogService {
@Autowired @Autowired
private KanJiaActivityGoodsService kanJiaActivityGoodsService; private KanjiaActivityGoodsService kanJiaActivityGoodsService;
@Autowired @Autowired
private KanJiaActivityService kanJiaActivityService; private KanjiaActivityService kanJiaActivityService;
@Override @Override
public IPage<KanJiaActivityLog> getForPage(KanJiaActivityLogQuery kanJiaActivityLogQuery, PageVO pageVO) { public IPage<KanjiaActivityLog> getForPage(KanJiaActivityLogQuery kanJiaActivityLogQuery, PageVO pageVO) {
QueryWrapper<KanJiaActivityLog> queryWrapper = kanJiaActivityLogQuery.wrapper(); QueryWrapper<KanjiaActivityLog> queryWrapper = kanJiaActivityLogQuery.wrapper();
return this.page(PageUtil.initPage(pageVO), queryWrapper); return this.page(PageUtil.initPage(pageVO), queryWrapper);
} }
@Override @Override
public KanJiaActivityLog addKanJiaActivityLog(KanJiaActivityDTO kanJiaActivityDTO) { public KanjiaActivityLog addKanJiaActivityLog(KanjiaActivityDTO kanjiaActivityDTO) {
//校验当前会员是否已经参与过此次砍价 //校验当前会员是否已经参与过此次砍价
QueryWrapper<KanJiaActivityLog> queryWrapper = new QueryWrapper<>(); QueryWrapper<KanjiaActivityLog> queryWrapper = new QueryWrapper<>();
queryWrapper.eq(kanJiaActivityDTO.getKanJiaMemberId() != null, "kan_jia_member_id", kanJiaActivityDTO.getKanJiaMemberId()); queryWrapper.eq(kanjiaActivityDTO.getKanjiaMemberId() != null, "kan_jia_member_id", kanjiaActivityDTO.getKanjiaMemberId());
queryWrapper.eq(kanJiaActivityDTO.getKanJiaActivityId() != null, "kan_jia_activity_id", kanJiaActivityDTO.getKanJiaActivityId()); queryWrapper.eq(kanjiaActivityDTO.getKanjiaActivityId() != null, "kan_jia_activity_id", kanjiaActivityDTO.getKanjiaActivityId());
Integer count = this.baseMapper.selectCount(queryWrapper); Integer count = this.baseMapper.selectCount(queryWrapper);
if (count > 0) { if (count > 0) {
throw new ServiceException(ResultCode.KANJIA_ACTIVITY_LOG_MEMBER_ERROR); throw new ServiceException(ResultCode.KANJIA_ACTIVITY_LOG_MEMBER_ERROR);
} }
//校验当前砍价商品是否有效 //校验当前砍价商品是否有效
KanJiaActivityGoods kanJiaActivityGoods = kanJiaActivityGoodsService.getById(kanJiaActivityDTO.getKanJiaActivityGoodsId()); KanjiaActivityGoods kanjiaActivityGoods = kanJiaActivityGoodsService.getById(kanjiaActivityDTO.getKanjiaActivityGoodsId());
//如果当前活动不为空且还在活动时间内 才可以参与砍价活动 //如果当前活动不为空且还在活动时间内 才可以参与砍价活动
if (kanJiaActivityGoods != null && kanJiaActivityGoods.getPromotionStatus().equals(PromotionStatusEnum.START.name())) { if (kanjiaActivityGoods != null && kanjiaActivityGoods.getPromotionStatus().equals(PromotionStatusEnum.START.name())) {
//获取砍价参与者记录 //获取砍价参与者记录
KanJiaActivity kanJiaActivity = kanJiaActivityService.getById(kanJiaActivityDTO.getKanJiaActivityId()); KanjiaActivity kanjiaActivity = kanJiaActivityService.getById(kanjiaActivityDTO.getKanjiaActivityId());
if (kanJiaActivity != null) { if (kanjiaActivity != null) {
KanJiaActivityLog kanJiaActivityLog = new KanJiaActivityLog(); KanjiaActivityLog kanJiaActivityLog = new KanjiaActivityLog();
kanJiaActivityLog.setKanJiaActivityId(kanJiaActivity.getId()); kanJiaActivityLog.setKanjiaActivityId(kanjiaActivity.getId());
BeanUtil.copyProperties(kanJiaActivityDTO, kanJiaActivityLog); BeanUtil.copyProperties(kanjiaActivityDTO, kanJiaActivityLog);
boolean result = this.save(kanJiaActivityLog); boolean result = this.save(kanJiaActivityLog);
if (result) { if (result) {
return kanJiaActivityLog; return kanJiaActivityLog;

View File

@ -11,17 +11,18 @@ import cn.lili.modules.goods.entity.dos.GoodsSku;
import cn.lili.modules.goods.service.GoodsSkuService; import cn.lili.modules.goods.service.GoodsSkuService;
import cn.lili.modules.member.entity.dos.Member; import cn.lili.modules.member.entity.dos.Member;
import cn.lili.modules.member.service.MemberService; import cn.lili.modules.member.service.MemberService;
import cn.lili.modules.promotion.entity.dos.KanJiaActivity; import cn.lili.modules.promotion.entity.dos.KanjiaActivity;
import cn.lili.modules.promotion.entity.dos.KanJiaActivityGoods; import cn.lili.modules.promotion.entity.dos.KanjiaActivityGoods;
import cn.lili.modules.promotion.entity.dos.KanJiaActivityLog; import cn.lili.modules.promotion.entity.dos.KanjiaActivityLog;
import cn.lili.modules.promotion.entity.dto.KanJiaActivityDTO; import cn.lili.modules.promotion.entity.dto.KanjiaActivityDTO;
import cn.lili.modules.promotion.entity.dto.KanJiaActivityQuery; import cn.lili.modules.promotion.entity.dto.KanjiaActivityQuery;
import cn.lili.modules.promotion.entity.enums.KanJiaStatusEnum; import cn.lili.modules.promotion.entity.enums.KanJiaStatusEnum;
import cn.lili.modules.promotion.entity.enums.PromotionStatusEnum; import cn.lili.modules.promotion.entity.enums.PromotionStatusEnum;
import cn.lili.modules.promotion.entity.vos.KanjiaActivitySearchParams;
import cn.lili.modules.promotion.mapper.KanJiaActivityMapper; import cn.lili.modules.promotion.mapper.KanJiaActivityMapper;
import cn.lili.modules.promotion.service.KanJiaActivityGoodsService; import cn.lili.modules.promotion.service.KanjiaActivityGoodsService;
import cn.lili.modules.promotion.service.KanJiaActivityLogService; import cn.lili.modules.promotion.service.KanjiaActivityLogService;
import cn.lili.modules.promotion.service.KanJiaActivityService; import cn.lili.modules.promotion.service.KanjiaActivityService;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@ -38,45 +39,44 @@ import org.springframework.transaction.annotation.Transactional;
*/ */
@Service @Service
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public class KanJiaActivityServiceImpl extends ServiceImpl<KanJiaActivityMapper, KanJiaActivity> implements KanJiaActivityService { public class KanjiaActivityServiceImpl extends ServiceImpl<KanJiaActivityMapper, KanjiaActivity> implements KanjiaActivityService {
@Autowired @Autowired
private KanJiaActivityGoodsService kanJiaActivityGoodsService; private KanjiaActivityGoodsService kanjiaActivityGoodsService;
@Autowired @Autowired
private KanJiaActivityLogService kanJiaActivityLogService; private KanjiaActivityLogService kanjiaActivityLogService;
@Autowired @Autowired
private MemberService memberService; private MemberService memberService;
//规格商品
@Autowired @Autowired
private GoodsSkuService goodsSkuService; private GoodsSkuService goodsSkuService;
@Override @Override
public KanJiaActivityLog add(String skuId) { public KanjiaActivity getKanjiaActivity(KanjiaActivitySearchParams kanJiaActivitySearchParams) {
return this.getOne(kanJiaActivitySearchParams.wrapper());
}
@Override
public KanjiaActivityLog add(String id) {
//根据skuId查询当前sku是否参与活动并且是在活动进行中 //根据skuId查询当前sku是否参与活动并且是在活动进行中
KanJiaActivityGoods kanJiaActivityGoods = kanJiaActivityGoodsService.getKanJiaGoodsBySku(skuId); KanjiaActivityGoods kanJiaActivityGoods = kanjiaActivityGoodsService.getById(id);
//只有砍价商品存在且已经开始的活动才可以发起砍价 //只有砍价商品存在且已经开始的活动才可以发起砍价
if (kanJiaActivityGoods != null && kanJiaActivityGoods.getPromotionStatus().equals(PromotionStatusEnum.START.name())) { if (kanJiaActivityGoods != null && kanJiaActivityGoods.getPromotionStatus().equals(PromotionStatusEnum.START.name())) {
//获取会员信息 //获取会员信息
Member member = memberService.getById(UserContext.getCurrentUser().getId()); Member member = memberService.getById(UserContext.getCurrentUser().getId());
//校验此活动是否已经发起过 //校验此活动是否已经发起过
QueryWrapper<KanJiaActivity> queryWrapper = new QueryWrapper<>(); QueryWrapper<KanjiaActivity> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("kan_jia_activity_goods_id", kanJiaActivityGoods.getId()); queryWrapper.eq("kan_jia_activity_goods_id", kanJiaActivityGoods.getId());
queryWrapper.eq("member_id", member.getId()); queryWrapper.eq("member_id", member.getId());
if (this.count(queryWrapper) > 0) { if (this.count(queryWrapper) > 0) {
throw new ServiceException(ResultCode.KANJIA_ACTIVITY_MEMBER_ERROR); throw new ServiceException(ResultCode.KANJIA_ACTIVITY_MEMBER_ERROR);
} }
KanJiaActivity kanJiaActivity = new KanJiaActivity(); KanjiaActivity kanJiaActivity = new KanjiaActivity();
//获取商品信息 //获取商品信息
GoodsSku goodsSku = goodsSkuService.getGoodsSkuByIdFromCache(skuId); GoodsSku goodsSku = goodsSkuService.getGoodsSkuByIdFromCache(kanJiaActivityGoods.getSkuId());
if (goodsSku != null && member != null) { if (goodsSku != null && member != null) {
kanJiaActivity.setSkuId(skuId); kanJiaActivity.setSkuId(kanJiaActivityGoods.getSkuId());
kanJiaActivity.setGoodsName(goodsSku.getGoodsName()); kanJiaActivity.setGoodsName(goodsSku.getGoodsName());
kanJiaActivity.setKanJiaActivityGoodsId(kanJiaActivityGoods.getId()); kanJiaActivity.setKanjiaActivityGoodsId(kanJiaActivityGoods.getId());
kanJiaActivity.setThumbnail(goodsSku.getThumbnail()); kanJiaActivity.setThumbnail(goodsSku.getThumbnail());
kanJiaActivity.setMemberId(UserContext.getCurrentUser().getId()); kanJiaActivity.setMemberId(UserContext.getCurrentUser().getId());
kanJiaActivity.setMemberName(member.getUsername()); kanJiaActivity.setMemberName(member.getUsername());
@ -84,22 +84,22 @@ public class KanJiaActivityServiceImpl extends ServiceImpl<KanJiaActivityMapper,
//剩余砍价金额 开始 是商品金额-最低购买金额 //剩余砍价金额 开始 是商品金额-最低购买金额
Double surplusPrice = CurrencyUtil.sub(goodsSku.getPrice(), kanJiaActivityGoods.getPurchasePrice()); Double surplusPrice = CurrencyUtil.sub(goodsSku.getPrice(), kanJiaActivityGoods.getPurchasePrice());
//获取砍价金额因为自己要给自己砍一刀 所以需要在可砍金额范围内 砍一刀 //获取砍价金额因为自己要给自己砍一刀 所以需要在可砍金额范围内 砍一刀
Double price = this.getKanJiaPrice(kanJiaActivityGoods, surplusPrice); Double price = this.getKanjiaPrice(kanJiaActivityGoods, surplusPrice);
//剩余可砍金额就是 砍一刀后的金额 //剩余可砍金额就是 砍一刀后的金额
kanJiaActivity.setSurplusPrice(CurrencyUtil.sub(surplusPrice, price)); kanJiaActivity.setSurplusPrice(CurrencyUtil.sub(surplusPrice, price));
//保存我的砍价活动 //保存我的砍价活动
boolean result = this.save(kanJiaActivity); boolean result = this.save(kanJiaActivity);
//因为发起砍价就是自己给自己砍一刀所以要添加砍价记录信息 //因为发起砍价就是自己给自己砍一刀所以要添加砍价记录信息
if (result) { if (result) {
KanJiaActivityDTO kanJiaActivityDTO = new KanJiaActivityDTO(); KanjiaActivityDTO kanjiaActivityDTO = new KanjiaActivityDTO();
kanJiaActivityDTO.setKanJiaActivityGoodsId(kanJiaActivityGoods.getId()); kanjiaActivityDTO.setKanjiaActivityGoodsId(kanJiaActivityGoods.getId());
kanJiaActivityDTO.setKanJiaActivityId(kanJiaActivity.getId()); kanjiaActivityDTO.setKanjiaActivityId(kanJiaActivity.getId());
kanJiaActivityDTO.setKanJiaPrice(price); kanjiaActivityDTO.setKanjiaPrice(price);
kanJiaActivityDTO.setSurplusPrice(kanJiaActivity.getSurplusPrice()); kanjiaActivityDTO.setSurplusPrice(kanJiaActivity.getSurplusPrice());
kanJiaActivityDTO.setKanJiaMemberId(kanJiaActivity.getMemberId()); kanjiaActivityDTO.setKanjiaMemberId(kanJiaActivity.getMemberId());
kanJiaActivityDTO.setKanJiaMemberName(kanJiaActivity.getMemberName()); kanjiaActivityDTO.setKanjiaMemberName(kanJiaActivity.getMemberName());
kanJiaActivityDTO.setKanJiaMemberFace(member.getFace()); kanjiaActivityDTO.setKanjiaMemberFace(member.getFace());
return kanJiaActivityLogService.addKanJiaActivityLog(kanJiaActivityDTO); return kanjiaActivityLogService.addKanJiaActivityLog(kanjiaActivityDTO);
} }
} }
@ -110,37 +110,37 @@ public class KanJiaActivityServiceImpl extends ServiceImpl<KanJiaActivityMapper,
@Override @Override
public KanJiaActivityLog helpKanJia(String kanJiaActivityId) { public KanjiaActivityLog helpKanJia(String kanjiaActivityId) {
//获取会员信息 //获取会员信息
Member member = memberService.getById(UserContext.getCurrentUser().getId()); Member member = memberService.getById(UserContext.getCurrentUser().getId());
//根据砍价发起活动id查询砍价活动信息 //根据砍价发起活动id查询砍价活动信息
KanJiaActivity kanJiaActivity = this.getById(kanJiaActivityId); KanjiaActivity kanjiaActivity = this.getById(kanjiaActivityId);
if (kanJiaActivity != null && kanJiaActivity.getStatus().equals(PromotionStatusEnum.START.name())) { if (kanjiaActivity != null && kanjiaActivity.getStatus().equals(PromotionStatusEnum.START.name())) {
if (member == null) { if (member == null) {
throw new ServiceException(ResultCode.USER_NOT_EXIST); throw new ServiceException(ResultCode.USER_NOT_EXIST);
} }
//根据skuId查询当前sku是否参与活动并且是在活动进行中 //根据skuId查询当前sku是否参与活动并且是在活动进行中
KanJiaActivityGoods kanJiaActivityGoods = kanJiaActivityGoodsService.getById(kanJiaActivity.getKanJiaActivityGoodsId()); KanjiaActivityGoods kanJiaActivityGoods = kanjiaActivityGoodsService.getById(kanjiaActivity.getKanjiaActivityGoodsId());
if (kanJiaActivityGoods == null) { if (kanJiaActivityGoods == null) {
throw new ServiceException(ResultCode.PROMOTION_STATUS_END); throw new ServiceException(ResultCode.PROMOTION_STATUS_END);
} }
KanJiaActivityDTO kanJiaActivityDTO = new KanJiaActivityDTO(); KanjiaActivityDTO kanjiaActivityDTO = new KanjiaActivityDTO();
kanJiaActivityDTO.setKanJiaActivityGoodsId(kanJiaActivity.getKanJiaActivityGoodsId()); kanjiaActivityDTO.setKanjiaActivityGoodsId(kanjiaActivity.getKanjiaActivityGoodsId());
kanJiaActivityDTO.setKanJiaActivityId(kanJiaActivityId); kanjiaActivityDTO.setKanjiaActivityId(kanjiaActivityId);
//获取砍价金额 //获取砍价金额
Double price = this.getKanJiaPrice(kanJiaActivityGoods, kanJiaActivity.getSurplusPrice()); Double price = this.getKanjiaPrice(kanJiaActivityGoods, kanjiaActivity.getSurplusPrice());
kanJiaActivityDTO.setKanJiaPrice(price); kanjiaActivityDTO.setKanjiaPrice(price);
//获取可砍金额 //获取可砍金额
kanJiaActivityDTO.setSurplusPrice(CurrencyUtil.sub(kanJiaActivity.getSurplusPrice(), price)); kanjiaActivityDTO.setSurplusPrice(CurrencyUtil.sub(kanjiaActivity.getSurplusPrice(), price));
//如果可砍金额为0的话说明活动成功了 //如果可砍金额为0的话说明活动成功了
if (Double.doubleToLongBits(kanJiaActivityDTO.getSurplusPrice()) == Double.doubleToLongBits(0D)) { if (Double.doubleToLongBits(kanjiaActivityDTO.getSurplusPrice()) == Double.doubleToLongBits(0D)) {
kanJiaActivity.setStatus(KanJiaStatusEnum.SUCCESS.name()); kanjiaActivity.setStatus(KanJiaStatusEnum.SUCCESS.name());
this.updateById(kanJiaActivity); this.updateById(kanjiaActivity);
} }
kanJiaActivityDTO.setKanJiaMemberId(member.getId()); kanjiaActivityDTO.setKanjiaMemberId(member.getId());
kanJiaActivityDTO.setKanJiaMemberName(member.getUsername()); kanjiaActivityDTO.setKanjiaMemberName(member.getUsername());
kanJiaActivityDTO.setKanJiaMemberFace(member.getFace()); kanjiaActivityDTO.setKanjiaMemberFace(member.getFace());
return kanJiaActivityLogService.addKanJiaActivityLog(kanJiaActivityDTO); return kanjiaActivityLogService.addKanJiaActivityLog(kanjiaActivityDTO);
} }
throw new ServiceException(ResultCode.PROMOTION_STATUS_END); throw new ServiceException(ResultCode.PROMOTION_STATUS_END);
} }
@ -148,20 +148,20 @@ public class KanJiaActivityServiceImpl extends ServiceImpl<KanJiaActivityMapper,
/** /**
* 随机获取砍一刀价格 * 随机获取砍一刀价格
* *
* @param kanJiaActivityGoods 砍价商品信息 * @param kanjiaActivityGoods 砍价商品信息
* @param surplusPrice 剩余可砍金额 * @param surplusPrice 剩余可砍金额
* @return * @return
*/ */
private Double getKanJiaPrice(KanJiaActivityGoods kanJiaActivityGoods, Double surplusPrice) { private Double getKanjiaPrice(KanjiaActivityGoods kanjiaActivityGoods, Double surplusPrice) {
double result = kanJiaActivityGoods.getHighestPrice() - kanJiaActivityGoods.getLowestPrice(); double result = kanjiaActivityGoods.getHighestPrice() - kanjiaActivityGoods.getLowestPrice();
double num = (Math.random() * result); double num = (Math.random() * result);
//如果剩余金额小于最低可砍价金额则直接返回最小金额 砍价成功 //如果剩余金额小于最低可砍价金额则直接返回最小金额 砍价成功
if (kanJiaActivityGoods.getLowestPrice() > surplusPrice) { if (kanjiaActivityGoods.getLowestPrice() > surplusPrice) {
return surplusPrice; return surplusPrice;
} }
Double price = 0D; Double price = 0D;
while (true) { while (true) {
price = CurrencyUtil.round(num + kanJiaActivityGoods.getLowestPrice(), 2); price = CurrencyUtil.round(num + kanjiaActivityGoods.getLowestPrice(), 2);
//从最大金额和最小金额之间获取随机砍价金额 //从最大金额和最小金额之间获取随机砍价金额
if (price < surplusPrice) { if (price < surplusPrice) {
break; break;
@ -176,8 +176,8 @@ public class KanJiaActivityServiceImpl extends ServiceImpl<KanJiaActivityMapper,
@Override @Override
public IPage<KanJiaActivity> getForPage(KanJiaActivityQuery kanJiaActivityQuery, PageVO page) { public IPage<KanjiaActivity> getForPage(KanjiaActivityQuery kanjiaActivityQuery, PageVO page) {
QueryWrapper<KanJiaActivity> queryWrapper = kanJiaActivityQuery.wrapper(); QueryWrapper<KanjiaActivity> queryWrapper = kanjiaActivityQuery.wrapper();
return this.page(PageUtil.initPage(page), queryWrapper); return this.page(PageUtil.initPage(page), queryWrapper);
} }

View File

@ -9,7 +9,7 @@ import cn.lili.common.exception.ServiceException;
import cn.lili.common.trigger.message.PromotionMessage; import cn.lili.common.trigger.message.PromotionMessage;
import cn.lili.modules.order.cart.entity.vo.FullDiscountVO; import cn.lili.modules.order.cart.entity.vo.FullDiscountVO;
import cn.lili.modules.promotion.entity.dos.*; import cn.lili.modules.promotion.entity.dos.*;
import cn.lili.modules.promotion.entity.dto.KanJiaActivityGoodsDTO; import cn.lili.modules.promotion.entity.dto.KanjiaActivityGoodsDTO;
import cn.lili.modules.promotion.entity.enums.*; import cn.lili.modules.promotion.entity.enums.*;
import cn.lili.modules.promotion.entity.vos.CouponVO; import cn.lili.modules.promotion.entity.vos.CouponVO;
import cn.lili.modules.promotion.entity.vos.PintuanVO; import cn.lili.modules.promotion.entity.vos.PintuanVO;
@ -98,7 +98,7 @@ public class PromotionServiceImpl implements PromotionService {
@Autowired @Autowired
private MongoTemplate mongoTemplate; private MongoTemplate mongoTemplate;
@Autowired @Autowired
private KanJiaActivityGoodsService kanJiaActivityGoodsService; private KanjiaActivityGoodsService kanJiaActivityGoodsService;
@Override @Override
@ -465,7 +465,7 @@ public class PromotionServiceImpl implements PromotionService {
* @return 修改结果 * @return 修改结果
*/ */
private boolean updateKanJiaGoods(PromotionMessage promotionMessage, PromotionTypeEnum promotionTypeEnum) { private boolean updateKanJiaGoods(PromotionMessage promotionMessage, PromotionTypeEnum promotionTypeEnum) {
KanJiaActivityGoodsDTO kanJiaActivityGoodsDTO = this.mongoTemplate.findById(promotionMessage.getPromotionId(), KanJiaActivityGoodsDTO.class); KanjiaActivityGoodsDTO kanJiaActivityGoodsDTO = this.mongoTemplate.findById(promotionMessage.getPromotionId(), KanjiaActivityGoodsDTO.class);
if (kanJiaActivityGoodsDTO == null) { if (kanJiaActivityGoodsDTO == null) {
this.throwPromotionException(promotionTypeEnum, promotionMessage.getPromotionId(), promotionMessage.getPromotionStatus()); this.throwPromotionException(promotionTypeEnum, promotionMessage.getPromotionId(), promotionMessage.getPromotionStatus());
return false; return false;

View File

@ -6,10 +6,10 @@ import cn.lili.common.enums.ResultUtil;
import cn.lili.common.exception.ServiceException; import cn.lili.common.exception.ServiceException;
import cn.lili.common.vo.PageVO; import cn.lili.common.vo.PageVO;
import cn.lili.common.vo.ResultMessage; import cn.lili.common.vo.ResultMessage;
import cn.lili.modules.promotion.entity.dto.KanJiaActivityGoodsDTO; import cn.lili.modules.promotion.entity.dto.KanjiaActivityGoodsDTO;
import cn.lili.modules.promotion.entity.dto.KanJiaActivityGoodsOperationDTO; import cn.lili.modules.promotion.entity.dto.KanjiaActivityGoodsOperationDTO;
import cn.lili.modules.promotion.entity.vos.KanJiaActivityGoodsParams; import cn.lili.modules.promotion.entity.vos.KanjiaActivityGoodsParams;
import cn.lili.modules.promotion.service.KanJiaActivityGoodsService; import cn.lili.modules.promotion.service.KanjiaActivityGoodsService;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
@ -31,11 +31,11 @@ import java.util.Arrays;
public class KanJiaActivityGoodsManagerController { public class KanJiaActivityGoodsManagerController {
@Autowired @Autowired
private KanJiaActivityGoodsService kanJiaActivityGoodsService; private KanjiaActivityGoodsService kanJiaActivityGoodsService;
@PostMapping @PostMapping
@ApiOperation(value = "添加砍价活动") @ApiOperation(value = "添加砍价活动")
public ResultMessage<Object> add(@RequestBody KanJiaActivityGoodsOperationDTO kanJiaActivityGoodsOperationDTO) { public ResultMessage<Object> add(@RequestBody KanjiaActivityGoodsOperationDTO kanJiaActivityGoodsOperationDTO) {
kanJiaActivityGoodsService.add(kanJiaActivityGoodsOperationDTO); kanJiaActivityGoodsService.add(kanJiaActivityGoodsOperationDTO);
return ResultUtil.success(); return ResultUtil.success();
} }
@ -43,7 +43,7 @@ public class KanJiaActivityGoodsManagerController {
@ApiOperation(value = "获取砍价活动分页") @ApiOperation(value = "获取砍价活动分页")
@GetMapping @GetMapping
public ResultMessage<IPage<KanJiaActivityGoodsDTO>> getKanJiaActivityPage(KanJiaActivityGoodsParams KanJiaActivityParams, PageVO page) { public ResultMessage<IPage<KanjiaActivityGoodsDTO>> getKanJiaActivityPage(KanjiaActivityGoodsParams KanJiaActivityParams, PageVO page) {
return ResultUtil.data(kanJiaActivityGoodsService.getForPage(KanJiaActivityParams, page)); return ResultUtil.data(kanJiaActivityGoodsService.getForPage(KanJiaActivityParams, page));
} }
@ -51,14 +51,14 @@ public class KanJiaActivityGoodsManagerController {
@GetMapping("/{id}") @GetMapping("/{id}")
@ApiOperation(value = "获取积分商品详情") @ApiOperation(value = "获取积分商品详情")
public ResultMessage<Object> getPointsGoodsDetail(@PathVariable("id") String goodsId) { public ResultMessage<Object> getPointsGoodsDetail(@PathVariable("id") String goodsId) {
KanJiaActivityGoodsDTO kanJiaActivityGoodsDTO = kanJiaActivityGoodsService.getKanJiaGoodsDetail(goodsId); KanjiaActivityGoodsDTO kanJiaActivityGoodsDTO = kanJiaActivityGoodsService.getKanJiaGoodsDetail(goodsId);
return ResultUtil.data(kanJiaActivityGoodsDTO); return ResultUtil.data(kanJiaActivityGoodsDTO);
} }
@PutMapping @PutMapping
@ApiOperation(value = "修改砍价商品") @ApiOperation(value = "修改砍价商品")
public ResultMessage<Object> updatePointsGoods(@RequestBody KanJiaActivityGoodsDTO kanJiaActivityGoodsDTO) { public ResultMessage<Object> updatePointsGoods(@RequestBody KanjiaActivityGoodsDTO kanJiaActivityGoodsDTO) {
kanJiaActivityGoodsService.updateKanJiaActivityGoods(kanJiaActivityGoodsDTO); kanJiaActivityGoodsService.updateKanJiaActivityGoods(kanJiaActivityGoodsDTO);
return ResultUtil.success(); return ResultUtil.success();
} }