parent
8183499357
commit
6f6365c52b
18 changed files with 488 additions and 121 deletions
@ -1,20 +0,0 @@ |
||||
package com.teaching.backend.controller; |
||||
|
||||
|
||||
import org.springframework.web.bind.annotation.RequestMapping; |
||||
|
||||
import org.springframework.web.bind.annotation.RestController; |
||||
|
||||
/** |
||||
* <p> |
||||
* 前端控制器 |
||||
* </p> |
||||
* |
||||
* @author author |
||||
* @since 2024-06-07 |
||||
*/ |
||||
@RestController |
||||
@RequestMapping("/chapter") |
||||
public class ChapterController { |
||||
|
||||
} |
@ -1,28 +0,0 @@ |
||||
package com.teaching.backend.controller.chapter; |
||||
|
||||
|
||||
|
||||
import com.teaching.backend.service.chapter.IChapterService; |
||||
import io.swagger.annotations.Api; |
||||
import lombok.extern.slf4j.Slf4j; |
||||
import org.springframework.beans.factory.annotation.Autowired; |
||||
import org.springframework.web.bind.annotation.GetMapping; |
||||
import org.springframework.web.bind.annotation.RequestMapping; |
||||
import org.springframework.web.bind.annotation.RestController; |
||||
|
||||
import java.util.List; |
||||
|
||||
/** |
||||
* |
||||
* @author author |
||||
* @since 2024-05-31 |
||||
*/ |
||||
@Slf4j |
||||
@Api(tags = "章节管理") |
||||
@RestController |
||||
@RequestMapping("/chapter") |
||||
public class ChapterController { |
||||
@Autowired |
||||
private IChapterService chapterService; |
||||
|
||||
} |
@ -0,0 +1,89 @@ |
||||
package com.teaching.backend.controller.records; |
||||
|
||||
|
||||
import com.github.pagehelper.PageHelper; |
||||
import com.github.pagehelper.PageInfo; |
||||
import com.teaching.backend.common.BaseResponse; |
||||
import com.teaching.backend.common.ResultUtils; |
||||
|
||||
import com.teaching.backend.model.entity.records.LearningRecords; |
||||
import com.teaching.backend.model.vo.records.LearningRecordsVo; |
||||
import com.teaching.backend.service.impl.records.LearningRecordsServiceImpl; |
||||
import org.springframework.beans.factory.annotation.Autowired; |
||||
import org.springframework.ui.Model; |
||||
import org.springframework.web.bind.annotation.*; |
||||
|
||||
import java.util.ArrayList; |
||||
import java.util.List; |
||||
|
||||
@RestController |
||||
@RequestMapping("/learningrecords") |
||||
public class LearningRecordsController { |
||||
|
||||
@Autowired |
||||
private LearningRecordsServiceImpl learningRecordsService; |
||||
|
||||
|
||||
/** |
||||
* 获取当前登录用户的学习记录 |
||||
* @param m |
||||
* @param pagenum |
||||
* @param pagesize |
||||
* @return |
||||
*/ |
||||
@GetMapping("/getall") |
||||
public BaseResponse<PageInfo> getAll(Model m, |
||||
@RequestParam(value = "pagenum", defaultValue = "1") int pagenum, |
||||
@RequestParam(value = "pagesize", defaultValue = "15") int pagesize, |
||||
@RequestParam String userId){ |
||||
PageHelper.startPage(pagenum,pagesize,"id desc"); |
||||
List<LearningRecordsVo> cs= learningRecordsService.getAll(userId); |
||||
List<LearningRecordsVo> pageCs = new ArrayList<>(); |
||||
//当前页面
|
||||
for(int i = (pagenum - 1) * pagesize; i < cs.size() && i < (pagenum) * pagesize; i++){ |
||||
pageCs.add(cs.get(i)); |
||||
} |
||||
PageInfo<LearningRecordsVo> pageInfo = new PageInfo<>(pageCs); |
||||
System.out.println("当前页面:"+pagenum); |
||||
System.out.println("当前页面大小:"+pagesize); |
||||
System.out.println("当前页面内容:"+pageCs); |
||||
// PageInfo<LearningRecordsVo> pageInfo = new PageInfo<>(cs);
|
||||
pageInfo.setPageSize(pagesize);//设置当前页面大小
|
||||
pageInfo.setPageNum(pagenum);//设置当前页码
|
||||
pageInfo.setSize(pagesize);//不知道是啥,---------
|
||||
pageInfo.setTotal(cs.size());//设置总条数
|
||||
long total = pageInfo.getTotal(); // 总记录数
|
||||
pageInfo.setPages((int)(Math.ceil((double) total / pagesize)));//设置总页数
|
||||
return ResultUtils.success(pageInfo); |
||||
} |
||||
|
||||
@GetMapping("/all") |
||||
public BaseResponse<List<LearningRecords>> All(){ |
||||
System.out.println("学习记录:"+learningRecordsService.list()); |
||||
return ResultUtils.success(learningRecordsService.list()); |
||||
} |
||||
|
||||
//资源类型: 1,课程学习记录,2,知识点学习记录,3课程资源学习记录
|
||||
/** |
||||
* 添加课程记录 |
||||
* @param learningRecords |
||||
* @return |
||||
*/ |
||||
@PostMapping("/saverecords") |
||||
public BaseResponse<String> saveRecords(@RequestBody LearningRecords learningRecords){ |
||||
System.out.println(learningRecords); |
||||
return ResultUtils.success(learningRecordsService.saveRecords(learningRecords)); |
||||
} |
||||
|
||||
/** |
||||
* 根据id删除 |
||||
* @param ids |
||||
* @return |
||||
*/ |
||||
@DeleteMapping("/delete") |
||||
public BaseResponse<String> deleteRecords(@RequestParam List<Long> ids){ |
||||
|
||||
return ResultUtils.success(learningRecordsService.delete(ids)); |
||||
} |
||||
|
||||
} |
@ -1,16 +0,0 @@ |
||||
package com.teaching.backend.mapper; |
||||
|
||||
import com.teaching.backend.entity.Chapter; |
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
||||
|
||||
/** |
||||
* <p> |
||||
* Mapper 接口 |
||||
* </p> |
||||
* |
||||
* @author author |
||||
* @since 2024-06-07 |
||||
*/ |
||||
public interface ChapterMapper extends BaseMapper<Chapter> { |
||||
|
||||
} |
@ -1,7 +1,7 @@ |
||||
package com.teaching.mapper; |
||||
package com.teaching.backend.mapper.know; |
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
||||
import com.teaching.model.entity.Know; |
||||
import com.teaching.backend.model.entity.know.Know; |
||||
import org.apache.ibatis.annotations.Mapper; |
||||
|
||||
@Mapper |
@ -0,0 +1,15 @@ |
||||
package com.teaching.backend.mapper.records; |
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
||||
import com.baomidou.mybatisplus.core.metadata.IPage; |
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
||||
|
||||
import com.teaching.backend.model.entity.records.LearningRecords; |
||||
import org.apache.ibatis.annotations.Mapper; |
||||
import org.apache.ibatis.annotations.Param; |
||||
|
||||
@Mapper |
||||
public interface LearningRecordsMapper extends BaseMapper<LearningRecords> { |
||||
IPage<LearningRecords> selectPageList(Page<LearningRecords> page, @Param("model")LearningRecords model); |
||||
|
||||
} |
@ -0,0 +1,96 @@ |
||||
package com.teaching.backend.model.entity.records; |
||||
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType; |
||||
import com.baomidou.mybatisplus.annotation.TableId; |
||||
import com.baomidou.mybatisplus.annotation.TableName; |
||||
import lombok.Data; |
||||
import lombok.EqualsAndHashCode; |
||||
import lombok.experimental.Accessors; |
||||
|
||||
import java.time.LocalDateTime; |
||||
|
||||
|
||||
@Data |
||||
@EqualsAndHashCode(callSuper = false) |
||||
@Accessors(chain = true) |
||||
@TableName("learning_records") |
||||
public class LearningRecords { |
||||
private static final long serialVersionUID = 1L; |
||||
|
||||
/** |
||||
* 内部编号 |
||||
*/ |
||||
@TableId(value = "id", type = IdType.ASSIGN_ID) |
||||
private String id; |
||||
|
||||
/** |
||||
* 用户id |
||||
*/ |
||||
private String userId; |
||||
|
||||
/** |
||||
* 课程id |
||||
*/ |
||||
private String coursesId; |
||||
/** |
||||
* 章节id |
||||
*/ |
||||
private String chapterId; |
||||
/** |
||||
* 知识点id |
||||
*/ |
||||
private String knowledgePointId; |
||||
/** |
||||
* 资源id |
||||
*/ |
||||
private String resourceId; |
||||
/** |
||||
* 访问时间 |
||||
*/ |
||||
private LocalDateTime accessTime; |
||||
|
||||
/** |
||||
* 学习方式:打开; 1,打开过,2未打开 |
||||
*/ |
||||
private String learningMethod1; |
||||
/** |
||||
* 学习方式:下载; 1下载过, 2未下载 |
||||
*/ |
||||
private String learningMethod2; |
||||
/** |
||||
*视频学习时长 |
||||
*/ |
||||
private String videoDuration; |
||||
|
||||
/** |
||||
*是否完成观看:1,已完成,0未完成 |
||||
*/ |
||||
private String isCompleted; |
||||
|
||||
/** |
||||
* 记录封面图片 |
||||
*/ |
||||
private String content; |
||||
/** |
||||
* 资源地址 |
||||
*/ |
||||
private String address; |
||||
|
||||
/** |
||||
* 是否存在: 1存在;0不存在; |
||||
*/ |
||||
private String status; |
||||
/** |
||||
* 类型, 如:1,课程; 2,章节; 3,知识点; 4,学习资源 |
||||
*/ |
||||
private String type; |
||||
/** |
||||
* 父节点 |
||||
*/ |
||||
private String parentNode; |
||||
|
||||
|
||||
|
||||
|
||||
} |
@ -0,0 +1,59 @@ |
||||
package com.teaching.backend.model.vo.records; |
||||
|
||||
import lombok.Data; |
||||
import lombok.EqualsAndHashCode; |
||||
import lombok.experimental.Accessors; |
||||
|
||||
@Data |
||||
@EqualsAndHashCode(callSuper = false) |
||||
@Accessors(chain = true) |
||||
public class LearningRecordsVo { |
||||
// private static final long serialVersionUID = 1L;
|
||||
|
||||
/** |
||||
* 内部编号 |
||||
*/ |
||||
private String id; |
||||
|
||||
/** |
||||
* 课程名称 |
||||
*/ |
||||
private String coursesName; |
||||
|
||||
// /**
|
||||
// * 资源类型
|
||||
// */
|
||||
// private String type;
|
||||
|
||||
/** |
||||
* 封面 |
||||
*/ |
||||
private String content; |
||||
|
||||
/** |
||||
* 资源观看人数 |
||||
*/ |
||||
private Long number; |
||||
|
||||
|
||||
/** |
||||
* 上次观看时间 |
||||
*/ |
||||
private String time; |
||||
/** |
||||
* 地址 |
||||
*/ |
||||
private String address; |
||||
// /**
|
||||
// * 创建日期
|
||||
// */
|
||||
// private LocalDateTime createTime;
|
||||
//
|
||||
// /**
|
||||
// * 更新日期
|
||||
// */
|
||||
// private LocalDateTime updateTime;
|
||||
|
||||
|
||||
|
||||
} |
@ -1,16 +0,0 @@ |
||||
package com.teaching.backend.service; |
||||
|
||||
import com.teaching.backend.entity.Chapter; |
||||
import com.baomidou.mybatisplus.extension.service.IService; |
||||
|
||||
/** |
||||
* <p> |
||||
* 服务类 |
||||
* </p> |
||||
* |
||||
* @author author |
||||
* @since 2024-06-07 |
||||
*/ |
||||
public interface IChapterService extends IService<Chapter> { |
||||
|
||||
} |
@ -1,20 +0,0 @@ |
||||
package com.teaching.backend.service.impl; |
||||
|
||||
import com.teaching.backend.entity.Chapter; |
||||
import com.teaching.backend.mapper.ChapterMapper; |
||||
import com.teaching.backend.service.IChapterService; |
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
||||
import org.springframework.stereotype.Service; |
||||
|
||||
/** |
||||
* <p> |
||||
* 服务实现类 |
||||
* </p> |
||||
* |
||||
* @author author |
||||
* @since 2024-06-07 |
||||
*/ |
||||
@Service |
||||
public class ChapterServiceImpl extends ServiceImpl<ChapterMapper, Chapter> implements IChapterService { |
||||
|
||||
} |
@ -0,0 +1,12 @@ |
||||
package com.teaching.backend.service.impl.know; |
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
||||
import com.teaching.backend.mapper.know.KnowMapper; |
||||
import com.teaching.backend.model.entity.know.Know; |
||||
import com.teaching.backend.service.know.IknowService; |
||||
import org.springframework.stereotype.Service; |
||||
|
||||
@Service |
||||
public class IknowServiceimpl extends ServiceImpl<KnowMapper,Know> implements IknowService { |
||||
|
||||
} |
@ -0,0 +1,185 @@ |
||||
package com.teaching.backend.service.impl.records; |
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
||||
import com.baomidou.mybatisplus.core.metadata.IPage; |
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
||||
|
||||
import com.teaching.backend.mapper.records.LearningRecordsMapper; |
||||
|
||||
import com.teaching.backend.model.entity.records.LearningRecords; |
||||
import com.teaching.backend.model.vo.records.LearningRecordsVo; |
||||
import com.teaching.backend.service.impl.chapter.ChapterServiceImpl; |
||||
import com.teaching.backend.service.impl.courses.CoursesServiceImpl; |
||||
import com.teaching.backend.service.impl.know.IknowServiceimpl; |
||||
import com.teaching.backend.service.records.LearningRecordsService; |
||||
import org.springframework.beans.BeanUtils; |
||||
import org.springframework.beans.factory.annotation.Autowired; |
||||
import org.springframework.stereotype.Service; |
||||
|
||||
import java.text.SimpleDateFormat; |
||||
import java.time.LocalDateTime; |
||||
import java.time.ZoneId; |
||||
import java.util.ArrayList; |
||||
import java.util.Date; |
||||
import java.util.List; |
||||
|
||||
@Service |
||||
public class LearningRecordsServiceImpl extends ServiceImpl<LearningRecordsMapper, LearningRecords> implements LearningRecordsService { |
||||
|
||||
@Autowired |
||||
private CoursesServiceImpl coursesService; |
||||
@Autowired |
||||
private LearningRecordsMapper learningRecordsMapper; |
||||
// @Autowired
|
||||
// private LearningResourceServiceImpl learningResourceService;
|
||||
@Autowired |
||||
private IknowServiceimpl knowledgePointService; |
||||
@Autowired |
||||
private ChapterServiceImpl chapterService; |
||||
|
||||
@Override |
||||
public IPage<LearningRecords> selectPageList(Page<LearningRecords> page, LearningRecords model) { |
||||
return learningRecordsMapper.selectPageList(page,model); |
||||
} |
||||
|
||||
@Override |
||||
public String delete(List<Long> ids) { |
||||
LambdaQueryWrapper<LearningRecords> lambdaQueryWrapper = new LambdaQueryWrapper<>(); |
||||
lambdaQueryWrapper.in(LearningRecords::getId, ids); |
||||
List<LearningRecords> list = this.list(lambdaQueryWrapper); |
||||
//把即将要删除的记录状态调成0
|
||||
for (LearningRecords learningRecords : list) { |
||||
learningRecords.setStatus("0"); |
||||
} |
||||
this.updateBatchById(list); |
||||
// System.out.println(this.updateBatchById(list));
|
||||
// this.remove(lambdaQueryWrapper);
|
||||
return "删除成功"; |
||||
} |
||||
|
||||
@Override |
||||
public List<LearningRecordsVo> getAll(String userId){ |
||||
//格式化时间
|
||||
//格式化时间
|
||||
String strDateFormat = "yyyy-MM-dd HH:mm:ss"; |
||||
SimpleDateFormat sdf = new SimpleDateFormat(strDateFormat); |
||||
|
||||
List<LearningRecordsVo> list = new ArrayList<>(); |
||||
//将学习记录实体转成学习记录Vo实体
|
||||
LambdaQueryWrapper<LearningRecords> lambdaQueryWrapper1 = new LambdaQueryWrapper<>(); |
||||
lambdaQueryWrapper1 |
||||
.orderByDesc(LearningRecords::getAccessTime) |
||||
.eq(LearningRecords::getUserId, userId) |
||||
.eq(LearningRecords::getStatus, "1"); |
||||
System.out.println(this.list(lambdaQueryWrapper1)); |
||||
//如果为空-------------------?????
|
||||
for (LearningRecords learningRecords : this.list(lambdaQueryWrapper1)) { |
||||
//查找该用户的学习记录
|
||||
// if (learningRecords.getUserId().equals(userId) && learningRecords.getStatus().equals("1")){
|
||||
LearningRecordsVo learningRecordsVo = new LearningRecordsVo();//好像可以拿出去-----------??
|
||||
BeanUtils.copyProperties(learningRecords,learningRecordsVo);//从多传到少(缺少人数,和资源名称,时间需要转格式)
|
||||
//添加时间
|
||||
//LocalDateTime转Date
|
||||
Date date = Date.from(learningRecords.getAccessTime().atZone(ZoneId.systemDefault()).toInstant()); |
||||
learningRecordsVo.setTime(sdf.format(date)); |
||||
LambdaQueryWrapper<LearningRecords> lambdaQueryWrapper = new LambdaQueryWrapper<>(); |
||||
lambdaQueryWrapper.eq(LearningRecords::getCoursesId, learningRecords.getCoursesId()); |
||||
// System.out.println(learningRecords.getResourceId());
|
||||
// System.out.println("1");
|
||||
|
||||
//添加课程名称
|
||||
switch (learningRecords.getType()) { |
||||
case "4": //如果是资源学习
|
||||
learningRecordsVo.setCoursesName("学习资源");//设置名称 --------------------------------------------待完善
|
||||
|
||||
break; |
||||
case "3": //如果是知识点学习记录
|
||||
learningRecordsVo.setCoursesName(knowledgePointService.getById(learningRecords.getCoursesId()).getName()); |
||||
|
||||
break; |
||||
case "2": //如果是章节学习记录
|
||||
learningRecordsVo.setCoursesName(chapterService.getById(learningRecords.getCoursesId()).getName()); |
||||
|
||||
break; |
||||
case "1": //如果是课程学习记录
|
||||
learningRecordsVo.setCoursesName(coursesService.getById(learningRecords.getCoursesId()).getName()); |
||||
break; |
||||
} |
||||
//添加观看人数
|
||||
//统计记录表里有多少人查看过这门资源
|
||||
long count = this.count(lambdaQueryWrapper); |
||||
System.out.println(count); |
||||
learningRecordsVo.setNumber(count); |
||||
//把整合后该用户的学习记录添加到List里
|
||||
list.add(learningRecordsVo); |
||||
// }
|
||||
} |
||||
System.out.println(list); |
||||
return list; |
||||
} |
||||
|
||||
/** |
||||
* 根据用户id和学习资源id来判断记录是否存在 |
||||
* @param learningRecords |
||||
* @return |
||||
*/ |
||||
@Override |
||||
public String saveRecords(LearningRecords learningRecords) { |
||||
String userId = learningRecords.getUserId(); |
||||
String coursesId = learningRecords.getCoursesId(); |
||||
System.out.println("学习记录:"+learningRecords); |
||||
//查找该用户是否观看过该学习资源
|
||||
LambdaQueryWrapper<LearningRecords> lambdaQueryWrapper = new LambdaQueryWrapper<>(); |
||||
lambdaQueryWrapper |
||||
.eq(LearningRecords::getUserId, userId) |
||||
.eq(LearningRecords::getCoursesId, coursesId) |
||||
.eq(LearningRecords::getType, learningRecords.getType()); |
||||
long count = this.count(lambdaQueryWrapper); |
||||
System.out.println("数据库:"+count); |
||||
learningRecords.setStatus("1");//将该记录的状态设置为1
|
||||
//更新观看时间
|
||||
learningRecords.setAccessTime(LocalDateTime.now()); |
||||
//设置默认封面
|
||||
if (learningRecords.getContent() == null || learningRecords.getContent().equals("")){ |
||||
learningRecords.setContent("https://teaching-edu123.oss-cn-beijing.aliyuncs.com/Borovets_ZH-CN5914681811_UHD.jpg"); |
||||
} |
||||
// //添加记录封面
|
||||
// switch (learningRecords.getType()) {
|
||||
// case "4": //如果是资源学习
|
||||
// learningRecords.setContent(learningResourceService.getById(learningRecords.getCoursesId()).getContent());//设置封面
|
||||
// break;
|
||||
// case "3": //如果是知识点学习记录
|
||||
// learningRecords.setContent(knowledgePointService.getById(learningRecords.getCoursesId()).getContent());//设置封面
|
||||
//
|
||||
// break;
|
||||
// case "2": //如果是章节学习记录
|
||||
// learningRecords.setContent(chapterService.getById(learningRecords.getCoursesId()).getContent());//设置封面
|
||||
//
|
||||
// break;
|
||||
// case "1": //如果是课程学习记录
|
||||
// learningRecords.setContent(coursesService.getById(learningRecords.getCoursesId()).getImg());//设置封面
|
||||
// break;
|
||||
// }
|
||||
if (count == 0){//如果没有就新增并记录学习方式是打开还是下载
|
||||
//根据传上来的type设置
|
||||
// learningRecords.setType(learningRecords.getType());
|
||||
this.save(learningRecords); |
||||
return "添加成功"; |
||||
}else {//有就修改记录,更新学习方式
|
||||
LearningRecords one = this.getOne(lambdaQueryWrapper); |
||||
System.out.println(one); |
||||
learningRecords.setId(one.getId());//找到该条记录的id并赋值给本次观看记录
|
||||
if ( one.getLearningMethod1() != null && one.getLearningMethod1().equals("1")){ |
||||
learningRecords.setLearningMethod1(one.getLearningMethod1()); |
||||
} |
||||
if (one.getLearningMethod2() != null && one.getLearningMethod2().equals("1")){ |
||||
learningRecords.setLearningMethod2(one.getLearningMethod2()); |
||||
} |
||||
this.updateById(learningRecords); |
||||
return "修改成功"; |
||||
} |
||||
} |
||||
|
||||
|
||||
} |
@ -1,8 +1,7 @@ |
||||
package com.teaching.service; |
||||
package com.teaching.backend.service.know; |
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService; |
||||
import com.teaching.model.entity.Know; |
||||
import org.springframework.stereotype.Service; |
||||
import com.teaching.backend.model.entity.know.Know; |
||||
|
||||
|
||||
public interface IknowService extends IService<Know> { |
@ -0,0 +1,19 @@ |
||||
package com.teaching.backend.service.records; |
||||
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage; |
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
||||
import com.baomidou.mybatisplus.extension.service.IService; |
||||
import com.teaching.backend.model.entity.records.LearningRecords; |
||||
import com.teaching.backend.model.vo.records.LearningRecordsVo; |
||||
|
||||
|
||||
import java.util.List; |
||||
|
||||
public interface LearningRecordsService extends IService<LearningRecords> { |
||||
public List<LearningRecordsVo> getAll(String username); |
||||
public String saveRecords(LearningRecords learningRecords); |
||||
IPage<LearningRecords> selectPageList(Page<LearningRecords> page, LearningRecords model); |
||||
|
||||
public String delete(List<Long> ids); |
||||
|
||||
} |
@ -1,13 +0,0 @@ |
||||
package com.teaching.service.impl; |
||||
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; |
||||
import com.teaching.mapper.KnowMapper; |
||||
import com.teaching.model.entity.Know; |
||||
import com.teaching.service.IknowService; |
||||
import org.springframework.stereotype.Service; |
||||
|
||||
@Service |
||||
public class IknowServiceimpl extends ServiceImpl<KnowMapper,Know> implements IknowServic |
||||
e { |
||||
|
||||
} |
Loading…
Reference in new issue