Administrator 1 year ago
parent
commit
f14373e8a5
56 changed files with 1887 additions and 795 deletions
  1. 3 3
      pom.xml
  2. 2 2
      ruoyi-admin/src/main/resources/application.yml
  3. 42 0
      ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/constant/CacheConstants.java
  4. 37 0
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/info/XiaoyuanInfoController.java
  5. 12 1
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/notice/XiaoyuanNoticeController.java
  6. 3 4
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/score/ScoreDataController.java
  7. 105 0
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/score/ScoreDataDetailController.java
  8. 95 0
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/score/ScoreDataStudentController.java
  9. 0 105
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/socre/ScoreDataDetailsController.java
  10. 18 0
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/xiake/XiakeConfigController.java
  11. 79 0
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/info/InfoPingLun.java
  12. 73 0
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/info/bo/InfoPingLunBo.java
  13. 16 16
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/info/bo/XiaoyuanInfoBo.java
  14. 81 0
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/info/vo/InfoPingLunVo.java
  15. 2 2
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/notice/vo/XiaoyuanNoticeVo.java
  16. 1 1
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/record/bo/RecordLeaveBo.java
  17. 6 2
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/score/ScoreData.java
  18. 71 0
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/score/ScoreDataDetail.java
  19. 0 131
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/score/ScoreDataDetails.java
  20. 71 0
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/score/ScoreDataStudent.java
  21. 7 2
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/score/bo/ScoreDataBo.java
  22. 78 0
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/score/bo/ScoreDataDetailBo.java
  23. 0 151
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/score/bo/ScoreDataDetailsBo.java
  24. 78 0
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/score/bo/ScoreDataStudentBo.java
  25. 83 0
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/score/vo/ScoreDataDetailVo.java
  26. 0 159
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/score/vo/ScoreDataDetailsVo.java
  27. 82 0
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/score/vo/ScoreDataStudentVo.java
  28. 7 5
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/score/vo/ScoreDataVo.java
  29. 24 0
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/info/InfoPingLunMapper.java
  30. 3 0
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/info/XiaoyuanInfoMapper.java
  31. 7 1
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/notice/XiaoyuanNoticeMapper.java
  32. 15 0
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/score/ScoreDataDetailMapper.java
  33. 0 16
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/score/ScoreDataDetailsMapper.java
  34. 1 2
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/score/ScoreDataMapper.java
  35. 16 0
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/score/ScoreDataStudentMapper.java
  36. 5 1
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/xiake/XiakeConfigMapper.java
  37. 81 0
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/info/XiaoyuanInfoServiceImpl.java
  38. 90 2
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/notice/XiaoyuanNoticeServiceImpl.java
  39. 60 5
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/record/RecordLeaveServiceImpl.java
  40. 114 0
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/score/ScoreDataDetailServiceImpl.java
  41. 0 127
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/score/ScoreDataDetailsServiceImpl.java
  42. 4 4
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/score/ScoreDataServiceImpl.java
  43. 115 0
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/score/ScoreDataStudentServiceImpl.java
  44. 65 0
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/xiake/XiakeConfigServiceImpl.java
  45. 24 0
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/info/IXiaoyuanInfoService.java
  46. 8 0
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/notice/IXiaoyuanNoticeService.java
  47. 47 0
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/score/IScoreDataDetailService.java
  48. 0 49
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/score/IScoreDataDetailsService.java
  49. 1 3
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/score/IScoreDataService.java
  50. 47 0
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/score/IScoreDataStudentService.java
  51. 13 0
      ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/xiake/IXiakeConfigService.java
  52. 18 0
      ruoyi-modules/ruoyi-system/src/main/resources/mapper/info/InfoPingLunMapper.xml
  53. 28 0
      ruoyi-modules/ruoyi-system/src/main/resources/mapper/notice/XiaoyuanNoticeMapper.xml
  54. 1 1
      ruoyi-modules/ruoyi-system/src/main/resources/mapper/score/ScoreDataDetailMapper.xml
  55. 7 0
      ruoyi-modules/ruoyi-system/src/main/resources/mapper/score/ScoreDataStudentMapper.xml
  56. 41 0
      ruoyi-modules/ruoyi-system/src/main/resources/mapper/xiake/XiakeConfigMapper.xml

+ 3 - 3
pom.xml

@@ -8,9 +8,9 @@
     <artifactId>ruoyi-vue-plus</artifactId>
     <version>${revision}</version>
 
-    <name>RuoYi-Vue-Plus</name>
-    <url>https://gitee.com/dromara/RuoYi-Vue-Plus</url>
-    <description>RuoYi-Vue-Plus多租户管理系统</description>
+    <name>智能校管家管理系统</name>
+    <url>https://baidu.com</url>
+    <description>智能校管家管理系统</description>
 
     <properties>
         <revision>5.1.0-BETA</revision>

+ 2 - 2
ruoyi-admin/src/main/resources/application.yml

@@ -1,13 +1,13 @@
 # 项目相关配置
 ruoyi:
   # 名称
-  name: RuoYi-Vue-Plus
+  name: 智能校管家
   # 版本
   version: ${revision}
   # 版权年份
   copyrightYear: 2023
   # 实例演示开关
-  demoEnabled: true
+  demoEnabled: false
   # 获取ip地址开关
   addressEnabled: true
 

+ 42 - 0
ruoyi-common/ruoyi-common-core/src/main/java/org/dromara/common/core/constant/CacheConstants.java

@@ -22,4 +22,46 @@ public interface CacheConstants {
      */
     String SYS_DICT_KEY = "sys_dict:";
 
+    /**
+     * 后台首页各分段学生人数 上一次考试数据
+     */
+    public static final String FEN_DUAN_LAST = "fen_duan_last:";
+    /**
+     * 后台首页各分段学生人数 最新考试数据
+     */
+    public static final String FEN_DUAN_NEW = "fen_duan_new:";
+    /**
+     * 最新考试id
+     */
+    public static final String SCORE_ID = "score_id:";
+    /**
+     * 对应考试id的总考试人数
+     */
+    public static final String SCORE_PEOPLE_ALL = "score_people_all:";
+    /**
+     * 对应考试id的查看人id
+     */
+    public static final String SCORE_PEOPLE_CHAKAN = "score_people_chakan:";
+    /**
+     * 对应考试id的查看人数
+     */
+    public static final String SCORE_PEOPLE_CHAKAN_COUNT = "score_people_chakan_count:";
+    /**
+     * 校园安全点赞key
+     */
+    public static final String XIAOYUAN_INFO_DIANZAN = "xiaoyuan_info_dianzan:";
+    /**
+     * 谁点赞的id
+     */
+    public static final String XIAOYUAN_INFO_DIANZAN_USER = "xiaoyuan_info_dianzan_user:";
+    /**
+     * 校园安全转发key
+     */
+    public static final String XIAOYUAN_INFO_ZHUANFA = "xiaoyuan_info_zhuanfa:";
+
+    /**
+     * 下课管理
+     */
+    public static final String XIA_CONFIG_KEY = "xiake_config:";
+
 }

+ 37 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/info/XiaoyuanInfoController.java

@@ -7,6 +7,8 @@ import jakarta.servlet.http.HttpServletResponse;
 import jakarta.validation.constraints.*;
 import cn.dev33.satoken.annotation.SaCheckPermission;
 import org.dromara.common.mybatis.core.page.TableDataInfo;
+import org.dromara.system.domain.info.XiaoyuanInfo;
+import org.dromara.system.domain.info.bo.InfoPingLunBo;
 import org.dromara.system.domain.info.vo.XiaoyuanInfoVo;
 import org.dromara.system.service.info.IXiaoyuanInfoService;
 import org.springframework.web.bind.annotation.*;
@@ -103,4 +105,39 @@ public class XiaoyuanInfoController extends BaseController {
                           @PathVariable Long[] infoIds) {
         return toAjax(xiaoyuanInfoService.deleteWithValidByIds(List.of(infoIds), true));
     }
+    /**
+     * 新增校园安全信息评论
+     */
+    @PostMapping("/pingLun")
+    public  R<Void> pingLun(@RequestBody InfoPingLunBo bo)
+    {
+        return toAjax(xiaoyuanInfoService.insertInfoPingLun(bo));
+    }
+
+    /**
+     * 删除校园安全信息评论
+     */
+    @PostMapping("/delete/pingLun")
+    public  R<Void> deletePingLun(@RequestBody InfoPingLunBo bo)
+    {
+        return toAjax(xiaoyuanInfoService.deletePingLun(bo));
+    }
+
+    /**
+     * 新增校园安全信息点赞接口/取消点赞
+     */
+    @PostMapping("/dianZan")
+    public  R<Void> dianZan(@RequestBody XiaoyuanInfoBo xiaoyuanInfo)
+    {
+        return toAjax(xiaoyuanInfoService.dianZan(xiaoyuanInfo));
+    }
+
+    /**
+     * 新增校园安全信息转发接口
+     */
+    @PostMapping("/zhuanFa")
+    public  R<Void> zhuanFa(@RequestBody XiaoyuanInfoBo xiaoyuanInfo)
+    {
+        return toAjax(xiaoyuanInfoService.zhuanFa(xiaoyuanInfo));
+    }
 }

+ 12 - 1
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/notice/XiaoyuanNoticeController.java

@@ -6,6 +6,7 @@ import lombok.RequiredArgsConstructor;
 import jakarta.servlet.http.HttpServletResponse;
 import jakarta.validation.constraints.*;
 import cn.dev33.satoken.annotation.SaCheckPermission;
+import org.dromara.system.domain.notice.XiaoyuanNotice;
 import org.dromara.system.domain.notice.bo.XiaoyuanNoticeBo;
 import org.dromara.system.domain.notice.vo.XiaoyuanNoticeVo;
 import org.dromara.system.service.notice.IXiaoyuanNoticeService;
@@ -51,7 +52,7 @@ public class XiaoyuanNoticeController extends BaseController {
      */
     @SaCheckPermission("notice:notice:export")
     @Log(title = "校园新闻", businessType = BusinessType.EXPORT)
-    @PostMapping("/export")
+   // @PostMapping("/export")
     public void export(XiaoyuanNoticeBo bo, HttpServletResponse response) {
         List<XiaoyuanNoticeVo> list = xiaoyuanNoticeService.queryList(bo);
         ExcelUtil.exportExcel(list, "校园新闻", XiaoyuanNoticeVo.class, response);
@@ -103,4 +104,14 @@ public class XiaoyuanNoticeController extends BaseController {
                           @PathVariable Long[] noticeIds) {
         return toAjax(xiaoyuanNoticeService.deleteWithValidByIds(List.of(noticeIds), true));
     }
+
+    /**
+     * 我的收藏
+     */
+    @GetMapping("/collect")
+    public TableDataInfo<XiaoyuanNoticeVo> myCollect(XiaoyuanNoticeBo bo, PageQuery pageQuery)
+    {
+
+        return xiaoyuanNoticeService.myCollect(bo,pageQuery);
+    }
 }

+ 3 - 4
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/socre/ScoreDataController.java → ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/score/ScoreDataController.java

@@ -1,4 +1,4 @@
-package org.dromara.system.controller.socre;
+package org.dromara.system.controller.score;
 
 import java.util.List;
 
@@ -22,17 +22,16 @@ import org.dromara.common.core.validate.EditGroup;
 import org.dromara.common.log.enums.BusinessType;
 import org.dromara.common.excel.utils.ExcelUtil;
 
-
 /**
  * 成绩
  *
  * @author boman
- * @date 2023-08-16
+ * @date 2023-08-17
  */
 @Validated
 @RequiredArgsConstructor
 @RestController
-@RequestMapping("/score/data")
+@RequestMapping("/score/score")
 public class ScoreDataController extends BaseController {
 
     private final IScoreDataService scoreDataService;

+ 105 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/score/ScoreDataDetailController.java

@@ -0,0 +1,105 @@
+package org.dromara.system.controller.score;
+
+import java.util.List;
+
+import lombok.RequiredArgsConstructor;
+import jakarta.servlet.http.HttpServletResponse;
+import jakarta.validation.constraints.*;
+import cn.dev33.satoken.annotation.SaCheckPermission;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+import org.dromara.system.domain.score.bo.ScoreDataDetailBo;
+import org.dromara.system.domain.score.vo.ScoreDataDetailVo;
+import org.dromara.system.service.score.IScoreDataDetailService;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.validation.annotation.Validated;
+import org.dromara.common.idempotent.annotation.RepeatSubmit;
+import org.dromara.common.log.annotation.Log;
+import org.dromara.common.web.core.BaseController;
+import org.dromara.common.mybatis.core.page.PageQuery;
+import org.dromara.common.core.domain.R;
+import org.dromara.common.core.validate.AddGroup;
+import org.dromara.common.core.validate.EditGroup;
+import org.dromara.common.log.enums.BusinessType;
+import org.dromara.common.excel.utils.ExcelUtil;
+
+/**
+ * 成绩_成绩详情id
+ *
+ * @author boman
+ * @date 2023-08-17
+ */
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/system/dataDetail")
+public class ScoreDataDetailController extends BaseController {
+
+    private final IScoreDataDetailService scoreDataDetailService;
+
+    /**
+     * 查询成绩_成绩详情id列表
+     */
+    @SaCheckPermission("system:dataDetail:list")
+    @GetMapping("/list")
+    public TableDataInfo<ScoreDataDetailVo> list(ScoreDataDetailBo bo, PageQuery pageQuery) {
+        return scoreDataDetailService.queryPageList(bo, pageQuery);
+    }
+
+    /**
+     * 导出成绩_成绩详情id列表
+     */
+    @SaCheckPermission("system:dataDetail:export")
+    @Log(title = "成绩_成绩详情id", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    public void export(ScoreDataDetailBo bo, HttpServletResponse response) {
+        List<ScoreDataDetailVo> list = scoreDataDetailService.queryList(bo);
+        ExcelUtil.exportExcel(list, "成绩_成绩详情id", ScoreDataDetailVo.class, response);
+    }
+
+    /**
+     * 获取成绩_成绩详情id详细信息
+     *
+     * @param scoreDetailId 主键
+     */
+    @SaCheckPermission("system:dataDetail:query")
+    @GetMapping("/{scoreDetailId}")
+    public R<ScoreDataDetailVo> getInfo(@NotNull(message = "主键不能为空")
+                                     @PathVariable Long scoreDetailId) {
+        return R.ok(scoreDataDetailService.queryById(scoreDetailId));
+    }
+
+    /**
+     * 新增成绩_成绩详情id
+     */
+    @SaCheckPermission("system:dataDetail:add")
+    @Log(title = "成绩_成绩详情id", businessType = BusinessType.INSERT)
+    @RepeatSubmit()
+    @PostMapping()
+    public R<Void> add(@Validated(AddGroup.class) @RequestBody ScoreDataDetailBo bo) {
+        return toAjax(scoreDataDetailService.insertByBo(bo));
+    }
+
+    /**
+     * 修改成绩_成绩详情id
+     */
+    @SaCheckPermission("system:dataDetail:edit")
+    @Log(title = "成绩_成绩详情id", businessType = BusinessType.UPDATE)
+    @RepeatSubmit()
+    @PostMapping("/put")
+    public R<Void> edit(@Validated(EditGroup.class) @RequestBody ScoreDataDetailBo bo) {
+        return toAjax(scoreDataDetailService.updateByBo(bo));
+    }
+
+    /**
+     * 删除成绩_成绩详情id
+     *
+     * @param scoreDetailIds 主键串
+     */
+    @SaCheckPermission("system:dataDetail:remove")
+    @Log(title = "成绩_成绩详情id", businessType = BusinessType.DELETE)
+    @GetMapping("/delete/{scoreDetailIds}")
+    public R<Void> remove(@NotEmpty(message = "主键不能为空")
+                          @PathVariable Long[] scoreDetailIds) {
+        return toAjax(scoreDataDetailService.deleteWithValidByIds(List.of(scoreDetailIds), true));
+    }
+}

+ 95 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/score/ScoreDataStudentController.java

@@ -0,0 +1,95 @@
+package org.dromara.system.controller.score;
+
+import java.util.List;
+
+import lombok.RequiredArgsConstructor;
+import jakarta.servlet.http.HttpServletResponse;
+import jakarta.validation.constraints.*;
+import cn.dev33.satoken.annotation.SaCheckPermission;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+import org.dromara.system.domain.score.bo.ScoreDataStudentBo;
+import org.dromara.system.domain.score.vo.ScoreDataStudentVo;
+import org.dromara.system.service.score.IScoreDataStudentService;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.validation.annotation.Validated;
+import org.dromara.common.idempotent.annotation.RepeatSubmit;
+import org.dromara.common.log.annotation.Log;
+import org.dromara.common.web.core.BaseController;
+import org.dromara.common.mybatis.core.page.PageQuery;
+import org.dromara.common.core.domain.R;
+import org.dromara.common.core.validate.AddGroup;
+import org.dromara.common.core.validate.EditGroup;
+import org.dromara.common.log.enums.BusinessType;
+import org.dromara.common.excel.utils.ExcelUtil;
+/**
+ * 成绩_子学生id
+ *
+ * @author boman
+ * @date 2023-08-17
+ */
+@Validated
+@RequiredArgsConstructor
+@RestController
+@RequestMapping("/system/dataStudent")
+public class ScoreDataStudentController extends BaseController {
+
+    private final IScoreDataStudentService scoreDataStudentService;
+
+    /**
+     * 查询成绩_子学生id列表
+     */
+    @SaCheckPermission("system:dataStudent:list")
+    @GetMapping("/list")
+    public TableDataInfo<ScoreDataStudentVo> list(ScoreDataStudentBo bo, PageQuery pageQuery) {
+        return scoreDataStudentService.queryPageList(bo, pageQuery);
+    }
+
+
+
+    /**
+     * 获取成绩_子学生id详细信息
+     *
+     * @param scoreStudentId 主键
+     */
+    @SaCheckPermission("system:dataStudent:query")
+    @GetMapping("/{scoreStudentId}")
+    public R<ScoreDataStudentVo> getInfo(@NotNull(message = "主键不能为空")
+                                     @PathVariable Long scoreStudentId) {
+        return R.ok(scoreDataStudentService.queryById(scoreStudentId));
+    }
+
+    /**
+     * 新增成绩_子学生id
+     */
+    @SaCheckPermission("system:dataStudent:add")
+    @Log(title = "成绩_子学生id", businessType = BusinessType.INSERT)
+    @RepeatSubmit()
+    @PostMapping()
+    public R<Void> add(@Validated(AddGroup.class) @RequestBody ScoreDataStudentBo bo) {
+        return toAjax(scoreDataStudentService.insertByBo(bo));
+    }
+
+    /**
+     * 修改成绩_子学生id
+     */
+    @SaCheckPermission("system:dataStudent:edit")
+    @Log(title = "成绩_子学生id", businessType = BusinessType.UPDATE)
+    @RepeatSubmit()
+    @PostMapping("/put")
+    public R<Void> edit(@Validated(EditGroup.class) @RequestBody ScoreDataStudentBo bo) {
+        return toAjax(scoreDataStudentService.updateByBo(bo));
+    }
+
+    /**
+     * 删除成绩_子学生id
+     *
+     * @param scoreStudentIds 主键串
+     */
+    @SaCheckPermission("system:dataStudent:remove")
+    @Log(title = "成绩_子学生id", businessType = BusinessType.DELETE)
+    @GetMapping("/delete/{scoreStudentIds}")
+    public R<Void> remove(@NotEmpty(message = "主键不能为空")
+                          @PathVariable Long[] scoreStudentIds) {
+        return toAjax(scoreDataStudentService.deleteWithValidByIds(List.of(scoreStudentIds), true));
+    }
+}

+ 0 - 105
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/socre/ScoreDataDetailsController.java

@@ -1,105 +0,0 @@
-package org.dromara.system.controller.socre;
-
-import java.util.List;
-
-import lombok.RequiredArgsConstructor;
-import jakarta.servlet.http.HttpServletResponse;
-import jakarta.validation.constraints.*;
-import cn.dev33.satoken.annotation.SaCheckPermission;
-import org.dromara.common.mybatis.core.page.TableDataInfo;
-import org.dromara.system.domain.score.bo.ScoreDataDetailsBo;
-import org.dromara.system.domain.score.vo.ScoreDataDetailsVo;
-import org.dromara.system.service.score.IScoreDataDetailsService;
-import org.springframework.web.bind.annotation.*;
-import org.springframework.validation.annotation.Validated;
-import org.dromara.common.idempotent.annotation.RepeatSubmit;
-import org.dromara.common.log.annotation.Log;
-import org.dromara.common.web.core.BaseController;
-import org.dromara.common.mybatis.core.page.PageQuery;
-import org.dromara.common.core.domain.R;
-import org.dromara.common.core.validate.AddGroup;
-import org.dromara.common.core.validate.EditGroup;
-import org.dromara.common.log.enums.BusinessType;
-import org.dromara.common.excel.utils.ExcelUtil;
-
-/**
- * 成绩_子
- *
- * @author boman
- * @date 2023-08-16
- */
-@Validated
-@RequiredArgsConstructor
-@RestController
-@RequestMapping("/system/dataDetails")
-public class ScoreDataDetailsController extends BaseController {
-
-    private final IScoreDataDetailsService scoreDataDetailsService;
-
-    /**
-     * 查询成绩_子列表
-     */
-    @SaCheckPermission("system:dataDetails:list")
-    @GetMapping("/list")
-    public TableDataInfo<ScoreDataDetailsVo> list(ScoreDataDetailsBo bo, PageQuery pageQuery) {
-        return scoreDataDetailsService.queryPageList(bo, pageQuery);
-    }
-
-    /**
-     * 导出成绩_子列表
-     */
-    @SaCheckPermission("system:dataDetails:export")
-    @Log(title = "成绩_子", businessType = BusinessType.EXPORT)
-    @PostMapping("/export")
-    public void export(ScoreDataDetailsBo bo, HttpServletResponse response) {
-        List<ScoreDataDetailsVo> list = scoreDataDetailsService.queryList(bo);
-        ExcelUtil.exportExcel(list, "成绩_子", ScoreDataDetailsVo.class, response);
-    }
-
-    /**
-     * 获取成绩_子详细信息
-     *
-     * @param scoreDetailsId 主键
-     */
-    @SaCheckPermission("system:dataDetails:query")
-    @GetMapping("/{scoreDetailsId}")
-    public R<ScoreDataDetailsVo> getInfo(@NotNull(message = "主键不能为空")
-                                     @PathVariable Long scoreDetailsId) {
-        return R.ok(scoreDataDetailsService.queryById(scoreDetailsId));
-    }
-
-    /**
-     * 新增成绩_子
-     */
-    @SaCheckPermission("system:dataDetails:add")
-    @Log(title = "成绩_子", businessType = BusinessType.INSERT)
-    @RepeatSubmit()
-    @PostMapping()
-    public R<Void> add(@Validated(AddGroup.class) @RequestBody ScoreDataDetailsBo bo) {
-        return toAjax(scoreDataDetailsService.insertByBo(bo));
-    }
-
-    /**
-     * 修改成绩_子
-     */
-    @SaCheckPermission("system:dataDetails:edit")
-    @Log(title = "成绩_子", businessType = BusinessType.UPDATE)
-    @RepeatSubmit()
-    @PostMapping("/put")
-    public R<Void> edit(@Validated(EditGroup.class) @RequestBody ScoreDataDetailsBo bo) {
-        return toAjax(scoreDataDetailsService.updateByBo(bo));
-    }
-
-    /**
-     * 删除成绩_子
-     *
-     * @param scoreDetailsIds 主键串
-     */
-    @SaCheckPermission("system:dataDetails:remove")
-    @Log(title = "成绩_子", businessType = BusinessType.DELETE)
-    @GetMapping("/delete/{scoreDetailsIds}")
-    public R<Void> remove(@NotEmpty(message = "主键不能为空")
-                          @PathVariable Long[] scoreDetailsIds) {
-        return toAjax(scoreDataDetailsService.deleteWithValidByIds(List.of(scoreDetailsIds), true));
-    }
-}

+ 18 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/xiake/XiakeConfigController.java

@@ -6,6 +6,7 @@ import lombok.RequiredArgsConstructor;
 import jakarta.servlet.http.HttpServletResponse;
 import jakarta.validation.constraints.*;
 import cn.dev33.satoken.annotation.SaCheckPermission;
+import org.dromara.system.domain.xiake.XiakeConfig;
 import org.dromara.system.domain.xiake.bo.XiakeConfigBo;
 import org.dromara.system.domain.xiake.vo.XiakeConfigVo;
 import org.dromara.system.service.xiake.IXiakeConfigService;
@@ -46,6 +47,23 @@ public class XiakeConfigController extends BaseController {
         return xiakeConfigService.queryPageList(bo, pageQuery);
     }
 
+    /**
+     * 根据参数键名(班级id)查询参数值config_value(下课时间)
+     */
+    @PostMapping(value = "/configKey")
+    public R<XiakeConfigVo> getConfigKey(@Validated @RequestBody XiakeConfigBo config)
+    {
+        return R.ok(xiakeConfigService.selectConfigByKey(config));
+    }
+
+    /**
+     * 根据参数键名修改参数值
+     */
+    @PostMapping(value = "/updateConfigKey")
+    public R<Void> updateConfigKey(@Validated @RequestBody XiakeConfigBo config)
+    {
+        return toAjax(xiakeConfigService.updateConfigValue(config));
+    }
     /**
      * 导出下课时间配置列表
      */

+ 79 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/info/InfoPingLun.java

@@ -0,0 +1,79 @@
+package org.dromara.system.domain.info;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.dromara.common.tenant.core.TenantEntity;
+
+import java.io.Serial;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @Author: tjf
+ * @Date: 2023/8/18 9:58
+ * @Describe:
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("info_pinglun")
+public class InfoPingLun extends TenantEntity {
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /** 校园安全信息评论id */
+    @TableId(value = "info_pinglun_id")
+    private Long infoPingLunId;
+
+    /** 校园安全信息id */
+
+    private Long infoId;
+
+    /** 校园安全信息父id */
+
+    private Long infoPingLunParent;
+
+    /** 评论内容 */
+
+    private String infoPingLunContent;
+
+    /** 头像地址 */
+
+    private String avatar;
+
+    /** 评论人id */
+
+    private Long infoPingLunUserId;
+
+    /** 评论人名称 */
+
+    private String infoPingLunUserName;
+
+    /** 被评论人id */
+
+    private Long infoPingLunQuiltUserId;
+
+    /** 被评论人名称 */
+
+    private String infoPingLunQuiltUserName;
+
+    /** 评论时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd MM:dd:ss")
+
+    private Date pingLunTime;
+
+    /** 评论类型 1:评论 2:回复 */
+
+    private String infoPingLunType;
+
+    /** 是否通过 N:未通过 Y:通过 */
+
+    private String infoPingLunExamine;
+
+    /**
+     * 对此评论的回复集合
+     */
+    private List<InfoPingLun> InfoPingLunList;
+}

+ 73 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/info/bo/InfoPingLunBo.java

@@ -0,0 +1,73 @@
+package org.dromara.system.domain.info.bo;
+
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.dromara.system.domain.info.InfoPingLun;
+
+import java.io.Serial;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @Author: tjf
+ * @Date: 2023/8/18 10:06
+ * @Describe:
+ */
+public class InfoPingLunBo {
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /** 校园安全信息评论id */
+    @TableId(value = "info_pinglun_id")
+    private Long infoPingLunId;
+
+    /** 校园安全信息id */
+
+    private Long infoId;
+
+    /** 校园安全信息父id */
+
+    private Long infoPingLunParent;
+
+    /** 评论内容 */
+
+    private String infoPingLunContent;
+
+    /** 头像地址 */
+
+    private String avatar;
+
+    /** 评论人id */
+
+    private Long infoPingLunUserId;
+
+    /** 评论人名称 */
+
+    private String infoPingLunUserName;
+
+    /** 被评论人id */
+
+    private Long infoPingLunQuiltUserId;
+
+    /** 被评论人名称 */
+
+    private String infoPingLunQuiltUserName;
+
+    /** 评论时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd MM:dd:ss")
+
+    private Date pingLunTime;
+
+    /** 评论类型 1:评论 2:回复 */
+
+    private String infoPingLunType;
+
+    /** 是否通过 N:未通过 Y:通过 */
+
+    private String infoPingLunExamine;
+
+    /**
+     * 对此评论的回复集合
+     */
+    private List<InfoPingLun> InfoPingLunList;
+}

+ 16 - 16
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/info/bo/XiaoyuanInfoBo.java

@@ -26,97 +26,97 @@ public class XiaoyuanInfoBo extends BaseEntity {
     /**
      * 校园安全信息id
      */
-    @NotNull(message = "校园安全信息id不能为空", groups = { EditGroup.class })
+    //@NotNull(message = "校园安全信息id不能为空", groups = { EditGroup.class })
     private Long infoId;
 
     /**
      * 校园安全信息标题
      */
-    @NotBlank(message = "校园安全信息标题不能为空", groups = { AddGroup.class, EditGroup.class })
+    //@NotBlank(message = "校园安全信息标题不能为空", groups = { AddGroup.class, EditGroup.class })
     private String infoTitle;
 
     /**
      * 信息封面
      */
-    @NotBlank(message = "信息封面不能为空", groups = { AddGroup.class, EditGroup.class })
+    //@NotBlank(message = "信息封面不能为空", groups = { AddGroup.class, EditGroup.class })
     private String infoPhoto;
 
     /**
      * 学校id
      */
-    @NotBlank(message = "学校id不能为空", groups = { AddGroup.class, EditGroup.class })
+    //@NotBlank(message = "学校id不能为空", groups = { AddGroup.class, EditGroup.class })
     private String schoolId;
 
     /**
      * 学校名称
      */
-    @NotBlank(message = "学校名称不能为空", groups = { AddGroup.class, EditGroup.class })
+    //@NotBlank(message = "学校名称不能为空", groups = { AddGroup.class, EditGroup.class })
     private String schoolName;
 
     /**
      * 信息类型(1校园广播 2校园安全)
      */
-    @NotBlank(message = "信息类型(1校园广播 2校园安全)不能为空", groups = { AddGroup.class, EditGroup.class })
+    //@NotBlank(message = "信息类型(1校园广播 2校园安全)不能为空", groups = { AddGroup.class, EditGroup.class })
     private String infoType;
 
     /**
      * 信息子分类
      */
-    @NotBlank(message = "信息子分类不能为空", groups = { AddGroup.class, EditGroup.class })
+    //@NotBlank(message = "信息子分类不能为空", groups = { AddGroup.class, EditGroup.class })
     private String infoTypeZi;
 
     /**
      * 信息内容
      */
-    @NotBlank(message = "信息内容不能为空", groups = { AddGroup.class, EditGroup.class })
+    //@NotBlank(message = "信息内容不能为空", groups = { AddGroup.class, EditGroup.class })
     private String infoContent;
 
     /**
      * 信息状态(0正常 1关闭)
      */
-    @NotBlank(message = "信息状态(0正常 1关闭)不能为空", groups = { AddGroup.class, EditGroup.class })
+    //@NotBlank(message = "信息状态(0正常 1关闭)不能为空", groups = { AddGroup.class, EditGroup.class })
     private String status;
 
     /**
      * 发布时间
      */
-    @NotNull(message = "发布时间不能为空", groups = { AddGroup.class, EditGroup.class })
+    //@NotNull(message = "发布时间不能为空", groups = { AddGroup.class, EditGroup.class })
     private Date fabuTime;
 
     /**
      * 已读人数
      */
-    @NotBlank(message = "已读人数不能为空", groups = { AddGroup.class, EditGroup.class })
+    //@NotBlank(message = "已读人数不能为空", groups = { AddGroup.class, EditGroup.class })
     private String infoYidu;
 
     /**
      * 点赞人数
      */
-    @NotBlank(message = "点赞人数不能为空", groups = { AddGroup.class, EditGroup.class })
+    //@NotBlank(message = "点赞人数不能为空", groups = { AddGroup.class, EditGroup.class })
     private String infoDianzan;
 
     /**
      * 点赞表id
      */
-    @NotNull(message = "点赞表id不能为空", groups = { AddGroup.class, EditGroup.class })
+    //@NotNull(message = "点赞表id不能为空", groups = { AddGroup.class, EditGroup.class })
     private Long infoDianzanId;
 
     /**
      * 转发人数
      */
-    @NotBlank(message = "转发人数不能为空", groups = { AddGroup.class, EditGroup.class })
+    //@NotBlank(message = "转发人数不能为空", groups = { AddGroup.class, EditGroup.class })
     private String infoZhuanfa;
 
     /**
      * 信息评论表id
      */
-    @NotNull(message = "信息评论表id不能为空", groups = { AddGroup.class, EditGroup.class })
+    //@NotNull(message = "信息评论表id不能为空", groups = { AddGroup.class, EditGroup.class })
     private Long infoPinglunId;
 
     /**
      * 备注
      */
-    @NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class })
+    //@NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class })
     private String remark;
 
 

+ 81 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/info/vo/InfoPingLunVo.java

@@ -0,0 +1,81 @@
+package org.dromara.system.domain.info.vo;
+
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.github.linpeilie.annotations.AutoMapper;
+import lombok.Data;
+import org.dromara.system.domain.info.InfoPingLun;
+import org.dromara.system.domain.info.XiaoyuanInfo;
+
+import java.io.Serial;
+import java.io.Serializable;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * @Author: tjf
+ * @Date: 2023/8/18 10:05
+ * @Describe:
+ */
+@Data
+@ExcelIgnoreUnannotated
+@AutoMapper(target = InfoPingLun.class)
+public class InfoPingLunVo implements Serializable {
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /** 校园安全信息评论id */
+    @TableId(value = "info_pinglun_id")
+    private Long infoPingLunId;
+
+    /** 校园安全信息id */
+
+    private Long infoId;
+
+    /** 校园安全信息父id */
+
+    private Long infoPingLunParent;
+
+    /** 评论内容 */
+
+    private String infoPingLunContent;
+
+    /** 头像地址 */
+
+    private String avatar;
+
+    /** 评论人id */
+
+    private Long infoPingLunUserId;
+
+    /** 评论人名称 */
+
+    private String infoPingLunUserName;
+
+    /** 被评论人id */
+
+    private Long infoPingLunQuiltUserId;
+
+    /** 被评论人名称 */
+
+    private String infoPingLunQuiltUserName;
+
+    /** 评论时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd MM:dd:ss")
+
+    private Date pingLunTime;
+
+    /** 评论类型 1:评论 2:回复 */
+
+    private String infoPingLunType;
+
+    /** 是否通过 N:未通过 Y:通过 */
+
+    private String infoPingLunExamine;
+
+    /**
+     * 对此评论的回复集合
+     */
+    private List<InfoPingLun> InfoPingLunList;
+}

+ 2 - 2
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/notice/vo/XiaoyuanNoticeVo.java

@@ -76,13 +76,13 @@ public class XiaoyuanNoticeVo implements Serializable {
      * 可见班级id
      */
     @ExcelProperty(value = "可见班级id")
-    private String classIdKejian;
+    private String classIdKeJian;
 
     /**
      * 不可见班级id
      */
     @ExcelProperty(value = "不可见班级id")
-    private String classIdBukejian;
+    private String classIdBuKeJian;
 
     /**
      * 发件人id

+ 1 - 1
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/record/bo/RecordLeaveBo.java

@@ -57,7 +57,7 @@ public class RecordLeaveBo extends BaseEntity {
      * 班级id
      */
     @NotNull(message = "班级id不能为空", groups = { AddGroup.class, EditGroup.class })
-    private Long classId;
+    private String classId;
 
     /**
      * 班级名称

+ 6 - 2
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/score/ScoreData.java

@@ -5,7 +5,6 @@ import com.baomidou.mybatisplus.annotation.*;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import java.util.Date;
-import com.fasterxml.jackson.annotation.JsonFormat;
 
 import java.io.Serial;
 
@@ -13,7 +12,7 @@ import java.io.Serial;
  * 成绩对象 score_data
  *
  * @author boman
- * @date 2023-08-16
+ * @date 2023-08-17
  */
 @Data
 @EqualsAndHashCode(callSuper = true)
@@ -59,5 +58,10 @@ public class ScoreData extends TenantEntity {
      */
     private String remark;
 
+    /**
+     * 班级平均分
+     */
+    private String avg;
+
 
 }

+ 71 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/score/ScoreDataDetail.java

@@ -0,0 +1,71 @@
+package org.dromara.system.domain.score;
+
+import org.dromara.common.tenant.core.TenantEntity;
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serial;
+
+/**
+ * 成绩_成绩详情id对象 score_data_detail
+ *
+ * @author boman
+ * @date 2023-08-17
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("score_data_detail")
+public class ScoreDataDetail extends TenantEntity {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 成绩表_成绩详情id
+     */
+    @TableId(value = "score_detail_id")
+    private Long scoreDetailId;
+
+    /**
+     * 成绩表id
+     */
+    private Long scoreId;
+
+    /**
+     * 排序
+     */
+    private String scoreSort;
+
+    /**
+     * 姓名
+     */
+    private String scoreDataName;
+
+    /**
+     * 学生姓名id
+     */
+    private Long scoreDataNameId;
+
+    /**
+     * 学科
+     */
+    private String xueke;
+
+    /**
+     * 成绩
+     */
+    private String score;
+
+    /**
+     * 满分
+     */
+    private String manfen;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+
+}

+ 0 - 131
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/score/ScoreDataDetails.java

@@ -1,131 +0,0 @@
-package org.dromara.system.domain.score;
-
-import org.dromara.common.tenant.core.TenantEntity;
-import com.baomidou.mybatisplus.annotation.*;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-
-import java.io.Serial;
-
-/**
- * 成绩_子对象 score_data_details
- *
- * @author boman
- * @date 2023-08-16
- */
-@Data
-@EqualsAndHashCode(callSuper = true)
-@TableName("score_data_details")
-public class ScoreDataDetails extends TenantEntity {
-
-    @Serial
-    private static final long serialVersionUID = 1L;
-
-    /**
-     * 成绩表_子表id
-     */
-    @TableId(value = "score_details_id")
-    private Long scoreDetailsId;
-
-    /**
-     * 成绩表id
-     */
-    private Long scoreId;
-
-    /**
-     * 排序
-     */
-    private String scoreSort;
-
-    /**
-     * 姓名
-     */
-    private String scoreDataName;
-
-    /**
-     * 学生姓名id
-     */
-    private Long scoreDataNameId;
-
-    /**
-     * 语文
-     */
-    private String yuwen;
-
-    /**
-     * 数学
-     */
-    private String shuxue;
-
-    /**
-     * 英语
-     */
-    private String yingyu;
-
-    /**
-     * 物理
-     */
-    private String wuli;
-
-    /**
-     * 化学
-     */
-    private String huaxue;
-
-    /**
-     * 生物
-     */
-    private String shengwu;
-
-    /**
-     * 政治
-     */
-    private String zhengzhi;
-
-    /**
-     * 历史
-     */
-    private String lishi;
-
-    /**
-     * 地理
-     */
-    private String dili;
-
-    /**
-     * 体育
-     */
-    private String tiyu;
-
-    /**
-     * 文综
-     */
-    private String wenzong;
-
-    /**
-     * 理综
-     */
-    private String lizong;
-
-    /**
-     * 政策分
-     */
-    private String zhengcefen;
-
-    /**
-     * 总分
-     */
-    private String zongfen;
-
-    /**
-     * 是否查看 N:否 Y:是
-     */
-    private String detailsType;
-
-    /**
-     * 备注
-     */
-    private String remark;
-
-
-}

+ 71 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/score/ScoreDataStudent.java

@@ -0,0 +1,71 @@
+package org.dromara.system.domain.score;
+
+import org.dromara.common.tenant.core.TenantEntity;
+import com.baomidou.mybatisplus.annotation.*;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serial;
+
+/**
+ * 成绩_子学生id对象 score_data_student
+ *
+ * @author boman
+ * @date 2023-08-17
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@TableName("score_data_student")
+public class ScoreDataStudent extends TenantEntity {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 成绩表_子表学生id
+     */
+    @TableId(value = "score_student_id")
+    private Long scoreStudentId;
+
+    /**
+     * 成绩表id
+     */
+    private Long scoreId;
+
+    /**
+     * 排序
+     */
+    private String scoreSort;
+
+    /**
+     * 姓名
+     */
+    private String scoreDataName;
+
+    /**
+     * 学生姓名id
+     */
+    private Long scoreDataNameId;
+
+    /**
+     * 总分
+     */
+    private String zongfen;
+
+    /**
+     * 平均分
+     */
+    private String avg;
+
+    /**
+     * 是否查看 N:否 Y:是
+     */
+    private String detailsType;
+
+    /**
+     * 备注
+     */
+    private String remark;
+
+
+}

+ 7 - 2
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/score/bo/ScoreDataBo.java

@@ -1,6 +1,5 @@
 package org.dromara.system.domain.score.bo;
 
-
 import org.dromara.common.mybatis.core.domain.BaseEntity;
 import org.dromara.common.core.validate.AddGroup;
 import org.dromara.common.core.validate.EditGroup;
@@ -16,7 +15,7 @@ import org.dromara.system.domain.score.ScoreData;
  * 成绩业务对象 score_data
  *
  * @author boman
- * @date 2023-08-16
+ * @date 2023-08-17
  */
 @Data
 @EqualsAndHashCode(callSuper = true)
@@ -65,5 +64,11 @@ public class ScoreDataBo extends BaseEntity {
     @NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class })
     private String remark;
 
+    /**
+     * 班级平均分
+     */
+    @NotBlank(message = "班级平均分不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String avg;
+
 
 }

+ 78 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/score/bo/ScoreDataDetailBo.java

@@ -0,0 +1,78 @@
+package org.dromara.system.domain.score.bo;
+
+import org.dromara.system.domain.ScoreDataDetail;
+import org.dromara.common.mybatis.core.domain.BaseEntity;
+import org.dromara.common.core.validate.AddGroup;
+import org.dromara.common.core.validate.EditGroup;
+import io.github.linpeilie.annotations.AutoMapper;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import jakarta.validation.constraints.*;
+
+/**
+ * 成绩_成绩详情id业务对象 score_data_detail
+ *
+ * @author boman
+ * @date 2023-08-17
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@AutoMapper(target = ScoreDataDetail.class, reverseConvertGenerate = false)
+public class ScoreDataDetailBo extends BaseEntity {
+
+    /**
+     * 成绩表_成绩详情id
+     */
+    @NotNull(message = "成绩表_成绩详情id不能为空", groups = { EditGroup.class })
+    private Long scoreDetailId;
+
+    /**
+     * 成绩表id
+     */
+    @NotNull(message = "成绩表id不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Long scoreId;
+
+    /**
+     * 排序
+     */
+    @NotBlank(message = "排序不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String scoreSort;
+
+    /**
+     * 姓名
+     */
+    @NotBlank(message = "姓名不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String scoreDataName;
+
+    /**
+     * 学生姓名id
+     */
+    @NotNull(message = "学生姓名id不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Long scoreDataNameId;
+
+    /**
+     * 学科
+     */
+    @NotBlank(message = "学科不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String xueke;
+
+    /**
+     * 成绩
+     */
+    @NotBlank(message = "成绩不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String score;
+
+    /**
+     * 满分
+     */
+    @NotBlank(message = "满分不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String manfen;
+
+    /**
+     * 备注
+     */
+    @NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String remark;
+
+
+}

+ 0 - 151
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/score/bo/ScoreDataDetailsBo.java

@@ -1,151 +0,0 @@
-package org.dromara.system.domain.score.bo;
-
-
-import org.dromara.common.mybatis.core.domain.BaseEntity;
-import org.dromara.common.core.validate.AddGroup;
-import org.dromara.common.core.validate.EditGroup;
-import io.github.linpeilie.annotations.AutoMapper;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import jakarta.validation.constraints.*;
-import org.dromara.system.domain.score.ScoreDataDetails;
-
-/**
- * 成绩_子业务对象 score_data_details
- *
- * @author boman
- * @date 2023-08-16
- */
-@Data
-@EqualsAndHashCode(callSuper = true)
-@AutoMapper(target = ScoreDataDetails.class, reverseConvertGenerate = false)
-public class ScoreDataDetailsBo extends BaseEntity {
-
-    /**
-     * 成绩表_子表id
-     */
-    @NotNull(message = "成绩表_子表id不能为空", groups = { EditGroup.class })
-    private Long scoreDetailsId;
-
-    /**
-     * 成绩表id
-     */
-    @NotNull(message = "成绩表id不能为空", groups = { AddGroup.class, EditGroup.class })
-    private Long scoreId;
-
-    /**
-     * 排序
-     */
-    @NotBlank(message = "排序不能为空", groups = { AddGroup.class, EditGroup.class })
-    private String scoreSort;
-
-    /**
-     * 姓名
-     */
-    @NotBlank(message = "姓名不能为空", groups = { AddGroup.class, EditGroup.class })
-    private String scoreDataName;
-
-    /**
-     * 学生姓名id
-     */
-    @NotNull(message = "学生姓名id不能为空", groups = { AddGroup.class, EditGroup.class })
-    private Long scoreDataNameId;
-
-    /**
-     * 语文
-     */
-    @NotBlank(message = "语文不能为空", groups = { AddGroup.class, EditGroup.class })
-    private String yuwen;
-
-    /**
-     * 数学
-     */
-    @NotBlank(message = "数学不能为空", groups = { AddGroup.class, EditGroup.class })
-    private String shuxue;
-
-    /**
-     * 英语
-     */
-    @NotBlank(message = "英语不能为空", groups = { AddGroup.class, EditGroup.class })
-    private String yingyu;
-
-    /**
-     * 物理
-     */
-    @NotBlank(message = "物理不能为空", groups = { AddGroup.class, EditGroup.class })
-    private String wuli;
-
-    /**
-     * 化学
-     */
-    @NotBlank(message = "化学不能为空", groups = { AddGroup.class, EditGroup.class })
-    private String huaxue;
-
-    /**
-     * 生物
-     */
-    @NotBlank(message = "生物不能为空", groups = { AddGroup.class, EditGroup.class })
-    private String shengwu;
-
-    /**
-     * 政治
-     */
-    @NotBlank(message = "政治不能为空", groups = { AddGroup.class, EditGroup.class })
-    private String zhengzhi;
-
-    /**
-     * 历史
-     */
-    @NotBlank(message = "历史不能为空", groups = { AddGroup.class, EditGroup.class })
-    private String lishi;
-
-    /**
-     * 地理
-     */
-    @NotBlank(message = "地理不能为空", groups = { AddGroup.class, EditGroup.class })
-    private String dili;
-
-    /**
-     * 体育
-     */
-    @NotBlank(message = "体育不能为空", groups = { AddGroup.class, EditGroup.class })
-    private String tiyu;
-
-    /**
-     * 文综
-     */
-    @NotBlank(message = "文综不能为空", groups = { AddGroup.class, EditGroup.class })
-    private String wenzong;
-
-    /**
-     * 理综
-     */
-    @NotBlank(message = "理综不能为空", groups = { AddGroup.class, EditGroup.class })
-    private String lizong;
-
-    /**
-     * 政策分
-     */
-    @NotBlank(message = "政策分不能为空", groups = { AddGroup.class, EditGroup.class })
-    private String zhengcefen;
-
-    /**
-     * 总分
-     */
-    @NotBlank(message = "总分不能为空", groups = { AddGroup.class, EditGroup.class })
-    private String zongfen;
-
-    /**
-     * 是否查看 N:否 Y:是
-     */
-    @NotBlank(message = "是否查看 N:否 Y:是不能为空", groups = { AddGroup.class, EditGroup.class })
-    private String detailsType;
-
-    /**
-     * 备注
-     */
-    @NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class })
-    private String remark;
-
-
-}

+ 78 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/score/bo/ScoreDataStudentBo.java

@@ -0,0 +1,78 @@
+package org.dromara.system.domain.score.bo;
+
+import org.dromara.system.domain.ScoreDataStudent;
+import org.dromara.common.mybatis.core.domain.BaseEntity;
+import org.dromara.common.core.validate.AddGroup;
+import org.dromara.common.core.validate.EditGroup;
+import io.github.linpeilie.annotations.AutoMapper;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import jakarta.validation.constraints.*;
+
+/**
+ * 成绩_子学生id业务对象 score_data_student
+ *
+ * @author boman
+ * @date 2023-08-17
+ */
+@Data
+@EqualsAndHashCode(callSuper = true)
+@AutoMapper(target = ScoreDataStudent.class, reverseConvertGenerate = false)
+public class ScoreDataStudentBo extends BaseEntity {
+
+    /**
+     * 成绩表_子表学生id
+     */
+    @NotNull(message = "成绩表_子表学生id不能为空", groups = { EditGroup.class })
+    private Long scoreStudentId;
+
+    /**
+     * 成绩表id
+     */
+    @NotNull(message = "成绩表id不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Long scoreId;
+
+    /**
+     * 排序
+     */
+    @NotBlank(message = "排序不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String scoreSort;
+
+    /**
+     * 姓名
+     */
+    @NotBlank(message = "姓名不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String scoreDataName;
+
+    /**
+     * 学生姓名id
+     */
+    @NotNull(message = "学生姓名id不能为空", groups = { AddGroup.class, EditGroup.class })
+    private Long scoreDataNameId;
+
+    /**
+     * 总分
+     */
+    @NotBlank(message = "总分不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String zongfen;
+
+    /**
+     * 平均分
+     */
+    @NotBlank(message = "平均分不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String avg;
+
+    /**
+     * 是否查看 N:否 Y:是
+     */
+    @NotBlank(message = "是否查看 N:否 Y:是不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String detailsType;
+
+    /**
+     * 备注
+     */
+    @NotBlank(message = "备注不能为空", groups = { AddGroup.class, EditGroup.class })
+    private String remark;
+
+
+}

+ 83 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/score/vo/ScoreDataDetailVo.java

@@ -0,0 +1,83 @@
+package org.dromara.system.domain.score.vo;
+
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import io.github.linpeilie.annotations.AutoMapper;
+import lombok.Data;
+import org.dromara.system.domain.score.ScoreDataDetail;
+
+import java.io.Serial;
+import java.io.Serializable;
+
+
+
+/**
+ * 成绩_成绩详情id视图对象 score_data_detail
+ *
+ * @author boman
+ * @date 2023-08-17
+ */
+@Data
+@ExcelIgnoreUnannotated
+@AutoMapper(target = ScoreDataDetail.class)
+public class ScoreDataDetailVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 成绩表_成绩详情id
+     */
+    @ExcelProperty(value = "成绩表_成绩详情id")
+    private Long scoreDetailId;
+
+    /**
+     * 成绩表id
+     */
+    @ExcelProperty(value = "成绩表id")
+    private Long scoreId;
+
+    /**
+     * 排序
+     */
+    @ExcelProperty(value = "排序")
+    private String scoreSort;
+
+    /**
+     * 姓名
+     */
+    @ExcelProperty(value = "姓名")
+    private String scoreDataName;
+
+    /**
+     * 学生姓名id
+     */
+    @ExcelProperty(value = "学生姓名id")
+    private Long scoreDataNameId;
+
+    /**
+     * 学科
+     */
+    @ExcelProperty(value = "学科")
+    private String xueke;
+
+    /**
+     * 成绩
+     */
+    @ExcelProperty(value = "成绩")
+    private String score;
+
+    /**
+     * 满分
+     */
+    @ExcelProperty(value = "满分")
+    private String manfen;
+
+    /**
+     * 备注
+     */
+    @ExcelProperty(value = "备注")
+    private String remark;
+
+
+}

+ 0 - 159
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/score/vo/ScoreDataDetailsVo.java

@@ -1,159 +0,0 @@
-package org.dromara.system.domain.score.vo;
-
-
-import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
-import com.alibaba.excel.annotation.ExcelProperty;
-import org.dromara.common.excel.annotation.ExcelDictFormat;
-import org.dromara.common.excel.convert.ExcelDictConvert;
-import io.github.linpeilie.annotations.AutoMapper;
-import lombok.Data;
-import org.dromara.system.domain.score.ScoreDataDetails;
-
-import java.io.Serial;
-import java.io.Serializable;
-import java.util.Date;
-
-
-
-/**
- * 成绩_子视图对象 score_data_details
- *
- * @author boman
- * @date 2023-08-16
- */
-@Data
-@ExcelIgnoreUnannotated
-@AutoMapper(target = ScoreDataDetails.class)
-public class ScoreDataDetailsVo implements Serializable {
-
-    @Serial
-    private static final long serialVersionUID = 1L;
-
-    /**
-     * 成绩表_子表id
-     */
-    @ExcelProperty(value = "成绩表_子表id")
-    private Long scoreDetailsId;
-
-    /**
-     * 成绩表id
-     */
-    @ExcelProperty(value = "成绩表id")
-    private Long scoreId;
-
-    /**
-     * 排序
-     */
-    @ExcelProperty(value = "排序")
-    private String scoreSort;
-
-    /**
-     * 姓名
-     */
-    @ExcelProperty(value = "姓名")
-    private String scoreDataName;
-
-    /**
-     * 学生姓名id
-     */
-    @ExcelProperty(value = "学生姓名id")
-    private Long scoreDataNameId;
-
-    /**
-     * 语文
-     */
-    @ExcelProperty(value = "语文")
-    private String yuwen;
-
-    /**
-     * 数学
-     */
-    @ExcelProperty(value = "数学")
-    private String shuxue;
-
-    /**
-     * 英语
-     */
-    @ExcelProperty(value = "英语")
-    private String yingyu;
-
-    /**
-     * 物理
-     */
-    @ExcelProperty(value = "物理")
-    private String wuli;
-
-    /**
-     * 化学
-     */
-    @ExcelProperty(value = "化学")
-    private String huaxue;
-
-    /**
-     * 生物
-     */
-    @ExcelProperty(value = "生物")
-    private String shengwu;
-
-    /**
-     * 政治
-     */
-    @ExcelProperty(value = "政治")
-    private String zhengzhi;
-
-    /**
-     * 历史
-     */
-    @ExcelProperty(value = "历史")
-    private String lishi;
-
-    /**
-     * 地理
-     */
-    @ExcelProperty(value = "地理")
-    private String dili;
-
-    /**
-     * 体育
-     */
-    @ExcelProperty(value = "体育")
-    private String tiyu;
-
-    /**
-     * 文综
-     */
-    @ExcelProperty(value = "文综")
-    private String wenzong;
-
-    /**
-     * 理综
-     */
-    @ExcelProperty(value = "理综")
-    private String lizong;
-
-    /**
-     * 政策分
-     */
-    @ExcelProperty(value = "政策分")
-    private String zhengcefen;
-
-    /**
-     * 总分
-     */
-    @ExcelProperty(value = "总分")
-    private String zongfen;
-
-    /**
-     * 是否查看 N:否 Y:是
-     */
-    @ExcelProperty(value = "是否查看 N:否 Y:是")
-    private String detailsType;
-
-    /**
-     * 备注
-     */
-    @ExcelProperty(value = "备注")
-    private String remark;
-
-
-}

+ 82 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/score/vo/ScoreDataStudentVo.java

@@ -0,0 +1,82 @@
+package org.dromara.system.domain.score.vo;
+
+
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import io.github.linpeilie.annotations.AutoMapper;
+import lombok.Data;
+import org.dromara.system.domain.score.ScoreDataStudent;
+import java.io.Serial;
+import java.io.Serializable;
+
+
+/**
+ * 成绩_子学生id视图对象 score_data_student
+ *
+ * @author boman
+ * @date 2023-08-17
+ */
+@Data
+@ExcelIgnoreUnannotated
+@AutoMapper(target = ScoreDataStudent.class)
+public class ScoreDataStudentVo implements Serializable {
+
+    @Serial
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 成绩表_子表学生id
+     */
+    @ExcelProperty(value = "成绩表_子表学生id")
+    private Long scoreStudentId;
+
+    /**
+     * 成绩表id
+     */
+    @ExcelProperty(value = "成绩表id")
+    private Long scoreId;
+
+    /**
+     * 排序
+     */
+    @ExcelProperty(value = "排序")
+    private String scoreSort;
+
+    /**
+     * 姓名
+     */
+    @ExcelProperty(value = "姓名")
+    private String scoreDataName;
+
+    /**
+     * 学生姓名id
+     */
+    @ExcelProperty(value = "学生姓名id")
+    private Long scoreDataNameId;
+
+    /**
+     * 总分
+     */
+    @ExcelProperty(value = "总分")
+    private String zongfen;
+
+    /**
+     * 平均分
+     */
+    @ExcelProperty(value = "平均分")
+    private String avg;
+
+    /**
+     * 是否查看 N:否 Y:是
+     */
+    @ExcelProperty(value = "是否查看 N:否 Y:是")
+    private String detailsType;
+
+    /**
+     * 备注
+     */
+    @ExcelProperty(value = "备注")
+    private String remark;
+
+
+}

+ 7 - 5
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/domain/score/vo/ScoreDataVo.java

@@ -1,25 +1,21 @@
 package org.dromara.system.domain.score.vo;
 
 import java.util.Date;
-
 import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
 import com.alibaba.excel.annotation.ExcelProperty;
-
 import io.github.linpeilie.annotations.AutoMapper;
 import lombok.Data;
 import org.dromara.system.domain.score.ScoreData;
-
 import java.io.Serial;
 import java.io.Serializable;
 
 
 
-
 /**
  * 成绩视图对象 score_data
  *
  * @author boman
- * @date 2023-08-16
+ * @date 2023-08-17
  */
 @Data
 @ExcelIgnoreUnannotated
@@ -71,5 +67,11 @@ public class ScoreDataVo implements Serializable {
     @ExcelProperty(value = "备注")
     private String remark;
 
+    /**
+     * 班级平均分
+     */
+    @ExcelProperty(value = "班级平均分")
+    private String avg;
+
 
 }

+ 24 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/info/InfoPingLunMapper.java

@@ -0,0 +1,24 @@
+package org.dromara.system.mapper.info;
+
+import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
+import org.dromara.system.domain.info.InfoPingLun;
+import org.dromara.system.domain.info.bo.InfoPingLunBo;
+import org.dromara.system.domain.info.vo.InfoPingLunVo;
+
+import java.util.List;
+
+/**
+ * @Author: tjf
+ * @Date: 2023/8/18 10:14
+ * @Describe:
+ */
+public interface InfoPingLunMapper extends BaseMapperPlus<InfoPingLun, InfoPingLunVo> {
+    /**
+     * 批量新增校园安全信息评论
+     *
+     * @param infoPingLunList 校园安全信息评论列表
+     * @return 结果
+     */
+    public int batchInfoPingLun(List<InfoPingLunBo> infoPingLunList);
+    public int deletePingLun(InfoPingLunBo infoPingLunBo);
+}

+ 3 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/info/XiaoyuanInfoMapper.java

@@ -3,8 +3,11 @@ package org.dromara.system.mapper.info;
 
 import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
 import org.dromara.system.domain.info.XiaoyuanInfo;
+import org.dromara.system.domain.info.vo.InfoPingLunVo;
 import org.dromara.system.domain.info.vo.XiaoyuanInfoVo;
 
+import java.util.List;
+
 /**
  * 校园安全信息Mapper接口
  *

+ 7 - 1
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/notice/XiaoyuanNoticeMapper.java

@@ -1,10 +1,16 @@
 package org.dromara.system.mapper.notice;
 
 
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.toolkit.Constants;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.apache.ibatis.annotations.Param;
 import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
 import org.dromara.system.domain.notice.XiaoyuanNotice;
+import org.dromara.system.domain.notice.bo.XiaoyuanNoticeBo;
 import org.dromara.system.domain.notice.vo.XiaoyuanNoticeVo;
 
+
 /**
  * 校园新闻Mapper接口
  *
@@ -12,5 +18,5 @@ import org.dromara.system.domain.notice.vo.XiaoyuanNoticeVo;
  * @date 2023-08-16
  */
 public interface XiaoyuanNoticeMapper extends BaseMapperPlus<XiaoyuanNotice, XiaoyuanNoticeVo> {
-
+    Page<XiaoyuanNoticeVo> selectXiaoyuanNoticeByMyCollect(@Param("page") Page<XiaoyuanNotice> page, @Param(Constants.WRAPPER) Wrapper<XiaoyuanNoticeBo> queryWrapper);
 }

+ 15 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/score/ScoreDataDetailMapper.java

@@ -0,0 +1,15 @@
+package org.dromara.system.mapper.score;
+
+import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
+import org.dromara.system.domain.score.ScoreDataDetail;
+import org.dromara.system.domain.score.vo.ScoreDataDetailVo;
+
+/**
+ * 成绩_成绩详情idMapper接口
+ *
+ * @author boman
+ * @date 2023-08-17
+ */
+public interface ScoreDataDetailMapper extends BaseMapperPlus<ScoreDataDetail, ScoreDataDetailVo> {
+
+}

+ 0 - 16
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/score/ScoreDataDetailsMapper.java

@@ -1,16 +0,0 @@
-package org.dromara.system.mapper.score;
-
-
-import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
-import org.dromara.system.domain.score.ScoreDataDetails;
-import org.dromara.system.domain.score.vo.ScoreDataDetailsVo;
-
-/**
- * 成绩_子Mapper接口
- *
- * @author boman
- * @date 2023-08-16
- */
-public interface ScoreDataDetailsMapper extends BaseMapperPlus<ScoreDataDetails, ScoreDataDetailsVo> {
-
-}

+ 1 - 2
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/score/ScoreDataMapper.java

@@ -1,6 +1,5 @@
 package org.dromara.system.mapper.score;
 
-
 import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
 import org.dromara.system.domain.score.ScoreData;
 import org.dromara.system.domain.score.vo.ScoreDataVo;
@@ -9,7 +8,7 @@ import org.dromara.system.domain.score.vo.ScoreDataVo;
  * 成绩Mapper接口
  *
  * @author boman
- * @date 2023-08-16
+ * @date 2023-08-17
  */
 public interface ScoreDataMapper extends BaseMapperPlus<ScoreData, ScoreDataVo> {
 

+ 16 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/score/ScoreDataStudentMapper.java

@@ -0,0 +1,16 @@
+package org.dromara.system.mapper.score;
+
+
+import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
+import org.dromara.system.domain.score.ScoreDataStudent;
+import org.dromara.system.domain.score.vo.ScoreDataStudentVo;
+
+/**
+ * 成绩_子学生idMapper接口
+ *
+ * @author boman
+ * @date 2023-08-17
+ */
+public interface ScoreDataStudentMapper extends BaseMapperPlus<ScoreDataStudent, ScoreDataStudentVo> {
+
+}

+ 5 - 1
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/xiake/XiakeConfigMapper.java

@@ -3,7 +3,9 @@ package org.dromara.system.mapper.xiake;
 
 import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
 import org.dromara.system.domain.xiake.XiakeConfig;
+import org.dromara.system.domain.xiake.bo.XiakeConfigBo;
 import org.dromara.system.domain.xiake.vo.XiakeConfigVo;
+import org.springframework.data.repository.query.Param;
 
 /**
  * 下课时间配置Mapper接口
@@ -12,5 +14,7 @@ import org.dromara.system.domain.xiake.vo.XiakeConfigVo;
  * @date 2023-08-16
  */
 public interface XiakeConfigMapper extends BaseMapperPlus<XiakeConfig, XiakeConfigVo> {
-
+    public XiakeConfig selectConfig(XiakeConfigBo config);
+    public XiakeConfigVo checkConfigKeyUnique(@Param("configKey") String configKey);
+    public int updateConfigByKey(XiakeConfigBo bo);
 }

+ 81 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/info/XiaoyuanInfoServiceImpl.java

@@ -1,5 +1,7 @@
 package org.dromara.system.service.impl.info;
 
+import com.google.api.client.util.SecurityUtils;
+import org.apache.commons.lang3.ObjectUtils;
 import org.dromara.common.core.utils.MapstructUtils;
 import org.dromara.common.core.utils.StringUtils;
 import org.dromara.common.mybatis.core.page.TableDataInfo;
@@ -8,17 +10,24 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import lombok.RequiredArgsConstructor;
+import org.dromara.common.redis.utils.RedisUtils;
+import org.dromara.common.satoken.utils.LoginHelper;
 import org.dromara.system.domain.info.XiaoyuanInfo;
+import org.dromara.system.domain.info.bo.InfoPingLunBo;
 import org.dromara.system.domain.info.vo.XiaoyuanInfoVo;
+import org.dromara.system.mapper.info.InfoPingLunMapper;
 import org.dromara.system.mapper.info.XiaoyuanInfoMapper;
 import org.dromara.system.service.info.IXiaoyuanInfoService;
 import org.springframework.stereotype.Service;
 import org.dromara.system.domain.bo.XiaoyuanInfoBo;
 
+import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 import java.util.Collection;
 
+import static org.dromara.common.core.constant.CacheConstants.*;
+
 /**
  * 校园安全信息Service业务层处理
  *
@@ -30,6 +39,7 @@ import java.util.Collection;
 public class XiaoyuanInfoServiceImpl implements IXiaoyuanInfoService {
 
     private final XiaoyuanInfoMapper baseMapper;
+    private final InfoPingLunMapper infoPingLunMapper;
 
     /**
      * 查询校园安全信息
@@ -119,4 +129,75 @@ public class XiaoyuanInfoServiceImpl implements IXiaoyuanInfoService {
         }
         return baseMapper.deleteBatchIds(ids) > 0;
     }
+
+    /**
+     * 新增校园安全信息评论
+     */
+    @Override
+    public int insertInfoPingLun(InfoPingLunBo bo) {
+        List<InfoPingLunBo> infoPingLunList = new ArrayList<>();
+        infoPingLunList.add(bo);
+        return infoPingLunMapper.batchInfoPingLun(infoPingLunList);
+    }
+
+    /**
+     * 删除评论
+     * @param bo
+     * @return
+     */
+    @Override
+    public int deletePingLun(InfoPingLunBo bo) {
+        return infoPingLunMapper.deletePingLun(bo);
+    }
+
+    /**
+     * 点赞接口
+     * @param bo
+     * @return
+     */
+    @Override
+    public int dianZan(XiaoyuanInfoBo bo) {
+        Object cacheObject = RedisUtils.getCacheObject(XIAOYUAN_INFO_DIANZAN_USER + bo.getInfoId());
+        //获取点赞数量
+        Object dianZanNum = RedisUtils.getCacheObject(XIAOYUAN_INFO_DIANZAN + bo.getInfoId());
+        if (ObjectUtils.isEmpty(cacheObject)){
+            //如果是空,则给这个人点赞
+            RedisUtils.setCacheObject(XIAOYUAN_INFO_DIANZAN_USER + bo.getInfoId(), LoginHelper.getUserId());
+            if (ObjectUtils.isEmpty(dianZanNum)){
+                RedisUtils.setCacheObject(XIAOYUAN_INFO_DIANZAN + bo.getInfoId(),1);
+            }else {
+                RedisUtils.setCacheObject(XIAOYUAN_INFO_DIANZAN + bo.getInfoId(),(int)dianZanNum + 1);
+            }
+        }else {
+            //删除这个key
+            RedisUtils.deleteObject(XIAOYUAN_INFO_DIANZAN_USER + bo.getInfoId());
+            int i = (int) dianZanNum - 1;
+            if (i < 0){
+                i= 0;
+            }
+            RedisUtils.setCacheObject(XIAOYUAN_INFO_DIANZAN + bo.getInfoId(),i);
+        }
+        return 1;
+    }
+
+    /**
+     * 转发接口
+     * @param bo
+     * @return
+     */
+    @Override
+    public int zhuanFa(XiaoyuanInfoBo bo) {
+        //从redis中获取转发数量
+        // key =xiaoyuan_info_zhuanfa:xiaoyuan_info表中的info_id
+        //value = 转发数量
+        Object number = RedisUtils.getCacheObject(XIAOYUAN_INFO_ZHUANFA + bo.getInfoId());
+        if (ObjectUtils.isEmpty(number)){
+            //如果是空,则给这个信息创建一个转发数量
+            RedisUtils.setCacheObject(XIAOYUAN_INFO_ZHUANFA + bo.getInfoId(),1);
+        }else {
+            //转发数量+1
+            RedisUtils.setCacheObject(XIAOYUAN_INFO_ZHUANFA + bo.getInfoId(),(int)number + 1);
+        }
+        return 1;
+    }
 }

+ 90 - 2
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/notice/XiaoyuanNoticeServiceImpl.java

@@ -1,19 +1,38 @@
 package org.dromara.system.service.impl.notice;
 
+import cn.hutool.core.util.ObjectUtil;
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.google.api.client.util.SecurityUtils;
+import org.dromara.common.core.constant.UserConstants;
+import org.dromara.common.core.domain.model.LoginUser;
 import org.dromara.common.core.utils.MapstructUtils;
+import org.dromara.common.core.utils.StreamUtils;
 import org.dromara.common.core.utils.StringUtils;
 import org.dromara.common.mybatis.core.page.TableDataInfo;
 import org.dromara.common.mybatis.core.page.PageQuery;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import lombok.RequiredArgsConstructor;
+import org.dromara.common.mybatis.helper.DataBaseHelper;
+import org.dromara.common.satoken.utils.LoginHelper;
+import org.dromara.system.domain.FormalParentsStudent;
+import org.dromara.system.domain.FormalTeacherClass;
+import org.dromara.system.domain.SysDept;
+import org.dromara.system.domain.SysUser;
+import org.dromara.system.domain.bo.SysUserBo;
 import org.dromara.system.domain.notice.XiaoyuanNotice;
 import org.dromara.system.domain.notice.bo.XiaoyuanNoticeBo;
 import org.dromara.system.domain.notice.vo.XiaoyuanNoticeVo;
+import org.dromara.system.mapper.FormalParentsStudentMapper;
+import org.dromara.system.mapper.FormalTeacherClassMapper;
 import org.dromara.system.mapper.notice.XiaoyuanNoticeMapper;
 import org.dromara.system.service.notice.IXiaoyuanNoticeService;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 import java.util.Collection;
@@ -29,6 +48,11 @@ import java.util.Collection;
 public class XiaoyuanNoticeServiceImpl implements IXiaoyuanNoticeService {
 
     private final XiaoyuanNoticeMapper baseMapper;
+    @Autowired
+    private FormalTeacherClassMapper formalTeacherClassMapper;
+
+    @Autowired
+    private FormalParentsStudentMapper formalParentsStudentMapper;
 
     /**
      * 查询校园新闻
@@ -43,8 +67,50 @@ public class XiaoyuanNoticeServiceImpl implements IXiaoyuanNoticeService {
      */
     @Override
     public TableDataInfo<XiaoyuanNoticeVo> queryPageList(XiaoyuanNoticeBo bo, PageQuery pageQuery) {
-        LambdaQueryWrapper<XiaoyuanNotice> lqw = buildQueryWrapper(bo);
-        Page<XiaoyuanNoticeVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
+
+        Page<XiaoyuanNoticeVo> result = new Page<>();
+        Map<String, Object> params = bo.getParams();
+        String role = "admin";
+        if (params != null && params.size() > 0) {
+            role = (String) params.get("role");
+        }
+        StringBuilder classId = new StringBuilder("0,");
+        if ("teacher".equals(role)) {
+            FormalTeacherClass formalTeacherClass = new FormalTeacherClass();
+            formalTeacherClass.setTeacherId(LoginHelper.getUserId());
+            List<FormalTeacherClass> formalTeacherClasses = formalTeacherClassMapper.selectFormalTeacherClassList(formalTeacherClass);
+            if (formalTeacherClasses != null && formalTeacherClasses.size() > 0) {
+                for (FormalTeacherClass teacherClass : formalTeacherClasses) {
+                    classId.append(teacherClass.getClassId()).append(",");
+                }
+            }
+            if (StringUtils.isNotBlank(classId.toString())) {
+                classId = new StringBuilder(classId.substring(0, classId.length() - 1));
+            }
+            //查询出所有班级id
+            bo.setSenderDept(classId.toString());
+            LambdaQueryWrapper<XiaoyuanNotice> lqw = buildQueryWrapper(bo);
+            result = baseMapper.selectVoPage(pageQuery.build(), lqw);
+        }
+        else if ("parents".equals(role)) {
+            FormalParentsStudent formalParentsStudent = new FormalParentsStudent();
+            formalParentsStudent.setParentsId(LoginHelper.getUserId());
+            List<FormalParentsStudent> formalParentsStudents = formalParentsStudentMapper.selectFormalParentsStudentList(formalParentsStudent);
+            for (FormalParentsStudent parentsStudent : formalParentsStudents) {
+                classId.append(parentsStudent.getClassId()).append(",");
+            }
+            if (StringUtils.isNotBlank(classId.toString())) {
+                classId = new StringBuilder(classId.substring(0, classId.length() - 1));
+            }
+            //查询出所有班级id
+            bo.setSenderDept(classId.toString());
+            LambdaQueryWrapper<XiaoyuanNotice> lqw = buildQueryWrapper(bo);
+            result = baseMapper.selectVoPage(pageQuery.build(), lqw);
+        }
+        else if ("admin".equals(role)){
+            LambdaQueryWrapper<XiaoyuanNotice> lqw = buildQueryWrapper(bo);
+            result = baseMapper.selectVoPage(pageQuery.build(), lqw);
+        }
         return TableDataInfo.build(result);
     }
 
@@ -53,6 +119,7 @@ public class XiaoyuanNoticeServiceImpl implements IXiaoyuanNoticeService {
      */
     @Override
     public List<XiaoyuanNoticeVo> queryList(XiaoyuanNoticeBo bo) {
+        bo.setSenderId(String.valueOf(LoginHelper.getUserId()));
         LambdaQueryWrapper<XiaoyuanNotice> lqw = buildQueryWrapper(bo);
         return baseMapper.selectVoList(lqw);
     }
@@ -120,4 +187,25 @@ public class XiaoyuanNoticeServiceImpl implements IXiaoyuanNoticeService {
         }
         return baseMapper.deleteBatchIds(ids) > 0;
     }
+
+    /**
+     * 我的收藏
+     * @param bo
+     * @param pageQuery
+     * @return
+     */
+    @Override
+    public TableDataInfo<XiaoyuanNoticeVo> myCollect(XiaoyuanNoticeBo bo, PageQuery pageQuery) {
+        bo.setCollect("\"userId\":" + LoginHelper.getUserId());
+        Page<XiaoyuanNoticeVo> xiaoyuanNoticePage = baseMapper.selectXiaoyuanNoticeByMyCollect(pageQuery.build(), this.buildQueryWrapperCollect(bo));
+        return  TableDataInfo.build(xiaoyuanNoticePage);
+    }
+
+    private Wrapper<XiaoyuanNoticeBo> buildQueryWrapperCollect(XiaoyuanNoticeBo bo) {
+
+        QueryWrapper<XiaoyuanNoticeBo> wrapper = Wrappers.query();
+        wrapper
+            .like(StringUtils.isNotBlank(bo.getCollect()), "concat", bo.getCollect());
+        return wrapper;
+    }
 }

+ 60 - 5
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/record/RecordLeaveServiceImpl.java

@@ -1,5 +1,6 @@
 package org.dromara.system.service.impl.record;
 
+import com.google.api.client.util.SecurityUtils;
 import org.dromara.common.core.utils.MapstructUtils;
 import org.dromara.common.core.utils.StringUtils;
 import org.dromara.common.mybatis.core.page.TableDataInfo;
@@ -8,13 +9,22 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import lombok.RequiredArgsConstructor;
+import org.dromara.common.satoken.utils.LoginHelper;
+import org.dromara.system.domain.FormalParentsStudent;
+import org.dromara.system.domain.FormalTeacherClass;
+import org.dromara.system.domain.SysUser;
 import org.dromara.system.domain.record.RecordLeave;
 import org.dromara.system.domain.record.bo.RecordLeaveBo;
 import org.dromara.system.domain.record.vo.RecordLeaveVo;
 import org.dromara.system.domain.vo.SysClientVo;
+import org.dromara.system.mapper.FormalParentsStudentMapper;
+import org.dromara.system.mapper.FormalTeacherClassMapper;
 import org.dromara.system.mapper.record.RecordLeaveMapper;
 import org.dromara.system.service.record.IRecordLeaveService;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+
+import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 import java.util.Collection;
@@ -31,11 +41,16 @@ public class RecordLeaveServiceImpl implements IRecordLeaveService {
 
     private final RecordLeaveMapper baseMapper;
 
+    @Autowired
+    private FormalTeacherClassMapper formalTeacherClassMapper;
+
+    @Autowired
+    private FormalParentsStudentMapper formalParentsStudentMapper;
     /**
      * 查询请假记录信息
      */
     @Override
-    public RecordLeaveVo queryById(Long id){
+    public RecordLeaveVo queryById(Long id) {
         return baseMapper.selectVoById(id);
     }
 
@@ -44,9 +59,49 @@ public class RecordLeaveServiceImpl implements IRecordLeaveService {
      */
     @Override
     public TableDataInfo<RecordLeaveVo> queryPageList(RecordLeaveBo bo, PageQuery pageQuery) {
-        LambdaQueryWrapper<RecordLeave> lqw = buildQueryWrapper(bo);
-        Page<RecordLeaveVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
+        Page<RecordLeaveVo> result = new Page<>();
+        StringBuilder classId = new StringBuilder("0,");
+        Map<String, Object> params = bo.getParams();
+        String role = "admin";
+        if (params != null && params.size() > 0) {
+            role = (String) params.get("role");
+        }
+        if ("teacher".equals(role)) {
+            FormalTeacherClass formalTeacherClass = new FormalTeacherClass();
+            formalTeacherClass.setTeacherId(LoginHelper.getUserId());
+            List<FormalTeacherClass> formalTeacherClasses = formalTeacherClassMapper.selectFormalTeacherClassList(formalTeacherClass);
+            if (formalTeacherClasses != null && formalTeacherClasses.size() > 0) {
+                for (FormalTeacherClass teacherClass : formalTeacherClasses) {
+                    classId.append(teacherClass.getClassId()).append(",");
+                }
+            }
+            if (StringUtils.isNotBlank(classId.toString())) {
+                classId = new StringBuilder(classId.substring(0, classId.length() - 1));
+            }
+            bo.setClassId(classId.toString());
+            LambdaQueryWrapper<RecordLeave> lqw = buildQueryWrapper(bo);
+            result = baseMapper.selectVoPage(pageQuery.build(), lqw);
+        } else if ("parents".equals(role)) {
+            FormalParentsStudent formalParentsStudent = new FormalParentsStudent();
+            formalParentsStudent.setParentsId(LoginHelper.getUserId());
+            List<FormalParentsStudent> formalParentsStudents = formalParentsStudentMapper.selectFormalParentsStudentList(formalParentsStudent);
+            for (FormalParentsStudent parentsStudent : formalParentsStudents) {
+                classId.append(parentsStudent.getClassId()).append(",");
+            }
+            if (StringUtils.isNotBlank(classId.toString())) {
+                classId = new StringBuilder(classId.substring(0, classId.length() - 1));
+            }
+            bo.setClassId(classId.toString());
+            LambdaQueryWrapper<RecordLeave> lqw = buildQueryWrapper(bo);
+
+            result = baseMapper.selectVoPage(pageQuery.build(), lqw);
+        } else if ("admin".equals(role)) {
+            LambdaQueryWrapper<RecordLeave> lqw = buildQueryWrapper(bo);
+            result = baseMapper.selectVoPage(pageQuery.build(), lqw);
+        }
+
         return TableDataInfo.build(result);
+
     }
 
     /**
@@ -105,7 +160,7 @@ public class RecordLeaveServiceImpl implements IRecordLeaveService {
     /**
      * 保存前的数据校验
      */
-    private void validEntityBeforeSave(RecordLeave entity){
+    private void validEntityBeforeSave(RecordLeave entity) {
         //TODO 做一些数据校验,如唯一约束
     }
 
@@ -114,7 +169,7 @@ public class RecordLeaveServiceImpl implements IRecordLeaveService {
      */
     @Override
     public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
-        if(isValid){
+        if (isValid) {
             //TODO 做一些业务上的校验,判断是否需要校验
         }
         return baseMapper.deleteBatchIds(ids) > 0;

+ 114 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/score/ScoreDataDetailServiceImpl.java

@@ -0,0 +1,114 @@
+package org.dromara.system.service.impl.score;
+
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import org.dromara.common.core.utils.MapstructUtils;
+import org.dromara.common.core.utils.StringUtils;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+import org.dromara.common.mybatis.core.page.PageQuery;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import lombok.RequiredArgsConstructor;
+import org.dromara.system.domain.score.ScoreDataDetail;
+import org.dromara.system.domain.score.bo.ScoreDataDetailBo;
+import org.dromara.system.domain.score.vo.ScoreDataDetailVo;
+import org.dromara.system.mapper.score.ScoreDataDetailMapper;
+import org.dromara.system.service.score.IScoreDataDetailService;
+import org.springframework.stereotype.Service;
+import java.util.List;
+import java.util.Map;
+import java.util.Collection;
+
+/**
+ * 成绩_成绩详情idService业务层处理
+ *
+ * @author boman
+ * @date 2023-08-17
+ */
+@RequiredArgsConstructor
+@Service
+public class ScoreDataDetailServiceImpl implements IScoreDataDetailService {
+
+    private final ScoreDataDetailMapper baseMapper;
+
+    /**
+     * 查询成绩_成绩详情id
+     */
+    @Override
+    public ScoreDataDetailVo queryById(Long scoreDetailId){
+        return baseMapper.selectVoById(scoreDetailId);
+    }
+
+    /**
+     * 查询成绩_成绩详情id列表
+     */
+    @Override
+    public TableDataInfo<ScoreDataDetailVo> queryPageList(ScoreDataDetailBo bo, PageQuery pageQuery) {
+        LambdaQueryWrapper<ScoreDataDetail> lqw = buildQueryWrapper(bo);
+        Page<ScoreDataDetailVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
+        return TableDataInfo.build(result);
+    }
+
+    /**
+     * 查询成绩_成绩详情id列表
+     */
+    @Override
+    public List<ScoreDataDetailVo> queryList(ScoreDataDetailBo bo) {
+        LambdaQueryWrapper<ScoreDataDetail> lqw = buildQueryWrapper(bo);
+        return baseMapper.selectVoList(lqw);
+    }
+
+    private LambdaQueryWrapper<ScoreDataDetail> buildQueryWrapper(ScoreDataDetailBo bo) {
+        Map<String, Object> params = bo.getParams();
+        LambdaQueryWrapper<ScoreDataDetail> lqw = Wrappers.lambdaQuery();
+        lqw.eq(bo.getScoreId() != null, ScoreDataDetail::getScoreId, bo.getScoreId());
+        lqw.eq(StringUtils.isNotBlank(bo.getScoreSort()), ScoreDataDetail::getScoreSort, bo.getScoreSort());
+        lqw.like(StringUtils.isNotBlank(bo.getScoreDataName()), ScoreDataDetail::getScoreDataName, bo.getScoreDataName());
+        lqw.eq(bo.getScoreDataNameId() != null, ScoreDataDetail::getScoreDataNameId, bo.getScoreDataNameId());
+        lqw.eq(StringUtils.isNotBlank(bo.getXueke()), ScoreDataDetail::getXueke, bo.getXueke());
+        lqw.eq(StringUtils.isNotBlank(bo.getScore()), ScoreDataDetail::getScore, bo.getScore());
+        lqw.eq(StringUtils.isNotBlank(bo.getManfen()), ScoreDataDetail::getManfen, bo.getManfen());
+        return lqw;
+    }
+
+    /**
+     * 新增成绩_成绩详情id
+     */
+    @Override
+    public Boolean insertByBo(ScoreDataDetailBo bo) {
+        ScoreDataDetail add = MapstructUtils.convert(bo, ScoreDataDetail.class);
+        validEntityBeforeSave(add);
+        boolean flag = baseMapper.insert(add) > 0;
+        if (flag) {
+            bo.setScoreDetailId(add.getScoreDetailId());
+        }
+        return flag;
+    }
+
+    /**
+     * 修改成绩_成绩详情id
+     */
+    @Override
+    public Boolean updateByBo(ScoreDataDetailBo bo) {
+        ScoreDataDetail update = MapstructUtils.convert(bo, ScoreDataDetail.class);
+        validEntityBeforeSave(update);
+        return baseMapper.updateById(update) > 0;
+    }
+
+    /**
+     * 保存前的数据校验
+     */
+    private void validEntityBeforeSave(ScoreDataDetail entity){
+        //TODO 做一些数据校验,如唯一约束
+    }
+
+    /**
+     * 批量删除成绩_成绩详情id
+     */
+    @Override
+    public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
+        if(isValid){
+            //TODO 做一些业务上的校验,判断是否需要校验
+        }
+        return baseMapper.deleteBatchIds(ids) > 0;
+    }
+}

+ 0 - 127
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/score/ScoreDataDetailsServiceImpl.java

@@ -1,127 +0,0 @@
-package org.dromara.system.service.impl.score;
-
-import org.dromara.common.core.utils.MapstructUtils;
-import org.dromara.common.core.utils.StringUtils;
-import org.dromara.common.mybatis.core.page.TableDataInfo;
-import org.dromara.common.mybatis.core.page.PageQuery;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
-import lombok.RequiredArgsConstructor;
-import org.dromara.system.domain.score.ScoreDataDetails;
-import org.dromara.system.domain.score.bo.ScoreDataDetailsBo;
-import org.dromara.system.domain.score.vo.ScoreDataDetailsVo;
-import org.dromara.system.mapper.score.ScoreDataDetailsMapper;
-import org.dromara.system.service.score.IScoreDataDetailsService;
-import org.springframework.stereotype.Service;
-
-import java.util.List;
-import java.util.Map;
-import java.util.Collection;
-
-/**
- * 成绩_子Service业务层处理
- *
- * @author boman
- * @date 2023-08-16
- */
-@RequiredArgsConstructor
-@Service
-public class ScoreDataDetailsServiceImpl implements IScoreDataDetailsService {
-
-    private final ScoreDataDetailsMapper baseMapper;
-
-    /**
-     * 查询成绩_子
-     */
-    @Override
-    public ScoreDataDetailsVo queryById(Long scoreDetailsId){
-        return baseMapper.selectVoById(scoreDetailsId);
-    }
-
-    /**
-     * 查询成绩_子列表
-     */
-    @Override
-    public TableDataInfo<ScoreDataDetailsVo> queryPageList(ScoreDataDetailsBo bo, PageQuery pageQuery) {
-        LambdaQueryWrapper<ScoreDataDetails> lqw = buildQueryWrapper(bo);
-        Page<ScoreDataDetailsVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
-        return TableDataInfo.build(result);
-    }
-
-    /**
-     * 查询成绩_子列表
-     */
-    @Override
-    public List<ScoreDataDetailsVo> queryList(ScoreDataDetailsBo bo) {
-        LambdaQueryWrapper<ScoreDataDetails> lqw = buildQueryWrapper(bo);
-        return baseMapper.selectVoList(lqw);
-    }
-
-    private LambdaQueryWrapper<ScoreDataDetails> buildQueryWrapper(ScoreDataDetailsBo bo) {
-        Map<String, Object> params = bo.getParams();
-        LambdaQueryWrapper<ScoreDataDetails> lqw = Wrappers.lambdaQuery();
-        lqw.eq(bo.getScoreId() != null, ScoreDataDetails::getScoreId, bo.getScoreId());
-        lqw.eq(StringUtils.isNotBlank(bo.getScoreSort()), ScoreDataDetails::getScoreSort, bo.getScoreSort());
-        lqw.like(StringUtils.isNotBlank(bo.getScoreDataName()), ScoreDataDetails::getScoreDataName, bo.getScoreDataName());
-        lqw.eq(bo.getScoreDataNameId() != null, ScoreDataDetails::getScoreDataNameId, bo.getScoreDataNameId());
-        lqw.eq(StringUtils.isNotBlank(bo.getYuwen()), ScoreDataDetails::getYuwen, bo.getYuwen());
-        lqw.eq(StringUtils.isNotBlank(bo.getShuxue()), ScoreDataDetails::getShuxue, bo.getShuxue());
-        lqw.eq(StringUtils.isNotBlank(bo.getYingyu()), ScoreDataDetails::getYingyu, bo.getYingyu());
-        lqw.eq(StringUtils.isNotBlank(bo.getWuli()), ScoreDataDetails::getWuli, bo.getWuli());
-        lqw.eq(StringUtils.isNotBlank(bo.getHuaxue()), ScoreDataDetails::getHuaxue, bo.getHuaxue());
-        lqw.eq(StringUtils.isNotBlank(bo.getShengwu()), ScoreDataDetails::getShengwu, bo.getShengwu());
-        lqw.eq(StringUtils.isNotBlank(bo.getZhengzhi()), ScoreDataDetails::getZhengzhi, bo.getZhengzhi());
-        lqw.eq(StringUtils.isNotBlank(bo.getLishi()), ScoreDataDetails::getLishi, bo.getLishi());
-        lqw.eq(StringUtils.isNotBlank(bo.getDili()), ScoreDataDetails::getDili, bo.getDili());
-        lqw.eq(StringUtils.isNotBlank(bo.getTiyu()), ScoreDataDetails::getTiyu, bo.getTiyu());
-        lqw.eq(StringUtils.isNotBlank(bo.getWenzong()), ScoreDataDetails::getWenzong, bo.getWenzong());
-        lqw.eq(StringUtils.isNotBlank(bo.getLizong()), ScoreDataDetails::getLizong, bo.getLizong());
-        lqw.eq(StringUtils.isNotBlank(bo.getZhengcefen()), ScoreDataDetails::getZhengcefen, bo.getZhengcefen());
-        lqw.eq(StringUtils.isNotBlank(bo.getZongfen()), ScoreDataDetails::getZongfen, bo.getZongfen());
-        lqw.eq(StringUtils.isNotBlank(bo.getDetailsType()), ScoreDataDetails::getDetailsType, bo.getDetailsType());
-        return lqw;
-    }
-
-    /**
-     * 新增成绩_子
-     */
-    @Override
-    public Boolean insertByBo(ScoreDataDetailsBo bo) {
-        ScoreDataDetails add = MapstructUtils.convert(bo, ScoreDataDetails.class);
-        validEntityBeforeSave(add);
-        boolean flag = baseMapper.insert(add) > 0;
-        if (flag) {
-            bo.setScoreDetailsId(add.getScoreDetailsId());
-        }
-        return flag;
-    }
-
-    /**
-     * 修改成绩_子
-     */
-    @Override
-    public Boolean updateByBo(ScoreDataDetailsBo bo) {
-        ScoreDataDetails update = MapstructUtils.convert(bo, ScoreDataDetails.class);
-        validEntityBeforeSave(update);
-        return baseMapper.updateById(update) > 0;
-    }
-
-    /**
-     * 保存前的数据校验
-     */
-    private void validEntityBeforeSave(ScoreDataDetails entity){
-        //TODO 做一些数据校验,如唯一约束
-    }
-
-    /**
-     * 批量删除成绩_子
-     */
-    @Override
-    public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
-        if(isValid){
-            //TODO 做一些业务上的校验,判断是否需要校验
-        }
-        return baseMapper.deleteBatchIds(ids) > 0;
-    }
-}

+ 4 - 4
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/score/ScoreDataServiceImpl.java

@@ -1,11 +1,11 @@
 package org.dromara.system.service.impl.score;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import org.dromara.common.core.utils.MapstructUtils;
 import org.dromara.common.core.utils.StringUtils;
 import org.dromara.common.mybatis.core.page.TableDataInfo;
 import org.dromara.common.mybatis.core.page.PageQuery;
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import lombok.RequiredArgsConstructor;
 import org.dromara.system.domain.score.ScoreData;
@@ -15,7 +15,6 @@ import org.dromara.system.mapper.score.ScoreDataMapper;
 import org.dromara.system.service.score.IScoreDataService;
 import org.springframework.stereotype.Service;
 
-
 import java.util.List;
 import java.util.Map;
 import java.util.Collection;
@@ -24,7 +23,7 @@ import java.util.Collection;
  * 成绩Service业务层处理
  *
  * @author boman
- * @date 2023-08-16
+ * @date 2023-08-17
  */
 @RequiredArgsConstructor
 @Service
@@ -67,6 +66,7 @@ public class ScoreDataServiceImpl implements IScoreDataService {
         lqw.eq(StringUtils.isNotBlank(bo.getScoreClassId()), ScoreData::getScoreClassId, bo.getScoreClassId());
         lqw.like(StringUtils.isNotBlank(bo.getScoreClassName()), ScoreData::getScoreClassName, bo.getScoreClassName());
         lqw.eq(StringUtils.isNotBlank(bo.getPrivacyType()), ScoreData::getPrivacyType, bo.getPrivacyType());
+        lqw.eq(StringUtils.isNotBlank(bo.getAvg()), ScoreData::getAvg, bo.getAvg());
         return lqw;
     }
 

+ 115 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/score/ScoreDataStudentServiceImpl.java

@@ -0,0 +1,115 @@
+package org.dromara.system.service.impl.score;
+
+import org.dromara.common.core.utils.MapstructUtils;
+import org.dromara.common.core.utils.StringUtils;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+import org.dromara.common.mybatis.core.page.PageQuery;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import lombok.RequiredArgsConstructor;
+import org.dromara.system.domain.score.ScoreDataStudent;
+import org.dromara.system.domain.score.bo.ScoreDataStudentBo;
+import org.dromara.system.domain.score.vo.ScoreDataStudentVo;
+import org.dromara.system.mapper.score.ScoreDataStudentMapper;
+import org.springframework.stereotype.Service;
+import org.dromara.system.service.score.IScoreDataStudentService;
+
+import java.util.List;
+import java.util.Map;
+import java.util.Collection;
+
+/**
+ * 成绩_子学生idService业务层处理
+ *
+ * @author boman
+ * @date 2023-08-17
+ */
+@RequiredArgsConstructor
+@Service
+public class ScoreDataStudentServiceImpl implements IScoreDataStudentService {
+
+    private final ScoreDataStudentMapper baseMapper;
+
+    /**
+     * 查询成绩_子学生id
+     */
+    @Override
+    public ScoreDataStudentVo queryById(Long scoreStudentId){
+        return baseMapper.selectVoById(scoreStudentId);
+    }
+
+    /**
+     * 查询成绩_子学生id列表
+     */
+    @Override
+    public TableDataInfo<ScoreDataStudentVo> queryPageList(ScoreDataStudentBo bo, PageQuery pageQuery) {
+        LambdaQueryWrapper<ScoreDataStudent> lqw = buildQueryWrapper(bo);
+        Page<ScoreDataStudentVo> result = baseMapper.selectVoPage(pageQuery.build(), lqw);
+        return TableDataInfo.build(result);
+    }
+
+    /**
+     * 查询成绩_子学生id列表
+     */
+    @Override
+    public List<ScoreDataStudentVo> queryList(ScoreDataStudentBo bo) {
+        LambdaQueryWrapper<ScoreDataStudent> lqw = buildQueryWrapper(bo);
+        return baseMapper.selectVoList(lqw);
+    }
+
+    private LambdaQueryWrapper<ScoreDataStudent> buildQueryWrapper(ScoreDataStudentBo bo) {
+        Map<String, Object> params = bo.getParams();
+        LambdaQueryWrapper<ScoreDataStudent> lqw = Wrappers.lambdaQuery();
+        lqw.eq(bo.getScoreId() != null, ScoreDataStudent::getScoreId, bo.getScoreId());
+        lqw.eq(StringUtils.isNotBlank(bo.getScoreSort()), ScoreDataStudent::getScoreSort, bo.getScoreSort());
+        lqw.like(StringUtils.isNotBlank(bo.getScoreDataName()), ScoreDataStudent::getScoreDataName, bo.getScoreDataName());
+        lqw.eq(bo.getScoreDataNameId() != null, ScoreDataStudent::getScoreDataNameId, bo.getScoreDataNameId());
+        lqw.eq(StringUtils.isNotBlank(bo.getZongfen()), ScoreDataStudent::getZongfen, bo.getZongfen());
+        lqw.eq(StringUtils.isNotBlank(bo.getAvg()), ScoreDataStudent::getAvg, bo.getAvg());
+        lqw.eq(StringUtils.isNotBlank(bo.getDetailsType()), ScoreDataStudent::getDetailsType, bo.getDetailsType());
+        return lqw;
+    }
+
+    /**
+     * 新增成绩_子学生id
+     */
+    @Override
+    public Boolean insertByBo(ScoreDataStudentBo bo) {
+        ScoreDataStudent add = MapstructUtils.convert(bo, ScoreDataStudent.class);
+        validEntityBeforeSave(add);
+        boolean flag = baseMapper.insert(add) > 0;
+        if (flag) {
+            bo.setScoreStudentId(add.getScoreStudentId());
+        }
+        return flag;
+    }
+
+    /**
+     * 修改成绩_子学生id
+     */
+    @Override
+    public Boolean updateByBo(ScoreDataStudentBo bo) {
+        ScoreDataStudent update = MapstructUtils.convert(bo, ScoreDataStudent.class);
+        validEntityBeforeSave(update);
+        return baseMapper.updateById(update) > 0;
+    }
+
+    /**
+     * 保存前的数据校验
+     */
+    private void validEntityBeforeSave(ScoreDataStudent entity){
+        //TODO 做一些数据校验,如唯一约束
+    }
+
+    /**
+     * 批量删除成绩_子学生id
+     */
+    @Override
+    public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
+        if(isValid){
+            //TODO 做一些业务上的校验,判断是否需要校验
+        }
+        return baseMapper.deleteBatchIds(ids) > 0;
+    }
+}

+ 65 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/xiake/XiakeConfigServiceImpl.java

@@ -1,5 +1,7 @@
 package org.dromara.system.service.impl.xiake;
 
+import cn.hutool.core.convert.Convert;
+import org.dromara.common.core.constant.CacheConstants;
 import org.dromara.common.core.utils.MapstructUtils;
 import org.dromara.common.core.utils.StringUtils;
 import org.dromara.common.mybatis.core.page.TableDataInfo;
@@ -8,11 +10,15 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import lombok.RequiredArgsConstructor;
+import org.dromara.common.redis.utils.RedisUtils;
+import org.dromara.sms4j.api.universal.RedisUtil;
 import org.dromara.system.domain.xiake.XiakeConfig;
 import org.dromara.system.domain.xiake.bo.XiakeConfigBo;
 import org.dromara.system.domain.xiake.vo.XiakeConfigVo;
 import org.dromara.system.mapper.xiake.XiakeConfigMapper;
 import org.dromara.system.service.xiake.IXiakeConfigService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.cache.RedisCache;
 import org.springframework.stereotype.Service;
 import java.util.List;
 import java.util.Map;
@@ -38,6 +44,65 @@ public class XiakeConfigServiceImpl implements IXiakeConfigService {
         return baseMapper.selectVoById(configId);
     }
 
+    /**
+     * 根据键名查询参数配置信息
+     *
+     * @param bo 参数键名
+     * @return 参数键值
+     */
+    @Override
+    public String selectConfigByKey(XiakeConfigBo bo) {
+        String configType = bo.getConfigType();
+        String cacheKey = getCacheKey(bo.getConfigKey());
+        cacheKey = cacheKey + ":"+configType;
+        String configValue = Convert.toStr(RedisUtils.getCacheObject(cacheKey));
+        if (StringUtils.isNotEmpty(configValue))
+        {
+            return configValue;
+        }
+        bo.setConfigKey(bo.getConfigKey()+ ":"+configType);
+        XiakeConfig retConfig = baseMapper.selectConfig(bo);
+        if (retConfig != null)
+        {
+            RedisUtils.setCacheObject(getCacheKey(cacheKey), retConfig.getConfigValue());
+            return retConfig.getConfigValue();
+        }
+        return StringUtils.EMPTY;
+    }
+
+    /**
+     *
+     * @param bo
+     * @return
+     */
+    @Override
+    public int updateConfigValue(XiakeConfigBo bo) {
+        String key = bo.getConfigKey() + ":" + bo.getConfigType();
+
+        XiakeConfigVo temp = baseMapper.checkConfigKeyUnique(key);
+        if (!StringUtils.equals(temp.getConfigKey(), bo.getConfigKey()))
+        {
+            RedisUtils.deleteObject(getCacheKey(temp.getConfigKey()));
+        }
+        bo.setConfigKey(key);
+        int row = baseMapper.updateConfigByKey(bo);
+        if (row > 0)
+        {
+            RedisUtils.setCacheObject(getCacheKey(key), bo.getConfigValue());
+        }
+        return row;
+    }
+
+    /**
+     * 设置cache key
+     *
+     * @param configKey 参数键
+     * @return 缓存键key
+     */
+    private String getCacheKey(String configKey)
+    {
+        return CacheConstants.XIA_CONFIG_KEY + configKey;
+    }
     /**
      * 查询下课时间配置列表
      */

+ 24 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/info/IXiaoyuanInfoService.java

@@ -4,6 +4,7 @@ package org.dromara.system.service.info;
 import org.dromara.system.domain.bo.XiaoyuanInfoBo;
 import org.dromara.common.mybatis.core.page.TableDataInfo;
 import org.dromara.common.mybatis.core.page.PageQuery;
+import org.dromara.system.domain.info.bo.InfoPingLunBo;
 import org.dromara.system.domain.info.vo.XiaoyuanInfoVo;
 
 import java.util.Collection;
@@ -46,4 +47,27 @@ public interface IXiaoyuanInfoService {
      * 校验并批量删除校园安全信息信息
      */
     Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
+    /**
+     * 新增校园安全信息评论
+     */
+    int insertInfoPingLun(InfoPingLunBo bo);
+
+    /**
+     * 删除评论
+     * @param bo
+     * @return
+     */
+    public int deletePingLun(InfoPingLunBo bo);
+    /**
+     * 点赞接口
+     * @param bo
+     * @return
+     */
+    public int dianZan(XiaoyuanInfoBo bo);
+    /**
+     * 转发接口
+     * @param bo
+     * @return
+     */
+    public int zhuanFa(XiaoyuanInfoBo bo);
 }

+ 8 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/notice/IXiaoyuanNoticeService.java

@@ -46,4 +46,12 @@ public interface IXiaoyuanNoticeService {
      * 校验并批量删除校园新闻信息
      */
     Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
+
+    /**
+     * 我的收藏
+     * @param bo
+     * @param pageQuery
+     * @return
+     */
+    TableDataInfo<XiaoyuanNoticeVo> myCollect(XiaoyuanNoticeBo bo, PageQuery pageQuery);
 }

+ 47 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/score/IScoreDataDetailService.java

@@ -0,0 +1,47 @@
+package org.dromara.system.service.score;
+
+import org.dromara.common.mybatis.core.page.PageQuery;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+import org.dromara.system.domain.score.bo.ScoreDataDetailBo;
+import org.dromara.system.domain.score.vo.ScoreDataDetailVo;
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * 成绩_成绩详情idService接口
+ *
+ * @author boman
+ * @date 2023-08-17
+ */
+public interface IScoreDataDetailService {
+
+    /**
+     * 查询成绩_成绩详情id
+     */
+    ScoreDataDetailVo queryById(Long scoreDetailId);
+
+    /**
+     * 查询成绩_成绩详情id列表
+     */
+    TableDataInfo<ScoreDataDetailVo> queryPageList(ScoreDataDetailBo bo, PageQuery pageQuery);
+
+    /**
+     * 查询成绩_成绩详情id列表
+     */
+    List<ScoreDataDetailVo> queryList(ScoreDataDetailBo bo);
+
+    /**
+     * 新增成绩_成绩详情id
+     */
+    Boolean insertByBo(ScoreDataDetailBo bo);
+
+    /**
+     * 修改成绩_成绩详情id
+     */
+    Boolean updateByBo(ScoreDataDetailBo bo);
+
+    /**
+     * 校验并批量删除成绩_成绩详情id信息
+     */
+    Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
+}

+ 0 - 49
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/score/IScoreDataDetailsService.java

@@ -1,49 +0,0 @@
-package org.dromara.system.service.score;
-
-
-import org.dromara.common.mybatis.core.page.PageQuery;
-import org.dromara.common.mybatis.core.page.TableDataInfo;
-import org.dromara.system.domain.score.bo.ScoreDataDetailsBo;
-import org.dromara.system.domain.score.vo.ScoreDataDetailsVo;
-
-import java.util.Collection;
-import java.util.List;
-
-/**
- * 成绩_子Service接口
- *
- * @author boman
- * @date 2023-08-16
- */
-public interface IScoreDataDetailsService {
-
-    /**
-     * 查询成绩_子
-     */
-    ScoreDataDetailsVo queryById(Long scoreDetailsId);
-
-    /**
-     * 查询成绩_子列表
-     */
-    TableDataInfo<ScoreDataDetailsVo> queryPageList(ScoreDataDetailsBo bo, PageQuery pageQuery);
-
-    /**
-     * 查询成绩_子列表
-     */
-    List<ScoreDataDetailsVo> queryList(ScoreDataDetailsBo bo);
-
-    /**
-     * 新增成绩_子
-     */
-    Boolean insertByBo(ScoreDataDetailsBo bo);
-
-    /**
-     * 修改成绩_子
-     */
-    Boolean updateByBo(ScoreDataDetailsBo bo);
-
-    /**
-     * 校验并批量删除成绩_子信息
-     */
-    Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
-}

+ 1 - 3
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/score/IScoreDataService.java

@@ -1,11 +1,9 @@
 package org.dromara.system.service.score;
 
-
 import org.dromara.common.mybatis.core.page.PageQuery;
 import org.dromara.common.mybatis.core.page.TableDataInfo;
 import org.dromara.system.domain.score.bo.ScoreDataBo;
 import org.dromara.system.domain.score.vo.ScoreDataVo;
-
 import java.util.Collection;
 import java.util.List;
 
@@ -13,7 +11,7 @@ import java.util.List;
  * 成绩Service接口
  *
  * @author boman
- * @date 2023-08-16
+ * @date 2023-08-17
  */
 public interface IScoreDataService {
 

+ 47 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/score/IScoreDataStudentService.java

@@ -0,0 +1,47 @@
+package org.dromara.system.service.score;
+
+import org.dromara.common.mybatis.core.page.PageQuery;
+import org.dromara.common.mybatis.core.page.TableDataInfo;
+import org.dromara.system.domain.score.bo.ScoreDataStudentBo;
+import org.dromara.system.domain.score.vo.ScoreDataStudentVo;
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * 成绩_子学生idService接口
+ *
+ * @author boman
+ * @date 2023-08-17
+ */
+public interface IScoreDataStudentService {
+
+    /**
+     * 查询成绩_子学生id
+     */
+    ScoreDataStudentVo queryById(Long scoreStudentId);
+
+    /**
+     * 查询成绩_子学生id列表
+     */
+    TableDataInfo<ScoreDataStudentVo> queryPageList(ScoreDataStudentBo bo, PageQuery pageQuery);
+
+    /**
+     * 查询成绩_子学生id列表
+     */
+    List<ScoreDataStudentVo> queryList(ScoreDataStudentBo bo);
+
+    /**
+     * 新增成绩_子学生id
+     */
+    Boolean insertByBo(ScoreDataStudentBo bo);
+
+    /**
+     * 修改成绩_子学生id
+     */
+    Boolean updateByBo(ScoreDataStudentBo bo);
+
+    /**
+     * 校验并批量删除成绩_子学生id信息
+     */
+    Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid);
+}

+ 13 - 0
ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/xiake/IXiakeConfigService.java

@@ -21,6 +21,19 @@ public interface IXiakeConfigService {
      * 查询下课时间配置
      */
     XiakeConfigVo queryById(Long configId);
+    /**
+     * 根据键名查询参数配置信息
+     *
+     * @param bo 参数键名
+     * @return 参数键值
+     */
+    String selectConfigByKey(XiakeConfigBo bo);
+    /**
+     * 根据参数键名修改参数值
+     */
+    int updateConfigValue(XiakeConfigBo bo);
+
+
 
     /**
      * 查询下课时间配置列表

+ 18 - 0
ruoyi-modules/ruoyi-system/src/main/resources/mapper/info/InfoPingLunMapper.xml

@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.dromara.system.mapper.info.InfoPingLunMapper">
+
+    <insert id="batchInfoPingLun">
+        insert into info_pinglun( info_pinglun_id, info_id, info_pinglun_parent, info_pinglun_content, avatar, info_pinglun_user_id, info_pinglun_user_name, info_pinglun_quilt_user_id, info_pinglun_quilt_user_name, pinglun_time, info_pinglun_type, info_pinglun_examine, create_by, create_time, update_by, update_time, remark) values
+        <foreach item="item" index="index" collection="list" separator=",">
+            ( #{item.infoPingLunId}, #{item.infoId}, #{item.infoPingLunParent}, #{item.infoPingLunContent}, #{item.avatar}, #{item.infoPingLunUserId}, #{item.infoPingLunUserName}, #{item.infoPingLunQuiltUserId}, #{item.infoPingLunQuiltUserName}, #{item.pingLunTime}, #{item.infoPingLunType}, #{item.infoPingLunExamine}, #{item.createBy}, #{item.createTime}, #{item.updateBy}, #{item.updateTime}, #{item.remark})
+        </foreach>
+    </insert>
+    <delete id="deletePingLun" parameterType="InfoPingLun">
+        delete from info_pinglun where
+        <if test="infoPingLunType != null and infoPingLunType == 1">info_pinglun_parent = #{infoPingLunId} or info_pinglun_id = #{infoPingLunId}</if>
+        <if test="infoPingLunType != null and infoPingLunType == 2">info_pinglun_id = #{infoPingLunId}</if>
+    </delete>
+</mapper>

+ 28 - 0
ruoyi-modules/ruoyi-system/src/main/resources/mapper/notice/XiaoyuanNoticeMapper.xml

@@ -4,4 +4,32 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="org.dromara.system.mapper.notice.XiaoyuanNoticeMapper">
 
+    <resultMap type="org.dromara.system.domain.notice.vo.XiaoyuanNoticeVo" id="XiaoyuanNoticeResult">
+        <result property="noticeId" column="notice_id"/>
+        <result property="image" column="image"/>
+        <result property="noticeTitle" column="notice_title"/>
+        <result property="noticeType" column="notice_type"/>
+        <result property="noticeContent" column="notice_content"/>
+        <result property="status" column="status"/>
+        <result property="type" column="type"/>
+        <result property="classIdKeJian" column="class_id_kejian"/>
+        <result property="classIdBuKeJian" column="class_id_bukejian"/>
+        <result property="senderId" column="sender_id"/>
+        <result property="senderName" column="sender_name"/>
+        <result property="senderDept" column="sender_dept"/>
+        <result property="remark" column="remark"/>
+        <result property="avatar" column="avatar"/>
+        <result property="schoolName" column="school_name"/>
+        <result property="comment" column="comment"/>
+        <result property="prised" column="prised"/>
+        <result property="collect" column="collect"/>
+    </resultMap>
+    <sql id="selectXiaoyuanNoticeVo">
+        select notice_id, image, notice_title, notice_type, notice_content, status, type,school_name,avatar, sender_id, sender_name, sender_dept, create_by, create_time, update_by, update_time, remark,collect,prised,comment from xiaoyuan_notice
+    </sql>
+    <select id="selectXiaoyuanNoticeByMyCollect"
+            resultMap="XiaoyuanNoticeResult">
+        <include refid="selectXiaoyuanNoticeVo"/>
+        ${ew.getCustomSqlSegment}
+    </select>
 </mapper>

+ 1 - 1
ruoyi-modules/ruoyi-system/src/main/resources/mapper/score/ScoreDataDetailsMapper.xml → ruoyi-modules/ruoyi-system/src/main/resources/mapper/score/ScoreDataDetailMapper.xml

@@ -2,6 +2,6 @@
 <!DOCTYPE mapper
 PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="org.dromara.system.mapper.score.ScoreDataDetailsMapper">
+<mapper namespace="org.dromara.system.mapper.score.ScoreDataDetailMapper">
 
 </mapper>

+ 7 - 0
ruoyi-modules/ruoyi-system/src/main/resources/mapper/score/ScoreDataStudentMapper.xml

@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="org.dromara.system.mapper.score.ScoreDataStudentMapper">
+
+</mapper>

+ 41 - 0
ruoyi-modules/ruoyi-system/src/main/resources/mapper/xiake/XiakeConfigMapper.xml

@@ -4,4 +4,45 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="org.dromara.system.mapper.xiake.XiakeConfigMapper">
 
+    <resultMap type="XiakeConfigVo" id="XiakeConfigResult">
+        <id     property="configId"      column="config_id"      />
+        <result property="configName"    column="config_name"    />
+        <result property="configKey"     column="config_key"     />
+        <result property="configValue"   column="config_value"   />
+        <result property="configType"    column="config_type"    />
+        <result property="createBy"      column="create_by"      />
+        <result property="createTime"    column="create_time"    />
+        <result property="updateBy"      column="update_by"      />
+        <result property="updateTime"    column="update_time"    />
+    </resultMap>
+    <sql id="selectConfigVo">
+        select config_id, config_name, config_key, config_value, config_type, create_by, create_time, update_by, update_time, remark
+        from xiake_config
+    </sql>
+    <!-- 查询条件 -->
+    <sql id="sqlwhereSearch">
+        <where>
+            <if test="configId !=null">
+                and config_id = #{configId}
+            </if>
+            <if test="configKey !=null and configKey != ''">
+                and config_key = #{configKey}
+            </if>
+        </where>
+    </sql>
+    <select id="checkConfigKeyUnique" parameterType="String" resultMap="XiakeConfigResult">
+        <include refid="selectConfigVo"/>
+        where config_key = #{configKey} limit 1
+    </select>
+    <select id="selectConfig" parameterType="org.dromara.system.domain.xiake.bo.XiakeConfigBo" resultMap="XiakeConfigResult">
+        <include refid="selectConfigVo"/>
+        <include refid="sqlwhereSearch"/>
+    </select>
+    <update id="updateConfigByKey">
+        update xiake_config
+        <set>
+            <if test="configValue != null and configValue != ''">config_value = #{configValue},</if>
+        </set>
+        where config_key = #{configKey}
+    </update>
 </mapper>