lisy
2023-07-20 c678894e37d15cca116d962eba5c107c99176945
开始上课的主页中课包列表展示;bmi工具类匹配对应的身体状态
10个文件已修改
3个文件已添加
214 ■■■■ 已修改文件
cloud-server-account/src/main/java/com/dsh/account/controller/ClassDetailsController.java 42 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/feignclient/course/CoursePaymentClient.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/feignclient/course/model/WeeksOfCourseRest.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/model/vo/classDetails/classInsVo/ClassInfoVo.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/model/vo/classDetails/classInsVo/StuPhysicalVo.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/service/TAppUserService.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java 21 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/util/BMIBodyUtil.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/feignclient/CoursePaymentClient.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/feignclient/model/CourseOfStoreVo.java 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/feignclient/model/WeeksOfCourseRest.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/util/DateTimeHelper.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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());
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);
cloud-server-account/src/main/java/com/dsh/account/feignclient/course/model/WeeksOfCourseRest.java
New file
@@ -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;
}
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;
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;
}
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);
}
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;
    }
}
cloud-server-account/src/main/java/com/dsh/account/util/BMIBodyUtil.java
New file
@@ -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 "非常肥胖";
        }
    }
}
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);
                }
                courseOfStoreVo.setClassWeekList(integers);
    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);
            }
        }
        return tcpService.queryStoreOfCourse();
            }
            return course;
        } catch (ParseException e) {
            return null;
        }
    }
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);
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;
}
cloud-server-course/src/main/java/com/dsh/course/feignclient/model/WeeksOfCourseRest.java
New file
@@ -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;
}
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();
    }
}