commit
46c38e66d3
@ -1,43 +1,42 @@
|
||||
package com.tamguo.modules.tiku.model;
|
||||
|
||||
import java.util.Date;
|
||||
import com.alibaba.fastjson.annotation.JSONField;
|
||||
import com.alibaba.fastjson.serializer.SerializerFeature;
|
||||
import com.baomidou.mybatisplus.annotations.TableField;
|
||||
import com.baomidou.mybatisplus.annotations.TableId;
|
||||
import com.baomidou.mybatisplus.annotations.TableName;
|
||||
import com.baomidou.mybatisplus.enums.FieldFill;
|
||||
import com.tamguo.modules.tiku.model.enums.CourseStatusEnum;
|
||||
import lombok.Data;
|
||||
import java.util.Date; // 日期类
|
||||
|
||||
@Data
|
||||
@TableName(value="t_course")
|
||||
import com.alibaba.fastjson.annotation.JSONField; // 用于 JSON 序列化时的注解
|
||||
import com.alibaba.fastjson.serializer.SerializerFeature; // JSON 序列化特性
|
||||
import com.baomidou.mybatisplus.annotations.TableField; // 与数据库表字段相关的注解
|
||||
import com.baomidou.mybatisplus.annotations.TableId; // 表主键注解
|
||||
import com.baomidou.mybatisplus.annotations.TableName; // 表名注解
|
||||
import com.baomidou.mybatisplus.enums.FieldFill; // 字段填充策略枚举
|
||||
import com.tamguo.modules.tiku.model.enums.CourseStatusEnum; // 课程状态枚举
|
||||
import lombok.Data; // Lombok 的数据注解
|
||||
|
||||
@Data // Lombok 的数据注解,自动生成 getter 和 setter 等方法
|
||||
@TableName(value = "t_course") // 指定表名为 t_course
|
||||
public class CourseEntity {
|
||||
|
||||
@TableId
|
||||
private String id;
|
||||
private String subjectId;
|
||||
private String name;
|
||||
private Integer sort;
|
||||
private Integer questionNum;
|
||||
private Integer pointNum;
|
||||
private String remarks;
|
||||
private String icon;
|
||||
|
||||
private String seoTitle;
|
||||
private String seoKeywords;
|
||||
private String seoDescription;
|
||||
|
||||
@TableField(fill = FieldFill.INSERT_UPDATE)
|
||||
private String createBy;
|
||||
@TableField(fill = FieldFill.INSERT_UPDATE)
|
||||
private String updateBy;
|
||||
@TableField(fill = FieldFill.INSERT_UPDATE)
|
||||
private Date createDate;
|
||||
@TableField(fill = FieldFill.INSERT_UPDATE)
|
||||
private Date updateDate;
|
||||
|
||||
@JSONField(serialzeFeatures= SerializerFeature.WriteEnumUsingToString)
|
||||
private CourseStatusEnum status;
|
||||
@TableId // 标识为主键
|
||||
private String id; // 课程 ID
|
||||
private String subjectId; // 科目 ID
|
||||
private String name; // 课程名称
|
||||
private Integer sort; // 排序号
|
||||
private Integer questionNum; // 问题数量
|
||||
private Integer pointNum; // 知识点数量
|
||||
private String remarks; // 备注
|
||||
private String icon; // 图标
|
||||
|
||||
private String seoTitle; // SEO 标题
|
||||
private String seoKeywords; // SEO 关键字
|
||||
private String seoDescription; // SEO 描述
|
||||
|
||||
@TableField(fill = FieldFill.INSERT_UPDATE) // 字段填充策略,在插入和更新时填充
|
||||
private String createBy; // 创建人
|
||||
@TableField(fill = FieldFill.INSERT_UPDATE) // 字段填充策略,在插入和更新时填充
|
||||
private String updateBy; // 更新人
|
||||
@TableField(fill = FieldFill.INSERT_UPDATE) // 字段填充策略,在插入和更新时填充
|
||||
private Date createDate; // 创建日期
|
||||
@TableField(fill = FieldFill.INSERT_UPDATE) // 字段填充策略,在插入和更新时填充
|
||||
private Date updateDate; // 更新日期
|
||||
|
||||
}
|
||||
@JSONField(serialzeFeatures = SerializerFeature.WriteEnumUsingToString) // 指定 JSON 序列化枚举时的特性
|
||||
private CourseStatusEnum status; // 课程状态枚举
|
||||
}
|
@ -1,125 +1,185 @@
|
||||
package com.tamguo.modules.tiku.service.impl;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.util.StringUtils;
|
||||
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.mapper.Condition;
|
||||
import com.baomidou.mybatisplus.plugins.Page;
|
||||
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
|
||||
import com.tamguo.modules.tiku.dao.CourseMapper;
|
||||
import com.tamguo.modules.tiku.dao.SubjectMapper;
|
||||
import com.tamguo.modules.tiku.model.CourseEntity;
|
||||
import com.tamguo.modules.tiku.model.SubjectEntity;
|
||||
import com.tamguo.modules.tiku.model.condition.CourseCondition;
|
||||
import com.tamguo.modules.tiku.model.enums.CourseStatusEnum;
|
||||
import com.tamguo.modules.tiku.model.enums.SubjectStatusEnum;
|
||||
import com.tamguo.modules.tiku.service.ICourseService;
|
||||
|
||||
@Service
|
||||
public class CourseServiceImpl extends ServiceImpl<CourseMapper, CourseEntity> implements ICourseService{
|
||||
|
||||
@Autowired
|
||||
public CourseMapper courseMapper;
|
||||
@Autowired
|
||||
public SubjectMapper subjectMapper;
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
@Transactional(readOnly=true)
|
||||
import java.util.Arrays; // 导入 Arrays 类,用于操作数组
|
||||
import java.util.List; // 导入 List 接口,用于存储科目和课程实体列表
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired; // 导入 Autowired 注解,用于依赖注入
|
||||
import org.springframework.stereotype.Service; // 导入 Service 注解,标识为服务层实现类
|
||||
import org.springframework.transaction.annotation.Transactional; // 导入 Transactional 注解,用于事务管理
|
||||
import org.springframework.util.StringUtils; // 导入 StringUtils 类,用于字符串操作
|
||||
|
||||
import com.alibaba.fastjson.JSONArray; // 导入 JSONArray 类,用于处理 JSON 数组
|
||||
import com.alibaba.fastjson.JSONObject; // 导入 JSONObject 类,用于处理 JSON 对象
|
||||
import com.baomidou.mybatisplus.mapper.Condition; // 导入 Condition 类,用于构建查询条件
|
||||
import com.baomidou.mybatisplus.plugins.Page; // 导入 Page 类,用于分页查询
|
||||
import com.baomidou.mybatisplus.service.impl.ServiceImpl; // 导入 ServiceImpl 类,作为服务层实现类的父类
|
||||
import com.tamguo.modules.tiku.dao.CourseMapper; // 导入 CourseMapper 接口,用于课程的数据访问
|
||||
import com.tamguo.modules.tiku.dao.SubjectMapper; // 导入 SubjectMapper 接口,用于科目的数据访问
|
||||
import com.tamguo.modules.tiku.model.CourseEntity; // 导入 CourseEntity 类,代表课程实体
|
||||
import com.tamguo.modules.tiku.model.SubjectEntity; // 导入 SubjectEntity 类,代表科目实体
|
||||
import com.tamguo.modules.tiku.model.condition.CourseCondition; // 导入 CourseCondition 类,代表课程查询条件
|
||||
import com.tamguo.modules.tiku.model.enums.CourseStatusEnum; // 导入 CourseStatusEnum 枚举,代表课程状态
|
||||
import com.tamguo.modules.tiku.model.enums.SubjectStatusEnum; // 导入 SubjectStatusEnum 枚举,代表科目状态
|
||||
import com.tamguo.modules.tiku.service.ICourseService; // 导入 ICourseService 接口,定义课程服务的接口
|
||||
|
||||
@Service // 标识为服务层实现类
|
||||
public class CourseServiceImpl extends ServiceImpl<CourseMapper, CourseEntity> implements ICourseService {
|
||||
|
||||
@Autowired // 自动注入 CourseMapper 实例
|
||||
private CourseMapper courseMapper;
|
||||
|
||||
@Autowired // 自动注入 SubjectMapper 实例
|
||||
private SubjectMapper subjectMapper;
|
||||
|
||||
/**
|
||||
* 根据条件查询课程数据
|
||||
*
|
||||
* @param condition 课程查询条件
|
||||
* @return 包含课程数据的分页对象
|
||||
*/
|
||||
@SuppressWarnings("unchecked") // 抑制unchecked 警告
|
||||
@Transactional(readOnly = true) // 开启事务,设置只读为 true
|
||||
@Override
|
||||
public Page<CourseEntity> listData(CourseCondition condition) {
|
||||
Page<CourseEntity> page = new Page<>(condition.getPageNo() , condition.getPageSize());
|
||||
Condition query = Condition.create();
|
||||
if(!StringUtils.isEmpty(condition.getId())) {
|
||||
query.eq("id", condition.getId());
|
||||
Page<CourseEntity> page = new Page<>(condition.getPageNo(), condition.getPageSize()); // 创建分页对象
|
||||
|
||||
Condition query = Condition.create(); // 创建查询条件对象
|
||||
if (!StringUtils.isEmpty(condition.getId())) {
|
||||
query.eq("id", condition.getId()); // 添加课程 ID 条件
|
||||
}
|
||||
if(!StringUtils.isEmpty(condition.getName())) {
|
||||
query.like("name", condition.getName());
|
||||
if (!StringUtils.isEmpty(condition.getName())) {
|
||||
query.like("name", condition.getName()); // 添加课程名称模糊匹配条件
|
||||
}
|
||||
if(!StringUtils.isEmpty(condition.getSubjectId())) {
|
||||
query.eq("subject_id", condition.getSubjectId());
|
||||
if (!StringUtils.isEmpty(condition.getSubjectId())) {
|
||||
query.eq("subject_id", condition.getSubjectId()); // 添加科目 ID 条件
|
||||
}
|
||||
if(!StringUtils.isEmpty(condition.getStatus())) {
|
||||
query.eq("status", condition.getStatus());
|
||||
if (!StringUtils.isEmpty(condition.getStatus())) {
|
||||
query.eq("status", condition.getStatus()); // 添加课程状态条件
|
||||
}
|
||||
query.orderAsc(Arrays.asList("sort"));
|
||||
return page.setRecords(courseMapper.selectPage(page , query));
|
||||
query.orderAsc(Arrays.asList("sort")); // 根据排序字段升序排序
|
||||
|
||||
return page.setRecords(courseMapper.selectPage(page, query)); // 执行查询并设置分页结果
|
||||
}
|
||||
|
||||
@Transactional(readOnly=false)
|
||||
/**
|
||||
* 保存课程信息
|
||||
*
|
||||
* @param course 课程实体
|
||||
*/
|
||||
@Transactional(readOnly = false) // 开启事务,设置只读为 false
|
||||
@Override
|
||||
public void save(CourseEntity course) {
|
||||
course.setStatus(CourseStatusEnum.NORMAL);
|
||||
courseMapper.insert(course);
|
||||
course.setStatus(CourseStatusEnum.NORMAL); // 设置课程状态为正常
|
||||
courseMapper.insert(course); // 插入课程记录
|
||||
}
|
||||
|
||||
@Transactional(readOnly=false)
|
||||
/**
|
||||
* 更新课程信息
|
||||
*
|
||||
* @param course 课程实体
|
||||
*/
|
||||
@Transactional(readOnly = false) // 开启事务,设置只读为 false
|
||||
@Override
|
||||
public void update(CourseEntity course) {
|
||||
CourseEntity entity = courseMapper.selectById(course.getId());
|
||||
entity.setName(course.getName());
|
||||
entity.setSubjectId(course.getSubjectId());
|
||||
entity.setSort(course.getSort());
|
||||
entity.setRemarks(course.getRemarks());
|
||||
courseMapper.updateById(entity);
|
||||
CourseEntity entity = courseMapper.selectById(course.getId()); // 获取要更新的课程实体
|
||||
|
||||
entity.setName(course.getName()); // 更新课程名称
|
||||
entity.setSubjectId(course.getSubjectId()); // 更新科目 ID
|
||||
entity.setSort(course.getSort()); // 更新排序号
|
||||
entity.setRemarks(course.getRemarks()); // 更新备注
|
||||
|
||||
courseMapper.updateById(entity); // 更新课程记录
|
||||
}
|
||||
|
||||
@Transactional(readOnly=false)
|
||||
/**
|
||||
* 删除课程信息
|
||||
*
|
||||
* @param uid 课程 ID
|
||||
*/
|
||||
@Transactional(readOnly = false) // 开启事务,设置只读为 false
|
||||
@Override
|
||||
public void delete(String uid) {
|
||||
CourseEntity entity = courseMapper.selectById(uid);
|
||||
entity.setStatus(CourseStatusEnum.DELETE);
|
||||
courseMapper.updateById(entity);
|
||||
CourseEntity entity = courseMapper.selectById(uid); // 获取要删除的课程实体
|
||||
|
||||
entity.setStatus(CourseStatusEnum.DELETE); // 设置课程状态为已删除
|
||||
courseMapper.updateById(entity); // 更新课程记录
|
||||
}
|
||||
|
||||
@Transactional(readOnly=false)
|
||||
/**
|
||||
* 启用课程
|
||||
*
|
||||
* @param uid 课程 ID
|
||||
*/
|
||||
@Transactional(readOnly = false) // 开启事务,设置只读为 false
|
||||
@Override
|
||||
public void enable(String uid) {
|
||||
CourseEntity entity = courseMapper.selectById(uid);
|
||||
entity.setStatus(CourseStatusEnum.NORMAL);
|
||||
courseMapper.updateById(entity);
|
||||
CourseEntity entity = courseMapper.selectById(uid); // 获取要启用的课程实体
|
||||
|
||||
entity.setStatus(CourseStatusEnum.NORMAL); // 设置课程状态为正常
|
||||
courseMapper.updateById(entity); // 更新课程记录
|
||||
}
|
||||
|
||||
@Transactional(readOnly=false)
|
||||
/**
|
||||
* 禁用课程
|
||||
*
|
||||
* @param uid 课程 ID
|
||||
*/
|
||||
@Transactional(readOnly = false) // 开启事务,设置只读为 false
|
||||
@Override
|
||||
public void disabled(String uid) {
|
||||
CourseEntity entity = courseMapper.selectById(uid);
|
||||
entity.setStatus(CourseStatusEnum.DISABLED);
|
||||
courseMapper.updateById(entity);
|
||||
CourseEntity entity = courseMapper.selectById(uid); // 获取要禁用的课程实体
|
||||
|
||||
entity.setStatus(CourseStatusEnum.DISABLED); // 设置课程状态为禁用
|
||||
courseMapper.updateById(entity); // 更新课程记录
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
|
||||
/**
|
||||
* 将科目和课程数据转换为 ZTree 格式的 JSON 数组
|
||||
*
|
||||
* @return ZTree 格式的 JSON 数组
|
||||
*/
|
||||
@SuppressWarnings("unchecked") // 抑制 unchecked 警告
|
||||
@Transactional(readOnly = false) // 开启事务,设置只读为 false
|
||||
@Override
|
||||
public JSONArray treeData() {
|
||||
List<SubjectEntity> subjectList = subjectMapper.selectList(Condition.create().eq("status", SubjectStatusEnum.NORMAL.getValue()));
|
||||
List<CourseEntity> courseList = courseMapper.selectList(Condition.create().eq("status", CourseStatusEnum.NORMAL.getValue()));
|
||||
return transform(subjectList, courseList);
|
||||
List<SubjectEntity> subjectList = subjectMapper.selectList(Condition.create().eq("status", SubjectStatusEnum.NORMAL.getValue())); // 查询正常状态的科目列表
|
||||
List<CourseEntity> courseList = courseMapper.selectList(Condition.create().eq("status", CourseStatusEnum.NORMAL.getValue())); // 查询正常状态的课程列表
|
||||
|
||||
return transform(subjectList, courseList); // 转换科目和课程数据为 JSON 数组
|
||||
}
|
||||
|
||||
private JSONArray transform(List<SubjectEntity> subjectList , List<CourseEntity> courseList) {
|
||||
JSONArray entitys = new JSONArray();
|
||||
for(int i=0 ; i<subjectList.size() ; i++) {
|
||||
JSONObject entity = new JSONObject();
|
||||
entity.put("id", subjectList.get(i).getId());
|
||||
entity.put("name", subjectList.get(i).getName());
|
||||
entity.put("pId", "0");
|
||||
entitys.add(entity);
|
||||
}
|
||||
for(int i=0 ; i<courseList.size() ; i++) {
|
||||
JSONObject entity = new JSONObject();
|
||||
entity.put("id", courseList.get(i).getId());
|
||||
entity.put("name", courseList.get(i).getName());
|
||||
entity.put("pId", courseList.get(i).getSubjectId());
|
||||
entitys.add(entity);
|
||||
|
||||
/**
|
||||
* 将科目和课程数据转换为 ZTree 格式的 JSON 数组
|
||||
*
|
||||
* @param subjectList 科目实体列表
|
||||
* @param courseList 课程实体列表
|
||||
* @return ZTree 格式的 JSON 数组
|
||||
*/
|
||||
private JSONArray transform(List<SubjectEntity> subjectList, List<CourseEntity> courseList) {
|
||||
JSONArray entitys = new JSONArray(); // 创建 JSON 数组对象
|
||||
|
||||
for (int i = 0; i < subjectList.size(); i++) {
|
||||
JSONObject entity = new JSONObject(); // 创建 JSON 对象
|
||||
|
||||
SubjectEntity subject = subjectList.get(i); // 获取科目实体
|
||||
entity.put("id", subject.getId()); // 设置科目 ID
|
||||
entity.put("name", subject.getName()); // 设置科目名称
|
||||
entity.put("pId", "0"); // 设置父节点 ID 为 0
|
||||
|
||||
entitys.add(entity); // 将科目对象添加到 JSON 数组中
|
||||
}
|
||||
return entitys;
|
||||
}
|
||||
|
||||
for (int i = 0; i < courseList.size(); i++) {
|
||||
JSONObject entity = new JSONObject(); // 创建 JSON 对象
|
||||
|
||||
CourseEntity course = courseList.get(i); // 获取课程实体
|
||||
entity.put("id", course.getId()); // 设置课程 ID
|
||||
entity.put("name", course.getName()); // 设置课程名称
|
||||
entity.put("pId", course.getSubjectId()); // 设置父节点 ID 为课程所属科目 ID
|
||||
|
||||
}
|
||||
entitys.add(entity); // 将课程对象添加到 JSON 数组中
|
||||
}
|
||||
|
||||
return entitys; // 返回转换后的 JSON 数组
|
||||
}
|
||||
}
|
@ -1,129 +1,192 @@
|
||||
package com.tamguo.modules.tiku.service.impl;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.mapper.Condition;
|
||||
import com.baomidou.mybatisplus.plugins.Page;
|
||||
import com.baomidou.mybatisplus.service.impl.ServiceImpl;
|
||||
import com.tamguo.modules.tiku.dao.KnowPointMapper;
|
||||
import com.tamguo.modules.tiku.dao.CourseMapper;
|
||||
import com.tamguo.modules.tiku.dao.SubjectMapper;
|
||||
import com.tamguo.modules.tiku.model.KnowPointEntity;
|
||||
import com.tamguo.modules.tiku.model.CourseEntity;
|
||||
import com.tamguo.modules.tiku.model.SubjectEntity;
|
||||
import com.tamguo.modules.tiku.model.condition.BookCondition;
|
||||
import com.tamguo.modules.tiku.model.enums.BookStatusEnum;
|
||||
import com.tamguo.modules.tiku.model.enums.CourseStatusEnum;
|
||||
import com.tamguo.modules.tiku.model.enums.SubjectStatusEnum;
|
||||
import com.tamguo.modules.tiku.service.IKnowPointService;
|
||||
|
||||
@Service
|
||||
public class KnowPointServiceImpl extends ServiceImpl<KnowPointMapper, KnowPointEntity> implements IKnowPointService{
|
||||
|
||||
@Autowired
|
||||
KnowPointMapper knowPointMapper;
|
||||
@Autowired
|
||||
CourseMapper courseMapper;
|
||||
@Autowired
|
||||
SubjectMapper subjectMapper;
|
||||
|
||||
@Transactional(readOnly=false)
|
||||
import java.util.List; // 导入 List 接口,用于存储科目、课程和知识点实体列表
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired; // 导入 Autowired 注解,用于依赖注入
|
||||
import org.springframework.stereotype.Service; // 导入 Service 注解,标识为服务层实现类
|
||||
import org.springframework.transaction.annotation.Transactional; // 导入 Transactional 注解,用于事务管理
|
||||
|
||||
import com.alibaba.fastjson.JSONArray; // 导入 JSONArray 类,用于处理 JSON 数组
|
||||
import com.alibaba.fastjson.JSONObject; // 导入 JSONObject 类,用于处理 JSON 对象
|
||||
import com.baomidou.mybatisplus.mapper.Condition; // 导入 Condition 类,用于构建查询条件
|
||||
import com.baomidou.mybatisplus.plugins.Page; // 导入 Page 类,用于分页查询
|
||||
import com.baomidou.mybatisplus.service.impl.ServiceImpl; // 导入 ServiceImpl 类,作为服务层实现类的父类
|
||||
import com.tamguo.modules.tiku.dao.KnowPointMapper; // 导入 KnowPointMapper 接口,用于知识点的数据访问
|
||||
import com.tamguo.modules.tiku.dao.CourseMapper; // 导入 CourseMapper 接口,用于课程的数据访问
|
||||
import com.tamguo.modules.tiku.dao.SubjectMapper; // 导入 SubjectMapper 接口,用于科目的数据访问
|
||||
import com.tamguo.modules.tiku.model.KnowPointEntity; // 导入 KnowPointEntity 类,代表知识点实体
|
||||
import com.tamguo.modules.tiku.model.CourseEntity; // 导入 CourseEntity 类,代表课程实体
|
||||
import com.tamguo.modules.tiku.model.SubjectEntity; // 导入 SubjectEntity 类,代表科目实体
|
||||
import com.tamguo.modules.tiku.model.condition.BookCondition; // 导入 BookCondition 类,代表知识点查询条件
|
||||
import com.tamguo.modules.tiku.model.enums.BookStatusEnum; // 导入 BookStatusEnum 枚举,代表知识点状态
|
||||
import com.tamguo.modules.tiku.model.enums.CourseStatusEnum; // 导入 CourseStatusEnum 枚举,代表课程状态
|
||||
import com.tamguo.modules.tiku.model.enums.SubjectStatusEnum; // 导入 SubjectStatusEnum 枚举,代表科目状态
|
||||
import com.tamguo.modules.tiku.service.IKnowPointService; // 导入 IKnowPointService 接口,定义知识点服务的接口
|
||||
|
||||
@Service // 标识为服务层实现类
|
||||
public class KnowPointServiceImpl extends ServiceImpl<KnowPointMapper, KnowPointEntity> implements IKnowPointService {
|
||||
|
||||
@Autowired // 自动注入 KnowPointMapper 实例
|
||||
private KnowPointMapper knowPointMapper;
|
||||
|
||||
@Autowired // 自动注入 CourseMapper 实例
|
||||
private CourseMapper courseMapper;
|
||||
|
||||
@Autowired // 自动注入 SubjectMapper 实例
|
||||
private SubjectMapper subjectMapper;
|
||||
|
||||
/**
|
||||
* 根据条件查询知识点数据
|
||||
*
|
||||
* @param condition 知识点查询条件
|
||||
* @return 包含知识点数据的分页对象
|
||||
*/
|
||||
@Transactional(readOnly = false) // 开启事务,设置只读为 false
|
||||
@Override
|
||||
public Page<KnowPointEntity> listData(BookCondition condition) {
|
||||
Page<KnowPointEntity> page = new Page<>(condition.getPageNo() , condition.getPageSize());
|
||||
return page.setRecords(knowPointMapper.listData(page, condition));
|
||||
Page<KnowPointEntity> page = new Page<>(condition.getPageNo(), condition.getPageSize()); // 创建分页对象
|
||||
return page.setRecords(knowPointMapper.listData(page, condition)); // 执行查询并设置分页结果
|
||||
}
|
||||
|
||||
@Transactional(readOnly=false)
|
||||
/**
|
||||
* 保存知识点信息
|
||||
*
|
||||
* @param book 知识点实体
|
||||
*/
|
||||
@Transactional(readOnly = false) // 开启事务,设置只读为 false
|
||||
@Override
|
||||
public void save(KnowPointEntity book) {
|
||||
CourseEntity course = courseMapper.selectById(book.getCourseId());
|
||||
|
||||
book.setStatus(BookStatusEnum.NORMAL);
|
||||
book.setSubjectId(course.getSubjectId());
|
||||
knowPointMapper.insert(book);
|
||||
CourseEntity course = courseMapper.selectById(book.getCourseId()); // 获取课程实体
|
||||
|
||||
book.setStatus(BookStatusEnum.NORMAL); // 设置知识点状态为正常
|
||||
book.setSubjectId(course.getSubjectId()); // 设置知识点所属科目 ID
|
||||
knowPointMapper.insert(book); // 插入知识点记录
|
||||
}
|
||||
|
||||
@Transactional(readOnly=false)
|
||||
/**
|
||||
* 更新知识点信息
|
||||
*
|
||||
* @param book 知识点实体
|
||||
*/
|
||||
@Transactional(readOnly = false) // 开启事务,设置只读为 false
|
||||
@Override
|
||||
public void update(KnowPointEntity book) {
|
||||
CourseEntity course = courseMapper.selectById(book.getCourseId());
|
||||
KnowPointEntity entity = knowPointMapper.selectById(book.getId());
|
||||
|
||||
entity.setName(book.getName());
|
||||
entity.setPointNum(book.getPointNum());
|
||||
entity.setQuestionNum(book.getQuestionNum());
|
||||
entity.setRemarks(book.getRemarks());
|
||||
entity.setPublishingHouse(book.getPublishingHouse());
|
||||
entity.setSort(book.getSort());
|
||||
entity.setCourseId(course.getId());
|
||||
|
||||
knowPointMapper.updateById(entity);
|
||||
CourseEntity course = courseMapper.selectById(book.getCourseId()); // 获取课程实体
|
||||
KnowPointEntity entity = knowPointMapper.selectById(book.getId()); // 获取要更新的知识点实体
|
||||
|
||||
entity.setName(book.getName()); // 更新知识点名称
|
||||
entity.setPointNum(book.getPointNum()); // 更新知识点数量
|
||||
entity.setQuestionNum(book.getQuestionNum()); // 更新问题数量
|
||||
entity.setRemarks(book.getRemarks()); // 更新备注
|
||||
entity.setPublishingHouse(book.getPublishingHouse()); // 更新出版社
|
||||
entity.setSort(book.getSort()); // 更新排序号
|
||||
entity.setCourseId(course.getId()); // 更新课程 ID
|
||||
|
||||
knowPointMapper.updateById(entity); // 更新知识点记录
|
||||
}
|
||||
|
||||
@Transactional(readOnly=false)
|
||||
/**
|
||||
* 删除知识点信息
|
||||
*
|
||||
* @param id 知识点 ID
|
||||
*/
|
||||
@Transactional(readOnly = false) // 开启事务,设置只读为 false
|
||||
@Override
|
||||
public void delete(String id) {
|
||||
KnowPointEntity book = knowPointMapper.selectById(id);
|
||||
book.setStatus(BookStatusEnum.DELETE);
|
||||
knowPointMapper.updateById(book);
|
||||
KnowPointEntity book = knowPointMapper.selectById(id); // 获取要删除的知识点实体
|
||||
|
||||
book.setStatus(BookStatusEnum.DELETE); // 设置知识点状态为已删除
|
||||
knowPointMapper.updateById(book); // 更新知识点记录
|
||||
}
|
||||
|
||||
@Transactional(readOnly=false)
|
||||
/**
|
||||
* 启用知识点
|
||||
*
|
||||
* @param id 知识点 ID
|
||||
*/
|
||||
@Transactional(readOnly = false) // 开启事务,设置只读为 false
|
||||
@Override
|
||||
public void enable(String id) {
|
||||
KnowPointEntity book = knowPointMapper.selectById(id);
|
||||
book.setStatus(BookStatusEnum.NORMAL);
|
||||
knowPointMapper.updateById(book);
|
||||
KnowPointEntity book = knowPointMapper.selectById(id); // 获取要启用的知识点实体
|
||||
|
||||
book.setStatus(BookStatusEnum.NORMAL); // 设置知识点状态为正常
|
||||
knowPointMapper.updateById(book); // 更新知识点记录
|
||||
}
|
||||
|
||||
@Transactional(readOnly=false)
|
||||
/**
|
||||
* 禁用知识点
|
||||
*
|
||||
* @param id 知识点 ID
|
||||
*/
|
||||
@Transactional(readOnly = false) // 开启事务,设置只读为 false
|
||||
@Override
|
||||
public void disabled(String id) {
|
||||
KnowPointEntity book = knowPointMapper.selectById(id);
|
||||
book.setStatus(BookStatusEnum.DISABLED);
|
||||
knowPointMapper.updateById(book);
|
||||
KnowPointEntity book = knowPointMapper.selectById(id); // 获取要禁用的知识点实体
|
||||
|
||||
book.setStatus(BookStatusEnum.DISABLED); // 设置知识点状态为禁用
|
||||
knowPointMapper.updateById(book); // 更新知识点记录
|
||||
}
|
||||
|
||||
@Transactional(readOnly=false)
|
||||
@SuppressWarnings("unchecked")
|
||||
/**
|
||||
* 将科目、课程和知识点数据转换为 ZTree 格式的 JSON 数组
|
||||
*
|
||||
* @return ZTree 格式的 JSON 数组
|
||||
*/
|
||||
@Transactional(readOnly = false) // 开启事务,设置只读为 false
|
||||
@SuppressWarnings("unchecked") // 抑制 unchecked 警告
|
||||
@Override
|
||||
public JSONArray treeData() {
|
||||
List<SubjectEntity> subjectList = subjectMapper.selectList(Condition.create().eq("status", SubjectStatusEnum.NORMAL.getValue()));
|
||||
List<CourseEntity> courseList = courseMapper.selectList(Condition.create().eq("status", CourseStatusEnum.NORMAL.getValue()));
|
||||
List<KnowPointEntity> bookList = knowPointMapper.selectList(Condition.create().eq("status", BookStatusEnum.NORMAL.getValue()));
|
||||
return transform(subjectList, courseList , bookList);
|
||||
List<SubjectEntity> subjectList = subjectMapper.selectList(Condition.create().eq("status", SubjectStatusEnum.NORMAL.getValue())); // 查询正常状态的科目列表
|
||||
List<CourseEntity> courseList = courseMapper.selectList(Condition.create().eq("status", CourseStatusEnum.NORMAL.getValue())); // 查询正常状态的课程列表
|
||||
List<KnowPointEntity> bookList = knowPointMapper.selectList(Condition.create().eq("status", BookStatusEnum.NORMAL.getValue())); // 查询正常状态的知识点列表
|
||||
|
||||
return transform(subjectList, courseList, bookList); // 转换科目、课程和知识点数据为 JSON 数组
|
||||
}
|
||||
|
||||
private JSONArray transform(List<SubjectEntity> subjectList , List<CourseEntity> courseList , List<KnowPointEntity> bookList) {
|
||||
JSONArray entitys = new JSONArray();
|
||||
for(int i=0 ; i<subjectList.size() ; i++) {
|
||||
JSONObject entity = new JSONObject();
|
||||
entity.put("id", subjectList.get(i).getId());
|
||||
entity.put("name", subjectList.get(i).getName());
|
||||
entity.put("pId", "0");
|
||||
entitys.add(entity);
|
||||
/**
|
||||
* 将科目、课程和知识点数据转换为 ZTree 格式的 JSON 数组
|
||||
*
|
||||
* @param subjectList 科目实体列表
|
||||
* @param courseList 课程实体列表
|
||||
* @param bookList 知识点实体列表
|
||||
* @return ZTree 格式的 JSON 数组
|
||||
*/
|
||||
private JSONArray transform(List<SubjectEntity> subjectList, List<CourseEntity> courseList, List<KnowPointEntity> bookList) {
|
||||
JSONArray entitys = new JSONArray(); // 创建 JSON 数组对象
|
||||
|
||||
for (int i = 0; i < subjectList.size(); i++) {
|
||||
JSONObject entity = new JSONObject(); // 创建 JSON 对象
|
||||
|
||||
SubjectEntity subject = subjectList.get(i); // 获取科目实体
|
||||
entity.put("id", subject.getId()); // 设置科目 ID
|
||||
entity.put("name", subject.getName()); // 设置科目名称
|
||||
entity.put("pId", "0"); // 设置父节点 ID 为 0
|
||||
|
||||
entitys.add(entity); // 将科目对象添加到 JSON 数组中
|
||||
}
|
||||
for(int i=0 ; i<courseList.size() ; i++) {
|
||||
JSONObject entity = new JSONObject();
|
||||
entity.put("id", courseList.get(i).getId());
|
||||
entity.put("name", courseList.get(i).getName());
|
||||
entity.put("pId", courseList.get(i).getSubjectId());
|
||||
entitys.add(entity);
|
||||
|
||||
for (int i = 0; i < courseList.size(); i++) {
|
||||
JSONObject entity = new JSONObject(); // 创建 JSON 对象
|
||||
|
||||
CourseEntity course = courseList.get(i); // 获取课程实体
|
||||
entity.put("id", course.getId()); // 设置课程 ID
|
||||
entity.put("name", course.getName()); // 设置课程名称
|
||||
entity.put("pId", course.getSubjectId()); // 设置父节点 ID 为课程所属科目 ID
|
||||
|
||||
entitys.add(entity); // 将课程对象添加到 JSON 数组中
|
||||
}
|
||||
for(int i=0 ; i<bookList.size() ; i++) {
|
||||
JSONObject entity = new JSONObject();
|
||||
entity.put("id", bookList.get(i).getId());
|
||||
entity.put("name", bookList.get(i).getName());
|
||||
entity.put("pId", bookList.get(i).getCourseId());
|
||||
entitys.add(entity);
|
||||
|
||||
for (int i = 0; i < bookList.size(); i++) {
|
||||
JSONObject entity = new JSONObject(); // 创建 JSON 对象
|
||||
|
||||
KnowPointEntity book = bookList.get(i); // 获取知识点实体
|
||||
entity.put("id", book.getId()); // 设置知识点 ID
|
||||
entity.put("name", book.getName()); // 设置知识点名称
|
||||
entity.put("pId", book.getCourseId()); // 设置父节点 ID 为知识点所属课程 ID
|
||||
|
||||
entitys.add(entity); // 将知识点对象添加到 JSON 数组中
|
||||
}
|
||||
return entitys;
|
||||
|
||||
return entitys; // 返回转换后的 JSON 数组
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in new issue