From fad04923e4a9174bac391d12c59f1ade15b23521 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期二, 05 三月 2024 10:10:19 +0800
Subject: [PATCH] 切换分支
---
cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java | 979 ++++++++++++++++++++++++++++++++++-----------------------
1 files changed, 584 insertions(+), 395 deletions(-)
diff --git a/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java b/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java
index 05d74e9..d820ff0 100644
--- a/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java
+++ b/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java
@@ -1,11 +1,8 @@
package com.dsh.course.controller;
-import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.dsh.course.entity.*;
import com.dsh.course.entity.TAppUser;
@@ -15,12 +12,11 @@
import com.dsh.course.feignclient.account.model.Student;
import com.dsh.course.feignclient.account.model.TCourseInfoRecord;
import com.dsh.course.feignclient.account.model.TStudent;
-import com.dsh.course.feignclient.activity.CouponClient;
-import com.dsh.course.feignclient.activity.model.Coupon;
import com.dsh.course.feignclient.model.*;
import com.dsh.course.feignclient.other.StoreClient;
import com.dsh.course.feignclient.other.model.Store;
import com.dsh.course.mapper.CoursePackageSchedulingMapper;
+import com.dsh.course.mapper.CoursePackageStudentMapper;
import com.dsh.course.mapper.TCoursePackageMapper;
import com.dsh.course.model.*;
import com.dsh.course.model.dto.DiscountJsonDto;
@@ -29,24 +25,19 @@
import com.dsh.course.model.vo.request.*;
import com.dsh.course.model.vo.response.*;
import com.dsh.course.service.*;
-import com.dsh.course.service.impl.CoursePackageOrderStudentServiceImpl;
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;
import io.swagger.annotations.ApiOperation;
-import net.bytebuddy.asm.Advice;
-import org.aspectj.weaver.ast.Var;
-import io.swagger.models.auth.In;
-import org.checkerframework.checker.units.qual.C;
+import net.sf.json.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.http.HttpHeaders;
-import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.client.RestTemplate;
@@ -72,6 +63,8 @@
@Autowired
private TCoursePackagePaymentService packagePaymentService;
+ @Resource
+ private CoursePackageStudentMapper cpsMapper;
@Autowired
private ICoursePackageOrderService coursePackageOrderService;
@@ -135,14 +128,21 @@
@Autowired
private CoursePackageStudentService coursePackageStudentService;
-
- private final SimpleDateFormat format = new SimpleDateFormat("MM-dd HH:mm");
-
@Autowired
private TOrderService orderService;
+ private final SimpleDateFormat format = new SimpleDateFormat("MM-dd HH:mm");
+
+
+
@Autowired
private ICoursePackageOrderStudentService coursePackageOrderStudentService;
+
+ @Autowired
+ private ALiSendSms aLiSendSms;
+
+ @Resource
+ private AppUserClient appuClient;
/**
@@ -172,124 +172,33 @@
*/
@RequestMapping("/base/coursePackagePayment/add")
public Object addCoursePackagePayment(@RequestBody TCoursePackagePayment packagePayment) {
- packagePayment.setInsertTime(new Date());
- packagePayment.setInsertTime(new Date());
- Integer studentId = packagePayment.getStudentId();
- // 添加学员上课记录
- CoursePackageStudent coursePackageStudent = new CoursePackageStudent();
- TCoursePackagePayment one = packagePaymentService.getOne(new QueryWrapper<TCoursePackagePayment>().eq("studentId", packagePayment.getStudentId())
- .orderByDesc("insertTime")
- .last("LIMIT 1"));
-
- if (one != null) {
- Integer totalClassHours = one.getTotalClassHours();
- Integer absencesNumber = one.getAbsencesNumber();
- // 没有过期
- if (one.getUseTime().after(new Date())) {
- if (one.getLaveClassHours() - packagePayment.getClassHours() < 0) {
- return 5002;
- }
- packagePayment.setTotalClassHours(one.getTotalClassHours());
- packagePayment.setLaveClassHours(one.getLaveClassHours() - packagePayment.getClassHours());
- packagePayment.setAbsencesNumber(one.getAbsencesNumber());
+ //校验是否已经报满
+ Integer cpId = Integer.valueOf((int) packagePayment.getCoursePackageId());
+ Integer integer = coursePackagePaymentService.queryCountNumber(cpId);
+ TCoursePackage course = coursePackageService.getById(packagePayment.getCoursePackageId());
+ if (course.getType() != 3) {
+ if (integer + 1 > course.getMaxSubscribeNumber()) {
+ return 5001;
}
- packagePayment.setTotalClassHours(packagePayment.getClassHours());
- packagePayment.setLaveClassHours(packagePayment.getClassHours());
- packagePayment.setAbsencesNumber(one.getAbsencesNumber());
- } else {
- packagePayment.setTotalClassHours(packagePayment.getClassHours());
- packagePayment.setLaveClassHours(packagePayment.getClassHours());
- packagePayment.setAbsencesNumber(0);
}
+ CoursePackageOrder coursePackageOrder = new CoursePackageOrder();
+ coursePackageOrder.setAppUserId(packagePayment.getAppUserId());
+ coursePackageOrder.setStudentIds(String.valueOf(packagePayment.getStudentId()));
+ coursePackageOrder.setCoursePackageId(packagePayment.getCoursePackageId());
+ coursePackageOrder.setClassHours(packagePayment.getClassHours());
+ coursePackageOrder.setOriginalPrice(packagePayment.getOriginalPrice());
+ coursePackageOrder.setCashPayment(packagePayment.getCashPayment());
+ coursePackageOrder.setPlayPaiCoin(packagePayment.getPlayPaiCoin());
+ coursePackageOrder.setCode(packagePayment.getCode());
+ coursePackageOrder.setPayStatus(1);
+ coursePackageOrder.setStatus(1);
+ coursePackageOrder.setState(1);
+ coursePackageOrder.setInsertTime(new Date());
+ coursePackageOrder.setSalesName(packagePayment.getSalesName());
+ coursePackageOrderService.save(coursePackageOrder);
// 生成排课数据
- TCoursePackage coursePackage = tcpService.getById(packagePayment.getCoursePackageId());
- //生成排课数据
- try {
- SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
- SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
- Date date = sdf1.parse(sdf.format(new Date()) + " 00:00:00");
- List<String> list = Arrays.asList(coursePackage.getClassWeeks().split(";"));
- String value = coursePackage.getClassStartTime();
- String value1 = coursePackage.getClassEndTime();
+ return 200;
- String[] star = value.split(",");
- String[] end = value1.split(",");
- for (int i = 0; i < star.length; i++) {
- // int index = star[i].indexOf(",");
- // String result = value.substring(0, index).trim();
- String classStartTime = star[i];
- String[] split = classStartTime.split(":");
- // String value1 = en;
- int index1 = value1.indexOf(",");
- // String result1 = value.substring(0, index1).trim();
- String classEndTime = end[i];
- String[] split1 = classEndTime.split(":");
- Calendar s = Calendar.getInstance();
- s.setTime(date);
- s.set(Calendar.DAY_OF_YEAR, s.get(Calendar.DAY_OF_YEAR) + 1);
- s.set(Calendar.HOUR_OF_DAY, Integer.valueOf(split[0]));
- s.set(Calendar.MINUTE, Integer.valueOf(split[1]));
- s.set(Calendar.SECOND, 0);
-
- Calendar e = Calendar.getInstance();
- e.setTime(date);
- e.set(Calendar.DAY_OF_YEAR, s.get(Calendar.DAY_OF_YEAR) + 14);
- long timeInMillis = e.getTimeInMillis();
-
- while (true) {
- int w = s.get(Calendar.DAY_OF_WEEK);
- WeekEnum weekEnum = WeekEnum.getWeekEnum(w);
- if (list.contains(weekEnum.getChineseName())) {
- Calendar classDate = Calendar.getInstance();
- classDate.setTime(s.getTime());
- classDate.set(Calendar.HOUR_OF_DAY, Integer.valueOf(split[0]));
- classDate.set(Calendar.MINUTE, Integer.valueOf(split[1]));
- classDate.set(Calendar.SECOND, 0);
-
- Calendar endDate = Calendar.getInstance();
- endDate.setTime(s.getTime());
- endDate.set(Calendar.HOUR_OF_DAY, Integer.valueOf(split1[0]));
- endDate.set(Calendar.MINUTE, Integer.valueOf(split1[1]));
- endDate.set(Calendar.SECOND, 0);
-
- CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling();
- coursePackageScheduling.setCoursePackageId(coursePackage.getId());
- coursePackageScheduling.setClassDate(classDate.getTime());
- coursePackageScheduling.setEndDate(endDate.getTime());
- coursePackageScheduling.setStatus(1);
- coursePackageSchedulingService.save(coursePackageScheduling);
- coursePackageStudent.setCoursePackageSchedulingId(coursePackageScheduling.getId());
-
- List<CoursePackageScheduling> list1 = coursePackageSchedulingService.list(new QueryWrapper<CoursePackageScheduling>()
- .eq("coursePackageId", coursePackage.getId())
- .eq("classDate", classDate.getTime())
- .eq("endDate", endDate.getTime()));
- if (list1.size() + 1 > coursePackage.getMaxSubscribeNumber()) {
- // 当前课包预约人数已满
- return 5001;
- }
- }
- s.set(Calendar.DAY_OF_YEAR, s.get(Calendar.DAY_OF_YEAR) + 1);
- if (s.getTimeInMillis() > timeInMillis) {
- break;
- }
- }
- }
- } catch (ParseException e) {
- e.printStackTrace();
- }
-
- coursePackageStudent.setStudentId(packagePayment.getStudentId());
- coursePackageStudent.setCoursePackageId(packagePayment.getCoursePackageId());
-
-
- coursePackageStudent.setSignInOrNot(0);
- coursePackageStudent.setReservationStatus(1);
- coursePackageStudent.setInsertTime(new Date());
- coursePackageStudent.setAppUserId(packagePayment.getAppUserId());
- packagePaymentService.save(packagePayment);
- coursePackageStudent.setCoursePackagePaymentId(packagePayment.getId());
- return coursePackageStudentService.save(coursePackageStudent);
}
/**
@@ -299,13 +208,99 @@
*/
@RequestMapping("/base/coursePackagePayment/changeState")
public Object changeState(@RequestBody CoursePackagePayDTO dto) {
+ String ids = dto.getIds();
+ Long aLong = Long.valueOf(ids);
+ CoursePackageOrder byId1 = coursePackageOrderService.getById(aLong);
+ TCoursePackage byId = coursePackageService.getById(byId1.getCoursePackageId());
+ if (byId.getType()==1){
+ // 如果重复购买 累加课时
+ CoursePackageOrderStudent coursePackageOrderStudent = coursePackageOrderStudentService
+ .getOne(new QueryWrapper<CoursePackageOrderStudent>().eq("studentId", Integer.valueOf(byId1.getStudentIds()))
+ .eq("coursePackageId", byId1.getCoursePackageId()).eq("status", 1).eq("state", 1));
+ if (null == coursePackageOrderStudent) {
+ coursePackageOrderStudent = new CoursePackageOrderStudent();
+ coursePackageOrderStudent.setAppUserId(byId1.getAppUserId());
+ coursePackageOrderStudent.setStudentId(Integer.valueOf(byId1.getStudentIds()));
+ coursePackageOrderStudent.setCoursePackageId(byId1.getCoursePackageId());
+ coursePackageOrderStudent.setTotalClassHours(byId1.getClassHours());
+ coursePackageOrderStudent.setLaveClassHours(byId1.getClassHours());
+ coursePackageOrderStudent.setAbsencesNumber(0);
+ coursePackageOrderStudent.setStatus(1);
+ coursePackageOrderStudent.setState(1);
+ coursePackageOrderStudent.setInsertTime(new Date());
+ // 判断这个订单购买的是哪一个课时规格
+ CoursePackagePaymentConfig one1 = icppcService.getOne(new QueryWrapper<CoursePackagePaymentConfig>()
+ .eq("coursePackageId", byId.getId())
+ .eq("classHours", byId1.getClassHours()));
+ // 判断当前购买的课包有没有赠送课时
+ TCoursePackageDiscount one = tcpdService.getOne(new QueryWrapper<TCoursePackageDiscount>().eq("coursePackageId", byId.getId())
+ .eq("type", 4).eq("auditStatus", 2).eq("status", 1)
+ .eq("coursePackagePaymentConfigId",one1.getId()));
+ if (one!=null){
+ Integer giftClassHours = getGiftClassHours(one,null);
+ coursePackageOrderStudent.setGiftClassHours(giftClassHours);
+ coursePackageOrderStudent.setTotalClassHours(coursePackageOrderStudent.getTotalClassHours()+giftClassHours);
+ coursePackageOrderStudent.setLaveClassHours(coursePackageOrderStudent.getLaveClassHours()+giftClassHours);
+ }else{
+ coursePackageOrderStudent.setGiftClassHours(0);
+ }
+ Integer validDays = byId.getValidDays();
+ Calendar calendar = Calendar.getInstance();
+ 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, byId1, coursePackageOrderStudent);
+ } else {
+ Date useTime = coursePackageOrderStudent.getUseTime();
+ coursePackageOrderStudent.setTotalClassHours(coursePackageOrderStudent.getTotalClassHours() + byId1.getClassHours());
+ coursePackageOrderStudent.setLaveClassHours(coursePackageOrderStudent.getLaveClassHours() + byId1.getClassHours());
+ Integer validDays = byId.getValidDays();
+ Calendar calendar = Calendar.getInstance();
+ calendar.setTime(useTime.compareTo(new Date()) < 0 ? new Date() : useTime);
+ calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) + validDays);
+ coursePackageOrderStudent.setUseTime(calendar.getTime());
+ // 判断这个订单购买的是哪一个课时规格
+ CoursePackagePaymentConfig one1 = icppcService.getOne(new QueryWrapper<CoursePackagePaymentConfig>()
+ .eq("coursePackageId", byId.getId())
+ .eq("classHours", byId1.getClassHours()));
+ // 判断当前购买的课包有没有赠送课时
+ TCoursePackageDiscount one = tcpdService.getOne(new QueryWrapper<TCoursePackageDiscount>().eq("coursePackageId", byId.getId())
+ .eq("type", 4).eq("auditStatus", 2).eq("status", 1)
+ .eq("coursePackagePaymentConfigId",one1.getId()));
+ if (one!=null){
+ Integer giftClassHours = getGiftClassHours(one,null);
+ coursePackageOrderStudent.setGiftClassHours(giftClassHours);
+ }else{
+ coursePackageOrderStudent.setGiftClassHours(0);
+ }
+ // 获取常规课的有效期 计算是哪一天
+ Calendar calendar9 = Calendar.getInstance();
+ 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, byId1, coursePackageOrderStudent);
+ }
+ }
+ }
+ if(byId.getType() == 2){
+ addPackageStudent1(byId, byId1.getAppUserId(), Integer.valueOf(byId1.getStudentIds()), byId1, null);
+ }
return packagePaymentService.changeState(dto);
}
@GetMapping("/coursePackagePayment/courseStore/{appUserId}/{coursePackageId}")
- public List<TCoursePackagePayment> getByUserIdAndCoursePackageId(@PathVariable("appUserId") Integer appUserId, @PathVariable("coursePackageId") Integer coursePackageId) {
- List<TCoursePackagePayment> list = packagePaymentService.list(new QueryWrapper<TCoursePackagePayment>()
+ public List<CoursePackageOrderStudent> getByUserIdAndCoursePackageId(@PathVariable("appUserId") Integer appUserId, @PathVariable("coursePackageId") Integer coursePackageId) {
+ List<CoursePackageOrderStudent> list = coursePackageOrderStudentService.list(new QueryWrapper<CoursePackageOrderStudent>()
.eq("appUserId", appUserId)
.eq("coursePackageId", coursePackageId));
return list;
@@ -320,17 +315,46 @@
List<CoursePackagePaymentVO> res = packagePaymentService.listAll(query);
List<CoursePackagePaymentVO> result = new ArrayList<>();
for (CoursePackagePaymentVO re : res) {
+ // 判断这条记录有没有赠送课时
+ Integer coursePackageId = re.getCoursePackageId();
+ Integer classHours = re.getClassHours();
+ CoursePackagePaymentConfig one = icppcService.getOne(new QueryWrapper<CoursePackagePaymentConfig>()
+ .eq("coursePackageId", coursePackageId)
+ .eq("classHours", classHours));
+ if (one!=null){
+ TCoursePackageDiscount one1 = discountService.getOne(new QueryWrapper<TCoursePackageDiscount>().eq("coursePackageId", coursePackageId)
+ .eq("coursePackagePaymentConfigId", one.getId())
+ .eq("auditStatus",2).eq("status",1).eq("type",4));
+ if (one1 == null){
+ re.setGiftClassHours(0);
+ }else{
+ Integer giftClassHours = getGiftClassHours(one1,re.getInsertTime());
+ re.setGiftClassHours(giftClassHours);
+ }
+ }else{
+ re.setGiftClassHours(0);
+ }
if (re.getCashPayment() == null) {
if (re.getPlayPaiCoin() != null) {
String value = String.valueOf(re.getPlayPaiCoin());
re.setCashPayment(new BigDecimal(value));
}
}
-
Store store = storeClient.queryStoreById(re.getStoreId());
TAppUser appUser = appUserClient.queryAppUser1(re.getAppUserId());
- Student student = studentClient.queryStudentById(re.getStudentId());
- re.setPayStudent(student.getName());
+ String studentId = re.getStudentId();
+ String[] split = studentId.split(";");
+ StringBuilder stringBuilder = new StringBuilder("");
+
+ for (String s : split) {
+ Student student = studentClient.queryStudentById(Integer.valueOf(s));
+ stringBuilder.append(student.getName()+",");
+ }
+ String string = stringBuilder.toString();
+ if (string.length() > 0) {
+ String stringWithoutLastCharacter = string.substring(0, string.length() - 1);
+ re.setPayStudent(stringWithoutLastCharacter);
+ }
re.setPayUser(appUser.getName());
re.setPhone(appUser.getPhone());
re.setStoreName(store.getName());
@@ -343,7 +367,7 @@
} else {
List<Student> students = studentClient.queryStudentListByName(query.getPayStudent());
for (Student student1 : students) {
- if (student.getName().equals(student1.getName())) {
+ if (string.contains(student1.getName())) {
result.add(re);
}
}
@@ -351,7 +375,6 @@
}
}
}
-
if (re.getPayType() != null) {
if (re.getPayType() == 1) {
re.setBuyTypeName("微信支付");
@@ -379,7 +402,7 @@
if (discountService.list(new QueryWrapper<TCoursePackageDiscount>()
.eq("coursePackageId", re.getCoursePackageId()).eq("auditStatus", 2)).size() > 0) {
re.setBuyType(3);
- re.setDiscountAmount(re.getOriginalPrice().subtract(re.getPayMoney()));
+ re.setDiscountAmount(re.getOriginalPrice().subtract(re.getCashPayment()));
} else {
re.setBuyType(2);
}
@@ -455,7 +478,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());
@@ -570,7 +594,6 @@
storeVo.setLon(store.getLon());
storeVo.setCoursePrice(ToolUtil.isEmpty(paymentConfig.getCashPayment()) ? (double) paymentConfig.getPlayPaiCoin() : paymentConfig.getCashPayment());
storeVo.setStatus(1);
- // 2.0
storeVo.setAllNum(tCoursePackagePayment.getTotalClassHours());
storeVo.setLastNum(tCoursePackagePayment.getLaveClassHours());
storeVo.setUseNum(tCoursePackagePayment.getTotalClassHours() - tCoursePackagePayment.getLaveClassHours());
@@ -674,17 +697,17 @@
@PostMapping("/base/coursePack/getRecord")
public List<PurchaseRecordVo> getRecord(@RequestBody RecordTimeRequest recordTimeRequest) {
- List<CoursePackageOrderStudent> list = new ArrayList<>();
+// List<CoursePackageOrderStudent> list = new ArrayList<>();
Integer[] changes = {1, 0};
- if (recordTimeRequest.getType() == null) {
- list = coursePackageOrderStudentService.list(new QueryWrapper<CoursePackageOrderStudent>().eq("studentId", recordTimeRequest.getStuId()).eq("coursePackageId", recordTimeRequest.getLessionId()).orderByDesc("insertTime"));
- } else {
-
- list = coursePackageOrderStudentService.list(new QueryWrapper<CoursePackageOrderStudent>().eq("studentId", recordTimeRequest.getStuId()).eq("coursePackageId", recordTimeRequest.getLessionId()).orderByDesc("insertTime"));
- }
- List<Integer> appUserIds = list.stream().map(CoursePackageOrderStudent::getAppUserId).collect(Collectors.toList());
+// if (recordTimeRequest.getType() == null) {
+// list = coursePackageOrderStudentService.list(new QueryWrapper<CoursePackageOrderStudent>().eq("studentId", recordTimeRequest.getStuId()).eq("coursePackageId", recordTimeRequest.getLessionId()).orderByDesc("insertTime"));
+// } else {
+//
+// list = coursePackageOrderStudentService.list(new QueryWrapper<CoursePackageOrderStudent>().eq("studentId", recordTimeRequest.getStuId()).eq("coursePackageId", recordTimeRequest.getLessionId()).orderByDesc("insertTime"));
+// }
+// List<Integer> appUserIds = list.stream().map(CoursePackageOrderStudent::getAppUserId).collect(Collectors.toList());
List<CoursePackageOrderStudent> list1 = coursePackageOrderStudentService.list(new QueryWrapper<CoursePackageOrderStudent>()
- .in("appUserId", appUserIds)
+ .eq("studentId", recordTimeRequest.getStuId())
.eq("coursePackageId", recordTimeRequest.getLessionId())
.eq("state", 1)
);
@@ -728,11 +751,11 @@
Integer totalNu = 0;
Integer dedutNu = 0;
Integer remainNu = 0;
- List<TCoursePackagePayment> byUserId = packagePaymentService.list(new QueryWrapper<TCoursePackagePayment>()
+ List<CoursePackageOrderStudent> byUserId = coursePackageOrderStudentService.list(new QueryWrapper<CoursePackageOrderStudent>()
.eq("appUserId", getStuOfCoursesDetails.getAppUserId())
.eq("studentId", getStuOfCoursesDetails.getStuId()));
if (byUserId.size() > 0) {
- for (TCoursePackagePayment tCoursePackagePayment : byUserId) {
+ for (CoursePackageOrderStudent tCoursePackagePayment : byUserId) {
totalNu = totalNu + tCoursePackagePayment.getTotalClassHours();
dedutNu = dedutNu + tCoursePackagePayment.getLaveClassHours();
remainNu = remainNu + (tCoursePackagePayment.getTotalClassHours() - tCoursePackagePayment.getLaveClassHours());
@@ -744,7 +767,6 @@
return lisco;
}
-
@PostMapping("/base/coursePack/continuingCourse")
public StudentOfCourseVo getStudentCourse(@RequestBody GetStudentCourse getStudentCourse) {
StudentOfCourseVo courseVo = new StudentOfCourseVo();
@@ -753,7 +775,6 @@
.eq("coursePackageId", getStudentCourse.getCourseId())
.eq("studentId", getStudentCourse.getStuId()));
if (tCoursePackagePayments.size() > 0) {
-
List<CourseHoursType> typeList = new ArrayList<>();
tCoursePackagePayments.forEach(cou -> {
CourseHoursType hoursType = new CourseHoursType();
@@ -764,7 +785,6 @@
TCoursePackagePayment tCoursePackagePayment = tCoursePackagePayments.get(0);
courseVo.setCoursePackageId(tCoursePackagePayment.getCoursePackageId());
courseVo.setTypeList(typeList);
-
TCoursePackage coursePackage = tcpService.getById(tCoursePackagePayment.getCoursePackageId());
courseVo.setPackageImg(coursePackage.getCoverDrawing());
courseVo.setCourseName(coursePackage.getName());
@@ -846,13 +866,20 @@
public List<CouponPaymentVo> getAppuserCourseList(@RequestBody Integer appUserId) {
List<CouponPaymentVo> paymentVos = new ArrayList<>();
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm");
- List<TCoursePackagePayment> list = packagePaymentService.list(new QueryWrapper<TCoursePackagePayment>()
- .eq("appUserId", appUserId)
- .eq("payType", 3)
+// List<TCoursePackagePayment> list = packagePaymentService.list(new QueryWrapper<TCoursePackagePayment>()
+// .eq("appUserId", appUserId)
+// .eq("payType", 3)
+// .eq("payStatus", 2)
+// .eq("state", 1));
+
+
+ List<CoursePackageOrder> list = coursePackageOrderService.list(new QueryWrapper<CoursePackageOrder>().eq("appUserId", appUserId).eq("payType", 3)
.eq("payStatus", 2)
.eq("state", 1));
+
+
if (list.size() > 0) {
- for (TCoursePackagePayment tCoursePackagePayment : list) {
+ for (CoursePackageOrder tCoursePackagePayment : list) {
CouponPaymentVo couponPaymentVo = new CouponPaymentVo();
couponPaymentVo.setTime(simpleDateFormat.format(tCoursePackagePayment.getInsertTime()));
couponPaymentVo.setAmount(tCoursePackagePayment.getPlayPaiCoin());
@@ -899,7 +926,6 @@
Set<BaseVo> set = new HashSet<>(list);
List<BaseVo> back = new ArrayList<>(set);
-
return ResultUtil.success(back);
} catch (Exception e) {
e.printStackTrace();
@@ -917,25 +943,11 @@
@ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
})
public ResultUtil<List<AppUserVideoResponse>> queryAfterSourceList(CourseOfAfterRequest search) throws Exception {
-// try {
Integer appUserId = tokenUtil.getUserIdFormRedis();
if (null == appUserId) {
return ResultUtil.tokenErr();
}
-//
-// List<Integer> courseIds = new ArrayList<>();
-// QueryWrapper<TCoursePackagePayment> queryWrapper = new QueryWrapper<TCoursePackagePayment>().eq("appUserId", appUserId)
-// .groupBy("coursePackageId");
-// if (ToolUtil.isNotEmpty(search.getCourseTypeId())){
-// queryWrapper.eq("coursePackageId",search.getCourseTypeId());
-// }
-// List<TCoursePackagePayment> tCoursePackagePayments = packagePaymentService.list(queryWrapper);
-// if (tCoursePackagePayments.size() > 0 ){
-// courseIds = tCoursePackagePayments.stream().map(TCoursePackagePayment::getCoursePackageId).collect(Collectors.toList());
-// }
-
-
QueryWrapper<CoursePackageStudent> queryWrapper1 = new QueryWrapper<CoursePackageStudent>().eq("studentId", search.getStuId());
if (ToolUtil.isNotEmpty(search.getCourseTypeId())) {
queryWrapper1.eq("coursePackageId", search.getCourseTypeId());
@@ -948,7 +960,6 @@
}
System.out.println("======longs========" + longs);
-// List<CoursePackageScheduling> coursePackageSchedulings = coursePackageSchedulingService.list(new QueryWrapper<CoursePackageScheduling>().in("id",longs).isNotNull("courseId"));
List<AppUserVideoResponse> coursePackageSchedulings1 = coursePackageSchedulingService.queryAll(longs);
if (search.getSearch() != null) {
@@ -963,11 +974,6 @@
}
return ResultUtil.success(coursePackageSchedulings1);
-
-
-// }catch (Exception e){
-// return ResultUtil.runErr();
-// }
}
/**
@@ -1030,7 +1036,7 @@
}
}
- // 2.0
+
@ResponseBody
@PostMapping("/api/startCource/payCourse")
@ApiOperation(value = "课后练习-确认购课", tags = {"APP-开始上课"})
@@ -1129,7 +1135,7 @@
@ApiImplicitParam(name = "orderId", value = "订单id", dataType = "int")
})
- public ResultUtil<CourseDetailsResponse> getRegisteredData(Long coursePayId, String lon, String lat, Integer orderId) {
+ public ResultUtil<CourseDetailsResponse> getRegisteredData(Long coursePayId, String lon, String lat) {
try {
Integer appUserId = tokenUtil.getUserIdFormRedis();
if (null == appUserId) {
@@ -1137,11 +1143,11 @@
}
CourseDetailsResponse courseDetailsResponse = packagePaymentService.queryRegisteredCourseDetails(coursePayId, appUserId, lon, lat);
-
- if (orderId != null) {
- TOrder byId = orderService.getById(orderId);
- courseDetailsResponse.setAmount(byId.getPrice());
- }
+//
+// if (orderId != null) {
+// TOrder byId = orderService.getById(orderId);
+// courseDetailsResponse.setAmount(byId.getPrice());
+// }
return ResultUtil.success(courseDetailsResponse);
} catch (Exception e) {
e.printStackTrace();
@@ -1161,15 +1167,15 @@
})
public ResultUtil continuationOperation(ClasspaymentRequest request) {
try {
- Integer userIdFormRedis = tokenUtil.getUserIdFormRedis();
- if (null == userIdFormRedis) {
+ Integer userId = tokenUtil.getUserIdFormRedis();
+ if (null == userId) {
return ResultUtil.tokenErr();
}
Integer couponId = request.getConponId();
if (couponId == null || couponId == 0) {
request.setConponId(null);
}
- return packagePaymentService.ContinuationOrpaymentCourse(userIdFormRedis, request);
+ return packagePaymentService.ContinuationOrpaymentCourse(userId, request);
} catch (Exception e) {
return ResultUtil.runErr();
}
@@ -1182,7 +1188,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) {
@@ -1297,21 +1302,16 @@
@PostMapping("/coursePackagePayment/paymentDeductionClassHour")
public void paymentDeductionClassHour(@RequestBody PaymentDeductionClassHour paymentDeductionClassHour) {
try {
- // 2.0 用id进行查询
-// TCoursePackagePayment coursePackagePayment = packagePaymentService.getOne(new QueryWrapper<TCoursePackagePayment>().eq("id", paymentDeductionClassHour.getCourseId()).eq("payStatus", 2)
-// .eq("status", 1).eq("state", 1).gt("laveClassHours", 0));
-// Integer classHour = paymentDeductionClassHour.getClassHour();
-// for (TCoursePackagePayment coursePackagePayment : list) {
-
-
-
CoursePackageOrderStudent coursePackageOrderStudent = coursePackageOrderStudentService.getById(paymentDeductionClassHour.getCourseId());
-// if (paymentDeductionClassHour.getClassHour() > coursePackageOrderStudent.getLaveClassHours()) {
-// return ResultUtil.error("当前课包课时数不足");
-// }
TCoursePackage coursePackage = coursePackageService.getById(coursePackageOrderStudent.getCoursePackageId());
coursePackageOrderStudent.setLaveClassHours(coursePackageOrderStudent.getLaveClassHours() - paymentDeductionClassHour.getClassHour());
coursePackageOrderStudentService.updateById(coursePackageOrderStudent);
+ Integer laveClassHours = coursePackageOrderStudent.getLaveClassHours();
+ if(3 >= laveClassHours){
+ AppUser appUser = appuClient.queryAppUser(coursePackageOrderStudent.getAppUserId());
+ //发送短信提醒
+ aLiSendSms.sendSms(appUser.getPhone(), "SMS_463646317", "");
+ }
//判断剩余课时是否已经全部进行排课,如果排课需要删除已经排好的记录
List<CoursePackageScheduling> list1 = coursePackageSchedulingService.list(new QueryWrapper<CoursePackageScheduling>()
.eq("studentId", coursePackageOrderStudent.getStudentId()).eq("status", 1)
@@ -1331,131 +1331,14 @@
}
}
-
-
-
-
-
-// if (coursePackagePayment.getLaveClassHours().compareTo(classHour) >= 0) {
-// coursePackagePayment.setLaveClassHours(coursePackagePayment.getLaveClassHours() - classHour);
-// coursePackagePayment.setAppUserId(null);
-// packagePaymentService.updateById(coursePackagePayment);
-//
-// CourseCounsum courseCounsum = new CourseCounsum();
-// courseCounsum.setPaymentId(coursePackagePayment.getId());
-// courseCounsum.setChangeType(0);
-// courseCounsum.setNum(classHour);
-// courseCounsum.setInsertTime(new Date());
-// courseCounsum.setReason("报名赛事");
-// courseCounsumService.save(courseCounsum);
-//
-//
-// List<CoursePackageStudent> studentCourse = coursePackageStudentService.list(new QueryWrapper<CoursePackageStudent>().eq("studentId", coursePackagePayment.getStudentId()).eq("coursePackageId", coursePackagePayment.getCoursePackageId()));
-// List<Long> collect = studentCourse.stream().map(CoursePackageStudent::getCoursePackageSchedulingId).collect(Collectors.toList());
-// coursePackageSchedulingService.remove(new QueryWrapper<CoursePackageScheduling>().in("id", collect));
-// coursePackageStudentService.remove(new QueryWrapper<CoursePackageStudent>().eq("studentId", paymentDeductionClassHour.getId()).eq("coursePackageId", coursePackagePayment.getCoursePackageId()));
-//
-//
-// TCoursePackage tCoursePackage = packageService.getById(coursePackagePayment.getCoursePackageId());
-// String classWeeks = tCoursePackage.getClassWeeks();
-// List<Integer> week = week(classWeeks);
-//
-// TCoursePackagePayment pay = packagePaymentService.getOne(new QueryWrapper<TCoursePackagePayment>().eq("coursePackageId", coursePackagePayment.getCoursePackageId()).eq("studentId", coursePackagePayment.getStudentId()));
-//
-// Date today = new Date();
-// Calendar calendar = Calendar.getInstance();
-// calendar.add(Calendar.DATE, -1);
-// today = calendar.getTime();
-//
-//
-// Integer laveClassHours = pay.getLaveClassHours();
-// Integer codeTime = tCoursePackage.getCodeTime();
-// Integer can = laveClassHours / codeTime;
-//
-// int count = 0;
-// String[] split = tCoursePackage.getClassStartTime().split(",");
-// String[] split1 = tCoursePackage.getClassEndTime().split(",");
-// SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
-// SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm");
-//
-// Date[] dates = generateDateArray(14, today);
-// for (Date date : dates) {
-// if (count == can) {
-// break;
-// }
-// int wei = cn.hutool.core.date.DateUtil.dayOfWeek(date);
-// if (week.contains(wei)) {
-// for (int i1 = 0; i1 < split.length; i1++) {
-// if (count == can) {
-// break;
-// }
-// CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling();
-// coursePackageScheduling.setCoursePackageId(tCoursePackage.getId());
-// Date parse = format1.parse(format.format(date) + " " + split[i1]);
-// Date parse1 = format1.parse(format.format(date) + " " + split1[i1]);
-// coursePackageScheduling.setClassDate(parse);
-// coursePackageScheduling.setEndDate(parse1);
-// coursePackageScheduling.setStatus(1);
-// coursePackageSchedulingService.save(coursePackageScheduling);
-// CoursePackageStudent student1 = new CoursePackageStudent();
-// student1.setAppUserId(pay.getAppUserId());
-// student1.setStudentId(pay.getStudentId());
-// student1.setCoursePackageId(pay.getCoursePackageId());
-// student1.setCoursePackagePaymentId(pay.getId());
-// student1.setCoursePackageSchedulingId(coursePackageScheduling.getId());
-// student1.setSignInOrNot(1);
-// student1.setReservationStatus(1);
-// student1.setInsertTime(new Date());
-// studentService.save(student1);
-// count++;
-// }
-// }
-// }
-//
-//
-// // 2.0 少于3课时 推送
-// if (coursePackagePayment.getLaveClassHours() <= 3) {
-// Integer appUserId = coursePackagePayment.getAppUserId();
-//
-// //调用推送
-// HttpHeaders headers = new HttpHeaders();
-// // 以表单的方式提交
-// headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
-// String s1 = appUserId + "_" + "Three";
-// //定时修改排课状态
-// String s = internalRestTemplate.getForObject("http://mb-cloud-gateway/netty/sendMsgToClient?id=" + s1, String.class);
-// JSONObject jsonObject1 = JSON.parseObject(s, JSONObject.class);
-// if (jsonObject1.getIntValue("code") != 200) {
-// System.err.println(jsonObject1.getString("msg"));
-// }
-// }
-//
-// CancelledClasses cancelledClasses = new CancelledClasses();
-// cancelledClasses.setType(2);
-// cancelledClasses.setVoucher(paymentDeductionClassHour.getCode());
-// cancelledClasses.setCoursePackageId(coursePackagePayment.getCoursePackageId());
-// cancelledClasses.setCoursePackagePaymentId(coursePackagePayment.getId());
-// cancelledClasses.setCancelledClassesNumber(classHour);
-// cancelledClasses.setInsertTime(new Date());
-// cancelledClassesService.save(cancelledClasses);
-//
-// } else {
-// CancelledClasses cancelledClasses = new CancelledClasses();
-// cancelledClasses.setType(2);
-// cancelledClasses.setVoucher(paymentDeductionClassHour.getCode());
-// cancelledClasses.setCoursePackageId(coursePackagePayment.getCoursePackageId());
-// cancelledClasses.setCoursePackagePaymentId(coursePackagePayment.getId());
-// cancelledClasses.setCancelledClassesNumber(coursePackagePayment.getLaveClassHours());
-// cancelledClasses.setInsertTime(new Date());
-// cancelledClassesService.save(cancelledClasses);
-//
-// coursePackagePayment.setLaveClassHours(0);
-// packagePaymentService.updateById(coursePackagePayment);
-//
-// classHour -= cancelledClasses.getCancelledClassesNumber();
-// }
-// }
-
+ CourseCounsum courseCounsum = new CourseCounsum();
+ courseCounsum.setPaymentId(coursePackageOrderStudent.getId());
+ courseCounsum.setChangeType(0);
+ courseCounsum.setNum(paymentDeductionClassHour.getClassHour());
+ courseCounsum.setInsertTime(new Date());
+ courseCounsum.setReason("赛事报名");
+ courseCounsum.setAppUserId(coursePackageOrderStudent.getAppUserId());
+ courseCounsumService.save(courseCounsum);
} catch (Exception e) {
e.printStackTrace();
@@ -1618,7 +1501,6 @@
appUser.setPlayPaiCoins(appUser.getPlayPaiCoins() - paymentConfig.getPlayPaiCoin());
auClitn.updateAppUser(appUser);
- // 2.0
TCourseInfoRecord tCourseInfoRecord = new TCourseInfoRecord();
tCourseInfoRecord.setUserId(userIdFormRedis);
tCourseInfoRecord.setCourseId(coursePackage.getCoursePackageId());
@@ -1667,7 +1549,6 @@
boolean id = packagePaymentService.update(packagePayment, new QueryWrapper<TCoursePackagePayment>()
.eq("id", packagePayment.getId()));
if (id) {
- // 2.0
TCourseInfoRecord tCourseInfoRecord = new TCourseInfoRecord();
tCourseInfoRecord.setNum(packagePayment.getTotalClassHours());
tCourseInfoRecord.setName("续课");
@@ -1729,7 +1610,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();
@@ -1752,7 +1633,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();
@@ -1761,6 +1642,7 @@
courseCounsum.setNum(orderDto.getClassHours());
courseCounsum.setInsertTime(new Date());
courseCounsum.setReason("积分兑换");
+ courseCounsum.setInsertTime(new Date());
courseCounsumService.save(courseCounsum);
@@ -1785,10 +1667,266 @@
return dateList.toArray(new Date[0]);
}
+ public Integer getGiftClassHours(TCoursePackageDiscount one,Date insertTime){
+ if (insertTime!=null){
+ // 判断购买时间 是否满足折扣规则
+ char c = one.getContent().charAt(0);
+ String value1 = String.valueOf(c);
+ JSONObject jsonObject ;
+ if (value1.equals("[")){
+ jsonObject = JSONObject.fromObject(one.getContent()
+ .substring(1,one.getContent().length() - 1));
+ }else{
+ jsonObject = JSONObject.fromObject(one.getContent());
+ }
+ // 赠送课时 判断当前课包有没有赠送课时
+ String weeks = jsonObject.getString("weeks");
+ Calendar calendar = Calendar.getInstance();
+ calendar.setTime(insertTime);
+ // 获取星期几,星期日是1,星期一是2,以此类推
+ int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK);
+ // 将星期日(Calendar定义为1)转换为7
+ if (dayOfWeek == Calendar.SUNDAY) {
+ dayOfWeek = 7;
+ } else {
+ // 其他星期减一即可得到1-6的数字表示
+ dayOfWeek -= 1;
+ }
+ if (weeks.contains(String.valueOf(dayOfWeek))){
+ // 限时折扣判断是否在有效期
+ try {
+ // 判断当日时间是否能享受到折扣
+ String startTime = jsonObject.getString("startTime");
+ String endTime = jsonObject.getString("endTime");
+
+ // 定义时间格式
+ SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
+ // 解析开始时间和结束时间为Date对象
+ Date startTime1 = sdf.parse(startTime);
+ Date endTime1 = sdf.parse(endTime);
+ Date date1 = new Date();
+ date1.setHours(startTime1.getHours());
+ date1.setMinutes(startTime1.getMinutes());
+ date1.setSeconds(startTime1.getSeconds());
+ Date date2 = new Date();
+ date2.setHours(endTime1.getHours());
+ date2.setMinutes(endTime1.getMinutes());
+ date2.setSeconds(endTime1.getSeconds());
+ // 检查当前时间是否在开始时间和结束时间之间
+ if (insertTime.after(date1) && insertTime.before(date2)) {
+ System.out.println("当前时间在开始时间和结束时间之间。");
+ String hour = jsonObject.getString("hour");
+ return Integer.valueOf(hour);
+ } else {
+ System.out.println("当前时间不在开始时间和结束时间之间。");
+ return 0;
+ }
+ } catch (ParseException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+ // 判断购买时间 是否满足折扣规则
+ char c = one.getContent().charAt(0);
+ String value1 = String.valueOf(c);
+ JSONObject jsonObject ;
+ if (value1.equals("[")){
+ jsonObject = JSONObject.fromObject(one.getContent()
+ .substring(1,one.getContent().length() - 1));
+ }else{
+ jsonObject = JSONObject.fromObject(one.getContent());
+ }
+ // 赠送课时 判断当前课包有没有赠送课时
+ String weeks = jsonObject.getString("weeks");
+ // 判断当前周几 是否满足折扣规则
+ // 获取当前日期
+ LocalDate currentDate = LocalDate.now();
+ // 获取当前日期是星期几的数字表示
+ int dayOfWeekAsNumber = currentDate.getDayOfWeek().getValue();
+ if (weeks.contains(String.valueOf(dayOfWeekAsNumber))){
+ // 限时折扣判断是否在有效期
+ try {
+ // 判断当日时间是否能享受到折扣
+ String startTime = jsonObject.getString("startTime");
+ String endTime = jsonObject.getString("endTime");
+ // 获取当前时间
+ Date currentTime = new Date();
+ // 定义时间格式
+ SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
+ // 解析开始时间和结束时间为Date对象
+ Date startTime1 = sdf.parse(startTime);
+ Date endTime1 = sdf.parse(endTime);
+ Date date1 = new Date();
+ date1.setHours(startTime1.getHours());
+ date1.setMinutes(startTime1.getMinutes());
+ date1.setSeconds(startTime1.getSeconds());
+ Date date2 = new Date();
+ date2.setHours(endTime1.getHours());
+ date2.setMinutes(endTime1.getMinutes());
+ date2.setSeconds(endTime1.getSeconds());
+ // 检查当前时间是否在开始时间和结束时间之间
+ if (currentTime.after(date1) && currentTime.before(date2)) {
+ System.out.println("当前时间在开始时间和结束时间之间。");
+ String hour = jsonObject.getString("hour");
+
+ return Integer.valueOf(hour);
+ } else {
+ System.out.println("当前时间不在开始时间和结束时间之间。");
+ return 0;
+ }
+ } catch (ParseException e) {
+ e.printStackTrace();
+ }
+ }
+ return 0;
+ }
+
@Autowired
private TCoursePackageService coursePackageService;
- private void addPackageStudent(Integer courseId, Integer userId, Integer sId, Long paymentId) throws ParseException {
+ private void addPackageStudent1(TCoursePackage tCoursePackage, Integer userId, Integer sId, CoursePackageOrder coursePackageOrder, CoursePackageOrderStudent coursePackageOrderStudent) {
+ try {
+ //1常规 2假期 3体验
+ if (tCoursePackage.getType() == 1) {
+ //上课星期
+ String classWeeks = tCoursePackage.getClassWeeks();
+ List<Integer> week = week(classWeeks);
+ //上课时段
+ String[] split = tCoursePackage.getClassStartTime().split(",");
+ String[] split1 = tCoursePackage.getClassEndTime().split(",");
+ SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
+ SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm");
+ //剩余课时
+ Integer laveClassHours = coursePackageOrderStudent.getLaveClassHours();
+ //扣除课时数
+ Integer codeTime = tCoursePackage.getCodeTime();
+ //排课 本周+下周,课时不够扣则直接剩余不排课
+ Calendar calendar = Calendar.getInstance();
+ calendar.setTime(new Date());
+ calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) + 1);
+ calendar.set(Calendar.HOUR_OF_DAY, 0);
+ calendar.set(Calendar.MINUTE, 0);
+ calendar.set(Calendar.SECOND, 0);
+ int day_week = calendar.get(Calendar.DAY_OF_WEEK);
+ day_week = day_week - 1 == 0 ? 7 : day_week - 1;
+ int num = 8 - day_week + 7;
+ Date useTime = coursePackageOrderStudent.getUseTime();
+
+ for (int i = 0; i < num; i++) {
+ Date time = calendar.getTime();
+
+ //判断当天是否在排课星期内
+ int day = calendar.get(Calendar.DAY_OF_WEEK);
+ day = day - 1 == 0 ? 7 : day - 1;
+ if (!week.contains(day)) {
+ calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) + 1);
+ continue;
+ }
+
+
+ //大于有效期不进行排课
+ if (calendar.getTimeInMillis() >= useTime.getTime()) {
+ break;
+ }
+ for (int j = 0; j < split.length; j++) {
+ //剩余数量不足以排课
+ if (laveClassHours.compareTo(codeTime) < 0) {
+ break;
+ }
+
+ laveClassHours -= codeTime;
+
+ CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling();
+ coursePackageScheduling.setType(tCoursePackage.getType());
+ coursePackageScheduling.setAppUserId(userId);
+ coursePackageScheduling.setStudentId(sId);
+ coursePackageScheduling.setCoursePackageId(tCoursePackage.getId());
+ Date parse = format1.parse(format.format(time) + " " + split[j]);
+ Date parse1 = format1.parse(format.format(time) + " " + split1[j]);
+ coursePackageScheduling.setClassDate(parse);
+ coursePackageScheduling.setEndDate(parse1);
+ coursePackageScheduling.setStatus(1);
+ coursePackageSchedulingService.save(coursePackageScheduling);
+ CoursePackageStudent student1 = new CoursePackageStudent();
+ student1.setAppUserId(userId);
+ student1.setStudentId(sId);
+ student1.setCoursePackageId(tCoursePackage.getId());
+ student1.setCoursePackagePaymentId(coursePackageOrderStudent.getId());
+ student1.setCoursePackageSchedulingId(coursePackageScheduling.getId());
+ student1.setSignInOrNot(1);
+ student1.setReservationStatus(1);
+ student1.setInsertTime(new Date());
+ cpsMapper.insert(student1);
+ }
+ //增加日期,用于判断
+ calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) + 1);
+ }
+ }
+
+ if (tCoursePackage.getType() == 2) {
+ //上课星期
+ String classWeeks = tCoursePackage.getClassWeeks();
+ List<Integer> week = week(classWeeks);
+ //上课时段
+ String[] split = tCoursePackage.getClassStartTime().split(",");
+ String[] split1 = tCoursePackage.getClassEndTime().split(",");
+ SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
+ SimpleDateFormat format1 = new SimpleDateFormat("yyyy-MM-dd HH:mm");
+
+ Date startTime = tCoursePackage.getStartTime();
+ Date endTime = tCoursePackage.getEndTime();
+ //排课 本周+下周,课时不够扣则直接剩余不排课
+ Calendar calendar = Calendar.getInstance();
+ //假期开始使用当前时间为起始时间进行排课
+ calendar.setTime(startTime.getTime() > System.currentTimeMillis() ? startTime : new Date());
+ calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) + 1);
+ while (true) {
+ Date time = calendar.getTime();
+
+ //判断当天是否在排课星期内
+ int day = calendar.get(Calendar.DAY_OF_WEEK);
+ day = day - 1 == 0 ? 7 : day - 1;
+ if (!week.contains(day)) {
+ calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) + 1);
+ continue;
+ }
+
+ //大于有效期不进行排课
+ if (calendar.getTimeInMillis() > endTime.getTime()) {
+ break;
+ }
+ for (int j = 0; j < split.length; j++) {
+ CoursePackageScheduling coursePackageScheduling = new CoursePackageScheduling();
+ coursePackageScheduling.setType(tCoursePackage.getType());
+ coursePackageScheduling.setAppUserId(userId);
+ coursePackageScheduling.setStudentId(sId);
+ coursePackageScheduling.setCoursePackageId(tCoursePackage.getId());
+ Date parse = format1.parse(format.format(time) + " " + split[j]);
+ Date parse1 = format1.parse(format.format(time) + " " + split1[j]);
+ coursePackageScheduling.setClassDate(parse);
+ coursePackageScheduling.setEndDate(parse1);
+ coursePackageScheduling.setStatus(1);
+ coursePackageSchedulingService.save(coursePackageScheduling);
+ CoursePackageStudent student1 = new CoursePackageStudent();
+ student1.setAppUserId(userId);
+ student1.setStudentId(sId);
+ student1.setCoursePackageId(tCoursePackage.getId());
+ student1.setCoursePackagePaymentId(null);
+ student1.setCoursePackageSchedulingId(coursePackageScheduling.getId());
+ student1.setSignInOrNot(1);
+ student1.setReservationStatus(1);
+ student1.setInsertTime(new Date());
+ cpsMapper.insert(student1);
+ }
+ //增加日期,用于判断
+ calendar.set(Calendar.DAY_OF_YEAR, calendar.get(Calendar.DAY_OF_YEAR) + 1);
+ }
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+ private void addPackageStudent(Integer courseId, Integer userId, Integer sId, TCoursePackagePayment coursePackagePayment, Long paymentId) throws ParseException {
// 课包
TCoursePackage tCoursePackage = coursePackageService.getById(courseId);
@@ -1923,9 +2061,6 @@
}
}
}
-
-
- // 2.0
TCourseInfoRecord tCourseInfoRecord = new TCourseInfoRecord();
tCourseInfoRecord.setUserId(userId);
tCourseInfoRecord.setCourseId(courseId);
@@ -1934,19 +2069,12 @@
tCourseInfoRecord.setTime(new Date());
tCourseInfoRecord.setType(2);
appUserClient.addCourseInfoRecord(tCourseInfoRecord);
-
-
}
@ResponseBody
@PostMapping("/base/coursePack/obtainStudentClassDetails")
public List<RecordAppoint> obtainStudentClassDetailsData(@RequestBody WeeksOfCourseRest stuId) {
-// try {
return coursePackageOrderStudentService.obtainStuClassDetails(stuId.getStuId(), stuId.getAppUserId(), stuId.getPageNum());
-// }catch (Exception e){
-// e.printStackTrace();
-// throw new RuntimeException();
-// }
}
@@ -1964,16 +2092,16 @@
}
- // 2.0 送课时
@PostMapping("/base/coursePack/sendHours")
public Integer sendHours(@RequestBody String s) throws ParseException {
String[] split2 = s.split("_");
- TCoursePackagePayment byId = packagePaymentService.getById(Long.valueOf(split2[0]));
- byId.setTotalClassHours(byId.getTotalClassHours() + Integer.valueOf(split2[2]));
- boolean b = packagePaymentService.updateHoursById(byId, Integer.valueOf(split2[2]));
+ CoursePackageOrderStudent coursePackageOrderStudent = coursePackageOrderStudentService.getById(Long.valueOf(split2[0]));
+ coursePackageOrderStudent.setTotalClassHours(coursePackageOrderStudent.getTotalClassHours() + Integer.valueOf(split2[2]));
+ coursePackageOrderStudent.setLaveClassHours(coursePackageOrderStudent.getLaveClassHours() + Integer.valueOf(split2[2]));
+ coursePackageOrderStudentService.updateById(coursePackageOrderStudent);
CourseCounsum courseCounsum = new CourseCounsum();
- courseCounsum.setPaymentId(byId.getId());
+ courseCounsum.setPaymentId(coursePackageOrderStudent.getId());
courseCounsum.setChangeType(1);
courseCounsum.setNum(Integer.valueOf(split2[2]));
courseCounsum.setInsertTime(new Date());
@@ -1981,17 +2109,17 @@
courseCounsumService.save(courseCounsum);
- List<CoursePackageStudent> studentCourse = coursePackageStudentService.list(new QueryWrapper<CoursePackageStudent>().eq("studentId", byId.getStudentId()).eq("coursePackageId", byId.getCoursePackageId()));
+ List<CoursePackageStudent> studentCourse = coursePackageStudentService.list(new QueryWrapper<CoursePackageStudent>().eq("studentId", coursePackageOrderStudent.getStudentId()).eq("coursePackageId", coursePackageOrderStudent.getCoursePackageId()));
List<Long> collect = studentCourse.stream().map(CoursePackageStudent::getCoursePackageSchedulingId).collect(Collectors.toList());
coursePackageSchedulingService.remove(new QueryWrapper<CoursePackageScheduling>().in("id", collect));
- coursePackageStudentService.remove(new QueryWrapper<CoursePackageStudent>().eq("studentId", byId.getStudentId()).eq("coursePackageId", byId.getCoursePackageId()));
+ coursePackageStudentService.remove(new QueryWrapper<CoursePackageStudent>().eq("studentId", coursePackageOrderStudent.getStudentId()).eq("coursePackageId", coursePackageOrderStudent.getCoursePackageId()));
- TCoursePackage tCoursePackage = packageService.getById(byId.getCoursePackageId());
+ TCoursePackage tCoursePackage = packageService.getById(coursePackageOrderStudent.getCoursePackageId());
String classWeeks = tCoursePackage.getClassWeeks();
List<Integer> week = week(classWeeks);
- TCoursePackagePayment pay = packagePaymentService.getOne(new QueryWrapper<TCoursePackagePayment>().eq("coursePackageId", byId.getCoursePackageId()).eq("studentId", byId.getStudentId()));
+ TCoursePackagePayment pay = packagePaymentService.getOne(new QueryWrapper<TCoursePackagePayment>().eq("coursePackageId", coursePackageOrderStudent.getCoursePackageId()).eq("studentId", coursePackageOrderStudent.getStudentId()));
Date today = new Date();
@@ -2038,14 +2166,7 @@
}
}
}
-
-
- if (b) {
- return 1;
- } else {
-
- return 0;
- }
+ return 1;
}
@@ -2103,11 +2224,51 @@
return packagePaymentService.getById(id);
}
+ @ResponseBody
+ @PostMapping("/coursePackagePayment/queryCoursePackagePaymentById1")
+ public CoursePackageOrderStudent queryCoursePackagePaymentById1(@RequestParam("id") Long id) {
+ return coursePackageOrderStudentService.getById(id);
+ }
+
+
+// @Autowired
+// private ICoursePackageOrderStudentService orderStudentService;
+
+
+ @ResponseBody
+ @PostMapping("/coursePackagePayment/consumeCourse")
+ public Integer consumeCourse(@RequestBody Integer coursePackagePaymentId) {
+ CoursePackageOrderStudent coursePackageOrderStudent = orderStudentService.getById(coursePackagePaymentId);
+
+ TCoursePackage coursePackage = coursePackageService.getById(coursePackageOrderStudent.getCoursePackageId());
+
+ if (coursePackageOrderStudent.getLaveClassHours()<coursePackage.getNeedNum()){
+ return 1;
+ }
+ coursePackageOrderStudent.setLaveClassHours(coursePackageOrderStudent.getLaveClassHours()-coursePackage.getNeedNum());
+ orderStudentService.updateById(coursePackageOrderStudent);
+ Integer laveClassHours = coursePackageOrderStudent.getLaveClassHours();
+ if(3 >= laveClassHours){
+ AppUser appUser = appuClient.queryAppUser(coursePackageOrderStudent.getAppUserId());
+ //发送短信提醒
+ aLiSendSms.sendSms(appUser.getPhone(), "SMS_463646317", "");
+ }
+
+ CourseCounsum courseCounsum = new CourseCounsum();
+ courseCounsum.setPaymentId(coursePackageOrderStudent.getId());
+ courseCounsum.setChangeType(0);
+ courseCounsum.setNum(coursePackage.getNeedNum());
+ courseCounsum.setInsertTime(new Date());
+ courseCounsum.setReason("补课");
+ courseCounsumService.save(courseCounsum);
+ 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;
@@ -2126,7 +2287,6 @@
packagePaymentService.updateById(coursePackagePayment);
}
-
/**
* 修改数据
*
@@ -2140,13 +2300,23 @@
packagePaymentService.updateBytime(coursePackagePayment);
}
+ @ResponseBody
+ @PostMapping("/coursePackagePayment/editCoursePackagePayment2")
+ public void editCoursePackagePayment2(@RequestBody CoursePackageOrderStudent coursePackageOrderStudent) {
+ System.out.println("editCoursePackagePayment1====coursePackagePayment" + coursePackageOrderStudent);
+// coursePackagePayment.setCoursePackageId(null);
+// packagePaymentService.updateBytime(coursePackagePayment);
+
+ coursePackageOrderStudentService.updateById(coursePackageOrderStudent);
+ }
+
/**
* 上课主页-预约操作
*/
@ResponseBody
@PostMapping("/api/startCource/reverse")
- @ApiOperation(value = "上课主页-预约操作--2.0改请假操作", tags = {"APP-开始上课"})
+ @ApiOperation(value = "上课主页-预约操作--改请假操作", tags = {"APP-开始上课"})
@ApiImplicitParams({
@ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
@ApiImplicitParam(value = "课包id", name = "courseID", required = true, dataType = "String"),
@@ -2239,7 +2409,9 @@
map.put("lon", lon);
map.put("lat", lat);
// 找出门店的所有课程 排出体验
- List<TCoursePackage> list = tcpService.list(new LambdaQueryWrapper<TCoursePackage>().eq(TCoursePackage::getStoreId, courseDetailReq.getStoreId()).ne(TCoursePackage::getType, 3).eq(TCoursePackage::getState, 1).like(TCoursePackage::getClassWeeks, week));
+ List<TCoursePackage> list = tcpService.list(new LambdaQueryWrapper<TCoursePackage>()
+ .eq(TCoursePackage::getStoreId, courseDetailReq.getStoreId()).ne(TCoursePackage::getType, 3)
+ .eq(TCoursePackage::getState, 1).like(TCoursePackage::getClassWeeks, week));
List<Integer> collect = list.stream().map(TCoursePackage::getId).collect(Collectors.toList());
if (collect.size() == 0) {
collect.add(-1);
@@ -2251,21 +2423,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());
@@ -2313,6 +2470,7 @@
.eq(CoursePackageScheduling::getCoursePackageId, tCoursePackage.getId())
.like(CoursePackageScheduling::getClassDate, courseDetailReq.getTime())
);
+
if (list3.isEmpty()) {
detailsListVo.setType(2);
objects.add(detailsListVo);
@@ -2320,13 +2478,14 @@
}
//排课的ids
List<Long> collect2 = list3.stream().map(CoursePackageScheduling::getId).collect(Collectors.toList());
- if (collect2.isEmpty()) {
+ if (collect2.isEmpty()){
collect2.add(-1l);
}
List<CoursePackageStudent> list4 = cspsService.list(new LambdaQueryWrapper<CoursePackageStudent>()
.eq(CoursePackageStudent::getAppUserId, courseDetailReq.getAppUserId())
+ .eq(CoursePackageStudent::getStudentId, courseDetailReq.getStuId())
.eq(CoursePackageStudent::getCoursePackageId, tCoursePackage.getId())
.in(CoursePackageStudent::getCoursePackageSchedulingId, collect2)
);
@@ -2343,14 +2502,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");
@@ -2379,6 +2549,10 @@
detailsListVo.setType(2);
objects.add(detailsListVo);
+ }
+ //课程暂停
+ if(tCoursePackage.getState() == 4){
+ detailsListVo.setType(4);
}
}
map.put("data", objects);
@@ -2424,18 +2598,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<>();
@@ -2444,7 +2618,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();
}
}
@@ -2467,7 +2641,8 @@
List<TCoursePackagePayment> tCoursePackagePayments = packagePaymentService.listOne(userPt);
int sum = tCoursePackagePayments.stream().mapToInt(TCoursePackagePayment::getTotalClassHours).sum();
int sum1 = tCoursePackagePayments.stream().mapToInt(TCoursePackagePayment::getLaveClassHours).sum();
- map.put("allCourse", sum - sum1);
+ // 查询介绍有礼课时数量
+ map.put("allCourse",sum-sum1);
//所有课包
List<TCoursePackage> coursePackages = tcpService.list();
@@ -2728,10 +2903,7 @@
weekData.add(count2);
weekData.add(count1);
weekData.add(count);
-
map.put("weekData", weekData);
-
-
LocalDateTime currentDateTime = LocalDateTime.now();
List<Integer> amountByDay = new ArrayList<>(Collections.nCopies(7, 0));
for (CoursePackageStudent coursePackageStudent : list) {
@@ -2906,4 +3078,21 @@
return map;
}
+
+
+ @ResponseBody
+ @PostMapping("/coursePackagePayment/queryPaymentCoursePackage")
+ public List<Integer> queryPaymentCoursePackage(@RequestBody List<Integer> storeIds){
+ if(storeIds.size() == 0){
+ return new ArrayList<>();
+ }
+ 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());
+ }
}
--
Gitblit v1.7.1