Compare commits

..

15 Commits

43 changed files with 1174 additions and 193 deletions

4
.gitignore vendored
View File

@ -23,4 +23,6 @@
hs_err_pid*
.vs
.idea
.idea
*.iml
**/target/

View File

@ -5,12 +5,12 @@ import com.electromagnetic.industry.software.data.manage.request.indicator.EDDat
import electromagnetic.data.framework.share.model.ElectromagneticResult;
import electromagnetic.data.framework.share.model.ElectromagneticResultUtil;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.util.Date;
@RequestMapping("/data/ed/file")
@RestController
@ -33,16 +33,29 @@ public class EDDataController {
}
@ApiOperation(value = "更新文件占用状态",notes = "")
@RequestMapping(value = "/updateFileStatus",method = RequestMethod.POST)
public ElectromagneticResult<?> updateFileStatus(@RequestBody EDDataRequest request){
return edDataFacade.updateFileStatus(request);
@ApiOperation(value = "更新文件信息",notes = "")
@RequestMapping(value = "/updateFileInfo",method = RequestMethod.POST)
public ElectromagneticResult<?> updateFileInfo(@RequestBody EDDataRequest request){
return edDataFacade.updateFileInfo(request);
}
@ApiOperation(value = "获取子文件数量",notes = "")
@RequestMapping(value = "/getChildFileCount",method = RequestMethod.POST)
public ElectromagneticResult<?> getChildFileCount(@RequestBody EDDataRequest request){
return edDataFacade.getChildFileCount(request);
}
@ApiOperation(value = "上传",notes = "")
@RequestMapping(value = "/upload",method = RequestMethod.POST)
public ElectromagneticResult<?> upload(@RequestBody EDDataRequest request){
@RequestMapping(value = "/upload", consumes = "multipart/form-data",method = RequestMethod.POST)
public ElectromagneticResult<?> upload(@RequestParam("parentId") String parentId,
@RequestParam("file") MultipartFile file,
@RequestParam("gmtBatchUpload") Long gmtBatchUpload){
EDDataRequest request = new EDDataRequest();
request.setParentId(parentId);
request.setFileData(file);
request.setGmtBatchUpload(new Date(gmtBatchUpload));
return edDataFacade.upload(request);
}
@ -61,10 +74,4 @@ public class EDDataController {
}
@ApiOperation(value = "重命名",notes = "")
@RequestMapping(value = "/rename",method = RequestMethod.POST)
public ElectromagneticResult<?> rename(@RequestBody EDDataRequest request){
return ElectromagneticResultUtil.success("重命名");
}
}

View File

@ -50,19 +50,19 @@ public class UserController {
}
@ApiOperation(value = "查询用户信息", notes = "")
@RequestMapping(value = "/list", method = RequestMethod.GET)
public ElectromagneticResult<?> searchUser(SearchUserRequest searchUserRequest) {
@RequestMapping(value = "/list", method = RequestMethod.POST)
public ElectromagneticResult<?> searchUser(@RequestBody SearchUserRequest searchUserRequest) {
return userFacade.searchUser(searchUserRequest);
}
@ApiOperation(value = "校验工号唯一性", notes = "")
@RequestMapping(value = "/validate", method = RequestMethod.POST)
@RequestMapping(value = "/validateWorkNumber", method = RequestMethod.POST)
public ElectromagneticResult<?> validateWorkNum(@RequestBody UserWorkNumRequest userWorkNumRequest) {
return userFacade.validateWorkNum(userWorkNumRequest);
}
@ApiOperation(value="删除用户信息",notes="")
@GetMapping(value = "/deleteUser")
@PostMapping(value = "/deleteUser")
public ElectromagneticResult<?> deleteUser(@RequestBody UserDeleteRequest userDeleteRequest) {
return userFacade.deleteUser(userDeleteRequest);
}

View File

@ -53,6 +53,22 @@ public class EDDataInfo {
* 状态publish:发布occupy:占用
*/
private String dataStatus;
/**
* 备注
*/
private String note;
/**
* 编辑人
*/
private String editor;
/**
* 批量上传时间
*/
private Date gmtBatchUpload;
/**
* 保存状态
*/
private String saveStatus;
/**
* 创建人
*/

View File

@ -1,8 +1,10 @@
package com.electromagnetic.industry.software.data.manage.domain.boardservice.indicator.parames;
import lombok.Data;
import org.springframework.web.multipart.MultipartFile;
import java.io.Serializable;
import java.util.Date;
@Data
public class EDDataParams implements Serializable {
@ -18,21 +20,49 @@ public class EDDataParams implements Serializable {
/**
* 上级文件夹数据码,为空是顶级
*/
private Long parentId;
/**
* 文件夹名称
*/
private String name;
/**
* 关键词
*/
private String keyWord;
private String parentId;
/**
* 文件数据编码
*/
private String dataId;
/**
* 文件夹名称
*/
private String name;
/**
* 创建日期排序
*/
private String gmtCreate;
/**
* 文件数据状态
*/
private String dataStatus;
/**
* 备注
*/
private String note;
/**
* 是否有效
*/
private String effectFlag;
/**
* 关键词
*/
private String keyWord;
/**
* 批量上传时间
*/
private Date gmtBatchUpload;
/**
* 保存状态
*/
private String saveStatus;
/**
* 文件数据编码数组
*/
private String[] dataIdArr;
/**
* 文件数据
*/
private MultipartFile fileData;
}

View File

@ -7,6 +7,8 @@ import com.electromagnetic.industry.software.data.manage.domain.boardservice.ind
import com.electromagnetic.industry.software.data.manage.domain.boardservice.indicator.parames.EDDataParams;
import com.github.pagehelper.PageInfo;
import java.util.List;
/**
* @author
* @version $Id: EDDataRepos.java, v 0.1 2024-07-29 19:02
@ -14,32 +16,32 @@ import com.github.pagehelper.PageInfo;
public interface EDDataRepository {
/**
* 创建文件
* 创建文件/文件数据信息
* @param edDataInfo
* @return
*/
Boolean createFolder(EDDataInfo edDataInfo);
Boolean createDataInfo(EDDataInfo edDataInfo);
/**
* 获取文件信息列表
* @param parames
* @return
*/
PageInfo<EDDataInfo> getDataInfoList(EDDataParams parames);
List<EDDataInfo> getDataInfoList(EDDataParams parames);
/**
* 更新文件占用状态
* 获取文件信息
* @param parames
* @return
*/
Boolean updateFileStatus(EDDataParams parames);
EDDataInfo getDataInfo(EDDataParams parames);
/**
* 上传
* 更新文件信息
* @param parames
* @return
*/
Boolean upload(EDDataParams parames);
Boolean updateFileInfo(EDDataParams parames);
/**
* 下载

View File

@ -7,11 +7,11 @@ import com.electromagnetic.industry.software.data.manage.domain.boardservice.ind
public interface EDDataService {
/**
* 创建文件
* 创建文件/文件数据信息
* @param edDataInfo
* @return
*/
Boolean createFolder(EDDataInfo edDataInfo);
Boolean createDataInfo(EDDataInfo edDataInfo);
/**
* 获取文件信息列表
@ -21,18 +21,25 @@ public interface EDDataService {
EDDataPage getDataInfoList(EDDataParams parames);
/**
* 更新文件占用状态
* 获取文件信息
* @param parames
* @return
*/
Boolean updateFileStatus(EDDataParams parames);
EDDataInfo getDataInfo(EDDataParams parames);
/**
* 上传
* 更新文件信息
* @param parames
* @return
*/
Boolean upload(EDDataParams parames);
Boolean updateFileInfo(EDDataParams parames);
/**
* 获取子文件数量
* @param parames
* @return
*/
Integer getChildFileCount(EDDataParams parames);
/**
* 下载
@ -41,4 +48,18 @@ public interface EDDataService {
*/
Boolean download(EDDataParams parames);
/**
* 检查文件夹是否存在
* @param path
* @return
*/
Boolean checkFolderIsExist(String path);
/**
* 创建多级目录
* @param path
* @return
*/
Boolean createMultiLevelDirectory(String path);
}

View File

@ -3,11 +3,13 @@
*/
package com.electromagnetic.industry.software.data.manage.domain.boardservice.indicator.service.impl;
import cn.hutool.poi.excel.cell.CellSetter;
import com.electromagnetic.industry.software.data.manage.domain.boardservice.indicator.model.EDDataInfo;
import com.electromagnetic.industry.software.data.manage.domain.boardservice.indicator.model.EDDataPage;
import com.electromagnetic.industry.software.data.manage.domain.boardservice.indicator.parames.EDDataParams;
import com.electromagnetic.industry.software.data.manage.domain.boardservice.indicator.repository.EDDataRepository;
import com.electromagnetic.industry.software.data.manage.domain.boardservice.indicator.service.EDDataService;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import electromagnetic.data.framework.share.exception.LoggerConstant;
import org.slf4j.Logger;
@ -15,6 +17,10 @@ import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.List;
/**
* @author
@ -30,13 +36,13 @@ public class EDDataServiceImpl implements EDDataService {
/**
* 创建文件
* 创建文件/文件数据信息
* @param edDataInfo
* @return
*/
public Boolean createFolder(EDDataInfo edDataInfo)
public Boolean createDataInfo(EDDataInfo edDataInfo)
{
edDataRepository.createFolder(edDataInfo);
edDataRepository.createDataInfo(edDataInfo);
return Boolean.TRUE;
}
@ -47,33 +53,59 @@ public class EDDataServiceImpl implements EDDataService {
*/
public EDDataPage getDataInfoList(EDDataParams parames)
{
PageHelper.startPage(parames.getPageIndex(), parames.getPageSize());
List<EDDataInfo> edDataInfoList = edDataRepository.getDataInfoList(parames);
PageInfo<EDDataInfo> pageInfo = new PageInfo<>(edDataInfoList);
EDDataPage edDataPage=new EDDataPage();
//数据查询
PageInfo<EDDataInfo> pageInfo = edDataRepository.getDataInfoList(parames);
edDataPage.setEdDataInfo(pageInfo);
return edDataPage;
}
/**
* 更新文件占用状态
* 获取文件信息
* @param parames
* @return
*/
public Boolean updateFileStatus(EDDataParams parames)
public EDDataInfo getDataInfo(EDDataParams parames)
{
edDataRepository.updateFileStatus(parames);
return edDataRepository.getDataInfo(parames);
}
/**
* 更新文件信息
* @param parames
* @return
*/
public Boolean updateFileInfo(EDDataParams parames)
{
edDataRepository.updateFileInfo(parames);
return Boolean.TRUE;
}
/**
* 上传
* 获取子文件数量
* @param parames
* @return
*/
public Boolean upload(EDDataParams parames)
public Integer getChildFileCount(EDDataParams parames)
{
edDataRepository.upload(parames);
return Boolean.TRUE;
Integer childFileCount = 0;
List<EDDataInfo> edDataInfoList = edDataRepository.getDataInfoList(parames);
for (EDDataInfo edDataInfo : edDataInfoList) {
if(edDataInfo.getDataType().equals("folder"))
{
parames.setParentId(edDataInfo.getDataId());
childFileCount += getChildFileCount(parames);
}
else if(edDataInfo.getDataType().equals("file"))
{
++childFileCount;
}
}
return childFileCount;
}
/**
@ -87,6 +119,30 @@ public class EDDataServiceImpl implements EDDataService {
return Boolean.TRUE;
}
/**
* 检查文件夹是否存在
* @param path
* @return
*/
public Boolean checkFolderIsExist(String path)
{
return Files.exists(Paths.get(path));
}
/**
* 创建多级目录
* @param path
* @return
*/
public Boolean createMultiLevelDirectory(String path)
{
try {
Files.createDirectories(Paths.get(path));
return Boolean.TRUE;
} catch (IOException e) {
return Boolean.FALSE;
}
}
}

View File

@ -23,7 +23,7 @@ public class LoginInterceptor implements HandlerInterceptor {
response.setStatus(401);
return false;
} else {
token = token.substring(7);
//token = token.substring(7);
}
boolean result = tokenService.isTokenValid(token.substring(7));
if (!result) {

View File

@ -0,0 +1,25 @@
package com.electromagnetic.industry.software.data.manage.domain.boardservice.user.params;
import java.util.List;
import lombok.Data;
@Data
public class PublishParam {
private static final long serialVersionUID = 1L;
/**
* 用户编码
*/
private List<String> userIds;
/**
* 编辑者
*/
private String modifier;
/**
* 编辑者姓名
*/
private String modifierName;
}

View File

@ -17,7 +17,7 @@ public class SearchKeyWords {
/**
* 用户发布状态
*/
private int isPublished;
private String isPublished;
/**
* 排序方式: "asc" "desc"
@ -33,4 +33,14 @@ public class SearchKeyWords {
* 排序方式: "asc" "desc"
*/
private String internEndDate;
/**
* 页码
*/
private int pageIndex;
/**
* 单页条目数量
*/
private int pageSize;
}

View File

@ -0,0 +1,29 @@
package com.electromagnetic.industry.software.data.manage.domain.boardservice.user.params;
import lombok.Data;
import java.util.Date;
@Data
public class UserDeleteKeyWords {
/**
* 主键ID
*/
private Long id;
/**
* 用户编码
*/
private String userId;
/**
* 更新人
*/
private String modifier;
/**
* 更新人姓名
*/
private String modifierName;
}

View File

@ -15,4 +15,19 @@ public interface CategoryRepository {
* 获取所有节点
*/
List<Category> getAllCategories();
/**
* 获取节点通过编码ID
* @param category
* @return
*/
List<Category> selectCategories(Category category);
/**
* 获取子节点通过父ID
* @param category
* @return
*/
List<Category> selectChildCategories(Category category);
}

View File

@ -1,7 +1,10 @@
package com.electromagnetic.industry.software.data.manage.domain.boardservice.user.repository;
import com.electromagnetic.industry.software.data.manage.domain.boardservice.user.params.PublishParam;
import com.electromagnetic.industry.software.data.manage.domain.boardservice.user.params.SearchKeyWords;
import com.electromagnetic.industry.software.data.manage.domain.boardservice.user.model.User;
import com.electromagnetic.industry.software.data.manage.domain.boardservice.user.params.UserDeleteKeyWords;
import java.util.List;
public interface UserRepository {
@ -22,10 +25,10 @@ public interface UserRepository {
/**
* 用户发布
* @param userIds
* @param publishParam
* @return
*/
int publish(List<String> userIds);
int publish(PublishParam publishParam);
/**
* 通过工号查询用户
@ -48,11 +51,18 @@ public interface UserRepository {
*/
List<User> search(SearchKeyWords searchKeyWords);
/**
* 查询数据总条目数
* @param searchKeywords
* @return
*/
int getTotalCount (SearchKeyWords searchKeywords);
/**
* 删除用户
* @param userId
* @return
*/
int deleteUser(String userId);
int deleteUser(UserDeleteKeyWords userDeleteKeyWords);
}

View File

@ -11,4 +11,32 @@ public interface CategoryService {
*/
public List<Category> buildCategoryTree();
/**
* 获取所有节点
* @return
*/
List<Category> selectAllCategories();
/**
* 获取节点通过编码ID
* @param category
* @return
*/
List<Category> selectCategories(Category category);
/**
* 获取子节点通过父ID
* @param category
* @return
*/
List<Category> selectChildCategories(Category category);
/**
* 获取 指定节点的 父节点 从所有节点数组中
* @param categoryId
* @param categoryList
* @return
*/
Category getParentCategories(String categoryId, List<Category> categoryList);
}

View File

@ -1,7 +1,9 @@
package com.electromagnetic.industry.software.data.manage.domain.boardservice.user.service;
import com.electromagnetic.industry.software.data.manage.domain.boardservice.user.params.PublishParam;
import com.electromagnetic.industry.software.data.manage.domain.boardservice.user.params.SearchKeyWords;
import com.electromagnetic.industry.software.data.manage.domain.boardservice.user.model.User;
import com.electromagnetic.industry.software.data.manage.domain.boardservice.user.params.UserDeleteKeyWords;
import java.util.List;
@ -23,10 +25,10 @@ public interface UserService {
/**
* 用户发布
* @param userIds
* @param publishParam
* @return
*/
Boolean publishUser(List<String> userIds);
Boolean publishUser(PublishParam publishParam);
/**
* 通过工号查询用户
@ -58,10 +60,17 @@ public interface UserService {
*/
List<User> searchUser(SearchKeyWords searchKeyWords);
/**
* 查询数据总条目数
* @param searchKeywords
* @return
*/
int getTotalCount (SearchKeyWords searchKeywords);
/**
* 根据userId逻辑删除用户
* @param userId
* @return
*/
Boolean deleteUser(String userId);
Boolean deleteUser(UserDeleteKeyWords userDeleteKeyWords);
}

View File

@ -80,4 +80,55 @@ public class CategoryServiceImpl implements CategoryService {
private boolean hasChild(List<Category> list, Category category) {
return !getChildList(list, category).isEmpty();
}
/**
* 获取所有节点
* @return
*/
public List<Category> selectAllCategories() { return categoryRepository.getAllCategories(); }
/**
* 获取节点通过编码ID
* @param category
* @return
*/
public List<Category> selectCategories(Category category) { return categoryRepository.selectCategories(category); }
/**
* 获取子节点通过父ID
* @param category
* @return
*/
public List<Category> selectChildCategories(Category category) { return categoryRepository.selectChildCategories(category); }
/**
* 获取 指定节点的 父节点 从所有节点数组中
* @param categoryId
* @param categoryList
* @return
*/
public Category getParentCategories(String categoryId, List<Category> categoryList)
{
Category category = null;
Category categoryParent = null;
for(Category iter : categoryList)
{
if(category == null && iter.getCategoryId().equals(categoryId))
{
category = iter;
break;
}
}
for(Category iter : categoryList)
{
if(categoryParent == null && iter.getCategoryId().equals(category.getParentId()))
{
categoryParent = iter;
break;
}
}
return categoryParent;
}
}

View File

@ -1,7 +1,9 @@
package com.electromagnetic.industry.software.data.manage.domain.boardservice.user.service.impl;
import com.electromagnetic.industry.software.data.manage.domain.boardservice.user.params.PublishParam;
import com.electromagnetic.industry.software.data.manage.domain.boardservice.user.params.SearchKeyWords;
import com.electromagnetic.industry.software.data.manage.domain.boardservice.user.model.User;
import com.electromagnetic.industry.software.data.manage.domain.boardservice.user.params.UserDeleteKeyWords;
import com.electromagnetic.industry.software.data.manage.domain.boardservice.user.repository.UserRepository;
import com.electromagnetic.industry.software.data.manage.domain.boardservice.user.service.UserService;
import electromagnetic.data.framework.share.exception.LoggerConstant;
@ -67,11 +69,11 @@ public class UserServiceImpl implements UserService {
/**
* 用户发布
* @param userIds
* @param publishParam
* @return
*/
@Override
public Boolean publishUser(List<String> userIds) { return userRepository.publish(userIds)>0; }
public Boolean publishUser(PublishParam publishParam) { return userRepository.publish(publishParam)>0; }
/**
* 获取单条用户信息
@ -90,13 +92,23 @@ public class UserServiceImpl implements UserService {
public List<User> searchUser(SearchKeyWords searchKeyWords) { return userRepository.search(searchKeyWords); }
/**
* 根据userId逻辑删除用户
*
* @param userId
* 查询数据总条目数
* @param searchKeywords
* @return
*/
@Override
public Boolean deleteUser(String userId) {
return userRepository.deleteUser(userId)>0;
public int getTotalCount (SearchKeyWords searchKeywords) {
return userRepository.getTotalCount(searchKeywords);
}
/**
* 根据userId逻辑删除用户
*
* @param userDeleteKeyWords
* @return
*/
@Override
public Boolean deleteUser(UserDeleteKeyWords userDeleteKeyWords) {
return userRepository.deleteUser(userDeleteKeyWords)>0;
}
}

View File

@ -18,6 +18,10 @@
<groupId>com.electromagnetic.data</groupId>
<artifactId>electromagnetic-framework</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
</dependency>
</dependencies>

View File

@ -4,6 +4,9 @@ import com.electromagnetic.industry.software.data.manage.request.indicator.EDDat
import com.electromagnetic.industry.software.data.manage.response.indicator.EDDataPageResponse;
import electromagnetic.data.framework.share.model.ElectromagneticResult;
import java.util.List;
import java.util.Map;
public interface EDDataFacade {
/**
@ -22,11 +25,18 @@ public interface EDDataFacade {
ElectromagneticResult<EDDataPageResponse> getDataInfoList(EDDataRequest request);
/**
* 更新文件占用状态
* 更新文件信息
* @param request
* @return
*/
ElectromagneticResult<Boolean> updateFileStatus(EDDataRequest request);
ElectromagneticResult<Boolean> updateFileInfo(EDDataRequest request);
/**
* 获取子文件数量
* @param request
* @return
*/
ElectromagneticResult<Map<String, Integer>> getChildFileCount(EDDataRequest request);
/**
* 上传
@ -40,6 +50,20 @@ public interface EDDataFacade {
* @param request
* @return
*/
ElectromagneticResult<Boolean> download(EDDataRequest request);
ElectromagneticResult<Map<String, List<String>>> download(EDDataRequest request);
/**
* 导出
* @param request
* @return
*/
ElectromagneticResult<String> batchExport(EDDataRequest request);
/**
* 导入
* @param request
* @return
*/
ElectromagneticResult<String> batchImport(EDDataRequest request);
}

View File

@ -1,8 +1,11 @@
package com.electromagnetic.industry.software.data.manage.request.indicator;
import org.springframework.web.multipart.MultipartFile;
import electromagnetic.data.framework.share.model.BaseRequest;
import lombok.Data;
import java.util.Date;
@Data
public class EDDataRequest extends BaseRequest {
@ -17,21 +20,49 @@ public class EDDataRequest extends BaseRequest {
/**
* 上级文件夹数据码,为空是顶级
*/
private Long parentId;
/**
* 文件夹名称
*/
private String name;
/**
* 关键词
*/
private String keyWord;
private String parentId;
/**
* 文件数据编码
*/
private String dataId;
/**
* 文件夹名称
*/
private String name;
/**
* 创建日期排序
*/
private String gmtCreate;
/**
* 文件数据状态
*/
private String dataStatus;
/**
* 备注
*/
private String note;
/**
* 是否有效
*/
private String effectFlag;
/**
* 关键词
*/
private String keyWord;
/**
* 批量上传时间
*/
private Date gmtBatchUpload;
/**
* 保存状态
*/
private String saveStatus;
/**
* 文件数据编码数组
*/
private String[] dataIdArr;
/**
* 文件数据
*/
private MultipartFile fileData;
}

View File

@ -22,19 +22,10 @@ public class SearchUserRequest extends BaseRequest implements Serializable {
private String userStatus;
/**
* 用户发布状态
* 用户发布状态1已发布0未发布
*/
private int isPublished;
private String isPublished;
// /**
// * 排序字段: "gmtCreate", "joinTime", "internEndDate"
// */
// private String sortBy;
//
// /**
// * 排序方式: "asc" "desc"
// */
// private String sortOrder;
/**
* 排序方式: "asc" "desc"
*/
@ -49,4 +40,14 @@ public class SearchUserRequest extends BaseRequest implements Serializable {
* 排序方式: "asc" "desc"
*/
private String internEndDate;
/**
* 页码
*/
private int pageIndex;
/**
* 单页条目数量
*/
private int pageSize;
}

View File

@ -17,4 +17,14 @@ public class UserDeleteRequest extends BaseRequest implements Serializable {
* 用户编码
*/
private String userId;
/**
* 更新人姓名
*/
private String modifier;
/**
* 更新人工号
*/
private String modifierName;
}

View File

@ -23,8 +23,6 @@ public class UserModiRequest extends BaseRequest implements Serializable {
*/
private String userName;
/**
* 工号
*/

View File

@ -18,4 +18,14 @@ public class UserPublishRequest extends BaseRequest implements Serializable {
* 用户编码
*/
private List<String> userIds;
/**
* 编辑者
*/
private String modifier;
/**
* 编辑者姓名
*/
private String modifierName;
}

View File

@ -62,4 +62,15 @@ public class UserRequest extends BaseRequest implements Serializable {
* 创建者姓名
*/
private String creatorName;
/**
* 编辑者userId
*/
private String modifier;
/**
* 编辑者姓名
*/
private String modifierName;
}

View File

@ -19,4 +19,9 @@ public class UserWorkNumRequest extends BaseRequest implements Serializable {
*/
private String workNumber;
/**
* 用户编号
*/
private String userID;
}

View File

@ -1,13 +1,8 @@
package com.electromagnetic.industry.software.data.manage.response.user;
import com.electromagnetic.industry.software.data.manage.response.indicator.IndicatorCardResponse;
import com.electromagnetic.industry.software.data.manage.response.indicator.IndicatorResponse;
import lombok.Data;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
@Data
public class SingleUserResponse {

View File

@ -0,0 +1,13 @@
package com.electromagnetic.industry.software.data.manage.response.user;
import lombok.Data;
import java.io.Serializable;
@Data
public class UserLoginResponse implements Serializable {
private String token;
private String userId;
}

View File

@ -22,5 +22,10 @@ public class UserSearchResponse implements Serializable {
* 用户列表
*/
private List<SingleUserResponse> userList;
//private List<User> userList;
/**
* 总数据数
*/
private long totalCount;
}

View File

@ -19,4 +19,16 @@ public interface CategoryMapper {
* @return
*/
List<Category> selectAllCategories();
/**
* 获取节点通过编码ID
* @return
*/
List<Category> selectCategories(Category category);
/**
* 获取子节点通过父ID
* @return
*/
List<Category> selectChildCategories(Category category);
}

View File

@ -2,6 +2,8 @@ package com.electromagnetic.industry.software.data.manage.repository.dao;
import com.electromagnetic.industry.software.data.manage.domain.boardservice.indicator.model.EDDataInfo;
import com.electromagnetic.industry.software.data.manage.domain.boardservice.indicator.parames.EDDataParams;
import com.electromagnetic.industry.software.data.manage.request.indicator.EDDataRequest;
import electromagnetic.data.framework.share.model.ElectromagneticResult;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
@ -24,11 +26,10 @@ public interface EDDataMapper {
List<EDDataInfo> getDataInfoList(EDDataParams parames);
/**
* 更新文件占用状态
* 更新文件信息
* @param parames
* @return
*/
Boolean updateFileStatus(EDDataParams parames);
Boolean updateFileInfo(EDDataParams parames);
}

View File

@ -1,7 +1,9 @@
package com.electromagnetic.industry.software.data.manage.repository.dao;
import com.electromagnetic.industry.software.data.manage.domain.boardservice.user.params.PublishParam;
import com.electromagnetic.industry.software.data.manage.domain.boardservice.user.params.SearchKeyWords;
import com.electromagnetic.industry.software.data.manage.domain.boardservice.user.model.User;
import com.electromagnetic.industry.software.data.manage.domain.boardservice.user.params.UserDeleteKeyWords;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
@ -24,10 +26,10 @@ public interface UserMapper {
/**
* 发布
* @param userIds
* @param publishParam
* @return
*/
int publish(List<String> userIds);
int publish(PublishParam publishParam);
/**
* 通过工号查询用户
@ -50,10 +52,17 @@ public interface UserMapper {
*/
List<User> search(SearchKeyWords searchKeywords);
/**
* 查询数据总条目数
* @param searchKeywords
* @return
*/
int getTotalCount (SearchKeyWords searchKeywords);
/**
* 通过用户ID删除用户
* @param userId
* @return
*/
int deleteUser(String userId);
int deleteUser(UserDeleteKeyWords userDeleteKeyWords);
}

View File

@ -26,8 +26,22 @@ public class CategoryRepositoryImpl implements CategoryRepository {
* 获取所有节点
*/
@Override
public List<Category> getAllCategories(){
return categoryMapper.selectAllCategories();
}
public List<Category> getAllCategories() { return categoryMapper.selectAllCategories(); }
/**
* 获取节点通过编码ID
* @param category
* @return
*/
@Override
public List<Category> selectCategories(Category category) { return categoryMapper.selectCategories(category); }
/**
* 获取子节点通过父ID
* @param category
* @return
*/
@Override
public List<Category> selectChildCategories(Category category) { return categoryMapper.selectChildCategories(category); }
}

View File

@ -25,13 +25,13 @@ public class EDDataRepositoryImpl implements EDDataRepository {
private EDDataMapper edDataMapper;
/**
* 创建文件
* 创建文件/文件数据信息
*
* @param edDataInfo
* @return
*/
@Override
public Boolean createFolder(EDDataInfo edDataInfo)
public Boolean createDataInfo(EDDataInfo edDataInfo)
{
return edDataMapper.createDataInfo(edDataInfo);
}
@ -42,35 +42,35 @@ public class EDDataRepositoryImpl implements EDDataRepository {
* @return
*/
@Override
public PageInfo<EDDataInfo> getDataInfoList(EDDataParams parames)
public List<EDDataInfo> getDataInfoList(EDDataParams parames)
{
return edDataMapper.getDataInfoList(parames);
}
/**
* 获取文件信息
* @param parames
* @return
*/
@Override
public EDDataInfo getDataInfo(EDDataParams parames)
{
PageHelper.startPage(parames.getPageIndex(), parames.getPageSize());
List<EDDataInfo> edDataInfoList=edDataMapper.getDataInfoList(parames);
return new PageInfo<>(edDataInfoList);
if(edDataInfoList.size()>0)
return edDataInfoList.get(0);
else
return null;
}
/**
* 更新文件占用状态
* 更新文件信息
* @param parames
* @return
*/
@Override
public Boolean updateFileStatus(EDDataParams parames)
public Boolean updateFileInfo(EDDataParams parames)
{
return edDataMapper.updateFileStatus(parames);
}
/**
* 上传
* @param parames
* @return
*/
@Override
public Boolean upload(EDDataParams parames)
{
//return edDataMapper.upload(parames);
//edDataMapper.createDataInfo(edDataInfo);
return Boolean.TRUE;
return edDataMapper.updateFileInfo(parames);
}
/**
@ -86,4 +86,5 @@ public class EDDataRepositoryImpl implements EDDataRepository {
}
}

View File

@ -4,8 +4,10 @@
package com.electromagnetic.industry.software.data.manage.repository.impl;
import com.electromagnetic.industry.software.data.manage.domain.boardservice.user.params.PublishParam;
import com.electromagnetic.industry.software.data.manage.domain.boardservice.user.params.SearchKeyWords;
import com.electromagnetic.industry.software.data.manage.domain.boardservice.user.model.User;
import com.electromagnetic.industry.software.data.manage.domain.boardservice.user.params.UserDeleteKeyWords;
import com.electromagnetic.industry.software.data.manage.domain.boardservice.user.repository.UserRepository;
import com.electromagnetic.industry.software.data.manage.repository.dao.UserMapper;
import org.springframework.stereotype.Repository;
@ -43,12 +45,12 @@ public class UserRepositoryImpl implements UserRepository {
/**
* 用户发布
*
* @param userIds
* @param publishParam
* @return
*/
@Override
public int publish(List<String> userIds) {
return userMapper.publish(userIds);
public int publish(PublishParam publishParam) {
return userMapper.publish(publishParam);
}
/**
@ -82,13 +84,21 @@ public class UserRepositoryImpl implements UserRepository {
}
/**
* 删除用户
* @param userId
* 查询数据总条目数
* @param searchKeywords
* @return
*/
@Override
public int deleteUser(String userId) {
return userMapper.deleteUser(userId);
public int getTotalCount (SearchKeyWords searchKeywords) {return userMapper.getTotalCount(searchKeywords);}
/**
* 删除用户
* @param userDeleteKeyWords
* @return
*/
@Override
public int deleteUser(UserDeleteKeyWords userDeleteKeyWords) {
return userMapper.deleteUser(userDeleteKeyWords);
}

View File

@ -32,4 +32,17 @@
<include refid="selectUserVo" />
where category_status="available"
</select>
<select id="selectCategories" resultMap="CategoryResultMap"
parameterType="com.electromagnetic.industry.software.data.manage.domain.boardservice.category.model.Category">
<include refid="selectUserVo" />
where category_id = categoryId and category_status="available"
</select>
<select id="selectChildCategories" resultMap="CategoryResultMap"
parameterType="com.electromagnetic.industry.software.data.manage.domain.boardservice.category.model.Category">
<include refid="selectUserVo" />
where parent_id = parentId and category_status="available"
</select>
</mapper>

View File

@ -14,6 +14,10 @@
<result column="content" jdbcType="VARCHAR" property="content" />
<result column="implant_json" jdbcType="VARCHAR" property="implantJson" />
<result column="data_status" jdbcType="VARCHAR" property="dataStatus" />
<result column="note" jdbcType="VARCHAR" property="note" />
<result column="editor" jdbcType="VARCHAR" property="editor" />
<result column="gmt_batch_upload" jdbcType="TIMESTAMP" property="gmtBatchUpload" />
<result column="save_status" jdbcType="VARCHAR" property="saveStatus" />
<result column="creator" jdbcType="VARCHAR" property="creator" />
<result column="creator_name" jdbcType="VARCHAR" property="creatorName" />
<result column="gmt_create" jdbcType="TIMESTAMP" property="gmtCreate" />
@ -24,7 +28,7 @@
</resultMap>
<sql id="Base_Column_list">
id,category_id,data_id,data_no,data_name,data_type,file_type,version,content,
implant_json,data_status,creator,creator_name,gmt_create,modifier,modifier_name,
implant_json,data_status,note,editor,gmt_batch_upload,save_status,creator,creator_name,gmt_create,modifier,modifier_name,
gmt_modified,effect_flag
</sql>
@ -35,16 +39,18 @@
</selectKey>
insert into ed_data_info (id, category_id,
data_id, data_no, data_name,
data_type, file_type,
version,content, implant_json, data_status,
data_type, file_type, version,
content, implant_json, data_status,
note, editor, gmt_batch_upload, save_status,
creator, creator_name, gmt_create,
modifier, modifier_name, gmt_modified,
effect_flag
)
values (#{id,jdbcType=VARCHAR}, #{categoryId,jdbcType=VARCHAR},
#{dataId,jdbcType=VARCHAR}, #{dataNo,jdbcType=VARCHAR}, #{dataName,jdbcType=VARCHAR},
#{dataType,jdbcType=VARCHAR}, #{fileType,jdbcType=VARCHAR},
#{version,jdbcType=VARCHAR},#{content,jdbcType=VARCHAR}, #{implantJson,jdbcType=VARCHAR}, #{dataStatus,jdbcType=VARCHAR},
#{dataType,jdbcType=VARCHAR}, #{fileType,jdbcType=VARCHAR},#{version,jdbcType=VARCHAR},
#{content,jdbcType=VARCHAR}, #{implantJson,jdbcType=VARCHAR}, #{dataStatus,jdbcType=VARCHAR},
#{note,jdbcType=VARCHAR}, #{editor,jdbcType=VARCHAR}, #{gmtBatchUpload,jdbcType=TIMESTAMP}, #{saveStatus,jdbcType=VARCHAR},
#{creator,jdbcType=VARCHAR}, #{creatorName,jdbcType=VARCHAR}, now(), #{modifier,jdbcType=VARCHAR},
#{modifierName,jdbcType=VARCHAR},now(),1
)
@ -61,23 +67,45 @@
<if test="parentId!=null and parentId!=''">
and category_id='${parentId}'
</if>
<if test="dataId!=null and dataId!=''">
and data_id='${dataId}'
</if>
<if test="keyWord!=null and keyWord!=''">
and data_name LIKE '%${keyWord}%'
</if>
<if test="saveStatus!=null and saveStatus!=''">
and save_status='${saveStatus}'
</if>
GROUP BY id
order by gmt_modified asc
<if test="gmtCreate == 'asc' or gmtCreate =='desc'">
order by gmt_create ${gmtCreate}
</if>
</select>
<update id="updateFileStatus" parameterType="com.electromagnetic.industry.software.data.manage.domain.boardservice.indicator.parames.EDDataParams">
<update id="updateFileInfo" parameterType="com.electromagnetic.industry.software.data.manage.domain.boardservice.indicator.parames.EDDataParams">
update ed_data_info
<set>
<if test="name != null and name!=''">
data_name = #{name,jdbcType=VARCHAR},
</if>
<if test="dataStatus != null and dataStatus!=''">
data_status = #{dataStatus,jdbcType=VARCHAR},
</if>
<if test="note != null and note!=''">
note = #{note,jdbcType=VARCHAR},
</if>
<if test="saveStatus != null and note!=''">
save_status = #{saveStatus,jdbcType=VARCHAR},
</if>
<if test="effectFlag != null and effectFlag!=''">
effect_flag = #{effectFlag,jdbcType=VARCHAR},
</if>
gmt_modified = now()
</set>
where data_id = #{dataId,jdbcType=VARCHAR} and effect_flag = 1
</update>
</mapper>

View File

@ -83,14 +83,16 @@
<if test="modifier != null and modifier != ''">modifier = #{modifier},</if>
<if test="modifierName != null and modifierName != ''">modifier_name = #{modifierName},</if>
</set>
where id= #{id}
where user_id= #{userId}
</update>
<update id="publish" parameterType="com.electromagnetic.industry.software.data.manage.domain.boardservice.user.model.User">
<update id="publish" parameterType="com.electromagnetic.industry.software.data.manage.domain.boardservice.user.params.PublishParam">
update ed_users
<trim prefix="SET" suffixOverrides=",">
is_published = 1
is_published = 1,
<if test="modifier != null and modifier != ''">modifier = #{modifier},</if>
<if test="modifierName != null and modifierName != ''">modifier_name = #{modifierName},</if>
</trim>
where user_id IN
<foreach collection="userIds" item="userId" open="(" separator="," close=")">
@ -116,6 +118,50 @@
</choose>
</if>
<!-- 条件 3按发布状态搜索 -->
<if test="isPublished != null and isPublished != ''">
<choose>
<when test="isPublished != 'all'">
AND is_published = CAST(#{isPublished} AS INT)
</when>
</choose>
</if>
and effect_flag=1
</where>
<!-- 动态排序条件 -->
<choose>
<when test="gmtCreate == 'asc' or gmtCreate == 'desc'">
ORDER BY gmt_create ${gmtCreate}
</when>
<when test="joinTime == 'asc' or joinTime == 'desc'">
ORDER BY join_time ${joinTime}
</when>
<when test="internEndDate == 'asc' or internEndDate == 'desc'">
ORDER BY internship_end_date ${internEndDate}
</when>
</choose>
LIMIT #{pageSize} OFFSET #{pageIndex}
</select>
<select id="getTotalCount" parameterType="com.electromagnetic.industry.software.data.manage.domain.boardservice.user.params.SearchKeyWords" resultType="Integer">
SELECT COUNT(*)
FROM ed_users
<where>
<!-- 条件 1按用户名或工号搜索 -->
<if test="keyWord != null and keyWord != ''">
(user_name LIKE CONCAT('%', #{keyWord}, '%') OR work_number LIKE CONCAT('%', #{keyWord}, '%'))
</if>
<!-- 条件 2按用户状态搜索 -->
<if test="userStatus != null and userStatus != ''">
<choose>
<when test="userStatus != 'all'">
AND user_status = #{userStatus}
</when>
</choose>
</if>
<!-- 条件 3按发布状态搜索 -->
<if test="isPublished != null and isPublished != ''">
<choose>
@ -124,6 +170,7 @@
</when>
</choose>
</if>
and effect_flag=1
</where>
<!-- 动态排序条件 -->
@ -140,7 +187,6 @@
</choose>
</select>
<select id="selectUserByWorkNumber" parameterType="String" resultMap="UserResultMap">
<include refid="selectUserVo" />
where work_number = #{workNumber}
@ -151,9 +197,13 @@
where user_id = #{userId}
</select>
<update id="deleteUser" parameterType="String">
<update id="deleteUser" parameterType="com.electromagnetic.industry.software.data.manage.domain.boardservice.user.params.UserDeleteKeyWords">
update ed_users
set effect_flag=0
<set>
effect_flag=0,
modifier=#{modifier},
modifier_name=#{modifierName}
</set>
where user_id = #{userId}
</update>
</mapper>

View File

@ -1,9 +1,13 @@
package com.electromagnetic.industry.software.data.manage.service.facade;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.electromagnetic.industry.software.data.manage.domain.boardservice.category.model.Category;
import com.electromagnetic.industry.software.data.manage.domain.boardservice.indicator.model.EDDataInfo;
import com.electromagnetic.industry.software.data.manage.domain.boardservice.indicator.model.EDDataPage;
import com.electromagnetic.industry.software.data.manage.domain.boardservice.indicator.parames.EDDataParams;
import com.electromagnetic.industry.software.data.manage.domain.boardservice.indicator.service.EDDataService;
import com.electromagnetic.industry.software.data.manage.domain.boardservice.user.service.CategoryService;
import com.electromagnetic.industry.software.data.manage.facade.EDDataFacade;
import com.electromagnetic.industry.software.data.manage.request.indicator.EDDataRequest;
import com.electromagnetic.industry.software.data.manage.response.indicator.EDDataPageResponse;
@ -11,15 +15,23 @@ import com.electromagnetic.industry.software.data.manage.service.mappers.EDDataM
import electromagnetic.data.framework.share.id.IdWorker;
import electromagnetic.data.framework.share.model.ElectromagneticResult;
import electromagnetic.data.framework.share.model.ElectromagneticResultUtil;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.*;
@Service
public class EDDataFacadeImpl implements EDDataFacade {
@Resource
private EDDataService edDataService;
private CategoryService categoryService;
/**
* 创建文件夹
@ -32,21 +44,73 @@ public class EDDataFacadeImpl implements EDDataFacade {
@Override
public ElectromagneticResult<Boolean> createFolder(EDDataRequest request) {
EDDataInfo edDataInfo = EDDataMappers.INSTANCE.getEDDataInfo(request);
edDataInfo.setCreator(request.getUserId());
edDataInfo.setCreatorName(request.getPersonName());
//edDataInfo.setModifier(request.getUserId());
edDataInfo.setModifierName(request.getPersonName());
edDataInfo.setModifier(IdWorker.getSnowFlakeIdString());
edDataInfo.setCategoryId(IdWorker.getSnowFlakeIdString());
edDataInfo.setDataNo(IdWorker.getSnowFlakeIdString());
// 临时数据设置
if(Boolean.TRUE) {
if (request.getUserId() == null || request.getUserId().isEmpty()) request.setUserId(IdWorker.getSnowFlakeIdString());
if (request.getUserName() == null || request.getUserName().isEmpty()) request.setUserName("user");
if (request.getName() == null || request.getName().isEmpty()) request.setName("testFolder");
//if (request.getParentId() == null || request.getParentId().isEmpty()) request.setParentId(IdWorker.getSnowFlakeIdString());
}
edDataInfo.setCreator(request.getUserId());
edDataInfo.setCreatorName(request.getUserName());
edDataInfo.setModifier(request.getUserId());
edDataInfo.setModifierName(request.getUserName());
edDataInfo.setCategoryId(request.getParentId());
edDataInfo.setDataName(request.getName());
edDataInfo.setNote(request.getNote());
edDataInfo.setDataId(IdWorker.getSnowFlakeIdString());
edDataInfo.setDataNo(edDataInfo.getDataId());
edDataInfo.setDataType("folder");
edDataInfo.setDataName("testFolder");
edDataInfo.setVersion("1.0.0");
edDataInfo.setDataStatus("publish");
edDataService.createFolder(edDataInfo);
String parentFolderPath = "";
// 获取上级目录的名称
if(!request.getParentId().isEmpty()) {
EDDataParams parames = new EDDataParams();
parames.setDataId(request.getParentId());
EDDataInfo edDataInfoParent = edDataService.getDataInfo(parames);
if(edDataInfoParent == null) {
ElectromagneticResultUtil.fail(HttpStatus.BAD_REQUEST.toString(),"上级文件夹为空!");
}
String folderNameParent = edDataInfoParent.getDataName();
String folderIdParent = edDataInfoParent.getDataId();
// 记录当前目录的文件夹路径和文件夹id路径
JSONObject implantJsonObject = JSON.parseObject(edDataInfoParent.getImplantJson());
if(implantJsonObject == null) {
implantJsonObject = new JSONObject();
parentFolderPath = folderNameParent;
implantJsonObject.put("folderPath", parentFolderPath);
implantJsonObject.put("folderIdPath", folderIdParent);
}
else
{
String folderPath = implantJsonObject.getString("folderPath");
String folderIdPath = implantJsonObject.getString("folderIdPath");
parentFolderPath = folderPath + "/" + folderNameParent;
implantJsonObject.put("folderPath", parentFolderPath);
implantJsonObject.put("folderIdPath", folderIdPath + "/" + folderIdParent);
}
String newImplantJson = implantJsonObject.toJSONString();
edDataInfo.setImplantJson(newImplantJson);
}
boolean isSuccess = edDataService.createDataInfo(edDataInfo);
if(isSuccess)
{
// 获取文件存储的文件夹路径
String storageDirectory = "D:/fileTemp/" + parentFolderPath + "/" + edDataInfo.getDataName();
if(!edDataService.checkFolderIsExist(storageDirectory)) {
edDataService.createMultiLevelDirectory(storageDirectory);
}
}
return ElectromagneticResultUtil.success(Boolean.TRUE);
}
@ -61,6 +125,7 @@ public class EDDataFacadeImpl implements EDDataFacade {
*/
public ElectromagneticResult<EDDataPageResponse> getDataInfoList(EDDataRequest request)
{
EDDataParams parames= EDDataMappers.INSTANCE.getEDDataParames(request);
//获取中支指标配置列表
EDDataPage edDataPage = edDataService.getDataInfoList(parames);
@ -70,19 +135,35 @@ public class EDDataFacadeImpl implements EDDataFacade {
}
/**
* 更新文件占用状态
* WISDOM_UPDATE_FILESTATUS
* /data/ed/file/updateFileStatus
* 更新文件信息
* WISDOM_UPDATE_FILEINFO
* /data/ed/file/updateFileInfo
* @param request
* @return
*/
public ElectromagneticResult<Boolean> updateFileStatus(EDDataRequest request)
public ElectromagneticResult<Boolean> updateFileInfo(EDDataRequest request)
{
EDDataParams parames= EDDataMappers.INSTANCE.getEDDataParames(request);
edDataService.updateFileStatus(parames);
edDataService.updateFileInfo(parames);
return ElectromagneticResultUtil.success(Boolean.TRUE);
}
/**
* 获取子文件数量
* WISDOM_GET_CHILDFILECOUNT
* /data/ed/file/getChildFileCount
* @param request
* @return
*/
public ElectromagneticResult<Map<String, Integer>> getChildFileCount(EDDataRequest request)
{
EDDataParams parames= EDDataMappers.INSTANCE.getEDDataParames(request);
Integer fileCount = edDataService.getChildFileCount(parames);
Map<String, Integer> result = new HashMap<>();
result.put("fileCount", fileCount);
return ElectromagneticResultUtil.success(result);
}
/**
* 上传
* WISDOM_UPLOAD
@ -93,8 +174,147 @@ public class EDDataFacadeImpl implements EDDataFacade {
public ElectromagneticResult<Boolean> upload(EDDataRequest request)
{
EDDataParams parames= EDDataMappers.INSTANCE.getEDDataParames(request);
edDataService.upload(parames);
return ElectromagneticResultUtil.success(Boolean.TRUE);
try {
// 获取目录编码ID
String categoryId = request.getParentId();
// 获取要上传的文件
MultipartFile fileInput = request.getFileData();
// 检查文件是否为空
if (fileInput == null || fileInput.isEmpty()) {
return ElectromagneticResultUtil.fail(HttpStatus.BAD_REQUEST.toString(),"上传的文件为空");
}
// 获取文件名
String fileFullName = fileInput.getOriginalFilename();
// 获取文件类型
String fileType = "";
// 获取文件名称
String fileName = "";
if (fileFullName.lastIndexOf(".") != -1 && fileFullName.lastIndexOf(".") != 0) {
fileType = fileFullName.substring(fileFullName.lastIndexOf(".") + 1);
fileName = fileFullName.substring(fileFullName.lastIndexOf("."));
}
// 获取文件存储的文件夹路径
String storageDirectory = "D:/fileTemp";
if(!edDataService.checkFolderIsExist(storageDirectory)) {
edDataService.createMultiLevelDirectory(storageDirectory);
}
String parentFolderPath = ""; //上级文件夹路径
String parentFolderIdPath = ""; //上级文件夹ID路径
String parentFolderName = ""; //上级文件夹名称
// 获取上级文件夹路径
{
EDDataParams folderParames = new EDDataParams();
folderParames.setDataId(categoryId);
EDDataInfo edDataInfoParent = edDataService.getDataInfo(folderParames);
if(edDataInfoParent == null) {
ElectromagneticResultUtil.fail(HttpStatus.BAD_REQUEST.toString(),"上级文件夹为空!");
}
JSONObject implantJsonObject = JSON.parseObject(edDataInfoParent.getImplantJson());
parentFolderPath = implantJsonObject.getString("folderPath");
parentFolderIdPath = implantJsonObject.getString("folderIdPath");
if(!parentFolderPath.isEmpty())
parentFolderPath += "/" ;
if(!parentFolderIdPath.isEmpty())
parentFolderIdPath += "/" ;
parentFolderPath += edDataInfoParent.getDataName();
parentFolderIdPath += edDataInfoParent.getDataId();
parentFolderName = edDataInfoParent.getDataName();
}
// 文件保存目录路径
String fileSavePath = storageDirectory + "/" + parentFolderPath;
String treeName = "目录树名称";
//String newFileName = treeName + "," + parentFolderName + "," + fileFullName;
String newFileName = fileFullName;
// 文件数据信息写到数据库
{
// 临时数据设置
if(Boolean.TRUE) {
if (request.getUserId() == null || request.getUserId().isEmpty()) request.setUserId(IdWorker.getSnowFlakeIdString());
if (request.getUserName() == null || request.getUserName().isEmpty()) request.setUserName("user");
//if (request.getName() == null || request.getName().isEmpty()) request.setName("testFolder");
if (request.getParentId() == null || request.getParentId().isEmpty()) request.setParentId(IdWorker.getSnowFlakeIdString());
}
// 创建新文件数据
EDDataInfo edDataInfo = new EDDataInfo();
edDataInfo.setCreator(request.getUserId());
edDataInfo.setCreatorName(request.getUserName());
edDataInfo.setModifier(request.getUserId());
edDataInfo.setModifierName(request.getUserName());
edDataInfo.setCategoryId(request.getParentId());
edDataInfo.setDataName(newFileName);
edDataInfo.setNote(request.getNote());
edDataInfo.setFileType(fileType);
edDataInfo.setGmtBatchUpload(request.getGmtBatchUpload());
edDataInfo.setDataId(IdWorker.getSnowFlakeIdString());
edDataInfo.setDataNo(edDataInfo.getDataId());
edDataInfo.setDataType("file");
edDataInfo.setVersion("1.0.0");
edDataInfo.setDataStatus("publish");
edDataInfo.setSaveStatus("saving");
JSONObject newImplantJsonObject = new JSONObject();
newImplantJsonObject.put("folderPath", parentFolderPath);
newImplantJsonObject.put("folderIdPath", parentFolderIdPath);
edDataInfo.setImplantJson(newImplantJsonObject.toJSONString());
boolean isSuccess = edDataService.createDataInfo(edDataInfo);
String userHome = System.getProperty("user.home");
File cacheDirectory = new File(userHome + "\\AppData\\Local\\Temp\\EDData\\Upload");
if (!cacheDirectory.exists()) {
cacheDirectory.mkdirs();
}
String cacheFolder = cacheDirectory.getAbsolutePath();
String cachePath = cacheFolder + "/" + newFileName;
System.out.println("文件缓存路径为: " + cacheDirectory.getAbsolutePath());
fileSavePath += "/" + newFileName;
// 这里可以添加将文件保存到本地磁盘或其他存储介质的逻辑
File saveFile = new File(cachePath);//fileSavePath
// 将文件保存到硬盘
fileInput.transferTo(saveFile);
EDDataParams fileParames = new EDDataParams();
fileParames.setDataId(edDataInfo.getDataId());
if(fileInput.getSize() == saveFile.length())
{
Path source = Paths.get(cachePath);
Path target = Paths.get(fileSavePath);
Files.move(source, target);
fileParames.setSaveStatus("success");
}
else
{
saveFile.delete();
fileParames.setSaveStatus("failure");
}
isSuccess = edDataService.updateFileInfo(fileParames);
}
// 如果文件上传成功返回成功消息
return ElectromagneticResultUtil.success(Boolean.TRUE);
} catch (Exception e) {
// 如果出现异常返回异常消息
return ElectromagneticResultUtil.fail(HttpStatus.INTERNAL_SERVER_ERROR.toString(),"文件上传失败" + e.getMessage());
}
}
/**
@ -104,13 +324,127 @@ public class EDDataFacadeImpl implements EDDataFacade {
* @param request
* @return
*/
public ElectromagneticResult<Boolean> download(EDDataRequest request)
public ElectromagneticResult<Map<String, List<String>>> download(EDDataRequest request)
{
EDDataParams parames= EDDataMappers.INSTANCE.getEDDataParames(request);
edDataService.download(parames);
return ElectromagneticResultUtil.success(Boolean.TRUE);
//EDDataParams parames= EDDataMappers.INSTANCE.getEDDataParames(request);
// 获取文件存储的文件夹路径
String storageDirectory = "D:/fileTemp";
EDDataParams parames = new EDDataParams();
List<String> dataPathArr = new ArrayList();
for(String dataId : request.getDataIdArr())
{
parames.setDataId(dataId);
EDDataInfo edDataInfo = edDataService.getDataInfo(parames);
if(edDataInfo != null)
{
JSONObject implantJsonObject = JSON.parseObject(edDataInfo.getImplantJson());
String filePath = implantJsonObject.getString("folderPath");
filePath = storageDirectory + "/" + filePath + "/" + edDataInfo.getDataName();
dataPathArr.add(filePath);
}
}
Map<String, List<String>> result = new HashMap<>();
result.put("urlArr", dataPathArr);
return ElectromagneticResultUtil.success(result);
}
/**
* 导出
* @param request
* @return
*/
@Override
public ElectromagneticResult<String> batchExport(EDDataRequest request) {
//1根据用户选择层级树编码查出所有文件和文件夹list
//2循环list将每个文件复制到新建目录并进行重命名命名规则目录树编码+,+文件夹编码有则填写无则为空+,+文件编码
//3打包新建为zip并根据生产下载地址域名+文件路径+文件
//4返回前端下载的地址
// **********在导出的过程中可能会出现有用户上传文件的情况
// 获取目录编码ID
String categoryId = request.getParentId();
// 获取缓存文件夹的绝对路径
String userHome = System.getProperty("user.home");
File cacheDirectory = new File(userHome + "\\AppData\\Local\\Temp\\EDData\\Export");
if (!cacheDirectory.exists()) {
cacheDirectory.mkdirs();
}
String cacheFolder = cacheDirectory.getAbsolutePath(); // 缓存文件夹的绝对路径
List<Category> categoryList = categoryService.selectAllCategories();
{
// 遍历客户端上传的
EDDataParams folderParames = new EDDataParams();
for (String dataId : request.getDataIdArr()) {
Category category = new Category();
category.setCategoryId(dataId);
categoryService.selectCategories(category);
//folderParames.setDataId(dataId);
//EDDataInfo edDataInfo = edDataService.getDataInfo(folderParames);
//if(edDataInfo != null)
//{
// JSONObject implantJsonObject = JSON.parseObject(edDataInfo.getImplantJson());
// String filePath = implantJsonObject.getString("folderPath");
// filePath = storageDirectory + "/" + filePath + "/" + edDataInfo.getDataName();
// dataPathArr.add(filePath);
//}
}
}
String parentFolderPath = ""; //上级文件夹路径
String parentFolderIdPath = ""; //上级文件夹ID路径
String parentFolderName = ""; //上级文件夹名称
// 获取上级文件夹路径
{
EDDataParams folderParames = new EDDataParams();
folderParames.setDataId(categoryId);
EDDataInfo edDataInfoParent = edDataService.getDataInfo(folderParames);
if(edDataInfoParent == null) {
ElectromagneticResultUtil.fail(HttpStatus.BAD_REQUEST.toString(),"上级文件夹为空!");
}
JSONObject implantJsonObject = JSON.parseObject(edDataInfoParent.getImplantJson());
parentFolderPath = implantJsonObject.getString("folderPath");
parentFolderIdPath = implantJsonObject.getString("folderIdPath");
if(!parentFolderPath.isEmpty())
parentFolderPath += "/" ;
if(!parentFolderIdPath.isEmpty())
parentFolderIdPath += "/" ;
parentFolderPath += edDataInfoParent.getDataName();
parentFolderIdPath += edDataInfoParent.getDataId();
parentFolderName = edDataInfoParent.getDataName();
}
return null;
}
/**
* 导入
* @param request
* @return
*/
@Override
public ElectromagneticResult<String> batchImport(EDDataRequest request) {
//1上传文件到指定目录并重命名
//2接下压缩包
//3扫码解压文件夹的所有文件
//4循环处理文件读取文件名称根据名称规则进行数据库查询匹配层级树文件夹和文件是否跳过
//5如果不存在则新建文件记录
//6并移动文件到上传目录
//7处理完成返回成功
return null;
}
}

View File

@ -3,6 +3,9 @@ package com.electromagnetic.industry.software.data.manage.service.facade.user;
import com.electromagnetic.industry.software.data.manage.common.ElectromagneticErrorEnum;
import com.electromagnetic.industry.software.data.manage.domain.boardservice.user.model.User;
import com.electromagnetic.industry.software.data.manage.domain.boardservice.user.model.UserLoginInfo;
import com.electromagnetic.industry.software.data.manage.domain.boardservice.user.params.PublishParam;
import com.electromagnetic.industry.software.data.manage.domain.boardservice.user.params.SearchKeyWords;
import com.electromagnetic.industry.software.data.manage.domain.boardservice.user.params.UserDeleteKeyWords;
import com.electromagnetic.industry.software.data.manage.domain.boardservice.user.service.TokenService;
import com.electromagnetic.industry.software.data.manage.domain.boardservice.user.service.UserService;
import com.electromagnetic.industry.software.data.manage.domain.boardservice.user.util.UserConstant;
@ -13,8 +16,10 @@ import com.electromagnetic.industry.software.data.manage.request.user.UserPublis
import com.electromagnetic.industry.software.data.manage.request.user.UserLoginRequest;
import com.electromagnetic.industry.software.data.manage.request.user.UserRequest;
import com.electromagnetic.industry.software.data.manage.response.user.SingleUserResponse;
import com.electromagnetic.industry.software.data.manage.response.user.UserLoginResponse;
import com.electromagnetic.industry.software.data.manage.response.user.UserSearchResponse;
import com.electromagnetic.industry.software.data.manage.service.mappers.UserMappers;
import com.github.pagehelper.PageInfo;
import electromagnetic.data.framework.share.id.IdWorker;
import electromagnetic.data.framework.share.model.ElectromagneticResult;
import electromagnetic.data.framework.share.model.ElectromagneticResultUtil;
@ -40,14 +45,17 @@ public class UserFacadeImpl implements UserFacade {
* @return
*/
@Override
public ElectromagneticResult<String> login(UserLoginRequest loginRequest) {
public ElectromagneticResult<UserLoginResponse> login(UserLoginRequest loginRequest) {
UserLoginInfo info = UserMappers.INSTANCE.getUserLoginRequestToModel(loginRequest);
String decodePwd = AESUtils.decrypt(info.getUserPwd(), UserConstant.SECRET_KEY);
User user = userService.getUserByWorkNumber(info.getWorkNumber());
if ( user!=null && userService.matchPassword(user, decodePwd)) {
String tokenStr = tokenService.createToken(info);
tokenService.createUserToken(user, tokenStr);
return ElectromagneticResultUtil.success(tokenStr);
UserLoginResponse userLoginResponse = new UserLoginResponse();
userLoginResponse.setToken(tokenStr);
userLoginResponse.setUserId(user.getUserId());
return ElectromagneticResultUtil.success(userLoginResponse);
}
return ElectromagneticResultUtil.fail("500","用户不存在/密码错误");
}
@ -87,7 +95,8 @@ public class UserFacadeImpl implements UserFacade {
*/
@Override
public ElectromagneticResult<Boolean> publishUser(UserPublishRequest userPublishRequest){
return ElectromagneticResultUtil.success(userService.publishUser(userPublishRequest.getUserIds()));
PublishParam model = UserMappers.INSTANCE.getUserPublishRequestToModel(userPublishRequest);
return ElectromagneticResultUtil.success(userService.publishUser(model));
}
/**
@ -98,13 +107,41 @@ public class UserFacadeImpl implements UserFacade {
*/
@Override
public ElectromagneticResult<?> validateWorkNum(UserWorkNumRequest userWorkNumRequest) {
// 请求对象转换为模型对象
// 前端请求对象转换为模型对象包含userId和userWorkNum
User user = UserMappers.INSTANCE.getUserWorkNumRequestToModel(userWorkNumRequest);
// 尝试根据工号获取用户
User existingUser = userService.getUserByWorkNumber(user.getWorkNumber());
// 根据是否存在具有相同工号的用户来确定工号的唯一性
boolean isWorkNumberUnique = (existingUser == null);
return ElectromagneticResultUtil.success(Boolean.valueOf(isWorkNumberUnique));
//根据请求对象的userId判断当前处于什么状态
if(user.getUserId()==null){
//userId为空表示是新增用户阶段
//判断数据库中有无该工号对应的用户
User existingUser = userService.getUserByWorkNumber(user.getWorkNumber());
//如果有该用户就返回false,如果没有(==null)就返回true
boolean isWorkNumberUnique = (existingUser == null);
return ElectromagneticResultUtil.success(isWorkNumberUnique);
}else{
//userId不为空表示是编辑用户阶段
//请求对象的userWordNum在数据库中对应的user
User existingUser = userService.getUserByWorkNumber(user.getWorkNumber());
//判断请求对象的userId对应的user和请求对象的userWordNum在数据库中对应的user是否为用一个
if(existingUser!=null){
//请求对象的userWordNum在数据库中对应的user与请求对象的userId对应的user是否为同一个
if(user.getUserId().equals(existingUser.getUserId())){
// 如果获取到的用户ID与当前编辑的用户ID相同说明工号未改变直接返回true
return ElectromagneticResultUtil.success(true);
}else{
// 如果获取到的用户ID与当前编辑的用户ID不同说明工号已改变需要判断新工号是否唯一
// 如果根据新工号获取不到用户说明新工号唯一
boolean isWorkNumberUnique = (userService.getUserByWorkNumber(user.getWorkNumber()) == null);
return ElectromagneticResultUtil.success(isWorkNumberUnique);
}
}else{
//请求对象的userWordNum在数据库中不存在对应的user
return ElectromagneticResultUtil.success(true);
}
}
}
/**
@ -126,10 +163,14 @@ public class UserFacadeImpl implements UserFacade {
*/
@Override
public ElectromagneticResult<UserSearchResponse> searchUser(SearchUserRequest searchUserRequest){
List<User> userList = userService.searchUser(UserMappers.INSTANCE.getSearchKeywordsRequestToModel(searchUserRequest));
searchUserRequest.setPageIndex((searchUserRequest.getPageIndex()-1)*searchUserRequest.getPageSize());
SearchKeyWords model = UserMappers.INSTANCE.getSearchKeywordsRequestToModel(searchUserRequest);
List<User> userList = userService.searchUser(model);
int totalCount = userService.getTotalCount(model);
List<SingleUserResponse> singleUserResponseList = UserMappers.INSTANCE.userListToResponseList(userList);
UserSearchResponse userSearchResponse = new UserSearchResponse();
userSearchResponse.setUserList(singleUserResponseList);
userSearchResponse.setTotalCount(totalCount);
return ElectromagneticResultUtil.success(userSearchResponse);
}
@ -141,15 +182,17 @@ public class UserFacadeImpl implements UserFacade {
@Override
public ElectromagneticResult<?> deleteUser(UserDeleteRequest userDeleteRequest) {
// 将请求对象转换为模型对象
User user = UserMappers.INSTANCE.getUserDeleteRequestToModel(userDeleteRequest);
UserDeleteKeyWords userDeleteKeyWords = UserMappers.INSTANCE.getUserDeleteRequestToModel(userDeleteRequest);
// 检查用户是否已经被逻辑删除
User existingUser = userService.getSingleUser(user.getUserId());
User existingUser = userService.getSingleUser(userDeleteKeyWords.getUserId());
if(existingUser != null && existingUser.getEffectFlag()==0){
// 如果用户已经被逻辑删除在这个假设中0 表示已删除则不进行任何操作或返回错误
return ElectromagneticResultUtil.fail(ElectromagneticErrorEnum. FINE_DELETE_USER_ERROR);
}
if(existingUser!=null && existingUser.getEffectFlag()==1){// 在这个假设中1 表示未删除
return ElectromagneticResultUtil.success(userService.deleteUser(user.getUserId()));
return ElectromagneticResultUtil.success(userService.deleteUser(userDeleteKeyWords));
}else{
// 如果用户不存在理论上不应该发生除非数据库状态不一致则返回错误
return ElectromagneticResultUtil.fail(ElectromagneticErrorEnum. FINE_DELETE_USER_ERROR);

View File

@ -3,8 +3,10 @@
*/
package com.electromagnetic.industry.software.data.manage.service.mappers;
import com.electromagnetic.industry.software.data.manage.domain.boardservice.user.params.PublishParam;
import com.electromagnetic.industry.software.data.manage.domain.boardservice.user.params.SearchKeyWords;
import com.electromagnetic.industry.software.data.manage.domain.boardservice.user.model.User;
import com.electromagnetic.industry.software.data.manage.domain.boardservice.user.params.UserDeleteKeyWords;
import com.electromagnetic.industry.software.data.manage.request.user.UserModiRequest;
import com.electromagnetic.industry.software.data.manage.request.user.*;
import com.electromagnetic.industry.software.data.manage.domain.boardservice.user.model.UserLoginInfo;
@ -45,6 +47,14 @@ public interface UserMappers {
*/
SingleUserResponse getSingleUserToResponse(User user);
/**
* 用户发布request转用户发布参数模型
* @param userPublishRequest
* @return
*/
PublishParam getUserPublishRequestToModel(UserPublishRequest userPublishRequest);
/**
* 获取单条用户信息Request转用户模型
* @param searchUserRequest
@ -78,7 +88,7 @@ public interface UserMappers {
* @param userDeleteRequest
* @return
*/
User getUserDeleteRequestToModel(UserDeleteRequest userDeleteRequest);
UserDeleteKeyWords getUserDeleteRequestToModel(UserDeleteRequest userDeleteRequest);
}

View File

@ -2,11 +2,14 @@ package com.electromagnetic.industry.software.data.manage.service.mappers;
import com.electromagnetic.industry.software.data.manage.domain.boardservice.user.model.User;
import com.electromagnetic.industry.software.data.manage.domain.boardservice.user.model.UserLoginInfo;
import com.electromagnetic.industry.software.data.manage.domain.boardservice.user.params.PublishParam;
import com.electromagnetic.industry.software.data.manage.domain.boardservice.user.params.SearchKeyWords;
import com.electromagnetic.industry.software.data.manage.domain.boardservice.user.params.UserDeleteKeyWords;
import com.electromagnetic.industry.software.data.manage.request.user.SearchUserRequest;
import com.electromagnetic.industry.software.data.manage.request.user.UserDeleteRequest;
import com.electromagnetic.industry.software.data.manage.request.user.UserLoginRequest;
import com.electromagnetic.industry.software.data.manage.request.user.UserModiRequest;
import com.electromagnetic.industry.software.data.manage.request.user.UserPublishRequest;
import com.electromagnetic.industry.software.data.manage.request.user.UserRequest;
import com.electromagnetic.industry.software.data.manage.request.user.UserWorkNumRequest;
import com.electromagnetic.industry.software.data.manage.response.user.SingleUserResponse;
@ -16,8 +19,8 @@ import javax.annotation.Generated;
@Generated(
value = "org.mapstruct.ap.MappingProcessor",
date = "2024-11-20T10:52:53+0800",
comments = "version: 1.4.1.Final, compiler: javac, environment: Java 1.8.0_271 (Oracle Corporation)"
date = "2024-11-21T15:49:09+0800",
comments = "version: 1.4.1.Final, compiler: javac, environment: Java 1.8.0_281 (Oracle Corporation)"
)
public class UserMappersImpl implements UserMappers {
@ -40,6 +43,8 @@ public class UserMappersImpl implements UserMappers {
user.setInternshipEndDate( userRequest.getInternshipEndDate() );
user.setCreator( userRequest.getCreator() );
user.setCreatorName( userRequest.getCreatorName() );
user.setModifier( userRequest.getModifier() );
user.setModifierName( userRequest.getModifierName() );
return user;
}
@ -90,6 +95,24 @@ public class UserMappersImpl implements UserMappers {
return singleUserResponse;
}
@Override
public PublishParam getUserPublishRequestToModel(UserPublishRequest userPublishRequest) {
if ( userPublishRequest == null ) {
return null;
}
PublishParam publishParam = new PublishParam();
List<String> list = userPublishRequest.getUserIds();
if ( list != null ) {
publishParam.setUserIds( new ArrayList<String>( list ) );
}
publishParam.setModifier( userPublishRequest.getModifier() );
publishParam.setModifierName( userPublishRequest.getModifierName() );
return publishParam;
}
@Override
public SearchKeyWords getSearchKeywordsRequestToModel(SearchUserRequest searchUserRequest) {
if ( searchUserRequest == null ) {
@ -104,6 +127,8 @@ public class UserMappersImpl implements UserMappers {
searchKeyWords.setGmtCreate( searchUserRequest.getGmtCreate() );
searchKeyWords.setJoinTime( searchUserRequest.getJoinTime() );
searchKeyWords.setInternEndDate( searchUserRequest.getInternEndDate() );
searchKeyWords.setPageIndex( searchUserRequest.getPageIndex() );
searchKeyWords.setPageSize( searchUserRequest.getPageSize() );
return searchKeyWords;
}
@ -161,16 +186,17 @@ public class UserMappersImpl implements UserMappers {
}
@Override
public User getUserDeleteRequestToModel(UserDeleteRequest userDeleteRequest) {
public UserDeleteKeyWords getUserDeleteRequestToModel(UserDeleteRequest userDeleteRequest) {
if ( userDeleteRequest == null ) {
return null;
}
User user = new User();
UserDeleteKeyWords userDeleteKeyWords = new UserDeleteKeyWords();
user.setUserId( userDeleteRequest.getUserId() );
user.setUserName( userDeleteRequest.getUserName() );
userDeleteKeyWords.setUserId( userDeleteRequest.getUserId() );
userDeleteKeyWords.setModifier( userDeleteRequest.getModifier() );
userDeleteKeyWords.setModifierName( userDeleteRequest.getModifierName() );
return user;
return userDeleteKeyWords;
}
}