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); } cloud-server-account/src/main/java/com/dsh/account/feignclient/course/CourseRecordClient.java
New file @@ -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); } cloud-server-account/src/main/java/com/dsh/account/feignclient/course/model/StuWithCoursesListVo.java
New file @@ -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; } 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; 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; } } cloud-server-course/src/main/java/com/dsh/course/controller/CourseRecordController.java
New file @@ -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; } } cloud-server-course/src/main/java/com/dsh/course/entity/CoursePackageStudent.java
New file @@ -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; } } 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); } cloud-server-course/src/main/java/com/dsh/course/feignclient/CourseRecordClient.java
New file @@ -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); } cloud-server-course/src/main/java/com/dsh/course/feignclient/model/StuWithCoursesListVo.java
New file @@ -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; } cloud-server-course/src/main/java/com/dsh/course/mapper/CoursePackageStudentMapper.java
New file @@ -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); } cloud-server-course/src/main/java/com/dsh/course/service/CoursePackageStudentService.java
New file @@ -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); } cloud-server-course/src/main/java/com/dsh/course/service/impl/CoursePackageStudentServiceImpl.java
New file @@ -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); } } cloud-server-course/src/main/java/com/dsh/course/web/CancelledClassesController.java
File was deleted cloud-server-course/src/main/resources/mapper/CoursePackageStudentMapper.xml
New file @@ -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>