From 5d211c241d740b6aeec00f7a0b5d890e6d4d466d Mon Sep 17 00:00:00 2001 From: lifenlong Date: Sat, 17 Jul 2021 14:02:34 +0800 Subject: [PATCH] =?UTF-8?q?=E7=A0=8D=E4=BB=B7=E6=B4=BB=E5=8A=A8=E5=95=86?= =?UTF-8?q?=E5=93=81=E8=B4=AD=E4=B9=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../KanjiaGoodsActivityBuyerController.java | 42 +++---- .../order/cart/service/CartServiceImpl.java | 4 +- .../promotion/entity/dos/FullDiscount.java | 4 + .../promotion/entity/dos/KanjiaActivity.java | 9 +- .../entity/dos/KanjiaActivityGoods.java | 32 +---- .../entity/dto/KanJiaActivityLogQuery.java | 5 - .../entity/dto/PromotionPriceParamDTO.java | 6 + .../entity/enums/KanJiaStatusEnum.java | 1 + .../entity/enums/PromotionTypeEnum.java | 4 +- .../KanjiaActivityGoodsListVO.java | 2 +- .../KanjiaActivityGoodsParams.java | 2 +- .../{ => kanjia}/KanjiaActivityGoodsVO.java | 2 +- .../KanjiaActivitySearchParams.java | 2 +- .../entity/vos/kanjia/KanjiaActivityVO.java | 27 ++++ .../mapper/KanJiaActivityGoodsMapper.java | 2 +- .../service/KanjiaActivityGoodsService.java | 6 +- .../service/KanjiaActivityService.java | 13 +- .../KanjiaActivityGoodsServiceImpl.java | 12 +- .../KanjiaActivityLogServiceImpl.java | 8 +- .../KanjiaActivityServiceImpl.java | 102 +++++++++------ .../PromotionGoodsServiceImpl.java | 7 +- .../PromotionPriceServiceImpl.java | 118 +++++++++--------- .../serviceimpl/PromotionServiceImpl.java | 6 +- .../passport/AdminUserManagerController.java | 12 +- .../KanJiaActivityGoodsManagerController.java | 2 +- 25 files changed, 243 insertions(+), 187 deletions(-) rename framework/src/main/java/cn/lili/modules/promotion/entity/vos/{ => kanjia}/KanjiaActivityGoodsListVO.java (91%) rename framework/src/main/java/cn/lili/modules/promotion/entity/vos/{ => kanjia}/KanjiaActivityGoodsParams.java (98%) rename framework/src/main/java/cn/lili/modules/promotion/entity/vos/{ => kanjia}/KanjiaActivityGoodsVO.java (90%) rename framework/src/main/java/cn/lili/modules/promotion/entity/vos/{ => kanjia}/KanjiaActivitySearchParams.java (96%) create mode 100644 framework/src/main/java/cn/lili/modules/promotion/entity/vos/kanjia/KanjiaActivityVO.java diff --git a/buyer-api/src/main/java/cn/lili/controller/promotion/KanjiaGoodsActivityBuyerController.java b/buyer-api/src/main/java/cn/lili/controller/promotion/KanjiaGoodsActivityBuyerController.java index 7861251b..80b4ea66 100644 --- a/buyer-api/src/main/java/cn/lili/controller/promotion/KanjiaGoodsActivityBuyerController.java +++ b/buyer-api/src/main/java/cn/lili/controller/promotion/KanjiaGoodsActivityBuyerController.java @@ -10,10 +10,7 @@ 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.entity.vos.kanjia.*; import cn.lili.modules.promotion.service.KanjiaActivityGoodsService; import cn.lili.modules.promotion.service.KanjiaActivityLogService; import cn.lili.modules.promotion.service.KanjiaActivityService; @@ -53,10 +50,10 @@ public class KanjiaGoodsActivityBuyerController { @GetMapping @ApiOperation(value = "分页获取砍价商品") - public ResultMessage> kanJiaActivityGoodsPage(KanjiaActivityGoodsParams kanJiaActivityGoodsParams, PageVO page) { + public ResultMessage> kanJiaActivityGoodsPage(KanjiaActivityGoodsParams kanjiaActivityGoodsParams, PageVO page) { // 会员端查询到的肯定是已经开始的活动商品 - kanJiaActivityGoodsParams.setPromotionStatus(PromotionStatusEnum.START.name()); - return ResultUtil.data(kanJiaActivityGoodsService.kanJiaGoodsVOPage(kanJiaActivityGoodsParams, page)); + kanjiaActivityGoodsParams.setPromotionStatus(PromotionStatusEnum.START.name()); + return ResultUtil.data(kanJiaActivityGoodsService.kanJiaGoodsVOPage(kanjiaActivityGoodsParams, page)); } @GetMapping("/{id}") @@ -69,43 +66,42 @@ public class KanjiaGoodsActivityBuyerController { @GetMapping("/getKanjiaActivity/logs") @ApiOperation(value = "分页获取砍价活动-帮砍记录") public ResultMessage> getPointsGoodsPage(KanJiaActivityLogQuery kanJiaActivityLogQuery, PageVO page) { - // 会员端查询到的肯定是已经开始的活动商品 - kanJiaActivityLogQuery.setMemberId(UserContext.getCurrentUser().getId()); return ResultUtil.data(kanJiaActivityLogService.getForPage(kanJiaActivityLogQuery, page)); } @PostMapping("/getKanjiaActivity") @ApiOperation(value = "获取砍价活动") - public ResultMessage getKanJiaActivity(KanjiaActivitySearchParams kanJiaActivitySearchParams) { + public ResultMessage getKanJiaActivity(KanjiaActivitySearchParams kanjiaActivitySearchParams) { //如果是非被邀请关系则填写会员ID - if (StrUtil.isEmpty(kanJiaActivitySearchParams.getKanjiaActivityId())) { - kanJiaActivitySearchParams.setMemberId(UserContext.getCurrentUser().getId()); + if (StrUtil.isEmpty(kanjiaActivitySearchParams.getKanjiaActivityId())) { + kanjiaActivitySearchParams.setMemberId(UserContext.getCurrentUser().getId()); } - return ResultUtil.data(kanJiaActivityService.getKanjiaActivity(kanJiaActivitySearchParams)); + return ResultUtil.data(kanJiaActivityService.getKanjiaActivityVO(kanjiaActivitySearchParams)); } @PostMapping @ApiImplicitParam(name = "id", value = "砍价活动商品ID", required = true, paramType = "path") @ApiOperation(value = "发起砍价活动") public ResultMessage launchKanJiaActivity(String id) { - KanjiaActivityLog kanJiaActivityLog = kanJiaActivityService.add(id); - return ResultUtil.data(kanJiaActivityLog); + KanjiaActivityLog kanjiaActivityLog = kanJiaActivityService.add(id); + return ResultUtil.data(kanjiaActivityLog); } - @PostMapping("/help") + @PostMapping("/help/{kanjiaActivityId}") + @ApiImplicitParam(name = "kanJiaActivityId", value = "砍价活动ID", required = true, paramType = "path") @ApiOperation(value = "帮砍一刀") - public ResultMessage helpKanJia(String kanJiaActivityId) { - KanjiaActivityLog kanJiaActivityLog = kanJiaActivityService.helpKanJia(kanJiaActivityId); - return ResultUtil.data(kanJiaActivityLog); + public ResultMessage helpKanJia(@PathVariable String kanjiaActivityId) { + KanjiaActivityLog kanjiaActivityLog = kanJiaActivityService.helpKanJia(kanjiaActivityId); + return ResultUtil.data(kanjiaActivityLog); } @GetMapping("/kanjiaActivity/mine/") @ApiOperation(value = "分页获取已参与的砍价活动") - public ResultMessage> getPointsGoodsPage(KanjiaActivityQuery kanJiaActivityQuery, PageVO page) { + public ResultMessage> getPointsGoodsPage(KanjiaActivityQuery kanjiaActivityQuery, PageVO page) { // 会员端查询到的肯定是已经开始的活动商品 - kanJiaActivityQuery.setMemberId(UserContext.getCurrentUser().getId()); - IPage kanJiaActivityIPage = kanJiaActivityService.getForPage(kanJiaActivityQuery, page); - return ResultUtil.data(kanJiaActivityIPage); + kanjiaActivityQuery.setMemberId(UserContext.getCurrentUser().getId()); + IPage kanjiaActivity = kanJiaActivityService.getForPage(kanjiaActivityQuery, page); + return ResultUtil.data(kanjiaActivity); } } diff --git a/framework/src/main/java/cn/lili/modules/order/cart/service/CartServiceImpl.java b/framework/src/main/java/cn/lili/modules/order/cart/service/CartServiceImpl.java index b1688352..0616b9ba 100644 --- a/framework/src/main/java/cn/lili/modules/order/cart/service/CartServiceImpl.java +++ b/framework/src/main/java/cn/lili/modules/order/cart/service/CartServiceImpl.java @@ -31,7 +31,7 @@ import cn.lili.modules.promotion.entity.enums.CouponScopeTypeEnum; import cn.lili.modules.promotion.entity.enums.KanJiaStatusEnum; import cn.lili.modules.promotion.entity.enums.MemberCouponStatusEnum; import cn.lili.modules.promotion.entity.enums.PromotionTypeEnum; -import cn.lili.modules.promotion.entity.vos.KanjiaActivitySearchParams; +import cn.lili.modules.promotion.entity.vos.kanjia.KanjiaActivitySearchParams; import cn.lili.modules.promotion.service.*; import cn.lili.modules.search.entity.dos.EsGoodsIndex; import cn.lili.modules.search.service.EsGoodsSearchService; @@ -705,7 +705,7 @@ public class CartServiceImpl implements CartService { if (kanjiaActivity == null) { throw new ServiceException(ResultCode.KANJIA_ACTIVITY_NOT_FOUND_ERROR); //判断砍价活动是否已满足条件 - } else if (!KanJiaStatusEnum.PASS.name().equals(kanjiaActivity.getStatus())) { + } else if (!KanJiaStatusEnum.SUCCESS.name().equals(kanjiaActivity.getStatus())) { throw new ServiceException(ResultCode.KANJIA_ACTIVITY_NOT_PASS_ERROR); //判断砍价商品数量 } else if (cartSkuVO.getNum() > 1) { diff --git a/framework/src/main/java/cn/lili/modules/promotion/entity/dos/FullDiscount.java b/framework/src/main/java/cn/lili/modules/promotion/entity/dos/FullDiscount.java index d78c7a7c..1a6d6e5b 100644 --- a/framework/src/main/java/cn/lili/modules/promotion/entity/dos/FullDiscount.java +++ b/framework/src/main/java/cn/lili/modules/promotion/entity/dos/FullDiscount.java @@ -27,6 +27,10 @@ public class FullDiscount extends BasePromotion { private static final long serialVersionUID = 430433787214894166L; + @NotEmpty(message = "活动名称不能为空") + @ApiModelProperty(value = "活动名称", required = true) + private String promotionName; + @NotNull(message = "请填写优惠门槛") @DecimalMax(value = "99999999.00", message = "优惠券门槛金额超出限制") @ApiModelProperty(value = "优惠门槛金额", required = true) diff --git a/framework/src/main/java/cn/lili/modules/promotion/entity/dos/KanjiaActivity.java b/framework/src/main/java/cn/lili/modules/promotion/entity/dos/KanjiaActivity.java index ecd4d9e5..f293fa6e 100644 --- a/framework/src/main/java/cn/lili/modules/promotion/entity/dos/KanjiaActivity.java +++ b/framework/src/main/java/cn/lili/modules/promotion/entity/dos/KanjiaActivity.java @@ -29,15 +29,18 @@ public class KanjiaActivity extends BaseEntity { @ApiModelProperty(value = "砍价商品id") private String kanjiaActivityGoodsId; - @ApiModelProperty(value = "参与砍价活动会员id") + @ApiModelProperty(value = "发起砍价活动会员id") private String memberId; - @ApiModelProperty(value = "参与砍价活动会员名称") + @ApiModelProperty(value = "发起砍价活动会员名称") private String memberName; @ApiModelProperty(value = "剩余购买金额") private Double surplusPrice; + @ApiModelProperty(value = "砍价最低购买金额") + private Double purchasePrice; + @ApiModelProperty(value = "砍价商品skuId") private String skuId; @@ -50,7 +53,7 @@ public class KanjiaActivity extends BaseEntity { /** * @see KanJiaStatusEnum */ - @ApiModelProperty(value = "我的砍价状态") + @ApiModelProperty(value = "砍价活动状态") private String status; diff --git a/framework/src/main/java/cn/lili/modules/promotion/entity/dos/KanjiaActivityGoods.java b/framework/src/main/java/cn/lili/modules/promotion/entity/dos/KanjiaActivityGoods.java index ce8c939b..5244441c 100644 --- a/framework/src/main/java/cn/lili/modules/promotion/entity/dos/KanjiaActivityGoods.java +++ b/framework/src/main/java/cn/lili/modules/promotion/entity/dos/KanjiaActivityGoods.java @@ -1,19 +1,14 @@ package cn.lili.modules.promotion.entity.dos; -import cn.lili.base.BaseEntity; -import cn.lili.modules.promotion.entity.enums.PromotionStatusEnum; +import cn.lili.modules.promotion.entity.dto.BasePromotion; import com.baomidou.mybatisplus.annotation.TableName; -import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import javax.persistence.Entity; import javax.persistence.Table; -import javax.validation.constraints.Min; import javax.validation.constraints.NotEmpty; -import javax.validation.constraints.NotNull; -import java.util.Date; /** * 砍价活动商品实体类 @@ -26,7 +21,7 @@ import java.util.Date; @Table(name = "li_kanjia_activity_goods") @TableName("li_kanjia_activity_goods") @ApiModel(value = "砍价活动商品对象") -public class KanjiaActivityGoods extends BaseEntity { +public class KanjiaActivityGoods extends BasePromotion { private static final long serialVersionUID = 6694714877345423488L; @@ -34,6 +29,9 @@ public class KanjiaActivityGoods extends BaseEntity { @NotEmpty(message = "结算价格不能为空") private Double settlementPrice; + @ApiModelProperty(value = "商品原价") + private Double originalPrice; + @ApiModelProperty(value = "最低购买金额") @NotEmpty(message = "最低购买金额不能为空") private Double purchasePrice; @@ -59,24 +57,4 @@ public class KanjiaActivityGoods extends BaseEntity { @ApiModelProperty(value = "每人最高砍价金额") @NotEmpty(message = "每人最高砍价金额不能为空") private Double highestPrice; - - /** - * @see PromotionStatusEnum - */ - @ApiModelProperty(value = "活动状态") - @NotNull(message = "活动状态不能为空") - private String promotionStatus; - - @Min(message = "活动开始时间不能为空", value = 0) - @ApiModelProperty(value = "活动开始时间", required = true) - @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") - private Date startTime; - - @Min(message = "活动结束时间不能为空", value = 0) - @ApiModelProperty(value = "活动结束时间", required = true) - @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") - private Date endTime; - - - } \ No newline at end of file diff --git a/framework/src/main/java/cn/lili/modules/promotion/entity/dto/KanJiaActivityLogQuery.java b/framework/src/main/java/cn/lili/modules/promotion/entity/dto/KanJiaActivityLogQuery.java index 2e4dc1fa..0639bc89 100644 --- a/framework/src/main/java/cn/lili/modules/promotion/entity/dto/KanJiaActivityLogQuery.java +++ b/framework/src/main/java/cn/lili/modules/promotion/entity/dto/KanJiaActivityLogQuery.java @@ -23,8 +23,6 @@ public class KanJiaActivityLogQuery { @ApiModelProperty(value = "砍价发起活动id") private String kanJiaActivityId; - @ApiModelProperty(value = "会员id", hidden = true) - private String memberId; public QueryWrapper wrapper() { QueryWrapper queryWrapper = new QueryWrapper<>(); @@ -32,9 +30,6 @@ public class KanJiaActivityLogQuery { if (CharSequenceUtil.isNotEmpty(kanJiaActivityId)) { queryWrapper.like("kanjia_activity_id", kanJiaActivityId); } - if (memberId != null) { - queryWrapper.eq("kanjia_member_id", memberId); - } queryWrapper.eq("delete_flag", false); queryWrapper.orderByDesc("create_time"); return queryWrapper; diff --git a/framework/src/main/java/cn/lili/modules/promotion/entity/dto/PromotionPriceParamDTO.java b/framework/src/main/java/cn/lili/modules/promotion/entity/dto/PromotionPriceParamDTO.java index 42019a79..2d4c3f00 100644 --- a/framework/src/main/java/cn/lili/modules/promotion/entity/dto/PromotionPriceParamDTO.java +++ b/framework/src/main/java/cn/lili/modules/promotion/entity/dto/PromotionPriceParamDTO.java @@ -20,4 +20,10 @@ public class PromotionPriceParamDTO { @ApiModelProperty(value = "拼团id 如果是拼团购买 此值为拼团活动id,当pintuanId为空,则表示普通购买(或者拼团商品,单独购买)") private String pintuanId; + + @ApiModelProperty(value = "砍价ID") + private String kanjiaId; + + @ApiModelProperty(value = "积分ID") + private String pointsId; } diff --git a/framework/src/main/java/cn/lili/modules/promotion/entity/enums/KanJiaStatusEnum.java b/framework/src/main/java/cn/lili/modules/promotion/entity/enums/KanJiaStatusEnum.java index 0d5641bd..54f7743e 100644 --- a/framework/src/main/java/cn/lili/modules/promotion/entity/enums/KanJiaStatusEnum.java +++ b/framework/src/main/java/cn/lili/modules/promotion/entity/enums/KanJiaStatusEnum.java @@ -22,6 +22,7 @@ public enum KanJiaStatusEnum { SUCCESS("成功"), /** * 砍价活动结束 + * 已购买、超时未购买都是这个状态 */ END("已结束"); diff --git a/framework/src/main/java/cn/lili/modules/promotion/entity/enums/PromotionTypeEnum.java b/framework/src/main/java/cn/lili/modules/promotion/entity/enums/PromotionTypeEnum.java index b2ce2dd0..67a99a33 100644 --- a/framework/src/main/java/cn/lili/modules/promotion/entity/enums/PromotionTypeEnum.java +++ b/framework/src/main/java/cn/lili/modules/promotion/entity/enums/PromotionTypeEnum.java @@ -16,14 +16,14 @@ public enum PromotionTypeEnum { COUPON("优惠券"), FULL_DISCOUNT("满减"), POINTS_GOODS("积分商品"), - KAN_JIA("砍价"), + KANJIA("砍价"), COUPON_ACTIVITY("优惠券活动") ; /** * 拼团秒杀拥有独立库存,如果其他促销也有独立库存涉及库存扣减的,请添加在下方 */ - static PromotionTypeEnum[] haveStockPromotion = new PromotionTypeEnum[]{PINTUAN, SECKILL, KAN_JIA}; + static PromotionTypeEnum[] haveStockPromotion = new PromotionTypeEnum[]{PINTUAN, SECKILL, KANJIA}; private final String description; diff --git a/framework/src/main/java/cn/lili/modules/promotion/entity/vos/KanjiaActivityGoodsListVO.java b/framework/src/main/java/cn/lili/modules/promotion/entity/vos/kanjia/KanjiaActivityGoodsListVO.java similarity index 91% rename from framework/src/main/java/cn/lili/modules/promotion/entity/vos/KanjiaActivityGoodsListVO.java rename to framework/src/main/java/cn/lili/modules/promotion/entity/vos/kanjia/KanjiaActivityGoodsListVO.java index 5ae391d3..5c7024e2 100644 --- a/framework/src/main/java/cn/lili/modules/promotion/entity/vos/KanjiaActivityGoodsListVO.java +++ b/framework/src/main/java/cn/lili/modules/promotion/entity/vos/kanjia/KanjiaActivityGoodsListVO.java @@ -1,4 +1,4 @@ -package cn.lili.modules.promotion.entity.vos; +package cn.lili.modules.promotion.entity.vos.kanjia; import io.swagger.annotations.ApiModelProperty; import lombok.Data; diff --git a/framework/src/main/java/cn/lili/modules/promotion/entity/vos/KanjiaActivityGoodsParams.java b/framework/src/main/java/cn/lili/modules/promotion/entity/vos/kanjia/KanjiaActivityGoodsParams.java similarity index 98% rename from framework/src/main/java/cn/lili/modules/promotion/entity/vos/KanjiaActivityGoodsParams.java rename to framework/src/main/java/cn/lili/modules/promotion/entity/vos/kanjia/KanjiaActivityGoodsParams.java index f5bab12a..82900494 100644 --- a/framework/src/main/java/cn/lili/modules/promotion/entity/vos/KanjiaActivityGoodsParams.java +++ b/framework/src/main/java/cn/lili/modules/promotion/entity/vos/kanjia/KanjiaActivityGoodsParams.java @@ -1,4 +1,4 @@ -package cn.lili.modules.promotion.entity.vos; +package cn.lili.modules.promotion.entity.vos.kanjia; import cn.hutool.core.text.CharSequenceUtil; diff --git a/framework/src/main/java/cn/lili/modules/promotion/entity/vos/KanjiaActivityGoodsVO.java b/framework/src/main/java/cn/lili/modules/promotion/entity/vos/kanjia/KanjiaActivityGoodsVO.java similarity index 90% rename from framework/src/main/java/cn/lili/modules/promotion/entity/vos/KanjiaActivityGoodsVO.java rename to framework/src/main/java/cn/lili/modules/promotion/entity/vos/kanjia/KanjiaActivityGoodsVO.java index 0ca5ba90..f5ae1f66 100644 --- a/framework/src/main/java/cn/lili/modules/promotion/entity/vos/KanjiaActivityGoodsVO.java +++ b/framework/src/main/java/cn/lili/modules/promotion/entity/vos/kanjia/KanjiaActivityGoodsVO.java @@ -1,4 +1,4 @@ -package cn.lili.modules.promotion.entity.vos; +package cn.lili.modules.promotion.entity.vos.kanjia; import cn.lili.modules.goods.entity.dos.GoodsSku; import io.swagger.annotations.ApiModelProperty; diff --git a/framework/src/main/java/cn/lili/modules/promotion/entity/vos/KanjiaActivitySearchParams.java b/framework/src/main/java/cn/lili/modules/promotion/entity/vos/kanjia/KanjiaActivitySearchParams.java similarity index 96% rename from framework/src/main/java/cn/lili/modules/promotion/entity/vos/KanjiaActivitySearchParams.java rename to framework/src/main/java/cn/lili/modules/promotion/entity/vos/kanjia/KanjiaActivitySearchParams.java index de790065..0b2bceb2 100644 --- a/framework/src/main/java/cn/lili/modules/promotion/entity/vos/KanjiaActivitySearchParams.java +++ b/framework/src/main/java/cn/lili/modules/promotion/entity/vos/kanjia/KanjiaActivitySearchParams.java @@ -1,4 +1,4 @@ -package cn.lili.modules.promotion.entity.vos; +package cn.lili.modules.promotion.entity.vos.kanjia; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; diff --git a/framework/src/main/java/cn/lili/modules/promotion/entity/vos/kanjia/KanjiaActivityVO.java b/framework/src/main/java/cn/lili/modules/promotion/entity/vos/kanjia/KanjiaActivityVO.java new file mode 100644 index 00000000..3119cba8 --- /dev/null +++ b/framework/src/main/java/cn/lili/modules/promotion/entity/vos/kanjia/KanjiaActivityVO.java @@ -0,0 +1,27 @@ +package cn.lili.modules.promotion.entity.vos.kanjia; + +import cn.lili.modules.promotion.entity.dos.KanjiaActivity; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * 砍价活动参与实体类 + * + * @author qiuqiu + * @date 2020-7-1 10:44 上午 + */ +@Data +@ApiModel(value = "砍价活动VO") +public class KanjiaActivityVO extends KanjiaActivity { + + @ApiModelProperty(value = "是否可以砍价") + private Boolean help = false; + + @ApiModelProperty(value = "是否已发起砍价") + private Boolean launch = false; + + @ApiModelProperty(value = "是否可购买") + private Boolean pass = false; + +} \ No newline at end of file diff --git a/framework/src/main/java/cn/lili/modules/promotion/mapper/KanJiaActivityGoodsMapper.java b/framework/src/main/java/cn/lili/modules/promotion/mapper/KanJiaActivityGoodsMapper.java index 847a4d4c..3baeb5f7 100644 --- a/framework/src/main/java/cn/lili/modules/promotion/mapper/KanJiaActivityGoodsMapper.java +++ b/framework/src/main/java/cn/lili/modules/promotion/mapper/KanJiaActivityGoodsMapper.java @@ -1,7 +1,7 @@ package cn.lili.modules.promotion.mapper; import cn.lili.modules.promotion.entity.dos.KanjiaActivityGoods; -import cn.lili.modules.promotion.entity.vos.KanjiaActivityGoodsListVO; +import cn.lili.modules.promotion.entity.vos.kanjia.KanjiaActivityGoodsListVO; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; diff --git a/framework/src/main/java/cn/lili/modules/promotion/service/KanjiaActivityGoodsService.java b/framework/src/main/java/cn/lili/modules/promotion/service/KanjiaActivityGoodsService.java index d6f489a4..13a21aad 100644 --- a/framework/src/main/java/cn/lili/modules/promotion/service/KanjiaActivityGoodsService.java +++ b/framework/src/main/java/cn/lili/modules/promotion/service/KanjiaActivityGoodsService.java @@ -5,9 +5,9 @@ import cn.lili.common.vo.PageVO; import cn.lili.modules.promotion.entity.dos.KanjiaActivityGoods; import cn.lili.modules.promotion.entity.dto.KanjiaActivityGoodsDTO; 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.KanjiaActivityGoodsVO; +import cn.lili.modules.promotion.entity.vos.kanjia.KanjiaActivityGoodsListVO; +import cn.lili.modules.promotion.entity.vos.kanjia.KanjiaActivityGoodsParams; +import cn.lili.modules.promotion.entity.vos.kanjia.KanjiaActivityGoodsVO; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; diff --git a/framework/src/main/java/cn/lili/modules/promotion/service/KanjiaActivityService.java b/framework/src/main/java/cn/lili/modules/promotion/service/KanjiaActivityService.java index 26dd8259..e2a5e2e4 100644 --- a/framework/src/main/java/cn/lili/modules/promotion/service/KanjiaActivityService.java +++ b/framework/src/main/java/cn/lili/modules/promotion/service/KanjiaActivityService.java @@ -5,7 +5,8 @@ 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 cn.lili.modules.promotion.entity.vos.kanjia.KanjiaActivitySearchParams; +import cn.lili.modules.promotion.entity.vos.kanjia.KanjiaActivityVO; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; @@ -21,13 +22,21 @@ public interface KanjiaActivityService extends IService { /** * 获取砍价活动 * + * @param kanJiaActivitySearchParams 砍价活动搜索参数 + * @return 砍价活动 + */ + KanjiaActivity getKanjiaActivity(KanjiaActivitySearchParams kanJiaActivitySearchParams); + + /** + * 获取砍价活动 + *

* 有值说明是已参加的砍价活动 * 没有值说明是未参加的砍价活动 * * @param kanJiaActivitySearchParams 砍价活动搜索参数 * @return 砍价活动 */ - KanjiaActivity getKanjiaActivity(KanjiaActivitySearchParams kanJiaActivitySearchParams); + KanjiaActivityVO getKanjiaActivityVO(KanjiaActivitySearchParams kanJiaActivitySearchParams); /** * 发起人发起砍价活动 diff --git a/framework/src/main/java/cn/lili/modules/promotion/serviceimpl/KanjiaActivityGoodsServiceImpl.java b/framework/src/main/java/cn/lili/modules/promotion/serviceimpl/KanjiaActivityGoodsServiceImpl.java index 2b00287d..6cb48438 100644 --- a/framework/src/main/java/cn/lili/modules/promotion/serviceimpl/KanjiaActivityGoodsServiceImpl.java +++ b/framework/src/main/java/cn/lili/modules/promotion/serviceimpl/KanjiaActivityGoodsServiceImpl.java @@ -22,9 +22,9 @@ import cn.lili.modules.promotion.entity.dto.KanjiaActivityGoodsDTO; import cn.lili.modules.promotion.entity.dto.KanjiaActivityGoodsOperationDTO; import cn.lili.modules.promotion.entity.enums.PromotionStatusEnum; import cn.lili.modules.promotion.entity.enums.PromotionTypeEnum; -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.kanjia.KanjiaActivityGoodsListVO; +import cn.lili.modules.promotion.entity.vos.kanjia.KanjiaActivityGoodsParams; +import cn.lili.modules.promotion.entity.vos.kanjia.KanjiaActivityGoodsVO; import cn.lili.modules.promotion.mapper.KanJiaActivityGoodsMapper; import cn.lili.modules.promotion.service.KanjiaActivityGoodsService; import cn.lili.modules.promotion.tools.PromotionTools; @@ -110,7 +110,7 @@ public class KanjiaActivityGoodsServiceImpl extends ServiceImpl queryWrapper = new QueryWrapper<>(); - queryWrapper.eq(kanjiaActivityDTO.getKanjiaMemberId() != null, "kanjia_member_id", kanjiaActivityDTO.getKanjiaMemberId()); - queryWrapper.eq(kanjiaActivityDTO.getKanjiaActivityId() != null, "kanjia_activity_id", kanjiaActivityDTO.getKanjiaActivityId()); + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper(); + queryWrapper.eq(kanjiaActivityDTO.getKanjiaActivityId() != null, KanjiaActivityLog::getKanjiaActivityId, kanjiaActivityDTO.getKanjiaActivityId()); + queryWrapper.eq( KanjiaActivityLog::getKanjiaMemberId, UserContext.getCurrentUser().getId()); Integer count = this.baseMapper.selectCount(queryWrapper); if (count > 0) { throw new ServiceException(ResultCode.KANJIA_ACTIVITY_LOG_MEMBER_ERROR); diff --git a/framework/src/main/java/cn/lili/modules/promotion/serviceimpl/KanjiaActivityServiceImpl.java b/framework/src/main/java/cn/lili/modules/promotion/serviceimpl/KanjiaActivityServiceImpl.java index 6b087c15..e23145ba 100644 --- a/framework/src/main/java/cn/lili/modules/promotion/serviceimpl/KanjiaActivityServiceImpl.java +++ b/framework/src/main/java/cn/lili/modules/promotion/serviceimpl/KanjiaActivityServiceImpl.java @@ -6,6 +6,7 @@ import cn.hutool.core.util.RandomUtil; import cn.lili.common.enums.ResultCode; import cn.lili.common.exception.ServiceException; import cn.lili.common.security.context.UserContext; +import cn.lili.common.utils.BeanUtil; import cn.lili.common.utils.CurrencyUtil; import cn.lili.common.utils.PageUtil; import cn.lili.common.vo.PageVO; @@ -20,7 +21,8 @@ import cn.lili.modules.promotion.entity.dto.KanjiaActivityDTO; import cn.lili.modules.promotion.entity.dto.KanjiaActivityQuery; import cn.lili.modules.promotion.entity.enums.KanJiaStatusEnum; import cn.lili.modules.promotion.entity.enums.PromotionStatusEnum; -import cn.lili.modules.promotion.entity.vos.KanjiaActivitySearchParams; +import cn.lili.modules.promotion.entity.vos.kanjia.KanjiaActivitySearchParams; +import cn.lili.modules.promotion.entity.vos.kanjia.KanjiaActivityVO; import cn.lili.modules.promotion.mapper.KanJiaActivityMapper; import cn.lili.modules.promotion.service.KanjiaActivityGoodsService; import cn.lili.modules.promotion.service.KanjiaActivityLogService; @@ -60,44 +62,73 @@ public class KanjiaActivityServiceImpl extends ServiceImpl() + .eq(KanjiaActivityLog::getKanjiaActivityId, kanjiaActivity.getId()) + .eq(KanjiaActivityLog::getKanjiaMemberId, UserContext.getCurrentUser().getId())); + if (kanjiaActivityLog == null) { + kanjiaActivityVO.setHelp(true); + } + //判断活动已通过并且是当前用户发起的砍价则可以进行购买 + if (kanjiaActivity.getStatus().equals(KanJiaStatusEnum.SUCCESS.name()) && + kanjiaActivity.getMemberId().equals(UserContext.getCurrentUser().getId())) { + kanjiaActivityVO.setPass(true); + } + } + return kanjiaActivityVO; + } + @Override public KanjiaActivityLog add(String id) { //根据skuId查询当前sku是否参与活动并且是在活动进行中 KanjiaActivityGoods kanJiaActivityGoods = kanjiaActivityGoodsService.getById(id); //只有砍价商品存在且已经开始的活动才可以发起砍价 - if (kanJiaActivityGoods != null && kanJiaActivityGoods.getPromotionStatus().equals(PromotionStatusEnum.START.name())) { - //获取会员信息 - Member member = memberService.getById(UserContext.getCurrentUser().getId()); - //校验此活动是否已经发起过 - QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("kanjia_activity_goods_id", kanJiaActivityGoods.getId()); - queryWrapper.eq("member_id", member.getId()); - if (this.count(queryWrapper) > 0) { - throw new ServiceException(ResultCode.KANJIA_ACTIVITY_MEMBER_ERROR); - } - KanjiaActivity kanJiaActivity = new KanjiaActivity(); - //获取商品信息 - GoodsSku goodsSku = goodsSkuService.getGoodsSkuByIdFromCache(kanJiaActivityGoods.getSkuId()); - if (goodsSku != null && member != null) { - kanJiaActivity.setSkuId(kanJiaActivityGoods.getSkuId()); - kanJiaActivity.setGoodsName(goodsSku.getGoodsName()); - kanJiaActivity.setKanjiaActivityGoodsId(kanJiaActivityGoods.getId()); - kanJiaActivity.setThumbnail(goodsSku.getThumbnail()); - kanJiaActivity.setMemberId(UserContext.getCurrentUser().getId()); - kanJiaActivity.setMemberName(member.getUsername()); - kanJiaActivity.setStatus(KanJiaStatusEnum.START.name()); - //剩余砍价金额 开始 是商品金额; - kanJiaActivity.setSurplusPrice(goodsSku.getPrice()); - //保存我的砍价活动 - boolean result = this.save(kanJiaActivity); - //因为发起砍价就是自己给自己砍一刀,所以要添加砍价记录信息 - if (result) { - this.helpKanJia(kanJiaActivity.getId()); - } - } - throw new ServiceException(ResultCode.GOODS_NOT_EXIST); + if (kanJiaActivityGoods == null || !kanJiaActivityGoods.getPromotionStatus().equals(PromotionStatusEnum.START.name())) { + throw new ServiceException(ResultCode.PROMOTION_STATUS_END); } - throw new ServiceException(ResultCode.PROMOTION_STATUS_END); + KanjiaActivityLog kanjiaActivityLog = new KanjiaActivityLog(); + //获取会员信息 + Member member = memberService.getById(UserContext.getCurrentUser().getId()); + //校验此活动是否已经发起过 + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq("kanjia_activity_goods_id", kanJiaActivityGoods.getId()); + queryWrapper.eq("member_id", member.getId()); + if (this.count(queryWrapper) > 0) { + throw new ServiceException(ResultCode.KANJIA_ACTIVITY_MEMBER_ERROR); + } + KanjiaActivity kanJiaActivity = new KanjiaActivity(); + //获取商品信息 + GoodsSku goodsSku = goodsSkuService.getGoodsSkuByIdFromCache(kanJiaActivityGoods.getSkuId()); + if (goodsSku != null && member != null) { + kanJiaActivity.setSkuId(kanJiaActivityGoods.getSkuId()); + kanJiaActivity.setGoodsName(goodsSku.getGoodsName()); + kanJiaActivity.setKanjiaActivityGoodsId(kanJiaActivityGoods.getId()); + kanJiaActivity.setThumbnail(goodsSku.getThumbnail()); + kanJiaActivity.setMemberId(UserContext.getCurrentUser().getId()); + kanJiaActivity.setMemberName(member.getUsername()); + kanJiaActivity.setStatus(KanJiaStatusEnum.START.name()); + //剩余砍价金额 开始 是商品金额; + kanJiaActivity.setSurplusPrice(goodsSku.getPrice()); + //砍价最低购买金额 + kanJiaActivity.setPurchasePrice(kanJiaActivityGoods.getPurchasePrice()); + //保存我的砍价活动 + boolean result = this.save(kanJiaActivity); + + //因为发起砍价就是自己给自己砍一刀,所以要添加砍价记录信息 + if (result) { + kanjiaActivityLog = this.helpKanJia(kanJiaActivity.getId()); + } + } + return kanjiaActivityLog; } @@ -165,8 +196,9 @@ public class KanjiaActivityServiceImpl extends ServiceImpl queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.eq(PromotionGoods::getSkuId, cartSkuVO.getGoodsSku().getId()).eq(PromotionGoods::getPromotionStatus, PromotionStatusEnum.START.name()); - queryWrapper.le(PromotionGoods::getStartTime, date); + queryWrapper.eq(PromotionGoods::getSkuId, cartSkuVO.getGoodsSku().getId()) + .eq(PromotionGoods::getPromotionStatus, PromotionStatusEnum.START.name()) + .le(PromotionGoods::getStartTime, date); //获取有效的促销活动 List promotionGoods = this.list(queryWrapper); //同步查询缓存中的促销活动商品的库存 @@ -171,7 +172,7 @@ public class PromotionGoodsServiceImpl extends ServiceImpl couponVOS = mongoTemplate.find(query, CouponVO.class); for (CouponVO couponVO : couponVOS) { boolean aLLScopeType = (couponVO.getPromotionGoodsList() == null diff --git a/framework/src/main/java/cn/lili/modules/promotion/serviceimpl/PromotionPriceServiceImpl.java b/framework/src/main/java/cn/lili/modules/promotion/serviceimpl/PromotionPriceServiceImpl.java index d3d06fa8..f747e050 100644 --- a/framework/src/main/java/cn/lili/modules/promotion/serviceimpl/PromotionPriceServiceImpl.java +++ b/framework/src/main/java/cn/lili/modules/promotion/serviceimpl/PromotionPriceServiceImpl.java @@ -53,35 +53,16 @@ public class PromotionPriceServiceImpl implements PromotionPriceService { @Override public PromotionPriceDTO calculationPromotionPrice(List tradeSkuList, List memberCouponList) { - PromotionPriceDTO promotionPrice = new PromotionPriceDTO(); - if (!tradeSkuList.isEmpty()) { - //拆分出SkuId列表 - List skuIds = tradeSkuList.parallelStream().map(PromotionPriceParamDTO::getSkuId).collect(Collectors.toList()); - //参与计算的ES商品SKU及其促销信息列表 - List esGoodsSkus = goodsSearchService.getEsGoodsBySkuIds(skuIds); - //参与计算的缓存中的商品SKU列表 - List goodsSkus = goodsSkuService.getGoodsSkuByIdFromCache(skuIds); - //计算价格 - promotionPrice = this.calculationPromotionPrice(tradeSkuList, memberCouponList, esGoodsSkus, goodsSkus); - } - return promotionPrice; - } - /** - * 促销计算 - * - * @param tradeSkuList 促销计算参数列表 - * @param memberCouponList 参与促销计算的优惠券列表 - * @param esGoodsSkus 参与计算的ES商品SKU及其促销信息列表 - * @param goodsSkus 参与计算的缓存中的商品SKU列表 - * @return 促销计算结果 - */ - private PromotionPriceDTO calculationPromotionPrice(List tradeSkuList, List memberCouponList, List esGoodsSkus, List goodsSkus) { PromotionPriceDTO promotionPrice = new PromotionPriceDTO(); - + //拆分出SkuId列表 + List skuIds = tradeSkuList.parallelStream().map(PromotionPriceParamDTO::getSkuId).collect(Collectors.toList()); + //参与计算的ES商品SKU及其促销信息列表 + List esGoodsSkus = goodsSearchService.getEsGoodsBySkuIds(skuIds); + //参与计算的缓存中的商品SKU列表 + List goodsSkus = goodsSkuService.getGoodsSkuByIdFromCache(skuIds); //单品商品SKU促销计算结果列表 List priceDTOList = this.packageGoodsSkuPromotionPrice(tradeSkuList, esGoodsSkus, goodsSkus); - //将使用的优惠券根据店铺分类 Map> couponCollect = memberCouponList.parallelStream().collect(Collectors.groupingBy(MemberCoupon::getStoreId)); @@ -150,7 +131,6 @@ public class PromotionPriceServiceImpl implements PromotionPriceService { return promotionPrice; } - /** * 单品SKU的促销计算 * @@ -166,16 +146,14 @@ public class PromotionPriceServiceImpl implements PromotionPriceService { if (!collect.isEmpty()) { EsGoodsIndex esGoodsIndex = collect.get(0); //找出当前商品相应的结算参数 - PromotionPriceParamDTO tradeSku = tradeSkuList.parallelStream().filter(i -> i.getSkuId().equals(skus.getId())).findFirst().orElse(new PromotionPriceParamDTO()); - GoodsSkuPromotionPriceDTO goodsSkuPromotionPrice = new GoodsSkuPromotionPriceDTO(skus, tradeSku.getNum()); + PromotionPriceParamDTO promotionPriceParamDTO = tradeSkuList.parallelStream().filter(i -> i.getSkuId().equals(skus.getId())).findFirst().orElse(new PromotionPriceParamDTO()); + GoodsSkuPromotionPriceDTO goodsSkuPromotionPrice = new GoodsSkuPromotionPriceDTO(skus, promotionPriceParamDTO.getNum()); //商品原价总价 = 商品原价 * 数量 - goodsSkuPromotionPrice.setTotalOriginalPrice(CurrencyUtil.mul(goodsSkuPromotionPrice.getOriginalPrice(), tradeSku.getNum())); + goodsSkuPromotionPrice.setTotalOriginalPrice(CurrencyUtil.mul(goodsSkuPromotionPrice.getOriginalPrice(), promotionPriceParamDTO.getNum())); //获取当前商品所有参加的促销活动 Map promotionMap = esGoodsIndex.getPromotionMap(); - //是否计算拼团促销 - String pintuanId = tradeSku.getPintuanId() != null ? tradeSku.getPintuanId() : null; //如果商品促销列表存在促销活动 - this.calculationPromotionMap(promotionMap, goodsSkuPromotionPrice, esGoodsIndex, pintuanId); + this.calculationPromotionMap(promotionMap, goodsSkuPromotionPrice, esGoodsIndex, promotionPriceParamDTO); goodsSkuPromotionPrice.setTotalOriginalPrice(CurrencyUtil.mul(goodsSkuPromotionPrice.getOriginalPrice(), goodsSkuPromotionPrice.getNumber())); goodsSkuPromotionPrice.setTotalPoints(CurrencyUtil.mul(goodsSkuPromotionPrice.getPoints(), goodsSkuPromotionPrice.getNumber())); @@ -188,28 +166,54 @@ public class PromotionPriceServiceImpl implements PromotionPriceService { } /** - * 促销计算(秒杀活动,拼团) + * 促销计算(秒杀活动、拼团、满优惠活动、砍价) * * @param promotionMap 当前商品所有参加的促销活动 * @param goodsSkuPromotionPrice 商品SKU促销计算信息 * @param esGoodsIndex ES商品信息 - * @param pintuanId 拼团id,标示是否计算拼团活动 + * @param promotionPriceParamDTO 拼团id,标示是否计算拼团活动 */ - private void calculationPromotionMap(Map promotionMap, GoodsSkuPromotionPriceDTO goodsSkuPromotionPrice, EsGoodsIndex esGoodsIndex, String pintuanId) { - if (promotionMap != null && !promotionMap.isEmpty()) { - //检查当前商品是否存在秒杀活动活动 - Optional existSeckill = promotionMap.keySet().parallelStream().filter(i -> i.contains(PromotionTypeEnum.SECKILL.name())).findFirst(); - if (existSeckill.isPresent()) { - Seckill seckill = (Seckill) promotionMap.get(existSeckill.get()); - //计算秒杀活动促销 - this.calculationSeckill(seckill, goodsSkuPromotionPrice); - seckill.setPromotionName(PromotionTypeEnum.SECKILL.name()); - goodsSkuPromotionPrice.getJoinPromotion().add(seckill); - } + private void calculationPromotionMap(Map promotionMap, GoodsSkuPromotionPriceDTO goodsSkuPromotionPrice, EsGoodsIndex esGoodsIndex, PromotionPriceParamDTO promotionPriceParamDTO) { + //未参加促销则直接返回 + if (promotionMap == null || promotionMap.isEmpty()) { + return; + } - //检查当前商品是否存在拼团活动 + //检查当前商品是否存在满优惠活动 + Optional existFullDiscount = promotionMap.keySet().parallelStream().filter(i -> i.contains(PromotionTypeEnum.FULL_DISCOUNT.name())).findFirst(); + if (existFullDiscount.isPresent()) { + FullDiscount discount = (FullDiscount) promotionMap.get(existFullDiscount.get()); + goodsSkuPromotionPrice.setPromotionId(discount.getId()); + goodsSkuPromotionPrice.setPromotionType(PromotionTypeEnum.FULL_DISCOUNT.name()); + } + + //检查当前商品是否存在秒杀活动活动 + Optional existSeckill = promotionMap.keySet().parallelStream().filter(i -> i.contains(PromotionTypeEnum.SECKILL.name())).findFirst(); + if (existSeckill.isPresent()) { + Seckill seckill = (Seckill) promotionMap.get(existSeckill.get()); + //计算秒杀活动促销 + this.calculationSeckill(seckill, goodsSkuPromotionPrice); + seckill.setPromotionName(PromotionTypeEnum.SECKILL.name()); + goodsSkuPromotionPrice.getJoinPromotion().add(seckill); + } + + //检查当前商品是否存在砍价活动 + if (promotionPriceParamDTO.getKanjiaId() != null) { + Optional existKanjia = promotionMap.keySet().parallelStream().filter(i -> i.contains(PromotionTypeEnum.KANJIA.name())).findFirst(); + if (existKanjia.isPresent()) { + KanjiaActivityGoods kanjiaActivityGoods = (KanjiaActivityGoods) promotionMap.get(existKanjia.get()); + //优惠的总价格 = 原商品总价 - 优惠后的商品总价 + double discountPrice = CurrencyUtil.sub(kanjiaActivityGoods.getOriginalPrice(), kanjiaActivityGoods.getPurchasePrice()); + goodsSkuPromotionPrice.setDiscountPrice(discountPrice); + goodsSkuPromotionPrice.setFinalePrice(kanjiaActivityGoods.getPurchasePrice()); + goodsSkuPromotionPrice.getJoinPromotion().add(kanjiaActivityGoods); + + } + } + //检查当前商品是否存在拼团活动 + else if (promotionPriceParamDTO.getPintuanId() != null) { Optional existPintuan = promotionMap.keySet().parallelStream().filter(i -> i.contains(PromotionTypeEnum.PINTUAN.name())).findFirst(); - if (existPintuan.isPresent() && pintuanId != null) { + if (existPintuan.isPresent()) { Pintuan pintuan = (Pintuan) promotionMap.get(existPintuan.get()); //优惠的总价格 = 原商品总价 - 优惠后的商品总价 double discountPrice = CurrencyUtil.sub(goodsSkuPromotionPrice.getOriginalPrice(), esGoodsIndex.getPromotionPrice()); @@ -218,20 +222,17 @@ public class PromotionPriceServiceImpl implements PromotionPriceService { pintuan.setPromotionName(PromotionTypeEnum.PINTUAN.name()); goodsSkuPromotionPrice.getJoinPromotion().add(pintuan); } - - //检查当前商品是否存在满优惠活动 - Optional existFullDiscount = promotionMap.keySet().parallelStream().filter(i -> i.contains(PromotionTypeEnum.FULL_DISCOUNT.name())).findFirst(); - if (existFullDiscount.isPresent()) { - FullDiscount discount = (FullDiscount) promotionMap.get(existFullDiscount.get()); - goodsSkuPromotionPrice.setPromotionId(discount.getId()); - goodsSkuPromotionPrice.setPromotionType(PromotionTypeEnum.FULL_DISCOUNT.name()); - } - - + } + //检查当前商品是否存在积分商品活动 + else if (promotionPriceParamDTO.getPointsId() != null) { Optional existPointsGoods = promotionMap.keySet().parallelStream().filter(i -> i.contains(PromotionTypeEnum.POINTS_GOODS.name())).findFirst(); if (existPointsGoods.isPresent()) { PointsGoods pointsGoods = (PointsGoods) promotionMap.get(existPointsGoods.get()); goodsSkuPromotionPrice.setPoints(pointsGoods.getPoints().doubleValue()); + goodsSkuPromotionPrice.setDiscountPrice(goodsSkuPromotionPrice.getOriginalPrice()); + goodsSkuPromotionPrice.setFinalePrice(0.0); + pointsGoods.setPromotionName(pointsGoods.getPromotionName()); + goodsSkuPromotionPrice.getJoinPromotion().add(pointsGoods); } } } @@ -345,7 +346,8 @@ public class PromotionPriceServiceImpl implements PromotionPriceService { */ private void calculationSeckill(Seckill seckill, GoodsSkuPromotionPriceDTO promotionPrice) { //检查 活动有效时间 及 活动有效状态 - if (checkPromotionValidTime(seckill.getStartTime(), seckill.getEndTime(), PromotionTypeEnum.SECKILL.name(), seckill.getId()) && seckill.getPromotionStatus().equals(PromotionStatusEnum.START.name())) { + if (checkPromotionValidTime(seckill.getStartTime(), seckill.getEndTime(), PromotionTypeEnum.SECKILL.name(), seckill.getId()) && + seckill.getPromotionStatus().equals(PromotionStatusEnum.START.name())) { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(SeckillApply::getSkuId, promotionPrice.getSkuId()).eq(SeckillApply::getSeckillId, seckill.getId()); SeckillApply seckillApply = seckillApplyService.getOne(queryWrapper); diff --git a/framework/src/main/java/cn/lili/modules/promotion/serviceimpl/PromotionServiceImpl.java b/framework/src/main/java/cn/lili/modules/promotion/serviceimpl/PromotionServiceImpl.java index 7d452e97..eae61d89 100644 --- a/framework/src/main/java/cn/lili/modules/promotion/serviceimpl/PromotionServiceImpl.java +++ b/framework/src/main/java/cn/lili/modules/promotion/serviceimpl/PromotionServiceImpl.java @@ -129,8 +129,8 @@ public class PromotionServiceImpl implements PromotionService { result = this.updatePointsGoods(promotionMessage, esPromotionKey, promotionTypeEnum); break; //砍价商品商品 - case KAN_JIA: - result = this.updateKanJiaGoods(promotionMessage, promotionTypeEnum); + case KANJIA: + result = this.updateKanjiaGoods(promotionMessage, promotionTypeEnum); break; //优惠券活动 case COUPON_ACTIVITY: @@ -464,7 +464,7 @@ public class PromotionServiceImpl implements PromotionService { * @param promotionTypeEnum 促销分类枚举 * @return 修改结果 */ - private boolean updateKanJiaGoods(PromotionMessage promotionMessage, PromotionTypeEnum promotionTypeEnum) { + private boolean updateKanjiaGoods(PromotionMessage promotionMessage, PromotionTypeEnum promotionTypeEnum) { KanjiaActivityGoodsDTO kanJiaActivityGoodsDTO = this.mongoTemplate.findById(promotionMessage.getPromotionId(), KanjiaActivityGoodsDTO.class); if (kanJiaActivityGoodsDTO == null) { this.throwPromotionException(promotionTypeEnum, promotionMessage.getPromotionId(), promotionMessage.getPromotionStatus()); diff --git a/manager-api/src/main/java/cn/lili/controller/passport/AdminUserManagerController.java b/manager-api/src/main/java/cn/lili/controller/passport/AdminUserManagerController.java index 9bc52024..7ff3e625 100644 --- a/manager-api/src/main/java/cn/lili/controller/passport/AdminUserManagerController.java +++ b/manager-api/src/main/java/cn/lili/controller/passport/AdminUserManagerController.java @@ -8,7 +8,6 @@ import cn.lili.common.security.context.UserContext; import cn.lili.common.token.Token; import cn.lili.common.utils.PageUtil; import cn.lili.common.utils.StringUtils; -import cn.lili.common.verification.enums.VerificationEnums; import cn.lili.common.verification.service.VerificationService; import cn.lili.common.vo.PageVO; import cn.lili.common.vo.ResultMessage; @@ -59,11 +58,12 @@ public class AdminUserManagerController { public ResultMessage login(@NotNull(message = "用户名不能为空") @RequestParam String username, @NotNull(message = "密码不能为空") @RequestParam String password, @RequestHeader String uuid) { - if (verificationService.check(uuid, VerificationEnums.LOGIN)) { - return ResultUtil.data(adminUserService.login(username, password)); - } else { - throw new ServiceException(ResultCode.VERIFICATION_ERROR); - } + return ResultUtil.data(adminUserService.login(username, password)); +// if (verificationService.check(uuid, VerificationEnums.LOGIN)) { +// return ResultUtil.data(adminUserService.login(username, password)); +// } else { +// throw new ServiceException(ResultCode.VERIFICATION_ERROR); +// } } diff --git a/manager-api/src/main/java/cn/lili/controller/promotion/KanJiaActivityGoodsManagerController.java b/manager-api/src/main/java/cn/lili/controller/promotion/KanJiaActivityGoodsManagerController.java index 78411283..5df86cea 100644 --- a/manager-api/src/main/java/cn/lili/controller/promotion/KanJiaActivityGoodsManagerController.java +++ b/manager-api/src/main/java/cn/lili/controller/promotion/KanJiaActivityGoodsManagerController.java @@ -8,7 +8,7 @@ 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.dto.KanjiaActivityGoodsOperationDTO; -import cn.lili.modules.promotion.entity.vos.KanjiaActivityGoodsParams; +import cn.lili.modules.promotion.entity.vos.kanjia.KanjiaActivityGoodsParams; import cn.lili.modules.promotion.service.KanjiaActivityGoodsService; import com.baomidou.mybatisplus.core.metadata.IPage; import io.swagger.annotations.Api;