From 8b031a2a2965726ab1d3e1e2f448302530e1a531 Mon Sep 17 00:00:00 2001
From: lisy <linlangsur163@163.com>
Date: 星期四, 20 七月 2023 18:08:30 +0800
Subject: [PATCH] 完成开始上课的todo:查询课包信息

---
 cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java |  116 ++++++++++++++++++++++++++++++++++++++++------------------
 1 files changed, 80 insertions(+), 36 deletions(-)

diff --git a/cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java b/cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java
index 96b94e1..f1accb7 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java
@@ -17,7 +17,9 @@
 import com.dsh.account.feignclient.course.model.*;
 import com.dsh.account.feignclient.other.ImgConfigClient;
 import com.dsh.account.feignclient.other.RechargeConfigClient;
+import com.dsh.account.feignclient.other.SiteClient;
 import com.dsh.account.feignclient.other.StoreClient;
+import com.dsh.account.feignclient.other.model.SiteBooking;
 import com.dsh.account.feignclient.other.model.Store;
 import com.dsh.account.feignclient.other.model.StoreDetailOfCourse;
 import com.dsh.account.feignclient.other.model.TImgConfig;
@@ -30,7 +32,6 @@
 import com.dsh.account.model.vo.classDetails.CourseVenue;
 import com.dsh.account.model.vo.classDetails.ExerciseVideo;
 import com.dsh.account.model.vo.classDetails.RegisteredCourse;
-import com.dsh.account.model.vo.classDetails.WeekedCourse;
 import com.dsh.account.model.vo.classDetails.classInsVo.ClassInfoVo;
 import com.dsh.account.model.vo.userBenefitDetail.*;
 import com.dsh.account.service.TAppUserService;
@@ -39,13 +40,13 @@
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.util.StringUtils;
-import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.multipart.MultipartFile;
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
 import java.io.IOException;
 import java.math.BigDecimal;
+import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.*;
 import java.util.stream.Collectors;
@@ -119,11 +120,14 @@
     @Resource
     private CoursePackageConfigClient cpconClient;
 
-    @Autowired
+    @Resource
     private PayMoneyUtil payMoneyUtil;
 
+    @Resource
+    private SiteClient stClient;
+
     @Override
-    public ClassInfoVo queryUserOfStus(Integer id,String latitude,String longitude) {
+    public ClassInfoVo queryUserOfStus(Integer id) {
         TAppUser tAppUser = this.baseMapper.selectById(id);
         ClassInfoVo classInfoVo = new ClassInfoVo();
         if (ToolUtil.isNotEmpty(tAppUser)){
@@ -142,6 +146,7 @@
                 classInfoVo.setHeight(tStudent.getHeight());
                 classInfoVo.setWeight(tStudent.getWeight());
                 classInfoVo.setBmi(tStudent.getBmi());
+                classInfoVo.setBodyStatus(BMIBodyUtil.getBodyStatus(tStudent.getBmi()));
 
                 List<RegisteredCourse> courseList = new ArrayList<>();
 //                总学时数
@@ -168,9 +173,6 @@
                 classInfoVo.setDeductedNums(deduct);
                 classInfoVo.setRemainingNums(remain);
 
-                List<CourseOfStoreVo> storeOfCourses = paymentClient.getStoreOfCourses();
-                classInfoVo.setWeekCourseList(dealDatas(storeOfCourses,longitude,latitude));
-
                 List<ExerciseVideo> videos = new ArrayList<>();
 
                 classInfoVo.setExerciseVideoList(videos);
@@ -192,36 +194,31 @@
      * @param latitude
      * @return
      */
-    public List<WeekedCourse> dealDatas(List<CourseOfStoreVo> storeOfCourses,String longitude ,@RequestBody String latitude){
-        List<WeekedCourse> weekedCourses = new ArrayList<>();
-        for (int i = 1; i < 8; i++) {
-            WeekedCourse weekedCourse = new WeekedCourse();
-            List<CourseVenue> courseVenues = new ArrayList<>();
-            Map<Integer, List<CourseOfStoreVo>> map = storeOfCourses.stream().collect(Collectors.groupingBy(CourseOfStoreVo::getStoreId));
-            for (Map.Entry<Integer, List<CourseOfStoreVo>> integerListEntry : map.entrySet()) {
-                List<CourseOfStoreVo> value = integerListEntry.getValue();
-                CourseVenue courseVenue = new CourseVenue();
-                courseVenue.setStoreId(value.get(0).getStoreId());
-                courseVenue.setAreaName(value.get(0).getStoreName());
-                courseVenue.setSiteDistance(LonlatUtils.distance(Double.parseDouble(longitude), Double.parseDouble(latitude),
-                        Double.parseDouble(value.get(0).getLon()), Double.parseDouble(value.get(0).getLat())) + "");
+    public List<CourseVenue> dealDatas(List<CourseOfStoreVo> storeOfCourses, String longitude , String latitude){
+        List<CourseVenue> courseVenues = new ArrayList<>();
+        Map<Integer, List<CourseOfStoreVo>> map = storeOfCourses.stream().collect(Collectors.groupingBy(CourseOfStoreVo::getStoreId));
+        for (Map.Entry<Integer, List<CourseOfStoreVo>> integerListEntry : map.entrySet()) {
+            Integer storeId = integerListEntry.getKey();
+            List<CourseOfStoreVo> value = integerListEntry.getValue();
+            CourseVenue courseVenue = new CourseVenue();
+            courseVenue.setStoreId(storeId);
+            courseVenue.setAreaName(value.get(0).getCourseName());
+            courseVenue.setSiteDistance(LonlatUtils.distance(Double.parseDouble(longitude), Double.parseDouble(latitude),
+                    Double.parseDouble(value.get(0).getLon()), Double.parseDouble(value.get(0).getLat())) + "");
 
-                List<CourseVenue.CouList> courses = new ArrayList<>();
-                for (CourseOfStoreVo courseOfStoreVo : value) {
-                    CourseVenue.CouList couList = new CourseVenue.CouList();
-                    couList.setCourseID(courseOfStoreVo.getCourseId());
-                    couList.setCourseName(courseOfStoreVo.getCourseName());
-                    couList.setTimeStr(courseOfStoreVo.getClassStartTime() + "-" + courseOfStoreVo.getClassEndTime());
-                    couList.setDetail("");
-                    courses.add(couList);
-                }
-                courseVenue.setCourses(courses);
-                courseVenues.add(courseVenue);
+            List<CourseVenue.CouList> courses = new ArrayList<>();
+            for (CourseOfStoreVo courseOfStoreVo : value) {
+                CourseVenue.CouList couList = new CourseVenue.CouList();
+                couList.setCourseID(courseOfStoreVo.getCourseId());
+                couList.setCourseName(courseOfStoreVo.getCourseName());
+                couList.setTimeStr(courseOfStoreVo.getClassStartTime() + "-" + courseOfStoreVo.getClassEndTime());
+                couList.setDetail("¥" + courseOfStoreVo.getCoursePrice() + "/会员扣2学时");
+                courses.add(couList);
             }
-            weekedCourse.setDetails(courseVenues);
-            weekedCourses.add(weekedCourse);
+            courseVenue.setCourses(courses);
+            courseVenues.add(courseVenue);
         }
-        return weekedCourses;
+        return courseVenues;
     }
 
 
@@ -545,7 +542,22 @@
             }
         }
 //            4.场地预约
-        // TODO: 2023/7/14 账单的场地预约查询
+        List<SiteBooking> allSiteBookingList = stClient.getAllSiteBookingList(appUserId);
+        if (allSiteBookingList.size() >  0){
+            for (SiteBooking booking : allSiteBookingList) {
+                BillingDetailsVo.ConsumeDetail consumeDetail = new BillingDetailsVo.ConsumeDetail();
+                if (booking.getStatus() != 5){
+                    consumeDetail.setConsumeName(RechargeRecordEnum.VENUE_RESERVATION.getMsg());
+                    consumeDetail.setConsumeAmount("-" + booking.getPayMoney());
+                    consumeDetail.setConsumeTime(simpleDateFormat.format(booking.getPayTime()));
+                }else {
+                    consumeDetail.setConsumeName(RechargeRecordEnum.CANCEL_VENUE_RESERVATION.getMsg());
+                    consumeDetail.setConsumeAmount("+" + booking.getPayMoney());
+                    consumeDetail.setConsumeTime(simpleDateFormat.format(booking.getCancelTime()));
+                }
+                details.add(consumeDetail);
+            }
+        }
 
 //            5.智慧球场
 //            6.年度会员
@@ -576,7 +588,24 @@
                 details.add(consumeDetail);
             }
         }
-
+        if (details.size() > 0 ){
+            Collections.sort(details, new Comparator<BillingDetailsVo.ConsumeDetail>() {
+                @Override
+                public int compare(BillingDetailsVo.ConsumeDetail record1, BillingDetailsVo.ConsumeDetail record2) {
+                    SimpleDateFormat dateFormat = new SimpleDateFormat("MM-dd HH:mm");
+                    Date date1 = null;
+                    Date date2 = null;
+                    try {
+                        date1 = dateFormat.parse(record1.getConsumeTime());
+                        date2 = dateFormat.parse(record2.getConsumeTime());
+                    } catch (ParseException e) {
+                        e.printStackTrace();
+                    }
+                    // 倒序排序
+                    return date2.compareTo(date1);
+                }
+            });
+        }
         vo.setDetails(details);
         return vo;
     }
@@ -1112,4 +1141,19 @@
     }
 
 
+    @Override
+    public List<CourseVenue> queryWeekOfCourseDetails(Integer appUserId ,Integer stuId, String time,String longitude,String latitude) {
+        List<CourseVenue> courseVenues = new ArrayList<>();
+        WeeksOfCourseRest weeksOfCourseRest = new WeeksOfCourseRest();
+        weeksOfCourseRest.setTime(time);
+        weeksOfCourseRest.setStuId(stuId);
+        weeksOfCourseRest.setAppUserId(appUserId);
+        List<CourseOfStoreVo> storeOfCourses = paymentClient.getStoreOfCourses(weeksOfCourseRest);
+        if (storeOfCourses.size() > 0 ){
+            courseVenues = dealDatas(storeOfCourses,longitude,latitude);
+        }
+        return courseVenues;
+    }
+
+
 }

--
Gitblit v1.7.1