ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/MemberPoints.java
@@ -38,7 +38,7 @@ @ApiModelProperty(value = "积分") private Integer points; @ApiModelProperty(value = "积分类型 1支付订单") @ApiModelProperty(value = "积分类型 1支付订单 2订单退款") private Integer pointsType; @ApiModelProperty(value = "积分状态 1是加积分,2 是减积分") ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/MemberPointsDTO.java
@@ -10,7 +10,7 @@ @ApiModelProperty(value = "积分") private Integer points; @ApiModelProperty(value = "积分类型 1支付订单") @ApiModelProperty(value = "积分类型 1支付订单 2订单退款") private Integer pointsType; @ApiModelProperty(value = "积分状态 1是加积分,2 是减积分") ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/dto/GoodsSkuQuery.java
@@ -26,8 +26,8 @@ @ApiModelProperty(value = "上架状态 上架中 已下架", notes = "参数传文字") private ListingStatusEnum listingStatus; @ApiModelProperty(value = "查询类型 1=仅上架商品 2=全部") @ApiModelProperty(value = "查询类型 1=仅上架商品 2=全部且库存不为0 3=全部") @NotNull(message = "查询类型不能为空") @Range(min = 1, max = 2, message = "查询类型必须为1或2") @Range(min = 1, max = 3, message = "查询类型必须为1、2或3") private Integer queryType; } ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsGroupPurchaseServiceImpl.java
@@ -106,10 +106,7 @@ } LambdaQueryWrapper<GoodsGroupPurchase> queryWrapper = Wrappers.lambdaQuery(); queryWrapper.eq(GoodsGroupPurchase::getGoodsSkuId, dto.getGoodsSkuId()); queryWrapper.eq(GoodsGroupPurchase::getListingStatus, ListingStatusEnum.ON_SHELVES.getCode()); queryWrapper.le(GoodsGroupPurchase::getStartTime, dto.getStartTime()); queryWrapper.ge(GoodsGroupPurchase::getEndTime, dto.getStartTime()); queryWrapper.ne(GoodsGroupPurchase::getStartStatus, StartStatusEnum.ENDED); long count = this.count(queryWrapper); if (count > 0) { throw new ServiceException("添加失败,当前商品在该时间段内有其他团购活动"); ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsSeckillServiceImpl.java
@@ -52,7 +52,6 @@ import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Objects; import java.util.Optional; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; @@ -104,28 +103,25 @@ goodsSeckill.setStartStatus(StartStatusEnum.NOT_STARTED); } // 查询该时间范围内,是否已经存在该秒杀商品 List<Long> skuIds = goodsSeckills.stream().map(GoodsSeckill::getGoodsSkuId) .collect(Collectors.toList()); List<GoodsSeckill> list = this.lambdaQuery() .ne(GoodsSeckill::getStartStatus, StartStatusEnum.ENDED) .eq(GoodsSeckill::getListingStatus, ListingStatusEnum.ON_SHELVES) .le(GoodsSeckill::getStartTime, dto.getStartTime()) .ge(GoodsSeckill::getEndTime, dto.getStartTime()).list(); .in(GoodsSeckill::getGoodsSkuId, skuIds).list(); Set<Long> existGoodsSkuIdSet = list.stream().map(GoodsSeckill::getGoodsSkuId) .collect(Collectors.toSet()); if (!existGoodsSkuIdSet.isEmpty()) { List<GoodsSku> goodsSkuList = goodsSkuService.listByIds(existGoodsSkuIdSet); Map<Long, String> goodsSkuMap = goodsSkuList.stream() .collect(Collectors.toMap(GoodsSku::getId, GoodsSku::getSkuName)); List<GoodsSeckill> collect = goodsSeckills.stream() Optional<GoodsSeckill> first = goodsSeckills.stream() .filter(goodsSeckill -> existGoodsSkuIdSet.contains( goodsSeckill.getGoodsSkuId())) .collect(Collectors.toList()); if (!collect.isEmpty()) { String goodsSkuNames = collect.stream().map(item -> { return goodsSkuMap.get(item.getGoodsSkuId()); }).filter(Objects::nonNull) .collect(Collectors.joining(",")); .findFirst(); if (first.isPresent()) { String skuName = goodsSkuMap.get(first.get().getGoodsSkuId()); throw new ServiceException( String.format("添加失败,商品%s在该时间段内有其他秒杀活动", goodsSkuNames)); String.format("添加失败,商品%s在该时间段内有其他秒杀活动", skuName)); } } this.saveBatch(goodsSeckills); @@ -187,12 +183,13 @@ } GoodsSeckill goodsSeckillUpd = BeanUtils.copyBean(upd, GoodsSeckill.class); goodsSeckillUpd.setListingStatus(ListingStatusEnum.ON_SHELVES); goodsSeckillUpd.setStartStatus(StartStatusEnum.NOT_STARTED); this.updateById(goodsSeckillUpd); GoodsStockUpdDTO goodsStockUpdDTO = new GoodsStockUpdDTO(); goodsStockUpdDTO.setAuctionStock(upd.getSeckillStock() * -1); goodsStockUpdDTO.setGoodsSkuId(goodsSeckill.getGoodsSkuId()); goodsSkuService.updGoodsStock(Lists.newArrayList(goodsStockUpdDTO)); asyncMethodService.seckillScheduleTask(Lists.newArrayList(goodsSeckill)); asyncMethodService.seckillScheduleTask(Lists.newArrayList(goodsSeckillUpd)); } /** ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsSkuServiceImpl.java
@@ -203,7 +203,8 @@ ), GoodsSku::getListingStatus, query.getListingStatus()) .eq(query.getQueryType().equals(1), GoodsSku::getListingStatus, ListingStatusEnum.ON_SHELVES) .gt(query.getQueryType().equals(1), GoodsSku::getStock, 0) .gt(query.getQueryType().equals(1) || query.getQueryType().equals(2), GoodsSku::getStock, 0) .orderByDesc(GoodsSku::getCreateTime) .page(new Page<>(query.getPageCurr(), query.getPageSize())); return PageDTO.of(page, GoodsSkuVO.class); ruoyi-modules/ruoyi-order/pom.xml
@@ -172,7 +172,11 @@ <groupId>com.ruoyi</groupId> <artifactId>ruoyi-common-seata</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/management/vo/MgtOrderReturnRequestVO.java
@@ -117,4 +117,8 @@ @ApiModelProperty("物流信息") private Express100VO express100VO; @ApiModelProperty("审核时间(平台确认时间)") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private LocalDateTime auditTime; } ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderReturnRequestServiceImpl.java
@@ -269,6 +269,30 @@ } } orderReturnRequest.setAuditStatus(AuditStatusEnum.PASSED); // 扣除订单积分 Member member = memberClient.getMembeOne(order.getMemberId(), SecurityConstants.INNER) .getData(); if (StringUtils.isNotNull(member)) { MemberPointsDTO memberPointsDTO = new MemberPointsDTO(); memberPointsDTO.setMemberId(order.getMemberId()); memberPointsDTO.setPointsType(2); memberPointsDTO.setPointsStatus(PointStatusEnum.REDUCE); memberPointsDTO.setPoints(order.getPoints()); memberClient.addMemberPoints(memberPointsDTO); updMembeOneDTO updMembeOneDTO = new updMembeOneDTO(); updMembeOneDTO.setMemberId(order.getMemberId()); updMembeOneDTO.setType(2); updMembeOneDTO.setTotalPoints( Math.max(member.getTotalPoints() - order.getPoints(), 0)); memberClient.updMembeOne(updMembeOneDTO, SecurityConstants.INNER); } if (Objects.nonNull(order.getCouponId())) { CouponMemberDTO couponMemberDTO = new CouponMemberDTO(); couponMemberDTO.setId(order.getCouponId()); couponMemberDTO.setCouponStatus(CouponUseEnum.UNUSED.getCode()); promotionClient.updCouponMember(couponMemberDTO, SecurityConstants.INNER); } } else { orderReturnRequest.setStatus(ReturnRequestStatusEnum.REJECTED); orderReturnRequest.setAuditStatus(AuditStatusEnum.REJECTED); @@ -326,8 +350,8 @@ if (StringUtils.isNotNull(member)) { MemberPointsDTO memberPointsDTO = new MemberPointsDTO(); memberPointsDTO.setMemberId(order.getMemberId()); memberPointsDTO.setPointsType(1); memberPointsDTO.setPointsStatus(PointStatusEnum.INCREASE); memberPointsDTO.setPointsType(2); memberPointsDTO.setPointsStatus(PointStatusEnum.REDUCE); memberPointsDTO.setPoints(order.getPoints()); memberClient.addMemberPoints(memberPointsDTO);