StudyService.java 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177
  1. package com.ruoyi.zzb.study.service;
  2. import com.alibaba.fastjson.JSONObject;
  3. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  4. import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
  5. import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
  6. import com.ruoyi.common.annotation.DataSource;
  7. import com.ruoyi.common.core.domain.entity.SysUser;
  8. import com.ruoyi.common.enums.DataSourceType;
  9. import com.ruoyi.common.utils.StringUtils;
  10. import com.ruoyi.zzb.study.domain.StudyDocInfo;
  11. import com.ruoyi.zzb.study.domain.StudyViewLogInfo;
  12. import com.ruoyi.zzb.study.domain.UserSearchParam;
  13. import com.ruoyi.zzb.study.domain.req.QueryInfoVO;
  14. import com.ruoyi.zzb.study.domain.req.UpdatePageViewNumVO;
  15. import com.ruoyi.zzb.study.mapper.StudyDocInfoMapper;
  16. import com.ruoyi.zzb.study.mapper.StudyViewLogInfoMapper;
  17. import lombok.extern.slf4j.Slf4j;
  18. import org.springframework.beans.factory.annotation.Autowired;
  19. import org.springframework.stereotype.Service;
  20. import org.springframework.transaction.annotation.Transactional;
  21. @Service
  22. @Slf4j
  23. @DataSource(value = DataSourceType.SLAVE)
  24. public class StudyService {
  25. @Autowired
  26. private StudyDocInfoMapper studyDocInfoMapper;
  27. @Autowired
  28. private StudyViewLogInfoMapper studyViewLogInfoMapper;
  29. public Page<StudyDocInfo> findAllInfo(UserSearchParam searchParam) {
  30. //分页参数
  31. Page<StudyDocInfo> rowPage = new Page(searchParam.getPageIndex(), searchParam.getPageSize());
  32. //查询条件
  33. LambdaQueryWrapper<StudyDocInfo> queryWrapper = new LambdaQueryWrapper<>();
  34. if(StringUtils.isNotEmpty(searchParam.getTitle())){
  35. queryWrapper.like(StudyDocInfo::getTitle,searchParam.getTitle());
  36. }
  37. if (StringUtils.isNotBlank(searchParam.getDatasourceCode())) {
  38. queryWrapper.eq(StudyDocInfo::getDatasourceCode, searchParam.getDatasourceCode());
  39. }
  40. //排序
  41. queryWrapper.orderByAsc(StudyDocInfo::getOrderNum);
  42. queryWrapper.orderByAsc(StudyDocInfo::getCreateTime);
  43. //分页查询
  44. rowPage = studyDocInfoMapper.selectPage(rowPage, queryWrapper);
  45. log.info("============【学习助手】查询学习文章列表成功!============");
  46. return rowPage;
  47. }
  48. public StudyDocInfo findDocInfoById(String id) {
  49. LambdaQueryWrapper<StudyDocInfo> queryWrapper = new LambdaQueryWrapper();
  50. queryWrapper.eq(StudyDocInfo::getDocId,id);
  51. StudyDocInfo studyDocInfo= studyDocInfoMapper.selectOne(queryWrapper);
  52. if(studyDocInfo == null){
  53. throw new RuntimeException("文章详情查询失败,docId不存在:"+id);
  54. }
  55. log.info("============【学习助手】查询文章成功!{}============",id);
  56. return studyDocInfo;
  57. }
  58. public boolean saveDocInfo(StudyDocInfo studyDocInfo) {
  59. int i = studyDocInfoMapper.insert(studyDocInfo);
  60. if( i!=1 ){
  61. throw new RuntimeException("数据写入失败,成功0条,入参:"+JSONObject.toJSONString(studyDocInfo));
  62. }
  63. log.info("============【学习助手】添加文章成功!============");
  64. return i == 1;
  65. }
  66. public boolean deleteById(String id) {
  67. int i = studyDocInfoMapper.deleteById(id);
  68. if( i!=1 ){
  69. throw new RuntimeException("数据删除失败,docId不存在:"+id);
  70. }
  71. log.info("============【学习助手】删除文章成功!{}============",id);
  72. return i == 1;
  73. }
  74. public boolean updatePageViewNumById(UpdatePageViewNumVO updatePageViewNumVO) {
  75. UpdateWrapper<StudyDocInfo> updateWrapper = new UpdateWrapper<>();
  76. updateWrapper.eq("DOC_ID",updatePageViewNumVO.getDocId()).set("PAGE_VIEW_NUM", updatePageViewNumVO.getPageViewNum());
  77. Integer i = studyDocInfoMapper.update(null, updateWrapper);
  78. if( i!=1 ){
  79. throw new RuntimeException("修改文章浏览量失败,docId不存在:"+updatePageViewNumVO.getDocId());
  80. }
  81. log.info("============【学习助手】修改文章浏览量成功!{}============",updatePageViewNumVO.getDocId());
  82. return i == 1;
  83. }
  84. @Transactional
  85. public boolean saveViewLogInfo(QueryInfoVO queryInfoVO, SysUser sysUser) {
  86. //记录浏览量+1
  87. UpdateWrapper<StudyDocInfo> updateDocWrapper = new UpdateWrapper<>();
  88. updateDocWrapper.eq("DOC_ID", queryInfoVO.getDocId());
  89. updateDocWrapper.setSql("PAGE_VIEW_NUM = PAGE_VIEW_NUM + 1");
  90. Integer j = studyDocInfoMapper.update(null,updateDocWrapper);
  91. if(j != 1){
  92. throw new RuntimeException("记录浏览量更新异常,docId不存在:"+ queryInfoVO.getDocId());
  93. }
  94. //保存访问记录
  95. StudyViewLogInfo studyViewLogInfo = new StudyViewLogInfo();
  96. studyViewLogInfo.setDocId(queryInfoVO.getDocId());
  97. studyViewLogInfo.setUserId(queryInfoVO.getUserId());
  98. studyViewLogInfo.setUserName(sysUser.getNickName());
  99. studyViewLogInfo.setUserIdcard(sysUser.getIdCard());
  100. studyViewLogInfo.setUserPoliceNo(sysUser.getPoliceNo());
  101. studyViewLogInfo.setParentDeptCode(sysUser.getDept().getParentId()+"");
  102. studyViewLogInfo.setParentDeptName(sysUser.getDept().getParentName());
  103. studyViewLogInfo.setDeptCode(sysUser.getDept().getDeptId()+"");
  104. studyViewLogInfo.setDeptName(sysUser.getDept().getDeptName());
  105. int i = studyViewLogInfoMapper.insert(studyViewLogInfo);
  106. if(i != 1){
  107. throw new RuntimeException("保存访问记录日志保存失败:"+JSONObject.toJSONString(studyViewLogInfo));
  108. }
  109. log.info("============【学习助手】保存访问记录成功!{}============", queryInfoVO.getDocId());
  110. return i == 1 && j ==1;
  111. }
  112. /**
  113. * 分页查询用户列表
  114. */
  115. public Page<StudyDocInfo> findInfoByTitle(UserSearchParam searchParam)
  116. {
  117. //分页参数
  118. Page<StudyDocInfo> rowPage = new Page(searchParam.getPageIndex(), searchParam.getPageSize());
  119. //查询条件
  120. LambdaQueryWrapper<StudyDocInfo> queryWrapper = new LambdaQueryWrapper<>();
  121. if(StringUtils.isNotEmpty(searchParam.getTitle()))
  122. {
  123. queryWrapper.like(StudyDocInfo::getTitle,searchParam.getTitle());
  124. }
  125. //排序
  126. queryWrapper.orderByAsc(StudyDocInfo::getOrderNum);
  127. queryWrapper.orderByAsc(StudyDocInfo::getCreateTime);
  128. //分页查询
  129. rowPage = studyDocInfoMapper.selectPage(rowPage, queryWrapper);
  130. return rowPage;
  131. }
  132. public boolean updateById(StudyDocInfo studyDocInfo) {
  133. int i = studyDocInfoMapper.updateById(studyDocInfo);
  134. if(i != 1){
  135. throw new RuntimeException("docId不存在:"+studyDocInfo.getDocId());
  136. }
  137. log.info("============【学习助手】更新文章成功!{}============",studyDocInfo.getDocId());
  138. return i == 1;
  139. }
  140. }