|
@@ -88,6 +88,7 @@ import java.math.RoundingMode;
|
|
|
import java.text.SimpleDateFormat;
|
|
|
import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
+import java.util.stream.Stream;
|
|
|
|
|
|
/**
|
|
|
* 订单Service业务层处理
|
|
@@ -2252,11 +2253,14 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
|
|
|
item.setYearRate(divide.multiply(new BigDecimal("100")));
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
//占比
|
|
|
- BigDecimal divide = item.getMoney().divide(moneyTotal, 2, RoundingMode.HALF_UP);
|
|
|
- String s = divide.multiply(new BigDecimal("100")).toString();
|
|
|
- item.setOccupationRate(s+"%");
|
|
|
+ if (ObjectUtils.isNotNull(moneyTotal) && moneyTotal.compareTo(BigDecimal.ZERO) > 0){
|
|
|
+ BigDecimal divide = item.getMoney().divide(moneyTotal, 2, RoundingMode.HALF_UP);
|
|
|
+ String s = divide.multiply(new BigDecimal("100")).toString();
|
|
|
+ item.setOccupationRate(s+"%");
|
|
|
+ }else {
|
|
|
+ item.setOccupationRate("0%");
|
|
|
+ }
|
|
|
});
|
|
|
return moneyVos;
|
|
|
}
|
|
@@ -4028,7 +4032,7 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
|
|
|
goodsOrgVo.setDivideType(item.getDivideType());
|
|
|
goodsOrgVo.setDivideRate(item.getDivideRate());
|
|
|
goodsOrgVo.setDivideMoney(item.getDivideMoney());
|
|
|
- goodsOrgVo.setDivideRateStr(item.getDivideRate() + "%");
|
|
|
+ goodsOrgVo.setDivideRateStr(ObjectUtils.isNotNull(item.getDivideRate())?item.getDivideRate() + "%":"");
|
|
|
goodsOrgVo.setSignId(item.getSignId());
|
|
|
//学习状态
|
|
|
if (ObjectUtils.isNotNull(item.getGoodsType()) && ObjectUtils.isNotNull(item.getGradeId()) && item.getGoodsType() == 1) {
|
|
@@ -4054,19 +4058,60 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
|
|
|
}
|
|
|
} else {
|
|
|
//旧系统订单
|
|
|
- list = topOrderGoodsService.getListByQuery(query);
|
|
|
- if (CollectionUtils.isNotEmpty(list)) {
|
|
|
- List<TopOrderGoodsOrgVo> collect = list.stream().map(item -> {
|
|
|
- TopOrderGoodsOrgVo goodsOrgVo = new TopOrderGoodsOrgVo();
|
|
|
- goodsOrgVo.setOrderSn(bo.getOrderSn());
|
|
|
- goodsOrgVo.setDivideType(item.getDivideType());
|
|
|
- goodsOrgVo.setDivideRate(item.getDivideRate());
|
|
|
- goodsOrgVo.setDivideMoney(item.getDivideMoney());
|
|
|
- goodsOrgVo.setDivideRateStr(item.getDivideRate() + "%");
|
|
|
- goodsOrgVo.setSignId(item.getSignId());
|
|
|
- return goodsOrgVo;
|
|
|
- }).collect(Collectors.toList());
|
|
|
- orgVo.setGoodsOrgVos(collect);
|
|
|
+ if (orderVo.getOrderBase() == 1 && ObjectUtils.isNotNull(orderVo.getInputOrderSn())){
|
|
|
+ Order orderOne = orderService.getOne(new LambdaQueryWrapper<Order>()
|
|
|
+ .eq(Order::getInputOrderSn, orderVo.getInputOrderSn())
|
|
|
+ .last("limit 1"));
|
|
|
+ if (ObjectUtils.isNotNull(orderOne)){
|
|
|
+ //底单在新系统
|
|
|
+ query.setOrderSn(orderOne.getOrderSn());
|
|
|
+ list = orderGoodsService.listByOrderSn(query);
|
|
|
+ if (CollectionUtils.isNotEmpty(list)) {
|
|
|
+ List<TopOrderGoodsOrgVo> collect = list.stream().map(item -> {
|
|
|
+ TopOrderGoodsOrgVo goodsOrgVo = new TopOrderGoodsOrgVo();
|
|
|
+ goodsOrgVo.setOrderSn(bo.getOrderSn());
|
|
|
+ goodsOrgVo.setDivideType(item.getDivideType());
|
|
|
+ goodsOrgVo.setDivideRate(item.getDivideRate());
|
|
|
+ goodsOrgVo.setDivideMoney(item.getDivideMoney());
|
|
|
+ goodsOrgVo.setDivideRateStr(ObjectUtils.isNotNull(item.getDivideRate())?item.getDivideRate() + "%":"");
|
|
|
+ goodsOrgVo.setSignId(item.getSignId());
|
|
|
+ //学习状态
|
|
|
+ if (ObjectUtils.isNotNull(item.getGoodsType()) && ObjectUtils.isNotNull(item.getGradeId()) && item.getGoodsType() == 1) {
|
|
|
+ int count = userPeriodService.count(new LambdaQueryWrapper<UserPeriod>()
|
|
|
+ .eq(UserPeriod::getUserId, item.getUserId())
|
|
|
+ .eq(UserPeriod::getGradeId, item.getGradeId()));
|
|
|
+ if (count > 0) {
|
|
|
+ //学完/未学完
|
|
|
+ ClassGradeUser classGradeUser = classGradeUserService.getOne(new LambdaQueryWrapper<ClassGradeUser>()
|
|
|
+ .eq(ClassGradeUser::getUserId, item.getUserId())
|
|
|
+ .eq(ClassGradeUser::getGradeId, item.getGradeId())
|
|
|
+ .last("limit 1"));
|
|
|
+ goodsOrgVo.setStudyStatus(
|
|
|
+ ObjectUtils.isNotNull(classGradeUser.getFinishStatus()) && classGradeUser.getFinishStatus() == 1 ? "已结束" : "学习中");
|
|
|
+ } else {
|
|
|
+ goodsOrgVo.setStudyStatus("未开始");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return goodsOrgVo;
|
|
|
+ }).collect(Collectors.toList());
|
|
|
+ orgVo.setGoodsOrgVos(collect);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }else {
|
|
|
+ list = topOrderGoodsService.getListByQuery(query);
|
|
|
+ if (CollectionUtils.isNotEmpty(list)) {
|
|
|
+ List<TopOrderGoodsOrgVo> collect = list.stream().map(item -> {
|
|
|
+ TopOrderGoodsOrgVo goodsOrgVo = new TopOrderGoodsOrgVo();
|
|
|
+ goodsOrgVo.setOrderSn(bo.getOrderSn());
|
|
|
+ goodsOrgVo.setDivideType(item.getDivideType());
|
|
|
+ goodsOrgVo.setDivideRate(item.getDivideRate());
|
|
|
+ goodsOrgVo.setDivideMoney(item.getDivideMoney());
|
|
|
+ goodsOrgVo.setDivideRateStr(ObjectUtils.isNotNull(item.getDivideRate())?item.getDivideRate() + "%":"");
|
|
|
+ goodsOrgVo.setSignId(item.getSignId());
|
|
|
+ return goodsOrgVo;
|
|
|
+ }).collect(Collectors.toList());
|
|
|
+ orgVo.setGoodsOrgVos(collect);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -5194,19 +5239,14 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
|
|
|
Map<Integer,List<TopOldOrderVo>> orderMap = new HashMap<>();
|
|
|
List<TopOldOrderVo> orderSn = new ArrayList<>();
|
|
|
Set<String> userCheckOrderSn = new HashSet<>();
|
|
|
- Integer key = 1;
|
|
|
- for (TopOldOrderVo orderVo : vos) {
|
|
|
- orderSn.add(orderVo);
|
|
|
- if (orderSn.size() == 1000){
|
|
|
- orderMap.put(key,orderSn);
|
|
|
- orderSn = new ArrayList<>();
|
|
|
- key ++;
|
|
|
- }
|
|
|
- }
|
|
|
- orderMap.forEach((k,v) -> {
|
|
|
- Map<Integer, List<TopOldOrderVo>> collect = v.stream().collect(Collectors.groupingBy(TopOldOrderVo::getOrderFrom));
|
|
|
+ Integer limit = (vos.size() + 1000 - 1) / 100;
|
|
|
+ List<List<TopOldOrderVo>> orderVoLists = Stream.iterate(0, n -> n + 1).limit(limit).parallel()
|
|
|
+ .map(a -> vos.stream().skip(a * 1000).limit(1000).parallel().collect(Collectors.toList()))
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ for (List<TopOldOrderVo> voList : orderVoLists) {
|
|
|
+ Map<Integer, List<TopOldOrderVo>> collect = voList.stream().collect(Collectors.groupingBy(TopOldOrderVo::getOrderFrom));
|
|
|
collect.forEach((m,l) -> {
|
|
|
- if (m != 1){
|
|
|
+ if (m != 1) {
|
|
|
//旧系统订单
|
|
|
List<TopOldOrderGoods> list = topOrderGoodsService
|
|
|
.list(new LambdaQueryWrapper<TopOldOrderGoods>()
|
|
@@ -5218,16 +5258,15 @@ public class TopOldOrderServiceImpl extends ServiceImpl<TopOldOrderMapper, TopOl
|
|
|
Set<String> collect1 = list.stream().filter(x -> x.getCheckStatus() == 0).map(TopOldOrderGoods::getOrderSn).collect(Collectors.toSet());
|
|
|
userCheckOrderSn.addAll(collect1);
|
|
|
}
|
|
|
- }else {
|
|
|
+ } else {
|
|
|
//新系统订单
|
|
|
List<User> list = userService.list(new LambdaQueryWrapper<User>().in(User::getUserId, l.stream().map(TopOldOrderVo::getUserId).collect(Collectors.toList())));
|
|
|
- if (CollectionUtils.isNotEmpty(list)){
|
|
|
+ if (CollectionUtils.isNotEmpty(list)) {
|
|
|
userCard.addAll(list.stream().map(x -> EncryptHandler.decrypt(x.getIdCard())).collect(Collectors.toList()));
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
});
|
|
|
- });
|
|
|
+ }
|
|
|
Integer orderNum = vos.size();
|
|
|
Integer count = vos.stream().filter(x -> ObjectUtils.isNotNull(x.getCheckStatus()) && x.getCheckStatus() == 0).collect(Collectors.toList()).size();
|
|
|
Integer count2 = vos.stream().filter(x -> ObjectUtils.isNotNull(x.getRefundStatus()) && x.getRefundStatus() == 0).collect(Collectors.toList()).size();
|