ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/controller/management/dto/MgtAuctionSalesroomGoodsQuery.java
@@ -20,6 +20,6 @@ private Long auctionSalesroomId; @ApiModelProperty(value = "商品名称") private String goodsName; private String goodsSkuName; } ruoyi-modules/ruoyi-auction/src/main/java/com/ruoyi/auction/service/impl/AuctionSalesroomServiceImpl.java
@@ -1210,7 +1210,7 @@ .between(StringUtils.isNotNull(query.getStartTime()) && StringUtils.isNotNull( query.getEndTime()), AuctionSalesroom::getStartTime, query.getStartTime(), query.getEndTime()) .orderByAsc(AuctionSalesroom::getCreateTime) .orderByDesc(AuctionSalesroom::getCreateTime) .page(new Page<>(query.getPageCurr(), query.getPageSize())); List<AuctionSalesroom> records = page.getRecords(); if (StringUtils.isNull(records)) { @@ -1256,7 +1256,7 @@ vo.setAuctionSalesroomGoodsVOS(collect); if (StringUtils.isNotNull(vo.getCurrentAuctionSalesroomGoods())) { int index = collect.indexOf(vo.getCurrentAuctionSalesroomGoods()); if (collect.size() > 1) { if (collect.size() > 1 && index < collect.size() - 1) { vo.setNextAuctionSalesroomGoods(collect.get(index + 1)); } // 分页查询当前拍品出价信息 @@ -1371,8 +1371,8 @@ public PageDTO<MgtAuctionSalesroomGoodsVO> backupGoods(MgtAuctionSalesroomGoodsQuery query) { Page<AuctionSalesroomGoods> page = new Page<>(query.getPageCurr(), query.getPageSize()); Set<Long> goodsSkuIdSet = null; if (StringUtils.isNotBlank(query.getGoodsName())) { List<GoodsSku> data = goodsSkuClient.getGoodsByName(query.getGoodsName(), if (StringUtils.isNotBlank(query.getGoodsSkuName())) { List<GoodsSku> data = goodsSkuClient.getGoodsByName(query.getGoodsSkuName(), SecurityConstants.INNER).getData(); if (StringUtils.isNotEmpty(data)) { goodsSkuIdSet = data.stream().map(GoodsSku::getId) @@ -1650,7 +1650,6 @@ public void stopCurrentAuctionSalesroom(Long auctionSalesroomId) throws JsonProcessingException { LambdaQueryWrapper<AuctionSalesroomGoods> wrapper = Wrappers.lambdaQuery(); wrapper.eq(AuctionSalesroomGoods::getStatus, AuctionGoodsStatusEnum.WAITING); wrapper.eq(AuctionSalesroomGoods::getAuctionSalesroomId, auctionSalesroomId); wrapper.orderByDesc(AuctionSalesroomGoods::getSortNum); List<AuctionSalesroomGoods> auctionSalesroomGoods = auctionSalesroomGoodsMapper.selectList( @@ -1666,19 +1665,18 @@ auctionSalesroom.setStatus(AuctionStartStatusEnum.ENDED); auctionSalesroom.setEndTime(LocalDateTime.now()); auctionSalesroomMapper.updateById(auctionSalesroom); auctionSalesroomGoods = auctionSalesroomGoods.stream() .filter(goods -> goods.getStatus().equals(AuctionGoodsStatusEnum.WAITING)).collect( Collectors.toList()); if (StringUtils.isNotEmpty(auctionSalesroomGoods)) { List<GoodsStockUpdDTO> dtoList = new ArrayList<>(); for (AuctionSalesroomGoods salesroomGoods : auctionSalesroomGoods) { salesroomGoods.setStatus(AuctionGoodsStatusEnum.ENDED); // 等待中的商品退库存 if (salesroomGoods.getStatus().equals(AuctionGoodsStatusEnum.WAITING)) { GoodsStockUpdDTO goodsStockUpdDTO = new GoodsStockUpdDTO(); goodsStockUpdDTO.setGoodsSkuId(salesroomGoods.getGoodsSkuId()); goodsStockUpdDTO.setAuctionStock(salesroomGoods.getSalesroomStock()); dtoList.add(goodsStockUpdDTO); } GoodsStockUpdDTO goodsStockUpdDTO = new GoodsStockUpdDTO(); goodsStockUpdDTO.setGoodsSkuId(salesroomGoods.getGoodsSkuId()); goodsStockUpdDTO.setAuctionStock(salesroomGoods.getSalesroomStock()); dtoList.add(goodsStockUpdDTO); } // 批量更新商品库存 auctionSalesroomGoodsMapper.updateBatchById(auctionSalesroomGoods); ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/vo/GoodsGroupPurchaseVO.java
@@ -41,6 +41,9 @@ @ApiModelProperty(value = "已购商品数") private Integer buyNumber; @ApiModelProperty(value = "已参团人数") private Integer groupedMemberNumber; @ApiModelProperty(value = "团购开始时间") private LocalDateTime startTime; ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/mapper/GoodsGroupPurchaseMapper.java
@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.goods.controller.management.vo.GoodsGroupPurchaseVO; import com.ruoyi.system.api.domain.GoodsGroupPurchase; import java.util.List; import org.apache.ibatis.annotations.Param; /** @@ -23,4 +24,8 @@ */ Page<GoodsGroupPurchaseVO> getGoodsGroupPurchasePage(@Param("goodsSkuName") String goodsSkuName, @Param("page") Page<GoodsGroupPurchaseVO> page); void updateListingStatusBatch( @Param("listingStatus") Integer listingStatus, @Param("goodsGroupPurchaseList") List<GoodsGroupPurchase> goodsGroupPurchaseList); } ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/mapper/GoodsSeckillMapper.java
@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.goods.controller.management.vo.GoodsSeckillVO; import com.ruoyi.system.api.domain.GoodsSeckill; import java.util.List; import org.apache.ibatis.annotations.Param; /** @@ -18,4 +19,7 @@ Page<GoodsSeckillVO> getGoodsSeckillPage(@Param("goodsSkuName") String goodsSkuName, @Param("page") Page<GoodsSeckillVO> page); void updateListingStatusBatch(@Param("listingStatus") Integer listingStatus, @Param("goodsSeckillList") List<GoodsSeckill> goodsSeckillList); } ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsGroupPurchaseServiceImpl.java
@@ -8,8 +8,12 @@ import com.fasterxml.jackson.databind.ObjectMapper; import com.google.common.collect.Lists; import com.ruoyi.common.core.constant.SecurityConstants; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.enums.*; import com.ruoyi.common.core.enums.ClientTypeEnum; import com.ruoyi.common.core.enums.GroupStatusEnum; import com.ruoyi.common.core.enums.ListingStatusEnum; import com.ruoyi.common.core.enums.OrderFromEnum; import com.ruoyi.common.core.enums.OrderStatusEnum; import com.ruoyi.common.core.enums.StartStatusEnum; import com.ruoyi.common.core.exception.ServiceException; import com.ruoyi.common.core.utils.DateUtils; import com.ruoyi.common.core.utils.StringUtils; @@ -34,7 +38,12 @@ import com.ruoyi.system.api.domain.GoodsSku; import com.ruoyi.system.api.domain.Order; import com.ruoyi.system.api.domain.WebsocketMessageDTO; import com.ruoyi.system.api.domain.dto.*; import com.ruoyi.system.api.domain.dto.GoodsStockUpdDTO; import com.ruoyi.system.api.domain.dto.HomeGoodsSkuDTO; import com.ruoyi.system.api.domain.dto.ListStatusDTO; import com.ruoyi.system.api.domain.dto.OrderDTO; import com.ruoyi.system.api.domain.dto.OrderUpdDTO; import com.ruoyi.system.api.domain.dto.RefundDTO; import com.ruoyi.system.api.domain.vo.GoodsGroupPurchaseInfoVO; import com.ruoyi.system.api.domain.vo.OrderVO; import com.ruoyi.system.api.domain.vo.WdGoodsGroupPurchaseVO; @@ -102,7 +111,7 @@ queryWrapper.eq(GoodsGroupPurchase::getListingStatus, ListingStatusEnum.ON_SHELVES.getCode()); queryWrapper.le(GoodsGroupPurchase::getStartTime, dto.getStartTime()); queryWrapper.ge(GoodsGroupPurchase::getEndTime, dto.getEndTime()); queryWrapper.ge(GoodsGroupPurchase::getEndTime, dto.getStartTime()); long count = this.count(queryWrapper); if (count > 0) { throw new ServiceException("添加失败,当前商品在该时间段内有其他团购活动"); @@ -117,10 +126,6 @@ throw new ServiceException(String.format("团购商品【%s】剩余库存不足,请修改团购库存", goodsSku.getSkuName())); } GoodsStockUpdDTO goodsStockUpdDTO = new GoodsStockUpdDTO(); goodsStockUpdDTO.setAuctionStock(groupPurchaseStock * -1); goodsStockUpdDTO.setGoodsSkuId(goodsSku.getId()); goodsSkuService.updGoodsStock(Lists.newArrayList(goodsStockUpdDTO)); } else { GoodsGroupPurchase groupPurchase = this.getById(dto.getId()); if (StringUtils.isNull(groupPurchase)) { @@ -143,11 +148,6 @@ throw new ServiceException(String.format("团购商品%s剩余库存不足,请修改团购库存", goodsSku.getSkuName())); } GoodsStockUpdDTO goodsStockUpdDTO = new GoodsStockUpdDTO(); goodsStockUpdDTO.setAuctionStock(latestStock); goodsStockUpdDTO.setGoodsSkuId(goodsSku.getId()); goodsSkuService.updGoodsStock(Lists.newArrayList(goodsStockUpdDTO)); this.updateById(goodsGroupPurchase); } if (goodsGroupPurchase.getListingStatus().equals(ListingStatusEnum.ON_SHELVES)) { asyncMethodService.groupPurchaseScheduleTask(Lists.newArrayList(goodsGroupPurchase)); @@ -172,6 +172,12 @@ Integer num = orderClient.getGroupPurchasesGoodsNum(groupPurchase.getId(), SecurityConstants.INNER).getData(); vo.setBuyNumber(num); List<GoodsGroupPurchaseInfo> list = goodsGroupPurchaseInfoService.lambdaQuery() .eq(GoodsGroupPurchaseInfo::getGroupPurchaseId, id).list(); Integer count = list.stream().map(GoodsGroupPurchaseInfo::getCurrentNumber) .reduce(Integer::sum) .orElse(0); vo.setGroupedMemberNumber(count); return vo; } ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsSeckillServiceImpl.java
@@ -109,7 +109,7 @@ .ne(GoodsSeckill::getStartStatus, StartStatusEnum.ENDED) .eq(GoodsSeckill::getListingStatus, ListingStatusEnum.ON_SHELVES) .le(GoodsSeckill::getStartTime, dto.getStartTime()) .ge(GoodsSeckill::getEndTime, dto.getEndTime()).list(); .ge(GoodsSeckill::getEndTime, dto.getStartTime()).list(); Set<Long> existGoodsSkuIdSet = list.stream().map(GoodsSeckill::getGoodsSkuId) .collect(Collectors.toSet()); if (!existGoodsSkuIdSet.isEmpty()) { @@ -125,7 +125,8 @@ return goodsSkuMap.get(item.getGoodsSkuId()); }).filter(Objects::nonNull) .collect(Collectors.joining(",")); throw new ServiceException("添加失败,当前商品在该时间段内有其他秒杀活动"); throw new ServiceException( String.format("添加失败,商品%s在该时间段内有其他秒杀活动", goodsSkuNames)); } } this.saveBatch(goodsSeckills); ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/GoodsSkuServiceImpl.java
@@ -29,7 +29,14 @@ import com.ruoyi.goods.service.IGoodsInfoTitleValueService; import com.ruoyi.goods.service.IGoodsSkuService; import com.ruoyi.goods.service.IMemberGoodsCollectionService; import com.ruoyi.system.api.domain.*; import com.ruoyi.system.api.domain.GoodsBrand; import com.ruoyi.system.api.domain.GoodsCategory; import com.ruoyi.system.api.domain.GoodsFlavorType; import com.ruoyi.system.api.domain.GoodsGroupPurchase; import com.ruoyi.system.api.domain.GoodsSeckill; import com.ruoyi.system.api.domain.GoodsSeries; import com.ruoyi.system.api.domain.GoodsSku; import com.ruoyi.system.api.domain.Order; import com.ruoyi.system.api.domain.dto.GoodsStockUpdDTO; import com.ruoyi.system.api.domain.dto.HomeGoodsSkuDTO; import com.ruoyi.system.api.domain.dto.ListStatusDTO; @@ -48,6 +55,7 @@ import java.util.List; import java.util.Objects; import java.util.concurrent.TimeUnit; import java.util.stream.Collectors; import javax.annotation.Resource; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -225,20 +233,25 @@ .eq(GoodsSeckill::getGoodsSkuId, dto.getId()); List<GoodsSeckill> goodsSeckillList = goodsSeckillMapper.selectList(queryWrapper); if (StringUtils.isNotNull(goodsSeckillList)) { for (GoodsSeckill goodsSeckill : goodsSeckillList) { goodsSeckillList = goodsSeckillList.stream().peek(goodsSeckill -> { goodsSeckill.setListingStatus(ListingStatusEnum.REMOVED_FROM_THE_SHELF); goodsSeckillMapper.updateById(goodsSeckill); } }).collect(Collectors.toList()); goodsSeckillMapper.updateListingStatusBatch( ListingStatusEnum.REMOVED_FROM_THE_SHELF.getCode(), goodsSeckillList); } LambdaQueryWrapper<GoodsGroupPurchase> queryWrapper1 =new LambdaQueryWrapper<>(); queryWrapper1.eq(GoodsGroupPurchase::getListingStatus, ListingStatusEnum.ON_SHELVES) .eq(GoodsGroupPurchase::getGoodsSkuId, dto.getId()); GoodsGroupPurchase goodsGroupPurchase = goodsGroupPurchaseMapper.selectOne(queryWrapper1); if (StringUtils.isNotNull(goodsGroupPurchase)) { goodsGroupPurchase.setListingStatus(ListingStatusEnum.REMOVED_FROM_THE_SHELF); goodsGroupPurchaseMapper.updateById(goodsGroupPurchase); List<GoodsGroupPurchase> goodsGroupPurchaseList = goodsGroupPurchaseMapper.selectList( queryWrapper1); if (CollUtils.isNotEmpty(goodsGroupPurchaseList)) { goodsGroupPurchaseList = goodsGroupPurchaseList.stream().peek(goodsGroupPurchase -> { goodsGroupPurchase.setListingStatus(ListingStatusEnum.REMOVED_FROM_THE_SHELF); }).collect(Collectors.toList()); goodsGroupPurchaseMapper.updateListingStatusBatch( ListingStatusEnum.REMOVED_FROM_THE_SHELF.getCode(), goodsGroupPurchaseList); } } ruoyi-modules/ruoyi-goods/src/main/resources/mapper/goods/GoodsGroupPurchaseMapper.xml
@@ -1,6 +1,18 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.ruoyi.goods.mapper.GoodsGroupPurchaseMapper"> <update id="updateListingStatusBatch"> UPDATE t_goods_group_purchase SET listing_status = #{listingStatus} <where> <if test="goodsGroupPurchaseList != null and goodsGroupPurchaseList.size() > 0"> id IN <foreach collection="goodsGroupPurchaseList" item="item" open="(" separator="," close=")"> #{item.id} </foreach> </if> </where> </update> <select id="getGoodsGroupPurchasePage" resultType="com.ruoyi.goods.controller.management.vo.GoodsGroupPurchaseVO"> @@ -17,4 +29,5 @@ </where> ORDER BY tgp.create_time DESC </select> </mapper> ruoyi-modules/ruoyi-goods/src/main/resources/mapper/goods/GoodsInfoTitleValueMapper.xml
@@ -21,7 +21,7 @@ </select> <select id="listByGoodsId" <select id="listByGoodsId1" resultType="com.ruoyi.system.api.domain.vo.GoodsInfoTitleValueVO" parameterType="java.lang.Long"> SELECT titv.goods_info_title_id, ruoyi-modules/ruoyi-goods/src/main/resources/mapper/goods/GoodsSeckillMapper.xml
@@ -1,6 +1,18 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.ruoyi.goods.mapper.GoodsSeckillMapper"> <update id="updateListingStatusBatch"> UPDATE t_goods_seckill SET listing_status = #{listingStatus} <where> <if test="goodsSeckillList != null and goodsSeckillList.size() > 0"> id IN <foreach collection="goodsSeckillList" item="item" open="(" separator="," close=")"> #{item.id} </foreach> </if> </where> </update> <select id="getGoodsSeckillPage" resultType="com.ruoyi.goods.controller.management.vo.GoodsSeckillVO"> SELECT ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderReturnRequestServiceImpl.java
@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.common.core.constant.SecurityConstants; import com.ruoyi.common.core.enums.AuditStatusEnum; import com.ruoyi.common.core.enums.CouponUseEnum; import com.ruoyi.common.core.enums.OrderStatusEnum; import com.ruoyi.common.core.enums.PaymentMethodEnum; import com.ruoyi.common.core.enums.PointStatusEnum; @@ -27,6 +28,7 @@ import com.ruoyi.system.api.domain.CustomConfig; import com.ruoyi.system.api.domain.Member; import com.ruoyi.system.api.domain.Order; import com.ruoyi.system.api.domain.dto.CouponMemberDTO; import com.ruoyi.system.api.domain.dto.LogisticsDTO; import com.ruoyi.system.api.domain.dto.MemberDTO; import com.ruoyi.system.api.domain.dto.MemberPointsDTO; @@ -35,6 +37,7 @@ import com.ruoyi.system.api.domain.vo.Express100VO; import com.ruoyi.system.api.domain.vo.OrderReturnVO; import com.ruoyi.system.api.feignClient.MemberClient; import com.ruoyi.system.api.feignClient.PromotionClient; import com.ruoyi.system.api.feignClient.SysUserClient; import io.seata.spring.annotation.GlobalTransactional; import java.time.LocalDateTime; @@ -73,6 +76,10 @@ private LogisticsServiceImpl logisticsService; @Resource private PaylogServiceImpl paylogService; @Resource private PromotionClient promotionClient; @Override public OrderReturnVO saveOrderReturnRequest(OrderReturnDTO OrderReturnDTO) { @@ -330,6 +337,12 @@ updMembeOneDTO.setTotalPoints(Math.max(member.getTotalPoints() - order.getPoints(), 0)); memberClient.updMembeOne(updMembeOneDTO, SecurityConstants.INNER); } if (Objects.nonNull(order.getCouponId())) { CouponMemberDTO dto = new CouponMemberDTO(); dto.setId(order.getCouponId()); dto.setCouponStatus(CouponUseEnum.UNUSED.getCode()); promotionClient.updCouponMember(dto, SecurityConstants.INNER); } } private boolean handleRefund(PaymentMethodEnum paymentMethod, Paylog paylog, String orderNo) { ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java
@@ -8,6 +8,17 @@ import com.ruoyi.common.core.constant.CacheConstants; import com.ruoyi.common.core.constant.SecurityConstants; import com.ruoyi.common.core.enums.*; import com.ruoyi.common.core.enums.AuctionOrderTypeEnum; import com.ruoyi.common.core.enums.AuditStatusEnum; import com.ruoyi.common.core.enums.BondStatusEnum; import com.ruoyi.common.core.enums.CouponUseEnum; import com.ruoyi.common.core.enums.OrderFromEnum; import com.ruoyi.common.core.enums.OrderStatusEnum; import com.ruoyi.common.core.enums.OrderTypeEnum; import com.ruoyi.common.core.enums.PaymentMethodEnum; import com.ruoyi.common.core.enums.PointStatusEnum; import com.ruoyi.common.core.enums.RequestTypeEnum; import com.ruoyi.common.core.enums.ReturnRequestStatusEnum; import com.ruoyi.common.core.exception.ServiceException; import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.core.utils.page.BeanUtils; @@ -18,7 +29,6 @@ import com.ruoyi.order.controller.management.dto.MgtOrderQuery; import com.ruoyi.order.controller.management.vo.MgtOrderReturnRequestVO; import com.ruoyi.order.controller.management.vo.MgtOrderVO; import com.ruoyi.order.domain.MemberInvoiceOrder; import com.ruoyi.order.domain.OrderReturnRequest; import com.ruoyi.order.domain.Paylog; import com.ruoyi.order.mapper.OrderAuctionBondMapper; @@ -69,6 +79,7 @@ import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Objects; import java.util.Set; import java.util.concurrent.TimeUnit; import java.util.function.Function; @@ -228,7 +239,7 @@ */ @Override public Integer getGroupPurchasesGoodsNum(Long id) { List<Order> list = this.lambdaQuery().eq(Order::getId, id) List<Order> list = this.lambdaQuery().eq(Order::getGoodsSkuId, id) .in(Order::getOrderStatus, OrderStatusEnum.TO_BE_SHIPPED, OrderStatusEnum.GOODS_TO_BE_RECEIVED, OrderStatusEnum.FINISHED).list(); return list.stream().map(Order::getGoodsQuantity).reduce(0, Integer::sum); @@ -1655,6 +1666,12 @@ updMembeOneDTO.setTotalPoints(Math.max(member.getTotalPoints() - order.getPoints(), 0)); memberClient.updMembeOne(updMembeOneDTO, SecurityConstants.INNER); } if (Objects.nonNull(order.getCouponId())) { CouponMemberDTO dto = new CouponMemberDTO(); dto.setId(order.getCouponId()); dto.setCouponStatus(CouponUseEnum.UNUSED.getCode()); promotionClient.updCouponMember(dto, SecurityConstants.INNER); } } private boolean handleRefund(PaymentMethodEnum paymentMethod, Paylog paylog, String orderNo) { ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java
@@ -189,6 +189,7 @@ userService.checkUserDataScope(user.getUserId()); SysUser sysUser = userService.getOne(Wrappers.lambdaQuery(SysUser.class) .eq(SysUser::getPhonenumber, user.getPhonenumber()) .in(SysUser::getUserType, "00", "01", "04") .eq(SysUser::getDelFlag,0) .last("LIMIT 1")); ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
@@ -130,7 +130,7 @@ from sys_user where phonenumber = #{phonenumber} and del_flag = '0' and user_type in ('00', '04') and user_type in ('00', '01', '04') limit 1 </select>