java
2023-06-30 d0fe90adfae626158a431b038395caa908e48e8c
课程信息:课时详情的数据处理
4个文件已修改
1个文件已删除
10个文件已添加
367 ■■■■■ 已修改文件
cloud-server-account/src/main/java/com/dsh/account/feignclient/course/CoursePaymentClient.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/feignclient/course/CourseRecordClient.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/feignclient/course/model/StuWithCoursesListVo.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/service/impl/TStudentServiceImpl.java 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java 27 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/controller/CourseRecordController.java 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/entity/CoursePackageStudent.java 67 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/feignclient/CoursePaymentClient.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/feignclient/CourseRecordClient.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/feignclient/model/StuWithCoursesListVo.java 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/mapper/CoursePackageStudentMapper.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/service/CoursePackageStudentService.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/service/impl/CoursePackageStudentServiceImpl.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/java/com/dsh/course/web/CancelledClassesController.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-course/src/main/resources/mapper/CoursePackageStudentMapper.xml 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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>