|
|
@@ -7,6 +7,7 @@ import cn.hutool.core.util.StrUtil;
|
|
|
import com.izouma.jiashanxia.domain.*;
|
|
|
import com.izouma.jiashanxia.domain.Package;
|
|
|
import com.izouma.jiashanxia.dto.OrderInfoVO;
|
|
|
+import com.izouma.jiashanxia.dto.PackageGoodsDTO;
|
|
|
import com.izouma.jiashanxia.dto.PageQuery;
|
|
|
import com.izouma.jiashanxia.enums.OrderInfoStatus;
|
|
|
import com.izouma.jiashanxia.enums.PayMethod;
|
|
|
@@ -23,10 +24,7 @@ import javax.persistence.criteria.Predicate;
|
|
|
import java.math.BigDecimal;
|
|
|
import java.time.LocalDateTime;
|
|
|
import java.time.format.DateTimeFormatter;
|
|
|
-import java.util.ArrayList;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Map;
|
|
|
-import java.util.Set;
|
|
|
+import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
|
|
|
@@ -45,6 +43,7 @@ public class OrderInfoService {
|
|
|
private WithdrawService withdrawService;
|
|
|
|
|
|
public Page<OrderInfo> all(PageQuery pageQuery) {
|
|
|
+ pageQuery.setSort("createdAt,desc");
|
|
|
return orderInfoRepo.findAll(JpaUtils.toSpecification(pageQuery, OrderInfo.class), JpaUtils.toPageRequest(pageQuery));
|
|
|
}
|
|
|
|
|
|
@@ -52,6 +51,7 @@ public class OrderInfoService {
|
|
|
后台列表
|
|
|
*/
|
|
|
public Page<OrderInfo> backAll(PageQuery pageQuery) {
|
|
|
+ pageQuery.setSort("createdAt,desc");
|
|
|
return orderInfoRepo.findAll(((root, criteriaQuery, criteriaBuilder) -> {
|
|
|
List<Predicate> and = JpaUtils.toPredicates(pageQuery, OrderInfo.class, root, criteriaQuery, criteriaBuilder);
|
|
|
if (StrUtil.isNotEmpty(pageQuery.getSearch())) {
|
|
|
@@ -78,6 +78,7 @@ public class OrderInfoService {
|
|
|
.orderNumber(localTime + num)
|
|
|
.price(setInfo.getAmount())
|
|
|
.name(setInfo.getName())
|
|
|
+ .num(1)
|
|
|
.build();
|
|
|
return orderInfoRepo.save(order);
|
|
|
}
|
|
|
@@ -104,7 +105,7 @@ public class OrderInfoService {
|
|
|
userRepo.save(user);
|
|
|
}
|
|
|
// 加入套餐商品
|
|
|
- userPackageService.joinUserPackage(userId, setGoodsList);
|
|
|
+ userPackageService.joinUserPackage(userId, setGoodsList, 1);
|
|
|
|
|
|
// 用户id和上级id相同
|
|
|
if (user.getParent() != null && !userId.equals(user.getParent())) {
|
|
|
@@ -168,7 +169,6 @@ public class OrderInfoService {
|
|
|
.transactionType(TransactionType.PROMOTE)
|
|
|
.transactionId(transactionId)
|
|
|
.build());
|
|
|
-
|
|
|
}
|
|
|
|
|
|
/*
|
|
|
@@ -201,6 +201,9 @@ public class OrderInfoService {
|
|
|
用户订单
|
|
|
*/
|
|
|
public Page<OrderInfoVO> my(Pageable pageable, Long userId, List<OrderInfoStatus> status) {
|
|
|
+ Map<Long, Package> packageMap = packageRepo.findAll()
|
|
|
+ .stream()
|
|
|
+ .collect(Collectors.toMap(Package::getId, aPackage -> aPackage));
|
|
|
return orderInfoRepo.findAll(((root, criteriaQuery, criteriaBuilder) -> {
|
|
|
List<Predicate> and = new ArrayList<>();
|
|
|
and.add(criteriaBuilder.equal(root.get("userId"), userId));
|
|
|
@@ -211,17 +214,16 @@ public class OrderInfoService {
|
|
|
);
|
|
|
and.add(criteriaBuilder.or(or.toArray(new Predicate[0])));
|
|
|
}
|
|
|
+ criteriaQuery.orderBy(criteriaBuilder.desc(root.get("createdAt")));
|
|
|
return criteriaBuilder.and(and.toArray(new Predicate[0]));
|
|
|
- }), pageable).map(this::toVo);
|
|
|
- }
|
|
|
-
|
|
|
- public OrderInfoVO toVo(OrderInfo orderInfo) {
|
|
|
- OrderInfoVO vo = new OrderInfoVO();
|
|
|
- BeanUtil.copyProperties(orderInfo, vo);
|
|
|
- vo.setAPackage(packageRepo.findById(orderInfo.getPackageId()).orElseThrow(new BusinessException("无套餐")));
|
|
|
- List<PackageGoods> packageGoods = packageGoodsRepo.findAllByPackageId(orderInfo.getPackageId());
|
|
|
- vo.setGoods(packageGoods);
|
|
|
- return vo;
|
|
|
+ }), pageable).map(orderInfo -> {
|
|
|
+ OrderInfoVO vo = new OrderInfoVO();
|
|
|
+ BeanUtil.copyProperties(orderInfo, vo);
|
|
|
+ vo.setAPackage(packageMap.get(orderInfo.getPackageId()));
|
|
|
+ List<PackageGoodsDTO> packageGoodsDTOS = packageGoodsRepo.packageGoods(orderInfo.getPackageId());
|
|
|
+ vo.setGoods(packageGoodsDTOS);
|
|
|
+ return vo;
|
|
|
+ });
|
|
|
}
|
|
|
|
|
|
public List<OrderInfoVO> toVO(List<OrderInfo> orderInfos) {
|
|
|
@@ -238,15 +240,9 @@ public class OrderInfoService {
|
|
|
OrderInfoVO vo = new OrderInfoVO();
|
|
|
BeanUtil.copyProperties(orderInfo, vo);
|
|
|
vo.setAPackage(packageMap.get(orderInfo.getPackageId()));
|
|
|
- List<PackageGoods> packageGoods = packageGoodsRepo.findAllByPackageId(orderInfo.getPackageId());
|
|
|
-// List<GoodsVO> goodsVOS = new ArrayList<>();
|
|
|
-// packageGoods.forEach(goods -> {
|
|
|
-// goodsVOS.add(GoodsVO.builder()
|
|
|
-// .name(goodsMap.get(goods.getGoodsInfoId()))
|
|
|
-// .num(goods.getNum().longValue())
|
|
|
-// .build());
|
|
|
-// });
|
|
|
- vo.setGoods(packageGoods);
|
|
|
+// List<PackageGoods> packageGoods = packageGoodsRepo.findAllByPackageId(orderInfo.getPackageId());
|
|
|
+ List<PackageGoodsDTO> packageGoodsDTOS = packageGoodsRepo.packageGoods(orderInfo.getPackageId());
|
|
|
+ vo.setGoods(packageGoodsDTOS);
|
|
|
orderInfoVOS.add(vo);
|
|
|
});
|
|
|
return orderInfoVOS;
|