From d09828cdec78a160f4530a8ab245216ed8671c27 Mon Sep 17 00:00:00 2001
From: liujie <liujie>
Date: 星期三, 20 九月 2023 18:43:48 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 cloud-server-account/src/main/java/com/dsh/account/controller/ClassDetailsController.java |  548 ++++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 505 insertions(+), 43 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 bf04171..0a928be 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
@@ -1,40 +1,47 @@
 package com.dsh.account.controller;
 
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.dsh.account.entity.TAppGift;
 import com.dsh.account.entity.TStudent;
-import com.dsh.account.model.vo.classDetails.classInsVo.StuDetailsReq;
-import com.dsh.account.model.vo.classDetails.classInsVo.StuListVo;
-import com.dsh.account.model.vo.classDetails.classInsVo.StuPhysicalVo;
-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 io.swagger.annotations.Api;
+import com.dsh.account.feignclient.competition.model.PurchaseRecordVo;
+import com.dsh.account.feignclient.course.model.RecordAppoint;
+import com.dsh.account.model.vo.DetailsListVo;
+import com.dsh.account.model.vo.classDetails.*;
+import com.dsh.account.model.vo.classDetails.classInsVo.*;
+import com.dsh.account.model.vo.commentDetail.StuCommentsVo;
+import com.dsh.account.model.vo.medalDetail.GongVo;
+import com.dsh.account.model.vo.medalDetail.StuMedalVo;
+import com.dsh.account.model.vo.sourceDetail.CouponStuAvailableVo;
+import com.dsh.account.model.vo.sourceDetail.CourseDetailsOfContinuationResp;
+import com.dsh.account.model.vo.sourceDetail.RecordTimeRequest;
+import com.dsh.account.service.*;
+import com.dsh.account.util.*;
 import io.swagger.annotations.ApiImplicitParam;
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.transaction.annotation.Propagation;
 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 javax.servlet.http.HttpServletRequest;
 import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Map;
 
 
 /**
  * 学员上课情况 接口
  */
-@Api
-@CrossOrigin
 @RestController
-@RequestMapping("/base/startCource")
+@RequestMapping("")
 public class ClassDetailsController {
 
     private Logger logger = LoggerFactory.getLogger("business-log");
@@ -46,44 +53,155 @@
     private TAppUserService tappuService;
 
     @Autowired
+    private EvaluateStudentService evalstuService;
+
+    @Autowired
+    private StudentHonorService honorService;
+
+    @Autowired
     private TokenUtil tokenUtil;
+
+    @Autowired
+    private TAppGiftService appGiftService;
 
 
 
     @ResponseBody
-    @PostMapping("/stu/queryStudentData")
-    @ApiOperation(value = "根据登录用户ID查询学员信息", tags = {"APP-开始上课-用户学员信息"}, notes = "")
+    @PostMapping("/api/startCource/queryStudentData")
+    @ApiOperation(value = "上课首页", tags = {"APP-开始上课"})
     @ApiImplicitParams({
-            @ApiImplicitParam(value = "经度值", name = "longitude", required = true, dataType = "String"),
-            @ApiImplicitParam(value = "纬度值", name = "latitude", required = true, dataType = "String"),
             @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
     })
-    public ResultUtil queryCouponRecord(String longitude,String latitude,HttpServletRequest request){
+    public ResultUtil<ClassInfoVo> queryCouponRecord(){
         try {
-            Integer userIdFormRedis = tokenUtil.getUserIdFormRedis(request);
+            Integer userIdFormRedis = tokenUtil.getUserIdFormRedis();
             if(null == userIdFormRedis){
                 return ResultUtil.tokenErr();
             }
-            return ResultUtil.success(tappuService.queryUserOfStus(userIdFormRedis,longitude,latitude));
+            return ResultUtil.success(tappuService.queryUserOfStus(userIdFormRedis));
         }catch (Exception e){
             e.printStackTrace();
-            return ResultUtil.runErr(ResultUtil.ERROR);
+            return ResultUtil.runErr();
         }
     }
 
 
     @ResponseBody
-    @PostMapping("/stu/queryPhysical")
-    @ApiOperation(value = "获取学员测试报告", tags = {"APP-开始上课-获取学员测试报告"}, notes = "")
+    @PostMapping("/api/startCource/weeksOfCourseDetails")
+    @ApiOperation(value = "上课首页-课程列表", tags = {"APP-开始上课"})
     @ApiImplicitParams({
-            @ApiImplicitParam(value = "学员id", name = "id", required = true, dataType = "int"),
+            @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 = false, dataType = "string"),
+            @ApiImplicitParam(value = "用户纬度", name = "latitude", required = false, 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();
+        }
+
+    }
+    @ResponseBody
+    @PostMapping("/api/startCource/weeksOfCourseDetailsList")
+    @ApiOperation(value = "上课首页-课程列表2.0", 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 = "门店id", name = "storeId", required = true, dataType = "int"),
+            @ApiImplicitParam(value = "用户经度", name = "longitude", required = false, dataType = "string"),
+            @ApiImplicitParam(value = "用户纬度", name = "latitude", required = false, dataType = "string"),
+    })
+    public ResultUtil<Map<String,Object>> weeksOfCourseDetailsList(String time, Integer stuId, Integer storeId, String longitude, String latitude){
+        try {
+            Integer appUserId = tokenUtil.getUserIdFormRedis();
+            if(null == appUserId){
+                return ResultUtil.tokenErr();
+            }
+            return ResultUtil.success(tappuService.weeksOfCourseDetailsList(appUserId,stuId,time,storeId,longitude,latitude));
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+
+    }
+
+    @ResponseBody
+    @PostMapping("/api/startCource/weeksOfGetHours")
+    @ApiOperation(value = "上课首页获取未分配课时-课程列表", tags = {"APP-开始上课"})
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
+    })
+    public ResultUtil<Integer> weeksOfGetHours(){
+        try {
+            Integer appUserId = tokenUtil.getUserIdFormRedis();
+            if(null == appUserId){
+                return ResultUtil.tokenErr();
+            }
+            TAppGift one = appGiftService.getOne(new LambdaQueryWrapper<TAppGift>().eq(TAppGift::getUserId, appUserId));
+
+            return ResultUtil.success(one==null?0:one.getNum());
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+
+
+    @ResponseBody
+    @PostMapping("/api/startCource/weeksOfAddHours")
+    @ApiOperation(value = "上课首页分配课时-课程列表", tags = {"APP-开始上课"})
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
+            @ApiImplicitParam(value = "分配给课包id", name = "packetId", required = true, dataType = "string"),
+    })
+    public ResultUtil<Integer> weeksOfAddHours(Integer packetId){
+        try {
+            Integer appUserId = tokenUtil.getUserIdFormRedis();
+            if(null == appUserId){
+                return ResultUtil.tokenErr();
+            }
+            TAppGift one = appGiftService.getOne(new LambdaQueryWrapper<TAppGift>().eq(TAppGift::getUserId, appUserId));
+            Boolean b= false;
+            if(one!=null && one.getNum()>0){
+                 b =appGiftService.weeksOfAddHours(packetId,appUserId,one.getNum());
+            }
+            if(b){
+                // 送完清0
+                one.setNum(0);
+                appGiftService.updateById(one);
+                return ResultUtil.success();
+            }else {
+                return ResultUtil.runErr();
+            }
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+    }
+
+
+    @ResponseBody
+    @PostMapping("/api/startCource/queryPhysical")
+    @ApiOperation(value = "获取学员测试报告", tags = {"APP-开始上课"})
+    @ApiImplicitParams({
+            @ApiImplicitParam(value = "学员id", name = "stuID", required = true, dataType = "int"),
             @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
     })
-    public ResultUtil<StuPhysicalVo> getStuPhysicalInfo(@RequestBody Integer stuID){
+    public ResultUtil<StuPhysicalVo> getStuPhysicalInfo(Integer stuID){
         StuPhysicalVo vo = new StuPhysicalVo();
         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());
@@ -95,21 +213,19 @@
      * 添加学员信息
      */
     @ResponseBody
-    @PostMapping("/stu/addData")
-    @ApiOperation(value = "添加学员信息", tags = {"APP-开始上课-添加学员信息"}, notes = "")
+    @PostMapping("/api/startCource/addData")
+    @ApiOperation(value = "添加学员信息", tags = {"APP-开始上课"})
     @ApiImplicitParams({
-            @ApiImplicitParam(value = "学员信息", name = "stu", required = true, dataType = "int"),
             @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
     })
     @Transactional
-    public ResultUtil addStu(@RequestBody StuDetailsReq stu,HttpServletRequest request){
+    public ResultUtil addStu(StuDetailsReq stu){
         try {
-            Integer userIdFormRedis = tokenUtil.getUserIdFormRedis(request);
+            Integer userIdFormRedis = tokenUtil.getUserIdFormRedis();
             if(null == userIdFormRedis){
                 return ResultUtil.tokenErr();
             }
-            istuService.addStuOfAppUser(stu,userIdFormRedis);
-            return ResultUtil.success();
+            return istuService.addStuOfAppUser(stu,userIdFormRedis);
         }catch (Exception e){
             return ResultUtil.runErr(ResultUtil.ERROR);
         }
@@ -119,14 +235,14 @@
      * 该APP用户下的学员列表
      */
     @ResponseBody
-    @PostMapping("/stu/listOfStu")
-    @ApiOperation(value = "该APP用户下的学员列表", tags = {"APP-开始上课-学员列表"}, notes = "")
+    @PostMapping("/api/startCource/listOfStu")
+    @ApiOperation(value = "学员列表", tags = {"APP-开始上课"})
     @ApiImplicitParams({
             @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
     })
-    public ResultUtil queryStuList(HttpServletRequest request){
+    public ResultUtil<List<StuListVo>> queryStuList(){
         try {
-            Integer userIdFormRedis = tokenUtil.getUserIdFormRedis(request);
+            Integer userIdFormRedis = tokenUtil.getUserIdFormRedis();
             if(null == userIdFormRedis){
                 return ResultUtil.tokenErr();
             }
@@ -137,6 +253,9 @@
                 tStudents.forEach(sts -> {
                     StuListVo vo = new StuListVo();
                     vo.setStuId(sts.getId());
+                    vo.setStuHeadImg(sts.getHeadImg());
+                    vo.setStuPhone(ToolUtil.isEmpty(sts.getPhone()) ? "" : sts.getPhone());
+                    vo.setIdCard(ToolUtil.isEmpty(sts.getIdCard()) ? "":sts.getIdCard());
                     SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
                     vo.setBirthday(simpleDateFormat.format(sts.getBirthday()));
                     vo.setStuName(sts.getName());
@@ -144,27 +263,370 @@
                     vo.setStuHeight(sts.getHeight());
                     vo.setStuWeight(sts.getWeight());
                     vo.setIsNot(sts.getIsDefault());
+                    vo.setStuPhone(sts.getPhone());
+                    stuListVos.add(vo);
                 });
             }
             return ResultUtil.success(stuListVos);
         }catch (Exception e){
-            return ResultUtil.runErr(ResultUtil.ERROR);
+            return ResultUtil.runErr();
         }
     }
+
+
+    /**
+     * 切换学员
+     */
+    @ResponseBody
+    @PostMapping("/api/startCource/switchStu")
+    @ApiOperation(value = "切换学员", tags = {"APP-开始上课"})
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
+            @ApiImplicitParam(value = "学员id", name = "stuId", required = true, dataType = "int"),
+    })
+    public ResultUtil<List<StuListVo>> dealSwitchStudents(Integer stuId){
+        try {
+            Integer userIdFormRedis = tokenUtil.getUserIdFormRedis();
+            if(null == userIdFormRedis){
+                return ResultUtil.tokenErr();
+            }
+            return ResultUtil.success(istuService.switchStudentActions(userIdFormRedis,stuId));
+        }catch (Exception e){
+            return ResultUtil.runErr();
+        }
+    }
+
+
+
+    /**
+     * 编辑学员详情
+     */
+    @ResponseBody
+    @PostMapping("/api/startCource/editStu")
+    @ApiOperation(value = "编辑学员详情", tags = {"APP-开始上课"})
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
+            @ApiImplicitParam(value = "学员id", name = "stuId", required = true, dataType = "int"),
+    })
+    public ResultUtil<StuDetailsVo> editStudentInfo(Integer stuId){
+        try {
+            TStudent byId = istuService.getById(stuId);
+            if (ToolUtil.isEmpty(byId)){
+                ResultUtil.error("未查询到该学员!");
+            }
+            SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
+            StuDetailsVo detailsVo = new StuDetailsVo();
+            detailsVo.setStuId(byId.getId());
+            detailsVo.setStuHeadImg(byId.getHeadImg());
+            detailsVo.setStuName(byId.getName());
+            detailsVo.setBirthday(simpleDateFormat.format(byId.getBirthday()));
+            detailsVo.setStuHeight(byId.getHeight());
+            detailsVo.setStuWeight(byId.getWeight());
+            detailsVo.setIdCard(ToolUtil.isEmpty(byId.getIdCard()) ? "": byId.getIdCard());
+            detailsVo.setStuPhone(ToolUtil.isEmpty(byId.getPhone()) ?  "" : byId.getPhone());
+            return ResultUtil.success(detailsVo);
+        }catch (Exception e){
+            return ResultUtil.runErr();
+        }
+    }
+
+
+
+    /**
+     * 提交编辑学员
+     */
+    @ResponseBody
+    @PostMapping("/api/startCource/commitEditStu")
+    @ApiOperation(value = "提交编辑学员", tags = {"APP-开始上课"})
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
+            @ApiImplicitParam(value = "学员id", name = "stuId", required = true, dataType = "int"),
+    })
+    public ResultUtil commitEditStu(StuEditInfoReq stu){
+        try {
+            Integer userIdFormRedis = tokenUtil.getUserIdFormRedis();
+            if(null == userIdFormRedis){
+                return ResultUtil.tokenErr();
+            }
+            return ResultUtil.success(istuService.commitEditStudentInfo(stu,userIdFormRedis));
+        }catch (Exception e){
+            return ResultUtil.runErr();
+        }
+    }
+
+
+
+    /**
+     * 学员设为默认
+     */
+    @ResponseBody
+    @PostMapping("/api/startCource/editDefault")
+    @ApiOperation(value = "设为默认", tags = {"APP-开始上课"})
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
+            @ApiImplicitParam(value = "学员id", name = "stuId", required = true, dataType = "int"),
+    })
+    public ResultUtil editDefault(Integer stuId){
+        try {
+            Integer userIdFormRedis = tokenUtil.getUserIdFormRedis();
+            if(null == userIdFormRedis){
+                return ResultUtil.tokenErr();
+            }
+            TStudent byId = istuService.getById(stuId);
+            if (ToolUtil.isEmpty(byId)){
+                ResultUtil.error("未查询到该学员!");
+            }
+            byId.setIsDefault(1);
+            istuService.updateById(byId);
+            List<TStudent> list = istuService.list(new LambdaQueryWrapper<TStudent>()
+                    .eq(TStudent::getAppUserId,userIdFormRedis)
+                    .ne(TStudent::getId,byId.getId()));
+            for (TStudent tStudent : list) {
+                tStudent.setIsDefault(2);
+                istuService.updateById(tStudent);
+            }
+            return ResultUtil.success();
+        }catch (Exception e){
+            return ResultUtil.runErr();
+        }
+    }
+
+
+
 
     /**
      * 课时详情
      */
     @ResponseBody
-    @PostMapping("/stu/lessonDetails")
-    @ApiOperation(value = "课时详情", tags = {"APP-开始上课-课时详情"}, notes = "")
+    @PostMapping("/api/startCource/lessonDetails")
+    @ApiOperation(value = "课时详情", tags = {"APP-开始上课"})
     @ApiImplicitParams({
-            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
+            @ApiImplicitParam(value = "课包id", name = "lessonId", required = true, dataType = "int"),
+            @ApiImplicitParam(value = "学员id", name = "stuId", required = true, dataType = "int"),
     })
-    public void coursePackageDetails(@RequestBody Integer lessonId){
+    public ResultUtil<ClassDetailsInsVo> coursePackageDetails(Integer lessonId, Integer stuId){
+        try {
+            Integer userIdFormRedis = tokenUtil.getUserIdFormRedis();
+            if(null == userIdFormRedis){
+                return ResultUtil.tokenErr();
+            }
+
+            return ResultUtil.success(istuService.querySessionDetailsDt(userIdFormRedis,lessonId,stuId));
+        }catch (Exception e){
+            return ResultUtil.runErr();
+        }
 
     }
 
 
 
+    /**
+     * 课时详情-记录列表
+     */
+    @ResponseBody
+    @PostMapping("/api/startCource/recordDetails")
+    @ApiOperation(value = "课时详情-记录列表", tags = {"APP-开始上课"})
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
+    })
+    public ResultUtil<List<PurchaseRecordVo>> recordList(RecordTimeRequest timeRequest){
+        try {
+            Integer userIdFormRedis = tokenUtil.getUserIdFormRedis();
+            if(null == userIdFormRedis){
+                return ResultUtil.tokenErr();
+            }
+            return ResultUtil.success(istuService.queryDeduRecordDetails(timeRequest,userIdFormRedis));
+        }catch (Exception e){
+            return ResultUtil.runErr();
+        }
+    }
+
+
+    /**
+     * 课时详情-续课课包详情
+     */
+    @ResponseBody
+    @PostMapping("/api/startCource/renewal")
+    @ApiOperation(value = "课时详情-续课课包详情", tags = {"APP-开始上课"})
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
+            @ApiImplicitParam(value = "课包id", name = "lessonId", required = true, dataType = "int"),
+            @ApiImplicitParam(value = "学员id", name = "stuId", required = true, dataType = "int"),
+    })
+    public ResultUtil<CourseDetailsOfContinuationResp> renewalOfCourses(Integer lessonId, Integer stuId){
+        try {
+            Integer userIdFormRedis = tokenUtil.getUserIdFormRedis();
+            if(null == userIdFormRedis){
+                return ResultUtil.tokenErr();
+            }
+            return ResultUtil.success(istuService.queryStuOfCourseDetails(lessonId,stuId,userIdFormRedis));
+        }catch (Exception e){
+            return ResultUtil.runErr();
+        }
+
+    }
+
+
+    /**
+     * 课时详情-选择优惠券
+     */
+    @ResponseBody
+    @PostMapping("/api/startCource/conponList")
+    @ApiOperation(value = "课时详情-选择优惠券", tags = {"APP-开始上课"})
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
+    })
+    public ResultUtil<List<CouponStuAvailableVo>> queryCouponList(){
+        try {
+            Integer userIdFormRedis = tokenUtil.getUserIdFormRedis();
+            if(null == userIdFormRedis){
+                return ResultUtil.tokenErr();
+            }
+            return ResultUtil.success(istuService.queryStuOfConponDetails(userIdFormRedis));
+        }catch (Exception e){
+            return ResultUtil.runErr();
+        }
+
+    }
+
+
+
+    /**
+     * 课时详情-支付
+     */
+    @ResponseBody
+    @PostMapping("/api/startCource/payment")
+    @ApiOperation(value = "课时详情-支付", tags = {"APP-开始上课"})
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
+    })
+    public ResultUtil continuationOperation(ClasspaymentRequest request){
+        try {
+            Integer userIdFormRedis = tokenUtil.getUserIdFormRedis();
+            if(null == userIdFormRedis){
+                return ResultUtil.tokenErr();
+            }
+            return istuService.renewClassPayment(userIdFormRedis,request);
+        }catch (Exception e){
+            e.printStackTrace();
+            return ResultUtil.runErr();
+        }
+
+    }
+
+
+    /**
+     * 学员评语
+     */
+    @ResponseBody
+    @PostMapping("/api/startCource/stuComment")
+    @ApiOperation(value = "学员评语", tags = {"APP-开始上课"})
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
+            @ApiImplicitParam(value = "学员id", name = "stuId", required = true, dataType = "int"),
+    })
+    public ResultUtil<List<StuCommentsVo>> queryStuComment( Integer stuId){
+        try {
+            return ResultUtil.success(evalstuService.queryStuCommentsList(stuId));
+        }catch (Exception e){
+            return ResultUtil.runErr();
+        }
+    }
+
+
+    /**
+     * 学员勋章详情
+     */
+    @ResponseBody
+    @PostMapping("/api/startCource/stuMedal")
+    @ApiOperation(value = "学员勋章详情", tags = {"APP-开始上课"})
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
+            @ApiImplicitParam(value = "学员id", name = "stuId", required = true, dataType = "int"),
+    })
+    public ResultUtil<List<StuMedalVo>> queryStuMedal( Integer stuId){
+        try {
+            Integer appUserId = tokenUtil.getUserIdFormRedis();
+            if(null == appUserId){
+                return ResultUtil.tokenErr();
+            }
+            return ResultUtil.success(honorService.queryHonorDetails(stuId));
+        }catch (Exception e){
+            return ResultUtil.runErr();
+        }
+    }
+
+
+    /**
+     * 学员勋章
+     */
+    @ResponseBody
+    @PostMapping("/api/startCource/stuGoog")
+    @ApiOperation(value = "学员勋章", tags = {"APP-开始上课"})
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
+            @ApiImplicitParam(value = "学员id", name = "stuId", required = true, dataType = "int"),
+    })
+    public ResultUtil<List<GongVo>> queryStuGoog(Integer stuId){
+        try {
+            Integer appUserId = tokenUtil.getUserIdFormRedis();
+            if(null == appUserId){
+                return ResultUtil.tokenErr();
+            }
+            return ResultUtil.success(honorService.queryStuOfMedalData(stuId));
+        }catch (Exception e){
+            return ResultUtil.runErr();
+        }
+    }
+
+    /**
+     * 上课预约记录
+     */
+    @ResponseBody
+    @PostMapping("/api/startCource/stuAppointList")
+    @ApiOperation(value = "上课预约记录", tags = {"APP-开始上课"})
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
+            @ApiImplicitParam(value = "学员id", name = "stuId", required = true, dataType = "int"),
+            @ApiImplicitParam(value = "预约状态 0=全部 1=待上课 2=已完成 3=已取消", name = "appointStatus", required = false, dataType = "int"),
+            @ApiImplicitParam(value = "时间类型 0=全部 1=近一周 2=近一个月 3=近一年", name = "timeType", required = false, dataType = "int"),
+            @ApiImplicitParam(value = "课程名称", name = "appointStatus", required = false, dataType = "string"),
+    })
+    public ResultUtil<List<RecordAppoint>> cgeClassAppointmentRecordList(Integer stuId, Integer appointStatus, Integer timeType, String search){
+        try {
+            Integer appUserId = tokenUtil.getUserIdFormRedis();
+            if(null == appUserId){
+                return ResultUtil.tokenErr();
+            }
+            return ResultUtil.success(istuService.getAppointmentRecords(stuId,appUserId,appointStatus,timeType,search));
+        }catch (Exception e){
+            return ResultUtil.runErr();
+        }
+    }
+
+
+
+    /**
+     * 取消预约
+     */
+    @ResponseBody
+    @PostMapping("/api/startCource/cancelCourse")
+    @ApiOperation(value = "上课预约-取消预约", tags = {"APP-开始上课"})
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
+            @ApiImplicitParam(value = "上课记录id", name = "courseStuRecordId", required = true, dataType = "int"),
+    })
+    public ResultUtil cancelReservation(Integer courseStuRecordId){
+        try {
+            Integer appUserId = tokenUtil.getUserIdFormRedis();
+            if(null == appUserId){
+                return ResultUtil.tokenErr();
+            }
+            return istuService.cancelReservationOfCourse(courseStuRecordId);
+        }catch (Exception e){
+            return ResultUtil.runErr();
+        }
+    }
+
 }

--
Gitblit v1.7.1