DocSpaceServiceImpl.java 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188
  1. package com.doc.biz.service.impl;
  2. import com.doc.biz.domain.DocDir;
  3. import com.doc.biz.domain.DocSpace;
  4. import com.doc.biz.mapper.DocSpaceMapper;
  5. import com.doc.biz.service.IDocDirService;
  6. import com.doc.biz.service.IDocSpaceService;
  7. import com.doc.common.core.domain.entity.SysDept;
  8. import com.doc.common.core.domain.entity.SysUser;
  9. import com.doc.common.enums.SpaceType;
  10. import com.doc.common.utils.DateUtils;
  11. import com.doc.common.utils.SecurityUtils;
  12. import com.doc.system.service.ISysConfigService;
  13. import org.springframework.stereotype.Service;
  14. import javax.annotation.Resource;
  15. import java.math.BigDecimal;
  16. import java.util.List;
  17. /**
  18. * 文档空间管理Service业务层处理
  19. *
  20. * @author wukai
  21. * @date 2023-08-15
  22. */
  23. @Service
  24. public class DocSpaceServiceImpl implements IDocSpaceService {
  25. @Resource
  26. private DocSpaceMapper docSpaceMapper;
  27. @Resource
  28. private ISysConfigService configService;
  29. @Resource
  30. private IDocDirService dirService;
  31. /**
  32. * 查询文档空间管理
  33. *
  34. * @param spaceId 文档空间管理主键
  35. * @return 文档空间管理
  36. */
  37. @Override
  38. public DocSpace selectDocSpaceBySpaceId(Long spaceId) {
  39. return docSpaceMapper.selectDocSpaceBySpaceId(spaceId);
  40. }
  41. /**
  42. * 查询文档空间管理列表
  43. *
  44. * @param docSpace 文档空间管理
  45. * @return 文档空间管理
  46. */
  47. @Override
  48. public List<DocSpace> selectDocSpaceList(DocSpace docSpace) {
  49. return docSpaceMapper.selectDocSpaceList(docSpace);
  50. }
  51. /**
  52. * 根据空间类型查询目录
  53. *
  54. * @param type 空间类型
  55. * @return 文档空间管理集合
  56. */
  57. @Override
  58. public DocSpace selectDocSpaceList(String type) {
  59. DocSpace search = new DocSpace();
  60. search.setSpaceType(type);
  61. switch (type) {
  62. // case "1":
  63. // break;
  64. case "2":
  65. search.setOwner(SecurityUtils.getDeptId());
  66. break;
  67. case "3":
  68. search.setOwner(SecurityUtils.getUserId());
  69. break;
  70. default:
  71. }
  72. List<DocSpace> space = selectDocSpaceList(search);
  73. if (space.size() == 1) {
  74. return space.get(0);
  75. } else {
  76. return null;
  77. }
  78. }
  79. /**
  80. * 新增文档空间管理
  81. *
  82. * @param docSpace 文档空间管理
  83. * @return 结果
  84. */
  85. @Override
  86. public int insertDocSpace(DocSpace docSpace) {
  87. docSpace.setCreateTime(DateUtils.getNowDate());
  88. return docSpaceMapper.insertDocSpace(docSpace);
  89. }
  90. /**
  91. * 修改文档空间管理
  92. *
  93. * @param docSpace 文档空间管理
  94. * @return 结果
  95. */
  96. @Override
  97. public int updateDocSpace(DocSpace docSpace) {
  98. docSpace.setUpdateTime(DateUtils.getNowDate());
  99. return docSpaceMapper.updateDocSpace(docSpace);
  100. }
  101. /**
  102. * 批量删除文档空间管理
  103. *
  104. * @param spaceIds 需要删除的文档空间管理主键
  105. * @return 结果
  106. */
  107. @Override
  108. public int deleteDocSpaceBySpaceIds(Long[] spaceIds) {
  109. return docSpaceMapper.deleteDocSpaceBySpaceIds(spaceIds);
  110. }
  111. /**
  112. * 删除文档空间管理信息
  113. *
  114. * @param spaceId 文档空间管理主键
  115. * @return 结果
  116. */
  117. @Override
  118. public int deleteDocSpaceBySpaceId(Long spaceId) {
  119. return docSpaceMapper.deleteDocSpaceBySpaceId(spaceId);
  120. }
  121. /**
  122. * 初始化用户空间
  123. *
  124. * @param user 用户实体
  125. */
  126. @Override
  127. public void initUserSpace(SysUser user) {
  128. String spaceName = "\"" + user.getNickName() + "\"的个人空间";
  129. String defaultCap = configService.selectConfigByKey("user.default.cap");
  130. initSpace(SpaceType.PERSONAL, user.getUserId(), spaceName, defaultCap);
  131. }
  132. /**
  133. * 初始化部门空间
  134. *
  135. * @param dept 部门实体
  136. */
  137. @Override
  138. public void initDeptSpace(SysDept dept) {
  139. String spaceName = "\"" + dept.getDeptName() + "\"的部门空间";
  140. String defaultCap = configService.selectConfigByKey("dept.default.cap");
  141. initSpace(SpaceType.DEPT, dept.getDeptId(), spaceName, defaultCap);
  142. }
  143. /**
  144. * 初始化空间
  145. *
  146. * @param spaceType 空间类型
  147. * @param owner 所有人
  148. * @param spaceName 空间名称
  149. * @param defaultCap 空间大小
  150. */
  151. private void initSpace(SpaceType spaceType, Long owner, String spaceName, String defaultCap) {
  152. //初始化部门空间
  153. DocSpace space = new DocSpace();
  154. space.setSpaceType(spaceType.getValue());
  155. space.setOwner(owner);
  156. List<DocSpace> list = selectDocSpaceList(space);
  157. space.setSpaceName(spaceName);
  158. if (list.size() > 0) {
  159. //如果有记录,则更新空间名称
  160. space.setSpaceId(list.get(0).getSpaceId());
  161. space.setUpdateBy(SecurityUtils.getUsername());
  162. updateDocSpace(space);
  163. } else {
  164. //如果木有记录,则插入
  165. space.setSpaceCap(new BigDecimal(defaultCap));
  166. space.setCreateBy(SecurityUtils.getUsername());
  167. insertDocSpace(space);
  168. }
  169. //初始化顶层目录
  170. dirService.initTopDir(space);
  171. }
  172. }