From 78adfdc0ecf53ac40777e097c1bbffc982029148 Mon Sep 17 00:00:00 2001 From: 15004070936 <1097449274@qq.com> Date: Thu, 30 Apr 2026 17:12:08 +0800 Subject: [PATCH] =?UTF-8?q?=E7=A7=9F=E6=88=B7=E5=95=86=E5=93=81=E4=B8=8A?= =?UTF-8?q?=E6=9E=B6=E5=95=86=E5=9F=8E=E7=94=B3=E8=AF=B7=E5=8F=8A=E5=AE=A1?= =?UTF-8?q?=E6=A0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 13 + .../listener/ImportCourseClaListener.java | 257 --------------- .../main/java/com/ruoyi/RuoYiApplication.java | 2 +- .../mall/ProductCategoryController.java | 3 +- .../mall/ProductShowController.java | 81 +++++ .../school/course/ScClaTimeController.java | 15 +- .../school/course/ScCourseClaController.java | 108 ------- .../member/ScMemberCardTypesController.java | 8 +- .../src/main/resources/application-druid.yml | 22 +- .../common/core/domain/entity/SysDept.java | 29 ++ .../ruoyi/common/db/SshContextListener.java | 7 +- .../framework/config/TenantInterceptor.java | 31 ++ .../java/com/ruoyi/mall/domain/Address.java | 2 + .../java/com/ruoyi/mall/domain/Brand.java | 3 +- .../mall/domain/OrderDeliveryHistory.java | 3 +- .../mall/domain/OrderOperateHistory.java | 2 + .../java/com/ruoyi/mall/domain/Product.java | 3 + .../ruoyi/mall/domain/ProductCategory.java | 2 + .../com/ruoyi/mall/domain/ProductShow.java | 75 +++++ .../main/java/com/ruoyi/mall/domain/Sku.java | 2 + .../ruoyi/mall/domain/vo/ProductShowVO.java | 14 + .../ruoyi/mall/mapper/ProductShowMapper.java | 19 ++ .../ruoyi/mall/service/ProductService.java | 2 + .../mall/service/ProductShowService.java | 145 +++++++++ .../ruoyi/quartz/task/ProductShowTask.java | 26 ++ .../ruoyi/school/course/domain/ScClaTime.java | 13 +- .../school/course/domain/ScClaTimeRule.java | 13 +- .../school/course/domain/ScClaTimeRuleVo.java | 7 +- .../school/course/domain/ScClaTimeVo.java | 22 +- .../ruoyi/school/course/domain/ScCourse.java | 6 +- .../school/course/domain/ScCourseCla.java | 165 ---------- .../school/course/domain/ScCourseClaVo.java | 175 ---------- .../domain/req/cla/ReqAddScCourseCla.java | 57 ---- .../course/domain/req/cla/ReqClaCount.java | 16 - .../domain/req/cla/ReqCourseClaSelect.java | 18 -- .../domain/req/cla/ReqSearchScCourseCla.java | 21 -- .../domain/req/course/ReqAddScCourse.java | 4 + .../course/domain/req/course/ReqSelect.java | 2 + .../domain/req/time/ReqSearchClaTime.java | 2 +- .../domain/resp/cla/RespClaAllDetailInfo.java | 31 -- .../domain/resp/cla/RespCourseClaInfo.java | 40 --- .../resp/cla/RespCourseClaSelectInfo.java | 27 -- .../domain/resp/course/RespSearchCourse.java | 4 + .../domain/resp/time/ClaTimeCalendarItem.java | 4 + .../course/domain/resp/time/RespClaTime.java | 1 + .../domain/resp/time/RespClaTimeCalendar.java | 2 + .../domain/resp/time/RespClaTimeRule.java | 4 +- .../course/mapper/ScClaTimeAttendMapper.java | 11 +- .../school/course/mapper/ScClaTimeMapper.java | 16 +- .../course/mapper/ScClaTimeRuleMapper.java | 8 +- .../course/mapper/ScCourseClaMapper.java | 66 ---- .../service/BusinessClaTimeRuleService.java | 37 ++- .../service/BusinessClaTimeService.java | 151 ++++++--- .../service/BusinessScCourseService.java | 23 +- .../service/BusinessScCourseTypeService.java | 2 +- .../course/service/IScClaTimeRuleService.java | 2 +- .../course/service/IScClaTimeService.java | 26 +- .../course/service/IScCourseClaService.java | 26 -- .../impl/BusinessScCourseClaService.java | 299 ------------------ .../impl/ScClaTimeRuleServiceImpl.java | 4 +- .../service/impl/ScClaTimeServiceImpl.java | 27 +- .../service/impl/ScCourseClaServiceImpl.java | 46 --- .../dashboard/service/DashboardService.java | 8 +- .../member/mapper/ScMemberCardMapper.java | 1 + .../service/ScMemberCardTypesService.java | 3 - .../service/impl/ScMemberCardServiceImpl.java | 20 +- .../impl/ScMemberCardTypesServiceImpl.java | 26 -- .../service/BusinessScStudentService.java | 1 + .../columns/impl/SysTeacherServiceImpl.java | 10 +- .../service/impl/SysDeptServiceImpl.java | 13 +- .../service/impl/SysTenantServiceImpl.java | 2 + .../service/impl/SysUserServiceImpl.java | 5 + .../mapper/mall/ProductShowMapper.xml | 55 ++++ .../school/course/ScBookCourseMapper.xml | 15 +- .../school/course/ScClaTimeAttendMapper.xml | 36 +-- .../mapper/school/course/ScClaTimeMapper.xml | 107 +++++-- .../school/course/ScClaTimeRuleMapper.xml | 42 +-- .../school/course/ScCourseClaMapper.xml | 109 ------- .../mapper/school/course/ScCourseMapper.xml | 6 +- .../resources/mapper/system/SysDeptMapper.xml | 14 +- .../mapper/system/SysTenantMapper.xml | 2 - 81 files changed, 970 insertions(+), 1757 deletions(-) delete mode 100644 ruoyi-admin/src/main/java/cn/xluobo/business/tool/impt/listener/ImportCourseClaListener.java create mode 100644 ruoyi-admin/src/main/java/com/ruoyi/web/controller/mall/ProductShowController.java delete mode 100644 ruoyi-admin/src/main/java/com/ruoyi/web/controller/school/course/ScCourseClaController.java create mode 100644 ruoyi-framework/src/main/java/com/ruoyi/framework/config/TenantInterceptor.java create mode 100644 ruoyi-system/src/main/java/com/ruoyi/mall/domain/ProductShow.java create mode 100644 ruoyi-system/src/main/java/com/ruoyi/mall/domain/vo/ProductShowVO.java create mode 100644 ruoyi-system/src/main/java/com/ruoyi/mall/mapper/ProductShowMapper.java create mode 100644 ruoyi-system/src/main/java/com/ruoyi/mall/service/ProductShowService.java create mode 100644 ruoyi-system/src/main/java/com/ruoyi/quartz/task/ProductShowTask.java delete mode 100644 ruoyi-system/src/main/java/com/ruoyi/school/course/domain/ScCourseCla.java delete mode 100644 ruoyi-system/src/main/java/com/ruoyi/school/course/domain/ScCourseClaVo.java delete mode 100644 ruoyi-system/src/main/java/com/ruoyi/school/course/domain/req/cla/ReqAddScCourseCla.java delete mode 100644 ruoyi-system/src/main/java/com/ruoyi/school/course/domain/req/cla/ReqClaCount.java delete mode 100644 ruoyi-system/src/main/java/com/ruoyi/school/course/domain/req/cla/ReqCourseClaSelect.java delete mode 100644 ruoyi-system/src/main/java/com/ruoyi/school/course/domain/req/cla/ReqSearchScCourseCla.java delete mode 100644 ruoyi-system/src/main/java/com/ruoyi/school/course/domain/resp/cla/RespClaAllDetailInfo.java delete mode 100644 ruoyi-system/src/main/java/com/ruoyi/school/course/domain/resp/cla/RespCourseClaInfo.java delete mode 100644 ruoyi-system/src/main/java/com/ruoyi/school/course/domain/resp/cla/RespCourseClaSelectInfo.java delete mode 100644 ruoyi-system/src/main/java/com/ruoyi/school/course/mapper/ScCourseClaMapper.java delete mode 100644 ruoyi-system/src/main/java/com/ruoyi/school/course/service/IScCourseClaService.java delete mode 100644 ruoyi-system/src/main/java/com/ruoyi/school/course/service/impl/BusinessScCourseClaService.java delete mode 100644 ruoyi-system/src/main/java/com/ruoyi/school/course/service/impl/ScCourseClaServiceImpl.java create mode 100644 ruoyi-system/src/main/resources/mapper/mall/ProductShowMapper.xml delete mode 100644 ruoyi-system/src/main/resources/mapper/school/course/ScCourseClaMapper.xml diff --git a/pom.xml b/pom.xml index 4d3be18..7fea9ab 100644 --- a/pom.xml +++ b/pom.xml @@ -33,6 +33,8 @@ 0.9.1 1.16.20 3.4.0 + 3.6.1 + 4.1.0 2.0.23 @@ -268,6 +270,17 @@ mybatis-plus-boot-starter ${mybatis.plus.version} + + com.baomidou + dynamic-datasource-spring-boot-starter + ${dynamic.datasource.version} + + + + org.liquibase + liquibase-core + ${liquibase.version} + com.squareup.okhttp3 diff --git a/ruoyi-admin/src/main/java/cn/xluobo/business/tool/impt/listener/ImportCourseClaListener.java b/ruoyi-admin/src/main/java/cn/xluobo/business/tool/impt/listener/ImportCourseClaListener.java deleted file mode 100644 index 04967d9..0000000 --- a/ruoyi-admin/src/main/java/cn/xluobo/business/tool/impt/listener/ImportCourseClaListener.java +++ /dev/null @@ -1,257 +0,0 @@ -package cn.xluobo.business.tool.impt.listener; - -import cn.hutool.core.util.ObjectUtil; -import com.ruoyi.school.course.enums.ClaTimeRepeatTypeEnums; -import com.ruoyi.school.course.enums.ClaTimeRuleTypeEnums; -import com.ruoyi.school.course.domain.ScClaTimeRule; -import com.ruoyi.school.course.domain.ScCourseCla; -import com.ruoyi.school.course.service.BusinessClaTimeRuleService; -import com.ruoyi.school.course.service.IScCourseClaService; -import cn.xluobo.business.tool.impt.domain.ImportCourseCla; -import com.ruoyi.core.utils.DateUtil; -import com.alibaba.excel.context.AnalysisContext; -import com.alibaba.excel.event.AnalysisEventListener; -import com.google.common.collect.Lists; -import com.ruoyi.core.api.APIBaseResponse; -import lombok.Data; -import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang3.StringUtils; - -import java.math.BigDecimal; -import java.util.List; -import java.util.Map; - -/** - * @author :zhangbaoyu - * @date :Created in 2020/8/3 22:02 - */ -@Slf4j -@Data -public class ImportCourseClaListener extends AnalysisEventListener { - - private IScCourseClaService courseClaService; - - private BusinessClaTimeRuleService businessClaTimeRuleService; - - /** - * 是否需要保存 - */ - private Boolean needSave; - - private Map courseMap; - private Map campusMap; - private Map teacherMap; - private Map recruitStatusMap; - private Map claTimeRepeatTypeMap; - private Map roomMap; - private Map weekDayMap; - - // 登录用户id - private Long loginUserId = 0L; - - // 导入id - private Long importId; - - // 需保存的saveCourseClaList - private List saveCourseClaList = Lists.newArrayList(); - - // 校验失败的列表 - private List failCourseClaList = Lists.newArrayList(); - - /** - * 最多读取多少行 - */ - int maxRecord = 100; - - /** - * 当前已读取 - */ - int hadReadRecord = 0; - - public ImportCourseClaListener(IScCourseClaService courseClaService, BusinessClaTimeRuleService businessClaTimeRuleService) { - this.courseClaService = courseClaService; - this.businessClaTimeRuleService = businessClaTimeRuleService; - } - - @Override - public void invoke(ImportCourseCla data, AnalysisContext context) { - APIBaseResponse checkParam = checkParam(data); - if (!checkParam.isSuccess()) { - data.setFailMsg(checkParam.getRespMsg()); - failCourseClaList.add(data); - return; - } - saveCourseClaList.add(data); - } - - @Override - public void doAfterAllAnalysed(AnalysisContext context) { - if (needSave) { - saveCourseCla(); - } - log.info("doAfterAllAnalysed"); - } - - @Override - public boolean hasNext(AnalysisContext context) { - if (hadReadRecord++ < maxRecord) { - return true; - } - return false; - } - - /** - * 保存班级信息 - */ - public void saveCourseCla() { - for (ImportCourseCla courseCla : saveCourseClaList) { - - Long courseId = courseMap.get(courseCla.getCourseName()); - Long deptId = campusMap.get(courseCla.getDeptName()); - Long teacherId = teacherMap.get(courseCla.getTeacherName()); - String recruitStatus = recruitStatusMap.get(courseCla.getRecruitStatus()); - - // 保存课程信息 - ScCourseCla cla = new ScCourseCla(); - cla.setCourseId(courseId); - cla.setDepartId(Long.valueOf(deptId)); - cla.setStaffId(teacherId); - cla.setClaName(courseCla.getClaName()); - cla.setCapacity(Integer.parseInt(courseCla.getCapacity())); - cla.setRecruitStatus(recruitStatus); - cla.setOpenDate(courseCla.getOpenDate()); - cla.setCloseDate(courseCla.getCloseDate()); - cla.setMemo(courseCla.getMemo()); - cla.setCreateUser(loginUserId); - courseClaService.save(cla); - - // 规则排课 - if (StringUtils.isNoneEmpty(courseCla.getBeginDate(), courseCla.getEndDate())) { - Long roomId = null; - if (StringUtils.isNotEmpty(courseCla.getRoomName())) { - roomId = teacherMap.get(courseCla.getRoomName()); - } - String repeatType = claTimeRepeatTypeMap.get(courseCla.getRepeatType()); - // 保存规则排课信息 并生成排课信息 - ScClaTimeRule claTimeRule = new ScClaTimeRule(); - claTimeRule.setClaId(cla.getClaId()); - claTimeRule.setRuleType(ClaTimeRuleTypeEnums.REPEAT_RULE.getRuleType()); - claTimeRule.setBeginDate(courseCla.getBeginDate()); - claTimeRule.setEndDate(courseCla.getEndDate()); - claTimeRule.setRepeatType(repeatType); - - if (ClaTimeRepeatTypeEnums.EVERY_WEEK.getRepeatType().equals(repeatType) - || ClaTimeRepeatTypeEnums.EVERY_SECOND_WEEK.getRepeatType().equals(repeatType)) { - List weekDayKeyList = Lists.newArrayList(); - String weekDay = courseCla.getWeekDay(); - String[] weekDayArray = weekDay.split(","); - for (String item : weekDayArray) { - String weekDayKey = weekDayMap.get(item); - weekDayKeyList.add(weekDayKey); - } - claTimeRule.setWeekDay(String.join(",", weekDayKeyList)); - } - - claTimeRule.setFilterHoliday("过滤".equals(courseCla.getFilterHoliday())); - claTimeRule.setStartTime(courseCla.getStartTime()); - claTimeRule.setEndTime(courseCla.getEndTime()); - claTimeRule.setTeacherId(teacherId); - claTimeRule.setRoomId(roomId); - businessClaTimeRuleService.addClaTimeRule(claTimeRule); - - } - - } - } - - /** - * 校验导入参数 - * - * @param data - * @return - */ - public APIBaseResponse checkParam(ImportCourseCla data) { - if (StringUtils.isAnyEmpty(data.getClaName(), data.getCourseName(), - data.getDeptName(), data.getTeacherName(), data.getOpenDate())) { - return APIBaseResponse.fail("请填写班级名称、课程名称、校区、任课教练、开班日期"); - } else if (StringUtils.isEmpty(data.getEveryStuLoseHour())) { - return APIBaseResponse.fail("请填写每次上课会员扣除课时数"); - } else if (data.getClaName().length() > 30) { - return APIBaseResponse.fail("班级名称过长,最长30!"); - } else if (StringUtils.isNotEmpty(data.getMemo()) && data.getMemo().length() > 200) { - return APIBaseResponse.fail("备注过长,最长200!"); - } - try { - new BigDecimal(data.getEveryStuLoseHour()); - }catch (NumberFormatException numberFormatException) { - return APIBaseResponse.fail("每次上课会员扣除课时数 需填写两位小数"); - } - if(StringUtils.isNotEmpty(data.getCapacity())){ - try { - Integer.parseInt(data.getCapacity()); - }catch (NumberFormatException numberFormatException) { - return APIBaseResponse.fail("满班人数需为正整数"); - } - } - Long courseId = courseMap.get(data.getCourseName()); - Long deptId = campusMap.get(data.getDeptName()); - Long teacherId = teacherMap.get(data.getTeacherName()); - String recruitStatus = recruitStatusMap.get(data.getRecruitStatus()); - - if (null == courseId || null == teacherId) { - return APIBaseResponse.fail("根据课程名称、任课教练名称无法获取对应信息,请核对填写信息或重新下载导入模板进行导入"); - } else if (ObjectUtil.isEmpty(deptId)) { - return APIBaseResponse.fail("根据校区名称无法获取对应信息,请核对填写信息或重新下载导入模板进行导入"); - } else if (StringUtils.isEmpty(recruitStatus)) { - return APIBaseResponse.fail("根据招生状态无法获取对应信息,请核对填写信息或重新下载导入模板进行导入"); - } - - if (StringUtils.isNoneEmpty(data.getBeginDate(), data.getEndDate())) { - - try { - DateUtil.yyyMMddDayBegin(data.getBeginDate()); - DateUtil.yyyMMddDayBegin(data.getEndDate()); - }catch (Exception e) { - return APIBaseResponse.fail("请按照正确格式填写排课开始日期、排课结束日期"); - } - - if (StringUtils.isAnyEmpty(data.getRepeatType(), data.getStartTime(), data.getEndTime())) { - return APIBaseResponse.fail("导入排课时,请填写重复方式、上课时间、下课时间。如无需导入排课信息,请删除填写的排课开始日期、排课结束日期"); - } else if (!"过滤".equals(data.getFilterHoliday()) && !"不过滤".equals(data.getFilterHoliday())) { - return APIBaseResponse.fail("导入排课时,是否过滤节假日只可填写过滤/不过滤"); - } - String repeatType = claTimeRepeatTypeMap.get(data.getRepeatType()); - if (StringUtils.isEmpty(repeatType)) { - return APIBaseResponse.fail("根据重复方式无法获取对应信息,请核对填写信息或重新下载导入模板进行导入"); - } else if (!ClaTimeRepeatTypeEnums.EVERY_SECOND_DAY.getRepeatType().equals(data.getRepeatType())) { - if (StringUtils.isEmpty(data.getWeekDay())) { - return APIBaseResponse.fail("导入排课时,每周重复、隔周重复时需填写上课星期"); - } - String weekDay = data.getWeekDay(); - String[] weekDayArray = weekDay.split(","); - for (String item : weekDayArray) { - if (StringUtils.isEmpty(weekDayMap.get(item))) { - return APIBaseResponse.fail("请重新填写上课星期'" + item + "',使用英文,号分隔"); - } - } - } - if (StringUtils.isNotEmpty(data.getRoomName())) { - Long roomId = roomMap.get(data.getRoomName()); - if (null == roomId) { - return APIBaseResponse.fail("根据教室名称无法获取对应信息,请核对填写信息或重新下载导入模板进行导入"); - } - } - } - - - return APIBaseResponse.success(); - } - - public int getSuccessRecord() { - return this.saveCourseClaList.size(); - } - - public int getFailRecord() { - return this.failCourseClaList.size(); - } -} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java b/ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java index 67b2bbb..0d36d9e 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/RuoYiApplication.java @@ -14,7 +14,7 @@ import org.springframework.scheduling.annotation.EnableScheduling; * @author ruoyi */ @SpringBootApplication( - exclude = {DataSourceAutoConfiguration.class}, + exclude = {DataSourceAutoConfiguration.class }, scanBasePackages = {"com.ruoyi","cn.xluobo"} ) @EnableConfigurationProperties({UploadConfigProperties.class, AddressProperties.class}) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/mall/ProductCategoryController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/mall/ProductCategoryController.java index 787c456..bcac1f3 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/mall/ProductCategoryController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/mall/ProductCategoryController.java @@ -66,6 +66,7 @@ public class ProductCategoryController extends BaseController { @Log(title = "商品分类", businessType = BusinessType.DELETE) @DeleteMapping("/{id}") public ResponseEntity remove(@PathVariable Long id) { - return ResponseEntity.ok(service.deleteById(id)); + throw new RuntimeException("分类删除时,租户商品的申请也会被删除,请联系管理员操作! "); +// ResponseEntity.ok(service.deleteById(id)) } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/mall/ProductShowController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/mall/ProductShowController.java new file mode 100644 index 0000000..125e86c --- /dev/null +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/mall/ProductShowController.java @@ -0,0 +1,81 @@ +package com.ruoyi.web.controller.mall; + +import com.ruoyi.common.core.controller.BaseController; +import com.ruoyi.mall.domain.ProductShow; +import com.ruoyi.mall.domain.vo.ProductShowVO; +import com.ruoyi.mall.service.ProductShowService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.PageImpl; +import org.springframework.data.domain.Pageable; +import org.springframework.http.ResponseEntity; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * 商品展示申请 + */ +@Api(description ="商品展示申请接口列表") +@RestController +@RequestMapping("/pms/productShow") +public class ProductShowController extends BaseController { + @Autowired + private ProductShowService service; + + @ApiOperation("查询商品信息列表") + @PostMapping("/list") + public ResponseEntity> list(@RequestBody ProductShowVO query, Pageable page) { + List list = service.selectByEntity(query, page); + return ResponseEntity.ok(new PageImpl<>(list, page, ((com.github.pagehelper.Page)list).getTotal())); + } + + @GetMapping(value = "/{id}") + public ResponseEntity getInfo(@PathVariable("id") Long id) { + ProductShow productShow= service.selectProductShowDetail(id); + return ResponseEntity.ok(productShow); + } + + + @ApiOperation("新增商品申请(租户)") + @PreAuthorize("@ss.hasPermi('pms:publish:list')") + @PostMapping + public ResponseEntity add(@RequestBody ProductShow productShow) { + return ResponseEntity.ok(service.insertProductShow(productShow)); + } + + + + @ApiOperation("修改申请(租户)") + @PreAuthorize("@ss.hasPermi('pms:publish:list')") + @PutMapping + public ResponseEntity edit(@RequestBody ProductShow productShowUpdate) { + return ResponseEntity.ok(service.updateProductShow(productShowUpdate)); + } + + @ApiOperation("取消申请/删除(租户)") + @PreAuthorize("@ss.hasPermi('pms:publish:list')") + @DeleteMapping("/{id}") + public ResponseEntity remove(@PathVariable Long id) { + return ResponseEntity.ok(service.deleteProductShow(id)); + } + + //拒绝商品展示 + @ApiOperation("拒绝商品展示(管理员)") + @PreAuthorize("@ss.hasPermi('pms:review:list')") + @PutMapping("/refuse/{id}") + public ResponseEntity refuse(@PathVariable Long id) { + return ResponseEntity.ok(service.refuseProductShow(id)); + } + + //审核通过 + @ApiOperation("审核通过(管理员)") + @PreAuthorize("@ss.hasPermi('pms:review:list')") + @PutMapping("/pass") + public ResponseEntity pass(@RequestBody ProductShow productShowUpdate) { + return ResponseEntity.ok(service.passProductShow(productShowUpdate)); + } +} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/school/course/ScClaTimeController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/school/course/ScClaTimeController.java index 88a161b..ecb4db2 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/school/course/ScClaTimeController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/school/course/ScClaTimeController.java @@ -1,15 +1,15 @@ package com.ruoyi.web.controller.school.course; import com.ruoyi.common.page.RespPage; +import com.ruoyi.core.api.APIResponse; +import com.ruoyi.school.course.domain.ScClaTime; +import com.ruoyi.school.course.domain.ScClaTimeVo; import com.ruoyi.school.course.domain.req.time.ReqSearchClaTime; import com.ruoyi.school.course.domain.resp.time.RespBusinessClaTimeCalendar; import com.ruoyi.school.course.domain.resp.time.RespClaTime; import com.ruoyi.school.course.domain.resp.time.RespClaTimeCalendar; -import com.ruoyi.school.course.domain.ScClaTime; -import com.ruoyi.school.course.domain.ScClaTimeVo; import com.ruoyi.school.course.service.BusinessClaTimeService; import com.ruoyi.school.student.domain.req.ReqClaTimeAttend; -import com.ruoyi.core.api.APIResponse; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -122,5 +122,14 @@ public class ScClaTimeController { return claTimeService.confirmCla(reqClaTimeAttend); } + /** + * 查询已经预约签到的会员 + * @param + * @return + */ + @GetMapping("/list/searchCourseClaStudent") + public APIResponse searchCourseClaStudent(ReqSearchClaTime reqSearchClaTime) { + return claTimeService.searchCourseClaStudent(reqSearchClaTime); + } } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/school/course/ScCourseClaController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/school/course/ScCourseClaController.java deleted file mode 100644 index 0ff334d..0000000 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/school/course/ScCourseClaController.java +++ /dev/null @@ -1,108 +0,0 @@ -package com.ruoyi.web.controller.school.course; - -import com.ruoyi.core.api.APIResponse; -import com.ruoyi.school.course.domain.ScCourseCla; -import com.ruoyi.school.course.domain.req.cla.ReqAddScCourseCla; -import com.ruoyi.school.course.domain.req.cla.ReqSearchScCourseCla; -import com.ruoyi.school.course.domain.req.time.ReqSearchClaTime; -import com.ruoyi.school.course.domain.resp.cla.RespClaAllDetailInfo; -import com.ruoyi.school.course.service.impl.BusinessScCourseClaService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; - -/** - *

- * 课程班级信息 Controller - *

- * - * @author zhangby - * @since 2020-03-17 01:11:06 - */ -@RestController -@RequestMapping("/api/sc/course/cla") -public class ScCourseClaController { - @Autowired - private BusinessScCourseClaService scCourseClaService; - - /** - * 列表 - * - * @param reqSearchScCourseCla - * @return - */ - @GetMapping("/list/searchList") - public APIResponse searchList(ReqSearchScCourseCla reqSearchScCourseCla) { - return scCourseClaService.searchList(reqSearchScCourseCla); - } - - /** - * 查询已经预约签到的会员 - * @param - * @return - */ - @GetMapping("/list/searchCourseClaStudent") - public APIResponse searchCourseClaStudent(ReqSearchClaTime reqSearchClaTime) { - return scCourseClaService.searchCourseClaStudent(reqSearchClaTime); - } - - /** - * 详情 - * - * @param claId - * @return - */ - @GetMapping("/info/detailById/{claId}") - public APIResponse detailById(@PathVariable("claId") Long claId) { - return scCourseClaService.detailById(claId); - } - - /** - * 详情 - * 包含内容较多 - * - * @param claId - * @return - */ - @GetMapping("/info/allDetailInfoById/{claId}") - public APIResponse allDetailInfoById(@PathVariable("claId") Long claId) { - RespClaAllDetailInfo allDetailInfo = scCourseClaService.allDetailInfoById(claId); - return APIResponse.toAPIResponse(allDetailInfo); - } - - - - /** - * 添加 - * - * @param scCourseCla - * @return - */ - @PostMapping("/add/addScCourseCla") - public APIResponse addScCourseCla(@RequestBody ReqAddScCourseCla scCourseCla) { - return scCourseClaService.addScCourseCla(scCourseCla); - } - - /** - * 修改 - * - * @param scCourseCla - * @return - */ - @PutMapping("/update/updateScCourseCla") - public APIResponse updateScCourseCla(@RequestBody ScCourseCla scCourseCla) { - return scCourseClaService.updateScCourseCla(scCourseCla); - } - - /** - * 删除 - * - * @param claIds - * @return - */ - @DeleteMapping("/delete/deleteById/{claIds}") - public APIResponse deleteById(@PathVariable("claIds") Long[] claIds) { - return scCourseClaService.deleteById(claIds); - } - - -} diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/school/member/ScMemberCardTypesController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/school/member/ScMemberCardTypesController.java index 0a5c9f1..90c077f 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/school/member/ScMemberCardTypesController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/school/member/ScMemberCardTypesController.java @@ -7,7 +7,6 @@ import cn.xluobo.core.page.RespPage; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.core.api.APIResponse; -import com.ruoyi.school.course.domain.req.course.ReqBusinessOrderCourseDetail; import com.ruoyi.school.course.domain.resp.course.RespCourseTypeSelect; import com.ruoyi.school.member.domain.ScMemberCard; import com.ruoyi.school.member.domain.ScMemberCardCharge; @@ -136,7 +135,7 @@ public class ScMemberCardTypesController { @PostMapping("/add/memberCardTypes") @Transactional public APIResponse addScCourse(@RequestBody ScMemberCardTypes types) { - //todo 会员卡项修改记录 + types.checkParam(); types.setTenantId(SecurityUtils.getLoginUser().getNowTenantId()); types.setCreateUser(SecurityUtils.getUserId()); @@ -254,9 +253,6 @@ public class ScMemberCardTypesController { return APIResponse.toOkResponse(); } - @GetMapping("/info/orderCardTypeDetail") - public APIResponse orderCardTypeDetail(ReqBusinessOrderCourseDetail orderCourseDetail) { - return typesService.orderCardTypeDetail(orderCourseDetail); - } + } diff --git a/ruoyi-admin/src/main/resources/application-druid.yml b/ruoyi-admin/src/main/resources/application-druid.yml index 789cf90..a707dcc 100644 --- a/ruoyi-admin/src/main/resources/application-druid.yml +++ b/ruoyi-admin/src/main/resources/application-druid.yml @@ -13,16 +13,19 @@ spring: username: root password: '!Runpeng888' # 从库数据源 - slave: - # 从数据源开关/默认关闭 - enabled: false - url: - username: - password: - statViewServlet: +# slave: +# # 从数据源开关/默认关闭 +# enabled: false +# url: +# username: +# password: +# statViewServlet: # 控制台管理用户名和密码 - login-username: ruoyi - login-password: 123456 +# login-username: ruoyi +# login-password: 123456 + # Liquibase 关闭自动运行(手动执行) + liquibase: + enabled: false # redis 配置 redis: # 地址 @@ -47,3 +50,4 @@ minio: filePath: file videoPath: video expireIn: 180 # 文件过期时间,单位:天 + diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDept.java b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDept.java index 6ca5b37..8b662f3 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDept.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/core/domain/entity/SysDept.java @@ -1,6 +1,7 @@ package com.ruoyi.common.core.domain.entity; import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; import com.ruoyi.common.core.domain.BaseEntity; import lombok.Data; import org.apache.commons.lang3.builder.ToStringBuilder; @@ -23,6 +24,8 @@ public class SysDept extends BaseEntity private static final long serialVersionUID = 1L; /** 部门ID */ + + @TableId private Long deptId; /** 父部门ID */ @@ -64,6 +67,32 @@ public class SysDept extends BaseEntity //1部门 2校区 private String deptType; + /** + * 入驻日期 + */ + private String activationDate; + + /** + * 到期日期 + */ + private String expiryDate; + + public String getActivationDate() { + return activationDate; + } + + public void setActivationDate(String activationDate) { + this.activationDate = activationDate; + } + + public String getExpiryDate() { + return expiryDate; + } + + public void setExpiryDate(String expiryDate) { + this.expiryDate = expiryDate; + } + /** 子部门 */ @TableField(exist = false) private List children = new ArrayList(); diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/db/SshContextListener.java b/ruoyi-common/src/main/java/com/ruoyi/common/db/SshContextListener.java index 502515e..ac97a56 100644 --- a/ruoyi-common/src/main/java/com/ruoyi/common/db/SshContextListener.java +++ b/ruoyi-common/src/main/java/com/ruoyi/common/db/SshContextListener.java @@ -1,11 +1,14 @@ package com.ruoyi.common.db; +import org.springframework.stereotype.Component; + import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; +import javax.servlet.annotation.WebListener; -//@Component//尽量加上这个 -//@WebListener//声明为监听器 +@Component//尽量加上这个 +@WebListener//声明为监听器 public class SshContextListener implements ServletContextListener { private SshTunnelConfig sshConnectionConfig; diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/TenantInterceptor.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/TenantInterceptor.java new file mode 100644 index 0000000..625fda2 --- /dev/null +++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/TenantInterceptor.java @@ -0,0 +1,31 @@ +package com.ruoyi.framework.config; + +import org.springframework.web.servlet.HandlerInterceptor; + +//@Component +//@RequiredArgsConstructor +public class TenantInterceptor implements HandlerInterceptor { + +// private final TenantDataSourceService tenantDataSourceService; +// +// @Override +// public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) { +// // 从请求头、JWT、Session 等获取租户ID +// String tenantId = request.getHeader("X-Tenant-Id"); +// if (tenantId == null || tenantId.isEmpty()) { +// throw new RuntimeException("缺少租户标识"); +// } +// +// TenantContext.setTenantId(tenantId); +// // 通知 dynamic-datasource 切换数据源 +// tenantDataSourceService.switchToTenant(tenantId); +// return true; +// } +// +// @Override +// public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) { +// // 清理资源 +// tenantDataSourceService.clearDataSource(); +// TenantContext.clear(); +// } +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/mall/domain/Address.java b/ruoyi-system/src/main/java/com/ruoyi/mall/domain/Address.java index 82441d1..41c04f6 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/mall/domain/Address.java +++ b/ruoyi-system/src/main/java/com/ruoyi/mall/domain/Address.java @@ -1,5 +1,6 @@ package com.ruoyi.mall.domain; +import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.ruoyi.common.annotation.Excel; import lombok.Data; @@ -15,6 +16,7 @@ public class Address { private static final long serialVersionUID = 1L; //"ID") + @TableId private Integer id; //"地区邮编") diff --git a/ruoyi-system/src/main/java/com/ruoyi/mall/domain/Brand.java b/ruoyi-system/src/main/java/com/ruoyi/mall/domain/Brand.java index 329e95d..bdc99a0 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/mall/domain/Brand.java +++ b/ruoyi-system/src/main/java/com/ruoyi/mall/domain/Brand.java @@ -1,5 +1,6 @@ package com.ruoyi.mall.domain; +import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.ruoyi.common.annotation.Excel; import com.ruoyi.common.core.domain.BaseAudit; @@ -15,7 +16,7 @@ import lombok.Data; public class Brand extends BaseAudit { private static final long serialVersionUID = 1L; - + @TableId private Long id; diff --git a/ruoyi-system/src/main/java/com/ruoyi/mall/domain/OrderDeliveryHistory.java b/ruoyi-system/src/main/java/com/ruoyi/mall/domain/OrderDeliveryHistory.java index b45187a..ff4efc9 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/mall/domain/OrderDeliveryHistory.java +++ b/ruoyi-system/src/main/java/com/ruoyi/mall/domain/OrderDeliveryHistory.java @@ -1,5 +1,6 @@ package com.ruoyi.mall.domain; +import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.ruoyi.common.annotation.Excel; import com.ruoyi.common.core.domain.BaseAudit; @@ -16,7 +17,7 @@ import lombok.Data; public class OrderDeliveryHistory extends BaseAudit { private static final long serialVersionUID = 1L; - //"ID") + @TableId private Long id; //"订单id") diff --git a/ruoyi-system/src/main/java/com/ruoyi/mall/domain/OrderOperateHistory.java b/ruoyi-system/src/main/java/com/ruoyi/mall/domain/OrderOperateHistory.java index e31015c..12ffce5 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/mall/domain/OrderOperateHistory.java +++ b/ruoyi-system/src/main/java/com/ruoyi/mall/domain/OrderOperateHistory.java @@ -1,5 +1,6 @@ package com.ruoyi.mall.domain; +import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.ruoyi.common.annotation.Excel; import com.ruoyi.common.core.domain.BaseAudit; @@ -17,6 +18,7 @@ public class OrderOperateHistory extends BaseAudit { private static final long serialVersionUID = 1L; //"ID") + @TableId private Long id; //"订单id") diff --git a/ruoyi-system/src/main/java/com/ruoyi/mall/domain/Product.java b/ruoyi-system/src/main/java/com/ruoyi/mall/domain/Product.java index a1716cc..818afab 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/mall/domain/Product.java +++ b/ruoyi-system/src/main/java/com/ruoyi/mall/domain/Product.java @@ -2,6 +2,7 @@ package com.ruoyi.mall.domain; import com.baomidou.mybatisplus.annotation.FieldStrategy; import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.ruoyi.common.annotation.Excel; import com.ruoyi.common.core.domain.BaseAudit; @@ -20,6 +21,7 @@ public class Product extends BaseAudit { private static final long serialVersionUID = 1L; + @TableId private Long id; @@ -101,4 +103,5 @@ public class Product extends BaseAudit { */ private Long instructor; private Long storeId; + private String tenantId; } diff --git a/ruoyi-system/src/main/java/com/ruoyi/mall/domain/ProductCategory.java b/ruoyi-system/src/main/java/com/ruoyi/mall/domain/ProductCategory.java index eed65bf..b7270db 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/mall/domain/ProductCategory.java +++ b/ruoyi-system/src/main/java/com/ruoyi/mall/domain/ProductCategory.java @@ -1,5 +1,6 @@ package com.ruoyi.mall.domain; +import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.ruoyi.common.annotation.Excel; import com.ruoyi.common.core.domain.BaseAudit; @@ -16,6 +17,7 @@ public class ProductCategory extends BaseAudit { private static final long serialVersionUID = 1L; + @TableId private Long id; diff --git a/ruoyi-system/src/main/java/com/ruoyi/mall/domain/ProductShow.java b/ruoyi-system/src/main/java/com/ruoyi/mall/domain/ProductShow.java new file mode 100644 index 0000000..69ef0e8 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/mall/domain/ProductShow.java @@ -0,0 +1,75 @@ +package com.ruoyi.mall.domain; + +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.time.LocalDate; +import java.time.LocalDateTime; + +/** + * 商品商城展示申请表 + * 表名: mall_product_show + */ +@Data +@TableName("mall_product_show") +public class ProductShow { + + /** + * 主键ID + */ + @TableId + private Long id; + + /** + * 商品ID + */ + private Long productId; + + /** + * 场馆ID + */ + private Long storeId; + + /** + * 租户ID + */ + private String tenantId; + + /** + * 展示标识(0-不展示 1-展示) + */ + private String showFlag; + + /** + * 展示分类ID + */ + private Long showCategory; + + /** + * 展示开始时间 + */ + private LocalDate showStartTime; + + /** + * 展示结束时间 + */ + private LocalDate showEndTime; + + /** + * 申请状态(0-待审核(已申请) 1-审核通过 2-审核拒绝 3-展示中 4-展示期结束 ) + */ + private String applyStatus; + + /** + * 申请时间 + */ + private LocalDateTime applyTime; + + private LocalDateTime reviewTime; + + /** + * 排序字段 + */ + private Integer sort; +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/mall/domain/Sku.java b/ruoyi-system/src/main/java/com/ruoyi/mall/domain/Sku.java index 214a82b..aafb69c 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/mall/domain/Sku.java +++ b/ruoyi-system/src/main/java/com/ruoyi/mall/domain/Sku.java @@ -1,5 +1,6 @@ package com.ruoyi.mall.domain; +import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.ruoyi.common.annotation.Excel; import com.ruoyi.common.core.domain.BaseAudit; @@ -18,6 +19,7 @@ public class Sku extends BaseAudit { private static final long serialVersionUID = 1L; + @TableId private Long id; diff --git a/ruoyi-system/src/main/java/com/ruoyi/mall/domain/vo/ProductShowVO.java b/ruoyi-system/src/main/java/com/ruoyi/mall/domain/vo/ProductShowVO.java new file mode 100644 index 0000000..3723461 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/mall/domain/vo/ProductShowVO.java @@ -0,0 +1,14 @@ +package com.ruoyi.mall.domain.vo; + +import com.ruoyi.mall.domain.ProductShow; +import lombok.Data; + +@Data +public class ProductShowVO extends ProductShow { + private String productName; + private String productCategoryName; + private String tenantName; + private String storeName; + + +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/mall/mapper/ProductShowMapper.java b/ruoyi-system/src/main/java/com/ruoyi/mall/mapper/ProductShowMapper.java new file mode 100644 index 0000000..756ab64 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/mall/mapper/ProductShowMapper.java @@ -0,0 +1,19 @@ +package com.ruoyi.mall.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.ruoyi.mall.domain.ProductShow; +import com.ruoyi.mall.domain.vo.ProductShowVO; + +import java.util.List; + +/** + * 商品展示申请Mapper接口 + */ +public interface ProductShowMapper extends BaseMapper { + + List selectProductShowList(ProductShowVO productShowVO); + + int onSaleProductShow(); + + int expireProductShow(); +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/mall/service/ProductService.java b/ruoyi-system/src/main/java/com/ruoyi/mall/service/ProductService.java index f91a01c..664d441 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/mall/service/ProductService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/mall/service/ProductService.java @@ -183,6 +183,7 @@ public class ProductService extends ServiceImpl implemen Product product = BeanUtil.toBean(productVO,Product.class); product.setCreateTime(LocalDateTime.now()); product.setStoreId(SecurityUtils.getDeptId()); + product.setTenantId(SecurityUtils.getLoginUser().getNowTenantId()); setProductManager(productVO,product); List skuList = productVO.getSkuList(); @@ -299,6 +300,7 @@ public class ProductService extends ServiceImpl implemen if (orderCount>0){ throw new RuntimeException("商品已生成订单,无法删除!"); } + //sku product_show 数据库级联删除 return productMapper.deleteById(id); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/mall/service/ProductShowService.java b/ruoyi-system/src/main/java/com/ruoyi/mall/service/ProductShowService.java new file mode 100644 index 0000000..281d828 --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/mall/service/ProductShowService.java @@ -0,0 +1,145 @@ +package com.ruoyi.mall.service; + +import cn.hutool.core.util.ObjectUtil; +import com.baomidou.mybatisplus.extension.service.IService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.github.pagehelper.PageHelper; +import com.ruoyi.common.core.domain.model.LoginUser; +import com.ruoyi.common.utils.SecurityUtils; +import com.ruoyi.mall.domain.ProductCategory; +import com.ruoyi.mall.domain.ProductShow; +import com.ruoyi.mall.domain.vo.ProductShowVO; +import com.ruoyi.mall.mapper.ProductCategoryMapper; +import com.ruoyi.mall.mapper.ProductShowMapper; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.Pageable; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.time.LocalDateTime; +import java.util.List; + +/** + * 商品信息Service业务层处理 + * + * + * @author zcc + */ +@Service +@Slf4j +public class ProductShowService extends ServiceImpl implements IService { + + @Autowired + private ProductCategoryMapper productCategoryMapper; // 注入权限验证服务 + + + public List selectByEntity(ProductShowVO productShow, Pageable page) { + if (page != null) { + PageHelper.startPage(page.getPageNumber() + 1, page.getPageSize()); + } + LoginUser loginUser= SecurityUtils.getLoginUser(); + //审核页list + if(loginUser.getPermissions().contains("pms:review:list")){ + return baseMapper.selectProductShowList(productShow); + } + //申请页list + productShow.setTenantId(loginUser.getNowTenantId()); + productShow.setStoreId(loginUser.getDeptId()); + return baseMapper.selectProductShowList(productShow); + } + + //申请商品展示 + public Boolean insertProductShow(ProductShow productShow) { + LoginUser loginUser= SecurityUtils.getLoginUser(); + productShow.setTenantId(loginUser.getNowTenantId()); + productShow.setStoreId(loginUser.getDeptId()); + productShow.setApplyStatus("0"); + productShow.setApplyTime(LocalDateTime.now()); + return this.save(productShow); + } + //获取商品展示详情 + public ProductShow selectProductShowDetail(Long id) { + return this.getById(id); + } + //修改申请(租户) + public Boolean updateProductShow(ProductShow productShowUpdate) { + ProductShow dbProductShow =this.getById(productShowUpdate.getId()); + if ("1,3".contains(dbProductShow.getApplyStatus())){ + throw new RuntimeException("审核通过或正在展示期的商品不允许修改"); + } + if (dbProductShow.getApplyStatus().equals("4")){ + throw new RuntimeException("本次申请展示期已结束,如需继续展示请重新提交申请"); + } + ProductShow productShow = new ProductShow(); + productShow.setId(productShowUpdate.getId()); + productShow.setProductId(productShowUpdate.getProductId()); + productShow.setShowStartTime(productShowUpdate.getShowStartTime()); + productShow.setShowEndTime(productShowUpdate.getShowEndTime()); + productShow.setApplyStatus("0"); + return this.updateById(productShow); + } + + //取消申请 + public Boolean deleteProductShow(Long id) { + return this.removeById(id); + } + + + + //拒绝商品展示 + public Boolean refuseProductShow(Long id) { + ProductShow dbProductShow =this.getById(id); + if (!dbProductShow.getApplyStatus().equals("0")){ + throw new RuntimeException("当前状态不允许此项操作"); + } + ProductShow productShow = new ProductShow(); + productShow.setId(id); + productShow.setApplyStatus("2"); + return this.updateById(productShow); + } + //审核通过 + public Boolean passProductShow(ProductShow productShowUpdate) { + ProductShow dbProductShow =this.getById(productShowUpdate.getId()); + if (ObjectUtil.isEmpty(dbProductShow)){ + throw new RuntimeException("租户已取消申请"); + } + if (!dbProductShow.getApplyStatus().equals("0")){ + throw new RuntimeException("当前状态不允许此项操作"); + } + if (dbProductShow.getShowStartTime().isBefore(LocalDateTime.now().toLocalDate())){ + throw new RuntimeException("展示开始日期已过,请联系租户修改展示时间后,重新提交申请"); + } + if (ObjectUtil.hasNull(productShowUpdate.getSort(),productShowUpdate.getShowCategory())){ + throw new RuntimeException("请将上架商品所属分类及排序补充完整"); + } + ProductCategory category=productCategoryMapper.selectById(productShowUpdate.getShowCategory()); + if (ObjectUtil.isNull(category)){ + throw new RuntimeException("上架商品所属分类不存在"); + } + ProductShow productShow = new ProductShow(); + productShow.setId(productShowUpdate.getId()); + productShow.setReviewTime(productShowUpdate.getReviewTime()); + productShow.setApplyStatus("1"); + productShow.setSort(productShowUpdate.getSort()); + productShow.setShowCategory(productShowUpdate.getShowCategory()); + productShow.setReviewTime(LocalDateTime.now()); + return this.updateById(productShow); + } + + //上架商品展示 (定时器触发事件) + @Transactional + public int onSaleProductShow() { + int updatedRows=baseMapper.onSaleProductShow(); + System.out.println("今天开始的展示任务已启动,影响记录数:" + updatedRows); + return updatedRows; + } + //商品展示到期 (定时器触发事件) + @Transactional + public int expireProductShow() { + int updatedRows=baseMapper.onSaleProductShow(); + System.out.println("昨天结束的展示任务已停止,影响记录数:" + updatedRows); + return updatedRows; + } + +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/quartz/task/ProductShowTask.java b/ruoyi-system/src/main/java/com/ruoyi/quartz/task/ProductShowTask.java new file mode 100644 index 0000000..a19976e --- /dev/null +++ b/ruoyi-system/src/main/java/com/ruoyi/quartz/task/ProductShowTask.java @@ -0,0 +1,26 @@ +package com.ruoyi.quartz.task; + +import com.ruoyi.mall.service.ProductShowService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +@Component("productShowTask") +public class ProductShowTask { + + @Autowired + private ProductShowService productShowService; + + /** + * 定时上架商品展示(每天00:01执行) + */ + public void onSaleProductShow() { + productShowService.onSaleProductShow(); + } + + /** + * 定时过期商品展示(每天00:02执行) + */ + public void expireProductShow() { + productShowService.expireProductShow(); + } +} diff --git a/ruoyi-system/src/main/java/com/ruoyi/school/course/domain/ScClaTime.java b/ruoyi-system/src/main/java/com/ruoyi/school/course/domain/ScClaTime.java index 639e3ed..fcb4002 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/school/course/domain/ScClaTime.java +++ b/ruoyi-system/src/main/java/com/ruoyi/school/course/domain/ScClaTime.java @@ -47,6 +47,9 @@ public class ScClaTime implements Serializable { @TableField("cla_id") private Long claId; + @TableField( "course_id") + private Long courseId; + /** * 任课教练 */ @@ -65,6 +68,12 @@ public class ScClaTime implements Serializable { @TableField("room_name") private String roomName; + @TableField("cla_color") + private String claColor; + @TableField("font_size") + private Integer fontSize; + @TableField("font_color") + private String fontColor; /** * 上课主题 */ @@ -191,7 +200,7 @@ public class ScClaTime implements Serializable { @TableField("last_update_time") private Date lastUpdateTime; - @TableField(exist = false) + @TableField("dept_id") private Long deptId; @TableField(exist = false) private String courseName; @@ -211,7 +220,7 @@ public class ScClaTime implements Serializable { } public boolean checkAddParam() { - if(null == claId || null == teacherId) { + if(null == deptId || null == teacherId || null == courseId) { return false; } if (StringUtils.isAnyEmpty(claDate, startTime, endTime)) { diff --git a/ruoyi-system/src/main/java/com/ruoyi/school/course/domain/ScClaTimeRule.java b/ruoyi-system/src/main/java/com/ruoyi/school/course/domain/ScClaTimeRule.java index 77f8f70..f8ef742 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/school/course/domain/ScClaTimeRule.java +++ b/ruoyi-system/src/main/java/com/ruoyi/school/course/domain/ScClaTimeRule.java @@ -42,12 +42,21 @@ public class ScClaTimeRule implements Serializable { @TableField("cla_id") private Long claId; + @TableField( "course_id") + private Long courseId; + /** * 规则类型 1重复排课 2单次排课 */ @TableField("rule_type") private String ruleType; + @TableField("cla_color") + private String claColor; + @TableField("font_size") + private Integer fontSize; + @TableField("font_color") + private String fontColor; /** * 开始日期 */ @@ -171,11 +180,11 @@ public class ScClaTimeRule implements Serializable { /** * 所属校区 */ - @TableField(exist = false) + @TableField("dept_id") private Long deptId; public boolean checkParam() { - if (null == claId || null == teacherId) { + if (null == deptId || null == teacherId || null == courseId ) { return false; } if (StringUtils.isAnyEmpty(ruleType)) { diff --git a/ruoyi-system/src/main/java/com/ruoyi/school/course/domain/ScClaTimeRuleVo.java b/ruoyi-system/src/main/java/com/ruoyi/school/course/domain/ScClaTimeRuleVo.java index 26b31d1..36c1d81 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/school/course/domain/ScClaTimeRuleVo.java +++ b/ruoyi-system/src/main/java/com/ruoyi/school/course/domain/ScClaTimeRuleVo.java @@ -164,14 +164,17 @@ public class ScClaTimeRuleVo implements Serializable { /** * 单次排课 选择的上课日期 */ - @TableField(exist = false) private String[] chooseDate; /** * 所属校区 */ - @TableField(exist = false) private Long deptId; + private Long courseId; + private String claColor; + private Integer fontSize; + + private String fontColor; public boolean checkParam() { if (null == claId || null == teacherId) { diff --git a/ruoyi-system/src/main/java/com/ruoyi/school/course/domain/ScClaTimeVo.java b/ruoyi-system/src/main/java/com/ruoyi/school/course/domain/ScClaTimeVo.java index c48cff6..af173aa 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/school/course/domain/ScClaTimeVo.java +++ b/ruoyi-system/src/main/java/com/ruoyi/school/course/domain/ScClaTimeVo.java @@ -3,7 +3,6 @@ package com.ruoyi.school.course.domain; 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 lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; @@ -23,7 +22,6 @@ import java.util.Date; @Data @EqualsAndHashCode(callSuper = false) @Accessors(chain = true) -@TableName("sc_cla_time") public class ScClaTimeVo implements Serializable { private static final long serialVersionUID = 1L; @@ -137,14 +135,6 @@ public class ScClaTimeVo implements Serializable { @TableField("at_class_cnt") private Integer atClassCnt; - /** - * 请假人数 - */ -// @TableField("leave_cnt") -// private Integer leaveCnt; - - - /** * 备注 */ @@ -175,13 +165,17 @@ public class ScClaTimeVo implements Serializable { @TableField("last_update_time") private Date lastUpdateTime; - @TableField(exist = false) + private String claColor; + private Integer fontSize; + + private String fontColor; + private Long deptId; - @TableField(exist = false) + private String courseName; - @TableField(exist = false) + private String claName; - @TableField(exist = false) + private String deptName; public boolean checkUpdateParam() { diff --git a/ruoyi-system/src/main/java/com/ruoyi/school/course/domain/ScCourse.java b/ruoyi-system/src/main/java/com/ruoyi/school/course/domain/ScCourse.java index 9827548..8f7d57c 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/school/course/domain/ScCourse.java +++ b/ruoyi-system/src/main/java/com/ruoyi/school/course/domain/ScCourse.java @@ -67,6 +67,10 @@ public class ScCourse implements Serializable { */ @TableField("sale") private String sale; + @TableField("remark") + private String remark; + @TableField("star") + private Integer star; /** * 删除标志(1删除 0在用) @@ -117,7 +121,7 @@ public class ScCourse implements Serializable { @TableField("tuition_fee") private BigDecimal tuitionFee; - @TableField(value = "depart_id", typeHandler = LongArrayTypeHandler.class,updateStrategy = FieldStrategy.IGNORED) + @TableField(value = "depart_id", typeHandler = LongArrayTypeHandler.class) private Long[] departId; } diff --git a/ruoyi-system/src/main/java/com/ruoyi/school/course/domain/ScCourseCla.java b/ruoyi-system/src/main/java/com/ruoyi/school/course/domain/ScCourseCla.java deleted file mode 100644 index 84497a6..0000000 --- a/ruoyi-system/src/main/java/com/ruoyi/school/course/domain/ScCourseCla.java +++ /dev/null @@ -1,165 +0,0 @@ -package com.ruoyi.school.course.domain; - -import com.baomidou.mybatisplus.annotation.TableField; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; -import com.ruoyi.common.utils.SecurityUtils; -import com.ruoyi.core.api.APIBaseResponse; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.experimental.Accessors; -import org.apache.commons.lang3.StringUtils; - -import java.io.Serializable; -import java.util.Date; - -/** - *

- * 课程班级信息 - *

- * - * @author zhangby - * @since 2020-08-07 - */ -@Data -@EqualsAndHashCode(callSuper = false) -@Accessors(chain = true) -@TableName("sc_course_cla") -public class ScCourseCla implements Serializable { - - private static final long serialVersionUID = 1L; - - /** - * 班级id - */ - @TableId(value = "cla_id") - private Long claId; - - /** - * 所属租户 - */ - @TableField("tenant_id") - private String tenantId; - - /** - * 课程id - */ - @TableField("course_id") - private Long courseId; - - /** - * 开班校区 - */ - @TableField("depart_id") - private Long departId; - - /** - * 班主任id - */ - @TableField("staff_id") - private Long staffId; - - /** - * 班级名称 - */ - @TableField("cla_name") - private String claName; - - /** - * 班级颜色 - */ - @TableField("cla_color") - private String claColor; - - /** - * 满班人数 - */ - @TableField("capacity") - private Integer capacity; - - /** - * 招生状态 1开放 2满班后停止 0停止 - */ - @TableField("recruit_status") - private String recruitStatus; - - - /** - * 开班日期 - */ - @TableField("open_date") - private String openDate; - - /** - * 结班日期 - */ - @TableField("close_date") - private String closeDate; - - /** - * 备注 - */ - @TableField("memo") - private String memo; - - /** - * 删除标志(1删除 0在用) - */ - @TableField("delete_flag") - private String deleteFlag; - - /** - * 创建者 - */ - @TableField("create_user") - private Long createUser; - - /** - * 创建时间 - */ - @TableField("create_time") - private Date createTime; - - /** - * 更新者 - */ - @TableField("last_update_user") - private Long lastUpdateUser; - - /** - * 更新时间 - */ - @TableField("last_update_time") - private Date lastUpdateTime; - - @TableField(exist = false) - private String deptName; - - private String teacherName; - - // 当前班级人数 - @TableField(exist = false) - private Integer studentCnt; - - public String getTenantId(){ - return SecurityUtils.getLoginUser().getNowTenantId(); - } - - /** - * 校验参数 - * @return - */ - public APIBaseResponse checkParam(){ - if(StringUtils.isAnyEmpty(claName,claColor)){ - return APIBaseResponse.fail("请求参数错误,请全部填写后,重新提交"); - } - if(null == courseId || null == departId -// || null == staffId || null == capacity -// || null == everyStuLoseHour || null == everyTeaGetHour - ){ - return APIBaseResponse.fail("请求参数错误,请全部填写后,重新提交"); - } - return APIBaseResponse.success(); - } - -} diff --git a/ruoyi-system/src/main/java/com/ruoyi/school/course/domain/ScCourseClaVo.java b/ruoyi-system/src/main/java/com/ruoyi/school/course/domain/ScCourseClaVo.java deleted file mode 100644 index e5dace6..0000000 --- a/ruoyi-system/src/main/java/com/ruoyi/school/course/domain/ScCourseClaVo.java +++ /dev/null @@ -1,175 +0,0 @@ -package com.ruoyi.school.course.domain; - -import com.ruoyi.core.api.APIBaseResponse; -import com.baomidou.mybatisplus.annotation.TableField; -import com.baomidou.mybatisplus.annotation.TableId; -import com.baomidou.mybatisplus.annotation.TableName; -import com.ruoyi.common.utils.SecurityUtils; -import lombok.Data; -import lombok.EqualsAndHashCode; -import lombok.experimental.Accessors; -import org.apache.commons.lang3.StringUtils; - -import java.io.Serializable; -import java.math.BigDecimal; -import java.util.Date; - -/** - *

- * 课程班级信息 - *

- * - * @author zhangby - * @since 2020-08-07 - */ -@Data -@EqualsAndHashCode(callSuper = false) -@Accessors(chain = true) -@TableName("sc_course_cla") -public class ScCourseClaVo implements Serializable { - - private static final long serialVersionUID = 1L; - - /** - * 班级id - */ - @TableId(value = "cla_id") - private String claId; - - /** - * 所属租户 - */ - @TableField("tenant_id") - private String tenantId; - - /** - * 课程id - */ - @TableField("course_id") - private String courseId; - - /** - * 开班校区 - */ - @TableField("depart_id") - private Long departId; - - /** - * 班主任id - */ - @TableField("staff_id") - private Long staffId; - - /** - * 班级名称 - */ - @TableField("cla_name") - private String claName; - - /** - * 班级颜色 - */ - @TableField("cla_color") - private String claColor; - - /** - * 满班人数 - */ - @TableField("capacity") - private Integer capacity; - - /** - * 招生状态 1开放 2满班后停止 0停止 - */ - @TableField("recruit_status") - private String recruitStatus; - - /** - * 每次上课会员扣除课时 - */ - @TableField("every_stu_lose_hour") - private BigDecimal everyStuLoseHour; - - /** - * 每次上课教练获得课时 - */ - @TableField("every_tea_get_hour") - private BigDecimal everyTeaGetHour; - - /** - * 开班日期 - */ - @TableField("open_date") - private String openDate; - - /** - * 结班日期 - */ - @TableField("close_date") - private String closeDate; - - /** - * 备注 - */ - @TableField("memo") - private String memo; - - /** - * 删除标志(1删除 0在用) - */ - @TableField("delete_flag") - private String deleteFlag; - - /** - * 创建者 - */ - @TableField("create_user") - private Long createUser; - - /** - * 创建时间 - */ - @TableField("create_time") - private Date createTime; - - /** - * 更新者 - */ - @TableField("last_update_user") - private Long lastUpdateUser; - - /** - * 更新时间 - */ - @TableField("last_update_time") - private Date lastUpdateTime; - - @TableField(exist = false) - private String deptName; - - @TableField(exist = false) - private String teacherName; - - // 当前班级人数 - @TableField(exist = false) - private Integer studentCnt; - - public String getTenantId(){ - return SecurityUtils.getLoginUser().getNowTenantId(); - } - - /** - * 校验参数 - * @return - */ - public APIBaseResponse checkParam(){ - if(StringUtils.isAnyEmpty(claName,claColor,recruitStatus,openDate)){ - return APIBaseResponse.fail("请求参数错误,请全部填写后,重新提交"); - } - if(null == courseId || null == departId || null == staffId || null == capacity || null == everyStuLoseHour || null == everyTeaGetHour){ - return APIBaseResponse.fail("请求参数错误,请全部填写后,重新提交"); - } - return APIBaseResponse.success(); - } - -} diff --git a/ruoyi-system/src/main/java/com/ruoyi/school/course/domain/req/cla/ReqAddScCourseCla.java b/ruoyi-system/src/main/java/com/ruoyi/school/course/domain/req/cla/ReqAddScCourseCla.java deleted file mode 100644 index 42e6499..0000000 --- a/ruoyi-system/src/main/java/com/ruoyi/school/course/domain/req/cla/ReqAddScCourseCla.java +++ /dev/null @@ -1,57 +0,0 @@ -package com.ruoyi.school.course.domain.req.cla; - -import com.ruoyi.common.core.domain.model.LoginUser; -import com.ruoyi.school.course.domain.ScCourseCla; -import lombok.Data; - -/** - * 新增课程 - * - * @author :zhangbaoyu - * @date :Created in 2020-03-23 13:53 - */ -@Data -public class ReqAddScCourseCla { - - private Long courseId; - - private Long departId; - - private Long staffId; - - private String claName; - - private String claColor; - - private Integer capacity; - - private String recruitStatus; - - private String openDate; - - private String closeDate; - - private String memo; - - /** - * 获取班级实体 - * - * @param loginUser - * @return - */ - public ScCourseCla getScCourseCla(LoginUser loginUser) { - ScCourseCla cla = new ScCourseCla(); - cla.setCourseId(courseId); - cla.setDepartId(departId); - cla.setStaffId(staffId); - cla.setClaName(claName); - cla.setClaColor(claColor); - cla.setCapacity(capacity); - cla.setRecruitStatus(recruitStatus); - cla.setOpenDate(openDate); - cla.setCloseDate(closeDate); - cla.setMemo(memo); - cla.setCreateUser(loginUser.getUserId()); - return cla; - } -} diff --git a/ruoyi-system/src/main/java/com/ruoyi/school/course/domain/req/cla/ReqClaCount.java b/ruoyi-system/src/main/java/com/ruoyi/school/course/domain/req/cla/ReqClaCount.java deleted file mode 100644 index 0dc6ebe..0000000 --- a/ruoyi-system/src/main/java/com/ruoyi/school/course/domain/req/cla/ReqClaCount.java +++ /dev/null @@ -1,16 +0,0 @@ -package com.ruoyi.school.course.domain.req.cla; - -import com.ruoyi.common.page.ReqDeptCondition; -import lombok.Builder; -import lombok.Data; - -/** - * @author :zhangbaoyu - * @date :Created in 2020/10/24 12:27 - */ -@Data -@Builder -public class ReqClaCount extends ReqDeptCondition { - - private Long teacherId; -} diff --git a/ruoyi-system/src/main/java/com/ruoyi/school/course/domain/req/cla/ReqCourseClaSelect.java b/ruoyi-system/src/main/java/com/ruoyi/school/course/domain/req/cla/ReqCourseClaSelect.java deleted file mode 100644 index d387d76..0000000 --- a/ruoyi-system/src/main/java/com/ruoyi/school/course/domain/req/cla/ReqCourseClaSelect.java +++ /dev/null @@ -1,18 +0,0 @@ -package com.ruoyi.school.course.domain.req.cla; - -import lombok.Data; - -/** - * 课程班级 select - * - * @author :zhangbaoyu - * @date :Created in 2020-04-27 19:41 - */ -@Data -public class ReqCourseClaSelect { - - private String search; - - private Integer maxRecord = 500; - -} diff --git a/ruoyi-system/src/main/java/com/ruoyi/school/course/domain/req/cla/ReqSearchScCourseCla.java b/ruoyi-system/src/main/java/com/ruoyi/school/course/domain/req/cla/ReqSearchScCourseCla.java deleted file mode 100644 index 1e826d4..0000000 --- a/ruoyi-system/src/main/java/com/ruoyi/school/course/domain/req/cla/ReqSearchScCourseCla.java +++ /dev/null @@ -1,21 +0,0 @@ -package com.ruoyi.school.course.domain.req.cla; - -import com.ruoyi.common.page.ReqPageBase; -import lombok.Data; - -import java.io.Serializable; - -/** - * @author :zhangbaoyu - * @date :Created in 2020-01-14 17:30 - */ -@Data -public class ReqSearchScCourseCla extends ReqPageBase implements Serializable { - private String courseId; - private String staffId; - private String claName; - private String courseTime; - private Long departId; - - private String tenantId; -} diff --git a/ruoyi-system/src/main/java/com/ruoyi/school/course/domain/req/course/ReqAddScCourse.java b/ruoyi-system/src/main/java/com/ruoyi/school/course/domain/req/course/ReqAddScCourse.java index c01bf42..b3ad069 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/school/course/domain/req/course/ReqAddScCourse.java +++ b/ruoyi-system/src/main/java/com/ruoyi/school/course/domain/req/course/ReqAddScCourse.java @@ -52,6 +52,10 @@ public class ReqAddScCourse { private BigDecimal tuitionFee; + + private String remark; + + private Integer star; /** * 参数校验 * diff --git a/ruoyi-system/src/main/java/com/ruoyi/school/course/domain/req/course/ReqSelect.java b/ruoyi-system/src/main/java/com/ruoyi/school/course/domain/req/course/ReqSelect.java index c532641..94b2127 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/school/course/domain/req/course/ReqSelect.java +++ b/ruoyi-system/src/main/java/com/ruoyi/school/course/domain/req/course/ReqSelect.java @@ -13,6 +13,8 @@ public class ReqSelect { private String search; + private Long departId; + private Integer maxRecord = 50; // 是否可分页 diff --git a/ruoyi-system/src/main/java/com/ruoyi/school/course/domain/req/time/ReqSearchClaTime.java b/ruoyi-system/src/main/java/com/ruoyi/school/course/domain/req/time/ReqSearchClaTime.java index 4ad060c..e0b28f2 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/school/course/domain/req/time/ReqSearchClaTime.java +++ b/ruoyi-system/src/main/java/com/ruoyi/school/course/domain/req/time/ReqSearchClaTime.java @@ -27,7 +27,7 @@ public class ReqSearchClaTime implements Serializable { private String userId; // 班级 - private String claId; + // 会员 private Long studentId; diff --git a/ruoyi-system/src/main/java/com/ruoyi/school/course/domain/resp/cla/RespClaAllDetailInfo.java b/ruoyi-system/src/main/java/com/ruoyi/school/course/domain/resp/cla/RespClaAllDetailInfo.java deleted file mode 100644 index af33c68..0000000 --- a/ruoyi-system/src/main/java/com/ruoyi/school/course/domain/resp/cla/RespClaAllDetailInfo.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.ruoyi.school.course.domain.resp.cla; - -import com.ruoyi.school.course.domain.ScCourseClaVo; -import com.ruoyi.school.course.domain.resp.course.RespBusinessChooseCourseCharge; -import com.ruoyi.school.course.domain.resp.course.ScCourseVo; -import lombok.Builder; -import lombok.Data; - -import java.util.List; - -/** - * 班级详情 - * @author :zhangbaoyu - * @date :Created in 2020/9/29 18:36 - */ -@Data -@Builder -public class RespClaAllDetailInfo { - - // 班级信息 - private ScCourseClaVo courseCla; - - // 课程信息 - private ScCourseVo course; - - // 收费方式 - private List courseChargeList; - - // 上课时间 - private List claTimeList; -} diff --git a/ruoyi-system/src/main/java/com/ruoyi/school/course/domain/resp/cla/RespCourseClaInfo.java b/ruoyi-system/src/main/java/com/ruoyi/school/course/domain/resp/cla/RespCourseClaInfo.java deleted file mode 100644 index 1cc63af..0000000 --- a/ruoyi-system/src/main/java/com/ruoyi/school/course/domain/resp/cla/RespCourseClaInfo.java +++ /dev/null @@ -1,40 +0,0 @@ -package com.ruoyi.school.course.domain.resp.cla; - -import lombok.Data; - -/** - * 班级列表信息 - * @author :zhangbaoyu - * @date :Created in 2020-03-23 19:36 - */ -@Data -public class RespCourseClaInfo { - - private String claId; - - private String claName; - - // 当前人数 - private Integer studentCnt; - - // 满班人数 - private String capacity; - - private String recruitStatus; - - private String openDate; - - private String courseId; - - private String courseName; - - private Long staffId; - - private String teacherName; - - private String deptName; - - // 上课星期 - private String weekDay; - -} diff --git a/ruoyi-system/src/main/java/com/ruoyi/school/course/domain/resp/cla/RespCourseClaSelectInfo.java b/ruoyi-system/src/main/java/com/ruoyi/school/course/domain/resp/cla/RespCourseClaSelectInfo.java deleted file mode 100644 index 7b14421..0000000 --- a/ruoyi-system/src/main/java/com/ruoyi/school/course/domain/resp/cla/RespCourseClaSelectInfo.java +++ /dev/null @@ -1,27 +0,0 @@ -package com.ruoyi.school.course.domain.resp.cla; - -import lombok.Data; - -/** - * 班级 select - * @author :zhangbaoyu - * @date :Created in 2020/5/6 13:11 - */ -@Data -public class RespCourseClaSelectInfo { - - private Long claId; - - private String claName; - - private Long courseId; - - private String courseName; - - private String staffName; - - private Long deptId; - - private String deptName; - -} diff --git a/ruoyi-system/src/main/java/com/ruoyi/school/course/domain/resp/course/RespSearchCourse.java b/ruoyi-system/src/main/java/com/ruoyi/school/course/domain/resp/course/RespSearchCourse.java index 747e493..03bb647 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/school/course/domain/resp/course/RespSearchCourse.java +++ b/ruoyi-system/src/main/java/com/ruoyi/school/course/domain/resp/course/RespSearchCourse.java @@ -67,4 +67,8 @@ public class RespSearchCourse implements Serializable { private BigDecimal claFee;//教练课时费 private BigDecimal tuitionFee;//课程价值 private String storeNames; + + + private String remark; + private Integer star; } diff --git a/ruoyi-system/src/main/java/com/ruoyi/school/course/domain/resp/time/ClaTimeCalendarItem.java b/ruoyi-system/src/main/java/com/ruoyi/school/course/domain/resp/time/ClaTimeCalendarItem.java index 3185ab3..d50d280 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/school/course/domain/resp/time/ClaTimeCalendarItem.java +++ b/ruoyi-system/src/main/java/com/ruoyi/school/course/domain/resp/time/ClaTimeCalendarItem.java @@ -50,6 +50,8 @@ public class ClaTimeCalendarItem { private String roomName; private String claColor; + private Integer fontSize; + private String fontColor; // 上课状态 private String claTimeStatus; @@ -66,6 +68,8 @@ public class ClaTimeCalendarItem { this.staffName = respClaTime.getStaffName(); this.roomName = respClaTime.getRoomName(); this.claColor = respClaTime.getClaColor(); + this.fontSize = respClaTime.getFontSize(); + this.fontColor = respClaTime.getFontColor(); this.claTimeStatus = respClaTime.getStatus(); this.atClassCnt=respClaTime.getAtClassCnt(); this.lessCnt=respClaTime.getLessCnt(); diff --git a/ruoyi-system/src/main/java/com/ruoyi/school/course/domain/resp/time/RespClaTime.java b/ruoyi-system/src/main/java/com/ruoyi/school/course/domain/resp/time/RespClaTime.java index 20c8b16..f4c25f5 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/school/course/domain/resp/time/RespClaTime.java +++ b/ruoyi-system/src/main/java/com/ruoyi/school/course/domain/resp/time/RespClaTime.java @@ -79,4 +79,5 @@ public class RespClaTime { private Date lastUpdateTime; // 记录人 private String lastUpdateUserName; + private String deptName; } diff --git a/ruoyi-system/src/main/java/com/ruoyi/school/course/domain/resp/time/RespClaTimeCalendar.java b/ruoyi-system/src/main/java/com/ruoyi/school/course/domain/resp/time/RespClaTimeCalendar.java index 57be5af..3929043 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/school/course/domain/resp/time/RespClaTimeCalendar.java +++ b/ruoyi-system/src/main/java/com/ruoyi/school/course/domain/resp/time/RespClaTimeCalendar.java @@ -16,6 +16,8 @@ import java.util.Date; public class RespClaTimeCalendar { private String claColor; + private Integer fontSize; + private String fontColor; private String staffName; diff --git a/ruoyi-system/src/main/java/com/ruoyi/school/course/domain/resp/time/RespClaTimeRule.java b/ruoyi-system/src/main/java/com/ruoyi/school/course/domain/resp/time/RespClaTimeRule.java index dfca153..e528554 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/school/course/domain/resp/time/RespClaTimeRule.java +++ b/ruoyi-system/src/main/java/com/ruoyi/school/course/domain/resp/time/RespClaTimeRule.java @@ -42,6 +42,7 @@ public class RespClaTimeRule { @TableField("cla_id") private String claId; + private Long courseId; /** * 规则类型 1重复排课 2单次排课 */ @@ -147,13 +148,12 @@ public class RespClaTimeRule { /** * 单次排课 选择的上课日期 */ - @TableField(exist = false) private String[] chooseDate; /** * 所属校区 */ - @TableField(exist = false) private Long deptId; + private String deptName; } diff --git a/ruoyi-system/src/main/java/com/ruoyi/school/course/mapper/ScClaTimeAttendMapper.java b/ruoyi-system/src/main/java/com/ruoyi/school/course/mapper/ScClaTimeAttendMapper.java index 03c1431..e99eb5e 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/school/course/mapper/ScClaTimeAttendMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/school/course/mapper/ScClaTimeAttendMapper.java @@ -75,16 +75,7 @@ public interface ScClaTimeAttendMapper extends com.baomidou.mybatisplus.core.map , @Param("tenantId") String tenantId); BigDecimal selectMemberByDay( @Param("tenantId") String tenantId); - /** - * 应消 会员消耗课时数量 - * - * @param beginDate - * @param endDate - * @return - */ - BigDecimal selectNeedAttendCostHour(@Param("beginDate") String beginDate - , @Param("endDate") String endDate - , @Param("tenantId") String tenantId); + /** * 教练 指定日期范围内 累计获得课时 diff --git a/ruoyi-system/src/main/java/com/ruoyi/school/course/mapper/ScClaTimeMapper.java b/ruoyi-system/src/main/java/com/ruoyi/school/course/mapper/ScClaTimeMapper.java index 7552e76..077cce5 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/school/course/mapper/ScClaTimeMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/school/course/mapper/ScClaTimeMapper.java @@ -3,10 +3,12 @@ package com.ruoyi.school.course.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.school.course.domain.ScClaTime; +import com.ruoyi.school.course.domain.ScClaTimeVo; import com.ruoyi.school.course.domain.req.time.ReqClaTimeCount; import com.ruoyi.school.course.domain.req.time.ReqSearchClaTime; import com.ruoyi.school.course.domain.resp.time.RespClaTime; import com.ruoyi.school.course.domain.resp.time.RespClaTimeCalendar; +import com.ruoyi.school.student.domain.resp.RespCourseClaStudent; import org.apache.ibatis.annotations.Param; import java.util.List; @@ -46,9 +48,21 @@ public interface ScClaTimeMapper extends BaseMapper { Integer selectClaTimeCount(ReqClaTimeCount reqClaTimeCount); Integer selectBookCount(@Param("ruleId") Long ruleId - ,@Param("claId") Long claId ,@Param("courseTimeId") String courseTimeId , @Param("tenantId") String tenantId ); + ScClaTimeVo serlectByClaTimeId(Long courseTimeId); + List selectStudenForClaTime(String courseTimeId); + + int checkTeacherConflict(@Param("teacherId")Long teacherId, + @Param("date")String date, + @Param("startTime")String startTime, + @Param("endTime")String endTime, + @Param("excludeScheduleId")String excludeScheduleId); + int checkClassroomConflict(@Param("classroomId")Long classroomId, + @Param("date")String date, + @Param("startTime")String startTime, + @Param("endTime")String endTime, + @Param("excludeScheduleId")String excludeScheduleId); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/school/course/mapper/ScClaTimeRuleMapper.java b/ruoyi-system/src/main/java/com/ruoyi/school/course/mapper/ScClaTimeRuleMapper.java index 67ec1c2..08116d0 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/school/course/mapper/ScClaTimeRuleMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/school/course/mapper/ScClaTimeRuleMapper.java @@ -34,7 +34,7 @@ public interface ScClaTimeRuleMapper extends BaseMapper { * @param day * @return */ - List selectByDay(@Param("claId")Long claId, @Param("day")String day); + List selectByDay(@Param("courseId")Long courseId, @Param("day")String day); /** * 根据id获取规则 @@ -45,8 +45,10 @@ public interface ScClaTimeRuleMapper extends BaseMapper { /** * 获取班级上课时间 - * @param claId + * @param * @return */ - List selectClaTimeInfo(Long claId); + List selectClaTimeInfo(@Param("deptId") Long deptId,@Param("courseId")Long courseId); + + } diff --git a/ruoyi-system/src/main/java/com/ruoyi/school/course/mapper/ScCourseClaMapper.java b/ruoyi-system/src/main/java/com/ruoyi/school/course/mapper/ScCourseClaMapper.java deleted file mode 100644 index 4a58004..0000000 --- a/ruoyi-system/src/main/java/com/ruoyi/school/course/mapper/ScCourseClaMapper.java +++ /dev/null @@ -1,66 +0,0 @@ -package com.ruoyi.school.course.mapper; - -import com.baomidou.mybatisplus.annotation.SqlParser; -import com.ruoyi.common.page.RespPage; -import com.ruoyi.school.course.domain.ScCourseCla; -import com.ruoyi.school.course.domain.req.cla.ReqClaCount; -import com.ruoyi.school.course.domain.req.cla.ReqCourseClaSelect; -import com.ruoyi.school.course.domain.req.cla.ReqSearchScCourseCla; -import com.ruoyi.school.course.domain.resp.cla.RespCourseClaInfo; -import com.ruoyi.school.course.domain.resp.cla.RespCourseClaSelectInfo; -import com.ruoyi.school.student.domain.resp.RespCourseClaStudent; -import org.apache.ibatis.annotations.Param; - -import java.util.List; - -/** - *

- * 课程班级信息 Mapper 接口 - *

- * - * @author zhangby - * @since 2020-03-17 01:11:06 - */ -public interface ScCourseClaMapper extends com.baomidou.mybatisplus.core.mapper.BaseMapper { - - /** - * 班级列表 - * - * @param reqSearchScCourseCla - * @param page - * @return - */ - List selectClaList(@Param("reqSearchScCourseCla") ReqSearchScCourseCla reqSearchScCourseCla, @Param("page") RespPage page); - - /** - * 班级select - * @param courseClaSelect - * @return - */ - List selectForSelect(ReqCourseClaSelect courseClaSelect); - - /** - * 班级数量 - * @param reqClaCount - * @return - */ - Integer selectClaCount(ReqClaCount reqClaCount); - - /** - * 班级数量 - * @param tenantId - * @return - */ - @SqlParser(filter = true) - Integer selectTenantClaCount(String tenantId); - - /** - * 班级在读会员数量 - * @param claId - * @return - */ - Integer selectStudentCnt(Long claId); - - - List selectStudenForClaTime(@Param("courseTimeId") String courseTimeId); -} diff --git a/ruoyi-system/src/main/java/com/ruoyi/school/course/service/BusinessClaTimeRuleService.java b/ruoyi-system/src/main/java/com/ruoyi/school/course/service/BusinessClaTimeRuleService.java index 63fc966..3965c61 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/school/course/service/BusinessClaTimeRuleService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/school/course/service/BusinessClaTimeRuleService.java @@ -35,8 +35,6 @@ public class BusinessClaTimeRuleService { @Autowired private ScClaTimeRuleMapper claTimeRuleMapper; @Autowired - private IScCourseClaService courseClaService; - @Autowired private IScRoomService roomService; /** @@ -60,6 +58,7 @@ public class BusinessClaTimeRuleService { */ @Transactional public APIResponse addClaTimeRule(ScClaTimeRule claTimeRule) { + if (!claTimeRule.checkParam()) { return APIResponse.toExceptionResponse(ApiResEnums.PARAM_FAIL); } @@ -90,10 +89,7 @@ public class BusinessClaTimeRuleService { ScClaTimeRuleVo scClaTimeRuleVo = new ScClaTimeRuleVo(); BeanUtil.copyProperties(claTimeRule,scClaTimeRuleVo); // 设置deptId - Long claId = claTimeRule.getClaId(); - ScCourseCla courseCla = courseClaService.getById(claId); - claTimeRule.setDeptId(courseCla.getDepartId()); - scClaTimeRuleVo.setDeptId(courseCla.getDepartId()); + scClaTimeRuleVo.setDeptId(claTimeRule.getDeptId()); return APIResponse.toAPIResponse(scClaTimeRuleVo); } @@ -114,7 +110,7 @@ public class BusinessClaTimeRuleService { return APIResponse.toExceptionResponse(ApiResEnums.PARAM_FAIL); } LoginUser loginUser = SecurityUtils.getLoginUser(); - Integer bookCount= claTimeService.selectBookCount(claTimeRule.getRuleId(), claTimeRule.getClaId(),null); + Integer bookCount= claTimeService.selectBookCount(claTimeRule.getRuleId(), null); if(bookCount.intValue()>0){ return APIResponse.toExceptionResponse("无法修改:相关课表中有会员预约!"); } @@ -128,7 +124,7 @@ public class BusinessClaTimeRuleService { claTimeRule.setLastUpdateTime(new Date()); boolean updateScCourseType = claTimeRuleService.updateById(claTimeRule); - claTimeService.deleteUnBeginTime(claTimeRule.getRuleId(), claTimeRule.getClaId(), loginUser.getNowTenantId()); + claTimeService.deleteUnBeginTime(claTimeRule.getRuleId(), loginUser.getNowTenantId()); saveBatchClaTime(claTimeRule); return APIResponse.toOkResponse(); @@ -149,7 +145,7 @@ public class BusinessClaTimeRuleService { //是否有会员预约 LoginUser loginUser = SecurityUtils.getLoginUser(); - Integer bookCount= claTimeService.selectBookCount(claTimeRule.getRuleId(), claTimeRule.getClaId(),null); + Integer bookCount= claTimeService.selectBookCount(claTimeRule.getRuleId(), null); if(bookCount.intValue()>0){ return APIResponse.toExceptionResponse("无法删除:相关课表中有会员预约!"); @@ -157,7 +153,7 @@ public class BusinessClaTimeRuleService { claTimeRuleService.removeById(ruleId); - claTimeService.deleteUnBeginTime(claTimeRule.getRuleId(), claTimeRule.getClaId(), loginUser.getNowTenantId()); + claTimeService.deleteUnBeginTime(claTimeRule.getRuleId(), loginUser.getNowTenantId()); return APIResponse.toOkResponse(); } @@ -170,17 +166,24 @@ public class BusinessClaTimeRuleService { * @param claTimeRule */ private void saveBatchClaTime(ScClaTimeRule claTimeRule) { - Long claId = claTimeRule.getClaId(); - ScCourseCla courseCla = courseClaService.getById(claId); - ScCourse course=courseService.getById(courseCla.getCourseId()); + + ScCourse course=courseService.getById(claTimeRule.getCourseId()); List claTimeList = claTimeRuleService.getClaTimeListByRule(claTimeRule, null); List timeList = claTimeList.stream().map(item -> { + if ( + claTimeService.checkTeacherConflict(claTimeRule.getTeacherId(), item.getClaDate(), item.getClaTimeBegin(), item.getClaTimeEnd(), null) + || + claTimeService.checkClassroomConflict(claTimeRule.getRoomId(), item.getClaDate(), item.getClaTimeBegin(), item.getClaTimeEnd(), null) + ){ + throw new RuntimeException("存在教师或教室冲突,请重新选择上课时间"); + } ScClaTime claTime = new ScClaTime(); claTime.setRuleId(claTimeRule.getRuleId()); - claTime.setClaId(claTimeRule.getClaId()); + claTime.setCourseId(claTimeRule.getCourseId()); + claTime.setDeptId(claTimeRule.getDeptId()); claTime.setClaDate(item.getClaDate()); claTime.setStartTime(item.getClaTimeBegin()); claTime.setEndTime(item.getClaTimeEnd()); @@ -188,6 +191,9 @@ public class BusinessClaTimeRuleService { claTime.setAtClassCnt(claTimeRule.getAtClassCnt()); claTime.setLessCnt(claTimeRule.getLessCnt()); claTime.setTeacherFee(course.getClaFee()); + claTime.setClaColor(claTimeRule.getClaColor()); + claTime.setFontSize(claTimeRule.getFontSize()); + claTime.setFontColor(claTimeRule.getFontColor()); // 排课 claTime.setSource("1"); // 待上课 @@ -197,10 +203,11 @@ public class BusinessClaTimeRuleService { claTime.setClassTheme(claTimeRule.getClassTheme()); claTime.setTeacherId(claTimeRule.getTeacherId()); claTime.setCreateUser(claTimeRule.getCreateUser()); - claTime.setTenantId(courseCla.getTenantId()); + claTime.setTenantId(course.getTenantId()); return claTime; }).collect(Collectors.toList()); claTimeService.saveBatch(timeList); } + } diff --git a/ruoyi-system/src/main/java/com/ruoyi/school/course/service/BusinessClaTimeService.java b/ruoyi-system/src/main/java/com/ruoyi/school/course/service/BusinessClaTimeService.java index b963a2f..94d5dca 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/school/course/service/BusinessClaTimeService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/school/course/service/BusinessClaTimeService.java @@ -1,6 +1,5 @@ package com.ruoyi.school.course.service; -import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.date.DateUnit; import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; @@ -27,11 +26,13 @@ import com.ruoyi.school.room.domain.ScRoom; import com.ruoyi.school.room.mapper.ScRoomMapper; import com.ruoyi.school.room.service.IScRoomService; import com.ruoyi.school.student.domain.req.ReqClaTimeAttend; +import com.ruoyi.school.student.domain.resp.RespCourseClaStudent; import org.apache.commons.lang3.StringUtils; import org.joda.time.DateTime; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.CollectionUtils; import java.math.BigDecimal; import java.util.*; @@ -49,8 +50,6 @@ public class BusinessClaTimeService { @Autowired private IScRoomService roomService; @Autowired - private IScCourseClaService claService; - @Autowired private IScCourseService courseService; @Autowired private ScBookCourseMapper bookCourseMapper; @@ -83,19 +82,35 @@ public class BusinessClaTimeService { return APIResponse.toOkResponse(); } - // 日历数据 格式为:时间->星期->课程 + // 1. 查询真实课表数据 + List respClaTimeList = claTimeMapper.selectListForCalendar(reqSearchClaTime); + + // 2. 根据返回的 开始时间(startHour) + 时长(claDuration) 自动生成时间段 MAP + Map AUTO_CLA_TIME_MAP = generateTimeMapFromData(respClaTimeList); + + // 3. 使用自动生成的时间段构建日历结构 Map>> claTimeCalendarMap = Maps.newHashMap(); - SysConstant.CLA_TIME_MAP.forEach((claTimeKey, claTimeValue) -> { + AUTO_CLA_TIME_MAP.forEach((claTimeKey, claTimeValue) -> { Map> weekDayMap = Maps.newHashMap(); SysConstant.WEEK_DAY_MAP.forEach((weekDayKey, weekDay) -> { - List claTimeArrayList = Lists.newArrayList(); - weekDayMap.put(weekDayKey, claTimeArrayList); + weekDayMap.put(weekDayKey, Lists.newArrayList()); }); claTimeCalendarMap.put(claTimeKey, weekDayMap); }); - - - List respClaTimeList = claTimeMapper.selectListForCalendar(reqSearchClaTime); + // ====================================================== + // 日历数据 格式为:时间->星期->课程 +// Map>> claTimeCalendarMap = Maps.newHashMap(); +// SysConstant.CLA_TIME_MAP.forEach((claTimeKey, claTimeValue) -> { +// Map> weekDayMap = Maps.newHashMap(); +// SysConstant.WEEK_DAY_MAP.forEach((weekDayKey, weekDay) -> { +// List claTimeArrayList = Lists.newArrayList(); +// weekDayMap.put(weekDayKey, claTimeArrayList); +// }); +// claTimeCalendarMap.put(claTimeKey, weekDayMap); +// }); +// +// +// List respClaTimeList = claTimeMapper.selectListForCalendar(reqSearchClaTime); // 将排课信息 入到 claTimeCalendarMap respClaTimeList.forEach(item -> { @@ -120,7 +135,7 @@ public class BusinessClaTimeService { // 每行数据 claTimeCalendarMap.forEach((claTimeKey, claTimeMap) -> { ClaTimeContainer claTimeContainer = new ClaTimeContainer(); - claTimeContainer.setTime(SysConstant.CLA_TIME_MAP.get(claTimeKey)); + claTimeContainer.setTime(AUTO_CLA_TIME_MAP.get(claTimeKey)); Map> claTimeWeekDayMap = Maps.newHashMap(); claTimeMap.forEach((weekDayKey, list) -> { @@ -142,17 +157,23 @@ public class BusinessClaTimeService { claTimeContainer.setClaTimeWeekDayMap(claTimeWeekDayMap); claTimeContainerList.add(claTimeContainer); }); - Collections.sort(claTimeContainerList, (o1, o2) -> { - int a = Integer.parseInt(o1.getTime().substring(0, 2)); - int b = Integer.parseInt(o2.getTime().substring(0, 2)); - if (a > b) { - return 1; - } else if (a < b) { - return -1; - } else { - return 0; - } - }); +// Collections.sort(claTimeContainerList, (o1, o2) -> { +// int a = Integer.parseInt(o1.getTime().substring(0, 2)); +// int b = Integer.parseInt(o2.getTime().substring(0, 2)); +// if (a > b) { +// return 1; +// } else if (a < b) { +// return -1; +// } else { +// return 0; +// } +// }); + // 按小时正序排序 + Collections.sort(claTimeContainerList, Comparator.comparingInt(o -> { + String time = o.getTime(); + return Integer.parseInt(time.substring(0, 2)); + })); + timeCalendar.setClaTimeContainer(claTimeContainerList); @@ -184,7 +205,12 @@ public class BusinessClaTimeService { return claTimeMapper.selectListForCalendar(reqSearchClaTime); } - + public APIResponse searchCourseClaStudent(ReqSearchClaTime reqSearchClaTime){ + String courseTimeId=reqSearchClaTime.getCourseTimeId(); + //预约的会员 + List scStudentList= claTimeMapper.selectStudenForClaTime(courseTimeId); + return APIResponse.toAPIResponse(scStudentList); + } /** @@ -244,8 +270,7 @@ public class BusinessClaTimeService { claTime.setRoomName(room.getRoomName()); } - ScCourseCla courseCla = claService.getById(claTime.getClaId()); - ScCourse course=courseService.getById(courseCla.getCourseId()); + ScCourse course=courseService.getById(claTime.getCourseId()); claTime.setSource("3"); LoginUser loginUser = SecurityUtils.getLoginUser(); claTime.setTeacherFee(course.getClaFee()); @@ -266,17 +291,12 @@ public class BusinessClaTimeService { if (null == courseTimeId) { return APIResponse.toAPIResponse(null); } - ScClaTime claTime = claTimeService.getById(courseTimeId); - Long claId = claTime.getClaId(); - if (null != claId) { - ScCourseCla courseCla = claService.getById(claId); - if (null != courseCla) { - claTime.setDeptId(courseCla.getDepartId()); - } - } +// ScClaTime claTime = claTimeService.getById(courseTimeId); + ScClaTimeVo scClaTimeVo =claTimeMapper.serlectByClaTimeId(courseTimeId); - ScClaTimeVo scClaTimeVo = new ScClaTimeVo(); - BeanUtil.copyProperties(claTime,scClaTimeVo); + +// ScClaTimeVo scClaTimeVo = new ScClaTimeVo(); +// BeanUtil.copyProperties(claTime,scClaTimeVo); return APIResponse.toAPIResponse(scClaTimeVo); } @@ -295,11 +315,25 @@ public class BusinessClaTimeService { return APIResponse.toExceptionResponse(ApiResEnums.PARAM_FAIL); } - ScCourseCla courseCla = claService.getById(claTime.getClaId()); + if ( + claTimeService.checkTeacherConflict(claTime.getTeacherId(), + claTime.getClaDate(), + claTime.getStartTime(), + claTime.getEndTime(), + claTime.getCourseTimeId()) + || + claTimeService.checkClassroomConflict(new Long(claTime.getRoomId()), + claTime.getClaDate(), + claTime.getEndTime(), + claTime.getEndTime(), + claTime.getCourseTimeId()) + ){ + throw new RuntimeException("存在教师或教室冲突,请重新选择上课时间"); + } LoginUser loginUser = SecurityUtils.getLoginUser(); //是否有会员预约 - Integer bookCount= claTimeService.selectBookCount(null, null,claTime.getCourseTimeId()); + Integer bookCount= claTimeService.selectBookCount(null, claTime.getCourseTimeId()); if(bookCount.intValue()>0){ return APIResponse.toExceptionResponse("无法修改:有会员预约,请联系会员取消预约后再作修改!"); @@ -313,6 +347,9 @@ public class BusinessClaTimeService { uw.set("room_name", room.getRoomName()); } uw.set("cla_date", claTime.getClaDate()); + uw.set("cla_color", claTime.getClaColor()); + uw.set("font_size", claTime.getFontSize()); + uw.set("font_color", claTime.getFontColor()); uw.set("start_time", claTime.getStartTime()); uw.set("end_time", claTime.getEndTime()); uw.set("teacher_id", claTime.getTeacherId()); @@ -345,7 +382,7 @@ public class BusinessClaTimeService { return APIResponse.toExceptionResponse("已上课,无法删除"); } //是否有会员预约 - Integer bookCount= claTimeService.selectBookCount(null, null,claTime.getCourseTimeId().toString()); + Integer bookCount= claTimeService.selectBookCount(null, claTime.getCourseTimeId().toString()); if(bookCount.intValue()>0){ return APIResponse.toExceptionResponse("无法删除:相关课表中有会员预约,请联系会员取消预约后再进行操作!"); @@ -440,5 +477,43 @@ public class BusinessClaTimeService { log.setBookId(bookId); bookCourseLogMapper.insert(log); } + /** + * 根据课表真实数据,自动生成【2小时间隔、不重叠、有序】的时间段 MAP + * 规则: + * 1. 每个时间段固定 2 小时 + * 2. 自动去重、不重叠、时间连续 + * 3. 只包含数据库中实际存在的上课时段 + */ + private Map generateTimeMapFromData(List respClaTimeList) { + // TreeMap 自动按 key 升序排列 + Map timeMap = new TreeMap<>(); + if (CollectionUtils.isEmpty(respClaTimeList)) { + timeMap=SysConstant.CLA_TIME_MAP; + return timeMap; + } + // 第一步:收集所有【合法的2小时制开始小时】(8、10、12、14、16、18...) + Set validStartHours = new HashSet<>(); + for (RespClaTimeCalendar item : respClaTimeList) { + Integer startHour = item.getStartHour(); + if (startHour == null) continue; + + // 计算属于哪个2小时时段(核心:向下取整到偶数整点) + int sectionStart = (startHour / 2) * 2; + // 限制在合理范围 0~24 + if (sectionStart >= 0 && sectionStart <= 22) { + validStartHours.add(sectionStart); + } + } + + // 第二步:生成 2小时间隔、不重叠 的时间段 + for (Integer start : validStartHours) { + int end = start + 2; + String startTime = String.format("%02d:00", start); + String endTime = String.format("%02d:00", end); + timeMap.put(start, startTime + " ~ " + endTime); + } + + return timeMap; + } } diff --git a/ruoyi-system/src/main/java/com/ruoyi/school/course/service/BusinessScCourseService.java b/ruoyi-system/src/main/java/com/ruoyi/school/course/service/BusinessScCourseService.java index 2a31d50..303c595 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/school/course/service/BusinessScCourseService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/school/course/service/BusinessScCourseService.java @@ -14,7 +14,6 @@ import com.ruoyi.core.api.ApiResEnums; import com.ruoyi.mall.domain.Product; import com.ruoyi.mall.service.ProductService; import com.ruoyi.school.course.domain.ScCourse; -import com.ruoyi.school.course.domain.ScCourseCla; import com.ruoyi.school.course.domain.ScCourseType; import com.ruoyi.school.course.domain.req.course.ReqAddScCourse; import com.ruoyi.school.course.domain.req.course.ReqChangeScCourse; @@ -94,7 +93,10 @@ public class BusinessScCourseService { qw.like("course_name", reqSelect.getSearch()); } qw.eq("tenant_id", SecurityUtils.getLoginUser().getNowTenantId()); - qw.orderByDesc("create_time"); + if (ObjectUtil.isNotEmpty(reqSelect.getDepartId())) { + qw.last(" and (JSON_CONTAINS(depart_id, CAST("+reqSelect.getDepartId()+" AS JSON)) or depart_id is null)"); + } +// qw.orderByDesc("create_time"); List list = scCourseService.list(qw); return APIResponse.toAPIResponse(list); } @@ -123,7 +125,8 @@ public class BusinessScCourseService { respScCourseDetail.setClaFee(detailInfo.getClaFee()); respScCourseDetail.setCourseCampus(ObjectUtil.isEmpty(detailInfo.getDepartId())?"全部校区":"部分校区"); respScCourseDetail.setPartCampus(detailInfo.getDepartId()); - + respScCourseDetail.setRemark(detailInfo.getRemark()); + respScCourseDetail.setStar(detailInfo.getStar()); if(null != detailInfo.getCourseTypeId()) { ScCourseType courseType = courseTypeService.getById(detailInfo.getCourseTypeId()); @@ -160,6 +163,8 @@ public class BusinessScCourseService { scCourse.setClaFee(reqAddScCourse.getClaFee()); scCourse.setDepartId(reqAddScCourse.getPartCampus()); scCourse.setTuitionFee(reqAddScCourse.getTuitionFee()); + scCourse.setRemark(reqAddScCourse.getRemark()); + scCourse.setStar(reqAddScCourse.getStar()); boolean addScCourse = scCourseService.save(scCourse); //默认班级 @@ -196,13 +201,13 @@ public class BusinessScCourseService { updateCourse.setSale("1"); // updateCourse.setDepartId(reqChangeScCourse.getPartCampus()); updateCourse.setImportId(-1L); + updateCourse.setRemark(reqChangeScCourse.getRemark()); + updateCourse.setStar(reqChangeScCourse.getStar()); boolean updateScCourse = scCourseService.updateById(updateCourse); return APIResponse.toOkResponse(); } - @Autowired - private IScCourseClaService courseClaService; @Autowired private ScMemberCardCourseService cardCourseService; /** @@ -216,14 +221,6 @@ public class BusinessScCourseService { return APIResponse.toExceptionResponse(ApiResEnums.FAIL_WAIT_A_MINUTE); } - // 如课程对应在用班级,不允许删除 - QueryWrapper qw = new QueryWrapper<>(); - qw.in("course_id", courseIds); - int courseClaCount = courseClaService.count(qw); - if (courseClaCount != 0) { - return APIResponse.toExceptionResponse("该课程下存在在用班级,无法删除课程"); - } - String arrayAsString = courseIds.stream() .map(Object::toString) // 将Long转换为String .collect(Collectors.joining(",")); // 使用逗号和空格连接字符串 diff --git a/ruoyi-system/src/main/java/com/ruoyi/school/course/service/BusinessScCourseTypeService.java b/ruoyi-system/src/main/java/com/ruoyi/school/course/service/BusinessScCourseTypeService.java index 1c5e064..2c4c918 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/school/course/service/BusinessScCourseTypeService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/school/course/service/BusinessScCourseTypeService.java @@ -151,7 +151,7 @@ public class BusinessScCourseTypeService { .map(Object::toString) // 将Long转换为String .collect(Collectors.joining(",")); // 使用逗号和空格连接字符串 - int cardTypes= memberCardTypesService.count(new QueryWrapper() + int cardTypes= memberCardTypesService.count(new QueryWrapper() .last(" and JSON_CONTAINS(course_types, CAST("+arrayAsString+" AS JSON))")); if (cardTypes != 0) { return APIResponse.toExceptionResponse("已有会员卡项使用,无法删除"); diff --git a/ruoyi-system/src/main/java/com/ruoyi/school/course/service/IScClaTimeRuleService.java b/ruoyi-system/src/main/java/com/ruoyi/school/course/service/IScClaTimeRuleService.java index d42755b..594c52f 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/school/course/service/IScClaTimeRuleService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/school/course/service/IScClaTimeRuleService.java @@ -75,6 +75,6 @@ public interface IScClaTimeRuleService extends IService { * @param claId * @return */ - List selectClaTimeInfo(Long claId); + List selectClaTimeInfo(Long deptId,Long courseId); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/school/course/service/IScClaTimeService.java b/ruoyi-system/src/main/java/com/ruoyi/school/course/service/IScClaTimeService.java index a3e666f..c575652 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/school/course/service/IScClaTimeService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/school/course/service/IScClaTimeService.java @@ -21,7 +21,7 @@ public interface IScClaTimeService extends IService { * @param tenantId * @return */ - boolean deleteUnBeginTime(Long ruleId, Long claId, String tenantId); + boolean deleteUnBeginTime(Long ruleId, String tenantId); /** * 排课总数量 @@ -36,6 +36,28 @@ public interface IScClaTimeService extends IService { * @param claId * @return */ - Integer selectBookCount( Long ruleId, Long claId,String courseTimeId); + Integer selectBookCount( Long ruleId, String courseTimeId); + + /** + * 检查教师冲突 + * @param teacherId + * @param date + * @param startTime + * @param endTime + * @param excludeScheduleId + * @return + */ + boolean checkTeacherConflict(Long teacherId, String date, String startTime, String endTime, String excludeScheduleId); + + /** + * 检查教室冲突 + * @param classroomId + * @param date + * @param startTime + * @param endTime + * @param excludeSchedule + * @return + */ + boolean checkClassroomConflict(Long classroomId, String date, String startTime, String endTime, String excludeSchedule); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/school/course/service/IScCourseClaService.java b/ruoyi-system/src/main/java/com/ruoyi/school/course/service/IScCourseClaService.java deleted file mode 100644 index 59a9dc4..0000000 --- a/ruoyi-system/src/main/java/com/ruoyi/school/course/service/IScCourseClaService.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.ruoyi.school.course.service; - -import com.ruoyi.school.course.domain.ScCourseCla; -import com.ruoyi.core.api.APIBaseResponse; -import com.baomidou.mybatisplus.extension.service.IService; - -/** - *

- * 课程班级信息 服务类 - *

- * - * @author zhangby - * @since 2020-03-17 01:11:06 - */ -public interface IScCourseClaService extends IService { - - - - /** - * 是否允许变更 班级所属课程 - * @param claId - * @return - */ - APIBaseResponse canChangeCourse(Long claId); - -} diff --git a/ruoyi-system/src/main/java/com/ruoyi/school/course/service/impl/BusinessScCourseClaService.java b/ruoyi-system/src/main/java/com/ruoyi/school/course/service/impl/BusinessScCourseClaService.java deleted file mode 100644 index 36f93f3..0000000 --- a/ruoyi-system/src/main/java/com/ruoyi/school/course/service/impl/BusinessScCourseClaService.java +++ /dev/null @@ -1,299 +0,0 @@ -package com.ruoyi.school.course.service.impl; - -import cn.hutool.core.bean.BeanUtil; -import cn.hutool.core.util.ObjectUtil; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.google.common.collect.Maps; -import com.ruoyi.common.core.domain.entity.SysDept; -import com.ruoyi.common.core.domain.entity.SysUser; -import com.ruoyi.common.core.domain.model.LoginUser; -import com.ruoyi.common.page.RespPage; -import com.ruoyi.common.utils.SecurityUtils; -import com.ruoyi.core.api.APIBaseResponse; -import com.ruoyi.core.api.APIResponse; -import com.ruoyi.core.api.ApiResEnums; -import com.ruoyi.school.course.domain.ScClaTime; -import com.ruoyi.school.course.domain.ScCourse; -import com.ruoyi.school.course.domain.ScCourseCla; -import com.ruoyi.school.course.domain.ScCourseClaVo; -import com.ruoyi.school.course.domain.req.cla.ReqAddScCourseCla; -import com.ruoyi.school.course.domain.req.cla.ReqSearchScCourseCla; -import com.ruoyi.school.course.domain.req.time.ReqSearchClaTime; -import com.ruoyi.school.course.domain.resp.cla.RespClaAllDetailInfo; -import com.ruoyi.school.course.domain.resp.cla.RespCourseClaInfo; -import com.ruoyi.school.course.domain.resp.course.ScCourseVo; -import com.ruoyi.school.course.mapper.ScCourseClaMapper; -import com.ruoyi.school.course.service.*; -import com.ruoyi.school.student.domain.resp.RespCourseClaStudent; -import com.ruoyi.school.student.service.IScStudentService; -import com.ruoyi.system.service.ISysDeptService; -import com.ruoyi.system.service.ISysUserService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - -import java.util.Arrays; -import java.util.Date; -import java.util.List; -import java.util.Map; - -/** - * @author :zhangbaoyu - * @date :Created in 2020-01-14 17:24 - */ -@Service -@Transactional -public class BusinessScCourseClaService { - - @Autowired - private IScCourseClaService scCourseClaService; - @Autowired - private IScCourseService courseService; - - @Autowired - private ScCourseClaMapper scCourseClaMapper; - @Autowired - private IScStudentService studentService; - - @Autowired - private ISysDeptService deptService; - @Autowired - private IScClaTimeService claTimeService; - - @Autowired - private ISysUserService userService; - - - // - public APIResponse searchCourseClaStudent(ReqSearchClaTime reqSearchClaTime){ - String courseTimeId=reqSearchClaTime.getCourseTimeId(); - //预约的会员 - List scStudentList= scCourseClaMapper.selectStudenForClaTime(courseTimeId); - return APIResponse.toAPIResponse(scStudentList); - } - - - - - /** - * 查询 - * - * @param reqSearchScCourseCla - * @return - */ - public APIResponse searchList(ReqSearchScCourseCla reqSearchScCourseCla) { - com.ruoyi.common.page.RespPage page = new RespPage<>(reqSearchScCourseCla.getPageNum(), reqSearchScCourseCla.getPageSize()); - String nowTenantId = SecurityUtils.getLoginUser().getNowTenantId(); - reqSearchScCourseCla.setTenantId(nowTenantId); - List claList = scCourseClaMapper.selectClaList(reqSearchScCourseCla, page); - page.setRows(claList); - return APIResponse.toAPIResponse(page); - } - - /** - * 详情 - * - * @param claId - * @return - */ - public APIResponse detailById(Long claId) { - if (null == claId) { - return APIResponse.toAPIResponse(null); - } - Map resultMap = Maps.newHashMap(); - // 班级信息 - ScCourseCla detailInfo = scCourseClaService.getById(claId); - - if (null == detailInfo) { - return APIResponse.toAPIResponse(null); - } - - ScCourseClaVo scCourseCla = new ScCourseClaVo(); - BeanUtil.copyProperties(detailInfo,scCourseCla); - scCourseCla.setClaId(detailInfo.getClaId().toString()); - scCourseCla.setCourseId(detailInfo.getCourseId().toString()); - // 课程信息 - ScCourse scCourse = courseService.getById(detailInfo.getCourseId()); - - ScCourseVo scCourseVo = new ScCourseVo(); - BeanUtil.copyProperties(scCourse,scCourseVo); - scCourseVo.setCourseId(scCourse.getCourseId().toString()); - - // 是否允许变更课程,有报名不允许变更课程 - APIBaseResponse canChangeCourse = scCourseClaService.canChangeCourse(claId); - resultMap.put("canChangeCourse", canChangeCourse.isSuccess()); - - resultMap.put("claInfo", scCourseCla); - resultMap.put("claCourseInfo", scCourseVo); - - return APIResponse.toAPIResponse(resultMap); - } - - - - @Autowired - private IScClaTimeRuleService claTimeRuleService; - - /** - * 班级详情 - * - * @param claId - * @return - */ - public RespClaAllDetailInfo allDetailInfoById(Long claId) { - if (null == claId) { - return null; - } - // 班级信息 - ScCourseCla courseCla = scCourseClaService.getById(claId); - - if (null == courseCla) { - return null; - } - - ScCourseClaVo scCourseClaVo = new ScCourseClaVo(); - BeanUtil.copyProperties(courseCla,scCourseClaVo); - scCourseClaVo.setClaId(courseCla.getClaId().toString()); - - // 课程信息 - ScCourse scCourse = courseService.getById(courseCla.getCourseId()); - - ScCourseVo scCourseVo = new ScCourseVo(); - BeanUtil.copyProperties(scCourse,scCourseVo); - scCourseVo.setCourseId(scCourse.getCourseId().toString()); - - // 校区 - if (null != courseCla.getDepartId()) { - SysDept sysDept = deptService.getById(courseCla.getDepartId()); - scCourseClaVo.setDeptName(sysDept.getDeptName()); - } - - // 教练 - if (null != courseCla.getStaffId()) { - SysUser staff = userService.selectUserById(courseCla.getStaffId()); - scCourseClaVo.setTeacherName(staff.getNickName()); - } - - // 上课时间 - List claTimeInfo = claTimeRuleService.selectClaTimeInfo(claId); - - return RespClaAllDetailInfo.builder() - .courseCla(scCourseClaVo) - .course(scCourseVo) - .claTimeList(claTimeInfo) - .build(); - } - - /** - * 添加 - * - * @param scCourseCla - * @return - */ - public APIResponse addScCourseCla(ReqAddScCourseCla scCourseCla) { - - LoginUser loginUser = SecurityUtils.getLoginUser(); - - // 课程编号是否存在 - ScCourse course = courseService.getById(scCourseCla.getCourseId()); - if (null == course) { - return APIResponse.toExceptionResponse("课程不存在,请重新选择后提交。"); - } - // 新建班级 - ScCourseCla cla = scCourseCla.getScCourseCla(loginUser); - - - // 教练是否存在 - SysUser teacher = userService.selectUserById(scCourseCla.getStaffId()); - if (ObjectUtil.isEmpty(teacher)) { - return APIResponse.toExceptionResponse("教练不存在,请重新选择后提交。"); - - } - cla.setTeacherName(teacher.getNickName()); - - APIBaseResponse checkParam = cla.checkParam(); - if (!checkParam.isSuccess()) { - return APIResponse.toExceptionResponse(checkParam.getRespMsg()); - } - boolean addScCourseCla = scCourseClaService.save(cla); - if (addScCourseCla) { - return APIResponse.toOkResponse(); - } else { - return APIResponse.toExceptionResponse(ApiResEnums.FAIL_WAIT_A_MINUTE); - } - } - - /** - * 更新 - * - * @param scCourseCla - * @return - */ - public APIResponse updateScCourseCla(ScCourseCla scCourseCla) { - if (null == scCourseCla.getClaId()) { - return APIResponse.toExceptionResponse(ApiResEnums.FAIL_WAIT_A_MINUTE); - } - - ScCourseCla dbClaInfo = scCourseClaService.getById(scCourseCla.getClaId()); - Long dbCourseId = dbClaInfo.getCourseId(); - - // 课程编号是否存在 - ScCourse course = courseService.getById(scCourseCla.getCourseId()); - if (null == course) { - return APIResponse.toExceptionResponse("课程不存在,请重新选择后提交。"); - } - - // 教练是否存在 - SysUser teacher = userService.selectUserById(scCourseCla.getStaffId()); - if (null == teacher) { - return APIResponse.toExceptionResponse("教练不存在,请重新选择后提交。"); - } - - // 修改课程,校验是否允许修改所属课程 - if (!dbCourseId.equals(scCourseCla.getCourseId())) { - APIBaseResponse canChangeCourse = scCourseClaService.canChangeCourse(scCourseCla.getClaId()); - if (!canChangeCourse.isSuccess()) { - return APIResponse.toExceptionResponse(canChangeCourse.getRespMsg()); - } - } - - LoginUser loginUser = SecurityUtils.getLoginUser(); - scCourseCla.setTeacherName(teacher.getNickName()); - scCourseCla.setLastUpdateUser(loginUser.getUserId()); - scCourseCla.setLastUpdateTime(new Date()); - boolean updateScCourseCla = scCourseClaService.updateById(scCourseCla); - if (updateScCourseCla) { - return APIResponse.toOkResponse(); - } else { - return APIResponse.toExceptionResponse(ApiResEnums.FAIL_WAIT_A_MINUTE); - } - } - - /** - * 删除 - * - * @param claIds - * @return - */ - public APIResponse deleteById(Long[] claIds) { - if (null == claIds || claIds.length == 0) { - return APIResponse.toExceptionResponse(ApiResEnums.FAIL_WAIT_A_MINUTE); - } - - // 已排课不允许删除 - QueryWrapper qwSct = new QueryWrapper<>(); - qwSct.in("cla_id", claIds); - int claTimeCount = claTimeService.count(qwSct); - if (claTimeCount != 0) { - return APIResponse.toExceptionResponse("该班级已排课,无法删除班级"); - } - - boolean deleteScCourseCla = scCourseClaService.removeByIds(Arrays.asList(claIds)); - - if (deleteScCourseCla) { - return APIResponse.toOkResponse(); - } else { - return APIResponse.toExceptionResponse(ApiResEnums.FAIL_WAIT_A_MINUTE); - } - } -} diff --git a/ruoyi-system/src/main/java/com/ruoyi/school/course/service/impl/ScClaTimeRuleServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/school/course/service/impl/ScClaTimeRuleServiceImpl.java index 985d946..4de3509 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/school/course/service/impl/ScClaTimeRuleServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/school/course/service/impl/ScClaTimeRuleServiceImpl.java @@ -293,7 +293,7 @@ public class ScClaTimeRuleServiceImpl extends ServiceImpl selectClaTimeInfo(Long claId) { - return baseMapper.selectClaTimeInfo(claId); + public List selectClaTimeInfo(Long deptId,Long courseId) { + return baseMapper.selectClaTimeInfo(deptId,courseId); } } diff --git a/ruoyi-system/src/main/java/com/ruoyi/school/course/service/impl/ScClaTimeServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/school/course/service/impl/ScClaTimeServiceImpl.java index 189bef3..1cc58ad 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/school/course/service/impl/ScClaTimeServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/school/course/service/impl/ScClaTimeServiceImpl.java @@ -21,12 +21,10 @@ import org.springframework.stereotype.Service; public class ScClaTimeServiceImpl extends ServiceImpl implements IScClaTimeService { @Override - public boolean deleteUnBeginTime(Long ruleId, Long claId, String tenantId) { + public boolean deleteUnBeginTime(Long ruleId, String tenantId) { UpdateWrapper uw = new UpdateWrapper(); uw.eq("rule_id", ruleId); - uw.eq("cla_id", claId); uw.in("status", "1"); - uw.exists("select 1 from sc_course_cla b where sc_cla_time.cla_id = b.cla_id and b.tenant_id='" + tenantId + "'"); return this.remove(uw); } @@ -35,8 +33,27 @@ public class ScClaTimeServiceImpl extends ServiceImpl0){ + return true; + } + return false; + } + + // 检查教室冲突 + public boolean checkClassroomConflict(Long classroomId, String date, String startTime, String endTime, String excludeScheduleId) { + // 查询该教室在同一天内,时间段重叠的排期 + int i= baseMapper.checkClassroomConflict(classroomId, date, startTime, endTime, excludeScheduleId); + if(i>0){ + return true; + } + return false; + } } diff --git a/ruoyi-system/src/main/java/com/ruoyi/school/course/service/impl/ScCourseClaServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/school/course/service/impl/ScCourseClaServiceImpl.java deleted file mode 100644 index a6223a3..0000000 --- a/ruoyi-system/src/main/java/com/ruoyi/school/course/service/impl/ScCourseClaServiceImpl.java +++ /dev/null @@ -1,46 +0,0 @@ -package com.ruoyi.school.course.service.impl; - -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.ruoyi.core.api.APIBaseResponse; -import com.ruoyi.school.course.domain.ScCourseCla; -import com.ruoyi.school.course.mapper.ScCourseClaMapper; -import com.ruoyi.school.course.service.IScClaTimeService; -import com.ruoyi.school.course.service.IScCourseClaService; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; - -/** - *

- * 课程班级信息 服务实现类 - *

- * - * @author zhangby - * @since 2020-03-17 01:11:06 - */ -@Service -public class ScCourseClaServiceImpl extends ServiceImpl implements IScCourseClaService { - - - @Autowired - private IScClaTimeService claTimeService; - //todo 当前是否有人预约 - - @Override - public APIBaseResponse canChangeCourse(Long claId) { -// QueryWrapper qw = new QueryWrapper<>(); -// qw.eq("cla_id", claId); -// int count = studentCourseService.count(qw); -// if (count != 0) { -// return APIBaseResponse.fail("当前班级有报读会员,无法变更所属课程."); -// } -// -// QueryWrapper qwClaTime = new QueryWrapper<>(); -// qwClaTime.eq("cla_id", claId); -// qwClaTime.eq("status", ClaTimeStatusEnums.HAD_CLASS.getStatus()); -// int hadClaTimeCount = claTimeService.count(qwClaTime); -// if (hadClaTimeCount != 0) { -// return APIBaseResponse.fail("当前班级已有上课记录,无法变更所属课程."); -// } - return APIBaseResponse.success(); - } -} diff --git a/ruoyi-system/src/main/java/com/ruoyi/school/dashboard/service/DashboardService.java b/ruoyi-system/src/main/java/com/ruoyi/school/dashboard/service/DashboardService.java index f23ca53..e3f7e34 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/school/dashboard/service/DashboardService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/school/dashboard/service/DashboardService.java @@ -5,12 +5,10 @@ import cn.hutool.core.date.DateUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.school.course.domain.ScCourse; -import com.ruoyi.school.course.domain.ScCourseCla; import com.ruoyi.school.course.domain.req.time.ReqClaTimeCount; import com.ruoyi.school.course.enums.ClaTimeAttendStatusEnums; import com.ruoyi.school.course.service.IScClaTimeAttendService; import com.ruoyi.school.course.service.IScClaTimeService; -import com.ruoyi.school.course.service.IScCourseClaService; import com.ruoyi.school.course.service.IScCourseService; import com.ruoyi.school.dashboard.domain.resp.DashboardData; import com.ruoyi.school.member.domain.ScStudent; @@ -42,8 +40,7 @@ public class DashboardService { @Autowired private IScOrderService orderService; - @Autowired - private IScCourseClaService claService; + @Autowired private IScClaTimeService claTimeService; @@ -66,7 +63,6 @@ public class DashboardService { String thisMonthEnd = DateUtil.endOfMonth(DateTime.now()).toString("yyyy-MM-dd"); String tenantId=SecurityUtils.getLoginUser().getNowTenantId(); - int claCnt = claService.count(new QueryWrapper().eq("tenant_id",tenantId)); int courseCnt = courseService.count(new QueryWrapper().eq("tenant_id",tenantId)); int studentCnt = studentService.count(new QueryWrapper().eq("tenant_id",tenantId)); //排课数 @@ -104,7 +100,7 @@ public class DashboardService { // .todayNeedCostHour(todayNeedCostHour) .todayRealCostHour(todayRealCostHour) .studentCnt(studentCnt) - .claCnt(claCnt) +// .claCnt(claCnt) .courseCnt(courseCnt) .feeWillExpireCnt(feeWillExpireCnt) .dateWillExpireCnt(dateWillExpireCnt) diff --git a/ruoyi-system/src/main/java/com/ruoyi/school/member/mapper/ScMemberCardMapper.java b/ruoyi-system/src/main/java/com/ruoyi/school/member/mapper/ScMemberCardMapper.java index 642471c..8f2d5de 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/school/member/mapper/ScMemberCardMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/school/member/mapper/ScMemberCardMapper.java @@ -45,6 +45,7 @@ public interface ScMemberCardMapper extends BaseMapper { @Select("SELECT count(1) FROM sc_member_cards WHERE remaining_total_fee <= #{fee} AND status = 'ACTIVE' AND is_deleted = 0") Integer selectFeeWillExpireCards(@Param("fee") Integer fee); + @Select("SELECT count(1) FROM sc_member_cards WHERE remaining_count <= #{hour} AND status = 'ACTIVE' AND is_deleted = 0") Integer selectHourWillExpireCards(@Param("hour") Integer hour); diff --git a/ruoyi-system/src/main/java/com/ruoyi/school/member/service/ScMemberCardTypesService.java b/ruoyi-system/src/main/java/com/ruoyi/school/member/service/ScMemberCardTypesService.java index accef85..31e8dd6 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/school/member/service/ScMemberCardTypesService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/school/member/service/ScMemberCardTypesService.java @@ -1,14 +1,11 @@ package com.ruoyi.school.member.service; import com.baomidou.mybatisplus.extension.service.IService; -import com.ruoyi.core.api.APIResponse; -import com.ruoyi.school.course.domain.req.course.ReqBusinessOrderCourseDetail; import com.ruoyi.school.member.domain.ScMemberCardTypes; public interface ScMemberCardTypesService extends IService { - APIResponse orderCardTypeDetail(ReqBusinessOrderCourseDetail orderCourseDetail); void memberTypeDetail(ScMemberCardTypes l); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/school/member/service/impl/ScMemberCardServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/school/member/service/impl/ScMemberCardServiceImpl.java index 215f1ad..ff688d6 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/school/member/service/impl/ScMemberCardServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/school/member/service/impl/ScMemberCardServiceImpl.java @@ -11,10 +11,12 @@ import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.common.page.RespPage; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.core.api.APIResponse; -import com.ruoyi.school.course.domain.*; +import com.ruoyi.school.course.domain.ScBookCourse; +import com.ruoyi.school.course.domain.ScClaTime; +import com.ruoyi.school.course.domain.ScClaTimeAttend; +import com.ruoyi.school.course.domain.ScCourse; import com.ruoyi.school.course.enums.ClaTimeStatusEnums; import com.ruoyi.school.course.mapper.ScClaTimeMapper; -import com.ruoyi.school.course.mapper.ScCourseClaMapper; import com.ruoyi.school.course.mapper.ScCourseMapper; import com.ruoyi.school.course.service.IScClaTimeAttendService; import com.ruoyi.school.course.service.impl.ScBookCourseServiceImpl; @@ -225,8 +227,6 @@ public class ScMemberCardServiceImpl extends ServiceImpl memberCardVOS= memberCardService.getMemberCards(studentId); - - RespBusinessChooseCourseInfo chooseCourseInfo = RespBusinessChooseCourseInfo.builder() - .cardTypeId(memberCardType.getCardTypeId()) - .cardTypeName(memberCardType.getCardName()) - .continueCourse(memberCardVOS.size()>0?true:false) -// .deptId(sysDept.getDeptId()) -// .deptName(sysDept.getDeptName()) -// .teachingMode(scCourse.getTeachingMode()) - .build(); - return APIResponse.toAPIResponse(chooseCourseInfo); - } } diff --git a/ruoyi-system/src/main/java/com/ruoyi/school/student/service/BusinessScStudentService.java b/ruoyi-system/src/main/java/com/ruoyi/school/student/service/BusinessScStudentService.java index 5b3a558..884f673 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/school/student/service/BusinessScStudentService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/school/student/service/BusinessScStudentService.java @@ -120,6 +120,7 @@ public class BusinessScStudentService { appUser.setNickName(scStudent.getStudentName()); appUser.setPhoneNumber(scStudent.getPhone()); appUser.setPassword(SecurityUtils.encryptPassword(scStudent.getPhone())); + appUser.setVisitStore(SecurityUtils.getLoginUser().getDeptId()); appUser.setStatus(1); appUserService.save(appUser); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/columns/impl/SysTeacherServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/columns/impl/SysTeacherServiceImpl.java index d286d28..b9382e1 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/columns/impl/SysTeacherServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/columns/impl/SysTeacherServiceImpl.java @@ -5,10 +5,8 @@ import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.core.domain.entity.SysUser; import com.ruoyi.school.course.domain.ScClaTime; import com.ruoyi.school.course.domain.ScClaTimeRule; -import com.ruoyi.school.course.domain.ScCourseCla; import com.ruoyi.school.course.service.IScClaTimeRuleService; import com.ruoyi.school.course.service.IScClaTimeService; -import com.ruoyi.school.course.service.IScCourseClaService; import com.ruoyi.school.member.domain.ScMemberCardTypes; import com.ruoyi.school.member.service.ScMemberCardTypesService; import com.ruoyi.system.domain.columns.SysTeacher; @@ -33,8 +31,7 @@ public class SysTeacherServiceImpl implements ISysTeacherService @Autowired private SysTeacherMapper sysTeacherMapper; - @Autowired - private IScCourseClaService claService; + @Autowired private IScClaTimeRuleService claTimeRuleService; @Autowired @@ -138,10 +135,7 @@ public class SysTeacherServiceImpl implements ISysTeacherService public boolean isUsed(List userIds){ - int claCount=claService.count(new QueryWrapper().in("staff_id", userIds)); - if (claCount>0 ){ - return true; - } + int timeRuleCount=claTimeRuleService.count(new QueryWrapper().in("teacher_id",userIds)); if (timeRuleCount>0 ){ return true; diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java index 793724c..996e44e 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDeptServiceImpl.java @@ -14,9 +14,9 @@ import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.spring.SpringUtils; import com.ruoyi.common.utils.uuid.IdGenerator; +import com.ruoyi.school.course.domain.ScClaTime; import com.ruoyi.school.course.domain.ScCourse; -import com.ruoyi.school.course.domain.ScCourseCla; -import com.ruoyi.school.course.service.IScCourseClaService; +import com.ruoyi.school.course.service.IScClaTimeService; import com.ruoyi.school.course.service.IScCourseService; import com.ruoyi.school.room.domain.ScRoom; import com.ruoyi.school.room.service.IScRoomService; @@ -54,7 +54,7 @@ public class SysDeptServiceImpl extends ServiceImpl imp @Autowired private IScCourseService courseService; @Autowired - private IScCourseClaService claService; + private IScClaTimeService claTimeService; @Autowired private IScRoomService roomService; @@ -66,8 +66,9 @@ public class SysDeptServiceImpl extends ServiceImpl imp if (courseCount>0){ return true; } - int claCount= claService.count(new QueryWrapper() - .eq("depart_id",deptId)); + //已排课 + int claCount= claTimeService.count(new QueryWrapper() + .eq("dept_id",deptId)); if (claCount>0){ return true; } @@ -265,7 +266,7 @@ public class SysDeptServiceImpl extends ServiceImpl imp throw new ServiceException("部门停用,不允许新增"); } dept.setAncestors(info.getAncestors() + "," + dept.getParentId()); - dept.setTenantId(SecurityUtils.getLoginUser().getNowTenantId()); + dept.setTenantId(info.getTenantId()); dept.setDeptId(IdGenerator.nextId()); int i= deptMapper.insertDept(dept); if (dept.getDeptType().equals("2")){ diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysTenantServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysTenantServiceImpl.java index 22ceb6d..2d1d08d 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysTenantServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysTenantServiceImpl.java @@ -167,6 +167,8 @@ public class SysTenantServiceImpl extends ServiceImpl + + + + + + + UPDATE mall_product_show + SET show_flag = '1', apply_status = '3' + WHERE show_start_time = CURDATE(); + + + UPDATE mall_product_show + SET show_flag = '0', apply_status = '4' + WHERE show_end_time = DATE_SUB(CURDATE(), INTERVAL 1 DAY); + + diff --git a/ruoyi-system/src/main/resources/mapper/school/course/ScBookCourseMapper.xml b/ruoyi-system/src/main/resources/mapper/school/course/ScBookCourseMapper.xml index 73a2541..ec61136 100644 --- a/ruoyi-system/src/main/resources/mapper/school/course/ScBookCourseMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/school/course/ScBookCourseMapper.xml @@ -9,9 +9,7 @@ a.id as book_id, a.book_status, c.course_time_id, - b.cla_name, - b.cla_color, - b.cla_pic, + c.cla_color, c.cla_date, c.start_time, c.end_time, @@ -22,13 +20,11 @@ d.store_name from - sc_book_course a, - sc_course_cla b, sc_cla_time c, yj_store d - where b.cla_id=c.cla_id and a.course_time_id =c.course_time_id - and b.depart_id=d.dept_id + where a.course_time_id =c.course_time_id + and c.dept_id=d.dept_id and a.student_id=#{studentId} ORDER BY a.create_time @@ -47,20 +43,17 @@ b.start_time, b.end_time, c.teacher_name, - d.cla_name, e.store_name from sc_book_course a, sc_cla_time b, sys_teacher c, - sc_course_cla d, yj_store e WHERE a.course_time_id=b.course_time_id and b.teacher_id=c.user_id - and b.cla_id=d.cla_id - and d.depart_id=e.dept_id + and b.dept_id=e.dept_id and a.id=#{bookId} diff --git a/ruoyi-system/src/main/resources/mapper/school/course/ScClaTimeAttendMapper.xml b/ruoyi-system/src/main/resources/mapper/school/course/ScClaTimeAttendMapper.xml index e95352d..6b319d4 100644 --- a/ruoyi-system/src/main/resources/mapper/school/course/ScClaTimeAttendMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/school/course/ScClaTimeAttendMapper.xml @@ -12,12 +12,10 @@ cta.pay_hour, cta.pay_fee, cta.memo, - ct.real_cla_date,ct.real_start_time,ct.real_end_time,cta.create_time, - scc.cla_name + ct.real_cla_date,ct.real_start_time,ct.real_end_time,cta.create_time from sc_cla_time_attend cta left join sc_student s on cta.student_id=s.student_id left join sc_cla_time ct on cta.course_time_id=ct.course_time_id - left join sc_course_cla scc on cta.cla_id=scc.cla_id where s.tenant_id=#{reqSearchScClaTimeAttend.tenantId} and cta.course_time_id=#{reqSearchScClaTimeAttend.courseTimeId} @@ -35,7 +33,7 @@ and cta.attend_status=#{reqSearchScClaTimeAttend.attendStatus} - and scc.depart_id=#{reqSearchScClaTimeAttend.deptId} + and ct.dept_id=#{reqSearchScClaTimeAttend.deptId} order by cta.attend_id desc @@ -73,35 +71,19 @@ and expiry_date > CURDATE() and tenant_id=#{tenantId} - diff --git a/ruoyi-system/src/main/resources/mapper/school/course/ScClaTimeMapper.xml b/ruoyi-system/src/main/resources/mapper/school/course/ScClaTimeMapper.xml index 90886c7..a47db02 100644 --- a/ruoyi-system/src/main/resources/mapper/school/course/ScClaTimeMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/school/course/ScClaTimeMapper.xml @@ -4,7 +4,6 @@ select ct.course_time_id, - ct.cla_id, - cc.cla_name, course.course_id, course.course_name, ct.teacher_id, @@ -86,31 +81,27 @@ ct.at_class_cnt, ct.less_cnt, ct.memo, + (select dept.dept_name from sys_dept dept where dept.dept_id= ct.dept_id) as dept_name, (select u.user_name from sys_user u where u.user_id=ct.last_update_user) as last_update_user_name, (select sum(cta.pay_fee) from sc_cla_time_attend cta where cta.course_time_id=ct.course_time_id) as pay_total_fee, (select sum(cta.pay_hour) from sc_cla_time_attend cta where cta.course_time_id=ct.course_time_id) as pay_total_hour, ct.create_time, ct.last_update_time - from sc_course_cla cc - left join sc_course course on cc.course_id=course.course_id, - sc_cla_time ct + from sc_cla_time ct + left join sc_course course on ct.course_id=course.course_id left join sys_user s on ct.teacher_id=s.user_id - where cc.cla_id = ct.cla_id - and cc.tenant_id=#{searchClaTime.tenantId} + where course.tenant_id=#{searchClaTime.tenantId} and ct.cla_date between #{searchClaTime.beginDate} and #{searchClaTime.endDate} - - and ct.cla_id=#{searchClaTime.claId} - - and cc.depart_id=#{searchClaTime.deptId} + and ct.dept_id=#{searchClaTime.deptId} and ct.teacher_id=#{searchClaTime.teacherId} - and cc.course_id = #{searchClaTime.courseId} + and ct.course_id = #{searchClaTime.courseId} and ct.status = '1' @@ -128,8 +119,8 @@ + + + + diff --git a/ruoyi-system/src/main/resources/mapper/school/course/ScClaTimeRuleMapper.xml b/ruoyi-system/src/main/resources/mapper/school/course/ScClaTimeRuleMapper.xml index e914895..c733aa9 100644 --- a/ruoyi-system/src/main/resources/mapper/school/course/ScClaTimeRuleMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/school/course/ScClaTimeRuleMapper.xml @@ -4,25 +4,20 @@ + + diff --git a/ruoyi-system/src/main/resources/mapper/school/course/ScCourseClaMapper.xml b/ruoyi-system/src/main/resources/mapper/school/course/ScCourseClaMapper.xml deleted file mode 100644 index ebe607c..0000000 --- a/ruoyi-system/src/main/resources/mapper/school/course/ScCourseClaMapper.xml +++ /dev/null @@ -1,109 +0,0 @@ - - - - - - - - - - - - - diff --git a/ruoyi-system/src/main/resources/mapper/school/course/ScCourseMapper.xml b/ruoyi-system/src/main/resources/mapper/school/course/ScCourseMapper.xml index 183b47b..e43e231 100644 --- a/ruoyi-system/src/main/resources/mapper/school/course/ScCourseMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/school/course/ScCourseMapper.xml @@ -7,7 +7,6 @@ a.course_type_id, b.course_type as course_type_name, a.teaching_mode, - (select count(1) from sc_course_cla cc where a.course_id=cc.course_id) as cla_count, TRIM(LEADING '[' FROM TRIM(TRAILING ']' FROM CONVERT(a.depart_id, CHAR))) as campus_ids, (SELECT GROUP_CONCAT(c.dept_name SEPARATOR ',') FROM sys_dept c @@ -17,7 +16,9 @@ a.sale, a.course_intro, a.cla_fee, - a.tuition_fee + a.tuition_fee, + a.star, + a.remark from sc_course a left join sc_course_type b on a.course_type_id = b.course_type_id and b.in_use='1' where a.delete_flag='0' and a.tenant_id=#{reqSearchScCourse.tenantId} @@ -44,7 +45,6 @@ a.course_name, b.course_type as course_type_name, a.teaching_mode, - (select count(1) from sc_course_cla cc where a.course_id=cc.course_id) as cla_count, TRIM(LEADING '[' FROM TRIM(TRAILING ']' FROM CONVERT(a.depart_id, CHAR))) as campus_ids, a.create_time, a.sale, diff --git a/ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml index 64f6b92..9e23a69 100644 --- a/ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml @@ -23,11 +23,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" + + select d.dept_id, d.parent_id, d.ancestors, d.dept_name, d.order_num, d.leader, d.phone, d.email, d.status, d.delete_flag, d.create_by - , d.create_time,d.leader_id,d.dept_type,d.tenant_id + , d.create_time,d.leader_id,d.dept_type,d.tenant_id,expiry_date,activation_date from sys_dept d @@ -112,6 +114,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" dept_type, status, create_by, + activation_date, + expiry_date, create_time )values( #{deptId}, @@ -122,10 +126,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" #{leader}, #{phone}, #{email}, - #{tenantId}, - #{deptType}, + #{tenantId}, + #{deptType}, #{status}, #{createBy}, + #{activationDate}, + #{expiryDate}, sysdate() ) @@ -146,6 +152,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" dept_type =#{deptType}, status = #{status}, update_by = #{updateBy}, + activation_date= #{activationDate}, + expiry_date= #{expiryDate}, update_time = sysdate() where dept_id = #{deptId} diff --git a/ruoyi-system/src/main/resources/mapper/system/SysTenantMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysTenantMapper.xml index e10a3b7..38fd411 100644 --- a/ruoyi-system/src/main/resources/mapper/system/SysTenantMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/SysTenantMapper.xml @@ -25,12 +25,10 @@ sum(CASE WHEN s.student_name is not null THEN 1 WHEN c.course_name is not null THEN 1 - WHEN a.cla_name is not null THEN 1 ELSE 0 END) from sys_tenant t LEFT JOIN sc_student s on t.tenant_id=s.tenant_id LEFT JOIN sc_course c on t.tenant_id=c.tenant_id - LEFT JOIN sc_course_cla a on t.tenant_id=a.tenant_id WHERE t.tenant_id=#{tenantId}