puzhibing
2023-12-08 32106f511657695e79d53e98a350ce70a36f6da1
cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java
@@ -28,6 +28,7 @@
import com.dsh.course.util.*;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.obs.services.internal.ServiceException;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
@@ -182,6 +183,7 @@
        coursePackageOrder.setOriginalPrice(packagePayment.getOriginalPrice());
        coursePackageOrder.setCashPayment(packagePayment.getCashPayment());
        coursePackageOrder.setPlayPaiCoin(packagePayment.getPlayPaiCoin());
        coursePackageOrder.setCode(packagePayment.getCode());
        coursePackageOrder.setPayStatus(1);
        coursePackageOrder.setState(1);
        coursePackageOrder.setInsertTime(new Date());
@@ -241,11 +243,11 @@
                calendar.setTime(new Date());
                calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) + validDays);
                coursePackageOrderStudent.setUseTime(calendar.getTime());
                coursePackageOrderStudent.setInsertTime(new Date());
                coursePackageOrderStudentService.saveOrUpdate(coursePackageOrderStudent);
                Integer studentId = Integer.valueOf(byId1.getStudentIds());
                //开始排课
                addPackageStudent1(byId, byId1.getAppUserId(), studentId, coursePackageOrderStudent);
                addPackageStudent1(byId, byId1.getAppUserId(), studentId, byId1, coursePackageOrderStudent);
            } else {
                Date useTime = coursePackageOrderStudent.getUseTime();
                coursePackageOrderStudent.setTotalClassHours(coursePackageOrderStudent.getTotalClassHours() + byId1.getClassHours());
@@ -274,16 +276,17 @@
                calendar9.add(Calendar.DAY_OF_MONTH, byId.getValidDays());
                Date time = calendar9.getTime();
                coursePackageOrderStudent.setUseTime(time);
                coursePackageOrderStudent.setInsertTime(new Date());
                coursePackageOrderStudentService.saveOrUpdate(coursePackageOrderStudent);
                Integer studentId = Integer.valueOf(byId1.getStudentIds());
                //中间断课,没有连续续费的情况需要重新排课
                if (useTime.compareTo(new Date()) < 0) {
                    addPackageStudent1(byId, byId1.getAppUserId(), studentId, coursePackageOrderStudent);
                    addPackageStudent1(byId, byId1.getAppUserId(), studentId, byId1, coursePackageOrderStudent);
                }
            }
        }
            if(byId.getType() == 2){
                addPackageStudent1(byId, byId1.getAppUserId(), Integer.valueOf(byId1.getStudentIds()), null);
                addPackageStudent1(byId, byId1.getAppUserId(), Integer.valueOf(byId1.getStudentIds()), byId1, null);
            }
        return packagePaymentService.changeState(dto);
    }
@@ -333,7 +336,7 @@
            Store store = storeClient.queryStoreById(re.getStoreId());
            TAppUser appUser = appUserClient.queryAppUser1(re.getAppUserId());
            String studentId = re.getStudentId();
            String[] split = studentId.split(",");
            String[] split = studentId.split(";");
            StringBuilder stringBuilder = new StringBuilder("");
            for (String s : split) {
@@ -468,7 +471,8 @@
                }
            }
            TAppUser appUser = appUserClient.queryAppUser1(re.getAppUserId());
            Student student = studentClient.queryStudentById(re.getStudentId());
            String[] split = re.getStudentIds().split(",");
            Student student = studentClient.queryStudentById(Integer.valueOf(split[0]));
            re.setPayStudent(student.getName());
            re.setPayUser(appUser.getName());
            re.setPhone(appUser.getPhone());
@@ -1181,7 +1185,6 @@
     */
    @PostMapping("/base/coursePackage/alipayRegisteredCoursesCallback")
    public void alipayCallback(HttpServletRequest request, HttpServletResponse response) {
        System.err.println("========支付宝支付回调========");
        try {
            Map<String, String> map = payMoneyUtil.alipayCallback(request);
            if (null != map) {
@@ -1728,7 +1731,7 @@
                if (student != null) {
                    sId = student.getId();
                }
                addPackageStudent(orderDto.getClassId(), orderDto.getAppUserId(), Integer.valueOf(s), coursePackagePayment.getId());
                addPackageStudent(orderDto.getClassId(), orderDto.getAppUserId(), Integer.valueOf(s), coursePackagePayment, coursePackagePayment.getId());
                CourseCounsum courseCounsum = new CourseCounsum();
@@ -1751,7 +1754,7 @@
                if (student != null) {
                    sId = student.getId();
                }
                addPackageStudent(orderDto.getClassId(), orderDto.getAppUserId(), Integer.valueOf(s), coursePackagePaymentServiceOne.getId());
                addPackageStudent(orderDto.getClassId(), orderDto.getAppUserId(), Integer.valueOf(s), coursePackagePaymentServiceOne, coursePackagePaymentServiceOne.getId());
                CourseCounsum courseCounsum = new CourseCounsum();
@@ -1760,6 +1763,7 @@
                courseCounsum.setNum(orderDto.getClassHours());
                courseCounsum.setInsertTime(new Date());
                courseCounsum.setReason("积分兑换");
                courseCounsum.setInsertTime(new Date());
                courseCounsumService.save(courseCounsum);
@@ -1901,7 +1905,8 @@
    @Autowired
    private TCoursePackageService coursePackageService;
    private void addPackageStudent1(TCoursePackage tCoursePackage, Integer userId, Integer sId, CoursePackageOrderStudent coursePackageOrderStudent) {
    private void addPackageStudent1(TCoursePackage tCoursePackage, Integer userId, Integer sId, CoursePackageOrder coursePackageOrder, CoursePackageOrderStudent coursePackageOrderStudent) {
        try {
            //1常规 2假期 3体验
            if (tCoursePackage.getType() == 1) {
@@ -2043,7 +2048,7 @@
            e.printStackTrace();
        }
    }
    private void addPackageStudent(Integer courseId, Integer userId, Integer sId, Long paymentId) throws ParseException {
    private void addPackageStudent(Integer courseId, Integer userId, Integer sId, TCoursePackagePayment coursePackagePayment, Long paymentId) throws ParseException {
        // 课包
        TCoursePackage tCoursePackage = coursePackageService.getById(courseId);
@@ -2367,13 +2372,13 @@
    @ResponseBody
    @PostMapping("/coursePackagePayment/consumeCourse")
    public ResultUtil consumeCourse(@RequestBody Integer coursePackagePaymentId) {
    public Integer consumeCourse(@RequestBody Integer coursePackagePaymentId) {
        CoursePackageOrderStudent coursePackageOrderStudent = orderStudentService.getById(coursePackagePaymentId);
        TCoursePackage coursePackage = coursePackageService.getById(coursePackageOrderStudent.getCoursePackageId());
        if (coursePackageOrderStudent.getLaveClassHours()<coursePackage.getNeedNum()){
            return ResultUtil.error("当前学员课时数不足");
           return 1;
        }
        coursePackageOrderStudent.setLaveClassHours(coursePackageOrderStudent.getLaveClassHours()-coursePackage.getNeedNum());
        orderStudentService.updateById(coursePackageOrderStudent);
@@ -2384,14 +2389,14 @@
        courseCounsum.setInsertTime(new Date());
        courseCounsum.setReason("补课");
        courseCounsumService.save(courseCounsum);
        return ResultUtil.success("补课成功");
        return 2;
    }
    @ResponseBody
    @PostMapping("/coursePackagePayment/CountqueryByClassId")
    public Integer CountqueryByClassId(@RequestBody Integer id) {
        int coursePackageId = packagePaymentService.count(new QueryWrapper<TCoursePackagePayment>().eq("coursePackageId", id));
        int coursePackageId = coursePackageOrderStudentService.count(new QueryWrapper<CoursePackageOrderStudent>().eq("coursePackageId", id));
        return coursePackageId;
@@ -2547,21 +2552,6 @@
                .in(CoursePackageScheduling::getCoursePackageId, collect)
        );
        List<Integer> collect1 = list8.stream().map(CoursePackageScheduling::getCoursePackageId).collect(Collectors.toList());
//        // 找出购买的课包
//        List<CoursePackageOrderStudent> list1 = coursePackageOrderStudentService.list(new QueryWrapper<CoursePackageOrderStudent>()
//                .eq("appUserId", courseDetailReq.getAppUserId())
//                .eq("studentId", courseDetailReq.getStuId())
//                .in("coursePackageId", collect1)
//                .eq("status", 1)
//                .eq("state", 1)
//        );
//        List<Integer> collect1 = list1.stream().map(CoursePackageOrderStudent::getCoursePackageId).collect(Collectors.toList());
//        List<Long> ids = list1.stream().map(CoursePackageOrderStudent::getId).collect(Collectors.toList());
        for (TCoursePackage tCoursePackage : list) {
            DetailsListVo detailsListVo = new DetailsListVo();
            detailsListVo.setId(tCoursePackage.getId());
@@ -2640,14 +2630,25 @@
                    detailsListVo.setIsType(list4.get(0).getType());
                    for (CoursePackageStudent coursePackageStudent : list4) {
                        CoursePackageScheduling coursePackageScheduling = coursePackageSchedulingMapper.selectById(coursePackageStudent.getCoursePackageSchedulingId());
                        if (coursePackageScheduling.getStatus()==4){
                            detailsListVo.setIsType(3);
                        }
                        Integer signInOrNot1 = coursePackageStudent.getSignInOrNot();
                        detailsListVo.setType(1);
                        if (signInOrNot1 == 2) {
                            detailsListVo.setType(3);
                        }
                        //体验购课去掉按钮
                        if(coursePackageScheduling.getType() == 3){
                            detailsListVo.setCourseType(3);
                            detailsListVo.setType(2);
                        }
                        detailsListVo.setIsType(coursePackageStudent.getType());
                        CoursePackageScheduling coursePackageScheduling = coursePackageSchedulingMapper.selectById(coursePackageStudent.getCoursePackageSchedulingId());
                        Date classDate = coursePackageScheduling.getClassDate();
                        Date endDate = coursePackageScheduling.getEndDate();
                        SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");
@@ -2721,18 +2722,18 @@
            ids.add(-1);
        }
        List<TCoursePackagePayment> list1 = packagePaymentService.listOne(ids);
        List<Integer> collect = list1.stream().map(TCoursePackagePayment::getCoursePackageId).collect(Collectors.toList());
        if (collect.size() == 0) {
            collect.add(-1);
        }
        List<TCoursePackage> list2 = tcpService.list(new LambdaQueryWrapper<TCoursePackage>().in(TCoursePackage::getId, collect));
        for (TCoursePackagePayment tCoursePackagePayment : list1) {
            for (TCoursePackage tCoursePackage : list2) {
                if (tCoursePackagePayment.getCoursePackageId().equals(tCoursePackage.getId())) {
                    tCoursePackagePayment.setType(tCoursePackage.getType());
                }
            }
        }
//        List<Integer> collect = list1.stream().map(TCoursePackagePayment::getCoursePackageId).collect(Collectors.toList());
//        if (collect.size() == 0) {
//            collect.add(-1);
//        }
//        List<TCoursePackage> list2 = tcpService.list(new LambdaQueryWrapper<TCoursePackage>().in(TCoursePackage::getId, collect));
//        for (TCoursePackagePayment tCoursePackagePayment : list1) {
//            for (TCoursePackage tCoursePackage : list2) {
//                if (tCoursePackagePayment.getCoursePackageId().equals(tCoursePackage.getId())) {
//                    tCoursePackagePayment.setType(tCoursePackage.getType());
//                }
//            }
//        }
        List<Map<String, Object>> mapList = new ArrayList<>();
@@ -2741,7 +2742,7 @@
            map.put("name", tCoursePackageType.getName());
            int a = 0;
            for (TCoursePackagePayment tCoursePackagePayment : list1) {
                if (tCoursePackagePayment.getType().equals(tCoursePackageType.getId())) {
                if (null != tCoursePackagePayment.getType() && tCoursePackagePayment.getType().equals(tCoursePackageType.getId())) {
                    a += tCoursePackagePayment.getLaveClassHours();
                }
            }
@@ -3204,4 +3205,18 @@
        return map;
    }
    @ResponseBody
    @PostMapping("/coursePackagePayment/queryPaymentCoursePackage")
    public List<Integer> queryPaymentCoursePackage(@RequestBody List<Integer> storeIds){
        List<TCoursePackage> list = coursePackageService.list(new QueryWrapper<TCoursePackage>().eq("auditStatus", 2)
                .ne("status", 4).eq("state", 1).in("storeId", storeIds));
        List<Integer> collect = list.stream().map(TCoursePackage::getId).collect(Collectors.toList());
        if(collect.size() == 0){
            return new ArrayList<>();
        }
        List<CoursePackageOrder> list1 = coursePackageOrderService.list(new QueryWrapper<CoursePackageOrder>().in("coursePackageId", collect).eq("payStatus", 2).eq("status", 1));
        return list1.stream().map(CoursePackageOrder::getAppUserId).collect(Collectors.toList());
    }
}