From d4c5c993fbc8063c145846501aa9596063f61503 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期二, 05 三月 2024 14:22:37 +0800
Subject: [PATCH] Merge branch '2.0' of http://120.76.84.145:10101/gitblit/r/java/PlayPai into 2.0
---
cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java | 920 +++++++++++++++++++++++++++++++++-----------------------
1 files changed, 539 insertions(+), 381 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 5e6438c..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
@@ -16,6 +16,7 @@
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;
@@ -27,10 +28,12 @@
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.sf.json.JSONObject;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
@@ -60,6 +63,8 @@
@Autowired
private TCoursePackagePaymentService packagePaymentService;
+ @Resource
+ private CoursePackageStudentMapper cpsMapper;
@Autowired
private ICoursePackageOrderService coursePackageOrderService;
@@ -133,6 +138,12 @@
@Autowired
private ICoursePackageOrderStudentService coursePackageOrderStudentService;
+ @Autowired
+ private ALiSendSms aLiSendSms;
+
+ @Resource
+ private AppUserClient appuClient;
+
/**
* 查询学员入学时间 根据第一次购买课包的时间
@@ -161,125 +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);
}
/**
@@ -289,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;
@@ -310,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());
@@ -333,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);
}
}
@@ -341,7 +375,6 @@
}
}
}
-
if (re.getPayType() != null) {
if (re.getPayType() == 1) {
re.setBuyTypeName("微信支付");
@@ -369,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);
}
@@ -445,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());
@@ -560,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());
@@ -664,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)
);
@@ -718,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());
@@ -734,7 +767,6 @@
return lisco;
}
-
@PostMapping("/base/coursePack/continuingCourse")
public StudentOfCourseVo getStudentCourse(@RequestBody GetStudentCourse getStudentCourse) {
StudentOfCourseVo courseVo = new StudentOfCourseVo();
@@ -743,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();
@@ -754,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());
@@ -831,9 +861,6 @@
return videoVos;
}
-
-
-
@PostMapping("/base/coursePack/allPaymentCourseList")
@ResponseBody
public List<CouponPaymentVo> getAppuserCourseList(@RequestBody Integer appUserId) {
@@ -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-开始上课"})
@@ -1115,7 +1121,6 @@
}
-
/**
* 已报名课程详情
*/
@@ -1130,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) {
@@ -1138,9 +1143,7 @@
}
CourseDetailsResponse courseDetailsResponse = packagePaymentService.queryRegisteredCourseDetails(coursePayId, appUserId, lon, lat);
-
-
-
+//
// if (orderId != null) {
// TOrder byId = orderService.getById(orderId);
// courseDetailsResponse.setAmount(byId.getPrice());
@@ -1164,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();
}
@@ -1185,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) {
@@ -1300,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)
@@ -1334,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();
@@ -1621,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());
@@ -1670,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("续课");
@@ -1732,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();
@@ -1755,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();
@@ -1764,6 +1642,7 @@
courseCounsum.setNum(orderDto.getClassHours());
courseCounsum.setInsertTime(new Date());
courseCounsum.setReason("积分兑换");
+ courseCounsum.setInsertTime(new Date());
courseCounsumService.save(courseCounsum);
@@ -1788,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);
@@ -1926,9 +2061,6 @@
}
}
}
-
-
- // 2.0
TCourseInfoRecord tCourseInfoRecord = new TCourseInfoRecord();
tCourseInfoRecord.setUserId(userId);
tCourseInfoRecord.setCourseId(courseId);
@@ -1937,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();
-// }
}
@@ -1967,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());
@@ -1984,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();
@@ -2041,14 +2166,7 @@
}
}
}
-
-
- if (b) {
- return 1;
- } else {
-
- return 0;
- }
+ return 1;
}
@@ -2106,6 +2224,12 @@
return packagePaymentService.getById(id);
}
+ @ResponseBody
+ @PostMapping("/coursePackagePayment/queryCoursePackagePaymentById1")
+ public CoursePackageOrderStudent queryCoursePackagePaymentById1(@RequestParam("id") Long id) {
+ return coursePackageOrderStudentService.getById(id);
+ }
+
// @Autowired
// private ICoursePackageOrderStudentService orderStudentService;
@@ -2113,16 +2237,23 @@
@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);
+ 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);
@@ -2130,14 +2261,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;
@@ -2156,7 +2287,6 @@
packagePaymentService.updateById(coursePackagePayment);
}
-
/**
* 修改数据
*
@@ -2170,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"),
@@ -2269,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);
@@ -2281,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());
@@ -2343,6 +2470,7 @@
.eq(CoursePackageScheduling::getCoursePackageId, tCoursePackage.getId())
.like(CoursePackageScheduling::getClassDate, courseDetailReq.getTime())
);
+
if (list3.isEmpty()) {
detailsListVo.setType(2);
objects.add(detailsListVo);
@@ -2350,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)
);
@@ -2373,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");
@@ -2409,6 +2549,10 @@
detailsListVo.setType(2);
objects.add(detailsListVo);
+ }
+ //课程暂停
+ if(tCoursePackage.getState() == 4){
+ detailsListVo.setType(4);
}
}
map.put("data", objects);
@@ -2454,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<>();
@@ -2474,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();
}
}
@@ -2759,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) {
@@ -2937,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