From b1fb83530b7105e4aa73e4101727dea945eb01c2 Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期五, 29 八月 2025 21:48:15 +0800
Subject: [PATCH] bug修改
---
cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java | 2808 ++++++++++++++++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 2,556 insertions(+), 252 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 9fe7b3d..1bf0844 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
@@ -3,47 +3,58 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.dsh.course.entity.*;
+import com.dsh.course.entity.TAppUser;
import com.dsh.course.feignclient.account.AppUserClient;
import com.dsh.course.feignclient.account.StudentClient;
import com.dsh.course.feignclient.account.model.AppUser;
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.model.*;
import com.dsh.course.feignclient.other.StoreClient;
import com.dsh.course.feignclient.other.model.Store;
-import com.dsh.course.model.BaseVo;
+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;
import com.dsh.course.model.vo.CourseDetailRequest;
import com.dsh.course.model.vo.RegisterCourseVo;
import com.dsh.course.model.vo.request.*;
-import com.dsh.course.model.vo.response.AppUserVideoResponse;
-import com.dsh.course.model.vo.response.CourseDetailsResponse;
-import com.dsh.course.model.vo.response.CourseOfVideoResponse;
+import com.dsh.course.model.vo.response.*;
import com.dsh.course.service.*;
import com.dsh.course.util.*;
+import com.dsh.course.util.wx.WxV3PayConfig;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
+import com.obs.services.internal.ServiceException;
+import com.wechat.pay.contrib.apache.httpclient.util.AesUtil;
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;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
+import org.springframework.web.client.RestTemplate;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
+import java.io.BufferedReader;
import java.io.PrintWriter;
import java.math.BigDecimal;
+import java.nio.charset.StandardCharsets;
import java.text.ParseException;
import java.text.SimpleDateFormat;
-import java.util.ArrayList;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
+import java.time.*;
+import java.time.temporal.ChronoUnit;
+import java.util.*;
import java.util.stream.Collectors;
@Api
@@ -51,12 +62,15 @@
@RestController
@RequestMapping("")
public class CoursePackagePaymentController {
-
private Logger logger = LoggerFactory.getLogger("business-log");
-
@Autowired
private TCoursePackagePaymentService packagePaymentService;
+
+ @Resource
+ private CoursePackageStudentMapper cpsMapper;
+ @Autowired
+ private ICoursePackageOrderService coursePackageOrderService;
@Autowired
private TCoursePackageService tcpService;
@@ -89,85 +103,498 @@
@Resource
private CoursePackageStudentService cspsService;
-
@Autowired
private PayMoneyUtil payMoneyUtil;
+
@Resource
private AppUserClient auClitn;
@Resource
private StoreClient sreClient;
+ @Resource
+ private AppUserClient appUserClient;
+
+ @Autowired
+ private RestTemplate internalRestTemplate;
+
+ @Resource
+ private StoreClient storeClient;
+
+ @Autowired
+ private TCoursePackageDiscountService discountService;
+
+ @Resource
+ private CoursePackageSchedulingMapper coursePackageSchedulingMapper;
+
+ @Autowired
+ private ICoursePackageSchedulingService coursePackageSchedulingService;
+
+ @Autowired
+ private CoursePackageStudentService coursePackageStudentService;
+ @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;
+
+ @Autowired
+ private CourseCounsumService courseCounsumService;
+
+ @Autowired
+ private TCoursePackagePaymentService coursePackagePaymentService;
+
+
+
+
+
+
+ /**
+ * 查询学员入学时间 根据第一次购买课包的时间
+ *
+ * @return
+ */
+ @RequestMapping("/base/coursePackagePayment/getTime")
+ public String getTime(@RequestBody Integer studentId) {
+ List<TCoursePackagePayment> list = packagePaymentService.list(new QueryWrapper<TCoursePackagePayment>()
+ .eq("studentId", studentId)
+ .orderByDesc("insertTime")
+ .last("LIMIT 1"));
+ if (list.size() > 0) {
+ SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
+ Date insertTime = list.get(0).getInsertTime();
+ String format1 = format.format(list.get(0).getInsertTime());
+ return format1;
+ }
+ return "";
+ }
+
+ /**
+ * 添加购课记录-后台
+ *
+ * @return
+ */
+ @RequestMapping("/base/coursePackagePayment/add")
+ public Object addCoursePackagePayment(@RequestBody TCoursePackagePayment packagePayment) {
+ //校验是否已经报满
+ 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;
+ }
+ }
+ 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.setOrderType(1);
+ coursePackageOrder.setSalesName(packagePayment.getSalesName());
+ coursePackageOrderService.save(coursePackageOrder);
+ // 生成排课数据
+ return 200;
+
+ }
+
+ /**
+ * 手动支付
+ *
+ * @return
+ */
+ @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<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;
+ }
+
+ /**
+ * 获取购课记录
+ */
+ @ResponseBody
+ @RequestMapping("/coursePackagePayment/listAll")
+ public List<CoursePackagePaymentVO> listAll(@RequestBody CoursePackagePaymentQuery query) {
+ 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());
+ 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());
+ if (query.getPayUser() == null || query.getPayUser().equals("")) {
+ } else {
+ List<AppUser> appUsers = appUserClient.queryAppUserListByName(query.getPayUser());
+ for (AppUser user : appUsers) {
+ if (appUser.getName().equals(user.getName())) {
+ if (query.getPayStudent() == null || query.getPayStudent().equals("")) {
+ } else {
+ List<Student> students = studentClient.queryStudentListByName(query.getPayStudent());
+ for (Student student1 : students) {
+ if (string.contains(student1.getName())) {
+ result.add(re);
+ }
+ }
+ }
+ }
+ }
+ }
+ if (re.getPayType() != null) {
+ if (re.getPayType() == 1) {
+ re.setBuyTypeName("微信支付");
+ } else if (re.getPayType() == 2) {
+ re.setBuyTypeName("支付宝支付");
+ } else if (re.getPayType() == 3) {
+ re.setBuyTypeName("玩湃币支付");
+ } else if (re.getPayType() == 4) {
+ re.setBuyTypeName("积分支付");
+ } else if (re.getPayType() == 5) {
+ re.setBuyTypeName("积分+微信支付");
+ } else if (re.getPayType() == 6) {
+ re.setBuyTypeName("积分+支付宝支付");
+ } else if (re.getPayType() == 7) {
+ re.setBuyTypeName("手动支付" + "-" + re.getBuyTypeName());
+ }
+ }
+
+ // 如果支付用户类型为管理员 则购买方式则为1线下购买
+ if (re.getPayUserType() != null) {
+ if (re.getPayUserType() == 2) {
+ re.setBuyType(1);
+ } else {
+ // 如果当前课包有折扣 则为3折扣购买
+ if (discountService.list(new QueryWrapper<TCoursePackageDiscount>()
+ .eq("coursePackageId", re.getCoursePackageId()).eq("auditStatus", 2)).size() > 0) {
+ re.setBuyType(3);
+ re.setDiscountAmount(re.getOriginalPrice().subtract(re.getCashPayment()));
+ } else {
+ re.setBuyType(2);
+ }
+ }
+ }
+ if (re.getCashPayment() == null) {
+ BigDecimal bigDecimal = new BigDecimal("0.00");
+ re.setDiscountAmount(bigDecimal);
+ continue;
+ }
+ BigDecimal subtract = re.getOriginalPrice().subtract(re.getCashPayment());
+ re.setDiscountAmount(subtract);
+ }
+ if (query.getPayStudent() == null || query.getPayStudent().equals("")) {
+ if (query.getPayUser() == null || query.getPayUser().equals("")) {
+ return res;
+ } else {
+ return result;
+ }
+ } else {
+ return result;
+ }
+ }
+
+ /**
+ * 获取报名订单记录列表
+ */
+ @ResponseBody
+ @RequestMapping("/registerOrder/listAllRegister")
+ public List<RegisterOrderVO> listAllRegister(@RequestBody RegisterOrderQuery query) {
+ if (query.getStudentName() != null) {
+ if (!query.getStudentName().equals("")) {
+ List<TStudent> students1 = studentClient.queryTStudentListByName(query.getStudentName());
+ List<Integer> studentIds = students1.stream().map(TStudent::getId).collect(Collectors.toList());
+ query.setStudentIds(studentIds);
+ if (students1.size() == 0) {
+ return new ArrayList<>();
+ }
+ }
+ }
+ List<RegisterOrderVO> res = packagePaymentService.listAllRegister(query);
+ // 该运营商下没有门店
+ if (query.getInsertType() == 2) {
+ if (query.getStoresIds() != null) {
+ if (query.getStoresIds().size() == 0) {
+ List<RegisterOrderVO> registerOrderVOS = new ArrayList<>();
+ return registerOrderVOS;
+ }
+ } else {
+ List<RegisterOrderVO> registerOrderVOS = new ArrayList<>();
+ return registerOrderVOS;
+ }
+ }
+
+ List<RegisterOrderVO> result = new ArrayList<>();
+ Iterator<RegisterOrderVO> iterator = res.iterator();
+ while (iterator.hasNext()) {
+ RegisterOrderVO re = iterator.next();
+ if (re.getSalesName() == null) {
+ re.setSalesName("无");
+ }
+ if (re.getPayType() != null) {
+ if (re.getPayType() == 3) {
+ re.setPayMoneyAndType(re.getPlayPaiCoin() + "玩湃币");
+ } else {
+ re.setPayMoneyAndType("¥" + re.getMoney());
+ }
+ }
+ if (re.getStoreId() != null) {
+ Store store = storeClient.queryStoreById(re.getStoreId());
+ if (store != null) {
+ re.setStoreName(store.getName());
+ }
+ }
+ TAppUser appUser = appUserClient.queryAppUser1(re.getAppUserId());
+ 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());
+ }
+ return res;
+ }
/**
* 获取 没有学员信息的图片配置
+ *
* @param stuId 学员id
- * @return 课包列表
+ * @return 课包列表
*/
@ResponseBody
@PostMapping("/base/coursePack/queryPayment")
- public List<StuCourseResp> getStuCoursePackagePayment(@RequestBody Integer stuId){
+ public List<StuCourseResp> getStuCoursePackagePayment(@RequestBody Integer stuId) {
List<StuCourseResp> resps = new ArrayList<>();
Student student = studentClient.queryStudentById(stuId);
- List<TCoursePackagePayment> byUserId = packagePaymentService.list(new QueryWrapper<TCoursePackagePayment>()
- .eq("appUserId",student.getAppUserId())
- .eq("studentId",stuId));
+ List<CoursePackageOrderStudent> byUserId = coursePackageOrderStudentService.list(new QueryWrapper<CoursePackageOrderStudent>()
+ .eq("appUserId", student.getAppUserId())
+ .eq("studentId", stuId));
- if (byUserId.size() > 0 ){
- for (TCoursePackagePayment tCoursePackagePayment : byUserId) {
+ Date date = new Date();
+
+ if (byUserId.size() > 0) {
+ for (CoursePackageOrderStudent tCoursePackagePayment : byUserId) {
TCoursePackage tCoursePackage = tcpService.getById(tCoursePackagePayment.getCoursePackageId());
+
+ if (tCoursePackagePayment.getUseTime() != null) {
+ if (tCoursePackagePayment.getUseTime().after(date)) {
+ date = tCoursePackagePayment.getUseTime();
+ }
+ }
+ if (tCoursePackage.getType() == 3) {
+ continue;
+ }
StuCourseResp resp = new StuCourseResp();
resp.setCourseId(tCoursePackage.getId());
+ resp.setId(tCoursePackagePayment.getId());
resp.setCourseName(tCoursePackage.getName());
resp.setTotalCourseNums(tCoursePackagePayment.getTotalClassHours());
resp.setResidueNums(tCoursePackagePayment.getLaveClassHours());
- resp.setDeductionNums(tCoursePackagePayment.getTotalClassHours()-tCoursePackagePayment.getLaveClassHours());
- String afterDayDate = DateUtil.getAfterDayDate2(tCoursePackage.getInsertTime(),tCoursePackage.getValidDays() + "");
- resp.setPeriodOfValidity(afterDayDate);
+ resp.setDeductionNums(tCoursePackagePayment.getTotalClassHours() - tCoursePackagePayment.getLaveClassHours());
+ resp.setCourseType(tCoursePackage.getType());
+ if (tCoursePackage.getType() != 1 || tCoursePackage.getState() == 2) {
+ resp.setIsAble(0);
+ } else {
+ resp.setIsAble(1);
+ }
+
+ if (tCoursePackagePayment.getUseTime() != null) {
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+ String str = sdf.format(tCoursePackagePayment.getUseTime());
+ resp.setPeriodOfValidity(str);
+ }
resps.add(resp);
}
+ }
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+ String str = sdf.format(date);
+ for (StuCourseResp resp : resps) {
+ resp.setPeriodOfValidity(str);
}
return resps;
}
/**
- *
* 获取发布的 课包列表
*/
@ResponseBody
@PostMapping("/base/coursePack/storeOfCourse")
- public List<CourseOfStoreVo> getStuCourseWithStores(@RequestBody WeeksOfCourseRest courseRest){
+ public List<CourseOfStoreVo> getStuCourseWithStores(@RequestBody WeeksOfCourseRest courseRest) {
List<CourseOfStoreVo> course = new ArrayList<>();
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
try {
Date parse = simpleDateFormat.parse(courseRest.getTime());
List<TCoursePackagePayment> list = packagePaymentService.list(new QueryWrapper<TCoursePackagePayment>()
- .eq("appUserId",courseRest.getAppUserId() )
- .eq("studentId",courseRest.getStuId())
- .eq("payStatus",2)
- .eq("status",1)
- .eq("state",1)
+ .eq("appUserId", courseRest.getAppUserId())
+ .eq("studentId", courseRest.getStuId())
+ .eq("payStatus", 2)
+ .eq("status", 1)
+ .eq("state", 1)
.groupBy("coursePackageId"));
- if (list.size() > 0){
+ if (list.size() > 0) {
for (TCoursePackagePayment tCoursePackagePayment : list) {
- CoursePackageStudent packageStudent = cspsService.getOne(new LambdaQueryWrapper<CoursePackageStudent>()
+ List<CoursePackageStudent> packageStudent = cspsService.list(new LambdaQueryWrapper<CoursePackageStudent>()
.eq(CoursePackageStudent::getAppUserId, courseRest.getAppUserId())
- .eq(CoursePackageStudent::getStudentId,courseRest.getStuId())
- .eq(CoursePackageStudent::getCoursePackagePaymentId,tCoursePackagePayment.getId())
- .eq(CoursePackageStudent::getCoursePackageId,tCoursePackagePayment.getCoursePackageId()));
- if (ToolUtil.isEmpty(packageStudent) || (ToolUtil.isNotEmpty(packageStudent) && packageStudent.getReservationStatus() != 1)){
+ .eq(CoursePackageStudent::getStudentId, courseRest.getStuId())
+ .eq(CoursePackageStudent::getCoursePackagePaymentId, tCoursePackagePayment.getId())
+ .eq(CoursePackageStudent::getCoursePackageId, tCoursePackagePayment.getCoursePackageId()));
+ if (ToolUtil.isEmpty(packageStudent) || (ToolUtil.isNotEmpty(packageStudent) && packageStudent.get(0).getReservationStatus() == 1)) {
// 没有预约过的/已经取消了的
TCoursePackage tCoursePackage = tcpService.getById(tCoursePackagePayment.getCoursePackageId());
CoursePackagePaymentConfig paymentConfig = icppcService.getOne(new QueryWrapper<CoursePackagePaymentConfig>()
- .eq("coursePackageId",tCoursePackage.getId() )
- .eq("classHours",tCoursePackagePayment.getClassHours()));
+ .eq("coursePackageId", tCoursePackage.getId())
+ .eq("classHours", tCoursePackagePayment.getClassHours()));
// 获取课程有效结束时间,判断 查询的日期parse 是否在有效期范围内
- Date expirationDate = DateTimeHelper.getExpirationDate(tCoursePackagePayment.getInsertTime(),tCoursePackage.getValidDays());
+ Date expirationDate = DateTimeHelper.getExpirationDate(tCoursePackagePayment.getInsertTime(), tCoursePackage.getValidDays());
System.out.println(expirationDate.after(parse));
String classWeeks = tCoursePackage.getClassWeeks();
System.out.println(StrUtils.dealStrToList(classWeeks).contains(DateTimeHelper.getDayOfWeek(parse)));
- if (expirationDate.after(parse) && StrUtils.dealStrToList(classWeeks).contains(DateTimeHelper.getDayOfWeek(parse))){
+ if (expirationDate.after(parse) && StrUtils.dealStrToList(classWeeks).contains(DateTimeHelper.getDayOfWeek(parse))) {
CourseOfStoreVo storeVo = new CourseOfStoreVo();
storeVo.setCourseId(tCoursePackagePayment.getId());
storeVo.setCourseName(tCoursePackage.getName());
@@ -178,7 +605,12 @@
storeVo.setStoreAddress(store.getAddress());
storeVo.setLat(store.getLat());
storeVo.setLon(store.getLon());
- storeVo.setCoursePrice(ToolUtil.isEmpty(paymentConfig.getCashPayment()) ? (double) paymentConfig.getPlayPaiCoin():paymentConfig.getCashPayment());
+ storeVo.setCoursePrice(ToolUtil.isEmpty(paymentConfig.getCashPayment()) ? (double) paymentConfig.getPlayPaiCoin() : paymentConfig.getCashPayment());
+ storeVo.setStatus(1);
+ storeVo.setAllNum(tCoursePackagePayment.getTotalClassHours());
+ storeVo.setLastNum(tCoursePackagePayment.getLaveClassHours());
+ storeVo.setUseNum(tCoursePackagePayment.getTotalClassHours() - tCoursePackagePayment.getLaveClassHours());
+
course.add(storeVo);
}
}
@@ -191,30 +623,60 @@
}
}
+ @Autowired
+ private ICoursePackageOrderStudentService orderStudentService;
/**
- *
* 课程名称列表
*/
@PostMapping("/base/coursePack/sessionNames")
- public List<StuSessionDetailsVo> getStuSessionList(@RequestBody CourseDetailRequest request){
+ public List<StuSessionDetailsVo> getStuSessionList(@RequestBody CourseDetailRequest request) {
List<StuSessionDetailsVo> detailsVos = new ArrayList<>();
- List<TCoursePackagePayment> byUserId = packagePaymentService.list(new QueryWrapper<TCoursePackagePayment>()
- .between("insertTime", request.getStartTime(),request.getEndTime())
- .eq("appUserId",request.getAppUserId())
- .eq("studentId",request.getStuId()));
- if (byUserId.size() > 0){
- List<Integer> collect = byUserId.stream().map(TCoursePackagePayment::getCoursePackageId).collect(Collectors.toList());
+ List<CoursePackageOrderStudent> byUserId = orderStudentService.list(new QueryWrapper<CoursePackageOrderStudent>()
+ .between("insertTime", request.getStartTime(), request.getEndTime())
+ .eq("appUserId", request.getAppUserId())
+ .eq("studentId", request.getStuId()));
+ if (byUserId.size() > 0) {
+ List<Integer> collect = byUserId.stream().map(CoursePackageOrderStudent::getCoursePackageId).collect(Collectors.toList());
List<TCoursePackage> list = tcpService.list(new QueryWrapper<TCoursePackage>()
.in("id", collect));
- list.forEach(vo -> {
+
+ byUserId.forEach(vo -> {
+
StuSessionDetailsVo detVo = new StuSessionDetailsVo();
- detVo.setSessionid(vo.getId());
- detVo.setSessionName(vo.getName());
- String afterDayDate = DateUtil.getAfterDayDate2(vo.getInsertTime(),vo.getValidDays() + "");
- detVo.setPeriodOfValidity(afterDayDate);
+ detVo.setSessionid(vo.getCoursePackageId());
+ TCoursePackage byId = coursePackageService.getById(vo.getCoursePackageId());
+ detVo.setSessionName(byId.getName());
+// String afterDayDate = DateUtil.getAfterDayDate2(vo.getInsertTime(), vo.getValidDays() + "");
+
+ SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
+ String format1 = simpleDateFormat.format(vo.getUseTime());
+ detVo.setPeriodOfValidity(format1);
+
+ detVo.setTotalNums(vo.getTotalClassHours());
+ detVo.setDeductedNums(vo.getTotalClassHours() - vo.getLaveClassHours());
+ detVo.setRemainingNums(vo.getLaveClassHours());
+
detailsVos.add(detVo);
+
+
});
+
+// list.forEach(vo -> {
+// StuSessionDetailsVo detVo = new StuSessionDetailsVo();
+// if (vo.getType()!=2) {
+// detVo.setSessionid(vo.getId());
+// detVo.setSessionName(vo.getName());
+// String afterDayDate = DateUtil.getAfterDayDate2(vo.getInsertTime(), vo.getValidDays() + "");
+// detVo.setPeriodOfValidity(afterDayDate);
+//
+// detVo.setTotalNums(ToolUtil.isEmpty(tCoursePackagePayment.getTotalCourseNums()) ? 0 : tCoursePackagePayment.getTotalCourseNums());
+// detVo.setDeductedNums(ToolUtil.isEmpty(tCoursePackagePayment.getDeductionNums()) ? 0 : tCoursePackagePayment.getDeductionNums());
+// detVo.setRemainingNums(ToolUtil.isEmpty(tCoursePackagePayment.getResidueNums())? 0 : tCoursePackagePayment.getResidueNums());
+//
+// detailsVos.add(detVo);
+// }
+// });
}
return detailsVos;
}
@@ -224,15 +686,15 @@
List<PurchaseRecordVo> purchaseRecordVos = new ArrayList<>();
List<TCoursePackagePayment> coursePackage = packagePaymentService.list(new QueryWrapper<TCoursePackagePayment>()
- .between("insertTime", sessionList.getStartTime(),sessionList.getEndTime())
- .eq("appUserId",sessionList.getAppUserId())
- .eq("studentId",sessionList.getStuId()));
- if (coursePackage.size() > 0 ){
- coursePackage.forEach( cspackage -> {
+ .between("insertTime", sessionList.getStartTime(), sessionList.getEndTime())
+ .eq("appUserId", sessionList.getAppUserId())
+ .eq("studentId", sessionList.getStuId()));
+ if (coursePackage.size() > 0) {
+ coursePackage.forEach(cspackage -> {
PurchaseRecordVo recordVo = new PurchaseRecordVo();
- recordVo.setPurchaseAmount("+"+cspackage.getClassHours());
+ recordVo.setPurchaseAmount("+" + cspackage.getClassHours());
recordVo.setPurchaseTime(format.format(cspackage.getInsertTime()));
- recordVo.setPurchaseType("购买课包");
+ recordVo.setPurchaseType("报名运动营");
purchaseRecordVos.add(recordVo);
});
}
@@ -241,20 +703,71 @@
+
+ @PostMapping("/base/coursePack/getRecord")
+ public List<PurchaseRecordVo> getRecord(@RequestBody RecordTimeRequest recordTimeRequest) {
+// 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());
+ List<CoursePackageOrderStudent> list1 = coursePackageOrderStudentService.list(new QueryWrapper<CoursePackageOrderStudent>()
+ .eq("studentId", recordTimeRequest.getStuId())
+ .eq("coursePackageId", recordTimeRequest.getLessionId())
+ .eq("state", 1)
+ );
+ List<Long> collect = list1.stream().map(CoursePackageOrderStudent::getId).collect(Collectors.toList());
+
+ QueryWrapper<CourseCounsum> in = new QueryWrapper<CourseCounsum>().in("paymentId", collect).in("changeType", changes);
+
+ if (recordTimeRequest.getType() != null) {
+ if (recordTimeRequest.getType() == 2) {
+ recordTimeRequest.setType(0);
+ }
+ in.eq("changeType", recordTimeRequest.getType());
+ }
+ List<CourseCounsum> paymentId = courseCounsumService.list(in);
+ List<PurchaseRecordVo> recordVos = new ArrayList<>();
+ for (CourseCounsum courseCounsum : paymentId) {
+ PurchaseRecordVo purchaseRecordVo = new PurchaseRecordVo();
+ if (courseCounsum.getChangeType() == 0) {
+ purchaseRecordVo.setPurchaseAmount("-" + courseCounsum.getNum());
+ purchaseRecordVo.setPurchaseType(courseCounsum.getReason());
+ SimpleDateFormat sdf = new SimpleDateFormat("MM-dd HH:mm");
+ String formattedDate = sdf.format(courseCounsum.getInsertTime());
+ purchaseRecordVo.setPurchaseTime(formattedDate);
+ } else {
+ purchaseRecordVo.setPurchaseAmount("+" + courseCounsum.getNum());
+ purchaseRecordVo.setPurchaseType(courseCounsum.getReason());
+ SimpleDateFormat sdf = new SimpleDateFormat("MM-dd HH:mm");
+ String formattedDate = sdf.format(courseCounsum.getInsertTime());
+ purchaseRecordVo.setPurchaseTime(formattedDate);
+ }
+ recordVos.add(purchaseRecordVo);
+ }
+
+ return recordVos;
+ }
+
+
@PostMapping("/base/coursePack/stuOfCourses")
- public StuWithCoursesListVo getStuOfCoursesDetails(@RequestBody GetStuOfCoursesDetails getStuOfCoursesDetails){
+ public StuWithCoursesListVo getStuOfCoursesDetails(@RequestBody GetStuOfCoursesDetails getStuOfCoursesDetails) {
StuWithCoursesListVo lisco = new StuWithCoursesListVo();
Integer totalNu = 0;
Integer dedutNu = 0;
Integer remainNu = 0;
- List<TCoursePackagePayment> byUserId = packagePaymentService.list(new QueryWrapper<TCoursePackagePayment>()
- .eq("appUserId",getStuOfCoursesDetails.getAppUserId())
- .eq("studentId",getStuOfCoursesDetails.getStuId()));
- if (byUserId.size() > 0 ){
- for (TCoursePackagePayment tCoursePackagePayment : byUserId) {
+ List<CoursePackageOrderStudent> byUserId = coursePackageOrderStudentService.list(new QueryWrapper<CoursePackageOrderStudent>()
+ .eq("appUserId", getStuOfCoursesDetails.getAppUserId())
+ .eq("studentId", getStuOfCoursesDetails.getStuId()));
+ if (byUserId.size() > 0) {
+ for (CoursePackageOrderStudent tCoursePackagePayment : byUserId) {
totalNu = totalNu + tCoursePackagePayment.getTotalClassHours();
dedutNu = dedutNu + tCoursePackagePayment.getLaveClassHours();
- remainNu = remainNu + (tCoursePackagePayment.getTotalClassHours()-tCoursePackagePayment.getLaveClassHours());
+ remainNu = remainNu + (tCoursePackagePayment.getTotalClassHours() - tCoursePackagePayment.getLaveClassHours());
}
lisco.setTotalNums(totalNu);
lisco.setDeductedNums(remainNu);
@@ -263,17 +776,14 @@
return lisco;
}
-
-
@PostMapping("/base/coursePack/continuingCourse")
- public StudentOfCourseVo getStudentCourse(@RequestBody GetStudentCourse getStudentCourse){
+ public StudentOfCourseVo getStudentCourse(@RequestBody GetStudentCourse getStudentCourse) {
StudentOfCourseVo courseVo = new StudentOfCourseVo();
List<TCoursePackagePayment> tCoursePackagePayments = packagePaymentService.list(new QueryWrapper<TCoursePackagePayment>()
.eq("appUserId", getStudentCourse.getAppUserId())
.eq("coursePackageId", getStudentCourse.getCourseId())
.eq("studentId", getStudentCourse.getStuId()));
- if (tCoursePackagePayments.size() > 0 ){
-
+ if (tCoursePackagePayments.size() > 0) {
List<CourseHoursType> typeList = new ArrayList<>();
tCoursePackagePayments.forEach(cou -> {
CourseHoursType hoursType = new CourseHoursType();
@@ -284,33 +794,32 @@
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());
courseVo.setCoachId(coursePackage.getCoachId());
String classWeeks = coursePackage.getClassWeeks();
List<Integer> integers = StrUtils.dealStrToList(classWeeks);
- if (integers.size() > 0){
+ if (integers.size() > 0) {
StringBuilder courWeeks = new StringBuilder("每");
for (Integer integer : integers) {
courWeeks.append(integer).append("、");
}
- if (courWeeks.length() > 0 && courWeeks.charAt(courWeeks.length() - 1) == '、'){
+ if (courWeeks.length() > 0 && courWeeks.charAt(courWeeks.length() - 1) == '、') {
courWeeks.deleteCharAt(courWeeks.length() - 1);
}
courseVo.setCourseWeek(courWeeks.toString());
}
- courseVo.setCourseTime(coursePackage.getClassStartTime()+"-"+coursePackage.getClassEndTime());
+ courseVo.setCourseTime(coursePackage.getClassStartTime() + "-" + coursePackage.getClassEndTime());
Integer payType = tCoursePackagePayment.getPayType();
BigDecimal cashPayment = tCoursePackagePayment.getCashPayment();
double cashPaymentValue = cashPayment.doubleValue();
Integer playPaiCoin = tCoursePackagePayment.getPlayPaiCoin();
TCoursePackageDiscount coursePackageDiscount = tcpdService.getOne(new QueryWrapper<TCoursePackageDiscount>()
- .eq("coursePackageId",coursePackage.getId() )
- .eq("type",1)
- .eq("auditStatus",2));
+ .eq("coursePackageId", coursePackage.getId())
+ .eq("type", 1)
+ .eq("auditStatus", 2));
ObjectMapper objectMapper = new ObjectMapper();
String content = coursePackageDiscount.getContent();
double discountMember = 0.0;
@@ -339,17 +848,17 @@
@PostMapping("/base/coursePack/afterCourseTwos")
- public List<AfterVideoVo> getAfterCourseTwos(@RequestParam("appUserId") Integer appUserId){
+ public List<AfterVideoVo> getAfterCourseTwos(@RequestParam("appUserId") Integer appUserId) {
List<AfterVideoVo> videoVos = new ArrayList<>();
List<UserVideoDetails> list = uvdsService.list(new QueryWrapper<UserVideoDetails>()
- .eq("appUserId",appUserId)
- .eq("state",1));
- if (list.size() > 0 ){
+ .eq("appUserId", appUserId)
+ .eq("state", 1));
+ if (list.size() > 0) {
List<Integer> courseIds = list.stream().map(UserVideoDetails::getCourseId).collect(Collectors.toList());
List<TCourse> courseList = tcService.list(new QueryWrapper<TCourse>()
- .in("id",courseIds)
- .eq("type",1)
- .eq("state",1)
+ .in("id", courseIds)
+ .eq("type", 1)
+ .eq("state", 1)
.last("ORDER BY insertTime desc LIMIT 2"));
for (TCourse tCourse : courseList) {
AfterVideoVo videoVo = new AfterVideoVo();
@@ -362,22 +871,43 @@
}
@PostMapping("/base/coursePack/allPaymentCourseList")
- public List<TCoursePackagePayment> getAppuserCourseList(@RequestBody Integer appUserId){
- return packagePaymentService.list(new QueryWrapper<TCoursePackagePayment>()
- .eq("appUserId",appUserId)
- .eq("payType",3)
- .eq("payStatus",2)
- .eq("state",1));
+ @ResponseBody
+ 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)
+// .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 (CoursePackageOrder tCoursePackagePayment : list) {
+ CouponPaymentVo couponPaymentVo = new CouponPaymentVo();
+ couponPaymentVo.setTime(simpleDateFormat.format(tCoursePackagePayment.getInsertTime()));
+ couponPaymentVo.setAmount(tCoursePackagePayment.getPlayPaiCoin());
+ paymentVos.add(couponPaymentVo);
+ }
+ }
+ return paymentVos;
}
+
+ @ResponseBody
@PostMapping("/base/coursePack/allAmountPayRecordOfUser")
- public List<TCoursePackagePayment> getAmountPayRecord(@RequestBody BillingDataRequestVo billingDataRequestVo){
- return packagePaymentService.list(new QueryWrapper<TCoursePackagePayment>()
- .eq("appUserId",billingDataRequestVo.getAppUserId())
- .notIn("payType",3)
- .eq("payStatus",2)
- .eq("state",1)
- .between("insertTime",billingDataRequestVo.getMonthStart(),billingDataRequestVo.getMonthEnd()));
+ public BillingRequestVo getAmountPayRecord(@RequestBody BillingDataRequestVo billingDataRequestVo) {
+ BillingRequestVo requestVo = new BillingRequestVo();
+ List<BillingRequest> billingRequests = packagePaymentService.queryAmountDatas(billingDataRequestVo.getAppUserId(), billingDataRequestVo.getMonthStart(), billingDataRequestVo.getMonthEnd());
+ if (billingRequests.size() > 0) {
+ requestVo.setRequests(billingRequests);
+ }
+ return requestVo;
}
@@ -386,14 +916,14 @@
@ApiOperation(value = "课后练习-获取布置课程列表", tags = {"APP-开始上课"})
@ApiImplicitParams({
})
- public ResultUtil<List<BaseVo>> queryArrangePackageType(){
+ public ResultUtil<List<BaseVo>> queryArrangePackageType() {
try {
Integer appUserId = tokenUtil.getUserIdFormRedis();
- if(null == appUserId){
+ if (null == appUserId) {
return ResultUtil.tokenErr();
}
List<TCoursePackagePayment> tCoursePackagePayments = packagePaymentService.list(new QueryWrapper<TCoursePackagePayment>()
- .eq("appUserId",appUserId));
+ .eq("appUserId", appUserId));
List<BaseVo> list = new ArrayList<>();
tCoursePackagePayments.forEach(c -> {
BaseVo baseVo = new BaseVo();
@@ -402,13 +932,15 @@
baseVo.setName(coursePackage.getName());
list.add(baseVo);
});
- return ResultUtil.success(list);
- }catch (Exception e){
+
+ Set<BaseVo> set = new HashSet<>(list);
+ List<BaseVo> back = new ArrayList<>(set);
+ return ResultUtil.success(back);
+ } catch (Exception e) {
e.printStackTrace();
return ResultUtil.runErr();
}
}
-
/**
* 课后视频课表
@@ -419,27 +951,38 @@
@ApiImplicitParams({
@ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
})
- public ResultUtil<List<AppUserVideoResponse>> queryAfterSourceList( CourseOfAfterRequest search){
- try {
- Integer appUserId = tokenUtil.getUserIdFormRedis();
+ public ResultUtil<List<AppUserVideoResponse>> queryAfterSourceList(CourseOfAfterRequest search) throws Exception {
+ 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());
- }
- return ResultUtil.success(packagePaymentService.queryAfterVideo(search,courseIds));
- }catch (Exception e){
- return ResultUtil.runErr();
+ if (null == appUserId) {
+ return ResultUtil.tokenErr();
}
+ QueryWrapper<CoursePackageStudent> queryWrapper1 = new QueryWrapper<CoursePackageStudent>().eq("studentId", search.getStuId());
+ if (ToolUtil.isNotEmpty(search.getCourseTypeId())) {
+ queryWrapper1.eq("coursePackageId", search.getCourseTypeId());
+ }
+
+ List<CoursePackageStudent> list = coursePackageStudentService.list(queryWrapper1);
+ List<Long> longs = new ArrayList<>();
+ for (CoursePackageStudent coursePackageStudent : list) {
+ longs.add(coursePackageStudent.getCoursePackageSchedulingId());
+ }
+
+ System.out.println("======longs========" + longs);
+ List<AppUserVideoResponse> coursePackageSchedulings1 = coursePackageSchedulingService.queryAll(longs);
+
+ if (search.getSearch() != null) {
+ List<AppUserVideoResponse> filteredList = new ArrayList<>();
+ for (AppUserVideoResponse response : coursePackageSchedulings1) {
+ if (response.getVideoName().contains(search.getSearch())) {
+ filteredList.add(response);
+ }
+ }
+ return ResultUtil.success(filteredList);
+
+ }
+
+ return ResultUtil.success(coursePackageSchedulings1);
}
/**
@@ -451,18 +994,75 @@
@ApiImplicitParams({
@ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
})
- public ResultUtil<CourseOfVideoResponse> queryAfterSourceDetails( CourseWithDetailsRequest detailsRequest){
+ public ResultUtil<CourseOfVideoResponse> queryAfterSourceDetails(CourseWithDetailsRequest detailsRequest) {
try {
Integer appUserId = tokenUtil.getUserIdFormRedis();
- if(null == appUserId){
+ if (null == appUserId) {
return ResultUtil.tokenErr();
}
- return ResultUtil.success(packagePaymentService.queryVideoDetails(detailsRequest,appUserId));
- }catch (Exception e){
+ return ResultUtil.success(packagePaymentService.queryVideoDetails(detailsRequest, appUserId));
+ } catch (Exception e) {
return ResultUtil.runErr();
}
}
+ @ResponseBody
+ @PostMapping("/api/startCource/payCourseInfo")
+ @ApiOperation(value = "课后练习-购课详情(用于购课)", tags = {"APP-开始上课"})
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
+ })
+ public ResultUtil<PayCourseInfoReq> payCourseInfo(Integer courseId) {
+ try {
+ PayCourseInfoReq payCourseInfoReq = packagePaymentService.payCourseInfo(courseId);
+
+// Arrays.sort(payCourseInfoReq.getDay(), (a, b) -> a.compareTo(b));
+
+ Collections.sort(payCourseInfoReq.getDay(), Comparator.comparing(String::toString));
+
+
+ return ResultUtil.success(payCourseInfoReq);
+ } catch (Exception e) {
+ return ResultUtil.runErr();
+ }
+ }
+
+ @ResponseBody
+ @PostMapping("/api/startCource/getMyCourseList")
+ @ApiOperation(value = "课后练习-可支付课程列表(用于购课)", tags = {"APP-开始上课"})
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
+ })
+ public ResultUtil<List<PayCourseRes>> getMyCourseList(Integer storeId) {
+ try {
+ Integer appUserId = tokenUtil.getUserIdFormRedis();
+ if (null == appUserId) {
+ return ResultUtil.tokenErr();
+ }
+ return ResultUtil.success(packagePaymentService.getMyCourseList(storeId, appUserId));
+ } catch (Exception e) {
+ return ResultUtil.runErr();
+ }
+ }
+
+
+ @ResponseBody
+ @PostMapping("/api/startCource/payCourse")
+ @ApiOperation(value = "课后练习-确认购课", tags = {"APP-开始上课"})
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
+ })
+ public ResultUtil<?> payCourse(PayCourseReq req) {
+ try {
+ Integer appUserId = tokenUtil.getUserIdFormRedis();
+ if (null == appUserId) {
+ return ResultUtil.tokenErr();
+ }
+ return packagePaymentService.payCourse(req, appUserId);
+ } catch (Exception e) {
+ return ResultUtil.runErr();
+ }
+ }
/**
* 更新课后视频学习状态
@@ -473,18 +1073,17 @@
@ApiImplicitParams({
@ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
})
- public ResultUtil updateVideoStatus( UpdateCourseVideoStatusRequest detailsRequest){
+ public ResultUtil updateVideoStatus(UpdateCourseVideoStatusRequest detailsRequest) {
try {
Integer appUserId = tokenUtil.getUserIdFormRedis();
- if(null == appUserId){
+ if (null == appUserId) {
return ResultUtil.tokenErr();
}
- return ResultUtil.success(packagePaymentService.updateVideoStatus(detailsRequest,appUserId));
- }catch (Exception e){
+ return ResultUtil.success(packagePaymentService.updateVideoStatus(detailsRequest, appUserId));
+ } catch (Exception e) {
return ResultUtil.runErr();
}
}
-
@ResponseBody
@@ -492,7 +1091,7 @@
@ApiOperation(value = "已报名课程-获取课程类型列表", tags = {"APP-课程列表"})
@ApiImplicitParams({
})
- public ResultUtil<List<BaseVo>> queryCoursePackageType(){
+ public ResultUtil<List<BaseVo>> queryCoursePackageType() {
try {
List<TCoursePackageType> coursePackageTypes = coursePackageTypeService.list(new QueryWrapper<TCoursePackageType>().eq("state", 1));
List<BaseVo> list = new ArrayList<>();
@@ -502,7 +1101,7 @@
list.add(baseVo);
});
return ResultUtil.success(list);
- }catch (Exception e){
+ } catch (Exception e) {
e.printStackTrace();
return ResultUtil.runErr();
}
@@ -518,17 +1117,16 @@
@ApiImplicitParams({
@ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
})
- public ResultUtil<List<RegisterCourseVo>> queryRegisteredCoursesDetails( CourseOfAfterRequest courseTypeId){
+ public ResultUtil<List<RegisterCourseVo>> queryRegisteredCoursesDetails(CourseOfAfterRequest courseTypeId) {
try {
Integer appUserId = tokenUtil.getUserIdFormRedis();
- if(null == appUserId){
+ if (null == appUserId) {
return ResultUtil.tokenErr();
}
- return ResultUtil.success(packagePaymentService.queryRegisteredCourseList(courseTypeId,appUserId));
- }catch (Exception e){
+ return ResultUtil.success(coursePackageOrderService.queryRegisteredCourseList(courseTypeId, appUserId));
+ } catch (Exception e) {
return ResultUtil.runErr();
}
-
}
@@ -540,17 +1138,29 @@
@ApiOperation(value = "已报名课程详情", tags = {"APP-开始上课"})
@ApiImplicitParams({
@ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
- @ApiImplicitParam(name = "coursePayId" ,value = "课包记录id",dataType = "long"),
+ @ApiImplicitParam(value = "经度", name = "lon", dataType = "string", required = false),
+ @ApiImplicitParam(value = "纬度", name = "lat", dataType = "string", required = false),
+ @ApiImplicitParam(name = "coursePayId", value = "课包记录id", dataType = "long"),
+ @ApiImplicitParam(name = "orderId", value = "订单id", dataType = "int")
+
})
- public ResultUtil<CourseDetailsResponse> getRegisteredData(Long coursePayId){
+ public ResultUtil<CourseDetailsResponse> getRegisteredData(Long coursePayId, String lon, String lat) {
try {
Integer appUserId = tokenUtil.getUserIdFormRedis();
- if(null == appUserId){
+ if (null == appUserId) {
return ResultUtil.tokenErr();
}
- return ResultUtil.success(packagePaymentService.queryRegisteredCourseDetails(coursePayId,appUserId));
- }catch (Exception e){
- return ResultUtil.runErr();
+ CourseDetailsResponse courseDetailsResponse = packagePaymentService.queryRegisteredCourseDetails(coursePayId, appUserId, lon, lat);
+
+//
+// if (orderId != null) {
+// TOrder byId = orderService.getById(orderId);
+// courseDetailsResponse.setAmount(byId.getPrice());
+// }
+ return ResultUtil.success(courseDetailsResponse);
+ } catch (Exception e) {
+ e.printStackTrace();
+ throw new RuntimeException(e.getMessage());
}
}
@@ -564,40 +1174,44 @@
@ApiImplicitParams({
@ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
})
- public ResultUtil continuationOperation(ClasspaymentRequest request){
+ public ResultUtil continuationOperation(ClasspaymentRequest request) {
try {
- Integer userIdFormRedis = tokenUtil.getUserIdFormRedis();
- if(null == userIdFormRedis){
+ Integer userId = tokenUtil.getUserIdFormRedis();
+ System.err.println("续课参数"+request);
+ if (null == userId) {
return ResultUtil.tokenErr();
}
- return packagePaymentService.ContinuationOrpaymentCourse(userIdFormRedis,request);
- }catch (Exception e){
+ Long couponId = request.getConponId();
+ if (couponId == null || couponId == 0) {
+ request.setConponId(null);
+ }
+ return packagePaymentService.ContinuationOrpaymentCourse(userId, request);
+ } catch (Exception e) {
return ResultUtil.runErr();
}
}
-
/**
* 课包续课支付宝支付回调接口
*/
@PostMapping("/base/coursePackage/alipayRegisteredCoursesCallback")
- public void alipayCallback(HttpServletRequest request, HttpServletResponse response){
+ public void alipayCallback(HttpServletRequest request, HttpServletResponse response) {
try {
Map<String, String> map = payMoneyUtil.alipayCallback(request);
- if(null != map){
+ if (null != map) {
String out_trade_no = map.get("out_trade_no");
String transaction_id = map.get("transaction_id");
ResultUtil resultUtil = packagePaymentService.insertVipPaymentCallback(out_trade_no, transaction_id);
- if(resultUtil.getCode() == 200){
+ if (resultUtil.getCode() == 200) {
PrintWriter out = response.getWriter();
out.write("success");
out.flush();
out.close();
}
}
- }catch (Exception e){
+ } catch (Exception e) {
e.printStackTrace();
}
}
@@ -606,38 +1220,80 @@
/**
* 课包续课微信支付回调接口
*/
+ @PostMapping("/base/coursePackage/wechatRegisteredCoursesCallback1")
+ public void weChatCallback1(HttpServletRequest request, HttpServletResponse response) {
+ try {
+ System.err.println("微信回调");
+ System.err.println("请求" + request);
+ BufferedReader reader = request.getReader();
+ String string1 = reader.toString();
+ System.err.println("请求reader" + string1);
+ StringBuilder requestBody = new StringBuilder();
+ String line;
+ while ((line = reader.readLine()) != null) {
+ requestBody.append(line);
+ }
+ System.err.println("全部请求体" + requestBody);
+ com.alibaba.fastjson.JSONObject jsonObject = com.alibaba.fastjson.JSONObject.parseObject(requestBody.toString());
+ com.alibaba.fastjson.JSONObject resource = jsonObject.getJSONObject("resource");
+
+ AesUtil aesUtil = new AesUtil(WxV3PayConfig.apiV3Key.getBytes(StandardCharsets.UTF_8));
+ String decryptedData = aesUtil.decryptToString(resource.getString("associated_data").getBytes(StandardCharsets.UTF_8), resource.getString("nonce").getBytes(StandardCharsets.UTF_8),
+ resource.getString("ciphertext"));
+ System.err.println("微信解密的字符串信息" + decryptedData);
+ com.alibaba.fastjson.JSONObject jsonInfo = (com.alibaba.fastjson.JSONObject) com.alibaba.fastjson.JSONObject.parse(decryptedData);
+ String out_trade_no = jsonInfo.getString("out_trade_no");
+ String transaction_id = jsonInfo.getString("transaction_id");
+ String trade_state = jsonInfo.getString("trade_state");
+ if (trade_state.equals("SUCCESS")) {
+ ResultUtil resultUtil = packagePaymentService.insertVipPaymentCallback(out_trade_no, transaction_id);
+ if (resultUtil.getCode() == 200) {
+ PrintWriter out = response.getWriter();
+ out.write("SUCCESS");
+ out.flush();
+ out.close();
+ }
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ /**
+ * 课包续课微信支付回调接口
+ */
+ /**
+ * 课包续课微信支付回调接口
+ */
@PostMapping("/base/coursePackage/wechatRegisteredCoursesCallback")
- public void weChatCallback(HttpServletRequest request, HttpServletResponse response){
+ public void weChatCallback(HttpServletRequest request, HttpServletResponse response) {
try {
Map<String, String> map = payMoneyUtil.weixinpayCallback(request);
- if(null != map){
+ if (null != map) {
String out_trade_no = map.get("out_trade_no");
String transaction_id = map.get("transaction_id");
String result = map.get("result");
ResultUtil resultUtil = packagePaymentService.insertVipPaymentCallback(out_trade_no, transaction_id);
- if(resultUtil.getCode() == 200){
+ if (resultUtil.getCode() == 200) {
PrintWriter out = response.getWriter();
out.write(result);
out.flush();
out.close();
}
}
- }catch (Exception e){
+ } catch (Exception e) {
e.printStackTrace();
}
}
-
-
-
-
/**
* 获取学员剩余课时
+ *
* @param id
* @return
*/
@ResponseBody
@PostMapping("/coursePackagePayment/queryResidueClassHour")
- public Integer queryResidueClassHour(@RequestBody Integer id){
+ public Integer queryResidueClassHour(@RequestBody Integer id) {
try {
List<TCoursePackagePayment> list = packagePaymentService.list(new QueryWrapper<TCoursePackagePayment>().eq("studentId", id).eq("payStatus", 2)
.eq("status", 1).eq("state", 1).gt("laveClassHours", 0));
@@ -646,100 +1302,247 @@
total += coursePackagePayment.getLaveClassHours();
}
return total;
- }catch (Exception e){
+ } catch (Exception e) {
+ e.printStackTrace();
+ return 0;
+ }
+ }
+
+ /**
+ * 获取学员剩余课时
+ *
+ * @param id
+ * @return
+ */
+ @ResponseBody
+ @PostMapping("/coursePackagePayment/queryResidueClassHourById")
+ public Integer queryResidueClassHourById(@RequestBody Long id) {
+ try {
+ CoursePackageOrderStudent coursePackageOrderStudent = coursePackageOrderStudentService.getById(id);
+ return coursePackageOrderStudent.getLaveClassHours();
+ } catch (Exception e) {
e.printStackTrace();
return 0;
}
}
+ public static Date[] generateDateArray(int numDays, Date date) {
+// LocalDate tomorrow = LocalDate.now().plusDays(1);
+ LocalDate tomorrow = date.toInstant().atZone(ZoneId.systemDefault()).toLocalDate().plusDays(1);
+
+ Date[] dates = new Date[numDays];
+
+ for (int i = 0; i < numDays; i++) {
+ LocalDate currentDate = tomorrow.plusDays(i);
+ dates[i] = Date.from(currentDate.atStartOfDay(ZoneId.systemDefault()).toInstant());
+ }
+
+ return dates;
+ }
+
+ @Autowired
+ private TCoursePackageService packageService;
+ @Autowired
+ CoursePackageStudentService studentService;
+
/**
* 课程用于支付进行扣减
+ *
* @param paymentDeductionClassHour
*/
@ResponseBody
@PostMapping("/coursePackagePayment/paymentDeductionClassHour")
- public void paymentDeductionClassHour(@RequestBody PaymentDeductionClassHour paymentDeductionClassHour){
+ public void paymentDeductionClassHour(@RequestBody PaymentDeductionClassHour paymentDeductionClassHour) {
try {
- List<TCoursePackagePayment> list = packagePaymentService.list(new QueryWrapper<TCoursePackagePayment>().eq("studentId", paymentDeductionClassHour.getId()).eq("payStatus", 2)
- .eq("status", 1).eq("state", 1).gt("laveClassHours", 0));
- Integer classHour = paymentDeductionClassHour.getClassHour();
- for (TCoursePackagePayment coursePackagePayment : list) {
- if(coursePackagePayment.getLaveClassHours().compareTo(classHour) >= 0){
- coursePackagePayment.setLaveClassHours(coursePackagePayment.getLaveClassHours() - classHour);
- packagePaymentService.updateById(coursePackagePayment);
+ CoursePackageOrderStudent coursePackageOrderStudent = coursePackageOrderStudentService.getById(paymentDeductionClassHour.getCourseId());
+ 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)
+ .eq("type", 1).orderByDesc("classDate"));
+ //已经排课但没有使用的课时数量
+ int number = list1.size() * coursePackage.getNeedNum();
+ Integer laveClassHours1 = coursePackageOrderStudent.getLaveClassHours();
+ //需要删除多余的排课记录
+ if(number > laveClassHours1){
+ int n = number - laveClassHours1;
+ for (int i = 0; i < n; i++) {
+ CoursePackageScheduling coursePackageScheduling = list1.get(i);
+ coursePackageSchedulingService.getBaseMapper().deleteById(coursePackageScheduling.getId());
- 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);
- break;
- }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();
+ coursePackageStudentService.getBaseMapper().delete(new QueryWrapper<CoursePackageStudent>()
+ .eq("coursePackageSchedulingId", coursePackageScheduling.getId()));
}
}
- }catch (Exception e){
+
+ 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();
}
}
+ private List<Integer> week(String week) {
+ String[] split = week.split(";");
+ ArrayList<Integer> integers = new ArrayList<>();
+ for (String s : split) {
+ switch (s) {
+ case "周一":
+ integers.add(1);
+ break;
+ case "周二":
+ integers.add(2);
+ break;
+ case "周三":
+ integers.add(3);
+ break;
+ case "周四":
+ integers.add(4);
+ break;
+ case "周五":
+ integers.add(5);
+ break;
+ case "周六":
+ integers.add(6);
+ break;
+ case "周日":
+ integers.add(7);
+ break;
+ }
+ }
+ return integers;
+ }
/**
* 取消赛事回退支付课时
+ *
* @param paymentDeductionClassHour
*/
@ResponseBody
@PostMapping("/coursePackagePayment/rollbackPaymentDeductionClassHour")
- public void rollbackPaymentDeductionClassHour(@RequestBody PaymentDeductionClassHour paymentDeductionClassHour){
+ public void rollbackPaymentDeductionClassHour(@RequestBody PaymentDeductionClassHour paymentDeductionClassHour) {
try {
List<CancelledClasses> voucher = cancelledClassesService.list(new QueryWrapper<CancelledClasses>().eq("voucher", paymentDeductionClassHour.getCode()));
for (CancelledClasses cancelledClasses : voucher) {
TCoursePackagePayment coursePackagePayment = packagePaymentService.getById(cancelledClasses.getCoursePackagePaymentId());
coursePackagePayment.setLaveClassHours(coursePackagePayment.getLaveClassHours() + cancelledClasses.getCancelledClassesNumber());
+ coursePackagePayment.setAppUserId(null);
packagePaymentService.updateById(coursePackagePayment);
cancelledClassesService.removeById(cancelledClasses.getId());
}
- }catch (Exception e){
+ } catch (Exception e) {
e.printStackTrace();
}
}
+ @Resource
+ private TCoursePackageMapper tcpmapper;
+ /**
+ * 找出符合门店的课包
+ *
+ * @param s
+ * @return
+ */
+ @ResponseBody
+ @PostMapping("/coursePackagePayment/paymentCompetitionCourseList")
+ public List<PayCourseRes> paymentCompetitionCourseList(@RequestBody String s) {
+ ArrayList<PayCourseRes> objects = new ArrayList<>();
+
+ String[] split = s.split("_");
+ // 用户id
+ Integer integer = Integer.valueOf(split[0]);
+ String s1 = split[1];
+ // 门店id
+ String[] split1 = s1.split(",");
+ ArrayList<Integer> storeIds = new ArrayList<>();
+ for (String s2 : split1) {
+ storeIds.add(Integer.valueOf(s2));
+ }
+// List<TCoursePackagePayment> list = packagePaymentService.list(new LambdaQueryWrapper<TCoursePackagePayment>().eq(TCoursePackagePayment::getAppUserId, integer).ge(TCoursePackagePayment::getLaveClassHours, 0).eq(TCoursePackagePayment::getStatus, 1).eq(TCoursePackagePayment::getState, 1));
+// for (TCoursePackagePayment tCoursePackagePayment : list) {
+// Integer coursePackageId = tCoursePackagePayment.getCoursePackageId();
+// TCoursePackage byId = tcpService.getById(coursePackageId);
+// if (byId.getType() == 3) {
+// continue;
+// }
+// if (storeIds.contains(byId.getStoreId())) {
+// PayCourseRes payCourseRes = new PayCourseRes();
+// payCourseRes.setCourseNum(tCoursePackagePayment.getLaveClassHours());
+// payCourseRes.setId(tCoursePackagePayment.getId());
+// payCourseRes.setName(byId.getName());
+// objects.add(payCourseRes);
+// }
+// }
+
+
+
+ List<CoursePackageOrderStudent> tCoursePackagePayments = coursePackageOrderStudentService.list(new LambdaQueryWrapper<CoursePackageOrderStudent>().eq(CoursePackageOrderStudent::getAppUserId, integer));
+// ArrayList<PayCourseRes> payCourseRes = new ArrayList<>();
+ for (CoursePackageOrderStudent tCoursePackagePayment : tCoursePackagePayments) {
+ TCoursePackage tCoursePackage = tcpmapper.selectById(tCoursePackagePayment.getCoursePackageId());
+ if (tCoursePackage.getType() != 1) {
+ continue;
+ }
+ if (storeIds.contains(tCoursePackage.getStoreId())) {
+ PayCourseRes payCourseRes = new PayCourseRes();
+ payCourseRes.setCourseNum(tCoursePackagePayment.getLaveClassHours());
+ payCourseRes.setId(tCoursePackagePayment.getId());
+ payCourseRes.setName(tCoursePackage.getName());
+ objects.add(payCourseRes);
+
+ }
+ }
+
+
+ return objects;
+ }
+
+ @ResponseBody
+ @PostMapping("/coursePackagePayment/isHave")
+ public Integer isHave(@RequestBody String ids) {
+ String[] split = ids.split(",");
+ return coursePackagePaymentService.count(new QueryWrapper<TCoursePackagePayment>().in("studentId", split));
+
+ }
+
+
/**
* 课包续费玩湃币支付
+ *
* @param
*/
@PostMapping("/coursePackagePayment/courseRenewPlayPaiPay")
- public int paymentWanpaiRenewCourse(@RequestBody PlayPaiGoldCoursePackage coursePackage){
+ public int paymentWanpaiRenewCourse(@RequestBody PlayPaiGoldCoursePackage coursePackage) {
try {
Integer userIdFormRedis = tokenUtil.getUserIdFormRedis();
- if (null == userIdFormRedis){
+ if (null == userIdFormRedis) {
return 2;
}
CoursePackagePaymentConfig paymentConfig = icppcService.getById(coursePackage.getCoursePayConfigId());
AppUser appUser = auClitn.queryAppUser(userIdFormRedis);
- if (appUser.getPlayPaiCoins() < paymentConfig.getPlayPaiCoin()){
+ if (appUser.getPlayPaiCoins() < paymentConfig.getPlayPaiCoin()) {
return 3;
}
TCoursePackagePayment packagePayment = packagePaymentService.getOne(new QueryWrapper<TCoursePackagePayment>()
- .eq("code",coursePackage.getCode() ));
+ .eq("code", coursePackage.getCode()));
packagePayment.setPayStatus(2);
packagePayment.setPayUserId(userIdFormRedis);
packagePayment.setClassHours(paymentConfig.getClassHours());
@@ -748,8 +1551,26 @@
packagePayment.setLaveClassHours(paymentConfig.getClassHours());
packagePaymentService.updateById(packagePayment);
- appUser.setPlayPaiCoins(appUser.getPlayPaiCoins()-paymentConfig.getPlayPaiCoin());
+ appUser.setPlayPaiCoins(appUser.getPlayPaiCoins() - paymentConfig.getPlayPaiCoin());
auClitn.updateAppUser(appUser);
+
+ TCourseInfoRecord tCourseInfoRecord = new TCourseInfoRecord();
+ tCourseInfoRecord.setUserId(userIdFormRedis);
+ tCourseInfoRecord.setCourseId(coursePackage.getCoursePackageId());
+ tCourseInfoRecord.setName("续课");
+ tCourseInfoRecord.setTime(new Date());
+ tCourseInfoRecord.setType(1);
+ tCourseInfoRecord.setNum(paymentConfig.getClassHours());
+ auClitn.addCourseInfoRecord(tCourseInfoRecord);
+
+ CourseCounsum courseCounsum = new CourseCounsum();
+ courseCounsum.setPaymentId(packagePayment.getId());
+ courseCounsum.setChangeType(1);
+ courseCounsum.setNum(packagePayment.getClassHours());
+ courseCounsum.setInsertTime(new Date());
+ courseCounsum.setReason("报名运动营");
+ courseCounsumService.save(courseCounsum);
+
} catch (Exception e) {
return 4;
}
@@ -757,52 +1578,790 @@
}
@PostMapping("/base/coursePack/getPaymentCoursePackage")
- public TCoursePackagePayment getCoursePackagePaymentByCode(@RequestBody String code){
+ public TCoursePackagePayment getCoursePackagePaymentByCode(@RequestBody String code) {
return packagePaymentService.getOne(new QueryWrapper<TCoursePackagePayment>()
- .eq("code",code));
+ .eq("code", code));
}
+
+ @PostMapping("/base/coursePack/getCoursePackagePaymentById")
+ public TCoursePackagePayment getCoursePackagePaymentById(@RequestBody Long id) {
+ TCoursePackagePayment byId = packagePaymentService.getById(id);
+ System.out.println("======byId==========" + byId);
+ return byId;
+ }
+
+
@PostMapping("/base/coursePack/delPaymentCoursePackage")
- public boolean delPaymentCoursePackage(@RequestBody Integer payId){
+ public boolean delPaymentCoursePackage(@RequestBody Integer payId) {
return packagePaymentService.removeById(payId);
}
+
@PostMapping("/base/coursePack/updatePaymentCoursePackage")
- public boolean updatePaymentCoursePackage(@RequestBody TCoursePackagePayment packagePayment){
- return packagePaymentService.update(packagePayment,new QueryWrapper<TCoursePackagePayment>()
- .eq("id",packagePayment.getId()));
+ public boolean updatePaymentCoursePackage(@RequestBody TCoursePackagePayment packagePayment) {
+ boolean id = packagePaymentService.update(packagePayment, new QueryWrapper<TCoursePackagePayment>()
+ .eq("id", packagePayment.getId()));
+ if (id) {
+ TCourseInfoRecord tCourseInfoRecord = new TCourseInfoRecord();
+ tCourseInfoRecord.setNum(packagePayment.getTotalClassHours());
+ tCourseInfoRecord.setName("续课");
+ tCourseInfoRecord.setCourseId(packagePayment.getCoursePackageId());
+ tCourseInfoRecord.setUserId(packagePayment.getAppUserId());
+ tCourseInfoRecord.setType(1);
+ tCourseInfoRecord.setTime(new Date());
+ id = appUserClient.addCourseInfoRecord(tCourseInfoRecord);
+
+
+ CourseCounsum courseCounsum = new CourseCounsum();
+ courseCounsum.setPaymentId(packagePayment.getId());
+ courseCounsum.setChangeType(1);
+ courseCounsum.setNum(packagePayment.getClassHours());
+ courseCounsum.setInsertTime(new Date());
+ courseCounsum.setReason("续课");
+ courseCounsumService.save(courseCounsum);
+
+ }
+ return id;
}
@PostMapping("/base/coursePack/savePaymentCoursePackage")
- public boolean savePaymentCoursePackage(@RequestBody TCoursePackagePayment packagePayment){
- return packagePaymentService.save(packagePayment);
+ public Long savePaymentCoursePackage(@RequestBody CoursePackageOrder coursePackageOrder) {
+ coursePackageOrderService.save(coursePackageOrder);
+ return coursePackageOrder.getId();
}
- @PostMapping("/base/coursePack/obtainStudentClassDetails")
- public List<RecordAppoint> obtainStudentClassDetailsData(@RequestBody WeeksOfCourseRest stuId){
- try {
- return packagePaymentService.obtainStuClassDetails(stuId.getStuId(),stuId.getAppUserId());
- }catch (Exception e){
- e.printStackTrace();
- throw new RuntimeException();
+ @PostMapping("/base/coursePack/orderClass")
+ public void orderClass(@RequestBody OrderDto orderDto) throws ParseException {
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
+ String code = sdf.format(new Date()) + UUIDUtil.getNumberRandom(5);
+ String[] split = orderDto.getStuIds().split(",");
+ for (String s : split) {
+ TCoursePackagePayment coursePackagePaymentServiceOne = coursePackagePaymentService.getOne(new QueryWrapper<TCoursePackagePayment>().eq("studentId", s).eq("coursePackageId", orderDto.getClassId()));
+
+
+ if (coursePackagePaymentServiceOne == null) {
+ TCoursePackagePayment coursePackagePayment = new TCoursePackagePayment();
+ coursePackagePayment.setCode(code);
+ coursePackagePayment.setAppUserId(orderDto.getAppUserId());
+ coursePackagePayment.setStudentId(Integer.valueOf(s));
+ coursePackagePayment.setCoursePackageId(orderDto.getClassId());
+ coursePackagePayment.setPayType(4);
+ coursePackagePayment.setClassHours(orderDto.getClassHours());
+ coursePackagePayment.setTotalClassHours(orderDto.getClassHours());
+ coursePackagePayment.setLaveClassHours(orderDto.getClassHours());
+ coursePackagePayment.setAbsencesNumber(0);
+ coursePackagePayment.setPayUserType(1);
+ coursePackagePayment.setPayStatus(2);
+ coursePackagePayment.setPayUserId(orderDto.getAppUserId());
+ coursePackagePayment.setStatus(1);
+ coursePackagePayment.setState(1);
+ coursePackagePayment.setInsertTime(new Date());
+ coursePackagePaymentService.save(coursePackagePayment);
+ Integer sId = null;
+ Student student = studentClient.queryDefaultStudent(orderDto.getAppUserId());
+ if (student != null) {
+ sId = student.getId();
+ }
+ addPackageStudent(orderDto.getClassId(), orderDto.getAppUserId(), Integer.valueOf(s), coursePackagePayment, coursePackagePayment.getId());
+
+
+ CourseCounsum courseCounsum = new CourseCounsum();
+ courseCounsum.setPaymentId(coursePackagePayment.getId());
+ courseCounsum.setChangeType(1);
+ courseCounsum.setNum(orderDto.getClassHours());
+ courseCounsum.setInsertTime(new Date());
+ courseCounsum.setReason("积分兑换");
+ courseCounsumService.save(courseCounsum);
+
+ } else {
+ coursePackagePaymentServiceOne.setClassHours(coursePackagePaymentServiceOne.getClassHours() + orderDto.getClassHours());
+ coursePackagePaymentServiceOne.setTotalClassHours(coursePackagePaymentServiceOne.getTotalClassHours() + orderDto.getClassHours());
+ coursePackagePaymentServiceOne.setLaveClassHours(coursePackagePaymentServiceOne.getLaveClassHours() + orderDto.getClassHours());
+ coursePackagePaymentServiceOne.setAppUserId(null);
+ coursePackagePaymentService.updateById(coursePackagePaymentServiceOne);
+
+ Integer sId = null;
+ Student student = studentClient.queryDefaultStudent(orderDto.getAppUserId());
+ if (student != null) {
+ sId = student.getId();
+ }
+ addPackageStudent(orderDto.getClassId(), orderDto.getAppUserId(), Integer.valueOf(s), coursePackagePaymentServiceOne, coursePackagePaymentServiceOne.getId());
+
+
+ CourseCounsum courseCounsum = new CourseCounsum();
+ courseCounsum.setPaymentId(coursePackagePaymentServiceOne.getId());
+ courseCounsum.setChangeType(1);
+ courseCounsum.setNum(orderDto.getClassHours());
+ courseCounsum.setInsertTime(new Date());
+ courseCounsum.setReason("积分兑换");
+ courseCounsum.setInsertTime(new Date());
+ courseCounsumService.save(courseCounsum);
+
+
+ }
+
}
+
+ }
+
+
+ public static Date[] generateDateArray1(Date startDate, Date endDate) {
+ List<Date> dateList = new ArrayList<>();
+ Calendar calendar = Calendar.getInstance();
+ calendar.setTime(startDate);
+
+ while (!calendar.getTime().after(endDate)) {
+ Date currentDate = calendar.getTime();
+ dateList.add(currentDate);
+ calendar.add(Calendar.DAY_OF_MONTH, 1);
+ }
+
+ 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 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);
+
+ 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");
+
+ //查出当前用户当前学员当前课包最后一天的排课数据
+ List<CoursePackageStudent> studentCourse = coursePackageStudentService.list(new QueryWrapper<CoursePackageStudent>().eq("studentId", sId).eq("coursePackageId", courseId));
+ List<Long> collect = studentCourse.stream().map(CoursePackageStudent::getCoursePackageSchedulingId).collect(Collectors.toList());
+ //拿到最后一天的排课记录
+ if (collect.size() > 0) {
+ coursePackageSchedulingService.remove(new QueryWrapper<CoursePackageScheduling>().in("id", collect));
+ coursePackageStudentService.remove(new QueryWrapper<CoursePackageStudent>().eq("studentId", sId).eq("coursePackageId", courseId));
+ }
+ Date today = new Date();
+ TCoursePackagePayment pay = coursePackagePaymentService.getById(paymentId);
+ Integer laveClassHours = pay.getLaveClassHours();
+ Integer codeTime = tCoursePackage.getCodeTime();
+ Integer can = 0;
+ int count = 0;
+ // 本周周几
+ Date[] dates = generateDateArray(14, today);
+ if (tCoursePackage.getType() == 1) {
+ can = laveClassHours / codeTime;
+ }
+ if (tCoursePackage.getType() == 2) {
+ Date startDate = tCoursePackage.getStartTime();
+ Date endDate = tCoursePackage.getEndTime();
+ dates = generateDateArray1(startDate, endDate);
+ can = 999;
+ }
+ 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(userId);
+ student1.setStudentId(sId);
+ student1.setCoursePackageId(tCoursePackage.getId());
+ student1.setCoursePackagePaymentId(paymentId);
+ student1.setCoursePackageSchedulingId(coursePackageScheduling.getId());
+ student1.setSignInOrNot(1);
+ student1.setReservationStatus(1);
+ student1.setInsertTime(new Date());
+ coursePackageStudentService.save(student1);
+ count++;
+ }
+ }
+ }
+
+ } else if (tCoursePackage.getType() == 2) {
+ String classWeeks = tCoursePackage.getClassWeeks();
+ List<Integer> week = week(classWeeks);
+
+ Date today = new Date();
+
+ Date startTime = tCoursePackage.getStartTime();
+ Date endTime = tCoursePackage.getEndTime();
+ LocalDate startDate = startTime.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
+ LocalDate endDate = endTime.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
+ Period period = Period.between(startDate, endDate);
+ int days = period.getDays() + 1;
+ Integer can = 999;
+ 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");
+
+ Calendar calendar = Calendar.getInstance();
+ calendar.setTime(startTime);
+ calendar.add(Calendar.DAY_OF_MONTH, -1);
+
+ TCoursePackagePayment pay = coursePackagePaymentService.getById(paymentId);
+
+
+ Date[] dates = generateDateArray(days, calendar.getTime());
+ for (Date date : dates) {
+ if (count == can) {
+ break;
+ }
+ int wei = cn.hutool.core.date.DateUtil.dayOfWeek(date) - 1;
+ if (wei == 0) {
+ wei = 7;
+ }
+ 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(userId);
+ student1.setStudentId(sId);
+ student1.setCoursePackageId(tCoursePackage.getId());
+ student1.setCoursePackagePaymentId(pay.getId());
+ student1.setCoursePackageSchedulingId(coursePackageScheduling.getId());
+ student1.setSignInOrNot(1);
+ student1.setReservationStatus(1);
+ student1.setInsertTime(new Date());
+ coursePackageStudentService.save(student1);
+ count++;
+ }
+ }
+ }
+ }
+ TCourseInfoRecord tCourseInfoRecord = new TCourseInfoRecord();
+ tCourseInfoRecord.setUserId(userId);
+ tCourseInfoRecord.setCourseId(courseId);
+ tCourseInfoRecord.setName("报名运动营");
+ tCourseInfoRecord.setNum(tCoursePackage.getNeedNum());
+ tCourseInfoRecord.setTime(new Date());
+ tCourseInfoRecord.setType(2);
+ appUserClient.addCourseInfoRecord(tCourseInfoRecord);
+ }
+
+ @ResponseBody
+ @PostMapping("/base/coursePack/obtainStudentClassDetails")
+ public List<RecordAppoint> obtainStudentClassDetailsData(@RequestBody WeeksOfCourseRest stuId) {
+ return coursePackageOrderStudentService.obtainStuClassDetails(stuId.getStuId(), stuId.getAppUserId(), stuId.getPageNum());
}
@PostMapping("/base/coursePack/getCoursePackageConfig")
- public List<CoursePackagePaymentConfig> getCourseConfigList(@RequestBody Integer coursePackageId){
+ public List<CoursePackagePaymentConfig> getCourseConfigList(@RequestBody Integer coursePackageId) {
return icppcService.list(new QueryWrapper<CoursePackagePaymentConfig>()
- .eq("coursePackageId",coursePackageId));
+ .eq("coursePackageId", coursePackageId));
}
-
@PostMapping("/base/coursePack/getCoursePackagePaymentOfCode")
- public List<TCoursePackagePayment> getCoursePackagePaymentOfCode(@RequestBody String code){
+ public List<TCoursePackagePayment> getCoursePackagePaymentOfCode(@RequestBody String code) {
return packagePaymentService.list(new QueryWrapper<TCoursePackagePayment>()
- .eq("code",code));
+ .eq("code", code));
}
+
+ @PostMapping("/base/coursePack/sendHours")
+ public Integer sendHours(@RequestBody String s) throws ParseException {
+ String[] split2 = s.split("_");
+ 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(coursePackageOrderStudent.getId());
+ courseCounsum.setChangeType(1);
+ courseCounsum.setNum(Integer.valueOf(split2[2]));
+ courseCounsum.setInsertTime(new Date());
+ courseCounsum.setReason("介绍有礼");
+ courseCounsumService.save(courseCounsum);
+
+
+ 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", coursePackageOrderStudent.getStudentId()).eq("coursePackageId", coursePackageOrderStudent.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", coursePackageOrderStudent.getCoursePackageId()).eq("studentId", coursePackageOrderStudent.getStudentId()));
+
+ Date today = new Date();
+
+ 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++;
+ }
+ }
+ }
+ return 1;
+ }
+
+
+ /**
+ * 查询课时
+ *
+ * @param courseConfigId
+ * @return
+ */
+ @PostMapping("/base/coursePack/getClassHour")
+ public Integer getClassHour(@RequestBody Integer courseConfigId) {
+ CoursePackagePaymentConfig byId = icppcService.getById(courseConfigId);
+ return byId.getClassHours();
+ }
+
+ /**
+ * 获取课包报名信息列表
+ *
+ * @param queryRegistrationRecord
+ * @return
+ */
+ @ResponseBody
+ @PostMapping("/coursePackagePayment/queryRegistrationRecord")
+ public Page<Map<String, Object>> queryRegistrationRecord(@RequestBody QueryRegistrationRecord queryRegistrationRecord) {
+ Page<Map<String, Object>> page = new PageFactory<Map<String, Object>>().defaultPage(queryRegistrationRecord.getLimit(), queryRegistrationRecord.getOffset(), queryRegistrationRecord.getSort(), queryRegistrationRecord.getOrder());
+ Page<Map<String, Object>> mapPage = page.setRecords(packagePaymentService.queryRegistrationRecord(page, queryRegistrationRecord));
+ return mapPage;
+ }
+
+
+ /**
+ * 获取未预约排课学员列表
+ *
+ * @param queryWalkInStudentList
+ * @return
+ */
+ @ResponseBody
+ @PostMapping("/coursePackagePayment/queryWalkInStudentList")
+ public Page<Map<String, Object>> queryWalkInStudentList(@RequestBody QueryWalkInStudentList queryWalkInStudentList) {
+ Page<Map<String, Object>> page = new PageFactory<Map<String, Object>>().defaultPage(queryWalkInStudentList.getLimit(), queryWalkInStudentList.getOffset(), queryWalkInStudentList.getSort(), queryWalkInStudentList.getOrder());
+ Page<Map<String, Object>> mapPage = page.setRecords(packagePaymentService.queryWalkInStudentList(page, queryWalkInStudentList));
+ return mapPage;
+ }
+
+
+ /**
+ * 根据id获取数据
+ *
+ * @param id
+ * @return
+ */
+ @ResponseBody
+ @PostMapping("/coursePackagePayment/queryCoursePackagePaymentById")
+ public TCoursePackagePayment queryCoursePackagePaymentById(@RequestParam("id") Long id) {
+ 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 = coursePackageOrderStudentService.count(new QueryWrapper<CoursePackageOrderStudent>().eq("coursePackageId", id));
+
+
+ return coursePackageId;
+ }
+
+
+ /**
+ * 修改数据
+ *
+ * @param coursePackagePayment
+ */
+ @ResponseBody
+ @PostMapping("/coursePackagePayment/editCoursePackagePayment")
+ public void editCoursePackagePayment(TCoursePackagePayment coursePackagePayment) {
+ coursePackagePayment.setAppUserId(null);
+ packagePaymentService.updateById(coursePackagePayment);
+ }
+
+ /**
+ * 修改数据
+ *
+ * @param coursePackagePayment
+ */
+ @ResponseBody
+ @PostMapping("/coursePackagePayment/editCoursePackagePayment1")
+ public void editCoursePackagePayment1(@RequestBody TCoursePackagePayment coursePackagePayment) {
+ System.out.println("editCoursePackagePayment1====coursePackagePayment" + coursePackagePayment);
+// coursePackagePayment.setCoursePackageId(null);
+ 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);
+ }
/**
@@ -810,53 +2369,798 @@
*/
@ResponseBody
@PostMapping("/api/startCource/reverse")
- @ApiOperation(value = "上课主页-预约操作", 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"),
@ApiImplicitParam(value = "时间 yyyy-MM-dd", name = "time", required = true, dataType = "String"),
- @ApiImplicitParam(value = "学员id", name = "time", required = true, dataType = "int"),
+ @ApiImplicitParam(value = "学员id", name = "stuId", required = true, dataType = "int"),
})
- public ResultUtil reverse(String courseID,String time,Integer stuId){
+ public ResultUtil reverse(String courseID, String time, Integer stuId) {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
try {
Integer appUserId = tokenUtil.getUserIdFormRedis();
- if(null == appUserId){
+ if (null == appUserId) {
return ResultUtil.tokenErr();
}
- TCoursePackagePayment packagePayment = packagePaymentService.getOne(new LambdaQueryWrapper<TCoursePackagePayment>()
- .eq(TCoursePackagePayment::getId,courseID )
- .eq(TCoursePackagePayment::getAppUserId,appUserId)
- .eq(TCoursePackagePayment::getStudentId,stuId)
+ List<CoursePackageOrderStudent> packagePayment = coursePackageOrderStudentService.list(new QueryWrapper<CoursePackageOrderStudent>()
+ .eq("coursePackageId", courseID)
+ .eq("appUserId", appUserId)
+ .eq("studentId", stuId)
);
- if (ToolUtil.isEmpty(packagePayment)){
- ResultUtil.error("该用户未购买该课包");
+ if (ToolUtil.isEmpty(packagePayment) || packagePayment.size() == 0) {
+ return ResultUtil.error("该用户未购买该课包");
}
- CoursePackageStudent coursePackageStudent = cspsService.getOne(new LambdaQueryWrapper<CoursePackageStudent>()
- .eq(CoursePackageStudent::getCoursePackageId,packagePayment.getCoursePackageId())
- .eq(CoursePackageStudent::getCoursePackagePaymentId,courseID)
- .eq(CoursePackageStudent::getStudentId,stuId)
- .eq(CoursePackageStudent::getAppUserId,appUserId)
+ List<CoursePackageScheduling> coursePackageSchedulings = coursePackageSchedulingMapper.selectList(new LambdaQueryWrapper<CoursePackageScheduling>()
+ .eq(CoursePackageScheduling::getCoursePackageId, Integer.valueOf(courseID))
+ .like(CoursePackageScheduling::getClassDate, time)
);
- if (ToolUtil.isNotEmpty(coursePackageStudent) && coursePackageStudent.getReservationStatus() == 0){
- coursePackageStudent.setReservationStatus(1);
- coursePackageStudent.setInsertTime(simpleDateFormat.parse(time));
- cspsService.updateById(coursePackageStudent);
- }else {
- coursePackageStudent.setAppUserId(appUserId);
- coursePackageStudent.setStudentId(stuId);
- coursePackageStudent.setCoursePackageId(packagePayment.getCoursePackageId());
- coursePackageStudent.setCoursePackagePaymentId(Long.parseLong(courseID));
- coursePackageStudent.setReservationStatus(1);
- coursePackageStudent.setInsertTime(simpleDateFormat.parse(time));
- cspsService.save(coursePackageStudent);
+ List<CoursePackageStudent> coursePackageStudent = cspsService.list(new LambdaQueryWrapper<CoursePackageStudent>()
+ .in(CoursePackageStudent::getCoursePackagePaymentId, packagePayment.stream().map(CoursePackageOrderStudent::getId).collect(Collectors.toList()))
+ .in(CoursePackageStudent::getCoursePackageSchedulingId, coursePackageSchedulings.stream().map(CoursePackageScheduling::getId).collect(Collectors.toList()))
+ .eq(CoursePackageStudent::getCoursePackageId, courseID)
+ .eq(CoursePackageStudent::getStudentId, stuId)
+ .eq(CoursePackageStudent::getAppUserId, appUserId)
+ );
+
+ if (ToolUtil.isNotEmpty(coursePackageStudent)) {
+ for (CoursePackageStudent packageStudent : coursePackageStudent) {
+ if (packageStudent.getReservationStatus() == 1) {
+ packageStudent.setSignInOrNot(2);
+ cspsService.updateSignInOrNotById(packageStudent.getId());
+ }
+ }
+
+ } else {
}
return ResultUtil.success();
- }catch (Exception e){
+ } catch (Exception e) {
+ e.printStackTrace();
return ResultUtil.runErr();
}
}
+
+ @ResponseBody
+ @PostMapping("/base/coursePack/getConsumes")
+ List<CourseCounsum> getConsumes(@RequestBody BillingDataRequestVo requestVo) {
+ Integer[] integers = {2, 3};
+ QueryWrapper<CourseCounsum> courseCounsumQueryWrapper = new QueryWrapper<CourseCounsum>()
+ .in("changeType", integers).eq("appUserId", requestVo.getAppUserId());
+ if (requestVo.getMonthEnd() != null) {
+ courseCounsumQueryWrapper.ge("insertTime", requestVo.getMonthStart());
+ courseCounsumQueryWrapper.le("insertTime", requestVo.getMonthEnd());
+ }
+ return courseCounsumService.list(courseCounsumQueryWrapper);
+ }
+
+
+ @ResponseBody
+ @PostMapping("/base/coursePack/getCoursePackageOrder")
+ public List<CoursePackageOrder> getCoursePackageOrder(@RequestBody BillingDataRequestVo requestVo){
+ QueryWrapper<CoursePackageOrder> wrapper = new QueryWrapper<CoursePackageOrder>().eq("appUserId", requestVo.getAppUserId())
+ .in("payType", Arrays.asList(1, 2, 5, 6)).eq("payStatus", 2).eq("state", 1).eq("orderType", 1);
+ return coursePackageOrderService.list(wrapper);
+ }
+
+
+
+
+
+
+
+ @ResponseBody
+ @PostMapping("/base/coursePack/weeksOfCourseDetailsList")
+ public HashMap<String, Object> weeksOfCourseDetailsList(@RequestBody CourseDetailReq courseDetailReq) {
+ HashMap<String, Object> map = new HashMap<>();
+ ArrayList<DetailsListVo> objects = new ArrayList<>();
+ String time = courseDetailReq.getTime();
+ Date parse = null;
+ try {
+ parse = new SimpleDateFormat("yyyy-MM-dd").parse(time);
+ } catch (ParseException e) {
+ throw new RuntimeException(e);
+ }
+ int i = cn.hutool.core.date.DateUtil.dayOfWeek(parse) - 1;
+ String week = week(i);
+ Store store = sreClient.queryStoreById(courseDetailReq.getStoreId());
+ String lat = store.getLat();
+ String lon = store.getLon();
+
+ Map<String, Double> distance = GeodesyUtil.getDistance(courseDetailReq.getLon() + "," + courseDetailReq.getLat(), lon + "," + lat);
+ double wgs84 = distance.get("WGS84") / 1000;
+ map.put("distance", wgs84);
+ map.put("name", store.getName());
+ 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)
+ .eq(TCoursePackage::getAuditStatus, 2));
+ List<Integer> collect = list.stream().map(TCoursePackage::getId).collect(Collectors.toList());
+ if (collect.size() == 0) {
+ collect.add(-1);
+ }
+
+ List<CoursePackageScheduling> list8 = coursePackageSchedulingMapper.selectList(new LambdaQueryWrapper<CoursePackageScheduling>()
+ .eq(CoursePackageScheduling::getAppUserId, courseDetailReq.getAppUserId())
+ .eq(CoursePackageScheduling::getStudentId, courseDetailReq.getStuId())
+ .in(CoursePackageScheduling::getCoursePackageId, collect)
+ );
+ List<Integer> collect1 = list8.stream().map(CoursePackageScheduling::getCoursePackageId).collect(Collectors.toList());
+ for (TCoursePackage tCoursePackage : list) {
+ DetailsListVo detailsListVo = new DetailsListVo();
+ detailsListVo.setId(tCoursePackage.getId());
+ detailsListVo.setName(tCoursePackage.getName());
+ detailsListVo.setCourseType(tCoursePackage.getType());
+ String classStartTime = tCoursePackage.getClassStartTime();
+ String[] split = classStartTime.split(",");
+ String classEndTime = tCoursePackage.getClassEndTime();
+ String[] split1 = classEndTime.split(",");
+ ArrayList<String> strings = new ArrayList<>();
+ if (ToolUtil.isNotEmpty(classStartTime)) {
+ for (int i1 = 0; i1 < split.length; i1++) {
+ String s = split[i1].substring(0, 5) + "-" + split1[i1].substring(0, 5);
+ strings.add(s);
+ }
+ }
+ if (detailsListVo.getCourseType() == 1) {
+ detailsListVo.setTime(strings);
+ } else {
+ Date startTime = tCoursePackage.getStartTime();
+ Date endTime = tCoursePackage.getEndTime();
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+ String formattedStartTime = sdf.format(startTime);
+ String formattedEndTime = sdf.format(endTime);
+
+ String result = formattedStartTime + "至" + formattedEndTime;
+ List<String> stringLists = new ArrayList<>();
+ stringLists.add(result);
+ detailsListVo.setTime(stringLists);
+
+ }
+ //价格
+ List<CoursePackagePaymentConfig> list2 = icppcService.list(new LambdaQueryWrapper<CoursePackagePaymentConfig>().eq(CoursePackagePaymentConfig::getCoursePackageId, tCoursePackage.getId()).orderByAsc(CoursePackagePaymentConfig::getCashPayment));
+ if (list2.size() > 0) {
+ Double cashPayment = list2.get(0).getCashPayment();
+ detailsListVo.setMoney(cashPayment);
+ }
+ detailsListVo.setNum(tCoursePackage.getNeedNum());
+
+
+
+ if (collect1.contains(tCoursePackage.getId())) {
+ // 找出排课记录
+ List<CoursePackageScheduling> list3 = coursePackageSchedulingMapper.selectList(new LambdaQueryWrapper<CoursePackageScheduling>()
+ .eq(CoursePackageScheduling::getCoursePackageId, tCoursePackage.getId())
+ .like(CoursePackageScheduling::getClassDate, courseDetailReq.getTime())
+ );
+
+ if (list3.isEmpty()) {
+ detailsListVo.setType(2);
+ objects.add(detailsListVo);
+ continue;
+ }
+ //排课的ids
+ List<Long> collect2 = list3.stream().map(CoursePackageScheduling::getId).collect(Collectors.toList());
+ 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)
+ );
+
+ List<CoursePackageStudent> list5 = cspsService.list(new QueryWrapper<CoursePackageStudent>().eq("studentId", courseDetailReq.getStuId()).eq("coursePackageId", tCoursePackage.getId()));
+
+ if (list5.size() > 0 && list4.size() > 0) {
+ Integer signInOrNot = list4.get(0).getSignInOrNot();
+ detailsListVo.setType(1);
+
+ if (signInOrNot == 2) {
+ detailsListVo.setType(3);
+ }
+ 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());
+ Date classDate = coursePackageScheduling.getClassDate();
+ Date endDate = coursePackageScheduling.getEndDate();
+ SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");
+ String formattedClassDate = sdf.format(classDate);
+ String formattedEndDate = sdf.format(endDate);
+
+ String result = formattedClassDate + "-" + formattedEndDate;
+ List<String> strings1 = new ArrayList<>();
+ strings1.add(result);
+ detailsListVo.setTime(strings1);
+ DetailsListVo detailsListVo1 = new DetailsListVo();
+
+// detailsListVo1.setId(coursePackageStudent.getId());
+ BeanUtils.copyProperties(detailsListVo, detailsListVo1);
+ objects.add(detailsListVo1);
+ }
+
+
+ } else {
+ detailsListVo.setType(2);
+ objects.add(detailsListVo);
+
+ }
+
+ } else {
+ detailsListVo.setType(2);
+ objects.add(detailsListVo);
+
+ }
+ //课程暂停
+ if(tCoursePackage.getState() == 4){
+ detailsListVo.setType(4);
+ }
+ }
+ map.put("data", objects);
+
+ return map;
+ }
+
+ private String week(int i) {
+ String a = "";
+ switch (i) {
+ case 1:
+ a = "周一";
+ break;
+ case 2:
+ a = "周二";
+ break;
+ case 3:
+ a = "周三";
+ break;
+ case 4:
+ a = "周四";
+ break;
+ case 5:
+ a = "周五";
+ break;
+ case 6:
+ a = "周六";
+ break;
+ case 7:
+ a = "周日";
+ break;
+ }
+ return a;
+ }
+
+
+ @ResponseBody
+ @PostMapping("/coursePackagePayment/queryCourseData")
+ public List<Map<String, Object>> queryCourseData(@RequestBody List<Integer> ids) {
+ // 找出课程类型 找出剩余的课时数
+ List<TCoursePackageType> list = coursePackageTypeService.list();
+ if (ids.size() == 0) {
+ 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<Map<String, Object>> mapList = new ArrayList<>();
+ for (TCoursePackageType tCoursePackageType : list) {
+ HashMap<String, Object> map = new HashMap<>();
+ map.put("name", tCoursePackageType.getName());
+ int a = 0;
+ for (TCoursePackagePayment tCoursePackagePayment : list1) {
+ if (null != tCoursePackagePayment.getType() && tCoursePackagePayment.getType().equals(tCoursePackageType.getId())) {
+ a += tCoursePackagePayment.getLaveClassHours();
+ }
+ }
+ map.put("value", a);
+ mapList.add(map);
+ }
+
+
+ return mapList;
+ }
+
+
+ @ResponseBody
+ @PostMapping("/coursePackagePayment/coursePt")
+ HashMap<String, Object> coursePt(@RequestBody List<Integer> userPt) {
+ if (userPt.size() == 0) {
+ userPt.add(-1);
+ }
+ HashMap<String, Object> map = new HashMap<>();
+ 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);
+
+ //所有课包
+ List<TCoursePackage> coursePackages = tcpService.list();
+
+
+ // 年
+ List<CoursePackageStudent> list = cspsService.list(new LambdaQueryWrapper<CoursePackageStudent>().in(CoursePackageStudent::getAppUserId, userPt));
+
+
+ for (CoursePackageStudent coursePackageStudent : list) {
+ for (TCoursePackage coursePackage : coursePackages) {
+ if (coursePackageStudent.getCoursePackageId().equals(coursePackage.getId())) {
+ if (ToolUtil.isEmpty(coursePackage.getNeedNum())) {
+ coursePackageStudent.setNeedNum(0);
+ } else {
+ coursePackageStudent.setNeedNum(coursePackage.getNeedNum());
+ }
+ }
+ }
+ }
+
+ ArrayList<Object> integers = new ArrayList<>();
+ int year = cn.hutool.core.date.DateUtil.year(new Date());
+ for (int i = 0; i < 10; i++) {
+ integers.add(year - i);
+ }
+ List<Object> collect = integers.stream().sorted().collect(Collectors.toList());
+ // 年
+ ArrayList<Integer> years = new ArrayList<>();
+ for (Object o : collect) {
+ String s = o.toString();
+ List<CoursePackageStudent> collect1 = list.stream().filter(e -> e.getInsertTime().toString().contains(s)).filter(student -> student.getNeedNum() != null).collect(Collectors.toList());
+ int sum2 = collect1.stream().mapToInt(CoursePackageStudent::getNeedNum).sum();
+ years.add(sum2);
+ }
+
+ map.put("yearData", years);
+
+
+ ArrayList<Integer> months = new ArrayList<>();
+
+ SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+
+
+ // 月
+ for (int i = 1; i <= 12; i++) {
+ String m = i + "";
+ if (i < 10) {
+ m = "0" + i;
+ }
+ String s = year + "-" + m;
+ List<CoursePackageStudent> collect1 = list.stream().filter(e -> format.format(e.getInsertTime()).contains(s)).filter(student -> student.getNeedNum() != null).collect(Collectors.toList());
+ int sum2 = collect1.stream().mapToInt(CoursePackageStudent::getNeedNum).sum();
+ months.add(sum2);
+ }
+ map.put("monthData", months);
+
+ // 周
+ // 获取最近四周
+ LocalDateTime minNow = LocalDateTime.now().with(LocalTime.MIN);
+ LocalDateTime maxNow = LocalDateTime.now().with(LocalTime.MAX);
+ // 周度数据
+ LocalDateTime s1 = minNow.minusDays(6);
+ LocalDateTime s2 = maxNow;
+
+ LocalDateTime s3 = minNow.minusDays(13);
+ LocalDateTime s4 = maxNow.minusDays(6);
+
+
+ LocalDateTime s5 = minNow.minusDays(20);
+ LocalDateTime s6 = maxNow.minusDays(13);
+
+ LocalDateTime s7 = minNow.minusDays(27);
+ LocalDateTime s8 = maxNow.minusDays(20);
+ ArrayList<Object> weekData = new ArrayList<>();
+
+ int count = 0;
+
+ int count1 = 0;
+
+ int count2 = 0;
+
+ int count3 = 0;
+ for (CoursePackageStudent coursePackageStudent : list) {
+ if (coursePackageStudent.getNeedNum() == null) {
+ continue;
+ }
+ // 如果到课状态为否 则不计算
+ if (coursePackageStudent.getSignInOrNot() != 0) {
+ Date insertTime = coursePackageStudent.getInsertTime();
+ Instant instant = insertTime.toInstant();
+ ZoneId zoneId = ZoneId.systemDefault();
+ LocalDateTime dateTime = instant.atZone(zoneId).toLocalDateTime();
+ if (dateTime.isAfter(s1) && dateTime.isBefore(s2)) {
+
+ count += coursePackageStudent.getNeedNum();
+ } else if (dateTime.isAfter(s3) && dateTime.isBefore(s4)) {
+ count1 += coursePackageStudent.getNeedNum();
+ } else if (dateTime.isAfter(s5) && dateTime.isBefore(s6)) {
+ count2 += coursePackageStudent.getNeedNum();
+ } else if (dateTime.isAfter(s7) && dateTime.isBefore(s8)) {
+ count3 += coursePackageStudent.getNeedNum();
+ }
+
+ }
+ }
+ weekData.add(count3);
+ 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) {
+ Date insertTime = coursePackageStudent.getInsertTime();
+ // 将 Date 转换为 LocalDateTime
+ LocalDateTime insertDateTime = LocalDateTime.ofInstant(insertTime.toInstant(), ZoneId.systemDefault());
+ // 计算日期与当前日期的差距
+ long daysDifference = ChronoUnit.DAYS.between(insertDateTime.toLocalDate(), currentDateTime.toLocalDate());
+ // 如果日期在七天内,累加金额
+ if (daysDifference >= 0 && daysDifference < 7) {
+ int index = (int) (6 - daysDifference); // 计算对应的索引位置
+ Integer needNum = coursePackageStudent.getNeedNum();
+ if (needNum != null) {
+ int i = amountByDay.get(index) + needNum;
+ amountByDay.set(index, i);
+ }
+
+ }
+ }
+ map.put("dayData", amountByDay);
+
+ return map;
+
+ }
+
+ @ResponseBody
+ @PostMapping("/coursePackagePayment/courseYys")
+ HashMap<String, Object> courseYys(@RequestBody List<Integer> userPt) {
+ if (userPt.size() == 0) {
+ userPt.add(-1);
+ }
+ HashMap<String, Object> map = new HashMap<>();
+ 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);
+
+ //所有课包
+ List<TCoursePackage> coursePackages = tcpService.list();
+
+
+ // 年
+ List<CoursePackageStudent> list = cspsService.list(new LambdaQueryWrapper<CoursePackageStudent>().in(CoursePackageStudent::getAppUserId, userPt));
+
+
+ for (CoursePackageStudent coursePackageStudent : list) {
+ for (TCoursePackage coursePackage : coursePackages) {
+ if (coursePackageStudent.getCoursePackageId().equals(coursePackage.getId())) {
+ if (ToolUtil.isEmpty(coursePackage.getNeedNum())) {
+ coursePackageStudent.setNeedNum(0);
+ } else {
+ coursePackageStudent.setNeedNum(coursePackage.getNeedNum());
+ }
+ }
+ }
+ }
+
+ ArrayList<Object> integers = new ArrayList<>();
+ int year = cn.hutool.core.date.DateUtil.year(new Date());
+ for (int i = 0; i < 10; i++) {
+ integers.add(year - i);
+ }
+ List<Object> collect = integers.stream().sorted().collect(Collectors.toList());
+ // 年
+ ArrayList<Integer> years = new ArrayList<>();
+ for (Object o : collect) {
+ String s = o.toString();
+ List<CoursePackageStudent> collect1 = list.stream().filter(e -> e.getInsertTime().toString().contains(s)).filter(student -> student.getNeedNum() != null).collect(Collectors.toList());
+ int sum2 = collect1.stream().mapToInt(CoursePackageStudent::getNeedNum).sum();
+ years.add(sum2);
+ }
+
+ map.put("yearData", years);
+
+
+ ArrayList<Integer> months = new ArrayList<>();
+
+ SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+
+
+ // 月
+ for (int i = 1; i <= 12; i++) {
+ String m = i + "";
+ if (i < 10) {
+ m = "0" + i;
+ }
+ String s = year + "-" + m;
+ List<CoursePackageStudent> collect1 = list.stream().filter(e -> format.format(e.getInsertTime()).contains(s)).filter(student -> student.getNeedNum() != null).collect(Collectors.toList());
+ int sum2 = collect1.stream().mapToInt(CoursePackageStudent::getNeedNum).sum();
+ months.add(sum2);
+ }
+ map.put("monthData", months);
+
+ // 周
+ // 获取最近四周
+ LocalDateTime minNow = LocalDateTime.now().with(LocalTime.MIN);
+ LocalDateTime maxNow = LocalDateTime.now().with(LocalTime.MAX);
+ // 周度数据
+ LocalDateTime s1 = minNow.minusDays(6);
+ LocalDateTime s2 = maxNow;
+
+ LocalDateTime s3 = minNow.minusDays(13);
+ LocalDateTime s4 = maxNow.minusDays(6);
+
+
+ LocalDateTime s5 = minNow.minusDays(20);
+ LocalDateTime s6 = maxNow.minusDays(13);
+
+ LocalDateTime s7 = minNow.minusDays(27);
+ LocalDateTime s8 = maxNow.minusDays(20);
+ ArrayList<Object> weekData = new ArrayList<>();
+
+ int count = 0;
+
+ int count1 = 0;
+
+ int count2 = 0;
+
+ int count3 = 0;
+ for (CoursePackageStudent coursePackageStudent : list) {
+ if (coursePackageStudent.getNeedNum() == null) {
+ continue;
+ }
+ // 如果到课状态为否 则不计算
+ if (coursePackageStudent.getSignInOrNot() != 0) {
+ Date insertTime = coursePackageStudent.getInsertTime();
+ Instant instant = insertTime.toInstant();
+ ZoneId zoneId = ZoneId.systemDefault();
+ LocalDateTime dateTime = instant.atZone(zoneId).toLocalDateTime();
+ if (dateTime.isAfter(s1) && dateTime.isBefore(s2)) {
+
+ count += coursePackageStudent.getNeedNum();
+ } else if (dateTime.isAfter(s3) && dateTime.isBefore(s4)) {
+ count1 += coursePackageStudent.getNeedNum();
+ } else if (dateTime.isAfter(s5) && dateTime.isBefore(s6)) {
+ count2 += coursePackageStudent.getNeedNum();
+ } else if (dateTime.isAfter(s7) && dateTime.isBefore(s8)) {
+ count3 += coursePackageStudent.getNeedNum();
+ }
+
+ }
+ }
+ weekData.add(count3);
+ 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) {
+ Date insertTime = coursePackageStudent.getInsertTime();
+ // 将 Date 转换为 LocalDateTime
+ LocalDateTime insertDateTime = LocalDateTime.ofInstant(insertTime.toInstant(), ZoneId.systemDefault());
+ // 计算日期与当前日期的差距
+ long daysDifference = ChronoUnit.DAYS.between(insertDateTime.toLocalDate(), currentDateTime.toLocalDate());
+ // 如果日期在七天内,累加金额
+ if (daysDifference >= 0 && daysDifference < 7) {
+ int index = (int) (6 - daysDifference); // 计算对应的索引位置
+ Integer needNum = coursePackageStudent.getNeedNum();
+ if (needNum != null) {
+ int i = amountByDay.get(index) + needNum;
+ amountByDay.set(index, i);
+ }
+
+ }
+ }
+ map.put("dayData", amountByDay);
+
+ return map;
+
+ }
+
+ @ResponseBody
+ @PostMapping("/coursePackagePayment/courseStore")
+ HashMap<String, Object> courseStore(@RequestBody List<Integer> userPt) {
+ if (userPt.size() == 0) {
+ userPt.add(-1);
+ }
+ HashMap<String, Object> map = new HashMap<>();
+ 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);
+
+ //所有课包
+ List<TCoursePackage> coursePackages = tcpService.list();
+
+
+ // 年
+ List<CoursePackageStudent> list = cspsService.list(new LambdaQueryWrapper<CoursePackageStudent>().in(CoursePackageStudent::getAppUserId, userPt));
+
+
+ for (CoursePackageStudent coursePackageStudent : list) {
+ for (TCoursePackage coursePackage : coursePackages) {
+ if (coursePackageStudent.getCoursePackageId().equals(coursePackage.getId())) {
+ if (ToolUtil.isEmpty(coursePackage.getNeedNum())) {
+ coursePackageStudent.setNeedNum(0);
+ } else {
+ coursePackageStudent.setNeedNum(coursePackage.getNeedNum());
+ }
+ }
+ }
+ }
+
+ ArrayList<Object> integers = new ArrayList<>();
+ int year = cn.hutool.core.date.DateUtil.year(new Date());
+ for (int i = 0; i < 10; i++) {
+ integers.add(year - i);
+ }
+ List<Object> collect = integers.stream().sorted().collect(Collectors.toList());
+ // 年
+ ArrayList<Integer> years = new ArrayList<>();
+ for (Object o : collect) {
+ String s = o.toString();
+ List<CoursePackageStudent> collect1 = list.stream().filter(e -> e.getInsertTime().toString().contains(s)).filter(student -> student.getNeedNum() != null).collect(Collectors.toList());
+ int sum2 = collect1.stream().mapToInt(CoursePackageStudent::getNeedNum).sum();
+ years.add(sum2);
+ }
+
+ map.put("yearData", years);
+
+
+ ArrayList<Integer> months = new ArrayList<>();
+
+ SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+
+
+ // 月
+ for (int i = 1; i <= 12; i++) {
+ String m = i + "";
+ if (i < 10) {
+ m = "0" + i;
+ }
+ String s = year + "-" + m;
+ List<CoursePackageStudent> collect1 = list.stream().filter(e -> format.format(e.getInsertTime()).contains(s)).filter(student -> student.getNeedNum() != null).collect(Collectors.toList());
+ int sum2 = collect1.stream().mapToInt(CoursePackageStudent::getNeedNum).sum();
+ months.add(sum2);
+ }
+ map.put("monthData", months);
+
+ // 周
+ // 获取最近四周
+ LocalDateTime minNow = LocalDateTime.now().with(LocalTime.MIN);
+ LocalDateTime maxNow = LocalDateTime.now().with(LocalTime.MAX);
+ // 周度数据
+ LocalDateTime s1 = minNow.minusDays(6);
+ LocalDateTime s2 = maxNow;
+
+ LocalDateTime s3 = minNow.minusDays(13);
+ LocalDateTime s4 = maxNow.minusDays(6);
+
+
+ LocalDateTime s5 = minNow.minusDays(20);
+ LocalDateTime s6 = maxNow.minusDays(13);
+
+ LocalDateTime s7 = minNow.minusDays(27);
+ LocalDateTime s8 = maxNow.minusDays(20);
+ ArrayList<Object> weekData = new ArrayList<>();
+
+ int count = 0;
+
+ int count1 = 0;
+
+ int count2 = 0;
+
+ int count3 = 0;
+ for (CoursePackageStudent coursePackageStudent : list) {
+ if (coursePackageStudent.getNeedNum() == null) {
+ continue;
+ }
+ // 如果到课状态为否 则不计算
+ if (coursePackageStudent.getSignInOrNot() != 0) {
+ Date insertTime = coursePackageStudent.getInsertTime();
+ Instant instant = insertTime.toInstant();
+ ZoneId zoneId = ZoneId.systemDefault();
+ LocalDateTime dateTime = instant.atZone(zoneId).toLocalDateTime();
+ if (dateTime.isAfter(s1) && dateTime.isBefore(s2)) {
+
+ count += coursePackageStudent.getNeedNum();
+ } else if (dateTime.isAfter(s3) && dateTime.isBefore(s4)) {
+ count1 += coursePackageStudent.getNeedNum();
+ } else if (dateTime.isAfter(s5) && dateTime.isBefore(s6)) {
+ count2 += coursePackageStudent.getNeedNum();
+ } else if (dateTime.isAfter(s7) && dateTime.isBefore(s8)) {
+ count3 += coursePackageStudent.getNeedNum();
+ }
+
+ }
+ }
+ weekData.add(count3);
+ 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) {
+ Date insertTime = coursePackageStudent.getInsertTime();
+ // 将 Date 转换为 LocalDateTime
+ LocalDateTime insertDateTime = LocalDateTime.ofInstant(insertTime.toInstant(), ZoneId.systemDefault());
+ // 计算日期与当前日期的差距
+ long daysDifference = ChronoUnit.DAYS.between(insertDateTime.toLocalDate(), currentDateTime.toLocalDate());
+ // 如果日期在七天内,累加金额
+ if (daysDifference >= 0 && daysDifference < 7) {
+ int index = (int) (6 - daysDifference); // 计算对应的索引位置
+ Integer needNum = coursePackageStudent.getNeedNum();
+ if (needNum != null) {
+ int i = amountByDay.get(index) + needNum;
+ amountByDay.set(index, i);
+ }
+
+ }
+ }
+ map.put("dayData", amountByDay);
+
+ 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