From 252253187765e71f2953b8c00e2497ff29a0deaf Mon Sep 17 00:00:00 2001
From: lisy <linlangsur163@163.com>
Date: 星期三, 26 七月 2023 17:05:36 +0800
Subject: [PATCH] 开始上课的预约记录修改

---
 cloud-server-account/src/main/java/com/dsh/account/service/impl/TStudentServiceImpl.java |   69 +++++++++++++++++++++++++++++++++-
 1 files changed, 67 insertions(+), 2 deletions(-)

diff --git a/cloud-server-account/src/main/java/com/dsh/account/service/impl/TStudentServiceImpl.java b/cloud-server-account/src/main/java/com/dsh/account/service/impl/TStudentServiceImpl.java
index c9e98a6..9a11a95 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/service/impl/TStudentServiceImpl.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/service/impl/TStudentServiceImpl.java
@@ -563,7 +563,7 @@
     }
 
     @Override
-    public AppointmentRecordVo getAppointmentRecords(Integer stuId, Integer appUserId) {
+    public AppointmentRecordVo getAppointmentRecords(Integer stuId, Integer appUserId,Integer appointStatus,Integer timeType,String search) {
         AppointmentRecordVo recordVo = new AppointmentRecordVo();
         TStudent tStudent = this.baseMapper.selectOne(new QueryWrapper<TStudent>()
                 .eq("id",stuId )
@@ -571,7 +571,72 @@
         if (ToolUtil.isNotEmpty(tStudent)){
             recordVo.setStuId(tStudent.getId());
             recordVo.setStuName(tStudent.getName());
-            recordVo.setAppointList(couPayClient.obtainStudentClassDetailsData(stuId));
+            List<RecordAppoint> recordAppoints = couPayClient.obtainStudentClassDetailsData(stuId);
+            if (ToolUtil.isEmpty(appointStatus)){
+                recordVo.setAppointStatus(0);
+            }else {
+                recordVo.setAppointStatus(appointStatus);
+                recordAppoints = recordAppoints.stream()
+                        .filter(record -> record.getStatus().equals(appointStatus))
+                        .collect(Collectors.toList());
+            }
+            if (ToolUtil.isNotEmpty(search)){
+                recordVo.setAppointStatus(appointStatus);
+                recordAppoints = recordAppoints.stream()
+                        .filter(record -> record.getCoursePackageName().contains(search))
+                        .collect(Collectors.toList());
+            }
+            if (ToolUtil.isNotEmpty(timeType)){
+                Date lastOfDate = DateUtil.getLastOfDate();
+                switch (timeType){
+                    case 1:
+                        Date lastWeekStartDate = DateUtil.getLastWeekStartDate();
+                        recordAppoints = recordAppoints.stream()
+                                .filter(record -> {
+                                    try {
+                                        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
+                                        Date time = sdf.parse(record.getTimeFrame().substring(11));
+                                        return !time.before(lastWeekStartDate) && !time.after(lastOfDate);
+                                    } catch (ParseException e) {
+                                        return false;
+                                    }
+                                })
+                                .collect(Collectors.toList());
+                        break;
+                    case 2:
+                        Date lastMonthStartDate = DateUtil.getLastMonthStartDate();
+                        recordAppoints = recordAppoints.stream()
+                                .filter(record -> {
+                                    try {
+                                        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+                                        Date time = sdf.parse(record.getTimeFrame().substring(11));
+                                        return !time.before(lastMonthStartDate) && !time.after(lastOfDate);
+                                    } catch (ParseException e) {
+                                        return false;
+                                    }
+                                })
+                                .collect(Collectors.toList());
+                        break;
+                    case 3:
+                        Date lastYearStartDate = DateUtil.getLastYearStartDate();
+                        recordAppoints = recordAppoints.stream()
+                                .filter(record -> {
+                                    try {
+                                        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
+                                        Date time = sdf.parse(record.getTimeFrame().substring(11));
+                                        return !time.before(lastYearStartDate) && !time.after(lastOfDate);
+                                    } catch (ParseException e) {
+                                        return false;
+                                    }
+                                })
+                                .collect(Collectors.toList());
+                        break;
+                    default:
+                        break;
+
+                }
+            }
+            recordVo.setAppointList(recordAppoints);
         }
         return recordVo;
     }

--
Gitblit v1.7.1