From 1882d607549762a84b1a5326f7262eba01363b85 Mon Sep 17 00:00:00 2001 From: puzhibing <393733352@qq.com> Date: 星期一, 14 八月 2023 10:00:16 +0800 Subject: [PATCH] 更新课包功能 --- cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCoursePackageController.java | 581 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 577 insertions(+), 4 deletions(-) diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCoursePackageController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCoursePackageController.java index 4c8dc1a..62c7ec2 100644 --- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCoursePackageController.java +++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCoursePackageController.java @@ -1,20 +1,26 @@ package com.dsh.guns.modular.system.controller.code; +import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.dsh.course.feignClient.account.CityManagerClient; import com.dsh.course.feignClient.account.CoachClient; import com.dsh.course.feignClient.account.model.CityManager; import com.dsh.course.feignClient.account.model.Coach; +import com.dsh.course.feignClient.course.CoursePackageClient; +import com.dsh.course.feignClient.course.CoursePackageDiscountClient; +import com.dsh.course.feignClient.course.CoursePackagePaymentConfigClient; import com.dsh.course.feignClient.course.CoursePackageTypeClient; -import com.dsh.course.feignClient.course.model.TCoursePackageType; +import com.dsh.course.feignClient.course.model.*; import com.dsh.guns.config.UserExt; import com.dsh.guns.core.base.controller.BaseController; +import com.dsh.guns.core.util.ToolUtil; import com.dsh.guns.modular.system.model.TSite; import com.dsh.guns.modular.system.model.TStore; import com.dsh.guns.modular.system.service.ICoursePackageService; import com.dsh.guns.modular.system.service.IStoreService; import com.dsh.guns.modular.system.service.ITSiteService; +import com.dsh.guns.modular.system.util.ResultUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; @@ -24,8 +30,7 @@ import org.springframework.web.bind.annotation.ResponseBody; import javax.annotation.Resource; -import java.util.List; -import java.util.Map; +import java.util.*; /** * @author zhibing.pu @@ -55,6 +60,15 @@ @Resource private CoachClient coachClient; + @Resource + private CoursePackagePaymentConfigClient coursePackagePaymentConfigClient; + + @Resource + private CoursePackageDiscountClient coursePackageDiscountClient; + + @Resource + private CoursePackageClient coursePackageClient; + @@ -82,7 +96,11 @@ } - + /** + * 跳转到添加页 + * @param model + * @return + */ @GetMapping("/openAddCoursePackage") public String openAddCoursePackage(Model model){ Integer objectType = UserExt.getUser().getObjectType(); @@ -111,6 +129,264 @@ } + /** + * 跳转到编辑页 + * @param model + * @param id + * @return + */ + @GetMapping("/openEditCoursePackage") + public String openEditCoursePackage(Model model, Integer id){ + TCoursePackage tCoursePackage = coursePackageService.queryById(id); + model.addAttribute("item", tCoursePackage); + model.addAttribute("classTime", tCoursePackage.getClassStartTime() + ":00 - " + tCoursePackage.getClassEndTime() + ":00"); + String[] split = tCoursePackage.getClassWeeks().split(";"); + List<String> list5 = Arrays.asList("周一", "周二", "周三", "周四", "周五", "周六", "周日"); + List<Map<String, Object>> classWeeks = new ArrayList<>(); + for (String s : list5) { + Map<String, Object> map = new HashMap<>(); + map.put("value", s); + map.put("checked", false); + for (String s1 : split) { + if(s.equals(s1)){ + map.put("checked", true); + } + } + classWeeks.add(map); + } + model.addAttribute("classWeeks", classWeeks); + List<TCoursePackageType> tCoursePackageTypes = coursePackageTypeClient.queryAllCoursePackageType(); + model.addAttribute("coursePackageType", tCoursePackageTypes); + String cityCode = tCoursePackage.getCityCode(); + String provinceCode = tCoursePackage.getProvinceCode(); + List<Map<String, Object>> list = storeService.queryProvince(cityCode); + model.addAttribute("province", list); + List<Map<String, Object>> list1 = storeService.queryCity(provinceCode, cityCode); + model.addAttribute("city", list1); + List<TStore> list2 = storeService.list(new QueryWrapper<TStore>().eq("cityCode", cityCode).eq("state", 1)); + model.addAttribute("store", list2); + List<TSite> list3 = siteService.list(new QueryWrapper<TSite>().eq("storeId", tCoursePackage.getStoreId()).eq("state", 1)); + model.addAttribute("site", list3); + List<Coach> coaches = coachClient.queryCoachByCity(cityCode); + model.addAttribute("coach", coaches); + List<CoursePackagePaymentConfig> list4 = coursePackagePaymentConfigClient.queryCoursePackagePaymentConfigList(id); + model.addAttribute("coursePackagePaymentConfig", list4.remove(0)); + model.addAttribute("coursePackagePaymentConfigs", list4); + CoursePackagePaymentConfig coursePackagePaymentConfig = list4.get(0); + model.addAttribute("cashPayment", coursePackagePaymentConfig.getCashPayment() == 0 ? false : true); + model.addAttribute("playPaiCoin", coursePackagePaymentConfig.getPlayPaiCoin() == 0 ? false : true); + return PREFIX + "coursePackage_edit.html"; + } + + + /** + * 跳转详情页 + * @param model + * @param id + * @return + */ + @GetMapping("/showCoursePackageDetails") + public String showCoursePackageDetails(Model model, Integer id){ + TCoursePackage tCoursePackage = coursePackageService.queryById(id); + model.addAttribute("item", tCoursePackage); + model.addAttribute("classTime", tCoursePackage.getClassStartTime() + ":00 - " + tCoursePackage.getClassEndTime() + ":00"); + String[] split = tCoursePackage.getClassWeeks().split(";"); + List<String> list5 = Arrays.asList("周一", "周二", "周三", "周四", "周五", "周六", "周日"); + List<Map<String, Object>> classWeeks = new ArrayList<>(); + for (String s : list5) { + Map<String, Object> map = new HashMap<>(); + map.put("value", s); + map.put("checked", false); + for (String s1 : split) { + if(s.equals(s1)){ + map.put("checked", true); + } + } + classWeeks.add(map); + } + model.addAttribute("classWeeks", classWeeks); + List<TCoursePackageType> tCoursePackageTypes = coursePackageTypeClient.queryAllCoursePackageType(); + model.addAttribute("coursePackageType", tCoursePackageTypes); + String cityCode = tCoursePackage.getCityCode(); + String provinceCode = tCoursePackage.getProvinceCode(); + List<Map<String, Object>> list = storeService.queryProvince(cityCode); + model.addAttribute("province", list); + List<Map<String, Object>> list1 = storeService.queryCity(provinceCode, cityCode); + model.addAttribute("city", list1); + List<TStore> list2 = storeService.list(new QueryWrapper<TStore>().eq("cityCode", cityCode).eq("state", 1)); + model.addAttribute("store", list2); + List<TSite> list3 = siteService.list(new QueryWrapper<TSite>().eq("storeId", tCoursePackage.getStoreId()).eq("state", 1)); + model.addAttribute("site", list3); + List<Coach> coaches = coachClient.queryCoachByCity(cityCode); + model.addAttribute("coach", coaches); + List<CoursePackagePaymentConfig> list4 = coursePackagePaymentConfigClient.queryCoursePackagePaymentConfigList(id); + model.addAttribute("coursePackagePaymentConfig", list4.remove(0)); + model.addAttribute("coursePackagePaymentConfigs", list4); + CoursePackagePaymentConfig coursePackagePaymentConfig = list4.get(0); + model.addAttribute("cashPayment", coursePackagePaymentConfig.getCashPayment() == 0 ? false : true); + model.addAttribute("playPaiCoin", coursePackagePaymentConfig.getPlayPaiCoin() == 0 ? false : true); + return PREFIX + "coursePackage_info.html"; + } + + + /** + * 跳转到折扣页 + * @param model + * @param id + * @return + */ + @GetMapping("/showCoursePackageDiscount") + public String showCoursePackageDiscount(Model model, Integer id){ + TCoursePackage tCoursePackage = coursePackageService.queryById(id); + model.addAttribute("item", tCoursePackage); + List<CoursePackagePaymentConfig> list4 = coursePackagePaymentConfigClient.queryCoursePackagePaymentConfigList(id); + List<Map<String, Object>> list = new ArrayList<>(); + for (CoursePackagePaymentConfig coursePackagePaymentConfig : list4) { + if(coursePackagePaymentConfig.getCashPayment() == 0){ + continue; + } + Map<String, Object> map = new HashMap<>(); + map.put("coursePackagePaymentConfigId", coursePackagePaymentConfig.getId()); + map.put("classHours", coursePackagePaymentConfig.getClassHours()); + String payment = ""; + if(coursePackagePaymentConfig.getCashPayment() > 0){ + payment += "现金支付"; + } + if(coursePackagePaymentConfig.getPlayPaiCoin() > 0){ + payment += (ToolUtil.isNotEmpty(payment) ? "、" : "") + "玩湃币支付"; + } + map.put("payment", payment); + map.put("cashPayment", coursePackagePaymentConfig.getCashPayment()); + List<TCoursePackageDiscount> tCoursePackageDiscounts = coursePackageDiscountClient.queryCoursePackageDiscount(coursePackagePaymentConfig.getId()); + map.put("coursePackageDiscount", tCoursePackageDiscounts); + list.add(map); + } + model.addAttribute("coursePackagePaymentConfig", JSON.toJSONString(list)); + return PREFIX + "coursePackageDiscount.html"; + } + + + /** + * 跳转到报名列表页 + * @param model + * @param id + * @return + */ + @GetMapping("/registrationRecord") + public String registrationRecord(Model model, Integer id){ + TCoursePackage tCoursePackage = coursePackageService.queryById(id); + model.addAttribute("item", tCoursePackage); + return PREFIX + "registrationRecord.html"; + } + + + /** + * 跳转到上课记录列表页 + * @param model + * @param id + * @return + */ + @GetMapping("/openClassRecord") + public String openClassRecord(Model model, Integer id){ + TCoursePackage tCoursePackage = coursePackageClient.queryById(id); + TStore store = storeService.getById(tCoursePackage.getStoreId()); + Coach coach = coachClient.queryCoachById(tCoursePackage.getCoachId()); + model.addAttribute("item", tCoursePackage); + model.addAttribute("store", store); + model.addAttribute("coach", coach); + return PREFIX + "classRecord.html"; + } + + + /** + * 跳转到查看学员列表 + * @param model + * @param id + * @return + */ + @GetMapping("/openCoursePackageStudent") + public String openCoursePackageStudent(Model model, Long id){ + model.addAttribute("id", id); + return PREFIX + "coursePackageStudent.html"; + } + + + /** + * 跳转到手动预约列表 + * @param model + * @param id + * @return + */ + @GetMapping("/openManualReservation") + public String openManualReservation(Model model, Long id){ + model.addAttribute("id", id); + return PREFIX + "manualReservation.html"; + } + + + /** + * 跳转到课包审核列表页 + * @return + */ + @GetMapping("/examineCoursePackage") + public String examineCoursePackage(Model model){ + List<TCoursePackageType> tCoursePackageTypes = coursePackageTypeClient.queryAllCoursePackageType(); + model.addAttribute("coursePackageType", tCoursePackageTypes); + List<Map<String, Object>> list = storeService.queryProvince(null); + model.addAttribute("province", list); + return PREFIX + "examineCoursePackage.html"; + } + + + /** + * 跳转到审核详情页 + * @param model + * @param id + * @return + */ + @GetMapping("/showExamineCoursePackageDetails") + public String showExamineCoursePackageDetails(Model model, Integer id){ + TCoursePackage tCoursePackage = coursePackageService.queryById(id); + model.addAttribute("item", tCoursePackage); + model.addAttribute("classTime", tCoursePackage.getClassStartTime() + ":00 - " + tCoursePackage.getClassEndTime() + ":00"); + String[] split = tCoursePackage.getClassWeeks().split(";"); + List<String> list5 = Arrays.asList("周一", "周二", "周三", "周四", "周五", "周六", "周日"); + List<Map<String, Object>> classWeeks = new ArrayList<>(); + for (String s : list5) { + Map<String, Object> map = new HashMap<>(); + map.put("value", s); + map.put("checked", false); + for (String s1 : split) { + if(s.equals(s1)){ + map.put("checked", true); + } + } + classWeeks.add(map); + } + model.addAttribute("classWeeks", classWeeks); + List<TCoursePackageType> tCoursePackageTypes = coursePackageTypeClient.queryAllCoursePackageType(); + model.addAttribute("coursePackageType", tCoursePackageTypes); + String cityCode = tCoursePackage.getCityCode(); + String provinceCode = tCoursePackage.getProvinceCode(); + List<Map<String, Object>> list = storeService.queryProvince(cityCode); + model.addAttribute("province", list); + List<Map<String, Object>> list1 = storeService.queryCity(provinceCode, cityCode); + model.addAttribute("city", list1); + List<TStore> list2 = storeService.list(new QueryWrapper<TStore>().eq("cityCode", cityCode).eq("state", 1)); + model.addAttribute("store", list2); + List<TSite> list3 = siteService.list(new QueryWrapper<TSite>().eq("storeId", tCoursePackage.getStoreId()).eq("state", 1)); + model.addAttribute("site", list3); + List<Coach> coaches = coachClient.queryCoachByCity(cityCode); + model.addAttribute("coach", coaches); + List<CoursePackagePaymentConfig> list4 = coursePackagePaymentConfigClient.queryCoursePackagePaymentConfigList(id); + model.addAttribute("coursePackagePaymentConfig", list4.remove(0)); + model.addAttribute("coursePackagePaymentConfigs", list4); + CoursePackagePaymentConfig coursePackagePaymentConfig = list4.get(0); + model.addAttribute("cashPayment", coursePackagePaymentConfig.getCashPayment() == 0 ? false : true); + model.addAttribute("playPaiCoin", coursePackagePaymentConfig.getPlayPaiCoin() == 0 ? false : true); + return PREFIX + "examineCoursePackage_info.html"; + } + @@ -131,6 +407,44 @@ } return storeService.queryCity(code, cityCode); } + + + /** + * 根据城市code获取门店 + * @param cityCode + * @return + */ + @ResponseBody + @PostMapping("/queryStore") + public List<TStore> queryStore(String cityCode){ + List<TStore> list = storeService.list(new QueryWrapper<TStore>().eq("cityCode", cityCode).eq("state", 1)); + return list; + } + + /** + * 根据门店id获取场地 + * @param storeId + * @return + */ + @ResponseBody + @PostMapping("/querySite") + public List<TSite> querySite(Integer storeId){ + List<TSite> list = siteService.list(new QueryWrapper<TSite>().eq("storeId", storeId).eq("state", 1)); + return list; + } + + /** + * 获取城市教练 + * @param cityCode + * @return + */ + @ResponseBody + @PostMapping("/queryCoach") + public List<Coach> queryCoach(String cityCode){ + List<Coach> coaches = coachClient.queryCoachByCity(cityCode); + return coaches; + } + /** @@ -162,7 +476,266 @@ } + /** + * 添加课包数据 + * @param coursePackage + * @param coursePackagePaymentConfig + * @return + */ + @ResponseBody + @PostMapping("/addCoursePackage") + public ResultUtil addCoursePackage(TCoursePackage coursePackage, String coursePackagePaymentConfig){ + String classStartTime = coursePackage.getClassStartTime(); + String classEndTime = coursePackage.getClassEndTime(); + classStartTime = classStartTime.substring(0, classStartTime.lastIndexOf(":")); + classEndTime = classEndTime.substring(0, classEndTime.lastIndexOf(":")); + coursePackage.setClassStartTime(classStartTime); + coursePackage.setClassEndTime(classEndTime); + coursePackage.setAuditStatus(1); + coursePackage.setStatus(1); + coursePackage.setState(1); + coursePackage.setInsertTime(new Date()); + coursePackageService.addCoursePackage(coursePackage, coursePackagePaymentConfig); + return ResultUtil.success(); + } + /** + * 修改数据 + * @param coursePackage + * @param coursePackagePaymentConfig + * @return + */ + @ResponseBody + @PostMapping("/updateCoursePackage") + public ResultUtil updateCoursePackage(TCoursePackage coursePackage, String coursePackagePaymentConfig){ + String classStartTime = coursePackage.getClassStartTime(); + String classEndTime = coursePackage.getClassEndTime(); + classStartTime = classStartTime.substring(0, classStartTime.lastIndexOf(":")); + classEndTime = classEndTime.substring(0, classEndTime.lastIndexOf(":")); + coursePackage.setClassStartTime(classStartTime); + coursePackage.setClassEndTime(classEndTime); + coursePackageService.updateCoursePackage(coursePackage, coursePackagePaymentConfig); + return ResultUtil.success(); + } + + /** + * 修改数据状态 + * @param id + * @param state + * @return + */ + @ResponseBody + @PostMapping("/editCoursePackageState") + public ResultUtil editCoursePackageState(Integer id, Integer state){ + TCoursePackage coursePackage = new TCoursePackage(); + coursePackage.setId(id); + coursePackage.setState(state); + coursePackageService.editCoursePackageState(coursePackage); + return ResultUtil.success(); + } + + + /** + * 编辑课包折扣 + * @param json + * @return + */ + @ResponseBody + @PostMapping("/setCoursePackageDiscount") + public ResultUtil setCoursePackageDiscount(Integer id, String json){ + return coursePackageService.setCoursePackageDiscount(id, json); + } + + + /** + * 获取课包报名信息列表 + * @param id + * @param userName + * @param studentName + * @return + */ + @ResponseBody + @PostMapping("/queryRegistrationRecord") + public Object queryRegistrationRecord(Integer id, String userName, String studentName){ + Page<Map<String, Object>> mapPage = coursePackageService.queryRegistrationRecord(id, userName, studentName); + return super.packForBT(mapPage); + } + + + /** + * 获取课包排课数据 + * @param id + * @return + */ + @ResponseBody + @PostMapping("/queryClassRecord") + public Object queryClassRecord(Integer id){ + Page<Map<String, Object>> page = coursePackageService.queryCoursePackageSchedulingList(id); + return super.packForBT(page); + } + + + /** + * 根据排课id获取学员预约数据列表 + * @param id + * @param userName + * @param studentName + * @return + */ + @ResponseBody + @PostMapping("/queryCoursePackageStudentList") + public Object queryCoursePackageStudentList(Long id, String userName, String studentName){ + Page<Map<String, Object>> page = coursePackageService.queryCoursePackageStudentList(id, userName, studentName); + return super.packForBT(page); + } + + + /** + * 取消预约 + * @param id + * @return + */ + @ResponseBody + @PostMapping("/cancelReservation") + public ResultUtil cancelReservation(Long id){ + return coursePackageService.cancelReservation(id); + } + + + /** + * 修改缺席状态 + * @param id + * @return + */ + @ResponseBody + @PostMapping("/setAbsenceStatus") + public ResultUtil setAbsenceStatus(Long id){ + return coursePackageService.setAbsenceStatus(id); + } + + + /** + * 取消排课记录 + * @param id + * @return + */ + @ResponseBody + @PostMapping("/cancelClassSchedule") + public ResultUtil cancelClassSchedule(Long id){ + return coursePackageService.cancelClassSchedule(id); + } + + + /** + * 发布课后练习 + * @param id + * @param courseId + * @param integral + * @return + */ + @ResponseBody + @PostMapping("/afterClassExercises") + public ResultUtil afterClassExercises(Long id, Integer courseId, Integer integral){ + return coursePackageService.afterClassExercises(id, courseId, integral); + } + + + /** + * 添加消课凭证 + * @param id + * @param cancelClasses + * @param deductClassHour + * @return + */ + @ResponseBody + @PostMapping("/cancellationRecord") + public ResultUtil cancellationRecord(Long id, String cancelClasses, Integer deductClassHour){ + return coursePackageService.cancellationRecord(id, cancelClasses, deductClassHour); + } + + + /** + * 获取未预约排课学员列表 + * @param coursePackageSchedulingId + * @param userName + * @param studentName + * @return + */ + @ResponseBody + @PostMapping("/queryWalkInStudentList") + public Object queryWalkInStudentList(Long coursePackageSchedulingId, String userName, String studentName){ + Page<Map<String, Object>> page = coursePackageService.queryWalkInStudentList(coursePackageSchedulingId, userName, studentName); + return super.packForBT(page); + } + + + /** + * 手动预约课程 + * @param coursePackagePaymentId + * @param coursePackageSchedulingId + * @return + */ + @ResponseBody + @PostMapping("/courseReservation") + public ResultUtil courseReservation(Long coursePackagePaymentId, Long coursePackageSchedulingId){ + return coursePackageService.courseReservation(coursePackagePaymentId, coursePackageSchedulingId); + } + + + /** + * 退课操作 + * @param coursePackagePaymentId + * @param certificate + * @return + */ + @ResponseBody + @PostMapping("/dropTheClass") + public ResultUtil dropTheClass(Long coursePackagePaymentId, String certificate){ + return coursePackageService.dropTheClass(coursePackagePaymentId, certificate); + } + + + /** + * 补课操作 + * @param coursePackagePaymentId + * @return + */ + @ResponseBody + @PostMapping("/makeUpMissedLessons") + public ResultUtil makeUpMissedLessons(Long coursePackagePaymentId){ + return coursePackageService.makeUpMissedLessons(coursePackagePaymentId); + } + + + /** + * 获取课包审核列表 + * @param provinceCode + * @param cityCode + * @param coursePackageTypeId + * @param name + * @param auditStatus + * @return + */ + @ResponseBody + @PostMapping("/queryExamineCoursePackageLists") + public Object queryExamineCoursePackageLists(String provinceCode, String cityCode, Integer coursePackageTypeId, String name, Integer auditStatus){ + Page<Map<String, Object>> mapPage = coursePackageService.queryExamineCoursePackageLists(provinceCode, cityCode, coursePackageTypeId, name, auditStatus); + return super.packForBT(mapPage); + } + + + /** + * 审核课包 + * @param id + * @param auditStatus + * @param authRemark + * @return + */ + @ResponseBody + @PostMapping("/setCoursePackageAuditStatus") + public ResultUtil setCoursePackageAuditStatus(Integer id, Integer auditStatus, String authRemark){ + return coursePackageService.setCoursePackageAuditStatus(id, auditStatus, authRemark); + } } -- Gitblit v1.7.1