lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/controller/DocInfoController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/entity/FileDocInfo.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/DocInfoMapper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/IDocInfoService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/DocInfoServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/controller/DocInfoController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,78 @@ package org.jeecg.modules.system.controller; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.jeecg.common.api.vo.Result; import org.jeecg.common.aspect.annotation.AutoLog; import org.jeecg.common.system.base.controller.JeecgController; import org.jeecg.common.system.query.QueryGenerator; import org.jeecg.modules.system.entity.FileDocInfo; import org.jeecg.modules.system.service.IDocInfoService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @Slf4j @Api(tags = "ææ¡£è¡¨") @RestController @RequestMapping("/nc/doc") public class DocInfoController extends JeecgController<FileDocInfo, IDocInfoService> { @Autowired private IDocInfoService docInfoService; /** * å页å表æ¥è¯¢ * @param docInfo * @param pageNo * @param pageSize * @param req * @return */ @RequestMapping(value = "/list", method = RequestMethod.GET) public Result<IPage<FileDocInfo>> queryPageList(FileDocInfo docInfo, @RequestParam(name="pageNo", defaultValue="1") Integer pageNo, @RequestParam(name="pageSize", defaultValue="10") Integer pageSize, HttpServletRequest req) { Result<IPage<FileDocInfo>> result = new Result<IPage<FileDocInfo>>(); QueryWrapper<FileDocInfo> queryWrapper = QueryGenerator.initQueryWrapper(docInfo, req.getParameterMap()); Page<FileDocInfo> page = new Page<FileDocInfo>(pageNo, pageSize); IPage<FileDocInfo> pageList = docInfoService.page(page, queryWrapper); result.setSuccess(true); result.setResult(pageList); return result; } @AutoLog(value = "ææ¡£è¡¨-å¯¼å ¥ææ¡£è¿å£") @ApiOperation(value = "ææ¡£è¡¨-å¯¼å ¥ææ¡£è¿å£", notes = "ææ¡£è¡¨-å¯¼å ¥ææ¡£è¿å£") @PostMapping("/add") public Result<?> addDocInfo(@RequestParam("file") MultipartFile file) { boolean b = docInfoService.addDocInfo(file); if(!b) return Result.error("æä½å¤±è´¥ï¼"); return Result.ok("æä½æåï¼"); } @AutoLog(value = "ææ¡£è¡¨-å é¤ææ¡£ä¿¡æ¯") @ApiOperation(value = "ææ¡£è¡¨-å é¤ææ¡£ä¿¡æ¯", notes = "ææ¡£è¡¨-å é¤ææ¡£ä¿¡æ¯") @DeleteMapping("/delete") public Result<?> deleteDocInfo(@RequestParam("id") String id) { boolean b = docInfoService.deleteDocInfo(id); if(!b) return Result.error("æä½å¤±è´¥ï¼"); return Result.ok("æä½æåï¼"); } @AutoLog(value = "æä»¶è¡¨-ææ¡£ä¸è½½") @ApiOperation(value = "æä»¶è¡¨-ææ¡£ä¸è½½", notes = "æä»¶è¡¨-ææ¡£ä¸è½½") @GetMapping("/download") public Result<?> downloadDocFile(@RequestParam("id") String id, HttpServletResponse response) { return docInfoService.downloadDocFile(response, id); } } lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/entity/FileDocInfo.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,67 @@ package org.jeecg.modules.system.entity; import com.baomidou.mybatisplus.annotation.*; import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonIgnore; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.NoArgsConstructor; import org.jeecg.common.aspect.annotation.Dict; import org.jeecgframework.poi.excel.annotation.Excel; import java.util.Date; /** * @Description: ææ¡£ * @author clown */ @Data @NoArgsConstructor @TableName(value = "file_doc_info") public class FileDocInfo { @TableId(value = "id") private String id; /**æä»¶åç§°*/ @Excel(name = "æä»¶åç§°", width = 15) @ApiModelProperty(value = "æä»¶åç§°") private String fileName; /**æä»¶å å¯åçåç§°*/ @Excel(name = "æä»¶å å¯åçåç§°", width = 15) @ApiModelProperty(value = "æä»¶å å¯åçåç§°") private String fileEncodeName; /**æä»¶è·¯å¾*/ @Excel(name = "æä»¶è·¯å¾", width = 15) @ApiModelProperty(value = "æä»¶è·¯å¾") private String filePath; /**æä»¶å¤§å°*/ @Excel(name = "æä»¶å¤§å°", width = 15) @ApiModelProperty(value = "æä»¶å¤§å°") private Long fileSize; /**æä»¶åç¼*/ @Excel(name = "æä»¶åç¼", width = 15) @ApiModelProperty(value = "æä»¶åç¼") private String fileSuffix; @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8") @TableField(value = "create_time", fill = FieldFill.INSERT) private Date createTime; @TableField(value = "update_time", fill = FieldFill.UPDATE) @JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8") private Date updateTime; @TableField(value = "create_by",fill = FieldFill.INSERT) @Dict(dictTable = "sys_user", dicCode = "username", dicText = "realname") private String createBy; @TableField(value = "update_by", fill = FieldFill.UPDATE) @Dict(dictTable = "sys_user", dicCode = "username", dicText = "realname") private String updateBy; @JsonIgnore @TableLogic @TableField(value = "delete_flag", select = false) private Integer deleteFlag = 0; } lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/mapper/DocInfoMapper.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,7 @@ package org.jeecg.modules.system.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.jeecg.modules.system.entity.FileDocInfo; public interface DocInfoMapper extends BaseMapper<FileDocInfo> { } lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/IDocInfoService.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,34 @@ package org.jeecg.modules.system.service; import com.baomidou.mybatisplus.extension.service.IService; import org.jeecg.common.api.vo.Result; import org.jeecg.modules.system.entity.FileDocInfo; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public interface IDocInfoService extends IService<FileDocInfo> { /** * å¯¼å ¥ææ¡£è¿å£ * @param file * @return */ boolean addDocInfo(MultipartFile file); /** * å é¤ææ¡£ä¿¡æ¯ * @param id * @return */ boolean deleteDocInfo(String id); /** * ææ¡£ä¸è½½ * @param response * @param id * @return */ Result<?> downloadDocFile(HttpServletResponse response, String id); } lxzn-module-system/lxzn-system-biz/src/main/java/org/jeecg/modules/system/service/impl/DocInfoServiceImpl.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,81 @@ package org.jeecg.modules.system.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.CollectionUtils; import com.baomidou.mybatisplus.core.toolkit.IdWorker; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.apache.commons.lang3.StringUtils; import org.jeecg.common.api.vo.FileUploadResult; import org.jeecg.common.api.vo.Result; import org.jeecg.common.exception.ExceptionCast; import org.jeecg.common.exception.JeecgBootException; import org.jeecg.common.util.FileUtil; import org.jeecg.modules.system.entity.FileDocInfo; import org.jeecg.modules.system.mapper.DocInfoMapper; import org.jeecg.modules.system.service.IDocInfoService; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.util.List; @Service public class DocInfoServiceImpl extends ServiceImpl<DocInfoMapper, FileDocInfo> implements IDocInfoService { @Override public boolean addDocInfo(MultipartFile file) { if (file == null || file.isEmpty()) { throw new JeecgBootException("鿳忰"); } FileUploadResult fileUploadResult = FileUtil.uploadFile(file); if(fileUploadResult == null) throw new JeecgBootException("ææ¡£å¯¼å ¥å¤±è´¥"); String fileName = FileUtil.getFilenameNonSuffix(file.getOriginalFilename()); List<FileDocInfo> fileDocInfoList = this.list(new LambdaQueryWrapper<FileDocInfo>().eq(FileDocInfo::getFileName, fileName)); if (CollectionUtils.isNotEmpty(fileDocInfoList)) throw new JeecgBootException("è¯¥ææ¡£å·²åå¨"); FileDocInfo docInfo = new FileDocInfo(); String docId = IdWorker.getIdStr(); docInfo.setId(docId); docInfo.setFileName(fileUploadResult.getFileName()); docInfo.setFilePath(fileUploadResult.getFilePath()); docInfo.setFileEncodeName(fileUploadResult.getFileEncodeName()); docInfo.setFileSize(fileUploadResult.getFileSize()); docInfo.setFileSuffix(fileUploadResult.getFileSuffix()); return super.save(docInfo); } @Override public boolean deleteDocInfo(String id) { if(StringUtils.isBlank(id)) throw new JeecgBootException("鿳忰"); FileDocInfo en = super.getById(id); if(en == null) throw new JeecgBootException("æªæ¥è¯¢å°æä»¶ä¿¡æ¯"); FileUtil.deleteFile(en.getFilePath(), en.getFileName()); return super.removeById(id); } @Override public Result<?> downloadDocFile(HttpServletResponse response, String id) { if(!StringUtils.isBlank(id)) throw new JeecgBootException("鿳忰"); FileDocInfo en = super.getById(id); if(en == null) throw new JeecgBootException("æªæ¥è¯¢å°æä»¶ä¿¡æ¯"); String fileName; if(StringUtils.isNotBlank(en.getFileSuffix())) { fileName = en.getFileName() + "." + en.getFileSuffix(); }else { fileName = en.getFileName(); } FileUtil.downLoadFile(response, en.getFileEncodeName(), en.getFilePath(), fileName); return null; } }