| | |
| | | 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.OrderFromEnum; |
| | | import com.ruoyi.common.core.enums.OrderStatusEnum; |
| | |
| | | import com.ruoyi.common.core.exception.ServiceException; |
| | | import com.ruoyi.common.core.utils.StringUtils; |
| | | import com.ruoyi.common.core.utils.page.PageDTO; |
| | | import com.ruoyi.order.domain.MemberInvoiceRise; |
| | | import com.ruoyi.common.redis.service.RedisService; |
| | | import com.ruoyi.order.controller.management.dto.MgtMallOrderQuery; |
| | | import com.ruoyi.order.controller.management.vo.MgtMallOrderVO; |
| | | import com.ruoyi.order.domain.Paylog; |
| | | import com.ruoyi.order.mapper.OrderAuctionBondMapper; |
| | | import com.ruoyi.order.mapper.OrderMapper; |
| | | import com.ruoyi.order.service.IOrderAuctionBondService; |
| | | import com.ruoyi.order.service.IOrderService; |
| | | import com.ruoyi.order.service.IPaylogService; |
| | | import com.ruoyi.order.util.OrderUtil; |
| | | import com.ruoyi.system.api.domain.*; |
| | | import com.ruoyi.system.api.domain.dto.*; |
| | | |
| | | import java.lang.reflect.InvocationTargetException; |
| | | import java.math.BigDecimal; |
| | | import java.time.LocalDateTime; |
| | | import java.util.List; |
| | | import java.util.Set; |
| | | import java.util.regex.Matcher; |
| | | import java.util.regex.Pattern; |
| | | import java.util.stream.Collectors; |
| | | import javax.annotation.Resource; |
| | | import com.ruoyi.order.util.SinataUtil; |
| | | import com.ruoyi.system.api.domain.CouponMember; |
| | | import com.ruoyi.system.api.domain.CustomConfig; |
| | | import com.ruoyi.system.api.domain.GoodsGroupPurchase; |
| | | import com.ruoyi.system.api.domain.GoodsSeckill; |
| | | import com.ruoyi.system.api.domain.GoodsSku; |
| | | 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.MemberOrderDTO; |
| | | import com.ruoyi.system.api.domain.dto.MemberOrderListDTO; |
| | | import com.ruoyi.system.api.domain.dto.OrderDTO; |
| | | import com.ruoyi.system.api.domain.dto.updMembeOneDTO; |
| | | import com.ruoyi.system.api.domain.vo.MemberOrderListVO; |
| | | import com.ruoyi.system.api.domain.vo.MemberTiOrderVO; |
| | | import com.ruoyi.system.api.domain.vo.OrderVO; |
| | |
| | | import com.ruoyi.system.api.feignClient.MemberClient; |
| | | import com.ruoyi.system.api.feignClient.PromotionClient; |
| | | import com.ruoyi.system.api.feignClient.SysUserClient; |
| | | import java.math.BigDecimal; |
| | | import java.time.LocalDateTime; |
| | | import java.util.Collection; |
| | | import java.util.List; |
| | | import java.util.concurrent.TimeUnit; |
| | | import java.util.regex.Matcher; |
| | | import java.util.regex.Pattern; |
| | | import javax.annotation.Resource; |
| | | |
| | | import lombok.Synchronized; |
| | | import org.apache.commons.beanutils.BeanUtils; |
| | | import org.redisson.api.RLock; |
| | | import org.redisson.api.RedissonClient; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | /** |
| | |
| | | @Resource |
| | | private SysUserClient sysUserClient; |
| | | |
| | | @Resource |
| | | private RedissonClient redissonClient; |
| | | |
| | | @Resource |
| | | private RedisService redisService; |
| | | |
| | | |
| | | @Override |
| | | public void saveOrderOne(OrderDTO OrderDTO) { |
| | |
| | | order.setMemberId(OrderDTO.getMemberId()); |
| | | order.setTotalAmount(OrderDTO.getTotalAmount()); |
| | | order.setOrderStatus(OrderStatusEnum.TO_PLAY); |
| | | order.setPoints(OrderDTO.getPoints()); |
| | | order.setGoodsQuantity(OrderDTO.getGoodsQuantity()); |
| | | order.setReceiverName(OrderDTO.getReceiverName()); |
| | | order.setReceiverphone(OrderDTO.getReceiverphone()); |
| | |
| | | } |
| | | |
| | | @Override |
| | | @Synchronized |
| | | public MemberTiOrderVO saveMemberOrder(MemberOrderDTO memberOrderDTO) { |
| | | |
| | | MemberTiOrderVO memberOrderVO=new MemberTiOrderVO(); |
| | |
| | | pice=goodsSku.getPrice(); |
| | | } |
| | | if (memberOrderDTO.getOrderFrom()==2){ |
| | | order.setOrderFrom(OrderFromEnum.SNAP_ORDERS); |
| | | GoodsSeckill data = goodsSkuClient.getGoodsSeckillOne(memberOrderDTO.getGoodsSkuId(), SecurityConstants.INNER).getData(); |
| | | /* String goodsLock = "goods_lock_" + CacheConstants.SECKILL_GOODS + data.getId(); |
| | | RLock redissonLock = redissonClient.getLock(goodsLock); |
| | | Integer surpNum = 0; |
| | | try { |
| | | redissonLock.lock(30, TimeUnit.SECONDS); |
| | | surpNum = redisService.getCacheObject(CacheConstants.SECKILL_GOODS + data.getId()); |
| | | if (surpNum == null || surpNum < memberOrderDTO.getGoodsQuantity()) { |
| | | throw new ServiceException("商品已被抢完"); |
| | | } |
| | | |
| | | }catch (Exception e){ |
| | | throw new ServiceException("reids 出错"); |
| | | }*/ |
| | | order.setOrderFrom(OrderFromEnum.SNAP_ORDERS); |
| | | |
| | | GoodsSku goodsSku = goodsSkuClient.getGoodsSkuOne(data.getGoodsSkuId(), SecurityConstants.INNER).getData(); |
| | | memberOrderVO.setGoodsSkuId(memberOrderDTO.getGoodsSkuId()); |
| | | memberOrderVO.setPrice(goodsSku.getPrice()); |
| | |
| | | order.setSkuName(goodsSku.getSkuName()); |
| | | order.setPrice(data.getSeckillPrice()); |
| | | order.setCoverPic(goodsSku.getCoverPic()); |
| | | |
| | | /*redisService.setCacheObject(CacheConstants.SECKILL_GOODS + data.getId(), surpNum - memberOrderDTO.getGoodsQuantity());*/ |
| | | } |
| | | if (memberOrderDTO.getOrderFrom()==3){ |
| | | order.setOrderFrom(OrderFromEnum.GROUP_PURCHASE_ORDERS); |
| | |
| | | memberOrderVO.setReceiverCity(order.getReceiverCity()); |
| | | memberOrderVO.setReceiverDetailAddress(order.getReceiverDetailAddress()); |
| | | memberOrderVO.setReceiverphone(order.getReceiverphone()); |
| | | Integer delayTime = 30; |
| | | redisService.setCacheObject(CacheConstants.ORDER_AUTOMATIC_CANCEL + "-" + order.getId(), order.getId() , delayTime.longValue(), TimeUnit.MINUTES); |
| | | |
| | | return memberOrderVO; |
| | | } |
| | |
| | | order.setOrderStatus(OrderStatusEnum.CANCELED); |
| | | order.setCancelTime(LocalDateTime.now()); |
| | | baseMapper.updateById(order); |
| | | |
| | | updMembeOneDTO MembeOneDTO=new updMembeOneDTO(); |
| | | MembeOneDTO.setType(2); |
| | | MembeOneDTO.setMemberId(order.getMemberId()); |
| | | MembeOneDTO.setMoney(order.getTotalAmount()); |
| | | MembeOneDTO.setTotalPoints(order.getPoints()); |
| | | memberClient.updMembeOne(MembeOneDTO); |
| | | |
| | | |
| | | if (order.getPaymentMethod() != null && order.getPaymentMethod().getCode() == 1) {//支付宝 |
| | | //获取支付信息 |
| | | LambdaQueryWrapper<Paylog> paylogEntityWrapper = Wrappers.lambdaQuery(); |
| | |
| | | baseMapper.updateById(order); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 根据优惠券id集合查询订单列表 |
| | | * |
| | | * @param couponIds 优惠券id集合 |
| | | * @return List<Order> |
| | | */ |
| | | @Override |
| | | public List<Order> getOrderByCouponIds(Collection<Long> couponIds) { |
| | | return this.lambdaQuery().in(Order::getCouponId, couponIds) |
| | | .eq(Order::getOrderStatus, OrderStatusEnum.FINISHED).list(); |
| | | } |
| | | |
| | | /** |
| | | * 商城订单分页列表 |
| | | * |
| | | * @param query 商城订单查询对象 |
| | | * @return PageDTO<MgtMallOrderVO> |
| | | */ |
| | | @Override |
| | | public PageDTO<MgtMallOrderVO> getMallOrderPage(MgtMallOrderQuery query) { |
| | | return null; |
| | | } |
| | | } |