package com.ruoyi.order.service.impl; 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.baomidou.mybatisplus.extension.service.impl.ServiceImpl; 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.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.GroupStatusEnum; 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; import com.ruoyi.common.core.utils.page.CollUtils; import com.ruoyi.common.core.utils.page.PageDTO; import com.ruoyi.common.redis.service.RedisService; import com.ruoyi.order.controller.management.dto.MgtOrderConfirmShipmentDTO; 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.OrderReturnRequest; import com.ruoyi.order.domain.Paylog; import com.ruoyi.order.mapper.OrderAuctionBondMapper; import com.ruoyi.order.mapper.OrderMapper; import com.ruoyi.order.service.ILogisticsService; import com.ruoyi.order.service.IOrderReturnRequestService; import com.ruoyi.order.service.IOrderService; import com.ruoyi.order.service.IPaylogService; import com.ruoyi.order.util.OrderUtil; import com.ruoyi.order.util.SinataUtil; import com.ruoyi.order.vo.HomeGoodsSkuDTO1; import com.ruoyi.order.vo.WdOrderVO; import com.ruoyi.system.api.constants.DelayTaskEnum; 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; import com.ruoyi.system.api.domain.dto.LogisticsDTO; import com.ruoyi.system.api.domain.dto.MemberDTO; import com.ruoyi.system.api.domain.dto.MemberOrderDTO; import com.ruoyi.system.api.domain.dto.MemberOrderListDTO; import com.ruoyi.system.api.domain.dto.MemberPointsDTO; import com.ruoyi.system.api.domain.dto.MgtAfterSaleSettingDTO; import com.ruoyi.system.api.domain.dto.OrderDTO; import com.ruoyi.system.api.domain.dto.updMembeOneDTO; import com.ruoyi.system.api.domain.vo.Express100VO; import com.ruoyi.system.api.domain.vo.MemberOrderListVO; import com.ruoyi.system.api.domain.vo.MemberOrderNumVO; import com.ruoyi.system.api.domain.vo.MemberTiOrderVO; import com.ruoyi.system.api.domain.vo.OrderVO; import com.ruoyi.system.api.feignClient.AuctionClient; import com.ruoyi.system.api.feignClient.GoodsSkuClient; 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.math.BigDecimal; import java.math.RoundingMode; import java.time.LocalDateTime; import java.util.Collection; import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Objects; import java.util.Optional; import java.util.Set; import java.util.concurrent.TimeUnit; import java.util.function.Function; import java.util.regex.Matcher; import java.util.regex.Pattern; import java.util.stream.Collectors; import javax.annotation.Resource; import lombok.Synchronized; import org.apache.commons.collections.map.HashedMap; import org.redisson.api.RLock; import org.redisson.api.RedissonClient; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; /** *

* 订单表 服务实现类 *

* * @author mitao * @since 2024-05-16 */ @Service @SuppressWarnings("unchecked") public class OrderServiceImpl extends ServiceImpl implements IOrderService { @Resource private GoodsSkuClient goodsSkuClient; @Resource private MemberClient memberClient; @Resource private PromotionClient promotionClient; @Resource private OrderAuctionBondMapper orderAuctionBondMapper; @Resource private IPaylogService iPaylogService; @Resource private PaylogServiceImpl paylogService; @Resource private SysUserClient sysUserClient; @Resource private IOrderReturnRequestService orderReturnRequestService; @Resource private RedissonClient redissonClient; @Resource private RedisService redisService; @Resource private ILogisticsService logisticsService; @Resource private AuctionClient auctionClient; @Resource private GoodsSkuClient GoodsSkuClient; @Override public void saveOrderOne(OrderDTO OrderDTO) { Order order=new Order(); if (OrderDTO.getOrderFrom().getCode()==1){ order.setOrderFrom(OrderFromEnum.COMMODITY_ORDER); order.setOrderNo(OrderUtil.getOrderNoForPrefix("SP")); order.setIsOrder(1); } if (OrderDTO.getOrderFrom().getCode()==2){ order.setOrderFrom(OrderFromEnum.SNAP_ORDERS); order.setOrderNo(OrderUtil.getOrderNoForPrefix("MS")); order.setIsOrder(1); } if (OrderDTO.getOrderFrom().getCode()==3){ order.setOrderFrom(OrderFromEnum.GROUP_PURCHASE_ORDERS); order.setOrderNo(OrderUtil.getOrderNoForPrefix("TG")); order.setIsOrder(2); }if (OrderDTO.getOrderFrom().getCode()==4){ order.setOrderFrom(OrderFromEnum.AUCTION_ORDERS); order.setOrderNo(OrderUtil.getOrderNoForPrefix("PM")); order.setIsOrder(1); if (OrderDTO.getAuctionType().equals(AuctionOrderTypeEnum.AUCTION_ITEMS)) { order.setAuctionSalesroomId(OrderDTO.getAuctionSalesroomId()); } } order.setOrderTime(OrderDTO.getOrderTime()); order.setOrderFrom(OrderDTO.getOrderFrom()); order.setAuctionOrderType(OrderDTO.getAuctionType()); order.setGoodsSkuId(OrderDTO.getGoodsSkuId()); order.setMemberId(OrderDTO.getMemberId()); order.setTotalAmount(OrderDTO.getTotalAmount()); order.setOrderStatus(OrderStatusEnum.TO_PLAY); order.setPoints(OrderDTO.getPoints()); order.setGoodsQuantity(1); order.setReceiverName(OrderDTO.getReceiverName()); order.setReceiverPhone(OrderDTO.getReceiverphone()); order.setReceiverCity(OrderDTO.getReceiverCity()); order.setReceiverDetailAddress(OrderDTO.getReceiverDetailAddress()); order.setBound(OrderDTO.getBound()); order.setSkuName(OrderDTO.getSkuName()); order.setPrice(OrderDTO.getPrice()); order.setCoverPic(OrderDTO.getCoverPic()); order.setOrderTimeSx(OrderDTO.getOrderTimeSx()); this.save(order); if (OrderDTO.getOrderFrom().getCode()==4){ if (OrderDTO.getAuctionType().getCode()==1){ LambdaQueryWrapper wrapper= Wrappers.lambdaQuery(); wrapper.eq(OrderAuctionBond::getMemberId,OrderDTO.getMemberId()); wrapper.eq(OrderAuctionBond::getAuctionGoodsId,OrderDTO.getGoodsSkuId()); wrapper.eq(OrderAuctionBond::getBoundStatus,2); wrapper.eq(OrderAuctionBond::getBondType,1); OrderAuctionBond orderAuctionBond = orderAuctionBondMapper.selectOne(wrapper); orderAuctionBond.setOrderId(order.getId()); orderAuctionBondMapper.updateById(orderAuctionBond); } if (OrderDTO.getAuctionType().getCode()==2){ LambdaQueryWrapper wrapper= Wrappers.lambdaQuery(); wrapper.eq(OrderAuctionBond::getMemberId,OrderDTO.getMemberId()); wrapper.eq(OrderAuctionBond::getBoundStatus,2); wrapper.eq(OrderAuctionBond::getAuctionSalesroomId,OrderDTO.getAuctionSalesroomId()); wrapper.eq(OrderAuctionBond::getBondType,2); OrderAuctionBond orderAuctionBond = orderAuctionBondMapper.selectOne(wrapper); if (orderAuctionBond!=null){ orderAuctionBond.setOrderId(order.getId()); orderAuctionBondMapper.updateById(orderAuctionBond); } } } } /** * 获取某个商品的已购会员数 * * @param id 秒杀商品id * @return 已购会员数 */ @Override public Integer getSeckillMembers(Long id) { return baseMapper.getSeckillMembers(id); } /** * 获取团购商品已购数量 * * @param id 团购商品id * @return 团购商品已购数量 */ @Override public Integer getGroupPurchasesGoodsNum(Long id) { List 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); } /** * 根据团购商品id获取团购商品订单 * * @param id 团购商品id * @return 订单列表 */ @Override public List getOrderByGroupPurchaseId(Long id) { return baseMapper.getOrderByGroupPurchaseId(id); } @Override public Order getOrderByGroupPurchaseMemberId(HomeGoodsSkuDTO homeGoodsSkuDTO) { return baseMapper.getOrderByGroupPurchaseMemberId(homeGoodsSkuDTO); } @Override public Order getOrderByGroupPurchaseMemberId1(HomeGoodsSkuDTO homeGoodsSkuDTO) { return baseMapper.getOrderByGroupPurchaseMemberId1(homeGoodsSkuDTO); } @Override public Order getOrderByGroupPurchaseMemberId2(HomeGoodsSkuDTO homeGoodsSkuDTO) { return baseMapper.getOrderByGroupPurchaseMemberId2(homeGoodsSkuDTO); } @Override public List getOrderByGroupPurchaseMemberList(HomeGoodsSkuDTO homeGoodsSkuDTO) { return baseMapper.getOrderByGroupPurchaseMemberList(homeGoodsSkuDTO); } @Override public List getOrderByGroupPurchaseMemberList1(HomeGoodsSkuDTO homeGoodsSkuDTO) { return null; } @Override @Synchronized public MemberTiOrderVO saveMemberOrder(MemberOrderDTO memberOrderDTO) { MemberTiOrderVO memberOrderVO=new MemberTiOrderVO(); BigDecimal pice=new BigDecimal(0); Order order=new Order(); order.setMemberId(memberOrderDTO.getMemberId()); if (memberOrderDTO.getOrderFrom()==1){ order.setOrderFrom(OrderFromEnum.COMMODITY_ORDER); order.setOrderNo(OrderUtil.getOrderNoForPrefix("SP")); } if (memberOrderDTO.getOrderFrom()==2){ order.setOrderFrom(OrderFromEnum.SNAP_ORDERS); order.setOrderNo(OrderUtil.getOrderNoForPrefix("MS")); } if (memberOrderDTO.getOrderFrom()==3){ order.setOrderFrom(OrderFromEnum.GROUP_PURCHASE_ORDERS); order.setOrderNo(OrderUtil.getOrderNoForPrefix("TG")); order.setIsOrder(2); } if (memberOrderDTO.getPaymentMethod()==1){ order.setPaymentMethod(PaymentMethodEnum.WECHAT); }if (memberOrderDTO.getPaymentMethod()==2){ order.setPaymentMethod(PaymentMethodEnum.ALIPAY); } if (memberOrderDTO.getOrderFrom()==1){ GoodsSku goodsSku = goodsSkuClient.getGoodsSkuOne(memberOrderDTO.getGoodsSkuId(), SecurityConstants.INNER).getData(); if (goodsSku.getListingStatus().getCode()==1){ throw new ServiceException("该商品已经下架"); } if (goodsSku.getStock()data.getGroupSize()){ throw new ServiceException("对不起,大成团人数"); }*/ GoodsSku goodsSku = goodsSkuClient.getGoodsSkuOne(data.getGoodsSkuId(), SecurityConstants.INNER).getData(); memberOrderVO.setGoodsSkuId(memberOrderDTO.getGoodsSkuId()); memberOrderVO.setPrice(data.getGroupPurchasePrice()); memberOrderVO.setSjPrice(goodsSku.getPrice()); memberOrderVO.setCoverPic(goodsSku.getCoverPic()); memberOrderVO.setSkuName(goodsSku.getSkuName()); memberOrderVO.setYouhiPrice(data.getGroupPurchasePrice()); pice=data.getGroupPurchasePrice(); order.setSkuName(goodsSku.getSkuName()); order.setPrice(data.getGroupPurchasePrice()); order.setCoverPic(goodsSku.getCoverPic()); order.setSjPrice(goodsSku.getPrice()); } order.setOrderRemark(memberOrderDTO.getOrderRemark()); order.setMemberId(memberOrderDTO.getMemberId()); order.setGoodsQuantity(memberOrderDTO.getGoodsQuantity()); order.setOrderTime(LocalDateTime.now()); order.setGoodsQuantity(memberOrderDTO.getGoodsQuantity()); order.setTotalAmount(pice.multiply(new BigDecimal(memberOrderDTO.getGoodsQuantity()))); CustomConfig memberPointsMoney = sysUserClient.getconfig("MEMBER_POINTS_MONEY").getData(); CustomConfig memberPointsPoints = sysUserClient.getconfig("MEMBER_POINTS_POINTS").getData(); BigDecimal pic=pice.multiply(new BigDecimal(memberOrderDTO.getGoodsQuantity())); BigDecimal divide = pic.divide(new BigDecimal(memberPointsMoney.getConfigValue())); BigDecimal roundedDown = divide.setScale(0, RoundingMode.DOWN); BigDecimal aDouble= roundedDown.multiply(new BigDecimal(memberPointsPoints.getConfigValue())); order.setPoints(aDouble.intValue()); order.setOrderStatus(OrderStatusEnum.TO_PLAY); MemberAddress data = memberClient.getMemberAddressOne( memberOrderDTO.getMemberId(), SecurityConstants.INNER).getData(); if (StringUtils.isNotNull(data)) { order.setReceiverName(data.getRecipientName()); order.setReceiverCity(data.getReceiverCity()); order.setReceiverDetailAddress(data.getDetailedAddress()); order.setReceiverPhone(data.getRecipientPhone()); memberOrderVO.setReceiverName(data.getRecipientName()); memberOrderVO.setReceiverCity(data.getReceiverCity()); memberOrderVO.setReceiverDetailAddress(data.getDetailedAddress()); memberOrderVO.setReceiverphone(data.getRecipientPhone()); } order.setGoodsSkuId(memberOrderDTO.getGoodsSkuId()); baseMapper.insert(order); memberOrderVO.setId(order.getId()); memberOrderVO.setOrderStatus(OrderStatusEnum.TO_PLAY); memberOrderVO.setOrderNo(order.getOrderNo()); memberOrderVO.setGoodsSkuId(memberOrderDTO.getGoodsSkuId()); memberOrderVO.setOrderTime(order.getOrderTime()); memberOrderVO.setOrderFrom(order.getOrderFrom()); memberOrderVO.setMemberId(memberOrderDTO.getMemberId()); memberOrderVO.setPaymentMethod(order.getPaymentMethod()); memberOrderVO.setTotalAmount(order.getTotalAmount()); memberOrderVO.setOrderStatus(order.getOrderStatus()); memberOrderVO.setGoodsQuantity(order.getGoodsQuantity()); memberOrderVO.setReceiverName(order.getReceiverName()); memberOrderVO.setReceiverCity(order.getReceiverCity()); memberOrderVO.setReceiverDetailAddress(order.getReceiverDetailAddress()); memberOrderVO.setReceiverphone(order.getReceiverPhone()); Integer delayTime = 30; redisService.setCacheObject(DelayTaskEnum.ORDER_AUTOMATIC_CANCEL.getCode() + "-" + order.getId(), order.getId() , delayTime.longValue(), TimeUnit.MINUTES); DelayTask delayTask = new DelayTask(); delayTask.setDelFlag(0); delayTask.setCreateTime(LocalDateTime.now()); delayTask.setExecuteTime(LocalDateTime.now().plusMinutes(30)); delayTask.setRedisKey(DelayTaskEnum.ORDER_AUTOMATIC_CANCEL.getCode() + "-" + order.getId()); sysUserClient.addDelayTask(delayTask, SecurityConstants.INNER); return memberOrderVO; } @Override public MemberTiOrderVO updMemberOrder(MemberOrderDTO memberOrderDTO) { Order order = baseMapper.selectById(memberOrderDTO.getId()); if(memberOrderDTO.getOrderRemark()!=null){ order.setOrderRemark(memberOrderDTO.getOrderRemark()); } MemberTiOrderVO memberOrderVO=new MemberTiOrderVO(); if (memberOrderDTO.getReceiverDetailAddress()!=null){ order.setReceiverName(memberOrderDTO.getReceiverName()); order.setReceiverCity(memberOrderDTO.getReceiverCity()); order.setReceiverDetailAddress(memberOrderDTO.getReceiverDetailAddress()); order.setReceiverPhone(memberOrderDTO.getReceiverphone()); baseMapper.updateById(order); } if (memberOrderDTO.getOrderRemark()!=null){ order.setOrderRemark(memberOrderDTO.getOrderRemark()); }if (memberOrderDTO.getGoodsQuantity()!=null){ if (order.getOrderFrom().getCode()==1){ GoodsSku goodsSku = goodsSkuClient.getGoodsSkuOne(order.getGoodsSkuId(), SecurityConstants.INNER).getData(); if (goodsSku.getStock()+order.getGoodsQuantity()=data.getFullReductionAmount().doubleValue()){ pice=pice.subtract(data.getReductionAmount()); order.setDiscountMoney(data.getReductionAmount()); }else{ order.setDiscountMoney(pice); pice=new BigDecimal(0); } } if (data.getCouponType().getCode()==2){ pice= order.getTotalAmount(); if(pice.compareTo(data.getVoucherAmount())<0){ order.setDiscountMoney(pice); pice=new BigDecimal(0); }else{ pice=pice.subtract(data.getVoucherAmount()); order.setDiscountMoney(data.getVoucherAmount()); } } if (data.getCouponType().getCode()==3){ pice= order.getTotalAmount(); BigDecimal pice1=new BigDecimal(data.getDiscountRate()); BigDecimal pice2=new BigDecimal(0.1); BigDecimal pice3=pice.multiply(pice1.multiply(pice2)); if (data.getMaxDiscount()!=null){ if (pice3.compareTo(new BigDecimal(data.getMaxDiscount().doubleValue()))>0){ pice3=new BigDecimal(data.getMaxDiscount().doubleValue()); } } if(pice.compareTo(pice3)>0){ BigDecimal pice4= pice.subtract(pice3); if (data.getMaxDiscount()!=null){ if (pice4.doubleValue()>data.getMaxDiscount().doubleValue()){ pice=pice.subtract(data.getMaxDiscount()); order.setDiscountMoney(data.getMaxDiscount()); }else{ order.setDiscountMoney(pice4); pice=pice3; } }else{ order.setDiscountMoney(pice.subtract(pice3)); pice=pice3; } }else{ order.setDiscountMoney(pice); pice=new BigDecimal(0); } } order.setCouponId(memberOrderDTO.getCouponId()); CouponMemberDTO couponMemberDTO2=new CouponMemberDTO(); couponMemberDTO2.setId(memberOrderDTO.getCouponId()); couponMemberDTO2.setCouponStatus(1); promotionClient.updCouponMember(couponMemberDTO2, SecurityConstants.INNER); }else{ if (order.getCouponId()!=null&&order.getCouponId()!=0){ CouponMemberDTO couponMemberDTO1=new CouponMemberDTO(); couponMemberDTO1.setCouponStatus(0); couponMemberDTO1.setId(order.getCouponId()); promotionClient.updCouponMember(couponMemberDTO1, SecurityConstants.INNER); } order.setCouponId(0L); order.setDiscountMoney(new BigDecimal(0)); } order.setTotalAmount(pice); CustomConfig memberPointsMoney = sysUserClient.getconfig("MEMBER_POINTS_MONEY").getData(); CustomConfig memberPointsPoints = sysUserClient.getconfig("MEMBER_POINTS_POINTS").getData(); if (pice.doubleValue()>0){ BigDecimal divide = pice.divide(new BigDecimal(memberPointsMoney.getConfigValue())); BigDecimal roundedDown = divide.setScale(0, RoundingMode.DOWN); BigDecimal aDouble= roundedDown.multiply(new BigDecimal(memberPointsPoints.getConfigValue())); order.setPoints(aDouble.intValue()); }else{ order.setPoints(0); } baseMapper.updateById(order); } memberOrderVO.setId(order.getId()); memberOrderVO.setOrderStatus(OrderStatusEnum.TO_PLAY); memberOrderVO.setOrderNo(order.getOrderNo()); memberOrderVO.setGoodsSkuId(memberOrderDTO.getGoodsSkuId()); memberOrderVO.setOrderTime(order.getOrderTime()); memberOrderVO.setOrderFrom(order.getOrderFrom()); memberOrderVO.setMemberId(memberOrderDTO.getMemberId()); memberOrderVO.setPaymentMethod(order.getPaymentMethod()); memberOrderVO.setTotalAmount(order.getTotalAmount()); memberOrderVO.setOrderStatus(order.getOrderStatus()); memberOrderVO.setGoodsQuantity(order.getGoodsQuantity()); memberOrderVO.setReceiverName(order.getReceiverName()); memberOrderVO.setReceiverCity(order.getReceiverCity()); memberOrderVO.setReceiverDetailAddress(order.getReceiverDetailAddress()); memberOrderVO.setReceiverphone(order.getReceiverPhone()); memberOrderVO.setDiscountMoney(order.getDiscountMoney()); return memberOrderVO; } @Override public void updMemberOrderbz(MemberOrderDTO memberOrderDTO) { Order order = baseMapper.selectById(memberOrderDTO.getId()); if(memberOrderDTO.getOrderRemark()!=null){ order.setOrderRemark(memberOrderDTO.getOrderRemark()); } baseMapper.updateById(order); } @Override public PageDTO MemberrderList(MemberOrderListDTO memberOrderListDTO) { Page page = new Page<>(memberOrderListDTO.getPageCurr(), memberOrderListDTO.getPageSize()); LambdaQueryWrapper wrapper= Wrappers.lambdaQuery(); wrapper.eq(Order::getMemberId,memberOrderListDTO.getMemberId()); if(memberOrderListDTO.getGoodsSkuName()!=null&&memberOrderListDTO.getGoodsSkuName()!=""){ wrapper.like(Order::getSkuName,memberOrderListDTO.getGoodsSkuName()); } if(memberOrderListDTO.getOrderNo()!=null){ wrapper.like(Order::getOrderNo,memberOrderListDTO.getOrderNo()); } if(memberOrderListDTO.getOrderStatus()!=null){ wrapper.eq(Order::getOrderStatus,memberOrderListDTO.getOrderStatus().getCode()-1); } if(memberOrderListDTO.getIsRequest()!=null){ wrapper.eq(Order::getIsRequest,memberOrderListDTO.getIsRequest()); } wrapper.eq(Order::getIsOrder,1); wrapper.eq(Order::getDelFlag,0); wrapper.orderByDesc(Order::getCreateTime); Page page1 = this.page(page, wrapper); PageDTO memberOrderListVOPageDTO = PageDTO.of(page1, MemberOrderListVO.class); List list = memberOrderListVOPageDTO.getList(); for (MemberOrderListVO MemberOrderList:list){ if (MemberOrderList.getOrderStatus().getCode()==1){ if (MemberOrderList.getOrderFrom().getCode()==1||MemberOrderList.getOrderFrom().getCode()==2||MemberOrderList.getOrderFrom().getCode()==3){ LocalDateTime localDateTime = MemberOrderList.getOrderTime().plusMinutes(30); if (LocalDateTime.now().isAfter(localDateTime)) { // dateTime1 在 dateTime2 之后 MemberOrderList.setOrderStatus(OrderStatusEnum.CANCELED); Order order = this.getOrder(MemberOrderList.getId()); order.setOrderStatus(OrderStatusEnum.CANCELED); if (order.getCouponId()!=0){ CouponMemberDTO couponMemberDTO1=new CouponMemberDTO(); couponMemberDTO1.setId(order.getCouponId()); couponMemberDTO1.setCouponStatus(0); promotionClient.updCouponMember(couponMemberDTO1, SecurityConstants.INNER); } if(order.getOrderNo().contains("SP")){ GoodsSku goodsSku = goodsSkuClient.getGoodsSkuOne(order.getGoodsSkuId(), SecurityConstants.INNER).getData(); GoodsStockUpdDTO goodsStockUpdDTO1 = new GoodsStockUpdDTO(); goodsStockUpdDTO1.setGoodsSkuId(order.getGoodsSkuId()); goodsStockUpdDTO1.setAuctionStock(goodsSku.getStock()+order.getGoodsQuantity()); if (goodsSku.getSoldQuantity()-order.getGoodsQuantity()<0){ goodsStockUpdDTO1.setSoldQuantity(0); }else { goodsStockUpdDTO1.setSoldQuantity(goodsSku.getSoldQuantity()-order.getGoodsQuantity()); } goodsSkuClient.updGoodsStock1(goodsStockUpdDTO1,SecurityConstants.INNER); } if(order.getOrderNo().contains("MS")){ GoodsSeckill data = goodsSkuClient.getGoodsSeckillOne(order.getGoodsSkuId(), SecurityConstants.INNER).getData(); GoodsStockUpdDTO goodsStockUpdDTO1 = new GoodsStockUpdDTO(); goodsStockUpdDTO1.setGoodsSkuId(order.getGoodsSkuId()); goodsStockUpdDTO1.setAuctionStock(data.getSeckillStock()+order.getGoodsQuantity()); if (data.getSoldQuantity()-order.getGoodsQuantity()<0){ goodsStockUpdDTO1.setSoldQuantity(0); }else { goodsStockUpdDTO1.setSoldQuantity(data.getSoldQuantity()-order.getGoodsQuantity()); } goodsSkuClient.updGoodsSeckill(goodsStockUpdDTO1,SecurityConstants.INNER); } this.updateById(order); } } } OrderReturnRequest orderReturnRequest = orderReturnRequestService.getOne( Wrappers.lambdaQuery(OrderReturnRequest.class) .eq(OrderReturnRequest::getOrderId, MemberOrderList.getId()).last("limit 1")); if (StringUtils.isNotNull(orderReturnRequest)&&orderReturnRequest!=null) { MemberOrderList.setStatus(orderReturnRequest.getStatus()); MemberOrderList.setRequestId(orderReturnRequest.getId()); MemberOrderList.setIsRequest(2); }else{ MemberOrderList.setIsRequest(1); } LambdaQueryWrapper wrapper3= Wrappers.lambdaQuery(); wrapper3.eq(OrderAuctionBond::getOrderId,MemberOrderList.getId()); OrderAuctionBond orderAuctionBond = orderAuctionBondMapper.selectOne(wrapper3); if (orderAuctionBond!=null){ if (orderAuctionBond.getBoundStatus().getCode()==1||orderAuctionBond.getBoundStatus().getCode()==2){ MemberOrderList.setIsAuctionBond(1); }else{ MemberOrderList.setIsAuctionBond(2); } }else { MemberOrderList.setIsAuctionBond(1); } CustomConfig memberPointsPoints = sysUserClient.getconfig("MALL_ORDER_DESCRIPTION").getData(); MemberOrderList.setOrderShuoMin(memberPointsPoints.getConfigValue()); CustomConfig ReturnCycle = sysUserClient.getconfig("RETURN_CYCLE").getData(); MemberOrderList.setOrderZq(Integer.valueOf(ReturnCycle.getConfigValue())); } return memberOrderListVOPageDTO; } @Override public OrderVO MemberOrderOne(MemberOrderListDTO memberOrderListDTO) { Order order = baseMapper.selectById(memberOrderListDTO.getId()); OrderVO orderVO=new OrderVO(); try { orderVO = BeanUtils.copyBean(order, OrderVO.class); orderVO.setAuctionType(order.getAuctionOrderType()); orderVO.setCouponId(order.getCouponId()); orderVO.setBound(order.getBound()); orderVO.setIsRequest(order.getIsRequest()); if (orderVO.getOrderFrom().getCode()==3){ GoodsGroupPurchase data = GoodsSkuClient.getGoodsSeckiGoodsGroupPurchaseOne(order.getGoodsSkuId(), SecurityConstants.INNER).getData(); orderVO.setGroupTime(data.getGroupTime()); orderVO.setSkuId(data.getGoodsSkuId()); } LambdaQueryWrapper wrapper3= Wrappers.lambdaQuery(); wrapper3.eq(OrderAuctionBond::getOrderId,order.getId()); OrderAuctionBond orderAuctionBond = orderAuctionBondMapper.selectOne(wrapper3); if (orderAuctionBond!=null){ if (orderAuctionBond.getBoundStatus().getCode()==1||orderAuctionBond.getBoundStatus().getCode()==2){ orderVO.setIsAuctionBond(1); }else{ orderVO.setIsAuctionBond(2); } }else { orderVO.setIsAuctionBond(1); } } catch (Exception e) { throw new RuntimeException(e); } if (order.getTotalAmount()==null){ order.setTotalAmount(new BigDecimal(0)); } CustomConfig memberPointsPoints = sysUserClient.getconfig("MALL_ORDER_DESCRIPTION").getData(); orderVO.setOrderShuoMin(memberPointsPoints.getConfigValue()); CustomConfig ReturnCycle = sysUserClient.getconfig("RETURN_CYCLE").getData(); orderVO.setOrderZq(Integer.valueOf(ReturnCycle.getConfigValue())); // 查询售后记录 Optional orderReturnRequestOpt = orderReturnRequestService.lambdaQuery() .eq(OrderReturnRequest::getOrderId, order.getId()).oneOpt(); if (orderReturnRequestOpt.isPresent()) { OrderReturnRequest orderReturnRequest = orderReturnRequestOpt.get(); orderVO.setStatus(orderReturnRequest.getStatus()); } return orderVO; } @Override public void CancelOrderOne(MemberOrderListDTO memberOrderListDTO) { Order order = baseMapper.selectById(memberOrderListDTO.getId()); if (order.getOrderStatus().getCode() == 1) { order.setOrderStatus(OrderStatusEnum.CANCELED); order.setCancelTime(LocalDateTime.now()); baseMapper.updateById(order); if (order.getCouponId()!=0){ CouponMemberDTO couponMemberDTO1=new CouponMemberDTO(); couponMemberDTO1.setId(order.getCouponId()); couponMemberDTO1.setCouponStatus(0); promotionClient.updCouponMember(couponMemberDTO1, SecurityConstants.INNER); } if(order.getOrderNo().contains("SP")){ GoodsSku goodsSku = goodsSkuClient.getGoodsSkuOne(order.getGoodsSkuId(), SecurityConstants.INNER).getData(); GoodsStockUpdDTO goodsStockUpdDTO1 = new GoodsStockUpdDTO(); goodsStockUpdDTO1.setGoodsSkuId(order.getGoodsSkuId()); goodsStockUpdDTO1.setAuctionStock(goodsSku.getStock()+order.getGoodsQuantity()); if (goodsSku.getSoldQuantity()-order.getGoodsQuantity()<0){ goodsStockUpdDTO1.setSoldQuantity(0); }else { goodsStockUpdDTO1.setSoldQuantity(goodsSku.getSoldQuantity()-order.getGoodsQuantity()); } goodsSkuClient.updGoodsStock1(goodsStockUpdDTO1,SecurityConstants.INNER); } if(order.getOrderNo().contains("MS")){ GoodsSeckill data = goodsSkuClient.getGoodsSeckillOne(order.getGoodsSkuId(), SecurityConstants.INNER).getData(); GoodsStockUpdDTO goodsStockUpdDTO1 = new GoodsStockUpdDTO(); goodsStockUpdDTO1.setGoodsSkuId(order.getGoodsSkuId()); goodsStockUpdDTO1.setAuctionStock(data.getSeckillStock()+order.getGoodsQuantity()); if (data.getSoldQuantity()-order.getGoodsQuantity()<0){ goodsStockUpdDTO1.setSoldQuantity(0); }else { goodsStockUpdDTO1.setSoldQuantity(data.getSoldQuantity()-order.getGoodsQuantity()); } goodsSkuClient.updGoodsSeckill(goodsStockUpdDTO1,SecurityConstants.INNER); } if(order.getOrderNo().contains("TG")){ GoodsGroupPurchaseInfo goodsGroupPurchaseInfo =new GoodsGroupPurchaseInfo(); goodsGroupPurchaseInfo.setGroupPurchaseId(order.getGoodsSkuId()); goodsGroupPurchaseInfo.setMubre(order.getGroupNo()); GoodsGroupPurchaseInfo goodsSeckiGoodsGroupPurchaseInfo = GoodsSkuClient.getGoodsSeckiGoodsGroupPurchaseInfo2(order.getGroupNo(), SecurityConstants.INNER).getData(); if (goodsSeckiGoodsGroupPurchaseInfo!=null){ goodsSeckiGoodsGroupPurchaseInfo.setPurchaseNum(order.getGoodsQuantity()); GoodsSkuClient.updgoodsGroupPurchaseInfo1(goodsSeckiGoodsGroupPurchaseInfo, SecurityConstants.INNER); } } } if (order.getOrderStatus().getCode() == 2) { order.setOrderStatus(OrderStatusEnum.CANCELED); order.setCancelTime(LocalDateTime.now()); baseMapper.updateById(order); if(order.getOrderNo().contains("SP")){ GoodsSku goodsSku = goodsSkuClient.getGoodsSkuOne(order.getGoodsSkuId(), SecurityConstants.INNER).getData(); GoodsStockUpdDTO goodsStockUpdDTO1 = new GoodsStockUpdDTO(); goodsStockUpdDTO1.setGoodsSkuId(order.getGoodsSkuId()); goodsStockUpdDTO1.setAuctionStock(goodsSku.getStock()+order.getGoodsQuantity()); if (goodsSku.getSoldQuantity()-order.getGoodsQuantity()<0){ goodsStockUpdDTO1.setSoldQuantity(0); }else { goodsStockUpdDTO1.setSoldQuantity(goodsSku.getSoldQuantity()-order.getGoodsQuantity()); } goodsSkuClient.updGoodsStock1(goodsStockUpdDTO1,SecurityConstants.INNER); } if(order.getOrderNo().contains("MS")){ GoodsSeckill data = goodsSkuClient.getGoodsSeckillOne(order.getGoodsSkuId(), SecurityConstants.INNER).getData(); GoodsStockUpdDTO goodsStockUpdDTO1 = new GoodsStockUpdDTO(); goodsStockUpdDTO1.setGoodsSkuId(order.getGoodsSkuId()); goodsStockUpdDTO1.setAuctionStock(data.getSeckillStock()+order.getGoodsQuantity()); if (data.getSoldQuantity()-order.getGoodsQuantity()<0){ goodsStockUpdDTO1.setSoldQuantity(0); }else { goodsStockUpdDTO1.setSoldQuantity(data.getSoldQuantity()-order.getGoodsQuantity()); } goodsSkuClient.updGoodsSeckill(goodsStockUpdDTO1,SecurityConstants.INNER); } if(order.getOrderNo().contains("TG")){ GoodsGroupPurchaseInfo goodsGroupPurchaseInfo =new GoodsGroupPurchaseInfo(); goodsGroupPurchaseInfo.setMubre(order.getGroupNo()); GoodsGroupPurchaseInfo goodsSeckiGoodsGroupPurchaseInfo = GoodsSkuClient.getGoodsSeckiGoodsGroupPurchaseInfo2(order.getGroupNo(), SecurityConstants.INNER).getData(); if (goodsSeckiGoodsGroupPurchaseInfo!=null){ goodsSeckiGoodsGroupPurchaseInfo.setPurchaseNum(order.getGoodsQuantity()); GoodsSkuClient.updgoodsGroupPurchaseInfo1(goodsSeckiGoodsGroupPurchaseInfo, SecurityConstants.INNER); } } if (order.getCouponId()!=0){ CouponMemberDTO couponMemberDTO1=new CouponMemberDTO(); couponMemberDTO1.setId(order.getCouponId()); couponMemberDTO1.setCouponStatus(0); promotionClient.updCouponMember(couponMemberDTO1, SecurityConstants.INNER); } updMembeOneDTO MembeOneDTO = new updMembeOneDTO(); MembeOneDTO.setType(2); MembeOneDTO.setMemberId(order.getMemberId()); MembeOneDTO.setMoney(order.getTotalAmount()); MembeOneDTO.setTotalPoints(order.getPoints()); memberClient.updMembeOne(MembeOneDTO, SecurityConstants.INNER); MemberPointsDTO memberPointsDTO = new MemberPointsDTO(); memberPointsDTO.setMemberId(order.getMemberId()); memberPointsDTO.setPointsType(2); memberPointsDTO.setPointsStatus(PointStatusEnum.REDUCE); memberPointsDTO.setPoints(order.getPoints()); memberClient.addMemberPoints(memberPointsDTO); if (order.getPaymentMethod() != null && order.getPaymentMethod().getCode() == 2) {//支付宝 //获取支付信息 LambdaQueryWrapper paylogEntityWrapper = Wrappers.lambdaQuery(); paylogEntityWrapper.eq(Paylog::getOutTradeNo, order.getOrderNo()); Paylog paylog = iPaylogService.getOne(paylogEntityWrapper); if (paylog != null) { boolean bo = paylogService.refundForAlipay(paylog.getOutTradeNo(), paylog.getTradeNo(), paylog.getPayMoney()); if (!bo) { System.out.println("支付宝退款失败"); } } } else if (order.getPaymentMethod() != null && order.getPaymentMethod().getCode() == 1) {//微信 //获取支付信息 LambdaQueryWrapper paylogEntityWrapper = Wrappers.lambdaQuery(); paylogEntityWrapper.eq(Paylog::getOutTradeNo, order.getOrderNo()); Paylog paylog = iPaylogService.getOne(paylogEntityWrapper); if (paylog != null) { String refundMoney = SinataUtil.doubleRetainTwo(paylog.getPayMoney() * 100d); Integer refundFee = Integer.parseInt(refundMoney.substring(0, refundMoney.length() - 3)); String money = SinataUtil.doubleRetainTwo(paylog.getPayMoney() * 100d); Integer totalFee = Integer.parseInt(money.substring(0, money.length() - 3)); refundFee = Integer.parseInt(money.substring(0, money.length() - 3)); String regEx = "[^0-9]"; Pattern p = Pattern.compile(regEx); Matcher m = p.matcher(order.getOrderNo()); String ma = m.replaceAll("").trim(); boolean bo = paylogService.refundForWxpay(4, paylog.getTradeNo(), paylog.getOutTradeNo(), "R" + ma, totalFee, refundFee, "2"); if (!bo) { System.out.println("微信退款失败"); } } } } if (order.getOrderFrom().equals(OrderFromEnum.AUCTION_ORDERS)) { refundBond(order); } } @Override public void delOrderOne(MemberOrderListDTO memberOrderListDTO) { Order byId = this.getById(memberOrderListDTO.getId()); if(byId.getOrderNo().contains("TG")){ GoodsGroupPurchaseInfo goodsSeckiGoodsGroupPurchaseInfo = GoodsSkuClient.getGoodsSeckiGoodsGroupPurchaseInfo2(byId.getGroupNo(), SecurityConstants.INNER).getData(); if (goodsSeckiGoodsGroupPurchaseInfo!=null){ goodsSeckiGoodsGroupPurchaseInfo.setPurchaseNum(byId.getGoodsQuantity()); GoodsSkuClient.updgoodsGroupPurchaseInfo1(goodsSeckiGoodsGroupPurchaseInfo, SecurityConstants.INNER); } } this.removeById(memberOrderListDTO.getId()); if (byId.getOrderStatus().getCode() == 2) { updMembeOneDTO MembeOneDTO = new updMembeOneDTO(); MembeOneDTO.setType(2); MembeOneDTO.setMemberId(byId.getMemberId()); MembeOneDTO.setMoney(byId.getTotalAmount()); MembeOneDTO.setTotalPoints(byId.getPoints()); memberClient.updMembeOne(MembeOneDTO, SecurityConstants.INNER); if (byId.getPaymentMethod() != null && byId.getPaymentMethod().getCode() == 2) {//支付宝 //获取支付信息 LambdaQueryWrapper paylogEntityWrapper = Wrappers.lambdaQuery(); paylogEntityWrapper.eq(Paylog::getOutTradeNo, byId.getOrderNo()); Paylog paylog = iPaylogService.getOne(paylogEntityWrapper); if (paylog != null) { boolean bo = paylogService.refundForAlipay(paylog.getOutTradeNo(), paylog.getTradeNo(), paylog.getPayMoney()); if (!bo) { System.out.println("支付宝退款失败"); } } } else if (byId.getPaymentMethod() != null && byId.getPaymentMethod().getCode() == 1) {//微信 //获取支付信息 LambdaQueryWrapper paylogEntityWrapper = Wrappers.lambdaQuery(); paylogEntityWrapper.eq(Paylog::getOutTradeNo, byId.getOrderNo()); Paylog paylog = iPaylogService.getOne(paylogEntityWrapper); if (paylog != null) { String refundMoney = SinataUtil.doubleRetainTwo(paylog.getPayMoney() * 100d); Integer refundFee = Integer.parseInt(refundMoney.substring(0, refundMoney.length() - 3)); String money = SinataUtil.doubleRetainTwo(paylog.getPayMoney() * 100d); Integer totalFee = Integer.parseInt(money.substring(0, money.length() - 3)); refundFee = Integer.parseInt(money.substring(0, money.length() - 3)); String regEx = "[^0-9]"; Pattern p = Pattern.compile(regEx); Matcher m = p.matcher(byId.getOrderNo()); String ma = m.replaceAll("").trim(); boolean bo = paylogService.refundForWxpay(4, paylog.getTradeNo(), paylog.getOutTradeNo(), "R" + ma, totalFee, refundFee, "2"); if (!bo) { System.out.println("微信退款失败"); } } } } } @Override public void AffirmOrderOne(MemberOrderListDTO memberOrderListDTO) { Order order = baseMapper.selectById(memberOrderListDTO.getId()); if (order.getOrderFrom().getCode()==4){ order.setOrderStatus(OrderStatusEnum.FINISHED); order.setReceiveTime(LocalDateTime.now()); baseMapper.updateById(order); if (order.getAuctionOrderType().getCode()==1){ }else{ } refundBond(order); } else { order.setOrderStatus(OrderStatusEnum.FINISHED); order.setReceiveTime(LocalDateTime.now()); baseMapper.updateById(order); } } private void refundBond(Order order) { LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(); wrapper.eq(order.getAuctionOrderType().equals(AuctionOrderTypeEnum.AUCTION_ITEMS), OrderAuctionBond::getAuctionSalesroomId, order.getAuctionSalesroomId()); wrapper.eq(order.getAuctionOrderType().equals(AuctionOrderTypeEnum.REGULAR_ITEMS), OrderAuctionBond::getAuctionGoodsId, order.getGoodsSkuId()); wrapper.eq(OrderAuctionBond::getMemberId, order.getMemberId()); wrapper.eq(OrderAuctionBond::getBoundStatus, BondStatusEnum.PAID); OrderAuctionBond orderAuctionBond = orderAuctionBondMapper.selectOne(wrapper); if (orderAuctionBond != null && orderAuctionBond.getBond() != null) { if (order.getPaymentMethod() != null && order.getPaymentMethod().getCode() == 2) {// 支付宝 // 获取支付信息 LambdaQueryWrapper paylogEntityWrapper = Wrappers.lambdaQuery(); paylogEntityWrapper.eq(Paylog::getOutTradeNo, orderAuctionBond.getOrderNo()); Paylog paylog = iPaylogService.getOne(paylogEntityWrapper); boolean bo = paylogService.refundForAlipay(paylog.getOutTradeNo(), paylog.getTradeNo(), paylog.getPayMoney()); if (!bo) { System.out.println("支付宝退款失败"); } else { orderAuctionBond.setBoundStatus(BondStatusEnum.REFUNDED); } } else if (order.getPaymentMethod() != null && order.getPaymentMethod().getCode() == 1) {// 微信 // 获取支付信息 LambdaQueryWrapper paylogEntityWrapper = Wrappers.lambdaQuery(); paylogEntityWrapper.eq(Paylog::getOutTradeNo, orderAuctionBond.getOrderNo()); Paylog paylog = iPaylogService.getOne(paylogEntityWrapper); String refundMoney = SinataUtil.doubleRetainTwo(paylog.getPayMoney() * 100d); Integer refundFee = Integer.parseInt( refundMoney.substring(0, refundMoney.length() - 3)); String money = SinataUtil.doubleRetainTwo(paylog.getPayMoney() * 100d); Integer totalFee = Integer.parseInt(money.substring(0, money.length() - 3)); refundFee = 1; String refundNo = OrderUtil.getOrderNoForPrefix("R"); boolean bo = paylogService.refundForWxpay(4, paylog.getTradeNo(), paylog.getOutTradeNo(), refundNo, totalFee, refundFee, "2"); if (!bo) { System.out.println("微信退款失败"); } else { orderAuctionBond.setBoundStatus(BondStatusEnum.REFUNDED); } } orderAuctionBondMapper.updateById(orderAuctionBond); } } @Override public MemberOrderNumVO MemberOrderNum(MemberOrderListDTO memberOrderListDTO) { LambdaQueryWrapper wrapper1= Wrappers.lambdaQuery(); wrapper1.eq(Order::getMemberId,memberOrderListDTO.getMemberId()); wrapper1.eq(Order::getOrderStatus,1); wrapper1.eq(Order::getIsOrder,1); wrapper1.eq(Order::getDelFlag,0); wrapper1.orderByDesc(Order::getCancelTime); List page2 = this.list(wrapper1); for (Order MemberOrderList:page2) { if (MemberOrderList.getOrderStatus().getCode() == 1) { if (MemberOrderList.getOrderFrom().getCode() == 1 || MemberOrderList.getOrderFrom().getCode() == 2 || MemberOrderList.getOrderFrom().getCode() == 3) { LocalDateTime localDateTime = MemberOrderList.getOrderTime().plusMinutes(30); if (LocalDateTime.now().isAfter(localDateTime)) { // dateTime1 在 dateTime2 之后 MemberOrderList.setOrderStatus(OrderStatusEnum.CANCELED); Order order = this.getById(MemberOrderList.getId()); order.setOrderStatus(OrderStatusEnum.CANCELED); this.updateById(order); if (order.getCouponId()!=0){ CouponMemberDTO couponMemberDTO1=new CouponMemberDTO(); couponMemberDTO1.setId(order.getCouponId()); couponMemberDTO1.setCouponStatus(0); promotionClient.updCouponMember(couponMemberDTO1, SecurityConstants.INNER); } if(order.getOrderNo().contains("SP")){ GoodsSku goodsSku = goodsSkuClient.getGoodsSkuOne(order.getGoodsSkuId(), SecurityConstants.INNER).getData(); GoodsStockUpdDTO goodsStockUpdDTO1 = new GoodsStockUpdDTO(); goodsStockUpdDTO1.setGoodsSkuId(order.getGoodsSkuId()); goodsStockUpdDTO1.setAuctionStock(goodsSku.getStock()+order.getGoodsQuantity()); if (goodsSku.getSoldQuantity()-order.getGoodsQuantity()<0){ goodsStockUpdDTO1.setSoldQuantity(0); }else { goodsStockUpdDTO1.setSoldQuantity(goodsSku.getSoldQuantity()-order.getGoodsQuantity()); } goodsSkuClient.updGoodsStock1(goodsStockUpdDTO1,SecurityConstants.INNER); } if(order.getOrderNo().contains("MS")){ GoodsSeckill data = goodsSkuClient.getGoodsSeckillOne(order.getGoodsSkuId(), SecurityConstants.INNER).getData(); GoodsStockUpdDTO goodsStockUpdDTO1 = new GoodsStockUpdDTO(); goodsStockUpdDTO1.setGoodsSkuId(order.getGoodsSkuId()); goodsStockUpdDTO1.setAuctionStock(data.getSeckillStock()+order.getGoodsQuantity()); if (data.getSoldQuantity()-order.getGoodsQuantity()<0){ goodsStockUpdDTO1.setSoldQuantity(0); }else { goodsStockUpdDTO1.setSoldQuantity(data.getSoldQuantity()-order.getGoodsQuantity()); } goodsSkuClient.updGoodsSeckill(goodsStockUpdDTO1,SecurityConstants.INNER); } } } } } MemberOrderNumVO vo=new MemberOrderNumVO(); LambdaQueryWrapper paylogEntityWrapper = Wrappers.lambdaQuery(); paylogEntityWrapper.eq(Order::getMemberId, memberOrderListDTO.getMemberId()); paylogEntityWrapper.eq(Order::getOrderStatus,1); paylogEntityWrapper.eq(Order::getDelFlag,0); paylogEntityWrapper.eq(Order::getIsOrder,1); List list = this.list(paylogEntityWrapper); vo.setDzforderNo(list.size()); LambdaQueryWrapper paylogEntityWrapper1 = Wrappers.lambdaQuery(); paylogEntityWrapper1.eq(Order::getMemberId, memberOrderListDTO.getMemberId()); paylogEntityWrapper1.eq(Order::getOrderStatus,2); paylogEntityWrapper1.eq(Order::getDelFlag,0); paylogEntityWrapper1.eq(Order::getIsOrder,1); List list1 = this.list(paylogEntityWrapper1); vo.setDfhorderNo(list1.size()); LambdaQueryWrapper paylogEntityWrapper2 = Wrappers.lambdaQuery(); paylogEntityWrapper2.eq(Order::getMemberId, memberOrderListDTO.getMemberId()); paylogEntityWrapper2.eq(Order::getOrderStatus,3); paylogEntityWrapper2.eq(Order::getDelFlag,0); paylogEntityWrapper2.eq(Order::getIsOrder,1); List list2 = this.list(paylogEntityWrapper2); vo.setDshorderNo(list2.size()); LambdaQueryWrapper paylogEntityWrapper3 = Wrappers.lambdaQuery(); paylogEntityWrapper3.eq(Order::getMemberId, memberOrderListDTO.getMemberId()); paylogEntityWrapper3.eq(Order::getIsRequest,2); paylogEntityWrapper3.eq(Order::getDelFlag,0); paylogEntityWrapper3.eq(Order::getIsOrder,1); List list3 = this.list(paylogEntityWrapper3); vo.setShorderNo(list3.size()); return vo; } @Override public PageDTO CtjlGoodsGroupPurchase(HomeGoodsSkuDTO1 homeGoodsSkuDTO1) { LambdaQueryWrapper< Order> wrapper1= Wrappers.lambdaQuery(); if (homeGoodsSkuDTO1.getSkuName()!=null&&homeGoodsSkuDTO1.getSkuName()!=""){ wrapper1.like(Order::getSkuName,homeGoodsSkuDTO1.getSkuName()); } wrapper1.eq(Order::getMemberId,homeGoodsSkuDTO1.getMemberId()); wrapper1.eq(Order::getOrderFrom,3); wrapper1.eq(Order::getDelFlag,0); wrapper1.orderByDesc(Order::getCreateTime); Page page = new Page<>(homeGoodsSkuDTO1.getPageCurr(), homeGoodsSkuDTO1.getPageSize()); Page< Order> page1 = this.page(page, wrapper1); PageDTO HomeGoodsSeckillVOPageDTO = PageDTO.of(page1, WdOrderVO.class); List list2 = HomeGoodsSeckillVOPageDTO.getList(); for (WdOrderVO goodsGroupPurchaseeVO1:list2) { Order byId1 = this.getById(goodsGroupPurchaseeVO1.getId()); GoodsGroupPurchase data = goodsSkuClient.getGoodsSeckiGoodsGroupPurchaseOne(byId1.getGoodsSkuId(), SecurityConstants.INNER).getData(); if (Objects.nonNull(data)) { BeanUtils.copyProperties(data, goodsGroupPurchaseeVO1); GoodsSku byId = goodsSkuClient.getGoodsSkuOne(data.getGoodsSkuId(), SecurityConstants.INNER).getData(); goodsGroupPurchaseeVO1.setGoodsSkuName(byId.getSkuName()); goodsGroupPurchaseeVO1.setCoverPic(byId.getCoverPic()); goodsGroupPurchaseeVO1.setPrice(byId.getPrice()); goodsGroupPurchaseeVO1.setYears(String.valueOf(byId.getYears().getYear())); goodsGroupPurchaseeVO1.setIsGoodsGroupPurchase(2); if (byId1.getGroupNo() != null) { GoodsGroupPurchaseInfo one1 = goodsSkuClient.getGoodsSeckiGoodsGroupPurchaseInfo2( byId1.getGroupNo(), SecurityConstants.INNER).getData(); if (one1 != null) { goodsGroupPurchaseeVO1.setCurrentNumber(one1.getCurrentNumber()); if (one1.getGroupStatus() == 0) { if (one1.getGroupSize() - one1.getCurrentNumber() < 5) { goodsGroupPurchaseeVO1.setGroupStatus(GroupStatusEnum.MS_FAILURE); } else { goodsGroupPurchaseeVO1.setGroupStatus( GroupStatusEnum.TO_FORM_A_GROUP); } } if (one1.getGroupStatus() == 1) { goodsGroupPurchaseeVO1.setGroupStatus( GroupStatusEnum.FORMED_INTO_A_GROUP); } if (one1.getGroupStatus() == 2) { goodsGroupPurchaseeVO1.setGroupStatus(GroupStatusEnum.GROUP_FAILURE); } } else { if (data.getGroupStatus().getCode() == 1) { goodsGroupPurchaseeVO1.setGroupStatus(GroupStatusEnum.TO_FORM_A_GROUP); } if (data.getGroupStatus().getCode() == 2) { goodsGroupPurchaseeVO1.setGroupStatus( GroupStatusEnum.FORMED_INTO_A_GROUP); } if (data.getGroupStatus().getCode() == 3) { goodsGroupPurchaseeVO1.setGroupStatus(GroupStatusEnum.GROUP_FAILURE); } } } } } return HomeGoodsSeckillVOPageDTO; } /** * 根据优惠券id集合查询订单列表 * * @param couponIds 优惠券id集合 * @return List */ @Override public List getOrderByCouponIds(Collection couponIds) { return this.lambdaQuery().in(Order::getCouponId, couponIds) .ne(Order::getOrderStatus, OrderStatusEnum.CANCELED).eq(Order::getIsRequest, 1) .list(); } /** * 商城订单分页列表 * * @param query 商城订单查询对象 * @return PageDTO */ @Override public PageDTO getOrderPage(MgtOrderQuery query) { PageDTO pageVO; // 封装会员条件查询对象 MemberDTO memberDTO = null; Set memberIdSet = null; Page page = new Page<>(query.getPageCurr(), query.getPageSize()); if (StringUtils.isNotBlank(query.getNickname()) || StringUtils.isNotBlank( query.getPhone())) { memberDTO = new MemberDTO(); memberDTO.setNickname(query.getNickname()); memberDTO.setPhone(query.getPhone()); } if (StringUtils.isNotNull(memberDTO)) { // 远程调用会员服务进行条件查询 List memberList = memberClient.getMemberListByCondition(memberDTO, SecurityConstants.INNER).getData(); if (StringUtils.isEmpty(memberList)) { return PageDTO.empty(page); } memberIdSet = memberList.stream().map(Member::getId) .collect(Collectors.toSet()); } page = this.lambdaQuery() .in(StringUtils.isNotEmpty(memberIdSet), Order::getMemberId, memberIdSet) .ne(StringUtils.isNotNull(query.getQueryType()) && query.getQueryType() .equals(OrderTypeEnum.MALL_ODER), Order::getOrderFrom, OrderFromEnum.AUCTION_ORDERS) .eq(StringUtils.isNotNull(query.getQueryType()) && query.getQueryType() .equals(OrderTypeEnum.AUCTION_ORDER), Order::getOrderFrom, OrderFromEnum.AUCTION_ORDERS) .like(StringUtils.isNotBlank(query.getOrderNo()), Order::getOrderNo, query.getOrderNo()) .eq(StringUtils.isNotNull(query.getOrderFrom()) && query.getQueryType() .equals(OrderTypeEnum.MALL_ODER), Order::getOrderFrom, query.getOrderFrom()) .like(StringUtils.isNotBlank(query.getSkuName()), Order::getSkuName, query.getSkuName()) .eq(StringUtils.isNotNull(query.getOrderStatus()), Order::getOrderStatus, query.getOrderStatus()) .eq(StringUtils.isNotNull(query.getOrderStatus()) && query.getOrderStatus() .equals(OrderStatusEnum.FINISHED), Order::getIsRequest, 1) .orderByDesc(Order::getCreateTime) .page(new Page<>(query.getPageCurr(), query.getPageSize())); if (StringUtils.isEmpty(page.getRecords())) { pageVO = PageDTO.empty(page); } pageVO = PageDTO.of(page, MgtOrderVO.class); List voList = pageVO.getList(); List orderIdList = voList.stream().filter(order -> order.getIsRequest().equals(2)) .map(MgtOrderVO::getId).collect( Collectors.toList()); if (CollUtils.isNotEmpty(orderIdList)) { List orderReturnRequestList = orderReturnRequestService.lambdaQuery() .in(OrderReturnRequest::getOrderId, orderIdList) .eq(OrderReturnRequest::getStatus, ReturnRequestStatusEnum.COMPLETED) .eq(OrderReturnRequest::getAuditStatus, AuditStatusEnum.PASSED).list(); List orderReturnRequestPassedIds = orderReturnRequestList.stream() .map(OrderReturnRequest::getOrderId) .collect(Collectors.toList()); for (MgtOrderVO order : voList) { if (orderReturnRequestPassedIds.contains(order.getId())) { order.setIsRequest(3); } } } if (query.getQueryType() == OrderTypeEnum.AUCTION_ORDER) { List list = voList; // 封装参数查询拍卖会 Set auctionSalesroomGoodsIdSet = list.stream() .filter(order -> order.getAuctionOrderType() == AuctionOrderTypeEnum.AUCTION_ITEMS) .map(MgtOrderVO::getGoodsSkuId).collect(Collectors.toSet()); List auctionSalesroomList = auctionClient.getAuctionSalesroomByIds( auctionSalesroomGoodsIdSet, SecurityConstants.INNER) .getData(); Map salesroomMap = new HashedMap(); Set auctionSalesroomSet = new HashSet<>(); if (CollUtils.isNotEmpty(auctionSalesroomList)) { salesroomMap = auctionSalesroomList.stream() .collect(Collectors.toMap(AuctionSalesroom::getId, AuctionSalesroom::getSalesroomName)); } // 封装参数查询拍卖订单保证金 Set auctionGoodsIdSet = list.stream() .filter(order -> order.getAuctionOrderType() == AuctionOrderTypeEnum.REGULAR_ITEMS) .map(MgtOrderVO::getGoodsSkuId) .collect(Collectors.toSet()); List auctionSalesroomBondList = orderAuctionBondMapper.selectList( Wrappers.lambdaQuery(OrderAuctionBond.class) .in(CollUtils.isNotEmpty(auctionSalesroomSet), OrderAuctionBond::getAuctionSalesroomId, auctionSalesroomSet) .eq(OrderAuctionBond::getBoundStatus, BondStatusEnum.PAID) .groupBy(OrderAuctionBond::getAuctionSalesroomId, OrderAuctionBond::getMemberId)); List auctionGoodsBondList = orderAuctionBondMapper.selectList( Wrappers.lambdaQuery(OrderAuctionBond.class) .in(CollUtils.isNotEmpty(auctionGoodsIdSet), OrderAuctionBond::getAuctionGoodsId, auctionGoodsIdSet) .eq(OrderAuctionBond::getBoundStatus, BondStatusEnum.PAID) .groupBy(OrderAuctionBond::getAuctionGoodsId, OrderAuctionBond::getMemberId)); Map auctionSalesroomBondMap = auctionSalesroomBondList.stream() .filter(bond -> bond.getBondType() == AuctionOrderTypeEnum.AUCTION_ITEMS) .collect(Collectors.toMap( bond -> bond.getAuctionSalesroomId() + "-" + bond.getMemberId(), Function.identity())); Map auctionSalesroomGoodsBondMap = auctionGoodsBondList.stream() .filter(bond -> bond.getBondType() == AuctionOrderTypeEnum.REGULAR_ITEMS) .collect(Collectors.toMap( bond -> bond.getAuctionGoodsId() + "-" + bond.getMemberId(), Function.identity())); for (MgtOrderVO order : list) { if (order.getAuctionOrderType() == AuctionOrderTypeEnum.AUCTION_ITEMS) { order.setSalesroomName( StringUtils.isNotBlank(salesroomMap.get(order.getAuctionSalesroomId())) ? salesroomMap.get(order.getAuctionSalesroomId()) : "无"); order.setBoundStatus( StringUtils.isNotNull(auctionSalesroomBondMap.get( order.getAuctionSalesroomId() + "-" + order.getMemberId())) ? auctionSalesroomBondMap.get( order.getAuctionSalesroomId() + "-" + order.getMemberId()) .getBoundStatus() : null); } if (order.getAuctionOrderType() == AuctionOrderTypeEnum.REGULAR_ITEMS) { order.setSalesroomName("无"); order.setBoundStatus( StringUtils.isNotNull(auctionSalesroomGoodsBondMap.get( order.getGoodsSkuId() + "-" + order.getMemberId())) ? auctionSalesroomGoodsBondMap.get( order.getGoodsSkuId() + "-" + order.getMemberId()) .getBoundStatus() : null); } } } Set memberVoIdSet = voList.stream().map(MgtOrderVO::getMemberId) .collect(Collectors.toSet()); List data = memberClient.getMemberListByIds(memberVoIdSet, SecurityConstants.INNER) .getData(); if (CollUtils.isNotEmpty(data)) { Map 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; } /** * 获取商城订单详情 * * @param id 订单id * @return MgtMallOrderVO */ @Override public MgtOrderVO getOrderDetail(Long id) { Order order = this.getById(id); MgtOrderVO mgtOrderVO = BeanUtils.copyBean(order, MgtOrderVO.class); // 查询用户信息 Member member = memberClient.getMembeOne(order.getMemberId(), SecurityConstants.INNER) .getData(); if (StringUtils.isNotNull(member)) { mgtOrderVO.setNickname(member.getNickname()); mgtOrderVO.setPhone(member.getPhone()); } // 拍卖订单查询拍卖会信息 if (order.getOrderFrom() == OrderFromEnum.AUCTION_ORDERS && (order.getAuctionOrderType() == AuctionOrderTypeEnum.AUCTION_ITEMS)) { List auctionSalesroom = auctionClient.getAuctionSalesroomByIds( Lists.newArrayList(order.getGoodsSkuId()) , SecurityConstants.INNER).getData(); if (StringUtils.isNotNull(auctionSalesroom)) { mgtOrderVO.setSalesroomName(auctionSalesroom.get(0).getSalesroomName()); } } // 查询售后信息 if (order.getIsRequest() == 2) { OrderReturnRequest orderReturnRequest = orderReturnRequestService.getOne( Wrappers.lambdaQuery(OrderReturnRequest.class) .eq(OrderReturnRequest::getOrderId, order.getId()).last("limit 1")); if (StringUtils.isNotNull(orderReturnRequest)) { mgtOrderVO.setReturnRequestVO(BeanUtils.copyBean(orderReturnRequest, MgtOrderReturnRequestVO.class)); } } // 如果订单状态为已发货、已完成、售后, 查询物流信息 if (order.getOrderStatus() == OrderStatusEnum.GOODS_TO_BE_RECEIVED || order.getOrderStatus() == OrderStatusEnum.FINISHED || order.getOrderStatus() == OrderStatusEnum.AFTER_SALE) { LogisticsDTO logisticsDTO = new LogisticsDTO(); logisticsDTO.setCompany(order.getLogisticsNum()); logisticsDTO.setPostid(order.getCourierNumber()); Express100VO logisticsList = logisticsService.getLogisticsList(logisticsDTO); if (StringUtils.isNotNull(logisticsList)) { mgtOrderVO.setExpress100VO(logisticsList); } } if (order.getOrderFrom() == OrderFromEnum.SNAP_ORDERS) { GoodsSeckill data = goodsSkuClient.getGoodsSeckillOne(order.getGoodsSkuId(), SecurityConstants.INNER).getData(); mgtOrderVO.setSeckillPrice(data.getSeckillPrice()); } else if (order.getOrderFrom() == OrderFromEnum.GROUP_PURCHASE_ORDERS) { GoodsGroupPurchase data = goodsSkuClient.getGoodsSeckiGoodsGroupPurchaseOne( order.getGoodsSkuId(), SecurityConstants.INNER).getData(); mgtOrderVO.setGroupPurchasesPrice(data.getGroupPurchasePrice()); } return mgtOrderVO; } /** * 确认发货 * * @param dto 确认发货请求对象 */ @Override public void confirmShipmentOrder(MgtOrderConfirmShipmentDTO dto) { Order order = getOrder(dto.getId()); order.setOrderStatus(OrderStatusEnum.GOODS_TO_BE_RECEIVED); order.setDeliveryTime(LocalDateTime.now()); order.setCourierNumber(dto.getCourierNumber()); order.setLogisticsNum(dto.getLogisticsNum()); this.updateById(order); } /** * 已收货 * * @param id 订单id */ @Override public void receivedGoods(Long id) { Order order = getOrder(id); if (order.getOrderStatus() == OrderStatusEnum.GOODS_TO_BE_RECEIVED) { order.setOrderStatus(OrderStatusEnum.FINISHED); order.setReceiveTime(LocalDateTime.now()); this.updateById(order); // 拍卖订单退保证金 if (order.getOrderFrom() == OrderFromEnum.AUCTION_ORDERS) { refundBond(id); } } } /** * 退款 * * @param id 订单id */ @Override @GlobalTransactional(rollbackFor = Exception.class) @Transactional public void refund(Long id) { Order order = getOrder(id); if (order.getIsRequest() == 2) { throw new ServiceException("该订单已是售后状态"); } String orderNo = order.getOrderNo(); Optional paylogOpt = iPaylogService.lambdaQuery().eq(Paylog::getOutTradeNo, orderNo) .last("limit 1").oneOpt(); PaymentMethodEnum paymentMethod = order.getPaymentMethod(); if (paylogOpt.isPresent()) { Paylog paylog = paylogOpt.get(); boolean result = handleRefund(paymentMethod, paylog, orderNo); if (result) { paylog.setState(3);// 已退款 iPaylogService.updateById(paylog); } } order.setIsRequest(2); this.updateById(order); // 生成售后记录 OrderReturnRequest orderReturnRequest = new OrderReturnRequest(); orderReturnRequest.setOrderId(id); orderReturnRequest.setRequestTime(LocalDateTime.now()); orderReturnRequest.setRequestType(RequestTypeEnum.REFUND); orderReturnRequest.setRequestReason("管理后台退款"); orderReturnRequest.setStatus(ReturnRequestStatusEnum.COMPLETED); orderReturnRequest.setAuditStatus(AuditStatusEnum.PASSED); orderReturnRequest.setAuditTime(LocalDateTime.now()); orderReturnRequestService.save(orderReturnRequest); // 扣除订单积分 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 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) { boolean result = false; if (paymentMethod == PaymentMethodEnum.WECHAT) { String refundMoney = SinataUtil.doubleRetainTwo(paylog.getPayMoney() * 100D); int refundFee = Integer.parseInt( refundMoney.substring(0, refundMoney.length() - 3)); String money = SinataUtil.doubleRetainTwo(paylog.getPayMoney() * 100D); Integer totalFee = Integer.parseInt(money.substring(0, money.length() - 3)); String refundNo = OrderUtil.getOrderNoForPrefix("R"); result = paylogService.refundForWxpay(2, paylog.getTradeNo(), paylog.getOutTradeNo(), refundNo, totalFee, refundFee, "4"); } else if (paymentMethod == PaymentMethodEnum.ALIPAY) { result = paylogService.refundForAlipay(paylog.getOutTradeNo(), paylog.getTradeNo(), paylog.getPayMoney()); } return result; } /** * 退款退货 * * @param id 订单id */ @Override public void refundReturn(Long id) { Order order = getOrder(id); if (order.getIsRequest() == 2) { throw new ServiceException("该订单已是售后状态"); } if (order.getOrderStatus() == OrderStatusEnum.FINISHED) { OrderReturnRequest orderReturnRequest = new OrderReturnRequest(); order.setIsRequest(2); this.updateById(order); MgtAfterSaleSettingDTO data = sysUserClient.getAfterSaleSetting().getData(); if (StringUtils.isNull(data)) { throw new ServiceException("获取售后退货信息失败"); } orderReturnRequest.setRecipientName(data.getReceiverName()); orderReturnRequest.setRecipientPhone(data.getReceiverPhone()); orderReturnRequest.setDetailedAddress(data.getReceiverAddress()); orderReturnRequest.setOrderId(id); orderReturnRequest.setRequestTime(LocalDateTime.now()); orderReturnRequest.setRequestType(RequestTypeEnum.REFUNDS_AND_RETURNS); orderReturnRequest.setRequestReason("管理后台退款退货"); orderReturnRequest.setStatus(ReturnRequestStatusEnum.TO_BE_RETURNED); orderReturnRequest.setAuditStatus(AuditStatusEnum.PASSED); orderReturnRequest.setAuditTime(LocalDateTime.now()); orderReturnRequestService.save(orderReturnRequest); } } private Order getOrder(Long id) { Order order = this.getById(id); if (StringUtils.isNull(order)) { throw new ServiceException("订单不存在"); } return order; } /** * 拍卖订单退保证金 * * @param id 订单id */ @Override public void refundBond(Long id) { Order order = getOrder(id); OrderAuctionBond orderAuctionBond; if (order.getAuctionOrderType() == AuctionOrderTypeEnum.AUCTION_ITEMS) { orderAuctionBond = orderAuctionBondMapper.selectOne( Wrappers.lambdaQuery(OrderAuctionBond.class) .eq(OrderAuctionBond::getAuctionSalesroomId, order.getAuctionSalesroomId()) .eq(OrderAuctionBond::getMemberId, order.getMemberId()) .eq(OrderAuctionBond::getBoundStatus, BondStatusEnum.PAID)); } else { orderAuctionBond = orderAuctionBondMapper.selectOne( Wrappers.lambdaQuery(OrderAuctionBond.class) .eq(OrderAuctionBond::getAuctionGoodsId, order.getGoodsSkuId()) .eq(OrderAuctionBond::getMemberId, order.getMemberId()) .eq(OrderAuctionBond::getBoundStatus, BondStatusEnum.PAID)); } if (StringUtils.isNotNull(orderAuctionBond)) { Optional paylogOpt = iPaylogService.lambdaQuery() .in(Paylog::getOutTradeNo, orderAuctionBond.getOrderNo()) .oneOpt(); if (paylogOpt.isPresent()) { Paylog paylog = paylogOpt.get(); boolean result = handleRefund(orderAuctionBond.getPaymentMethod(), paylog, orderAuctionBond.getOrderNo()); if (result) { paylog.setState(3);// 已退款 orderAuctionBond.setBoundStatus(BondStatusEnum.REFUNDED); iPaylogService.updateById(paylog); orderAuctionBondMapper.updateById(orderAuctionBond); } } } } /** * 查询统计订单列表 * * @param startTime 开始时间 * @param endTime 结束时间 * @return List */ @Override public List getStaticsOrderList(LocalDateTime startTime, LocalDateTime endTime) { return baseMapper.getStaticsOrderList(startTime, endTime); } @Override public List getOrderListByMubres(List mubres) { return this.lambdaQuery().in(Order::getGroupNo, mubres).list(); } @Override public void updateOrderStatusByMubres(List formedGroupMubres) { this.lambdaUpdate().set(Order::getIsOrder, 1).in(Order::getGroupNo, formedGroupMubres) .update(); } @Override public void updateOrderStatusByMubres1(String formedGroupMubres) { LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(); wrapper.eq(Order::getGroupNo, formedGroupMubres); List page1 = this.list(wrapper); for (Order p:page1){ p.setIsOrder(1); this.updateById(p); } } @Override public List updateOrderStatusByMubres2(String formedGroupMubres) { LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(); wrapper.eq(Order::getGroupNo, formedGroupMubres); List page1 = this.list(wrapper); return page1; } }