From 95639988ed630dae4b2461b5f6c3ccb6d9af8d86 Mon Sep 17 00:00:00 2001 From: mitao <2763622819@qq.com> Date: 星期四, 18 七月 2024 23:46:36 +0800 Subject: [PATCH] 修改bug --- ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml | 7 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/PaylogServiceImpl.java | 4 ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionGoodsServiceImpl.java | 1 ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/impl/ArticleServiceImpl.java | 42 +++++ ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/converter/CouponUseEnumConverter.java | 17 ++ ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/management/vo/CouponReceiveDetailVO.java | 3 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsGroupPurchaseServiceImpl.java | 72 +++++++-- ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/AuctionGoods.java | 2 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderReturnRequestServiceImpl.java | 1 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/IOrderService.java | 4 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/IPaylogService.java | 4 ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/IArticleService.java | 2 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/LogisticsServiceImpl.java | 24 +-- ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/management/vo/MgtOrderVO.java | 4 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/SysUserClient.java | 2 ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/domain/AuctionSalesroomGoods.java | 2 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/OrderDTO.java | 6 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/AuctionSalesroom.java | 2 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/inner/PayController.java | 5 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/inner/OrderController.java | 14 + ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsSkuServiceImpl.java | 9 + ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/OrderFallbackFactory.java | 12 + ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsSeckillServiceImpl.java | 10 + ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java | 55 +++++++ ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/OrderUpdDTO.java | 4 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/OrderClient.java | 8 + ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java | 2 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/GoodsSku.java | 2 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/vo/GoodsSeckillVO.java | 3 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/MemberServiceImpl.java | 3 ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/management/MgtCouponController.java | 30 ++- ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java | 15 + ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/controller/management/MgtArticleController.java | 8 + 33 files changed, 298 insertions(+), 81 deletions(-) diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/AuctionGoods.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/AuctionGoods.java index ad33044..5bfc953 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/AuctionGoods.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/AuctionGoods.java @@ -1,6 +1,7 @@ package com.ruoyi.system.api.domain; import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.FieldStrategy; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; @@ -58,6 +59,7 @@ private Integer auctionStock; @ApiModelProperty(value = "保证金") + @TableField(insertStrategy = FieldStrategy.IGNORED, updateStrategy = FieldStrategy.IGNORED) private BigDecimal bond; @ApiModelProperty(value = "实名认证 0=不需实名 1=需要实名") diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/AuctionSalesroom.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/AuctionSalesroom.java index 75f3099..f335440 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/AuctionSalesroom.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/AuctionSalesroom.java @@ -1,6 +1,7 @@ package com.ruoyi.system.api.domain; import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.FieldStrategy; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; @@ -51,6 +52,7 @@ private AuctionTypeEnum type; @ApiModelProperty(value = "保证金") + @TableField(insertStrategy = FieldStrategy.IGNORED, updateStrategy = FieldStrategy.IGNORED) private BigDecimal bond; @ApiModelProperty(value = "实名认证 0=不需认证 1=需要实名") diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/GoodsSku.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/GoodsSku.java index cf8e6c0..3c508df 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/GoodsSku.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/GoodsSku.java @@ -1,6 +1,7 @@ package com.ruoyi.system.api.domain; import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.FieldStrategy; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; @@ -92,6 +93,7 @@ private String detail; @ApiModelProperty(value = "排序") + @TableField(updateStrategy = FieldStrategy.IGNORED, insertStrategy = FieldStrategy.IGNORED) private Integer sortNum; @ApiModelProperty(value = "上架状态 0=上架中 1= 已下架") diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/OrderDTO.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/OrderDTO.java index 633a880..4c7499b 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/OrderDTO.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/OrderDTO.java @@ -4,10 +4,9 @@ import com.ruoyi.common.core.enums.OrderFromEnum; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; -import lombok.Data; - import java.math.BigDecimal; import java.time.LocalDateTime; +import lombok.Data; @Data @ApiModel(value = "订单传输对象", description = "订单传输对象") @@ -72,6 +71,7 @@ @ApiModelProperty(value = "积分") private Integer points; - + @ApiModelProperty("失效时间") + private LocalDateTime orderTimeSx; } diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/OrderUpdDTO.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/OrderUpdDTO.java index 821e97f..45283c7 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/OrderUpdDTO.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/OrderUpdDTO.java @@ -90,5 +90,7 @@ @ApiModelProperty(value = "开票状态 开票状态 1 待开票,2待审核,3 已开票,4 拒绝") private Integer invoiceStatus; - + + @ApiModelProperty(value = "是否显示订单 1显示,2 不显示") + private Integer isOrder; } diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/OrderFallbackFactory.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/OrderFallbackFactory.java index c9aea7f..490f86f 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/OrderFallbackFactory.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/OrderFallbackFactory.java @@ -146,7 +146,17 @@ @Override public R<?> autoCancelOrder(Long id, String source) { - return null; + return R.fail("自动取消订单失败" + cause.getMessage()); + } + + @Override + public R<List<Order>> getOrderListByMubres(List<String> mubres, String source) { + return R.fail("根据团购唯一表示获取订单列表失败" + cause.getMessage()); + } + + @Override + public R<?> updateOrderStatusByMubres(List<String> formedGroupMubres, String source) { + return R.fail("修改订单展示状态失败" + cause.getMessage()); } }; diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/OrderClient.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/OrderClient.java index d766ee5..795119b 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/OrderClient.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/OrderClient.java @@ -183,4 +183,12 @@ @PutMapping("/order/autoCancelOrder/{id}") R<?> autoCancelOrder(@PathVariable("id") Long id, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); + + @PostMapping("/order/getOrderListByMubres") + R<List<Order>> getOrderListByMubres(@RequestBody List<String> mubres, + @RequestHeader(SecurityConstants.FROM_SOURCE) String source); + + @PostMapping("/order/updOrderStatusByMubres") + R<?> updateOrderStatusByMubres(@RequestBody List<String> formedGroupMubres, + @RequestHeader(SecurityConstants.FROM_SOURCE) String source); } diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/SysUserClient.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/SysUserClient.java index 5109722..e8d70e7 100644 --- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/SysUserClient.java +++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/SysUserClient.java @@ -95,7 +95,7 @@ @GetMapping("/custom-config/{configId}") R<CustomConfig> getconfig(@PathVariable("configId") String configId); - @GetMapping("/user/list-by-name") + @PostMapping("/user/list-by-name") R<List<SysUser>> getUserListByName(@RequestBody SysUser sysUser, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); diff --git a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/controller/management/MgtArticleController.java b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/controller/management/MgtArticleController.java index 5442eac..392c504 100644 --- a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/controller/management/MgtArticleController.java +++ b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/controller/management/MgtArticleController.java @@ -125,4 +125,12 @@ articleService.removeById(id); return R.ok(); } + + @ApiOperation("删除资讯评论") + @DeleteMapping("/comments/{id}") + public R<?> removeCommentsById( + @ApiParam(name = "id", value = "资讯评论id", required = true) @PathVariable("id") Long id) { + articleService.removeCommentsById(id); + return R.ok(); + } } diff --git a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/IArticleService.java b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/IArticleService.java index 0a140d6..9b7eb6d 100644 --- a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/IArticleService.java +++ b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/IArticleService.java @@ -78,4 +78,6 @@ * @param dto 资讯上下架数据传输对象 */ void updStatus(MgtArticleUpdDTO dto); + + void removeCommentsById(Long id); } diff --git a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/impl/ArticleServiceImpl.java b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/impl/ArticleServiceImpl.java index a00f525..b826520 100644 --- a/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/impl/ArticleServiceImpl.java +++ b/ruoyi-modules/ruoyi-article/src/main/java/com/ruoyi/article/service/impl/ArticleServiceImpl.java @@ -29,6 +29,7 @@ import com.ruoyi.common.core.exception.ServiceException; import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.core.utils.page.BeanUtils; +import com.ruoyi.common.core.utils.page.CollUtils; import com.ruoyi.common.core.utils.page.PageDTO; import com.ruoyi.system.api.domain.Member; import com.ruoyi.system.api.domain.SysUser; @@ -36,7 +37,6 @@ import com.ruoyi.system.api.feignClient.MemberClient; import com.ruoyi.system.api.feignClient.SysUserClient; import java.time.LocalDateTime; -import java.time.format.DateTimeFormatter; import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -46,6 +46,7 @@ import java.util.stream.Collectors; import javax.annotation.Resource; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; /** * <p> @@ -344,15 +345,19 @@ user.setPhonenumber(query.getPhone()); List<SysUser> sysUserList = sysUserClient.getUserListByName(user, SecurityConstants.INNER).getData(); + if (CollUtils.isNotEmpty(sysUserList)) { sysUserIdSet = sysUserList.stream().map(SysUser::getUserId) .collect(Collectors.toSet()); + } MemberDTO memberDTO = new MemberDTO(); memberDTO.setNickname(query.getCreateBy()); memberDTO.setPhone(query.getPhone()); List<Member> memberlist = memberClient.getMemberListByCondition(memberDTO, SecurityConstants.INNER).getData(); - memberIdSet = memberlist.stream().map(Member::getId) + if (CollUtils.isNotEmpty(memberlist)) { + memberIdSet = memberlist.stream().map(Member::getId) .collect(Collectors.toSet()); + } if (StringUtils.isEmpty(sysUserIdSet) && StringUtils.isEmpty(memberIdSet)) { return PageDTO.empty(page); } @@ -361,11 +366,16 @@ page = this.lambdaQuery() .in(StringUtils.isNotEmpty(sysUserIdSet), Article::getCreateBy, sysUserIdSet) + .or() .in(StringUtils.isNotEmpty(memberIdSet), Article::getMemberId, memberIdSet) .eq(StringUtils.isNotNull(query.getListingStatus()), Article::getListingStatus, query.getListingStatus()) .eq(StringUtils.isNotNull(query.getArticleType()), Article::getArticleType, query.getArticleType()) + .in(StringUtils.isNotNull(query.getArticleType()) && query.getArticleType() + .equals(ArticleTypeEnum.USER_POSTING), Article::getStatus, + Lists.newArrayList(AuditStatusEnum.TO_BE_REVIEWED, + AuditStatusEnum.REJECTED)) .like(StringUtils.isNotBlank(query.getTitle()), Article::getTitle, query.getTitle()) .orderByDesc(Article::getReported) .page(new Page<>(query.getPageCurr(), query.getPageSize())); @@ -488,7 +498,12 @@ if (StringUtils.isNull(article)) { throw new ServiceException("资讯不存在"); } - return BeanUtils.copyBean(article, MgtArticleVO.class); + MgtArticleVO mgtArticleVO = BeanUtils.copyBean(article, MgtArticleVO.class); + long count = articleCommentsService.count( + Wrappers.lambdaQuery(ArticleComments.class).eq(ArticleComments::getArticleId, id) + .eq(ArticleComments::getType, 1)); + mgtArticleVO.setCommentCount((int) count); + return mgtArticleVO; } /** @@ -519,4 +534,25 @@ this.lambdaUpdate().set(Article::getListingStatus, dto.getListingStatus()) .eq(Article::getId, dto.getId()).update(); } + + @Override + @Transactional(rollbackFor = Exception.class) + public void removeCommentsById(Long id) { + ArticleComments articleComments = articleCommentsService.getById(id); + if (StringUtils.isNull(articleComments)) { + throw new ServiceException("评论/回复不存在"); + } + articleCommentsService.removeById(id); + // 评论 + if (articleComments.getType().equals(1)) { + // 查询回复 + List<ArticleComments> replyList = articleCommentsService.lambdaQuery() + .eq(ArticleComments::getReplyId, id).list(); + if (StringUtils.isNotEmpty(replyList)) { + List<Long> replyIds = replyList.stream().map(ArticleComments::getId) + .collect(Collectors.toList()); + articleCommentsService.removeByIds(replyIds); + } + } + } } diff --git a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/domain/AuctionSalesroomGoods.java b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/domain/AuctionSalesroomGoods.java index b3f5e1b..bc8060f 100644 --- a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/domain/AuctionSalesroomGoods.java +++ b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/domain/AuctionSalesroomGoods.java @@ -1,6 +1,7 @@ package com.ruoyi.auction.domain; import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.FieldStrategy; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; @@ -53,6 +54,7 @@ private Integer salesroomStock; @ApiModelProperty(value = "兜底成交个数") + @TableField(insertStrategy = FieldStrategy.IGNORED, updateStrategy = FieldStrategy.IGNORED) private Integer guaranteedTradeVolume; @ApiModelProperty(value = "拍卖时间(分钟)") diff --git a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionGoodsServiceImpl.java b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionGoodsServiceImpl.java index 8b60268..a7c3b2b 100644 --- a/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionGoodsServiceImpl.java +++ b/ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionGoodsServiceImpl.java @@ -354,6 +354,7 @@ orderDTO.setPrice(goodsSku.getPrice()); orderDTO.setSkuName(goodsSku.getSkuName()); } + orderDTO.setOrderTimeSx(auctionGoods.getEndTime()); orderClient.saveOrderOne(orderDTO, SecurityConstants.INNER); } else { // 没有人出价,退回拍卖商品库存 diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/vo/GoodsSeckillVO.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/vo/GoodsSeckillVO.java index 59d4604..b5503f6 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/vo/GoodsSeckillVO.java +++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/vo/GoodsSeckillVO.java @@ -37,6 +37,9 @@ @ApiModelProperty(value = "秒杀价格") private BigDecimal seckillPrice; + @ApiModelProperty(value = "商品库存") + private Integer goodsSkuStock; + @ApiModelProperty(value = "已售数量") private Integer soldQuantity; diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsGroupPurchaseServiceImpl.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsGroupPurchaseServiceImpl.java index f544f53..9c92c18 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsGroupPurchaseServiceImpl.java +++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsGroupPurchaseServiceImpl.java @@ -25,6 +25,7 @@ import com.ruoyi.goods.controller.management.vo.GoodsGroupPurchaseVO; import com.ruoyi.goods.domain.MemberGoodsCollection; import com.ruoyi.goods.mapper.GoodsGroupPurchaseMapper; +import com.ruoyi.goods.service.IGoodsGroupPurchaseInfoService; import com.ruoyi.goods.service.IGoodsGroupPurchaseService; import com.ruoyi.goods.service.IGoodsSkuService; import com.ruoyi.goods.service.IMemberGoodsCollectionService; @@ -51,7 +52,6 @@ import java.util.Map; import java.util.concurrent.ConcurrentHashMap; import java.util.stream.Collectors; -import javax.annotation.Resource; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; @@ -75,9 +75,7 @@ private final RedisService redisService; private final IMemberGoodsCollectionService iMemberGoodsCollectionService; private final SysUserClient sysUserClient; - - @Resource - private GoodsGroupPurchaseInfoServiceImpl GoodsGroupPurchaseInfoServiceImpl; + private final IGoodsGroupPurchaseInfoService goodsGroupPurchaseInfoService; // 创建一个静态共享的ObjectMapper实例以重用 private static final ObjectMapper objectMapper = new ObjectMapper(); /** @@ -101,6 +99,7 @@ @Override public void saveGoodsGroupPurchase(GoodsGroupPurchaseDTO dto) { GoodsGroupPurchase goodsGroupPurchase = BeanUtils.copyBean(dto, GoodsGroupPurchase.class); + goodsGroupPurchase.setListingStatus(ListingStatusEnum.ON_SHELVES); if (StringUtils.isNull(dto.getId())) { if (StringUtils.isNull(dto.getGoodsSkuId())) { throw new ServiceException("商品id不能为空"); @@ -204,6 +203,12 @@ + groupPurchase.getId()); redisService.deleteObject( DelayTaskEnum.GROUP_PURCHASES_END_TASK.getCode() + "-" + groupPurchase.getId()); + // 退回剩余库存 + GoodsStockUpdDTO goodsStockUpdDTO = new GoodsStockUpdDTO(); + goodsStockUpdDTO.setAuctionStock( + groupPurchase.getLimitNumber() * groupPurchase.getGroupSize()); + goodsStockUpdDTO.setGoodsSkuId(groupPurchase.getGoodsSkuId()); + goodsSkuService.updGoodsStock(Lists.newArrayList(goodsStockUpdDTO)); } //修改状态 groupPurchase.setListingStatus(dto.getListingStatus()); @@ -253,10 +258,12 @@ public void endGroupPurchase(Long groupPurchaseId) throws JsonProcessingException { log.info(">>>>>>>>>>>>>>>>>>>>{}团购商品结束团购<<<<<<<<<<<<<<<<<<<<", groupPurchaseId); GoodsGroupPurchase groupPurchase = this.getById(groupPurchaseId); - if (StringUtils.isNotNull(groupPurchase) && groupPurchase.getStartStatus() - .equals(StartStatusEnum.STARTED)) { - this.lambdaUpdate().set(GoodsGroupPurchase::getStartStatus, StartStatusEnum.ENDED) - .eq(GoodsGroupPurchase::getId, groupPurchaseId).update(); + boolean res = handleGroupPurchase(groupPurchaseId); + if (StringUtils.isNotNull(groupPurchase)) { + groupPurchase.setStartStatus(StartStatusEnum.ENDED); + groupPurchase.setGroupStatus( + res ? GroupStatusEnum.FORMED_INTO_A_GROUP : GroupStatusEnum.GROUP_FAILURE); + this.updateById(groupPurchase); Map<String, Object> map = new ConcurrentHashMap<>(); map.put("notification_type", NotificationTypeConstant.GROUP_PURCHASE); map.put("notification_time", DateUtils.dateTimeNow("yyyy-MM-dd HH:mm:ss")); @@ -280,13 +287,26 @@ if (StringUtils.isNull(groupPurchase)) { throw new ServiceException("团购商品不存在"); } - //判断商品状态,未成团则查询关联订单,进行退款;成团就直接修改状态 - if (groupPurchase.getGroupStatus().equals(GroupStatusEnum.TO_FORM_A_GROUP)) { - //查询关联订单 - List<Order> orderList = orderClient.getOrderByGroupPurchaseId(id, + // 处理未成团订单退款和成团订单修改展示状态 + boolean res = handleGroupPurchase(id); + groupPurchase.setGroupStatus( + res ? GroupStatusEnum.FORMED_INTO_A_GROUP : GroupStatusEnum.GROUP_FAILURE); + groupPurchase.setStartStatus(StartStatusEnum.ENDED); + this.updateById(groupPurchase); + } + + private boolean handleGroupPurchase(Long id) { + List<GoodsGroupPurchaseInfo> groupPurchaseInfoList = goodsGroupPurchaseInfoService.lambdaQuery() + .eq(GoodsGroupPurchaseInfo::getGroupPurchaseId, id).list(); + if (CollUtils.isNotEmpty(groupPurchaseInfoList)) { + List<String> mubres = groupPurchaseInfoList.stream() + .filter(g -> g.getCurrentNumber() + < g.getGroupSize()) + .map(GoodsGroupPurchaseInfo::getMubre).collect( + Collectors.toList()); + List<Order> orderList = orderClient.getOrderListByMubres(mubres, SecurityConstants.INNER).getData(); if (CollUtils.isNotEmpty(orderList)) { - List<RefundDTO> refundDTOList = orderList.stream().map(order -> { RefundDTO refundDTO = new RefundDTO(); refundDTO.setOrderNo(order.getOrderNo()); @@ -307,6 +327,15 @@ failedOrders.add(key); } }); + try { + log.info( + "============ =================退款结束============================="); + log.info("退款成功订单:{}", + objectMapper.writeValueAsString(successfulOrders)); + log.info("退款失败订单:{}", objectMapper.writeValueAsString(failedOrders)); + } catch (JsonProcessingException e) { + throw new RuntimeException(e); + } // 处理退款结果 List<Order> updateOrderList = orderList.stream() .filter(order -> successfulOrders.contains(order.getOrderNo())) @@ -318,10 +347,17 @@ orderClient.updateOrderList(orderUpdDTOS, SecurityConstants.INNER); } } - groupPurchase.setGroupStatus(GroupStatusEnum.GROUP_FAILURE); + List<String> formedGroupMubres = groupPurchaseInfoList.stream() + .filter(g -> g.getCurrentNumber() + >= g.getGroupSize()) + .map(GoodsGroupPurchaseInfo::getMubre).collect( + Collectors.toList()); + if (CollUtils.isNotEmpty(formedGroupMubres)) { + orderClient.updateOrderStatusByMubres(formedGroupMubres, SecurityConstants.INNER); + return true; + } } - groupPurchase.setStartStatus(StartStatusEnum.ENDED); - this.updateById(groupPurchase); + return false; } @Override @@ -354,7 +390,7 @@ wrapper6.eq(GoodsGroupPurchaseInfo::getDelFlag,0); wrapper6.eq(GoodsGroupPurchaseInfo::getGroupStatus,0); wrapper6.eq(GoodsGroupPurchaseInfo::getGroupPurchaseId,one.getId()); - GoodsGroupPurchaseInfo one1 = GoodsGroupPurchaseInfoServiceImpl.getOne(wrapper6); + GoodsGroupPurchaseInfo one1 = goodsGroupPurchaseInfoService.getOne(wrapper6); if (one1!=null){ goodsGroupPurchaseInfoVO.setCurrentNumber(one1.getCurrentNumber()); if (one1.getGroupStatus()==0){ @@ -396,7 +432,7 @@ LambdaQueryWrapper<GoodsGroupPurchaseInfo> wrapper7= Wrappers.lambdaQuery(); wrapper7.eq(GoodsGroupPurchaseInfo::getMubre,data.getGroupNo()); - GoodsGroupPurchaseInfo one7 = GoodsGroupPurchaseInfoServiceImpl.getOne(wrapper7); + GoodsGroupPurchaseInfo one7 = goodsGroupPurchaseInfoService.getOne(wrapper7); if (one7!=null){ goodsGroupPurchaseInfoVO.setCurrentNumber(one7.getCurrentNumber()); if (one7.getGroupStatus()==0){ diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsSeckillServiceImpl.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsSeckillServiceImpl.java index 71dc751..2664565 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsSeckillServiceImpl.java +++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsSeckillServiceImpl.java @@ -186,6 +186,7 @@ throw new ServiceException("编辑失败,商品库存不足"); } GoodsSeckill goodsSeckillUpd = BeanUtils.copyBean(upd, GoodsSeckill.class); + goodsSeckillUpd.setListingStatus(ListingStatusEnum.ON_SHELVES); this.updateById(goodsSeckillUpd); GoodsStockUpdDTO goodsStockUpdDTO = new GoodsStockUpdDTO(); goodsStockUpdDTO.setAuctionStock(upd.getSeckillStock() * -1); @@ -216,7 +217,7 @@ DelayTaskEnum.SECKILL_END_TASK.getCode() + "-" + goodsSeckill.getId()); // 退回剩余库存 GoodsStockUpdDTO goodsStockUpdDTO = new GoodsStockUpdDTO(); - goodsStockUpdDTO.setAuctionStock(goodsSeckill.getSeckillStock() * -1); + goodsStockUpdDTO.setAuctionStock(goodsSeckill.getSeckillStock()); goodsStockUpdDTO.setGoodsSkuId(goodsSeckill.getGoodsSkuId()); goodsSkuService.updGoodsStock(Lists.newArrayList(goodsStockUpdDTO)); goodsSeckill.setSeckillStock(0); @@ -241,8 +242,11 @@ } GoodsSeckillVO vo = BeanUtils.copyBean(goodsSeckill, GoodsSeckillVO.class); GoodsSku goods = goodsSkuService.getById(goodsSeckill.getGoodsSkuId()); - Optional.of(goods).ifPresent(goodsSku -> vo.setGoodsSkuName(goodsSku.getSkuName())); - Integer num = orderClient.getSeckillMembers(goodsSeckill.getGoodsSkuId(), + Optional.of(goods).ifPresent(goodsSku -> { + vo.setGoodsSkuName(goodsSku.getSkuName()); + vo.setGoodsSkuStock(goodsSku.getStock()); + }); + Integer num = orderClient.getSeckillMembers(goodsSeckill.getId(), SecurityConstants.INNER).getData(); vo.setNumberOfPurchasedMembers(StringUtils.isNull(num) ? 0 : num); return vo; diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsSkuServiceImpl.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsSkuServiceImpl.java index 96eefd7..1823b6e 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsSkuServiceImpl.java +++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsSkuServiceImpl.java @@ -8,6 +8,7 @@ import com.fasterxml.jackson.databind.ObjectMapper; import com.ruoyi.common.core.constant.SecurityConstants; import com.ruoyi.common.core.enums.ListingStatusEnum; +import com.ruoyi.common.core.enums.StartStatusEnum; import com.ruoyi.common.core.exception.ServiceException; import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.core.utils.page.BeanUtils; @@ -425,7 +426,9 @@ LambdaQueryWrapper<GoodsGroupPurchase> queryWrapper1 =new LambdaQueryWrapper<>(); queryWrapper1.eq(GoodsGroupPurchase::getListingStatus, ListingStatusEnum.ON_SHELVES) - .eq(GoodsGroupPurchase::getGoodsSkuId, byId.getId()); + .eq(GoodsGroupPurchase::getGoodsSkuId, byId.getId()) + .eq(GoodsGroupPurchase::getStartStatus, + StartStatusEnum.STARTED); GoodsGroupPurchase goodsGroupPurchase = goodsGroupPurchaseMapper.selectOne(queryWrapper1); if(goodsGroupPurchase!=null){ HomeGoodsSkuDTO homeGoodsSkuDTO1 =new HomeGoodsSkuDTO(); @@ -457,7 +460,9 @@ LambdaQueryWrapper<GoodsGroupPurchase> queryWrapper2 =new LambdaQueryWrapper<>(); queryWrapper2.eq(GoodsGroupPurchase::getListingStatus, ListingStatusEnum.ON_SHELVES) - .eq(GoodsGroupPurchase::getGoodsSkuId, byId.getId()); + .eq(GoodsGroupPurchase::getGoodsSkuId, byId.getId()) + .eq(GoodsGroupPurchase::getStartStatus, + StartStatusEnum.STARTED); GoodsGroupPurchase goodsGroupPurchase2 = goodsGroupPurchaseMapper.selectOne(queryWrapper2); if (goodsGroupPurchase2!=null){ homeGoodsSkuInfoVO.setGroupPurchaseGoods(2); diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/MemberServiceImpl.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/MemberServiceImpl.java index 5c36b86..5fce8fc 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/MemberServiceImpl.java +++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/MemberServiceImpl.java @@ -18,7 +18,6 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.google.common.collect.Lists; import com.ruoyi.common.core.enums.GenderEnum; import com.ruoyi.common.core.exception.ServiceException; import com.ruoyi.common.core.utils.StringUtils; @@ -38,7 +37,6 @@ import com.ruoyi.member.service.IMemberService; import com.ruoyi.member.util.HttpUtils; import com.ruoyi.system.api.RemoteUserService; -import com.ruoyi.system.api.constants.SecurityConstant; import com.ruoyi.system.api.domain.AppMiniLoginVO; import com.ruoyi.system.api.domain.Member; import com.ruoyi.system.api.domain.MemberPoints; @@ -55,7 +53,6 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import java.util.concurrent.TimeUnit; import javax.annotation.Resource; import org.apache.commons.io.IOUtils; import org.apache.http.HttpEntity; diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/inner/OrderController.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/inner/OrderController.java index 94410aa..53d3617 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/inner/OrderController.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/inner/OrderController.java @@ -3,8 +3,6 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.fasterxml.jackson.core.JsonProcessingException; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.enums.OrderStatusEnum; import com.ruoyi.common.core.utils.page.BeanUtils; @@ -183,4 +181,16 @@ return R.ok(); } + @InnerAuth + @PostMapping("/getOrderListByMubres") + R<List<Order>> getOrderListByMubres(@RequestBody List<String> mubres) { + return R.ok(orderService.getOrderListByMubres(mubres)); + } + + @InnerAuth + @PostMapping("/updOrderStatusByMubres") + R<?> updateOrderStatusByMubres(@RequestBody List<String> formedGroupMubres) { + orderService.updateOrderStatusByMubres(formedGroupMubres); + return R.ok(); + } } diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/inner/PayController.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/inner/PayController.java index ac94f0d..d927dea 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/inner/PayController.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/inner/PayController.java @@ -3,7 +3,6 @@ import com.ruoyi.common.core.domain.R; import com.ruoyi.common.security.annotation.InnerAuth; import com.ruoyi.order.service.IPaylogService; -import com.ruoyi.order.service.impl.PaylogServiceImpl; import com.ruoyi.system.api.domain.dto.RefundDTO; import java.util.List; import java.util.Map; @@ -24,6 +23,10 @@ private final IPaylogService paylogService; + /** + * @param refundDTOS 退款数据传输对象 + * @return Map<String, Object> key :orderNo value 退款结果 + */ @InnerAuth @PostMapping("/refund-batch") public R<Map<String, Object>> refund(@RequestBody List<RefundDTO> refundDTOS) { diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/management/vo/MgtOrderVO.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/management/vo/MgtOrderVO.java index 16319cd..b2845da 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/management/vo/MgtOrderVO.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/management/vo/MgtOrderVO.java @@ -144,4 +144,8 @@ @ApiModelProperty("物流信息") private Express100VO express100VO; + + @ApiModelProperty("是否售后 1未售后,2 售后") + private Integer isRequest; + } diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/IOrderService.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/IOrderService.java index a812488..00af113 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/IOrderService.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/IOrderService.java @@ -142,4 +142,8 @@ * @return List<Order> */ List<Order> getStaticsOrderList(LocalDateTime startTime, LocalDateTime endTime); + + List<Order> getOrderListByMubres(List<String> mubres); + + void updateOrderStatusByMubres(List<String> formedGroupMubres); } diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/IPaylogService.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/IPaylogService.java index 3152b76..db3d456 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/IPaylogService.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/IPaylogService.java @@ -42,6 +42,10 @@ */ void wxnotify(HttpServletRequest request, HttpServletResponse response); + /** + * @param refundDTOS 退款数据传输对象 + * @return Map<String, Object> key :orderNo value 退款结果 + */ Map<String, Object> refund(List<RefundDTO> refundDTOS); void refund1(RefundDTO refundDTOS); diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/LogisticsServiceImpl.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/LogisticsServiceImpl.java index 3b26cd7..4cbabe5 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/LogisticsServiceImpl.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/LogisticsServiceImpl.java @@ -1,7 +1,6 @@ package com.ruoyi.order.service.impl; -import com.alibaba.fastjson.JSONArray; import com.alibaba.nacos.shaded.com.google.gson.Gson; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; @@ -12,34 +11,23 @@ import com.kuaidi100.sdk.request.QueryTrackParam; import com.kuaidi100.sdk.request.QueryTrackReq; import com.kuaidi100.sdk.utils.SignUtils; -import com.ruoyi.common.core.domain.R; import com.ruoyi.order.mapper.LogisticsMapper; import com.ruoyi.order.service.ILogisticsService; -import com.ruoyi.order.vo.KuaiDiCode; import com.ruoyi.system.api.domain.Logistics; import com.ruoyi.system.api.domain.dto.LogisticsDTO; import com.ruoyi.system.api.domain.vo.Express100VO; -import net.sf.json.JSONObject; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.HttpEntity; -import org.springframework.http.HttpHeaders; -import org.springframework.http.ResponseEntity; -import org.springframework.stereotype.Service; -import org.springframework.util.LinkedMultiValueMap; -import org.springframework.util.MultiValueMap; -import org.springframework.web.client.RestTemplate; - -import javax.annotation.Resource; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; import java.net.URLEncoder; -import java.util.ArrayList; import java.util.HashMap; -import java.util.List; import java.util.Map; +import java.util.Objects; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.web.client.RestTemplate; /** * <p> @@ -90,7 +78,9 @@ LambdaQueryWrapper<Logistics> wrapper= Wrappers.lambdaQuery(); wrapper.eq(Logistics::getLogisticsNum,logisticsDTO.getCompany()); Logistics one = this.getOne(wrapper); - response.setLogisticsName(one.getLogisticsName()); + if (Objects.nonNull(one)) { + response.setLogisticsName(one.getLogisticsName()); + } return response; } diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderReturnRequestServiceImpl.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderReturnRequestServiceImpl.java index dd1b9f0..ddd1eb9 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderReturnRequestServiceImpl.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderReturnRequestServiceImpl.java @@ -163,6 +163,7 @@ } memberIdSet = memberList.stream().map(Member::getId) .collect(Collectors.toSet()); + query.setMemberIdSet(memberIdSet); } page = baseMapper.getOrderReturnRequestPage(page, query); if (StringUtils.isEmpty(page.getRecords())) { diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java index aab1f9b..c01e6a1 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java @@ -7,7 +7,6 @@ import com.google.common.collect.Lists; import com.ruoyi.common.core.constant.CacheConstants; import com.ruoyi.common.core.constant.SecurityConstants; -import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.enums.AuctionOrderTypeEnum; import com.ruoyi.common.core.enums.AuditStatusEnum; import com.ruoyi.common.core.enums.BondStatusEnum; @@ -37,7 +36,18 @@ import com.ruoyi.order.util.OrderUtil; import com.ruoyi.order.util.SinataUtil; import com.ruoyi.system.api.constants.DelayTaskEnum; -import com.ruoyi.system.api.domain.*; +import com.ruoyi.system.api.domain.AuctionSalesroom; +import com.ruoyi.system.api.domain.CouponMember; +import com.ruoyi.system.api.domain.CustomConfig; +import com.ruoyi.system.api.domain.DelayTask; +import com.ruoyi.system.api.domain.GoodsGroupPurchase; +import com.ruoyi.system.api.domain.GoodsGroupPurchaseInfo; +import com.ruoyi.system.api.domain.GoodsSeckill; +import com.ruoyi.system.api.domain.GoodsSku; +import com.ruoyi.system.api.domain.Member; +import com.ruoyi.system.api.domain.MemberAddress; +import com.ruoyi.system.api.domain.Order; +import com.ruoyi.system.api.domain.OrderAuctionBond; import com.ruoyi.system.api.domain.dto.CouponMemberDTO; import com.ruoyi.system.api.domain.dto.GoodsStockUpdDTO; import com.ruoyi.system.api.domain.dto.HomeGoodsSkuDTO; @@ -61,7 +71,10 @@ import java.math.BigDecimal; import java.math.RoundingMode; import java.time.LocalDateTime; -import java.util.*; +import java.util.Collection; +import java.util.List; +import java.util.Map; +import java.util.Set; import java.util.concurrent.TimeUnit; import java.util.function.Function; import java.util.regex.Matcher; @@ -72,6 +85,7 @@ import org.redisson.api.RLock; import org.redisson.api.RedissonClient; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; /** * <p> @@ -164,6 +178,7 @@ order.setSkuName(OrderDTO.getSkuName()); order.setPrice(OrderDTO.getPrice()); order.setCoverPic(OrderDTO.getCoverPic()); + order.setOrderTimeSx(OrderDTO.getOrderTimeSx()); this.save(order); if (OrderDTO.getOrderFrom().getCode()==4){ @@ -1177,8 +1192,9 @@ pageVO = PageDTO.empty(page); } pageVO = PageDTO.of(page, MgtOrderVO.class); + List<MgtOrderVO> voList = pageVO.getList(); if (query.getOrderFrom() == OrderFromEnum.AUCTION_ORDERS) { - List<MgtOrderVO> list = pageVO.getList(); + List<MgtOrderVO> list = voList; // 封装参数查询拍卖会 Set<Long> auctionSalesroomGoodsIdSet = list.stream() .filter(order -> order.getAuctionType() == AuctionOrderTypeEnum.AUCTION_ITEMS) @@ -1243,6 +1259,19 @@ } }); } + Set<Long> memberVoIdSet = voList.stream().map(MgtOrderVO::getMemberId) + .collect(Collectors.toSet()); + List<Member> data = memberClient.getMemberListByIds(memberVoIdSet, SecurityConstants.INNER) + .getData(); + Map<Long, Member> memberMap = data.stream() + .collect(Collectors.toMap(Member::getId, e -> e)); + voList = voList.stream().peek(order -> { + Member member = memberMap.get(order.getMemberId()); + if (StringUtils.isNotNull(member)) { + order.setNickname(member.getNickname()); + order.setPhone(member.getPhone()); + } + }).collect(Collectors.toList()); return pageVO; } @@ -1274,7 +1303,7 @@ } } // 查询售后信息 - if (order.getOrderStatus() == OrderStatusEnum.AFTER_SALE) { + if (order.getIsRequest() == 2) { OrderReturnRequest orderReturnRequest = orderReturnRequestService.getOne( Wrappers.lambdaQuery(OrderReturnRequest.class) .eq(OrderReturnRequest::getOrderId, @@ -1345,6 +1374,7 @@ * @param id 订单id */ @Override + @Transactional(rollbackFor = Exception.class) public void refund(Long id) { Order order = getOrder(id); String orderNo = order.getOrderNo(); @@ -1367,6 +1397,8 @@ orderReturnRequest.setAuditStatus(AuditStatusEnum.PASSED); orderReturnRequestService.save(orderReturnRequest); } + order.setIsRequest(2); + this.updateById(order); } private boolean handleRefund(PaymentMethodEnum paymentMethod, Paylog paylog, String orderNo) { @@ -1401,7 +1433,7 @@ Order order = getOrder(id); if (order.getOrderStatus() == OrderStatusEnum.FINISHED) { OrderReturnRequest orderReturnRequest = new OrderReturnRequest(); - order.setOrderStatus(OrderStatusEnum.AFTER_SALE); + order.setIsRequest(2); this.updateById(order); MgtAfterSaleSettingDTO data = sysUserClient.getAfterSaleSetting().getData(); if (StringUtils.isNull(data)) { @@ -1484,4 +1516,15 @@ public List<Order> getStaticsOrderList(LocalDateTime startTime, LocalDateTime endTime) { return baseMapper.getStaticsOrderList(startTime, endTime); } + + @Override + public List<Order> getOrderListByMubres(List<String> mubres) { + return this.lambdaQuery().in(Order::getGroupNo, mubres).list(); + } + + @Override + public void updateOrderStatusByMubres(List<String> formedGroupMubres) { + this.lambdaUpdate().set(Order::getIsOrder, 1).in(Order::getGroupNo, formedGroupMubres) + .update(); + } } diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/PaylogServiceImpl.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/PaylogServiceImpl.java index 0e64e66..04526ed 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/PaylogServiceImpl.java +++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/PaylogServiceImpl.java @@ -883,6 +883,10 @@ return m.matches(); } + /** + * @param refundDTOS 退款数据传输对象 + * @return Map<String, Object> key :orderNo value 退款结果 + */ @Override public Map<String, Object> refund(List<RefundDTO> refundDTOS) { Map<String, Object> map = new HashMap<>(); diff --git a/ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml b/ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml index 54a8be8..d6590c9 100644 --- a/ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml +++ b/ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml @@ -3,14 +3,13 @@ <mapper namespace="com.ruoyi.order.mapper.OrderMapper"> <select id="getSeckillMembers" resultType="java.lang.Integer"> - SELECT ifnull(count(1), 0) FROM t_order o + SELECT IFNULL(COUNT(id), 0) AS num + FROM t_order o WHERE o.goods_sku_id = #{id} AND o.order_from=2 AND o.del_flag=0 - AND o.order_status IN (2 - , 3 - , 4) + AND o.order_status IN (2, 3, 4) GROUP BY o.member_id </select> diff --git a/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/management/MgtCouponController.java b/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/management/MgtCouponController.java index 6ea3538..74b2292 100644 --- a/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/management/MgtCouponController.java +++ b/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/management/MgtCouponController.java @@ -2,9 +2,7 @@ import com.alibaba.excel.EasyExcel; -import com.alibaba.excel.ExcelWriter; import com.alibaba.excel.util.DateUtils; -import com.alibaba.excel.write.metadata.WriteSheet; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.utils.page.PageDTO; import com.ruoyi.promotion.controller.management.dto.MgtCouponDTO; @@ -18,8 +16,11 @@ import com.ruoyi.system.api.validate.UpdateGroup; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import java.io.IOException; +import java.net.URLEncoder; import java.util.Date; import java.util.List; +import javax.servlet.http.HttpServletResponse; import lombok.RequiredArgsConstructor; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.PostMapping; @@ -43,6 +44,7 @@ public class MgtCouponController { private final ICouponService couponService; + private final HttpServletResponse response; /** * 获取优惠券列表的分页数据 @@ -115,14 +117,22 @@ public void exportReceiveDetail(@RequestBody MgtCouponReceiveQuery query) { List<CouponReceiveDetailVO> couponReceiveDetailVOList = couponService.getCouponReceiveDetailList( query); - String fileName = - "优惠券领取明细" + DateUtils.format(new Date(), "yyyyMMddHHmmss") + ".xlsx"; - - try (ExcelWriter excelWriter = EasyExcel.write(fileName, CouponReceiveDetailVO.class) - .build()) { - WriteSheet writeSheet = EasyExcel.writerSheet("优惠券领取详情").build(); - excelWriter.write(couponReceiveDetailVOList, writeSheet); + response.setContentType( + "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); + response.setCharacterEncoding("utf-8"); + // 这里URLEncoder.encode可以防止中文乱码 当然和easyexcel没有关系 + try { + String fileName = URLEncoder.encode( + "优惠券领取明细" + DateUtils.format(new Date(), "yyyyMMddHHmmss"), "UTF-8") + .replaceAll("\\+", "%20"); + response.setHeader("Content-disposition", + "attachment;filename*=utf-8''" + fileName + ".xlsx"); + EasyExcel.write(response.getOutputStream(), CouponReceiveDetailVO.class) + .sheet("优惠券领取明细") + .doWrite(couponReceiveDetailVOList); + } catch (IOException e) { + throw new RuntimeException(e); } } - } + diff --git a/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/management/vo/CouponReceiveDetailVO.java b/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/management/vo/CouponReceiveDetailVO.java index 53bcf10..b9782f6 100644 --- a/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/management/vo/CouponReceiveDetailVO.java +++ b/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/controller/management/vo/CouponReceiveDetailVO.java @@ -4,6 +4,7 @@ import com.alibaba.excel.annotation.ExcelProperty; import com.fasterxml.jackson.annotation.JsonFormat; import com.ruoyi.common.core.enums.CouponUseEnum; +import com.ruoyi.promotion.converter.CouponUseEnumConverter; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import java.io.Serializable; @@ -46,7 +47,7 @@ private LocalDateTime createTime; @ApiModelProperty(value = "使用状态 0:未使用, 1:已使用") - @ExcelProperty("使用状态") + @ExcelProperty(value = "使用状态", converter = CouponUseEnumConverter.class) private CouponUseEnum couponStatus; } diff --git a/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/converter/CouponUseEnumConverter.java b/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/converter/CouponUseEnumConverter.java new file mode 100644 index 0000000..6e7f4a0 --- /dev/null +++ b/ruoyi-modules/ruoyi-promotion/src/main/java/com/ruoyi/promotion/converter/CouponUseEnumConverter.java @@ -0,0 +1,17 @@ +package com.ruoyi.promotion.converter; + +import com.alibaba.excel.converters.Converter; +import com.alibaba.excel.metadata.GlobalConfiguration; +import com.alibaba.excel.metadata.data.WriteCellData; +import com.alibaba.excel.metadata.property.ExcelContentProperty; +import com.ruoyi.common.core.enums.CouponUseEnum; + +public class CouponUseEnumConverter implements Converter<CouponUseEnum> { + + @Override + public WriteCellData<?> convertToExcelData(CouponUseEnum value, + ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) + throws Exception { + return new WriteCellData<String>(value.getDesc()); + } +} \ No newline at end of file diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java index 3701850..ce9a62f 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java @@ -587,7 +587,7 @@ } @InnerAuth - @GetMapping("/list-by-name") + @PostMapping("/list-by-name") R<List<SysUser>> getUserListByName(@RequestBody SysUser sysUser) { List<SysUser> list = userService.lambdaQuery() .like(StringUtils.isNotBlank(sysUser.getNickName()), SysUser::getNickName, diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java index 3f506ee..67f2902 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysUserServiceImpl.java @@ -603,12 +603,13 @@ public void saveSupplier(SupplierDTO dto) { SysUser user = BeanUtils.copyBean(dto, SysUser.class); - boolean b = checkPhoneUnique(user); - if (!b) { - throw new ServiceException("该手机号已存在"); - } + // 添加 if (StringUtils.isNull(dto.getUserId())) { + boolean b = checkPhoneUnique(user); + if (!b) { + throw new ServiceException("该手机号已存在"); + } user.setUserName(dto.getPhonenumber()); user.setPassword(SecurityUtils.encryptPassword(dto.getPassword())); user.setUserType("04"); @@ -618,6 +619,12 @@ } else { // 编辑 user = this.getById(dto.getUserId()); + if (!user.getPhonenumber().equals(dto.getPhonenumber())) { + boolean b = checkPhoneUnique(user); + if (!b) { + throw new ServiceException("该手机号已存在"); + } + } if (StringUtils.isNull(user)) { throw new ServiceException("供应商不存在"); } -- Gitblit v1.7.1