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