From d0fe90adfae626158a431b038395caa908e48e8c Mon Sep 17 00:00:00 2001 From: java <linlangsur163@163.com> Date: 星期五, 30 六月 2023 11:34:05 +0800 Subject: [PATCH] 课程信息:课时详情的数据处理 --- cloud-server-account/src/main/java/com/dsh/account/feignclient/course/model/StuWithCoursesListVo.java | 19 ++ cloud-server-course/src/main/java/com/dsh/course/entity/CoursePackageStudent.java | 67 +++++++++ cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java | 27 +++ cloud-server-course/src/main/java/com/dsh/course/feignclient/model/StuWithCoursesListVo.java | 19 ++ cloud-server-course/src/main/resources/mapper/CoursePackageStudentMapper.xml | 35 +++++ cloud-server-account/src/main/java/com/dsh/account/feignclient/course/CoursePaymentClient.java | 6 cloud-server-account/src/main/java/com/dsh/account/feignclient/course/CourseRecordClient.java | 13 + cloud-server-course/src/main/java/com/dsh/course/controller/CourseRecordController.java | 54 +++++++ /dev/null | 21 --- cloud-server-account/src/main/java/com/dsh/account/service/impl/TStudentServiceImpl.java | 20 ++ cloud-server-course/src/main/java/com/dsh/course/service/impl/CoursePackageStudentServiceImpl.java | 26 +++ cloud-server-course/src/main/java/com/dsh/course/feignclient/CoursePaymentClient.java | 4 cloud-server-course/src/main/java/com/dsh/course/mapper/CoursePackageStudentMapper.java | 23 +++ cloud-server-course/src/main/java/com/dsh/course/service/CoursePackageStudentService.java | 20 ++ cloud-server-course/src/main/java/com/dsh/course/feignclient/CourseRecordClient.java | 13 + 15 files changed, 337 insertions(+), 30 deletions(-) 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 dddf989..28c10d6 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 @@ -2,8 +2,10 @@ import com.dsh.account.feignclient.course.model.CourseOfStoreVo; import com.dsh.account.feignclient.course.model.StuCourseResp; +import com.dsh.account.feignclient.course.model.StuWithCoursesListVo; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; import java.util.List; @@ -17,4 +19,8 @@ @PostMapping("/coursePack/storeOfCourse") List<CourseOfStoreVo> getStoreOfCourses(); + + @PostMapping("/coursePack/stuOfCourses") + StuWithCoursesListVo getStuOfCoursesDetails(@RequestBody Integer stuId, + @RequestBody Integer appUserId); } diff --git a/cloud-server-account/src/main/java/com/dsh/account/feignclient/course/CourseRecordClient.java b/cloud-server-account/src/main/java/com/dsh/account/feignclient/course/CourseRecordClient.java new file mode 100644 index 0000000..20a19b2 --- /dev/null +++ b/cloud-server-account/src/main/java/com/dsh/account/feignclient/course/CourseRecordClient.java @@ -0,0 +1,13 @@ +package com.dsh.account.feignclient.course; + +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; + +@FeignClient(value = "mb-cloud-course") +public interface CourseRecordClient { + + @PostMapping("/courseRecord/queryDeduClassHours") + public Integer getDeductionClassHour(@RequestBody Integer courseId, @RequestBody Integer stuId, @RequestBody Integer appUserId); + +} diff --git a/cloud-server-account/src/main/java/com/dsh/account/feignclient/course/model/StuWithCoursesListVo.java b/cloud-server-account/src/main/java/com/dsh/account/feignclient/course/model/StuWithCoursesListVo.java new file mode 100644 index 0000000..0a5d372 --- /dev/null +++ b/cloud-server-account/src/main/java/com/dsh/account/feignclient/course/model/StuWithCoursesListVo.java @@ -0,0 +1,19 @@ +package com.dsh.account.feignclient.course.model; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + + +@Data +public class StuWithCoursesListVo { + + @ApiModelProperty(value = "总学时数") + private Integer totalNums; + + @ApiModelProperty(value = "已扣学时数") + private Integer deductedNums; + + @ApiModelProperty(value = "剩余学时数") + private Integer remainingNums; + +} 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 68ba9a8..5be7f68 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 @@ -8,8 +8,11 @@ import com.dsh.account.feignclient.competition.DeductionCompetitionsClient; import com.dsh.account.feignclient.competition.model.PurchaseRecordVo; import com.dsh.account.feignclient.course.CancelListClient; +import com.dsh.account.feignclient.course.CoursePaymentClient; +import com.dsh.account.feignclient.course.CourseRecordClient; import com.dsh.account.feignclient.course.CourseSessionNameClient; import com.dsh.account.feignclient.course.model.StuSessionDetailsVo; +import com.dsh.account.feignclient.course.model.StuWithCoursesListVo; import com.dsh.account.mapper.TAppUserMapper; import com.dsh.account.mapper.TStudentMapper; import com.dsh.account.model.vo.classDetails.classInsVo.ClassDetailsInsVo; @@ -48,6 +51,12 @@ @Autowired private IntroduceRewardsClient idrClient; + + @Autowired + private CourseRecordClient crClient; + + @Autowired + private CoursePaymentClient couPayClient; @Autowired private TAppUserMapper tauMapper; @@ -101,11 +110,12 @@ purchaseRecordVoList.addAll(purchaseRecordVos1); insVo.setSessionNames(stuSessionList); insVo.setDetails(dealDataOfTime(purchaseRecordVoList)); - - insVo.setTotalNums(0); - insVo.setDeductedNums(0); - insVo.setRemainingNums(0); - insVo.setDeductionClassHours(0); + StuWithCoursesListVo stuOfCoursesDetails = couPayClient.getStuOfCoursesDetails(stuId, userIdFormRedis); + insVo.setTotalNums(stuOfCoursesDetails.getTotalNums()); + insVo.setDeductedNums(stuOfCoursesDetails.getDeductedNums()); + insVo.setRemainingNums(stuOfCoursesDetails.getRemainingNums()); + Integer deductionClassHour = crClient.getDeductionClassHour(lessonId, stuId, userIdFormRedis); + insVo.setDeductionClassHours(deductionClassHour); } return insVo; 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 498f6cb..6ba4f0a 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 @@ -4,10 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.dsh.course.entity.TCoursePackage; import com.dsh.course.entity.TCoursePackagePayment; -import com.dsh.course.feignclient.model.CourseOfStoreVo; -import com.dsh.course.feignclient.model.PurchaseRecordVo; -import com.dsh.course.feignclient.model.StuCourseResp; -import com.dsh.course.feignclient.model.StuSessionDetailsVo; +import com.dsh.course.feignclient.model.*; import com.dsh.course.service.TCoursePackagePaymentService; import com.dsh.course.service.TCoursePackageService; import com.dsh.course.util.DateUtil; @@ -127,4 +124,26 @@ } + + @PostMapping("/coursePack/stuOfCourses") + public StuWithCoursesListVo getStuOfCoursesDetails(@RequestBody Integer stuId, @RequestBody Integer appUserId){ + StuWithCoursesListVo lisco = new StuWithCoursesListVo(); + Integer totalNu = 0; + Integer dedutNu = 0; + Integer remainNu = 0; + List<TCoursePackagePayment> byUserId = packagePaymentService.queryAllCoursePackage(null,null,stuId,appUserId); + if (byUserId.size() > 0 ){ + for (TCoursePackagePayment tCoursePackagePayment : byUserId) { + StuWithCoursesListVo resp = new StuWithCoursesListVo(); + totalNu = totalNu + tCoursePackagePayment.getTotalClassHours(); + dedutNu = dedutNu + tCoursePackagePayment.getLaveClassHours(); + remainNu = remainNu + (tCoursePackagePayment.getTotalClassHours()-tCoursePackagePayment.getLaveClassHours()); + } + lisco.setTotalNums(totalNu); + lisco.setDeductedNums(remainNu); + lisco.setRemainingNums(dedutNu); + } + return lisco; + } + } diff --git a/cloud-server-course/src/main/java/com/dsh/course/controller/CourseRecordController.java b/cloud-server-course/src/main/java/com/dsh/course/controller/CourseRecordController.java new file mode 100644 index 0000000..5416653 --- /dev/null +++ b/cloud-server-course/src/main/java/com/dsh/course/controller/CourseRecordController.java @@ -0,0 +1,54 @@ +package com.dsh.course.controller; + + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.dsh.course.entity.CancelledClasses; +import com.dsh.course.entity.CoursePackageStudent; +import com.dsh.course.entity.TCoursePackage; +import com.dsh.course.service.CancelledClassesService; +import com.dsh.course.service.CoursePackageStudentService; +import com.dsh.course.service.TCoursePackageService; +import io.swagger.annotations.Api; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +@Api +@CrossOrigin +@RestController +@RequestMapping("") +public class CourseRecordController { + + + @Autowired + private CoursePackageStudentService cosService; + + @Autowired + private TCoursePackageService tcpService; + + @Autowired + private CancelledClassesService caccService; + + + + @PostMapping("/courseRecord/queryDeduClassHours") + public Integer getDeductionClassHour(@RequestBody Integer courseId,@RequestBody Integer stuId,@RequestBody Integer appUserId){ + Integer sult = 0; + TCoursePackage coursePackage = tcpService.getById(courseId); + if (null != coursePackage && coursePackage.getStatus() == 3){ + List<CoursePackageStudent> coursePackageStudents = cosService.queryStuDeduClassHourNums(courseId, stuId, appUserId); + if (coursePackageStudents.size() > 0){ + List<CancelledClasses> list = caccService.list(new QueryWrapper<CancelledClasses>() + .eq("coursePackageId",courseId )); + if (list.size() > 0){ + for (CancelledClasses cancelledClasses : list) { + sult = sult + cancelledClasses.getCancelledClassesNumber(); + } + } + } + } + return sult; + } + +} diff --git a/cloud-server-course/src/main/java/com/dsh/course/entity/CoursePackageStudent.java b/cloud-server-course/src/main/java/com/dsh/course/entity/CoursePackageStudent.java new file mode 100644 index 0000000..d18a280 --- /dev/null +++ b/cloud-server-course/src/main/java/com/dsh/course/entity/CoursePackageStudent.java @@ -0,0 +1,67 @@ +package com.dsh.course.entity; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.io.Serializable; +import java.util.Date; + +/** + * <p> + * 学员上课记录 + * </p> + * + * @author jqs + * @since 2023-06-30 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@Accessors(chain = true) +@TableName("t_course_package_student") +public class CoursePackageStudent extends Model<CoursePackageStudent> { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + /** + * 用户id + */ + private Integer appUserId; + /** + * 学员id + */ + private Integer studentId; + /** + * 课包id + */ + private Integer coursePackageId; + /** + * 课包购买记录id + */ + private Integer coursePackagePaymentId; + /** + * 到课状态(0=否,1=是) + */ + private Integer signInOrNot; + /** + * 预约状态(0=取消,1=预约) + */ + private Integer reservationStatus; + private Date insertTime; + + + @Override + protected Serializable pkVal() { + return this.id; + } + +} 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 4b4b9e6..d6aea0a 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 @@ -5,6 +5,7 @@ import com.dsh.course.feignclient.model.*; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; import java.util.List; @@ -17,4 +18,7 @@ @PostMapping("/coursePack/storeOfCourse") List<CourseOfStoreVo> getStoreOfCourses(); + + @PostMapping("/coursePack/stuOfCourses") + StuWithCoursesListVo getStuOfCoursesDetails(@RequestBody Integer stuId,@RequestBody Integer appUserId); } diff --git a/cloud-server-course/src/main/java/com/dsh/course/feignclient/CourseRecordClient.java b/cloud-server-course/src/main/java/com/dsh/course/feignclient/CourseRecordClient.java new file mode 100644 index 0000000..ef52a27 --- /dev/null +++ b/cloud-server-course/src/main/java/com/dsh/course/feignclient/CourseRecordClient.java @@ -0,0 +1,13 @@ +package com.dsh.course.feignclient; + +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; + +@FeignClient(value = "mb-cloud-course") +public interface CourseRecordClient { + + @PostMapping("/courseRecord/queryDeduClassHours") + public Integer getDeductionClassHour(@RequestBody Integer courseId, @RequestBody Integer stuId, @RequestBody Integer appUserId); + +} diff --git a/cloud-server-course/src/main/java/com/dsh/course/feignclient/model/StuWithCoursesListVo.java b/cloud-server-course/src/main/java/com/dsh/course/feignclient/model/StuWithCoursesListVo.java new file mode 100644 index 0000000..15e619c --- /dev/null +++ b/cloud-server-course/src/main/java/com/dsh/course/feignclient/model/StuWithCoursesListVo.java @@ -0,0 +1,19 @@ +package com.dsh.course.feignclient.model; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + + +@Data +public class StuWithCoursesListVo { + + @ApiModelProperty(value = "总学时数") + private Integer totalNums; + + @ApiModelProperty(value = "已扣学时数") + private Integer deductedNums; + + @ApiModelProperty(value = "剩余学时数") + private Integer remainingNums; + +} diff --git a/cloud-server-course/src/main/java/com/dsh/course/mapper/CoursePackageStudentMapper.java b/cloud-server-course/src/main/java/com/dsh/course/mapper/CoursePackageStudentMapper.java new file mode 100644 index 0000000..d686cf9 --- /dev/null +++ b/cloud-server-course/src/main/java/com/dsh/course/mapper/CoursePackageStudentMapper.java @@ -0,0 +1,23 @@ +package com.dsh.course.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.dsh.course.entity.CoursePackageStudent; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * <p> + * 学员上课记录 Mapper 接口 + * </p> + * + * @author jqs + * @since 2023-06-30 + */ +public interface CoursePackageStudentMapper extends BaseMapper<CoursePackageStudent> { + + List<CoursePackageStudent> queryStuDeduClassHourNums(@Param("courseId") Integer courseId, + @Param("stuId") Integer stuId, + @Param("appUserId") Integer appUserId); + +} diff --git a/cloud-server-course/src/main/java/com/dsh/course/service/CoursePackageStudentService.java b/cloud-server-course/src/main/java/com/dsh/course/service/CoursePackageStudentService.java new file mode 100644 index 0000000..ba01211 --- /dev/null +++ b/cloud-server-course/src/main/java/com/dsh/course/service/CoursePackageStudentService.java @@ -0,0 +1,20 @@ +package com.dsh.course.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.dsh.course.entity.CoursePackageStudent; + +import java.util.List; + +/** + * <p> + * 学员上课记录 服务类 + * </p> + * + * @author jqs + * @since 2023-06-30 + */ +public interface CoursePackageStudentService extends IService<CoursePackageStudent> { + + List<CoursePackageStudent> queryStuDeduClassHourNums(Integer courseId, Integer stuId, Integer appUserId); + +} diff --git a/cloud-server-course/src/main/java/com/dsh/course/service/impl/CoursePackageStudentServiceImpl.java b/cloud-server-course/src/main/java/com/dsh/course/service/impl/CoursePackageStudentServiceImpl.java new file mode 100644 index 0000000..ba33ad3 --- /dev/null +++ b/cloud-server-course/src/main/java/com/dsh/course/service/impl/CoursePackageStudentServiceImpl.java @@ -0,0 +1,26 @@ +package com.dsh.course.service.impl; + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.dsh.course.entity.CoursePackageStudent; +import com.dsh.course.mapper.CoursePackageStudentMapper; +import com.dsh.course.service.CoursePackageStudentService; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * <p> + * 学员上课记录 服务实现类 + * </p> + * + * @author jqs + * @since 2023-06-30 + */ +@Service +public class CoursePackageStudentServiceImpl extends ServiceImpl<CoursePackageStudentMapper, CoursePackageStudent> implements CoursePackageStudentService { + + @Override + public List<CoursePackageStudent> queryStuDeduClassHourNums(Integer courseId, Integer stuId, Integer appUserId) { + return this.baseMapper.queryStuDeduClassHourNums(courseId,stuId,appUserId); + } +} diff --git a/cloud-server-course/src/main/java/com/dsh/course/web/CancelledClassesController.java b/cloud-server-course/src/main/java/com/dsh/course/web/CancelledClassesController.java deleted file mode 100644 index 87c1bd5..0000000 --- a/cloud-server-course/src/main/java/com/dsh/course/web/CancelledClassesController.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.dsh.course.web; - - -import org.springframework.web.bind.annotation.RequestMapping; - -import org.springframework.web.bind.annotation.RestController; - -/** - * <p> - * 课包消课记录 前端控制器 - * </p> - * - * @author jqs - * @since 2023-06-29 - */ -@RestController -@RequestMapping("/cancelled-classes") -public class CancelledClassesController { - -} - diff --git a/cloud-server-course/src/main/resources/mapper/CoursePackageStudentMapper.xml b/cloud-server-course/src/main/resources/mapper/CoursePackageStudentMapper.xml new file mode 100644 index 0000000..f9e2d0d --- /dev/null +++ b/cloud-server-course/src/main/resources/mapper/CoursePackageStudentMapper.xml @@ -0,0 +1,35 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> +<mapper namespace="com.dsh.course.mapper.CoursePackageStudentMapper"> + + + <select id="queryStuDeduClassHourNums" resultType="com.dsh.course.entity.CoursePackageStudent"> + SELECT * + FROM t_course_package_student + UNION ALL + SELECT * + FROM t_course_package_student1 + UNION ALL + SELECT * + FROM t_course_package_student2 + UNION ALL + SELECT * + FROM t_course_package_student3 + UNION ALL + SELECT * + FROM t_course_package_student4 + UNION ALL + SELECT * + FROM t_course_package_student5 + WHERE signInOrNot = 1 + <if test="courseId != null"> + and coursePackageId = #{courseId} + </if> + <if test="stuId != null "> + and studentId = #{stuId} + </if> + <if test="appUserId != null"> + and appUserId = #{appUserId} + </if> + </select> +</mapper> -- Gitblit v1.7.1