Procházet zdrojové kódy

fix:“优化订单分析和导出功能"

soobin před 9 měsíci
rodič
revize
a9eef98553

+ 0 - 8
src/main/java/com/szwl/controller/TOrderController.java

@@ -1857,14 +1857,6 @@ public class TOrderController {
     @PostMapping("/orderAnalysis")
     public ResponseModel<?> orderAnalysis(@RequestBody StatisticsParam param) {
         Page<OrderDaoChuDTO> page;
-        if (StringUtils.isNotEmpty(param.getUsername())) {
-            TAdmin admin = R.getDataIfSuccess(szwlFeign.getAdminByUsername(param.getUsername()));
-            if (admin == null) {
-                return R.fail(ResponseCodesEnum.A0001, "商户不存在");
-            }
-            param.setAdminId(String.valueOf(admin.getId()));
-        }
-
         // 如果是查月、年,就查统计数据表,如果是查今日昨日本周,就直接查订单数据表
         if (StringUtils.isNotEmpty(param.getDateType()) && param.getDateType().equals("1")) {
             // 按年统计

+ 33 - 56
src/main/java/com/szwl/service/impl/TOrderServiceImpl.java

@@ -76,6 +76,9 @@ public class TOrderServiceImpl extends ServiceImpl<TOrderMapper, TOrder> impleme
     OrderStatisticsYearService orderStatisticsYearService;
 
     @Autowired
+    TAreaServiceImpl areaService;
+
+    @Autowired
     SzwlFeign szwlFeign;
 
     @Autowired
@@ -629,7 +632,7 @@ public class TOrderServiceImpl extends ServiceImpl<TOrderMapper, TOrder> impleme
                     return result;
                 }
                 if (adminIds.contains(equipment.getAdminId())) {
-                    query.eq(OrderStatisticsMonth::getAdminId, equipment.getAdminId());
+                    query.eq(OrderStatisticsMonth::getClientId, param.getClientId());
                     adminIds.clear();
                 } else {
                     return result;
@@ -670,6 +673,10 @@ public class TOrderServiceImpl extends ServiceImpl<TOrderMapper, TOrder> impleme
             TAdmin admin = R.getDataIfSuccess(szwlFeign.getAdminVo(String.valueOf(orderStatistics.getAdminId())));
             if (StringUtils.isNotEmpty(param.getPacketType()) && param.getPacketType().equals("0")) {
                 // 按商户分组
+                TArea area = areaService.getById(admin.getAreaId());
+                if (area != null) {
+                    orderDaoChu.setAddress(area.getFullName());
+                }
                 String equipmentTotal = R.getDataIfSuccess(szwlFeign.getEquipmentTotal(String.valueOf(orderStatistics.getAdminId())));
                 orderDaoChu.setEquipmentTotal(equipmentTotal);
             } else {
@@ -718,7 +725,7 @@ public class TOrderServiceImpl extends ServiceImpl<TOrderMapper, TOrder> impleme
                     return result;
                 }
                 if (adminIds.contains(equipment.getAdminId())) {
-                    query.eq(OrderStatisticsYear::getAdminId, equipment.getAdminId());
+                    query.eq(OrderStatisticsYear::getClientId, param.getClientId());
                     adminIds.clear();
                 } else {
                     return result;
@@ -759,6 +766,10 @@ public class TOrderServiceImpl extends ServiceImpl<TOrderMapper, TOrder> impleme
             TAdmin admin = R.getDataIfSuccess(szwlFeign.getAdminVo(String.valueOf(orderStatisticsYear.getAdminId())));
             if (StringUtils.isNotEmpty(param.getPacketType()) && param.getPacketType().equals("0")) {
                 // 按商户分组
+                TArea area = areaService.getById(admin.getAreaId());
+                if (area != null) {
+                    orderDaoChu.setAddress(area.getFullName());
+                }
                 String equipmentTotal = R.getDataIfSuccess(szwlFeign.getEquipmentTotal(String.valueOf(orderStatisticsYear.getAdminId())));
                 orderDaoChu.setEquipmentTotal(equipmentTotal);
             } else {
@@ -806,7 +817,7 @@ public class TOrderServiceImpl extends ServiceImpl<TOrderMapper, TOrder> impleme
                             return result;
                         }
                         if (adminIds.contains(equipment.getAdminId())) {
-                            queryWrapper.eq(TOrder::getAdminId, equipment.getAdminId());
+                            queryWrapper.eq(TOrder::getClientId, param.getClientId());
                             adminIds.clear();
                         } else {
                             return result;
@@ -872,7 +883,7 @@ public class TOrderServiceImpl extends ServiceImpl<TOrderMapper, TOrder> impleme
                             return result;
                         }
                         if (adminIds.contains(equipment.getAdminId())) {
-                            queryWrapper.eq(TCoinOrder::getAdminId, equipment.getAdminId());
+                            queryWrapper.eq(TCoinOrder::getClientId, param.getClientId());
                             adminIds.clear();
                         } else {
                             return result;
@@ -939,6 +950,10 @@ public class TOrderServiceImpl extends ServiceImpl<TOrderMapper, TOrder> impleme
                 orderDaoChuDTO.setName(admin.getName());
                 if (!StringUtils.isEmpty(param.getPacketType()) && param.getPacketType().equals("0")) {
                     //商户为单位
+                    TArea area = areaService.getById(admin.getAreaId());
+                    if (area != null) {
+                        orderDaoChuDTO.setAddress(area.getFullName());
+                    }
                     String equipmentTotal = R.getDataIfSuccess(szwlFeign.getEquipmentTotal(adminId1));
                     orderDaoChuDTO.setEquipmentTotal(equipmentTotal);
                 } else {
@@ -987,7 +1002,7 @@ public class TOrderServiceImpl extends ServiceImpl<TOrderMapper, TOrder> impleme
                     return;
                 }
                 if (adminIds.contains(equipment.getAdminId())) {
-                    query.eq(OrderStatisticsYear::getAdminId, equipment.getAdminId());
+                    query.eq(OrderStatisticsYear::getClientId, param.getClientId());
                     adminIds.clear();
                 } else {
                     return;
@@ -1082,7 +1097,7 @@ public class TOrderServiceImpl extends ServiceImpl<TOrderMapper, TOrder> impleme
                     return;
                 }
                 if (adminIds.contains(equipment.getAdminId())) {
-                    query.eq(OrderStatisticsMonth::getAdminId, equipment.getAdminId());
+                    query.eq(OrderStatisticsMonth::getClientId, param.getClientId());
                     adminIds.clear();
                 } else {
                     return;
@@ -1243,7 +1258,6 @@ public class TOrderServiceImpl extends ServiceImpl<TOrderMapper, TOrder> impleme
         if (StringUtils.isNotEmpty(param.getStartDate()) && StringUtils.isNotEmpty(param.getEndDate())) {
             if (param.getIfForeign().equals("0")) {
                 // 查国内,即线上订单
-                LambdaQueryWrapper<TOrder> queryWrapper = new LambdaQueryWrapper<>();
                 if (StringUtils.isNotEmpty(param.getClientId())) {
                     // 如果type等于1,就查询设备所属商家是否是旗下管理的
                     if (param.getType() == 4) {
@@ -1252,13 +1266,10 @@ public class TOrderServiceImpl extends ServiceImpl<TOrderMapper, TOrder> impleme
                             return orderDaoChuDTOList;
                         }
                         if (param.getAdminIds().contains(equipment.getAdminId())) {
-                            queryWrapper.eq(TOrder::getAdminId, equipment.getAdminId());
                             param.setAdminIds(null);
                         } else {
                             return orderDaoChuDTOList;
                         }
-                    } else {
-                        queryWrapper.eq(TOrder::getClientId, param.getClientId());
                     }
                 }
                 // 条件:adminId,如果type等于1,就查询账号是否是旗下管理的
@@ -1269,45 +1280,23 @@ public class TOrderServiceImpl extends ServiceImpl<TOrderMapper, TOrder> impleme
                     }
                     if (param.getType() == 4) {
                         if (param.getAdminIds().contains(admin.getId())) {
-                            queryWrapper.eq(TOrder::getAdminId, admin.getId());
                             param.setAdminId(String.valueOf(admin.getId()));
                             param.setAdminIds(null);
                         } else {
                             return orderDaoChuDTOList;
                         }
                     } else if (param.getType() == 0) {
-                        queryWrapper.eq(TOrder::getAdminId, admin.getId());
                         param.setAdminId(String.valueOf(admin.getId()));
                     }
                 }
                 // 条件:adminList
                 if (param.getAdminIds() != null && !param.getAdminIds().isEmpty()) {
-                    queryWrapper.in(TOrder::getAdminId, param.getAdminIds());
                     param.setAdminId(null);
                 }
-                // 条件:companyType
-                if (StringUtils.isNotBlank(param.getCompanyType())) {
-                    if ("0".equals(param.getCompanyType())) {
-                        queryWrapper.and(i -> i.isNull(TOrder::getCompanyType).or().eq(TOrder::getCompanyType, "0"));
-                    } else if ("1".equals(param.getCompanyType())) {
-                        queryWrapper.eq(TOrder::getCompanyType, "1");
-                    }
-                }
-                // 条件:时间范围
-                queryWrapper.between(TOrder::getCreateDate, param.getStartDate(), param.getEndDate());
-                // 条件:支付状态
-                queryWrapper.eq(TOrder::getStatus, 1);
-                // 条件:type == 2 or type == 1
-                if ("2".equals(param.getPacketType())) {
-                    queryWrapper.groupBy(TOrder::getAdminId);
-                } else if ("1".equals(param.getPacketType())) {
-                    queryWrapper.groupBy(TOrder::getClientId);
-                }
                 param.setCurrent((pageNo - 1) * param.getSize());
                 orderDaoChuDTOList = tOrderMapper.summaryStatistics(param);
             } else {
                 // 查国外,即线下订单
-                LambdaQueryWrapper<TCoinOrder> queryWrapper = new LambdaQueryWrapper<>();
                 if (StringUtils.isNotEmpty(param.getClientId())) {
                     // 如果type等于1,就查询设备所属商家是否是旗下管理的
                     if (param.getType() == 4) {
@@ -1316,13 +1305,10 @@ public class TOrderServiceImpl extends ServiceImpl<TOrderMapper, TOrder> impleme
                             return orderDaoChuDTOList;
                         }
                         if (param.getAdminIds().contains(equipment.getAdminId())) {
-                            queryWrapper.eq(TCoinOrder::getAdminId, equipment.getAdminId());
                             param.setAdminIds(null);
                         } else {
                             return orderDaoChuDTOList;
                         }
-                    } else {
-                        queryWrapper.eq(TCoinOrder::getClientId, param.getClientId());
                     }
                 }
                 // 条件:adminId,如果type等于1,就查询账号是否是旗下管理的
@@ -1333,40 +1319,19 @@ public class TOrderServiceImpl extends ServiceImpl<TOrderMapper, TOrder> impleme
                     }
                     if (param.getType() == 4) {
                         if (param.getAdminIds().contains(admin.getId())) {
-                            queryWrapper.eq(TCoinOrder::getAdminId, admin.getId());
                             param.setAdminId(String.valueOf(admin.getId()));
                             param.setAdminIds(null);
                         } else {
                             return orderDaoChuDTOList;
                         }
                     } else if (param.getType() == 0) {
-                        queryWrapper.eq(TCoinOrder::getAdminId, admin.getId());
                         param.setAdminId(String.valueOf(admin.getId()));
                     }
                 }
                 // 条件:adminList
                 if (param.getAdminIds() != null && !param.getAdminIds().isEmpty()) {
-                    queryWrapper.in(TCoinOrder::getAdminId, param.getAdminIds());
                     param.setAdminId(null);
                 }
-                // 条件:companyType
-                if (StringUtils.isNotBlank(param.getCompanyType())) {
-                    if ("0".equals(param.getCompanyType())) {
-                        queryWrapper.and(i -> i.isNull(TCoinOrder::getCompanyType).or().eq(TCoinOrder::getCompanyType, "0"));
-                    } else if ("1".equals(param.getCompanyType())) {
-                        queryWrapper.eq(TCoinOrder::getCompanyType, "1");
-                    }
-                }
-                // 条件:时间范围
-                queryWrapper.between(TCoinOrder::getCreateDate, param.getStartDate(), param.getEndDate());
-                // 条件:支付状态
-                queryWrapper.eq(TCoinOrder::getStatus, 1);
-                // 条件:type == 2 or type == 1
-                if ("2".equals(param.getPacketType())) {
-                    queryWrapper.groupBy(TCoinOrder::getAdminId);
-                } else if ("1".equals(param.getPacketType())) {
-                    queryWrapper.groupBy(TCoinOrder::getClientId);
-                }
                 param.setCurrent((pageNo - 1) * param.getSize());
                 orderDaoChuDTOList = tCoinOrderMapper.summaryStatistics(param);
             }
@@ -1381,6 +1346,10 @@ public class TOrderServiceImpl extends ServiceImpl<TOrderMapper, TOrder> impleme
                 orderDaoChuDTO.setName(admin.getName());
                 if (!StringUtils.isEmpty(param.getPacketType()) && param.getPacketType().equals("0")) {
                     //商户为单位
+                    TArea area = areaService.getById(admin.getAreaId());
+                    if (area != null) {
+                        orderDaoChuDTO.setAddress(area.getFullName());
+                    }
                     String equipmentTotal = R.getDataIfSuccess(szwlFeign.getEquipmentTotal(adminId1));
                     orderDaoChuDTO.setEquipmentTotal(equipmentTotal);
                 } else {
@@ -1449,6 +1418,10 @@ public class TOrderServiceImpl extends ServiceImpl<TOrderMapper, TOrder> impleme
             TAdmin admin = R.getDataIfSuccess(szwlFeign.getAdminVo(String.valueOf(orderStatisticsYear.getAdminId())));
             // 按商户分组
             String equipmentTotal = R.getDataIfSuccess(szwlFeign.getEquipmentTotal(String.valueOf(orderStatisticsYear.getAdminId())));
+            TArea area = areaService.getById(admin.getAreaId());
+            if (area != null) {
+                target.setAddress(area.getFullName());
+            }
             target.setUsername(admin.getUsername());
             target.setName(admin.getName());
             target.setPhone(admin.getPhone());
@@ -1466,6 +1439,10 @@ public class TOrderServiceImpl extends ServiceImpl<TOrderMapper, TOrder> impleme
             StatisticsAdminTarget target = new StatisticsAdminTarget();
             TAdmin admin = R.getDataIfSuccess(szwlFeign.getAdminVo(String.valueOf(orderStatisticsMonth.getAdminId())));
             // 按商户分组
+            TArea area = areaService.getById(admin.getAreaId());
+            if (area != null) {
+                target.setAddress(area.getFullName());
+            }
             String equipmentTotal = R.getDataIfSuccess(szwlFeign.getEquipmentTotal(String.valueOf(orderStatisticsMonth.getAdminId())));
             target.setUsername(admin.getUsername());
             target.setName(admin.getName());