浏览代码

1.课程人员导入错误加返回账号信息
2.组织人员树加入可以检索教育身份
3.完善课程问答相关功能

honorfire 7 月之前
父节点
当前提交
4498295cb7
共有 18 个文件被更改,包括 502 次插入286 次删除
  1. 225 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/controller/CourseQuestionAnswerController.java
  2. 0 159
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/controller/QuestionAnswerController.java
  3. 1 1
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/controller/QuestionAnswerGiveController.java
  4. 32 42
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/domain/QuestionAnswer.java
  5. 1 1
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/domain/QuestionAnswerGive.java
  6. 16 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/mapper/QuestionAnswerMapper.java
  7. 1 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/mapper/mapping/ClassHourMapper.xml
  8. 4 1
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/mapper/mapping/CourseNotesMapper.xml
  9. 90 0
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/mapper/mapping/QuestionAnswerMapper.xml
  10. 17 25
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/param/QuestionAnswerAddParam.java
  11. 1 1
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/param/QuestionAnswerEditParam.java
  12. 1 1
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/param/QuestionAnswerIdParam.java
  13. 37 10
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/service/QuestionAnswerService.java
  14. 2 2
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/service/impl/CourseStudentRelateServiceImpl.java
  15. 39 6
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/service/impl/QuestionAnswerServiceImpl.java
  16. 30 37
      snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/vo/questionanswer/QuestionAnswerVo.java
  17. 2 0
      snowy-plugin/snowy-plugin-sys/snowy-plugin-sys-func/src/main/java/vip/xiaonuo/sys/modular/org/controller/SysOrgController.java
  18. 3 0
      snowy-plugin/snowy-plugin-sys/snowy-plugin-sys-func/src/main/java/vip/xiaonuo/sys/modular/user/mapper/mapping/SysUserMapper.xml

+ 225 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/controller/CourseQuestionAnswerController.java

@@ -0,0 +1,225 @@
+/*
+ * Copyright [2022] [https://www.xiaonuo.vip]
+ *
+ * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
+ *
+ * 1.请不要删除和修改根目录下的LICENSE文件。
+ * 2.请不要删除和修改Snowy源码头部的版权声明。
+ * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
+ * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
+ * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
+ * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
+ */
+package vip.xiaonuo.disk.controller;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.collection.CollStreamUtil;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import com.github.xiaoymin.knife4j.annotations.ApiSupport;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RestController;
+import vip.xiaonuo.auth.core.util.StpLoginUserUtil;
+import vip.xiaonuo.common.annotation.CommonLog;
+import vip.xiaonuo.common.pojo.CommonResult;
+import vip.xiaonuo.common.pojo.CommonValidList;
+import vip.xiaonuo.disk.domain.CourseRelate;
+import vip.xiaonuo.disk.domain.QuestionAnswer;
+import vip.xiaonuo.disk.param.*;
+import vip.xiaonuo.disk.service.CourseRelateService;
+import vip.xiaonuo.disk.service.QuestionAnswerService;
+import vip.xiaonuo.disk.vo.questionanswer.QuestionAnswerVo;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import javax.validation.Valid;
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+/**
+ * 课程问答控制器
+ *
+ * @author pans
+ * @date  2025/07/11 18:52
+ */
+@Api(tags = "课程问答控制器")
+@ApiSupport(author = "SNOWY_TEAM", order = 1)
+@RestController
+@Validated
+public class CourseQuestionAnswerController {
+
+    @Resource
+    private QuestionAnswerService questionAnswerService;
+    @Resource
+    private CourseRelateService courseRelateService;
+
+    /**
+     * 获取课程问答分页
+     *
+     * @author pans
+     * @date  2025/07/11 18:52
+     */
+    @ApiOperationSupport(order = 1)
+    @ApiOperation("获取课程问答分页")
+    @GetMapping("/disk/answer/page")
+    public CommonResult<Page<Map<String,Object>>> page(QuestionAnswerPageParam questionAnswerPageParam, HttpServletRequest req) {
+        Map param =new HashMap();
+        param.put("courseId", req.getParameter("courseId"));
+        param.put("hourId", req.getParameter("hourId"));
+        param.put("userId", StpLoginUserUtil.getLoginUser().getId());
+        //查询一级评论问题
+        Page<Map<String,Object>> page=questionAnswerService.queryList(param);
+        List<Map<String,Object>> recordList=page.getRecords();
+        List<String> recordIdList=  recordList.stream().map(map -> (String) map.get("id")).collect(Collectors.toList());
+        param.clear();
+        param.put("pidList", recordIdList);
+        //查询二级评论问题
+        List<Map<String,Object>> recordTwoList=questionAnswerService.queryMapList(param);
+        // 1. 准备结果:为每个章节添加classHours字段
+        for (Map<String, Object> record : recordList) {
+            if (record == null || record.get("id") == null) continue;
+
+            String recordId = record.get("id").toString();
+            List<Map<String, Object>> recordChildList = new ArrayList<>();
+
+            // 2. 倒序遍历课程列表(关键点!)
+            for (int i = recordTwoList.size() - 1; i >= 0; i--) {
+                Map<String, Object> recordTwo = recordTwoList.get(i);
+                if (recordTwo == null || recordTwo.get("pid") == null) continue;
+
+                // 3. 匹配当前章节
+                if (recordId.equals(recordTwo.get("pid").toString())) {
+                    recordChildList.add(recordTwo);  // 添加到章节
+                    recordTwoList.remove(i);          // 从原列表删除(安全操作)
+                }
+            }
+
+            record.put("recordChildList", recordChildList);
+        }
+
+        return CommonResult.data(page);
+    }
+
+    /**
+     * 添加课程问答
+     *
+     * @author pans
+     * @date  2025/07/11 18:52
+     */
+    @ApiOperationSupport(order = 2)
+    @ApiOperation("添加课程问答")
+    @CommonLog("添加课程问答")
+    @PostMapping("/disk/answer/add")
+    public CommonResult<String> add(@RequestBody @Valid QuestionAnswerAddParam questionAnswerAddParam) {
+        //1.添加问答信息
+        QuestionAnswer questionAnswer = BeanUtil.toBean(questionAnswerAddParam, QuestionAnswer.class);
+        questionAnswer=questionAnswerService.addOne(questionAnswer);
+        //2.添加进课程关联信息
+        CourseRelate courseRelate=new CourseRelate();
+        courseRelate.setMainId(questionAnswerAddParam.getHourId());
+        courseRelate.setRelateId(questionAnswer.getId());
+        //功能类型,1视频资源,2讲义,3字幕,4作业,5测验,6笔记,7问答
+        courseRelate.setFuncType("7");
+        courseRelate.setChapterhourType("1");
+        courseRelate.setInfoType("1");
+        courseRelateService.addOne(courseRelate);
+
+        return CommonResult.ok();
+    }
+
+    /**
+     * 编辑课程问答
+     *
+     * @author pans
+     * @date  2025/07/11 18:52
+     */
+    @ApiOperationSupport(order = 3)
+    @ApiOperation("编辑课程问答")
+    @CommonLog("编辑课程问答")
+    @PostMapping("/disk/answer/edit")
+    public CommonResult<String> edit(@RequestBody @Valid QuestionAnswerEditParam questionAnswerEditParam) {
+        questionAnswerService.edit(questionAnswerEditParam);
+        return CommonResult.ok();
+    }
+
+    /**
+     * 删除课程问答
+     *
+     * @author pans
+     * @date  2025/07/11 18:52
+     */
+    @ApiOperationSupport(order = 4)
+    @ApiOperation("删除课程问答")
+    @CommonLog("删除课程问答")
+    @PostMapping("/disk/answer/delete")
+    public CommonResult<String> delete(@RequestBody @Valid @NotEmpty(message = "集合不能为空")
+                                                   CommonValidList<QuestionAnswerIdParam> questionAnswerIdParamList) {
+        questionAnswerService.delete(questionAnswerIdParamList);
+        //删除课程关联问答信息
+        List<String> deleteIdList= CollStreamUtil.toList(questionAnswerIdParamList, QuestionAnswerIdParam::getId);
+        Map param=new HashMap<>();
+        param.put("relateIdList", deleteIdList);
+        List<CourseRelate> courseRelateList=courseRelateService.wrapperList(param);
+        List<String> deleteRelateIdList=CollStreamUtil.toList(courseRelateList, CourseRelate::getId);
+        courseRelateService.deleteByIdsReal(deleteRelateIdList);
+        return CommonResult.ok();
+    }
+
+    /**
+     * 获取课程问答详情
+     *
+     * @author pans
+     * @date  2025/07/11 18:52
+     */
+    @ApiOperationSupport(order = 5)
+    @ApiOperation("获取课程问答详情")
+    @GetMapping("/disk/answer/detail")
+    public CommonResult<Map<String,Object>> detail(@Valid QuestionAnswerIdParam questionAnswerIdParam, HttpServletRequest req) {
+        Map param =new HashMap();
+        param.put("courseId", req.getParameter("courseId"));
+        Map<String,Object> result=questionAnswerService.queryInfo(param);
+        return CommonResult.data(result);
+    }
+
+
+    /**
+     * 点赞
+     *
+     * @author pans
+     * @date  2025/06/27 11:07
+     */
+    @ApiOperationSupport(order = 3)
+    @ApiOperation("点赞")
+    @CommonLog("点赞")
+    @GetMapping("/disk/answer/give")
+    public CommonResult<String> edit(@Valid @NotNull(message="主键id不能为空") String id) {
+        questionAnswerService.give(id);
+        return CommonResult.ok();
+    }
+
+
+    /**
+     * 取消点赞
+     *
+     * @author pans
+     * @date  2025/06/27 11:07
+     */
+    @ApiOperationSupport(order = 3)
+    @ApiOperation("点赞")
+    @CommonLog("点赞")
+    @GetMapping("/disk/answer/giveCancel")
+    public CommonResult<String> giveCancel(@Valid @NotNull(message="主键id不能为空") String id) {
+        return CommonResult.ok(questionAnswerService.giveCancel(id));
+    }
+
+}

+ 0 - 159
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/controller/QuestionAnswerController.java

@@ -1,159 +0,0 @@
-/*
- * Copyright [2022] [https://www.xiaonuo.vip]
- *
- * Snowy采用APACHE LICENSE 2.0开源协议,您在使用过程中,需要注意以下几点:
- *
- * 1.请不要删除和修改根目录下的LICENSE文件。
- * 2.请不要删除和修改Snowy源码头部的版权声明。
- * 3.本项目代码可免费商业使用,商业使用请保留源码和相关描述文件的项目出处,作者声明等。
- * 4.分发源码时候,请注明软件出处 https://www.xiaonuo.vip
- * 5.不可二次分发开源参与同类竞品,如有想法可联系团队xiaonuobase@qq.com商议合作。
- * 6.若您的项目无法满足以上几点,需要更多功能代码,获取Snowy商业授权许可,请在官网购买授权,地址为 https://www.xiaonuo.vip
- */
-package vip.xiaonuo.disk.controller;
-
-import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
-import com.github.xiaoymin.knife4j.annotations.ApiSupport;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RestController;
-import vip.xiaonuo.common.annotation.CommonLog;
-import vip.xiaonuo.common.pojo.CommonResult;
-import vip.xiaonuo.common.pojo.CommonValidList;
-import vip.xiaonuo.disk.domain.QuestionAnswer;
-import vip.xiaonuo.disk.param.QuestionAnswerAddParam;
-import vip.xiaonuo.disk.param.QuestionAnswerEditParam;
-import vip.xiaonuo.disk.param.QuestionAnswerIdParam;
-import vip.xiaonuo.disk.param.QuestionAnswerPageParam;
-import vip.xiaonuo.disk.service.QuestionAnswerService;
-import vip.xiaonuo.disk.vo.questionanswer.QuestionAnswerVo;
-
-import javax.annotation.Resource;
-import javax.validation.Valid;
-import javax.validation.constraints.NotEmpty;
-import javax.validation.constraints.NotNull;
-
-/**
- * question_answer控制器
- *
- * @author pans
- * @date  2025/07/11 18:52
- */
-@Api(tags = "question_answer控制器")
-@ApiSupport(author = "SNOWY_TEAM", order = 1)
-@RestController
-@Validated
-public class QuestionAnswerController {
-
-    @Resource
-    private QuestionAnswerService questionAnswerService;
-
-    /**
-     * 获取question_answer分页
-     *
-     * @author pans
-     * @date  2025/07/11 18:52
-     */
-    @ApiOperationSupport(order = 1)
-    @ApiOperation("获取question_answer分页")
-    @GetMapping("/disk/answer/page")
-    public CommonResult<Page<QuestionAnswerVo>> page(QuestionAnswerPageParam questionAnswerPageParam) {
-        return CommonResult.data(questionAnswerService.page(questionAnswerPageParam));
-    }
-
-    /**
-     * 添加question_answer
-     *
-     * @author pans
-     * @date  2025/07/11 18:52
-     */
-    @ApiOperationSupport(order = 2)
-    @ApiOperation("添加question_answer")
-    @CommonLog("添加question_answer")
-    @PostMapping("/disk/answer/add")
-    public CommonResult<String> add(@RequestBody @Valid QuestionAnswerAddParam questionAnswerAddParam) {
-        questionAnswerService.add(questionAnswerAddParam);
-        return CommonResult.ok();
-    }
-
-    /**
-     * 编辑question_answer
-     *
-     * @author pans
-     * @date  2025/07/11 18:52
-     */
-    @ApiOperationSupport(order = 3)
-    @ApiOperation("编辑question_answer")
-    @CommonLog("编辑question_answer")
-    @PostMapping("/disk/answer/edit")
-    public CommonResult<String> edit(@RequestBody @Valid QuestionAnswerEditParam questionAnswerEditParam) {
-        questionAnswerService.edit(questionAnswerEditParam);
-        return CommonResult.ok();
-    }
-
-    /**
-     * 删除question_answer
-     *
-     * @author pans
-     * @date  2025/07/11 18:52
-     */
-    @ApiOperationSupport(order = 4)
-    @ApiOperation("删除question_answer")
-    @CommonLog("删除question_answer")
-    @PostMapping("/disk/answer/delete")
-    public CommonResult<String> delete(@RequestBody @Valid @NotEmpty(message = "集合不能为空")
-                                                   CommonValidList<QuestionAnswerIdParam> questionAnswerIdParamList) {
-        questionAnswerService.delete(questionAnswerIdParamList);
-        return CommonResult.ok();
-    }
-
-    /**
-     * 获取question_answer详情
-     *
-     * @author pans
-     * @date  2025/07/11 18:52
-     */
-    @ApiOperationSupport(order = 5)
-    @ApiOperation("获取question_answer详情")
-    @GetMapping("/disk/answer/detail")
-    public CommonResult<QuestionAnswer> detail(@Valid QuestionAnswerIdParam questionAnswerIdParam) {
-        return CommonResult.data(questionAnswerService.detail(questionAnswerIdParam));
-    }
-
-
-    /**
-     * 点赞
-     *
-     * @author pans
-     * @date  2025/06/27 11:07
-     */
-    @ApiOperationSupport(order = 3)
-    @ApiOperation("点赞")
-    @CommonLog("点赞")
-    @GetMapping("/disk/answer/give")
-    public CommonResult<String> edit(@Valid @NotNull(message="主键id不能为空") Integer id) {
-        questionAnswerService.give(id);
-        return CommonResult.ok();
-    }
-
-
-    /**
-     * 取消点赞
-     *
-     * @author pans
-     * @date  2025/06/27 11:07
-     */
-    @ApiOperationSupport(order = 3)
-    @ApiOperation("点赞")
-    @CommonLog("点赞")
-    @GetMapping("/disk/answer/giveCancel")
-    public CommonResult<String> giveCancel(@Valid @NotNull(message="主键id不能为空") Integer id) {
-        return CommonResult.ok(questionAnswerService.giveCancel(id));
-    }
-
-}

+ 1 - 1
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/controller/QuestionAnswerGiveController.java

@@ -43,7 +43,7 @@ import javax.validation.constraints.NotEmpty;
  * @author pans
  * @date  2025/07/11 19:32
  */
-@Api(tags = "question_answer_give控制器")
+@Api(tags = "课程问答_give控制器")
 @ApiSupport(author = "SNOWY_TEAM", order = 1)
 @RestController
 @Validated

+ 32 - 42
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/domain/QuestionAnswer.java

@@ -20,76 +20,66 @@ import lombok.Setter;
 import java.util.Date;
 
 /**
- * question_answer实体
+ * 课程问答实体
  *
  * @author pans
  * @date  2025/07/11 18:52
  **/
 @Getter
 @Setter
-@TableName("question_answer")
+@TableName("COURSE_QUESTION_ANSWER")
 public class QuestionAnswer {
 
+
     /** ID */
-    @TableId(type = IdType.AUTO)
+    @TableId
     @ApiModelProperty(value = "ID", position = 1)
-    private Integer id;
+    private String id;
 
-    /** PID */
-    @ApiModelProperty(value = "PID", position = 2)
-    private Integer pid;
+    /** 父主键id */
+    @ApiModelProperty(value = "父主键id", position = 2)
+    private String pid;
 
-    /** NAME */
-    @ApiModelProperty(value = "NAME", position = 3)
-    private String name;
+    /** 问答信息 */
+    @ApiModelProperty(value = "问答信息", position = 3)
+    private String info;
 
-    /** USER_ID */
-    @ApiModelProperty(value = "USER_ID", position = 4)
-    @TableField(value="user_id")
+    /** 人员id */
+    @ApiModelProperty(value = "人员id", position = 4)
     private String userId;
 
-    /** TIME */
-    @ApiModelProperty(value = "TIME", position = 5)
-    private Date time;
+    /** 课程id */
+    @ApiModelProperty(value = "课程id", position = 5)
+    private String courseId;
 
-    /** DESC */
-    @ApiModelProperty(value = "REMARK", position = 6)
-    private String remark;
+    /** 点赞数量 */
+    @ApiModelProperty(value = "点赞数量", position = 6)
+    private Long giveNum;
 
-    /** DELETE_FLAG */
-    @ApiModelProperty(value = "DELETE_FLAG", position = 7)
+    /** 删除标记(NOT_DELETE-未删除) */
+    @ApiModelProperty(value = "删除标记(NOT_DELETE-未删除)", position = 7)
     @TableLogic
     @TableField(fill = FieldFill.INSERT)
     private String deleteFlag;
 
-    /** CREATE_TIME */
-    @ApiModelProperty(value = "CREATE_TIME", position = 8)
+    /** 记录更新时间 */
+    @ApiModelProperty(value = "记录更新时间", position = 8)
+    @TableField(fill = FieldFill.UPDATE)
+    private Date updateTime;
+
+    /** 记录创建时间 */
+    @ApiModelProperty(value = "记录创建时间", position = 9)
     @TableField(fill = FieldFill.INSERT)
     private Date createTime;
 
-    /** CREATE_USER */
-    @ApiModelProperty(value = "CREATE_USER", position = 9)
+    /** 记录创建人 */
+    @ApiModelProperty(value = "记录创建人", position = 10)
     @TableField(fill = FieldFill.INSERT)
     private String createUser;
 
-    /** UPDATE_TIME */
-    @ApiModelProperty(value = "UPDATE_TIME", position = 10)
-    @TableField(fill = FieldFill.UPDATE)
-    private Date updateTime;
-
-    /** UPDATE_USER */
-    @ApiModelProperty(value = "UPDATE_USER", position = 11)
+    /** 记录更新人 */
+    @ApiModelProperty(value = "记录更新人", position = 11)
     @TableField(fill = FieldFill.UPDATE)
     private String updateUser;
 
-
-
-    /** GIVE_NUM */
-    @ApiModelProperty(value = "GIVE_NUM", position = 13)
-    private Integer giveNum;
-
-
-    private  String courseId;
-
-    private  String chapterId;
 }

+ 1 - 1
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/domain/QuestionAnswerGive.java

@@ -37,7 +37,7 @@ public class QuestionAnswerGive {
 
     /** QUESTION_ANSWERID */
     @ApiModelProperty(value = "QUESTION_ANSWERID", position = 2)
-    private Integer questionAnswerid;
+    private String questionAnswerid;
 
     /** USER_ID */
     @ApiModelProperty(value = "USER_ID", position = 3)

+ 16 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/mapper/QuestionAnswerMapper.java

@@ -19,6 +19,7 @@ import vip.xiaonuo.disk.domain.QuestionAnswer;
 import vip.xiaonuo.disk.vo.questionanswer.QuestionAnswerVo;
 
 import java.util.List;
+import java.util.Map;
 
 
 /**
@@ -31,4 +32,19 @@ public interface QuestionAnswerMapper extends BaseMapper<QuestionAnswer> {
     Page<QuestionAnswerVo> selectCommentPid(@Param("page") Page<Object> page, @Param("chapterId") String chapterId,@Param("courseId") String courseId, @Param("userId") String userId);
 
     List<QuestionAnswerVo> selectCommentNoPid(@Param("chapterId") String chapterId, @Param("courseId") String courseId, @Param("userId") String userId);
+
+    /**
+     * 课程问答-分页列表
+     */
+    Page<Map<String,Object>> queryList(@Param("param") Map param, @Param("page") Page<Object> page);
+
+    /**
+     * 课程问答-列表
+     */
+    List<Map<String,Object>> queryMapList(Map param);
+
+    /**
+     * 课程问答-详情
+     */
+    Map<String,Object> queryInfo(Map param);
 }

+ 1 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/mapper/mapping/ClassHourMapper.xml

@@ -84,6 +84,7 @@
                 #{item}
             </foreach>
         </if>
+        order by cc.CREATE_TIME desc
     </select>
 
     <select id="queryAllList" resultType="java.util.Map">

+ 4 - 1
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/mapper/mapping/CourseNotesMapper.xml

@@ -36,10 +36,12 @@
             IFNULL(ci.COURSE_NAME,'') AS courseName,
             IFNULL(cn.USER_ID,'') AS userId,
             IFNULL(cn.NOTE_CONTENT,'') AS noteContent,
-            IFNULL(cr.MAIN_ID ,'') AS hourId
+            IFNULL(cr.MAIN_ID ,'') AS hourId,
+            IFNULL(cc.NAME,'') AS hourIdName
         FROM COURSE_NOTES cn
         LEFT JOIN COURSE_INFO ci ON ci.COURSE_ID = cn.COURSE_ID AND ci.DELETE_FLAG ='NOT_DELETE'
         LEFT JOIN COURSE_RELATE cr ON cr.RELATE_ID =cn.NOTE_ID AND cr.FUNC_TYPE ='6' AND cr.INFO_TYPE ='1' AND cr.CHAPTERHOUR_TYPE ='1'
+        LEFT JOIN COURSE_CLASSHOUR cc ON cc.ID = cr.MAIN_ID AND cc.DELETE_FLAG ='NOT_DELETE'
         WHERE cn.DELETE_FLAG ='NOT_DELETE'
         <if test="param.courseId !=null and param.courseId != ''">
             and cn.COURSE_ID=#{param.courseId}
@@ -50,5 +52,6 @@
         <if test="param.hourId !=null and param.hourId != ''">
             and cr.MAIN_ID=#{param.hourId}
         </if>
+        order by cn.CREATE_TIME desc
     </select>
 </mapper>

+ 90 - 0
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/mapper/mapping/QuestionAnswerMapper.xml

@@ -36,5 +36,95 @@
             COURSE_ID=#{courseId} and CHAPTER_ID=#{chapterId}
           and	pid IS NOT NULL
     </select>
+    <select id="queryList" resultType="java.util.Map">
+        SELECT
+            cqa.ID AS id,
+            IFNULL(cqa.COURSE_ID,'') AS courseId,
+            IFNULL(ci.COURSE_NAME,'') AS courseName,
+            IFNULL(cqa.USER_ID,'') AS userId,
+            IFNULL(su.NAME,'') AS userIdName,
+            IFNULL(cr.MAIN_ID ,'') AS hourId,
+            IFNULL(cc.NAME,'') AS hourIdName
+        FROM COURSE_QUESTION_ANSWER cqa
+        LEFT JOIN COURSE_INFO ci ON ci.COURSE_ID = cqa.COURSE_ID AND ci.DELETE_FLAG ='NOT_DELETE'
+        LEFT JOIN COURSE_RELATE cr ON cr.RELATE_ID =cqa.ID AND cr.FUNC_TYPE ='7' AND cr.INFO_TYPE ='1' AND cr.CHAPTERHOUR_TYPE ='1'
+        LEFT JOIN COURSE_CLASSHOUR cc ON cc.ID = cr.MAIN_ID AND cc.DELETE_FLAG ='NOT_DELETE'
+        LEFT JOIN SYS_USER su ON su.ID=cqa.USER_ID AND su.DELETE_FLAG ='NOT_DELETE'
+        WHERE cqa.DELETE_FLAG ='NOT_DELETE'
+        <if test="param.courseId !=null and param.courseId != ''">
+            and cqa.COURSE_ID=#{param.courseId}
+        </if>
+        <if test="param.userId !=null and param.userId != ''">
+            and cqa.USER_ID=#{param.userId}
+        </if>
+        <if test="param.hourId !=null and param.hourId != ''">
+            and cqa.MAIN_ID=#{param.hourId}
+        </if>
+        <if test="param.pid !=null and param.pid != ''">
+            and cqa.PID=#{param.pid}
+        </if>
+        <if test="param.pidList !=null and param.pidList.size()>0">
+            and cqa.PID in
+            <foreach collection=" param.pidList" close=")" index="index" item="item" open="(" separator=",">
+                #{item}
+            </foreach>
+        </if>
+        order by cqa.CREATE_TIME desc
+    </select>
+    <select id="queryMapList" resultType="java.util.Map">
+        SELECT
+            cqa.ID AS id,
+            IFNULL(cqa.COURSE_ID,'') AS courseId,
+            IFNULL(ci.COURSE_NAME,'') AS courseName,
+            IFNULL(cqa.USER_ID,'') AS userId,
+            IFNULL(su.NAME,'') AS userIdName,
+            IFNULL(cr.MAIN_ID ,'') AS hourId,
+            IFNULL(cc.NAME,'') AS hourIdName
+        FROM COURSE_QUESTION_ANSWER cqa
+        LEFT JOIN COURSE_INFO ci ON ci.COURSE_ID = cqa.COURSE_ID AND ci.DELETE_FLAG ='NOT_DELETE'
+        LEFT JOIN COURSE_RELATE cr ON cr.RELATE_ID =cqa.ID AND cr.FUNC_TYPE ='7' AND cr.INFO_TYPE ='1' AND cr.CHAPTERHOUR_TYPE ='1'
+        LEFT JOIN COURSE_CLASSHOUR cc ON cc.ID = cr.MAIN_ID AND cc.DELETE_FLAG ='NOT_DELETE'
+        LEFT JOIN SYS_USER su ON su.ID=cqa.USER_ID AND su.DELETE_FLAG ='NOT_DELETE'
+        WHERE cqa.DELETE_FLAG ='NOT_DELETE'
+        <if test="courseId !=null and courseId != ''">
+            and cqa.COURSE_ID=#{courseId}
+        </if>
+        <if test="userId !=null and userId != ''">
+            and cqa.USER_ID=#{userId}
+        </if>
+        <if test="hourId !=null and hourId != ''">
+            and cqa.MAIN_ID=#{hourId}
+        </if>
+        <if test="pid !=null and pid != ''">
+            and cqa.PID=#{pid}
+        </if>
+        <if test="pidList !=null and pidList.size()>0">
+            and cqa.PID in
+            <foreach collection=" pidList" close=")" index="index" item="item" open="(" separator=",">
+                #{item}
+            </foreach>
+        </if>
+        order by cqa.CREATE_TIME desc
+    </select>
+
+    <select id="queryInfo" resultType="java.util.Map">
+        SELECT
+            cqa.ID AS id,
+            IFNULL(cqa.COURSE_ID,'') AS courseId,
+            IFNULL(ci.COURSE_NAME,'') AS courseName,
+            IFNULL(cqa.USER_ID,'') AS userId,
+            IFNULL(su.NAME,'') AS userIdName,
+            IFNULL(cr.MAIN_ID ,'') AS hourId,
+            IFNULL(cc.NAME,'') AS hourIdName
+        FROM COURSE_QUESTION_ANSWER cqa
+        LEFT JOIN COURSE_INFO ci ON ci.COURSE_ID = cqa.COURSE_ID AND ci.DELETE_FLAG ='NOT_DELETE'
+        LEFT JOIN COURSE_RELATE cr ON cr.RELATE_ID =cqa.ID AND cr.FUNC_TYPE ='7' AND cr.INFO_TYPE ='1' AND cr.CHAPTERHOUR_TYPE ='1'
+        LEFT JOIN COURSE_CLASSHOUR cc ON cc.ID = cr.MAIN_ID AND cc.DELETE_FLAG ='NOT_DELETE'
+        LEFT JOIN SYS_USER su ON su.ID=cqa.USER_ID AND su.DELETE_FLAG ='NOT_DELETE'
+        WHERE 1=1
+        <if test="id !=null and id != ''">
+            and cqa.ID= #{id}
+        </if>
+    </select>
 
 </mapper>

+ 17 - 25
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/param/QuestionAnswerAddParam.java

@@ -28,36 +28,28 @@ import java.util.Date;
 @Setter
 public class QuestionAnswerAddParam {
 
-    /** PID */
-    @ApiModelProperty(value = "PID", position = 2)
-    private Integer pid;
+    /** 父主键id */
+    @ApiModelProperty(value = "父主键id", position = 2)
+    private String pid;
 
-    /** NAME */
-    @ApiModelProperty(value = "NAME", position = 3)
-    private String name;
+    /** 问答信息 */
+    @ApiModelProperty(value = "问答信息", position = 3)
+    private String info;
 
-    /** USER_ID */
-    @ApiModelProperty(value = "USER_ID", position = 4)
+    /** 人员id */
+    @ApiModelProperty(value = "人员id", position = 4)
     private String userId;
 
-    /** TIME */
-    @ApiModelProperty(value = "TIME", position = 5)
-    private Date time;
+    /** 课程id */
+    @ApiModelProperty(value = "课程id", position = 5)
+    private String courseId;
 
-    /** DESC */
-    @ApiModelProperty(value = "REMARK", position = 6)
-    private String remark;
+    /** 点赞数量 */
+    @ApiModelProperty(value = "点赞数量", position = 6)
+    private Long giveNum;
 
-    /** RESOURCE_ID */
-    @ApiModelProperty(value = "RESOURCE_ID", position = 12)
-    private String resourceId;
-
-    /** GIVE_NUM */
-    @ApiModelProperty(value = "GIVE_NUM", position = 13)
-    private String giveNum;
-
-    private  String courseId;
-
-    private  String chapterId;
+    /** 课时id */
+    @ApiModelProperty(value = "课时id", position = 3)
+    private String hourId;
 
 }

+ 1 - 1
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/param/QuestionAnswerEditParam.java

@@ -32,7 +32,7 @@ public class QuestionAnswerEditParam {
     /** ID */
     @ApiModelProperty(value = "ID", required = true, position = 1)
     @NotNull(message = "id不能为空")
-    private Integer id;
+    private String id;
 
     /** PID */
     @ApiModelProperty(value = "PID", position = 2)

+ 1 - 1
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/param/QuestionAnswerIdParam.java

@@ -31,5 +31,5 @@ public class QuestionAnswerIdParam {
     /** ID */
     @ApiModelProperty(value = "ID", required = true)
     @NotNull(message = "id不能为空")
-    private Integer id;
+    private String id;
 }

+ 37 - 10
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/service/QuestionAnswerService.java

@@ -14,6 +14,7 @@ package vip.xiaonuo.disk.service;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
+import vip.xiaonuo.disk.domain.CourseNotes;
 import vip.xiaonuo.disk.domain.QuestionAnswer;
 import vip.xiaonuo.disk.param.QuestionAnswerAddParam;
 import vip.xiaonuo.disk.param.QuestionAnswerEditParam;
@@ -24,9 +25,10 @@ import vip.xiaonuo.disk.vo.questionanswer.QuestionAnswerVo;
 import javax.validation.Valid;
 import javax.validation.constraints.NotNull;
 import java.util.List;
+import java.util.Map;
 
 /**
- * question_answerService接口
+ * 课程问答Service接口
  *
  * @author pans
  * @date  2025/07/11 18:52
@@ -34,7 +36,7 @@ import java.util.List;
 public interface QuestionAnswerService extends IService<QuestionAnswer> {
 
     /**
-     * 获取question_answer分页
+     * 获取课程问答分页
      *
      * @author pans
      * @date  2025/07/11 18:52
@@ -42,7 +44,7 @@ public interface QuestionAnswerService extends IService<QuestionAnswer> {
     Page<QuestionAnswerVo> page(QuestionAnswerPageParam questionAnswerPageParam);
 
     /**
-     * 添加question_answer
+     * 添加课程问答
      *
      * @author pans
      * @date  2025/07/11 18:52
@@ -50,7 +52,12 @@ public interface QuestionAnswerService extends IService<QuestionAnswer> {
     void add(QuestionAnswerAddParam questionAnswerAddParam);
 
     /**
-     * 编辑question_answer
+     * 课程问答-添加
+     */
+    QuestionAnswer addOne(QuestionAnswer questionAnswer);
+
+    /**
+     * 编辑课程问答
      *
      * @author pans
      * @date  2025/07/11 18:52
@@ -58,7 +65,12 @@ public interface QuestionAnswerService extends IService<QuestionAnswer> {
     void edit(QuestionAnswerEditParam questionAnswerEditParam);
 
     /**
-     * 删除question_answer
+     * 课程问答-编辑
+     */
+    QuestionAnswer editOne(QuestionAnswer questionAnswer);
+
+    /**
+     * 删除课程问答
      *
      * @author pans
      * @date  2025/07/11 18:52
@@ -66,7 +78,7 @@ public interface QuestionAnswerService extends IService<QuestionAnswer> {
     void delete(List<QuestionAnswerIdParam> questionAnswerIdParamList);
 
     /**
-     * 获取question_answer详情
+     * 获取课程问答详情
      *
      * @author pans
      * @date  2025/07/11 18:52
@@ -74,14 +86,29 @@ public interface QuestionAnswerService extends IService<QuestionAnswer> {
     QuestionAnswer detail(QuestionAnswerIdParam questionAnswerIdParam);
 
     /**
-     * 获取question_answer详情
+     * 获取课程问答详情
      *
      * @author pans
      * @date  2025/07/11 18:52
      **/
-    QuestionAnswer queryEntity(Integer id);
+    QuestionAnswer queryEntity(String id);
 
-    void give(@Valid @NotNull(message="主键id不能为空") Integer id);
+    void give(@Valid @NotNull(message="主键id不能为空") String id);
 
-    String giveCancel(@Valid @NotNull(message="主键id不能为空") Integer id);
+    String giveCancel(@Valid @NotNull(message="主键id不能为空") String id);
+
+    /**
+     *  课程问答-分页列表
+     */
+    Page<Map<String,Object>> queryList(Map param);
+
+    /**
+     *  课程问答-列表
+     */
+    List<Map<String,Object>> queryMapList(Map param);
+
+    /**
+     *  课程问答-详情
+     */
+    Map<String,Object> queryInfo(Map param);
 }

+ 2 - 2
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/service/impl/CourseStudentRelateServiceImpl.java

@@ -225,7 +225,7 @@ public class CourseStudentRelateServiceImpl extends ServiceImpl<CourseStudentRel
         {
             return JSONUtil.createObj().set("success", false)
                     .set("index", i + 1)
-                    .set("message", "账号或姓名在系统人员中不存在");
+                    .set("message", "账号或姓名在系统人员中不存在,表格账号为:"+courseStudentRelateImportParam.getAcount());
         }
         SysUser sysUser = sysUserList.get(0);
         //查看该课程已关联的学生中有没有这个学生
@@ -234,7 +234,7 @@ public class CourseStudentRelateServiceImpl extends ServiceImpl<CourseStudentRel
         {
             return JSONUtil.createObj().set("success", false)
                     .set("index", i + 1)
-                    .set("message", "该学生已关联该课程");
+                    .set("message", "该学生已关联该课程,表格账号为:"+courseStudentRelateImportParam.getAcount());
         }
         CourseStudentRelate courseStudentRelate=new CourseStudentRelate();
         courseStudentRelate.setUserId(sysUser.getId());

+ 39 - 6
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/service/impl/QuestionAnswerServiceImpl.java

@@ -22,6 +22,7 @@ import org.springframework.transaction.annotation.Transactional;
 import vip.xiaonuo.auth.core.util.StpLoginUserUtil;
 import vip.xiaonuo.common.exception.CommonException;
 import vip.xiaonuo.common.page.CommonPageRequest;
+import vip.xiaonuo.disk.domain.CourseNotes;
 import vip.xiaonuo.disk.domain.QuestionAnswer;
 import vip.xiaonuo.disk.domain.QuestionAnswerGive;
 import vip.xiaonuo.disk.mapper.QuestionAnswerGiveMapper;
@@ -36,6 +37,7 @@ import vip.xiaonuo.disk.vo.questionanswer.QuestionAnswerVo;
 import javax.annotation.Resource;
 import java.util.Date;
 import java.util.List;
+import java.util.Map;
 import java.util.stream.Collectors;
 
 /**
@@ -72,20 +74,32 @@ public class QuestionAnswerServiceImpl extends ServiceImpl<QuestionAnswerMapper,
     public void add(QuestionAnswerAddParam questionAnswerAddParam) {
         QuestionAnswer questionAnswer = BeanUtil.toBean(questionAnswerAddParam, QuestionAnswer.class);
         questionAnswer.setUserId(StpLoginUserUtil.getLoginUser().getId());
-        questionAnswer.setTime(new Date());
         this.save(questionAnswer);
     }
 
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public QuestionAnswer addOne(QuestionAnswer questionAnswer) {
+        this.save(questionAnswer);
+        return questionAnswer;
+    }
+
     @Transactional(rollbackFor = Exception.class)
     @Override
     public void edit(QuestionAnswerEditParam questionAnswerEditParam) {
         QuestionAnswer questionAnswer = this.queryEntity(questionAnswerEditParam.getId());
         BeanUtil.copyProperties(questionAnswerEditParam, questionAnswer);
         questionAnswer.setUserId(StpLoginUserUtil.getLoginUser().getId());
-        questionAnswer.setTime(new Date());
         this.updateById(questionAnswer);
     }
 
+    @Transactional(rollbackFor = Exception.class)
+    @Override
+    public QuestionAnswer editOne(QuestionAnswer questionAnswer) {
+        this.updateById(questionAnswer);
+        return questionAnswer;
+    }
+
     @Transactional(rollbackFor = Exception.class)
     @Override
     public void delete(List<QuestionAnswerIdParam> questionAnswerIdParamList) {
@@ -99,7 +113,7 @@ public class QuestionAnswerServiceImpl extends ServiceImpl<QuestionAnswerMapper,
     }
 
     @Override
-    public QuestionAnswer queryEntity(Integer id) {
+    public QuestionAnswer queryEntity(String id) {
         QuestionAnswer questionAnswer = this.getById(id);
         if(ObjectUtil.isEmpty(questionAnswer)) {
             throw new CommonException("question_answer不存在,id值为:{}", id);
@@ -107,15 +121,34 @@ public class QuestionAnswerServiceImpl extends ServiceImpl<QuestionAnswerMapper,
         return questionAnswer;
     }
 
+    @Override
+    public Page<Map<String,Object>> queryList(Map param)
+    {
+        return questionAnswerMapper.queryList(param,CommonPageRequest.defaultPage());
+    }
+
+    @Override
+    public List<Map<String,Object>> queryMapList(Map param)
+    {
+        return questionAnswerMapper.queryMapList(param);
+    }
+
+    @Override
+    public Map<String,Object> queryInfo(Map param)
+    {
+        return questionAnswerMapper.queryInfo(param);
+    }
+
+
 
 
 
 
     @Override
-    public void give(Integer id) {
+    public void give(String id) {
         QuestionAnswer userComment=queryEntity(id);
         if(ObjectUtil.isEmpty(userComment.getGiveNum())) {
-            userComment.setGiveNum(1);
+            userComment.setGiveNum(1L);
         }else{
             userComment.setGiveNum(userComment.getGiveNum()+1);
         }
@@ -131,7 +164,7 @@ public class QuestionAnswerServiceImpl extends ServiceImpl<QuestionAnswerMapper,
     }
 
     @Override
-    public String giveCancel(Integer id) {
+    public String giveCancel(String id) {
         QuestionAnswer userComment=queryEntity(id);
         if(userComment.getGiveNum()>0){
             userComment.setGiveNum(userComment.getGiveNum()-1);

+ 30 - 37
snowy-plugin/snowy-plugin-disk/snowy-plugin-disk-func/src/main/java/vip/xiaonuo/disk/vo/questionanswer/QuestionAnswerVo.java

@@ -13,63 +13,56 @@ import java.util.List;
 @Getter
 @Setter
 public class QuestionAnswerVo {
-    /** 主键id */
-    @TableId(type = IdType.AUTO)
-    @ApiModelProperty(value = "主键id", position = 1)
-    private Integer id;
+    /** ID */
+    @TableId
+    @ApiModelProperty(value = "ID", position = 1)
+    private String id;
 
-    /** 父id */
-    @ApiModelProperty(value = "父id", position = 2)
-    private Integer pid;
+    /** 父主键id */
+    @ApiModelProperty(value = "父主键id", position = 2)
+    private String pid;
 
-    /** 评论名称 */
-    @ApiModelProperty(value = "名称", position = 3)
-    private String name;
+    /** 问答信息 */
+    @ApiModelProperty(value = "问答信息", position = 3)
+    private String info;
 
-    /** 用户id */
-    @ApiModelProperty(value = "用户id", position = 4)
+    /** 人员id */
+    @ApiModelProperty(value = "人员id", position = 4)
     private String userId;
 
-    /** 用户名称 */
-    @ApiModelProperty(value = "用户名称", position = 4)
-    private String userName;
+    /** 课程id */
+    @ApiModelProperty(value = "课程id", position = 5)
+    private String courseId;
 
+    /** 点赞数量 */
+    @ApiModelProperty(value = "点赞数量", position = 6)
+    private Long giveNum;
 
-    /** 评论时间 */
-    @ApiModelProperty(value = "评论时间", position = 5)
-    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
-    private Date time;
-
-    /** 删除1, 未删除 0 */
-    @ApiModelProperty(value = "删除1, 未删除 0", position = 6)
+    /** 删除标记(NOT_DELETE-未删除) */
+    @ApiModelProperty(value = "删除标记(NOT_DELETE-未删除)", position = 7)
     @TableLogic
     @TableField(fill = FieldFill.INSERT)
     private String deleteFlag;
 
-    /** 点赞量 */
-    @ApiModelProperty(value = "点赞量", position = 7)
-    private Integer giveNum;
+    /** 记录更新时间 */
+    @ApiModelProperty(value = "记录更新时间", position = 8)
+    @TableField(fill = FieldFill.UPDATE)
+    private Date updateTime;
 
-    /** 创建时间 */
-    @ApiModelProperty(value = "创建时间", position = 8)
+    /** 记录创建时间 */
+    @ApiModelProperty(value = "记录创建时间", position = 9)
     @TableField(fill = FieldFill.INSERT)
     private Date createTime;
 
-    /** 创建人 */
-    @ApiModelProperty(value = "创建人", position = 9)
+    /** 记录创建人 */
+    @ApiModelProperty(value = "记录创建人", position = 10)
     @TableField(fill = FieldFill.INSERT)
     private String createUser;
 
-    /** 修改时间 */
-    @ApiModelProperty(value = "修改时间", position = 10)
-    @TableField(fill = FieldFill.UPDATE)
-    private Date updateTime;
-
-    /** 修改人 */
-    @ApiModelProperty(value = "修改人", position = 11)
+    /** 记录更新人 */
+    @ApiModelProperty(value = "记录更新人", position = 11)
     @TableField(fill = FieldFill.UPDATE)
     private String updateUser;
-
     /** 查询对这个评论点没点过赞 */
     private Integer giveNumSelf;
 

+ 2 - 0
snowy-plugin/snowy-plugin-sys/snowy-plugin-sys-func/src/main/java/vip/xiaonuo/sys/modular/org/controller/SysOrgController.java

@@ -211,6 +211,7 @@ public class SysOrgController {
     public CommonResult<List<Map<String,Object>>> orgUserTreeSelector(HttpServletRequest req) {
         Map param=new HashMap();
         param.put("category",req.getParameter("category"));
+        param.put("eduIdentity",req.getParameter("eduIdentity"));
 
         Map result = new HashMap();
         String collegeParentId = "0";
@@ -263,6 +264,7 @@ public class SysOrgController {
     public CommonResult<List<Map<String, Object>>> orgUserTreeRespectively(HttpServletRequest req) {
         Map param =new HashMap();
         param.put("category",req.getParameter("category"));
+        param.put("eduIdentity",req.getParameter("eduIdentity"));
         String collegeParentId="0";
         if(StringUtils.isNotEmpty(req.getParameter("collegeParentId")))collegeParentId=req.getParameter("collegeParentId");
         param.put("collegeParentId",collegeParentId );

+ 3 - 0
snowy-plugin/snowy-plugin-sys/snowy-plugin-sys-func/src/main/java/vip/xiaonuo/sys/modular/user/mapper/mapping/SysUserMapper.xml

@@ -33,6 +33,9 @@
         <if test="collegeParentId !=null and collegeParentId != ''">
             AND t1.ORG_ID =#{collegeParentId}
         </if>
+        <if test="eduIdentity !=null and eduIdentity != ''">
+            AND t1.EDU_IDENTITY =#{eduIdentity}
+        </if>
     </select>
     <select id="getOtherInfo" resultType="java.util.Map">
         SELECT