puzhibing
2023-07-14 c81d766cd91be3b3a24c8db94dcd93c071a66c62
cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java
@@ -9,6 +9,7 @@
import com.dsh.course.feignclient.activity.CouponClient;
import com.dsh.course.feignclient.activity.model.BenefitsVideos;
import com.dsh.course.feignclient.activity.model.Coupon;
import com.dsh.course.feignclient.model.RecordAppoint;
import com.dsh.course.feignclient.other.StoreClient;
import com.dsh.course.feignclient.other.model.Store;
import com.dsh.course.mapper.*;
@@ -22,10 +23,7 @@
import com.dsh.course.model.vo.response.CourseDetailsResponse;
import com.dsh.course.model.vo.response.CourseOfVideoResponse;
import com.dsh.course.service.TCoursePackagePaymentService;
import com.dsh.course.util.PayMoneyUtil;
import com.dsh.course.util.ResultUtil;
import com.dsh.course.util.StrUtils;
import com.dsh.course.util.UUIDUtil;
import com.dsh.course.util.*;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.beans.factory.annotation.Autowired;
@@ -33,6 +31,7 @@
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.regex.Matcher;
@@ -401,4 +400,80 @@
    }
    @Override
    public List<RecordAppoint> obtainStuClassDetails(Integer stuId, Integer appUserId) {
        List<RecordAppoint> recordVoList = new ArrayList<>();
        List<TCoursePackagePayment> tCoursePackagePayments = this.baseMapper.selectList(new QueryWrapper<TCoursePackagePayment>()
                .eq("studentId",stuId )
                .eq("appUserId",appUserId )
                .eq("payStatus",2 )
                .eq("status",1 )
                .orderByDesc("insertTime"));
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy.MM.dd");
        SimpleDateFormat format = new SimpleDateFormat("yyyy.MM.dd HH:mm");
        if (tCoursePackagePayments.size() > 0 ){
            for (TCoursePackagePayment tCoursePackagePayment : tCoursePackagePayments) {
                RecordAppoint recordVo = new RecordAppoint();
                recordVo.setCoursePackageId(tCoursePackagePayment.getCoursePackageId());
                TCoursePackage coursePackage = tcpmapper.selectById(tCoursePackagePayment.getCoursePackageId());
                recordVo.setCoursePackageName(coursePackage.getName());
                recordVo.setCourseHours(tCoursePackagePayment.getClassHours());
                Date date = DateUtil.getDate();
                String classStartTime = coursePackage.getClassStartTime();
                String classEndTime = coursePackage.getClassEndTime();
                recordVo.setTimeFrame(simpleDateFormat.format(date)+" "+classStartTime+"-"+classEndTime);
                Store store = stoClient.queryStoreById(coursePackage.getStoreId());
                recordVo.setStoreNameAddr(store.getName()+store.getAddress());
                CoursePackageStudent coursePackageStudent = cpsMapper.selectOne(new QueryWrapper<CoursePackageStudent>()
                        .eq("coursePackageId",tCoursePackagePayment.getCoursePackageId() )
                        .eq("studentId",stuId)
                        .eq("appUserId",appUserId)
                        .eq("reservationStatus",1));
                if (ToolUtil.isNotEmpty(coursePackageStudent) && coursePackageStudent.getReservationStatus() == 1){
                    recordVo.setCourseStuRecordId(coursePackageStudent.getId());
                    String classWeeks = coursePackage.getClassWeeks();
                    String[] split = classWeeks.split(";");
                    List<Integer> integerList = Arrays.stream(split)
                            .map(Integer::parseInt)
                            .collect(Collectors.toList());
                    int dayOfWeek = DateTimeHelper.getDayOfWeek(new Date());
                    if (integerList.contains(dayOfWeek)){
                        String dat = simpleDateFormat.format(date) +" "+ classStartTime;
                        Date start = null;
                        try {
                            start = format.parse(dat);
                        } catch (ParseException e) {
                            throw new RuntimeException(e);
                        }
                        if (start.after(new Date())){
                            recordVo.setStatus(1);
                        }else {
                            CancelledClasses cancelledClasses = cacMapper.selectOne(new QueryWrapper<CancelledClasses>()
                                    .eq("coursePackageId",tCoursePackagePayment.getCoursePackageId() ));
                            if (ToolUtil.isNotEmpty(cancelledClasses)){
                                recordVo.setStatus(3);
                            }else {
                                recordVo.setStatus(2);
                            }
                        }
                    }else {
                        recordVo.setStatus(1);
                    }
                }else {
                    recordVo.setStatus(4);
                }
                recordVoList.add(recordVo);
            }
        }
        return recordVoList;
    }
}