| | |
| | | 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.enums.StartStatusEnum; |
| | | import com.ruoyi.common.core.exception.ServiceException; |
| | | import com.ruoyi.common.core.utils.StringUtils; |
| | | import com.ruoyi.common.core.utils.page.BeanUtils; |
| | |
| | | import java.util.stream.Collectors; |
| | | import javax.annotation.Resource; |
| | | import lombok.Synchronized; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.apache.commons.collections.map.HashedMap; |
| | | import org.redisson.api.RLock; |
| | | import org.redisson.api.RedissonClient; |
| | |
| | | * @author mitao |
| | | * @since 2024-05-16 |
| | | */ |
| | | @Slf4j |
| | | @Service |
| | | @SuppressWarnings("unchecked") |
| | | public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements IOrderService { |
| | |
| | | @Override |
| | | @Synchronized |
| | | public MemberTiOrderVO saveMemberOrder(MemberOrderDTO memberOrderDTO) { |
| | | |
| | | MemberTiOrderVO memberOrderVO=new MemberTiOrderVO(); |
| | | BigDecimal pice=new BigDecimal(0); |
| | | |
| | |
| | | memberOrderVO.setReceiverCity(data.getReceiverCity()); |
| | | memberOrderVO.setReceiverDetailAddress(data.getDetailedAddress()); |
| | | memberOrderVO.setReceiverphone(data.getRecipientPhone()); |
| | | } else { |
| | | order.setReceiverName(memberOrderDTO.getReceiverName()); |
| | | order.setReceiverCity(memberOrderDTO.getReceiverCity()); |
| | | order.setReceiverDetailAddress(memberOrderDTO.getReceiverDetailAddress()); |
| | | order.setReceiverPhone(memberOrderDTO.getReceiverphone()); |
| | | |
| | | memberOrderVO.setReceiverName(memberOrderDTO.getReceiverName()); |
| | | memberOrderVO.setReceiverCity(memberOrderDTO.getReceiverCity()); |
| | | memberOrderVO.setReceiverDetailAddress(memberOrderDTO.getReceiverDetailAddress()); |
| | | memberOrderVO.setReceiverphone(memberOrderDTO.getReceiverphone()); |
| | | } |
| | | |
| | | order.setGoodsSkuId(memberOrderDTO.getGoodsSkuId()); |
| | |
| | | Wrappers.lambdaQuery(OrderReturnRequest.class) |
| | | .eq(OrderReturnRequest::getOrderId, |
| | | MemberOrderList.getId()).last("limit 1")); |
| | | if (StringUtils.isNotNull(orderReturnRequest)&&orderReturnRequest!=null) { |
| | | if (StringUtils.isNotNull(orderReturnRequest) |
| | | && orderReturnRequest.getStatus() != ReturnRequestStatusEnum.QX) { |
| | | MemberOrderList.setStatus(orderReturnRequest.getStatus()); |
| | | MemberOrderList.setRequestId(orderReturnRequest.getId()); |
| | | MemberOrderList.setIsRequest(2); |
| | |
| | | goodsStockUpdDTO1.setSoldQuantity(data.getSoldQuantity()-order.getGoodsQuantity()); |
| | | } |
| | | goodsSkuClient.updGoodsSeckill(goodsStockUpdDTO1,SecurityConstants.INNER); |
| | | if (data.getStartStatus().equals(StartStatusEnum.ENDED)) { |
| | | GoodsStockUpdDTO dto = new GoodsStockUpdDTO(); |
| | | dto.setGoodsSkuId(data.getGoodsSkuId()); |
| | | dto.setAuctionStock(order.getGoodsQuantity()); |
| | | goodsSkuClient.updGoodsStock(Lists.newArrayList(dto), 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()); |
| | | } |
| | | if (Objects.nonNull(goodsSku)) { |
| | | 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); |
| | | goodsSkuClient.updGoodsStock1(goodsStockUpdDTO1, |
| | | SecurityConstants.INNER); |
| | | } |
| | | } |
| | | |
| | | if(order.getOrderNo().contains("MS")){ |
| | |
| | | |
| | | @Override |
| | | public void updateOrderStatusByMubres1(String formedGroupMubres) { |
| | | |
| | | LambdaQueryWrapper<Order> wrapper = Wrappers.lambdaQuery(); |
| | | wrapper.eq(Order::getGroupNo, formedGroupMubres); |
| | | List<Order> page1 = this.list(wrapper); |
| | | log.info("开始更新订单,已成团的团购订单:{}", page1); |
| | | for (Order p:page1){ |
| | | p.setIsOrder(1); |
| | | this.updateById(p); |