From c678894e37d15cca116d962eba5c107c99176945 Mon Sep 17 00:00:00 2001 From: lisy <linlangsur163@163.com> Date: 星期四, 20 七月 2023 17:39:05 +0800 Subject: [PATCH] 开始上课的主页中课包列表展示;bmi工具类匹配对应的身体状态 --- cloud-server-account/src/main/java/com/dsh/account/feignclient/course/model/WeeksOfCourseRest.java | 18 ++++ cloud-server-course/src/main/java/com/dsh/course/util/DateTimeHelper.java | 13 +++ cloud-server-account/src/main/java/com/dsh/account/controller/ClassDetailsController.java | 42 ++++++++-- cloud-server-account/src/main/java/com/dsh/account/util/BMIBodyUtil.java | 21 +++++ cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java | 51 +++++++++--- cloud-server-account/src/main/java/com/dsh/account/model/vo/classDetails/classInsVo/ClassInfoVo.java | 6 cloud-server-course/src/main/java/com/dsh/course/feignclient/model/CourseOfStoreVo.java | 11 -- cloud-server-account/src/main/java/com/dsh/account/model/vo/classDetails/classInsVo/StuPhysicalVo.java | 2 cloud-server-account/src/main/java/com/dsh/account/feignclient/course/CoursePaymentClient.java | 2 cloud-server-course/src/main/java/com/dsh/course/feignclient/model/WeeksOfCourseRest.java | 18 ++++ cloud-server-course/src/main/java/com/dsh/course/feignclient/CoursePaymentClient.java | 2 cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java | 21 +++- cloud-server-account/src/main/java/com/dsh/account/service/TAppUserService.java | 5 + 13 files changed, 168 insertions(+), 44 deletions(-) diff --git a/cloud-server-account/src/main/java/com/dsh/account/controller/ClassDetailsController.java b/cloud-server-account/src/main/java/com/dsh/account/controller/ClassDetailsController.java index 5079f5f..d757092 100644 --- a/cloud-server-account/src/main/java/com/dsh/account/controller/ClassDetailsController.java +++ b/cloud-server-account/src/main/java/com/dsh/account/controller/ClassDetailsController.java @@ -6,9 +6,9 @@ import com.dsh.account.feignclient.competition.model.PurchaseRecordVo; import com.dsh.account.model.vo.classDetails.AppointmentRecordVo; import com.dsh.account.model.vo.classDetails.ClasspaymentRequest; +import com.dsh.account.model.vo.classDetails.CourseVenue; import com.dsh.account.model.vo.classDetails.classInsVo.*; import com.dsh.account.model.vo.commentDetail.StuCommentsVo; -import com.dsh.account.model.vo.exploreDetail.LonLatRequest; import com.dsh.account.model.vo.medalDetail.GongVo; import com.dsh.account.model.vo.medalDetail.StuMedalVo; import com.dsh.account.model.vo.sourceDetail.CouponStuAvailableVo; @@ -18,10 +18,7 @@ import com.dsh.account.service.StudentHonorService; import com.dsh.account.service.TAppUserService; import com.dsh.account.service.TStudentService; -import com.dsh.account.util.DateUtil; -import com.dsh.account.util.ResultUtil; -import com.dsh.account.util.TokenUtil; -import com.dsh.account.util.ToolUtil; +import com.dsh.account.util.*; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; @@ -29,7 +26,10 @@ import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.transaction.annotation.Transactional; -import org.springframework.web.bind.annotation.*; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.RestController; import java.text.SimpleDateFormat; import java.util.ArrayList; @@ -68,17 +68,42 @@ @ApiImplicitParams({ @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) - public ResultUtil<ClassInfoVo> queryCouponRecord(LonLatRequest lonLatRequest){ + public ResultUtil<ClassInfoVo> queryCouponRecord(){ try { Integer userIdFormRedis = tokenUtil.getUserIdFormRedis(); if(null == userIdFormRedis){ return ResultUtil.tokenErr(); } - return ResultUtil.success(tappuService.queryUserOfStus(userIdFormRedis,lonLatRequest.getLongitude(),lonLatRequest.getLatitude())); + return ResultUtil.success(tappuService.queryUserOfStus(userIdFormRedis)); }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); } + } + + + @ResponseBody + @PostMapping("/api/startCource/weeksOfCourseDetails") + @ApiOperation(value = "上课首页-课程列表", tags = {"APP-开始上课"}) + @ApiImplicitParams({ + @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."), + @ApiImplicitParam(value = "查询时间yyyy-MM-dd", name = "time", required = true, dataType = "string"), + @ApiImplicitParam(value = "学员id", name = "stuId", required = true, dataType = "int"), + @ApiImplicitParam(value = "用户经度", name = "longitude", required = true, dataType = "string"), + @ApiImplicitParam(value = "用户纬度", name = "latitude", required = true, dataType = "string"), + }) + public ResultUtil<List<CourseVenue>> queryWeeksOfClassInfo(String time,Integer stuId, String longitude, String latitude){ + try { + Integer appUserId = tokenUtil.getUserIdFormRedis(); + if(null == appUserId){ + return ResultUtil.tokenErr(); + } + return ResultUtil.success(tappuService.queryWeekOfCourseDetails(appUserId,stuId,time,longitude,latitude)); + }catch (Exception e){ + e.printStackTrace(); + return ResultUtil.runErr(); + } + } @@ -94,6 +119,7 @@ TStudent tStudent = istuService.getById(stuID); if (ToolUtil.isNotEmpty(tStudent)){ vo.setBmi(tStudent.getBmi()); + vo.setBodyStatus(BMIBodyUtil.getBodyStatus(tStudent.getBmi())); vo.setUrl(tStudent.getLateralSurface()); vo.setHeight(tStudent.getHeight()); vo.setWeight(tStudent.getWeight()); diff --git a/cloud-server-account/src/main/java/com/dsh/account/feignclient/course/CoursePaymentClient.java b/cloud-server-account/src/main/java/com/dsh/account/feignclient/course/CoursePaymentClient.java index cc350a7..b5e5e0b 100644 --- a/cloud-server-account/src/main/java/com/dsh/account/feignclient/course/CoursePaymentClient.java +++ b/cloud-server-account/src/main/java/com/dsh/account/feignclient/course/CoursePaymentClient.java @@ -17,7 +17,7 @@ @PostMapping("/base/coursePack/storeOfCourse") - List<CourseOfStoreVo> getStoreOfCourses(); + List<CourseOfStoreVo> getStoreOfCourses(@RequestBody WeeksOfCourseRest courseRest); @PostMapping("/base/coursePack/stuOfCourses") StuWithCoursesListVo getStuOfCoursesDetails(@RequestBody GetStuOfCoursesDetails getStuOfCoursesDetails); diff --git a/cloud-server-account/src/main/java/com/dsh/account/feignclient/course/model/WeeksOfCourseRest.java b/cloud-server-account/src/main/java/com/dsh/account/feignclient/course/model/WeeksOfCourseRest.java new file mode 100644 index 0000000..7793418 --- /dev/null +++ b/cloud-server-account/src/main/java/com/dsh/account/feignclient/course/model/WeeksOfCourseRest.java @@ -0,0 +1,18 @@ +package com.dsh.account.feignclient.course.model; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class WeeksOfCourseRest { + + @ApiModelProperty(value = "学员id") + private Integer stuId; + + @ApiModelProperty(value = "用户id") + private Integer appUserId; + + @ApiModelProperty(value = "时间 ") + private String time; + +} diff --git a/cloud-server-account/src/main/java/com/dsh/account/model/vo/classDetails/classInsVo/ClassInfoVo.java b/cloud-server-account/src/main/java/com/dsh/account/model/vo/classDetails/classInsVo/ClassInfoVo.java index 0ebd4b9..728e10c 100644 --- a/cloud-server-account/src/main/java/com/dsh/account/model/vo/classDetails/classInsVo/ClassInfoVo.java +++ b/cloud-server-account/src/main/java/com/dsh/account/model/vo/classDetails/classInsVo/ClassInfoVo.java @@ -3,7 +3,6 @@ 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 io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -42,6 +41,9 @@ @ApiModelProperty(value = "bmi指数") private Double bmi; + @ApiModelProperty(value = "身体状态") + private String bodyStatus; + @ApiModelProperty(value = "课包-已报名课程列表") private List<RegisteredCourse> courseList; @@ -54,8 +56,6 @@ @ApiModelProperty(value = "剩余学时数") private Integer remainingNums; - @ApiModelProperty(value = "课包-本周可预约课包列表") - private List<WeekedCourse> weekCourseList; @ApiModelProperty(value = "课程-课后练习视频2个列表") private List<ExerciseVideo> exerciseVideoList; diff --git a/cloud-server-account/src/main/java/com/dsh/account/model/vo/classDetails/classInsVo/StuPhysicalVo.java b/cloud-server-account/src/main/java/com/dsh/account/model/vo/classDetails/classInsVo/StuPhysicalVo.java index e07a661..2b8badc 100644 --- a/cloud-server-account/src/main/java/com/dsh/account/model/vo/classDetails/classInsVo/StuPhysicalVo.java +++ b/cloud-server-account/src/main/java/com/dsh/account/model/vo/classDetails/classInsVo/StuPhysicalVo.java @@ -12,6 +12,8 @@ private Double weight; @ApiModelProperty(value = "BMI参数") private Double bmi; + @ApiModelProperty(value = "身体状态") + private String bodyStatus; @ApiModelProperty(value = "图片链接") private String url; } diff --git a/cloud-server-account/src/main/java/com/dsh/account/service/TAppUserService.java b/cloud-server-account/src/main/java/com/dsh/account/service/TAppUserService.java index f269beb..6dc643d 100644 --- a/cloud-server-account/src/main/java/com/dsh/account/service/TAppUserService.java +++ b/cloud-server-account/src/main/java/com/dsh/account/service/TAppUserService.java @@ -6,6 +6,7 @@ import com.dsh.account.model.JoinPlayPaiVo; import com.dsh.account.model.LoginSMSCodeVo; import com.dsh.account.model.LoginWeChatVo; +import com.dsh.account.model.vo.classDetails.CourseVenue; import com.dsh.account.model.vo.classDetails.classInsVo.ClassInfoVo; import com.dsh.account.model.vo.userBenefitDetail.*; import com.dsh.account.util.ResultUtil; @@ -24,7 +25,7 @@ */ public interface TAppUserService extends IService<TAppUser> { - ClassInfoVo queryUserOfStus(Integer id,String longitude,String latitude); + ClassInfoVo queryUserOfStus(Integer id); /** @@ -133,4 +134,6 @@ ResultUtil exchangeAddPaymentCallback(String code, String orderNumber,Integer payType); List<StoreResponse> queryStoresOfExchange(Integer goodsType,Integer pointsMerId); + + List<CourseVenue> queryWeekOfCourseDetails(Integer appUserId ,Integer stuId, String time, String longitude, String latitude); } 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 c00f7e4..0202bb2 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 @@ -41,7 +41,6 @@ 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; @@ -129,7 +128,7 @@ 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)){ @@ -148,6 +147,7 @@ classInfoVo.setHeight(tStudent.getHeight()); classInfoVo.setWeight(tStudent.getWeight()); classInfoVo.setBmi(tStudent.getBmi()); + classInfoVo.setBodyStatus(BMIBodyUtil.getBodyStatus(tStudent.getBmi())); List<RegisteredCourse> courseList = new ArrayList<>(); // 总学时数 @@ -174,9 +174,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); @@ -198,7 +195,7 @@ * @param latitude * @return */ - public List<WeekedCourse> dealDatas(List<CourseOfStoreVo> storeOfCourses,String longitude ,@RequestBody String latitude){ + public List<WeekedCourse> dealDatas(List<CourseOfStoreVo> storeOfCourses, String longitude , String latitude){ List<WeekedCourse> weekedCourses = new ArrayList<>(); for (int i = 1; i < 8; i++) { WeekedCourse weekedCourse = new WeekedCourse(); @@ -1150,4 +1147,16 @@ } + @Override + public List<CourseVenue> queryWeekOfCourseDetails(Integer appUserId ,Integer stuId, String time,String longitude,String latitude) { + WeeksOfCourseRest weeksOfCourseRest = new WeeksOfCourseRest(); + weeksOfCourseRest.setTime(time); + weeksOfCourseRest.setStuId(stuId); + weeksOfCourseRest.setAppUserId(appUserId); + paymentClient.getStoreOfCourses(weeksOfCourseRest); +// TODO: 2023/7/20 查询课包周课包列表 + return null; + } + + } diff --git a/cloud-server-account/src/main/java/com/dsh/account/util/BMIBodyUtil.java b/cloud-server-account/src/main/java/com/dsh/account/util/BMIBodyUtil.java new file mode 100644 index 0000000..b83bc6e --- /dev/null +++ b/cloud-server-account/src/main/java/com/dsh/account/util/BMIBodyUtil.java @@ -0,0 +1,21 @@ +package com.dsh.account.util; + + + +public class BMIBodyUtil { + + public static String getBodyStatus(double bmi) { + if (bmi < 18.5) { + return "偏瘦"; + } else if (bmi >= 18.5 && bmi < 24) { + return "正常"; + } else if (bmi >= 24 && bmi < 28) { + return "偏胖"; + } else if (bmi >= 28 && bmi < 32) { + return "肥胖"; + } else { + return "非常肥胖"; + } + } + +} diff --git a/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java b/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java index 346ebf8..2d21968 100644 --- a/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java +++ b/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java @@ -33,11 +33,9 @@ import javax.servlet.http.HttpServletResponse; import java.io.PrintWriter; import java.math.BigDecimal; +import java.text.ParseException; import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.stream.Collectors; @Api @@ -118,20 +116,43 @@ * 获取发布的 课包列表 */ @PostMapping("/base/coursePack/storeOfCourse") - public List<CourseOfStoreVo> getStuCourseWithStores(){ - List<CourseOfStoreVo> courseOfStoreVos = tcpService.queryStoreOfCourse(); - if (courseOfStoreVos.size() > 0){ - for (CourseOfStoreVo courseOfStoreVo : courseOfStoreVos) { - String[] split = courseOfStoreVo.getClassWeeks().split(";"); - List<Integer> integers = new ArrayList<>(); - for (String s : split) { - int num = Integer.parseInt(s); - integers.add(num); + public List<CourseOfStoreVo> getStuCourseWithStores(@RequestBody WeeksOfCourseRest courseRest){ + List<CourseOfStoreVo> course = new ArrayList<>(); + SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); + try { + Date parse = simpleDateFormat.parse(courseRest.getTime()); + List<TCoursePackagePayment> list = packagePaymentService.list(new QueryWrapper<TCoursePackagePayment>() + .eq("appUserId",courseRest.getAppUserId() ) + .eq("studentId",courseRest.getStuId()) + .eq("payStatus",2) + .eq("status",1) + .eq("state",1) + .groupBy("coursePackageId")); + if (list.size() > 0){ + for (TCoursePackagePayment tCoursePackagePayment : list) { + TCoursePackage tCoursePackage = tcpService.getById(tCoursePackagePayment.getCoursePackageId()); +// 获取课程有效结束时间,判断 查询的日期parse 是否在有效期范围内 + Date expirationDate = DateTimeHelper.getExpirationDate(tCoursePackagePayment.getInsertTime(),tCoursePackage.getValidDays()); + String classWeeks = tCoursePackage.getClassWeeks(); + if (expirationDate.after(parse) && StrUtils.dealStrToList(classWeeks).contains(DateTimeHelper.getDayOfWeek(parse))){ + CourseOfStoreVo storeVo = new CourseOfStoreVo(); + storeVo.setCourseId(tCoursePackage.getId()); + // TODO: 2023/7/20 查询课包对应门店信息 +// storeVo.setCourseName(); +// storeVo.setClassStartTime(); +// storeVo.setClassEndTime(); +// storeVo.setStoreId(); +// storeVo.setStoreName(); +// storeVo.setLat(); +// storeVo.setLon(); + course.add(storeVo); + } } - courseOfStoreVo.setClassWeekList(integers); } + return course; + } catch (ParseException e) { + return null; } - return tcpService.queryStoreOfCourse(); } diff --git a/cloud-server-course/src/main/java/com/dsh/course/feignclient/CoursePaymentClient.java b/cloud-server-course/src/main/java/com/dsh/course/feignclient/CoursePaymentClient.java index 3e180ec..7d47a56 100644 --- a/cloud-server-course/src/main/java/com/dsh/course/feignclient/CoursePaymentClient.java +++ b/cloud-server-course/src/main/java/com/dsh/course/feignclient/CoursePaymentClient.java @@ -19,7 +19,7 @@ List<StuCourseResp> getStuCoursePayment(); @PostMapping("/base/coursePack/storeOfCourse") - List<CourseOfStoreVo> getStoreOfCourses(); + List<CourseOfStoreVo> getStoreOfCourses(@RequestBody WeeksOfCourseRest courseRest); @PostMapping("/base/coursePack/stuOfCourses") StuWithCoursesListVo getStuOfCoursesDetails(@RequestBody GetStuOfCoursesDetails getStuOfCoursesDetails); diff --git a/cloud-server-course/src/main/java/com/dsh/course/feignclient/model/CourseOfStoreVo.java b/cloud-server-course/src/main/java/com/dsh/course/feignclient/model/CourseOfStoreVo.java index 3ef657c..7238916 100644 --- a/cloud-server-course/src/main/java/com/dsh/course/feignclient/model/CourseOfStoreVo.java +++ b/cloud-server-course/src/main/java/com/dsh/course/feignclient/model/CourseOfStoreVo.java @@ -3,8 +3,6 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; -import java.util.List; - @Data public class CourseOfStoreVo { @@ -21,21 +19,16 @@ @ApiModelProperty(value = "课包结束时间") private String classEndTime; - @ApiModelProperty(value = "课包 周列表 分号隔开") - private String classWeeks; - @ApiModelProperty(value = "门店id") private Integer storeId; - @ApiModelProperty(value = "门店名称") - private String storeName; + @ApiModelProperty(value = "门店详细地址") + private String storeAddress; @ApiModelProperty(value = "经度") private String lat; @ApiModelProperty(value = "纬度") private String lon; - - private List<Integer> classWeekList; } diff --git a/cloud-server-course/src/main/java/com/dsh/course/feignclient/model/WeeksOfCourseRest.java b/cloud-server-course/src/main/java/com/dsh/course/feignclient/model/WeeksOfCourseRest.java new file mode 100644 index 0000000..fc38ce7 --- /dev/null +++ b/cloud-server-course/src/main/java/com/dsh/course/feignclient/model/WeeksOfCourseRest.java @@ -0,0 +1,18 @@ +package com.dsh.course.feignclient.model; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class WeeksOfCourseRest { + + @ApiModelProperty(value = "学员id") + private Integer stuId; + + @ApiModelProperty(value = "用户id") + private Integer appUserId; + + @ApiModelProperty(value = "时间 yyyy-MM-dd") + private String time; + +} diff --git a/cloud-server-course/src/main/java/com/dsh/course/util/DateTimeHelper.java b/cloud-server-course/src/main/java/com/dsh/course/util/DateTimeHelper.java index 017f6ac..a06b0d6 100644 --- a/cloud-server-course/src/main/java/com/dsh/course/util/DateTimeHelper.java +++ b/cloud-server-course/src/main/java/com/dsh/course/util/DateTimeHelper.java @@ -1789,5 +1789,18 @@ return Date.from(endOfDay.atZone(ZoneId.systemDefault()).toInstant()); } + /** + * 获取有效期数的结束时间 + * @param startTime 开始时间 + * @param validPeriod 有效期数 + * @return 结束时间 + */ + public static Date getExpirationDate(Date startTime, int validPeriod){ + Calendar calendar = Calendar.getInstance(); + calendar.setTime(startTime); + calendar.add(Calendar.DAY_OF_MONTH, validPeriod); + return calendar.getTime(); + } + } -- Gitblit v1.7.1