From fade481769731552d9a16c79c9a5323e6f015b36 Mon Sep 17 00:00:00 2001 From: 44323 <443237572@qq.com> Date: 星期二, 28 十一月 2023 06:07:11 +0800 Subject: [PATCH] 后台bug修改 --- cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/CoursePackagePaymentController.java | 13 cloud-server-course/src/main/resources/mapper/CoursePackagePaymentConfigMapper.xml | 16 cloud-server-course/pom.xml | 6 cloud-server-management/src/main/java/com/dsh/course/feignClient/course/model/CoursePackageOrderStudent.java | 96 +++++++++ cloud-server-course/src/main/java/com/dsh/course/entity/TCoursePackagePayment.java | 2 cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java | 340 ++++++++++++++++++++++++++++++--- cloud-server-course/src/main/java/com/dsh/course/model/CoursePackagePayDTO.java | 2 cloud-server-management/src/main/webapp/static/modular/system/cpPayment/cpPayment_info.js | 5 cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentConfigController.java | 13 + cloud-server-course/src/main/java/com/dsh/course/model/CoursePackagePaymentVO.java | 2 cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CoursePackagePaymentClient.java | 9 cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java | 9 cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/TCoursePackagePayment.java | 2 cloud-server-management/src/main/webapp/static/modular/system/cpPayment/cpPayment.js | 19 - cloud-server-course/src/main/java/com/dsh/course/mapper/CoursePackagePaymentConfigMapper.java | 2 cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CoursePackagePaymentConfigClient.java | 7 cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/CoursePackagePayDTO.java | 2 cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/CoursePackagePaymentVO.java | 2 18 files changed, 467 insertions(+), 80 deletions(-) diff --git a/cloud-server-course/pom.xml b/cloud-server-course/pom.xml index dd0d09c..20a5b50 100644 --- a/cloud-server-course/pom.xml +++ b/cloud-server-course/pom.xml @@ -15,6 +15,12 @@ <description>课程</description> <dependencies> <dependency> + <groupId>net.sf.json-lib</groupId> + <artifactId>json-lib</artifactId> + <version>2.4</version> + <classifier>jdk15</classifier> + </dependency> + <dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper</artifactId> <version>5.2.1</version> diff --git a/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentConfigController.java b/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentConfigController.java index f21af93..b1482d2 100644 --- a/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentConfigController.java +++ b/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentConfigController.java @@ -55,6 +55,19 @@ public List<CoursePackagePaymentConfig> queryCoursePackagePaymentConfigList(@RequestBody Integer coursePackageId) { return coursePackagePaymentConfigService.list(new QueryWrapper<CoursePackagePaymentConfig>().eq("coursePackageId", coursePackageId)); } + /** + * 根据课时规格id获取价格配置 + * + * @param + * @return + */ + @ResponseBody + @PostMapping("/coursePackagePaymentConfig/queryCoursePackagePaymentConfigList1") + public List<CoursePackagePaymentConfig> queryCoursePackagePaymentConfigList1(@RequestBody Integer coursePackagePaymentConfigId) { + return coursePackagePaymentConfigService. + list(new QueryWrapper<CoursePackagePaymentConfig>() + .eq("id", coursePackagePaymentConfigId)); + } /** 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 2097da1..7831e10 100644 --- a/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java +++ b/cloud-server-course/src/main/java/com/dsh/course/controller/CoursePackagePaymentController.java @@ -16,6 +16,7 @@ import com.dsh.course.feignclient.other.StoreClient; import com.dsh.course.feignclient.other.model.Store; import com.dsh.course.mapper.CoursePackageSchedulingMapper; +import com.dsh.course.mapper.CoursePackageStudentMapper; import com.dsh.course.mapper.TCoursePackageMapper; import com.dsh.course.model.*; import com.dsh.course.model.dto.DiscountJsonDto; @@ -31,6 +32,7 @@ import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; +import net.sf.json.JSONObject; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.BeanUtils; @@ -60,6 +62,8 @@ @Autowired private TCoursePackagePaymentService packagePaymentService; + @Resource + private CoursePackageStudentMapper cpsMapper; @Autowired private ICoursePackageOrderService coursePackageOrderService; @@ -161,17 +165,15 @@ */ @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.getId()); + 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())); @@ -185,29 +187,9 @@ coursePackageOrder.setInsertTime(new Date()); coursePackageOrder.setSalesName(packagePayment.getSalesName()); coursePackageOrderService.save(coursePackageOrder); - TCoursePackage byId = coursePackageService.getById(packagePayment.getCoursePackageId()); - if (byId.getType()==1){ - CoursePackageOrderStudent coursePackageOrderStudent = new CoursePackageOrderStudent(); - coursePackageOrderStudent.setAppUserId(packagePayment.getAppUserId()); - coursePackageOrderStudent.setStudentId(packagePayment.getStudentId()); - coursePackageOrderStudent.setCoursePackageId(packagePayment.getCoursePackageId()); - coursePackageOrderStudent.setTotalClassHours(packagePayment.getClassHours()); - coursePackageOrderStudent.setLaveClassHours(packagePayment.getClassHours()); - coursePackageOrderStudent.setAbsencesNumber(0); - coursePackageOrderStudent.setDropoutsNumber(0); - coursePackageOrderStudent.setStatus(1); - coursePackageOrderStudent.setState(1); - coursePackageOrderStudent.setInsertTime(new Date()); - coursePackageOrderStudent.setGiftClassHours(packagePayment.getGiftClassHours()); - // 获取常规课的有效期 计算是哪一天 - Calendar calendar = Calendar.getInstance(); - calendar.add(Calendar.DAY_OF_MONTH, byId.getValidDays()); - Date time = calendar.getTime(); - coursePackageOrderStudent.setUseTime(time); - return coursePackageOrderStudentService.save(coursePackageOrderStudent); - } + // 生成排课数据 - return null; + return 200; } @@ -218,13 +200,95 @@ */ @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); + 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()); + + coursePackageOrderStudentService.saveOrUpdate(coursePackageOrderStudent); + Integer studentId = Integer.valueOf(byId1.getStudentIds()); + //开始排课 + addPackageStudent1(byId, byId1.getAppUserId(), studentId, 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); + 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); + coursePackageOrderStudentService.saveOrUpdate(coursePackageOrderStudent); + Integer studentId = Integer.valueOf(byId1.getStudentIds()); + //中间断课,没有连续续费的情况需要重新排课 + if (useTime.compareTo(new Date()) < 0) { + addPackageStudent1(byId, byId1.getAppUserId(), studentId, coursePackageOrderStudent); + } + } + } return packagePaymentService.changeState(dto); } @GetMapping("/coursePackagePayment/courseStore/{appUserId}/{coursePackageId}") - public List<TCoursePackagePayment> getByUserIdAndCoursePackageId(@PathVariable("appUserId") Integer appUserId, @PathVariable("coursePackageId") Integer coursePackageId) { - List<TCoursePackagePayment> list = packagePaymentService.list(new QueryWrapper<TCoursePackagePayment>() + public List<CoursePackageOrderStudent> getByUserIdAndCoursePackageId(@PathVariable("appUserId") Integer appUserId, @PathVariable("coursePackageId") Integer coursePackageId) { + List<CoursePackageOrderStudent> list = coursePackageOrderStudentService.list(new QueryWrapper<CoursePackageOrderStudent>() .eq("appUserId", appUserId) .eq("coursePackageId", coursePackageId)); return list; @@ -245,11 +309,21 @@ re.setCashPayment(new BigDecimal(value)); } } - Store store = storeClient.queryStoreById(re.getStoreId()); TAppUser appUser = appUserClient.queryAppUser1(re.getAppUserId()); - Student student = studentClient.queryStudentById(re.getStudentId()); - re.setPayStudent(student.getName()); + String studentId = re.getStudentId(); + String[] split = studentId.split(","); + StringBuilder stringBuilder = new StringBuilder(""); + + for (String s : split) { + Student student = studentClient.queryStudentById(Integer.valueOf(s)); + stringBuilder.append(student.getName()+","); + } + String string = stringBuilder.toString(); + if (string.length() > 0) { + String stringWithoutLastCharacter = string.substring(0, string.length() - 1); + re.setPayStudent(stringWithoutLastCharacter); + } re.setPayUser(appUser.getName()); re.setPhone(appUser.getPhone()); re.setStoreName(store.getName()); @@ -262,7 +336,7 @@ } else { List<Student> students = studentClient.queryStudentListByName(query.getPayStudent()); for (Student student1 : students) { - if (student.getName().equals(student1.getName())) { + if (string.contains(student1.getName())) { result.add(re); } } @@ -270,7 +344,6 @@ } } } - if (re.getPayType() != null) { if (re.getPayType() == 1) { re.setBuyTypeName("微信支付"); @@ -1717,9 +1790,208 @@ return dateList.toArray(new Date[0]); } + public Integer getGiftClassHours(TCoursePackageDiscount one){ + // 判断购买时间 是否满足折扣规则 + 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, 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, Long paymentId) throws ParseException { // 课包 TCoursePackage tCoursePackage = coursePackageService.getById(courseId); @@ -1855,8 +2127,6 @@ } } } - - // 2.0 TCourseInfoRecord tCourseInfoRecord = new TCourseInfoRecord(); tCourseInfoRecord.setUserId(userId); @@ -1866,8 +2136,6 @@ tCourseInfoRecord.setTime(new Date()); tCourseInfoRecord.setType(2); appUserClient.addCourseInfoRecord(tCourseInfoRecord); - - } @ResponseBody diff --git a/cloud-server-course/src/main/java/com/dsh/course/entity/TCoursePackagePayment.java b/cloud-server-course/src/main/java/com/dsh/course/entity/TCoursePackagePayment.java index 1174608..bae2cab 100644 --- a/cloud-server-course/src/main/java/com/dsh/course/entity/TCoursePackagePayment.java +++ b/cloud-server-course/src/main/java/com/dsh/course/entity/TCoursePackagePayment.java @@ -194,4 +194,6 @@ private Integer orderId; @TableField("giftClassHours") private Integer giftClassHours; + // 所选课时规格id + private Integer coursePackageConfigId; } diff --git a/cloud-server-course/src/main/java/com/dsh/course/mapper/CoursePackagePaymentConfigMapper.java b/cloud-server-course/src/main/java/com/dsh/course/mapper/CoursePackagePaymentConfigMapper.java index bddf0c5..6d3ba0b 100644 --- a/cloud-server-course/src/main/java/com/dsh/course/mapper/CoursePackagePaymentConfigMapper.java +++ b/cloud-server-course/src/main/java/com/dsh/course/mapper/CoursePackagePaymentConfigMapper.java @@ -15,7 +15,7 @@ public interface CoursePackagePaymentConfigMapper extends BaseMapper<CoursePackagePaymentConfig> { List<CoursePackagePaymentVO> listAll(@Param("query") CoursePackagePaymentQuery query); - int changeState(@Param("ids") List<Long> ids, @Param("payUserName") String payUserName, @Param("payUserId") Integer payUserId); + int changeState(@Param("ids") Long ids, @Param("payUserName") String payUserName, @Param("payUserId") Integer payUserId); List<RegisterOrderVO> listAllRegister(@Param("query") RegisterOrderQuery query, @Param("sTime") String sTime, @Param("eTime") String eTime, @Param("amount") BigDecimal amount); diff --git a/cloud-server-course/src/main/java/com/dsh/course/model/CoursePackagePayDTO.java b/cloud-server-course/src/main/java/com/dsh/course/model/CoursePackagePayDTO.java index bd6b0e5..1559c5c 100644 --- a/cloud-server-course/src/main/java/com/dsh/course/model/CoursePackagePayDTO.java +++ b/cloud-server-course/src/main/java/com/dsh/course/model/CoursePackagePayDTO.java @@ -9,7 +9,7 @@ */ @Data public class CoursePackagePayDTO { - private List<String> ids; + private String ids; private String payUserName; // 操作人id private Integer userId; diff --git a/cloud-server-course/src/main/java/com/dsh/course/model/CoursePackagePaymentVO.java b/cloud-server-course/src/main/java/com/dsh/course/model/CoursePackagePaymentVO.java index 55a9003..d0080af 100644 --- a/cloud-server-course/src/main/java/com/dsh/course/model/CoursePackagePaymentVO.java +++ b/cloud-server-course/src/main/java/com/dsh/course/model/CoursePackagePaymentVO.java @@ -43,7 +43,7 @@ private String payUser; private String phone; // 学员id - private Integer studentId; + private String studentId; private String payStudent; private Integer payType; private BigDecimal originalPrice; diff --git a/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java b/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java index 624cee3..de2b00e 100644 --- a/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java +++ b/cloud-server-course/src/main/java/com/dsh/course/service/impl/TCoursePackagePaymentServiceImpl.java @@ -130,13 +130,8 @@ @Override public int changeState(CoursePackagePayDTO dto) { - List<String> ids = dto.getIds(); - List<Long> list = new ArrayList<>(); - for (String id : ids) { - long value = Long.parseLong(id); - list.add(value); - } - return cpConfigMapper.changeState(list, dto.getPayUserName(), dto.getUserId()); + + return cpConfigMapper.changeState(Long.valueOf(dto.getIds()), dto.getPayUserName(), dto.getUserId()); } @Override diff --git a/cloud-server-course/src/main/resources/mapper/CoursePackagePaymentConfigMapper.xml b/cloud-server-course/src/main/resources/mapper/CoursePackagePaymentConfigMapper.xml index 3d9fe23..cce8880 100644 --- a/cloud-server-course/src/main/resources/mapper/CoursePackagePaymentConfigMapper.xml +++ b/cloud-server-course/src/main/resources/mapper/CoursePackagePaymentConfigMapper.xml @@ -12,25 +12,23 @@ <result column="playPaiCoin" property="playPaiCoin"/> </resultMap> <update id="changeState"> - update t_course_package_payment set - payStatus = 2,payUserName = #{payUserName},payType = 7,payUserId=#{payUserId} + update t_course_package_order set + payStatus = 2,payUserName = #{payUserName},payType = 7,payUserId=#{payUserId}, + payUserType = 2 <where> - <if test="ids != null and ids.size()>0"> - AND t_course_package_payment.id IN - <foreach collection="ids" separator="," item="id" open="(" close=")"> - #{id} - </foreach> + <if test="ids!=null and ids!= ''"> + and t_course_package_order.id = #{ids} </if> </where> </update> <select id="listAll" resultType="com.dsh.course.model.CoursePackagePaymentVO"> select - t1.id,t1.studentId,t1.payUserType,t1.payStatus,t1.payType,t1.originalPrice,t1.userCouponId,t1.payUserId,t1.giftClassHours,t1.studentId,t1.appUserId,t1.cashPayment,t1.playPaiCoin, + t1.id,t1.payUserType,t1.payStatus,t1.payType,t1.originalPrice,t1.userCouponId,t1.payUserId,t1.studentIds as studentId,t1.appUserId,t1.cashPayment,t1.playPaiCoin, t1.payUserName as buyTypeName, CONCAT(t2.province,t2.city) as provinceAndCity,t2.coursePackageTypeId,t2.storeId,t2.name as coursePackage, t3.name as coursePackageType - from t_course_package_payment t1 + from t_course_package_order t1 left join t_course_package t2 on t1.coursePackageId = t2.id left join t_course_package_type t3 on t2.coursePackageTypeId = t3.id <where> diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CoursePackagePaymentClient.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CoursePackagePaymentClient.java index 5c5d4e3..ebe104f 100644 --- a/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CoursePackagePaymentClient.java +++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CoursePackagePaymentClient.java @@ -1,12 +1,10 @@ package com.dsh.course.feignClient.course; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.dsh.course.feignClient.course.model.QueryRegistrationRecord; -import com.dsh.course.feignClient.course.model.QueryWalkInStudentList; -import com.dsh.course.feignClient.course.model.TCoursePackage; +import com.dsh.course.feignClient.course.model.*; import com.dsh.course.feignClient.course.model.TCoursePackagePayment; import com.dsh.guns.modular.system.model.*; -import com.dsh.guns.modular.system.model.dto.CoursePackage; + import com.dsh.guns.modular.system.util.ResultUtil; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.*; @@ -112,5 +110,6 @@ HashMap<String, Object> courseStore(@RequestBody List<Integer> userPt); @GetMapping("/coursePackagePayment/courseStore/{appUserId}/{coursePackageId}") - List<TCoursePackagePayment> getByUserIdAndCoursePackageId(@PathVariable("appUserId") Integer appUserId,@PathVariable("coursePackageId") Integer coursePackageId); + List<CoursePackageOrderStudent> getByUserIdAndCoursePackageId + (@PathVariable("appUserId") Integer appUserId, @PathVariable("coursePackageId") Integer coursePackageId); } diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CoursePackagePaymentConfigClient.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CoursePackagePaymentConfigClient.java index 8318f02..1c36fca 100644 --- a/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CoursePackagePaymentConfigClient.java +++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/CoursePackagePaymentConfigClient.java @@ -37,6 +37,13 @@ */ @PostMapping("/coursePackagePaymentConfig/queryCoursePackagePaymentConfigList") List<CoursePackagePaymentConfig> queryCoursePackagePaymentConfigList(Integer coursePackageId); + /** + * 根据课包id获取价格配置 + * @param + * @return + */ + @PostMapping("/coursePackagePaymentConfig/queryCoursePackagePaymentConfigList1") + List<CoursePackagePaymentConfig> queryCoursePackagePaymentConfigList1(Integer coursePackagePaymentConfigId); /** diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/model/CoursePackageOrderStudent.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/model/CoursePackageOrderStudent.java new file mode 100644 index 0000000..b5f4377 --- /dev/null +++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/course/model/CoursePackageOrderStudent.java @@ -0,0 +1,96 @@ +package com.dsh.course.feignClient.course.model; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import java.util.Date; + +/** + * @author zhibing.pu + * @Date 2023/11/25 11:59 + */ +@Data +@TableName("t_course_package_order_student") +public class CoursePackageOrderStudent { + /** + * 主键 + */ + @TableId(value = "id", type = IdType.AUTO) + private Long id; + /** + * 用户id + */ + @TableField("appUserId") + private Integer appUserId; + /** + * 学员id + */ + @TableField("studentId") + private Integer studentId; + /** + * 课包id + */ + @TableField("coursePackageId") + private Integer coursePackageId; + /** + * 总课时 + */ + @TableField("totalClassHours") + private Integer totalClassHours; + /** + * 剩余课时 + */ + @TableField("laveClassHours") + private Integer laveClassHours; + /** + * 缺课次数 + */ + @TableField("absencesNumber") + private Integer absencesNumber; + /** + * 退课课时 + */ + @TableField(exist = false) + private Integer dropoutsNumber; + /** + * 课程状态(1=正常,2=已退课) + */ + @TableField("status") + private Integer status; + /** + * 退课时间 + */ + @TableField("withdrawalTime") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date withdrawalTime; + /** + * 退课凭证 + */ + @TableField("certificate") + private String certificate; + /** + * 状态(1=正常,2=冻结,3=删除) + */ + @TableField("state") + private Integer state; + /** + * 添加时间 + */ + @TableField("insertTime") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date insertTime; + /** + * 赠送课时 + */ + @TableField("giftClassHours") + private Integer giftClassHours; + /** + * 课程有效期 + */ + @TableField("useTime") + private Date useTime; +} diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/CoursePackagePaymentController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/CoursePackagePaymentController.java index 5b6bc0a..9b70316 100644 --- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/CoursePackagePaymentController.java +++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/CoursePackagePaymentController.java @@ -135,6 +135,7 @@ for (TCoursePackageDiscount tCoursePackageDiscount : tCoursePackageDiscounts) { char c = tCoursePackageDiscount.getContent().charAt(0); String value1 = String.valueOf(c); + JSONObject jsonObject ; if (value1.equals("[")){ jsonObject = JSONObject.fromObject(tCoursePackageDiscount.getContent() @@ -142,10 +143,10 @@ }else{ jsonObject = JSONObject.fromObject(tCoursePackageDiscount.getContent()); } - // 获取当前课包价格配置 - Integer coursePackageId1 = tCoursePackagePayment.getCoursePackageId(); - List<CoursePackagePaymentConfig> coursePackagePaymentConfigs = coursePackagePaymentConfigClient.queryCoursePackagePaymentConfigList(coursePackageId1); - + // 获取所选课时的课包价格配置 + List<CoursePackagePaymentConfig> coursePackagePaymentConfigs = + coursePackagePaymentConfigClient.queryCoursePackagePaymentConfigList1 + (tCoursePackagePayment.getCoursePackageConfigId()); if (coursePackagePaymentConfigs.size()!=0){ CoursePackagePaymentConfig coursePackagePaymentConfig = coursePackagePaymentConfigs.get(0); tCoursePackagePayment.setOriginalPrice(coursePackagePaymentConfig.getCashPayment()); @@ -174,7 +175,9 @@ break; case 2: // 判断当前用户是否已经购买过当前课包 - List<com.dsh.course.feignClient.course.model.TCoursePackagePayment> result= coursePackagePaymentClient.getByUserIdAndCoursePackageId(tCoursePackagePayment.getAppUserId(),tCoursePackagePayment.getCoursePackageId()); + List<CoursePackageOrderStudent> result= + coursePackagePaymentClient.getByUserIdAndCoursePackageId(tCoursePackagePayment.getAppUserId(), + tCoursePackagePayment.getCoursePackageId()); // 已经购买了 if (result.size()!=0){ // 会员续课折扣 diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/CoursePackagePayDTO.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/CoursePackagePayDTO.java index f096587..28b00b3 100644 --- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/CoursePackagePayDTO.java +++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/CoursePackagePayDTO.java @@ -9,7 +9,7 @@ */ @Data public class CoursePackagePayDTO { - private List<String> ids; + private String ids; private String payUserName; // 操作人id private Integer userId; diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/CoursePackagePaymentVO.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/CoursePackagePaymentVO.java index be14510..a24303a 100644 --- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/CoursePackagePaymentVO.java +++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/CoursePackagePaymentVO.java @@ -45,7 +45,7 @@ private String payUser; private String phone; // 学员id - private Integer studentId; + private String studentId; private String payStudent; private Integer payType; diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/TCoursePackagePayment.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/TCoursePackagePayment.java index 58a1646..f6bfdc0 100644 --- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/TCoursePackagePayment.java +++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/model/TCoursePackagePayment.java @@ -174,4 +174,6 @@ private Integer hasHours; private BigDecimal laveCashPayment; private BigDecimal cashPayment1; + // 所选课时规格id + private Integer coursePackageConfigId; } diff --git a/cloud-server-management/src/main/webapp/static/modular/system/cpPayment/cpPayment.js b/cloud-server-management/src/main/webapp/static/modular/system/cpPayment/cpPayment.js index aadbb71..c9f6f43 100644 --- a/cloud-server-management/src/main/webapp/static/modular/system/cpPayment/cpPayment.js +++ b/cloud-server-management/src/main/webapp/static/modular/system/cpPayment/cpPayment.js @@ -14,7 +14,7 @@ */ TQuestion.initColumn = function () { return [ - {field: 'selectItem', checkbox: true}, + {field: 'selectItem', radio: true}, {title: '序号', field: 'id', visible: true, align: 'center', valign: 'middle'}, {title: '所在省市', field: 'provinceAndCity', visible: role==1?true:false, align: 'center', valign: 'middle'}, {title: '门店名称', field: 'storeName', visible: true, align: 'center', valign: 'middle'}, @@ -538,23 +538,16 @@ TQuestion.unfreeze = function () { if (this.check()) { var selected = $('#' + this.id).bootstrapTable('getSelections'); - console.log("看看选择") console.log(selected) const data1 = { - ids:[], + ids:TQuestion.seItem.id, payUserName:"" }; - selected.forEach(function(obj) { - if (obj.payStatus == 2){ - Feng.error("订单已支付!不能再手动支付了") - return; - } - var id = ""; - id = obj.id; - console.log(obj.id); - data1.ids.push(id); - }); + if (TQuestion.seItem.payStatus == 2){ + Feng.error("订单已支付!不能再手动支付了") + return; + } console.log(data1) $.ajax({ url: Feng.ctxPath + "/cpPayment/pay", diff --git a/cloud-server-management/src/main/webapp/static/modular/system/cpPayment/cpPayment_info.js b/cloud-server-management/src/main/webapp/static/modular/system/cpPayment/cpPayment_info.js index 53fc429..155328e 100644 --- a/cloud-server-management/src/main/webapp/static/modular/system/cpPayment/cpPayment_info.js +++ b/cloud-server-management/src/main/webapp/static/modular/system/cpPayment/cpPayment_info.js @@ -260,8 +260,12 @@ giftClassHours:null, useTime:"", payUserName:"", + coursePackageConfigId:null }; data.appUserId = appUserId; + console.log("我看看规格id") + console.log($("#courseTime").val()) + data.coursePackageConfigId = $("#courseTime").val(); data.studentId = $("#student").val() data.coursePackageId = $("#coursePackageName").val() data.cashPayment = $("#cashPayment").val() @@ -312,6 +316,7 @@ var courseTimeId= $("#courseTime").val() console.log("看看课时") console.log(courseTimeId) + data.coursePackageConfigId = courseTimeId; if(typeof courseTimeId === 'undefined'){ console.log("进入") courseTimeId=0; -- Gitblit v1.7.1