package com.doc.biz.service.impl; import com.doc.biz.domain.DocDir; import com.doc.biz.domain.DocSpace; import com.doc.biz.mapper.DocSpaceMapper; import com.doc.biz.service.IDocDirService; import com.doc.biz.service.IDocSpaceService; import com.doc.common.core.domain.entity.SysDept; import com.doc.common.core.domain.entity.SysUser; import com.doc.common.enums.SpaceType; import com.doc.common.utils.DateUtils; import com.doc.common.utils.SecurityUtils; import com.doc.system.service.ISysConfigService; import org.springframework.stereotype.Service; import javax.annotation.Resource; import java.math.BigDecimal; import java.util.List; /** * 文档空间管理Service业务层处理 * * @author wukai * @date 2023-08-15 */ @Service public class DocSpaceServiceImpl implements IDocSpaceService { @Resource private DocSpaceMapper docSpaceMapper; @Resource private ISysConfigService configService; @Resource private IDocDirService dirService; /** * 查询文档空间管理 * * @param spaceId 文档空间管理主键 * @return 文档空间管理 */ @Override public DocSpace selectDocSpaceBySpaceId(Long spaceId) { return docSpaceMapper.selectDocSpaceBySpaceId(spaceId); } /** * 查询文档空间管理列表 * * @param docSpace 文档空间管理 * @return 文档空间管理 */ @Override public List selectDocSpaceList(DocSpace docSpace) { return docSpaceMapper.selectDocSpaceList(docSpace); } /** * 根据空间类型查询目录 * * @param type 空间类型 * @return 文档空间管理集合 */ @Override public DocSpace selectDocSpaceList(String type) { DocSpace search = new DocSpace(); search.setSpaceType(type); switch (type) { // case "1": // break; case "2": search.setOwner(SecurityUtils.getDeptId()); break; case "3": search.setOwner(SecurityUtils.getUserId()); break; default: } List space = selectDocSpaceList(search); if (space.size() == 1) { return space.get(0); } else { return null; } } /** * 新增文档空间管理 * * @param docSpace 文档空间管理 * @return 结果 */ @Override public int insertDocSpace(DocSpace docSpace) { docSpace.setCreateTime(DateUtils.getNowDate()); return docSpaceMapper.insertDocSpace(docSpace); } /** * 修改文档空间管理 * * @param docSpace 文档空间管理 * @return 结果 */ @Override public int updateDocSpace(DocSpace docSpace) { docSpace.setUpdateTime(DateUtils.getNowDate()); return docSpaceMapper.updateDocSpace(docSpace); } /** * 批量删除文档空间管理 * * @param spaceIds 需要删除的文档空间管理主键 * @return 结果 */ @Override public int deleteDocSpaceBySpaceIds(Long[] spaceIds) { return docSpaceMapper.deleteDocSpaceBySpaceIds(spaceIds); } /** * 删除文档空间管理信息 * * @param spaceId 文档空间管理主键 * @return 结果 */ @Override public int deleteDocSpaceBySpaceId(Long spaceId) { return docSpaceMapper.deleteDocSpaceBySpaceId(spaceId); } /** * 初始化用户空间 * * @param user 用户实体 */ @Override public void initUserSpace(SysUser user) { String spaceName = "\"" + user.getNickName() + "\"的个人空间"; String defaultCap = configService.selectConfigByKey("user.default.cap"); initSpace(SpaceType.PERSONAL, user.getUserId(), spaceName, defaultCap); } /** * 初始化部门空间 * * @param dept 部门实体 */ @Override public void initDeptSpace(SysDept dept) { String spaceName = "\"" + dept.getDeptName() + "\"的部门空间"; String defaultCap = configService.selectConfigByKey("dept.default.cap"); initSpace(SpaceType.DEPT, dept.getDeptId(), spaceName, defaultCap); } /** * 初始化空间 * * @param spaceType 空间类型 * @param owner 所有人 * @param spaceName 空间名称 * @param defaultCap 空间大小 */ private void initSpace(SpaceType spaceType, Long owner, String spaceName, String defaultCap) { //初始化部门空间 DocSpace space = new DocSpace(); space.setSpaceType(spaceType.getValue()); space.setOwner(owner); List list = selectDocSpaceList(space); space.setSpaceName(spaceName); if (list.size() > 0) { //如果有记录,则更新空间名称 space.setSpaceId(list.get(0).getSpaceId()); space.setUpdateBy(SecurityUtils.getUsername()); updateDocSpace(space); } else { //如果木有记录,则插入 space.setSpaceCap(new BigDecimal(defaultCap)); space.setCreateBy(SecurityUtils.getUsername()); insertDocSpace(space); } //初始化顶层目录 dirService.initTopDir(space); } }