From eb6b6dbb35a9f029e0b7d269773685c19fd40976 Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期四, 11 七月 2024 10:47:51 +0800 Subject: [PATCH] 玩湃微信商户认证代码 --- cloud-server-course/src/main/java/com/dsh/course/service/impl/CoursePackageOrderStudentServiceImpl.java | 221 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 219 insertions(+), 2 deletions(-) diff --git a/cloud-server-course/src/main/java/com/dsh/course/service/impl/CoursePackageOrderStudentServiceImpl.java b/cloud-server-course/src/main/java/com/dsh/course/service/impl/CoursePackageOrderStudentServiceImpl.java index c8f143b..6acdef8 100644 --- a/cloud-server-course/src/main/java/com/dsh/course/service/impl/CoursePackageOrderStudentServiceImpl.java +++ b/cloud-server-course/src/main/java/com/dsh/course/service/impl/CoursePackageOrderStudentServiceImpl.java @@ -1,10 +1,31 @@ package com.dsh.course.service.impl; +import cn.hutool.http.HttpRequest; +import cn.hutool.http.HttpResponse; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.dsh.course.entity.CoursePackageOrderStudent; -import com.dsh.course.mapper.CoursePackageOrderStudentMapper; +import com.dsh.course.entity.*; +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.*; import com.dsh.course.service.ICoursePackageOrderStudentService; +import com.dsh.course.service.ICoursePackageSchedulingService; +import com.dsh.course.util.DateTimeHelper; +import com.dsh.course.util.DateUtil; +import com.dsh.course.util.ToolUtil; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.*; +import java.util.stream.Collectors; /** * @author zhibing.pu @@ -12,4 +33,200 @@ */ @Service public class CoursePackageOrderStudentServiceImpl extends ServiceImpl<CoursePackageOrderStudentMapper, CoursePackageOrderStudent> implements ICoursePackageOrderStudentService { + + + @Resource + private CoursePackageStudentMapper cpsMapper; + + @Resource + private CancelledClassesMapper cacMapper; + + @Autowired + private ICoursePackageSchedulingService coursePackageSchedulingService; + + @Resource + private TCoursePackageMapper tcpmapper; + + @Resource + private StoreClient stoClient; + + + + @Override + public List<RecordAppoint> obtainStuClassDetails(Integer stuId, Integer appUserId, Integer pageNum) { + List<RecordAppoint> recordVoList = new ArrayList<>(); + List<CoursePackageOrderStudent> tCoursePackagePayments = this.baseMapper.selectList(new QueryWrapper<CoursePackageOrderStudent>() + .eq("studentId", stuId) + .eq("appUserId", appUserId) + .eq("status", 1) + .orderByDesc("insertTime")); + + + Calendar calendar = Calendar.getInstance(); + calendar.setTime(new Date()); + calendar.set(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH), 23, 59, 59); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + List<CoursePackageScheduling> list = coursePackageSchedulingService.list(new QueryWrapper<CoursePackageScheduling>() + .eq("appUserId", appUserId) + .eq("studentId", stuId) +// .lt("classDate", sdf.format(calendar.getTime())) + .orderByAsc("classDate") + ); + List<Long> ids = list.stream().map(CoursePackageScheduling::getId).collect(Collectors.toList()); + + SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy.MM.dd"); + SimpleDateFormat format = new SimpleDateFormat("yyyy.MM.dd HH:mm"); + if (list.size() > 0) { + +// int pageNum = 1; // 页码 + int pageSize = 10; // 每页记录数 + Page<CoursePackageStudent> page = new Page<>(pageNum, pageSize); + IPage<CoursePackageStudent> coursePackageStudentPage = cpsMapper.selectPage(page, new QueryWrapper<CoursePackageStudent>() + .in("coursePackageSchedulingId", ids) + .eq("reservationStatus", 1)); + List<CoursePackageStudent> coursePackageStudent1 = coursePackageStudentPage.getRecords(); + + + if (ToolUtil.isNotEmpty(coursePackageStudent1) && coursePackageStudent1.size() > 0) { + TCoursePackage coursePackage = new TCoursePackage(); + Integer coursePackageId = -1; + for (CoursePackageStudent coursePackageStudent : coursePackageStudent1) { + RecordAppoint recordVo = new RecordAppoint(); + recordVo.setCoursePackageId(coursePackageStudent.getCoursePackageId()); + + if (!coursePackageStudent.getCoursePackageId().equals(coursePackageId)) { + coursePackage = tcpmapper.selectById(coursePackageStudent.getCoursePackageId()); + coursePackageId = coursePackageStudent.getCoursePackageId(); + } + + recordVo.setSid(Arrays.asList(coursePackage.getStoreId())); + List<Integer> rid = stoClient.querySiteId(coursePackage.getStoreId()); + recordVo.setRid(rid); + recordVo.setUserId(appUserId); + recordVo.setSiteId(coursePackage.getSiteId()); + List<Integer> ids1 = getIds(coursePackage.getSiteId()); + recordVo.setIds(ids1); + + recordVo.setCoursePackageName(coursePackage.getName()); + for (CoursePackageOrderStudent tCoursePackagePayment : tCoursePackagePayments) { + if (Objects.equals(coursePackageStudent.getCoursePackageId(), tCoursePackagePayment.getCoursePackageId())) { + recordVo.setCourseHours(tCoursePackagePayment.getTotalClassHours()); + } + } + + + CoursePackageScheduling byId = coursePackageSchedulingService.getById(coursePackageStudent.getCoursePackageSchedulingId()); + if (byId == null) { + continue; + } + String dateString1 = sdf.format(byId.getClassDate()); + String dateString2 = sdf.format(byId.getEndDate()); + + + recordVo.setTimeFrame(dateString1 + "-" + dateString2.substring(11)); + + Store store = stoClient.queryStoreById(coursePackage.getStoreId()); + recordVo.setStoreNameAddr(store.getName() + store.getAddress()); + recordVo.setCourseStuRecordId(coursePackageStudent.getId()); + String classWeeks = coursePackage.getClassWeeks(); + String[] split = classWeeks.split(";"); + List<String> integerList = Arrays.asList(split); + String weekOfDate = DateTimeHelper.getWeekOfDate(new Date()); +// if (integerList.contains(weekOfDate)) { + String dat = simpleDateFormat.format(byId.getClassDate()) + " " + dateString1.substring(11); + String ed = simpleDateFormat.format(byId.getEndDate()) + " " + dateString2.substring(11); + + Date start = null; + Date end = null; + try { + start = format.parse(dat); + end = format.parse(ed); + } catch (ParseException e) { + throw new RuntimeException(e); + } + + CancelledClasses cancelledClasses = cacMapper.selectOne(new QueryWrapper<CancelledClasses>() + .eq("coursePackageSchedulingId", byId.getId()).last("limit 1")); +// else { +// Date now = new Date(); +// if (now.after(byId.getClassDate()) && now.before(byId.getEndDate())) { +// recordVo.setStatus(2); +// } else { +// recordVo.setStatus(3); +// +// } +// } + + //已取消 + if (byId.getStatus() == 4) { + recordVo.setStatus(4); + } else if (coursePackageStudent.getSignInOrNot() == 2) { + //已请假 + recordVo.setStatus(5); + }else if (ToolUtil.isNotEmpty(cancelledClasses)) { + recordVo.setStatus(3); + // 消课 到课状态0 旷课 + if (coursePackageStudent.getSignInOrNot() == 0) { + recordVo.setStatus(6); + } + + }else if (new Date().after(start)&&new Date().before(end)){ + recordVo.setStatus(2); + }else if (start.after(new Date())) { + //待上课 + recordVo.setStatus(1); + } + else { +// CancelledClasses cancelledClasses = cacMapper.selectOne(new QueryWrapper<CancelledClasses>() +// .eq("coursePackageSchedulingId", byId.getId()).last("limit 1")); +// if (ToolUtil.isNotEmpty(cancelledClasses)) { +// recordVo.setStatus(3); +// // 消课 到课状态0 旷课 +// if (coursePackageStudent.getSignInOrNot() == 0) { +// recordVo.setStatus(6); +// } +// +// } else { +// Date now = new Date(); +// if (now.after(byId.getClassDate()) && now.before(byId.getEndDate())) { +// recordVo.setStatus(2); +// } else { +// recordVo.setStatus(3); +// +// } +// } + } +// } else { +// recordVo.setStatus(1); +// } + recordVoList.add(recordVo); + } + + } else { + } + + } + + return recordVoList; + } + + + + public List<Integer> getIds(Integer siteId) { + HttpRequest httpRequest = HttpRequest.get("https://try.daowepark.com/v7/user_api/general/get_space_area?space_id=" + siteId); + HttpResponse execute = httpRequest.execute(); + String body = execute.body(); + JSONObject jsonObject = JSONObject.parseObject(body); + Object data = jsonObject.get("data"); + JSONArray array = JSONArray.parseArray(data.toString()); + List<Integer> ids = new ArrayList<>(); + for (Object o : array) { + JSONObject jsonObject1 = JSONObject.parseObject(o.toString()); + Object id = jsonObject1.get("id"); + Integer integer = Integer.valueOf(id.toString()); + ids.add(integer); + } + return ids; + + } } -- Gitblit v1.7.1