|
@@ -4,7 +4,6 @@ import cn.hutool.core.bean.BeanUtil;
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
import cn.hutool.core.collection.CollUtil;
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
-import com.alibaba.fastjson.JSONObject;
|
|
|
|
|
import com.izouma.jiashanxia.domain.*;
|
|
import com.izouma.jiashanxia.domain.*;
|
|
|
import com.izouma.jiashanxia.domain.Package;
|
|
import com.izouma.jiashanxia.domain.Package;
|
|
|
import com.izouma.jiashanxia.dto.*;
|
|
import com.izouma.jiashanxia.dto.*;
|
|
@@ -39,10 +38,10 @@ public class OrderInfoService {
|
|
|
private final UserPackageService userPackageService;
|
|
private final UserPackageService userPackageService;
|
|
|
private final CompanyRepo companyRepo;
|
|
private final CompanyRepo companyRepo;
|
|
|
private final WithdrawService withdrawService;
|
|
private final WithdrawService withdrawService;
|
|
|
- private final UserPackageFlowRepo userPackageFlowRepo;
|
|
|
|
|
private final UserService userService;
|
|
private final UserService userService;
|
|
|
private final StockRepo stockRepo;
|
|
private final StockRepo stockRepo;
|
|
|
private final SmsService smsService;
|
|
private final SmsService smsService;
|
|
|
|
|
+ private final ShoppingCartRepo shoppingCartRepo;
|
|
|
|
|
|
|
|
public Page<OrderInfo> all(PageQuery pageQuery) {
|
|
public Page<OrderInfo> all(PageQuery pageQuery) {
|
|
|
pageQuery.setSort("createdAt,desc");
|
|
pageQuery.setSort("createdAt,desc");
|
|
@@ -181,51 +180,41 @@ public class OrderInfoService {
|
|
|
order.setPaidAt(LocalDateTime.now());
|
|
order.setPaidAt(LocalDateTime.now());
|
|
|
orderInfoRepo.save(order);
|
|
orderInfoRepo.save(order);
|
|
|
|
|
|
|
|
|
|
+ Integer num = order.getNum();
|
|
|
if (ObjectUtil.isNotEmpty(order.getStockId())) {
|
|
if (ObjectUtil.isNotEmpty(order.getStockId())) {
|
|
|
Stock stock = stockRepo.findById(order.getStockId()).orElseThrow(new BusinessException("无规格"));
|
|
Stock stock = stockRepo.findById(order.getStockId()).orElseThrow(new BusinessException("无规格"));
|
|
|
- stock.setInventory(stock.getInventory() - order.getNum());
|
|
|
|
|
|
|
+ // 减库存
|
|
|
|
|
+ stock.setInventory(stock.getInventory() - num);
|
|
|
|
|
+ // 加销量
|
|
|
|
|
+ stock.setSale(stock.getSale() + num);
|
|
|
stockRepo.save(stock);
|
|
stockRepo.save(stock);
|
|
|
}
|
|
}
|
|
|
|
|
+ Package aPackage = packageRepo.findById(order.getPackageId()).orElseThrow(new BusinessException("无套餐"));
|
|
|
|
|
+ aPackage.setSale(aPackage.getSale() + num);
|
|
|
|
|
+ aPackage.setInventory(aPackage.getInventory() - num);
|
|
|
|
|
|
|
|
Long userId = order.getUserId();
|
|
Long userId = order.getUserId();
|
|
|
|
|
|
|
|
- // 套餐内商品
|
|
|
|
|
- List<PackageGoods> packageGoodsList = packageGoodsRepo.findAllByPackageId(order.getPackageId());
|
|
|
|
|
|
|
+
|
|
|
if (order.isRepeatedly()) {
|
|
if (order.isRepeatedly()) {
|
|
|
|
|
+ // 套餐内商品
|
|
|
|
|
+ List<PackageGoods> packageGoodsList = packageGoodsRepo.findAllByPackageId(order.getPackageId());
|
|
|
// 多次使用加入套餐余额
|
|
// 多次使用加入套餐余额
|
|
|
- userPackageService.joinUserPackage1(userId, packageGoodsList, order.getNum());
|
|
|
|
|
|
|
+ userPackageService.joinUserPackage1(userId, packageGoodsList, num);
|
|
|
}
|
|
}
|
|
|
// 记录套餐流水 (没有*数量)
|
|
// 记录套餐流水 (没有*数量)
|
|
|
- List<GoodsDTO> goodsDTOS = JSONObject.parseArray(JSONObject.toJSONString(packageGoodsList), GoodsDTO.class);
|
|
|
|
|
- userPackageFlowRepo.save(UserPackageFlow.builder()
|
|
|
|
|
- .userId(userId)
|
|
|
|
|
- .type(FlowType.BUY)
|
|
|
|
|
- .orderInfoId(orderInfoId)
|
|
|
|
|
- .content(goodsDTOS)
|
|
|
|
|
- .build());
|
|
|
|
|
|
|
+// List<GoodsDTO> goodsDTOS = JSONObject.parseArray(JSONObject.toJSONString(packageGoodsList), GoodsDTO.class);
|
|
|
|
|
+// userPackageFlowRepo.save(UserPackageFlow.builder()
|
|
|
|
|
+// .userId(userId)
|
|
|
|
|
+// .type(FlowType.BUY)
|
|
|
|
|
+// .orderInfoId(orderInfoId)
|
|
|
|
|
+// .content(goodsDTOS)
|
|
|
|
|
+// .build());
|
|
|
|
|
|
|
|
- // 用户id和上级id相同
|
|
|
|
|
-// if (!userId.equals(parent)) {
|
|
|
|
|
-// // 如果是别人分享的链接购买的
|
|
|
|
|
-// if (ObjectUtil.isNotEmpty(order.getParentUserId())) {
|
|
|
|
|
-// parent = order.getParentUserId();
|
|
|
|
|
-// // 是否设为上级
|
|
|
|
|
-// if (ObjectUtil.isEmpty(user.getParent())) {
|
|
|
|
|
-// List<OrderInfo> orderInfos = orderInfoRepo.findAllByUserId(userId);
|
|
|
|
|
-// long count = orderInfos.stream()
|
|
|
|
|
-// .filter(orderInfo -> !OrderInfoStatus.UNPAID.equals(orderInfo.getStatus()) || !OrderInfoStatus.CANCELLED
|
|
|
|
|
-// .equals(orderInfo.getStatus()))
|
|
|
|
|
-// .count();
|
|
|
|
|
-// if (count <= 0) {
|
|
|
|
|
-// user.setParent(parent);
|
|
|
|
|
-// userRepo.save(user);
|
|
|
|
|
-// }
|
|
|
|
|
-// }
|
|
|
|
|
-// }
|
|
|
|
|
-// }
|
|
|
|
|
// 上级分销
|
|
// 上级分销
|
|
|
this.distribution2(order);
|
|
this.distribution2(order);
|
|
|
- User user = order.getUser();
|
|
|
|
|
|
|
+ // 短信通知
|
|
|
|
|
+// User user = order.getUser();
|
|
|
// if (ObjectUtil.isNotNull(user.getPhone())) {
|
|
// if (ObjectUtil.isNotNull(user.getPhone())) {
|
|
|
// smsService.sendNotification(user.getPhone(), order.getName(), order.getOrderNumber());
|
|
// smsService.sendNotification(user.getPhone(), order.getName(), order.getOrderNumber());
|
|
|
// }
|
|
// }
|
|
@@ -247,7 +236,7 @@ public class OrderInfoService {
|
|
|
case SHIPPED:
|
|
case SHIPPED:
|
|
|
throw new BusinessException("订单已发货,无法取消");
|
|
throw new BusinessException("订单已发货,无法取消");
|
|
|
case RECEIVED:
|
|
case RECEIVED:
|
|
|
- throw new BusinessException("订单已收获,无法取消");
|
|
|
|
|
|
|
+ throw new BusinessException("订单已收货,无法取消");
|
|
|
case CANCELLED:
|
|
case CANCELLED:
|
|
|
return orderInfo;
|
|
return orderInfo;
|
|
|
}
|
|
}
|
|
@@ -669,5 +658,30 @@ public class OrderInfoService {
|
|
|
}), JpaUtils.toPageRequest(pageQuery));
|
|
}), JpaUtils.toPageRequest(pageQuery));
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ /*
|
|
|
|
|
+ 购物车一起付款
|
|
|
|
|
+ */
|
|
|
|
|
+ public void batchByCart(List<Long> shoppingCartIds,PayMethod payMethod) {
|
|
|
|
|
+ List<ShoppingCart> carts = shoppingCartRepo.findAllById(shoppingCartIds);
|
|
|
|
|
+ DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyyMMddHHmmss");
|
|
|
|
|
+ String localTime = df.format(LocalDateTime.now());
|
|
|
|
|
+ carts.forEach(cart -> {
|
|
|
|
|
+ OrderInfo orderInfo = new OrderInfo();
|
|
|
|
|
+ BeanUtil.copyProperties(cart, orderInfo);
|
|
|
|
|
+ orderInfo.setStatus(OrderInfoStatus.UNPAID);
|
|
|
|
|
+ orderInfo.setPayMethod(payMethod);
|
|
|
|
|
+ // 订单号
|
|
|
|
|
+ String orderNum = String.format("%05d", orderInfoRepo.orderNum() + 1);
|
|
|
|
|
+ orderInfo.setOrderNumber(localTime + orderNum);
|
|
|
|
|
+ // 规格
|
|
|
|
|
+ if (ObjectUtil.isNotNull(cart.getStockId())) {
|
|
|
|
|
+ Stock stock = stockRepo.findById(cart.getStockId()).orElseThrow(new BusinessException("无规格"));
|
|
|
|
|
+ orderInfo.setSpecification(stock.getSpecification());
|
|
|
|
|
+ orderInfo.setDay(stock.getDay());
|
|
|
|
|
+ orderInfo.setPrice(stock.getPrice());
|
|
|
|
|
+ }
|
|
|
|
|
+ orderInfoRepo.save(orderInfo);
|
|
|
|
|
+ });
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
}
|
|
}
|