parent
c9a8884386
commit
a2458e3871
@ -0,0 +1,93 @@ |
||||
package com.bupt.note.Controller; |
||||
|
||||
import com.bupt.note.Repository.FileRepository; |
||||
import com.bupt.note.ResponseData.ResponseData; |
||||
import com.bupt.note.ResponseData.ResponseDataUtil; |
||||
import com.bupt.note.dto.FileForm; |
||||
import org.slf4j.Logger; |
||||
import org.slf4j.LoggerFactory; |
||||
import org.springframework.beans.factory.annotation.Autowired; |
||||
import org.springframework.beans.factory.annotation.Value; |
||||
import org.springframework.http.MediaType; |
||||
import org.springframework.util.ResourceUtils; |
||||
import org.springframework.web.bind.annotation.*; |
||||
import org.springframework.web.multipart.MultipartFile; |
||||
|
||||
import java.io.File; |
||||
import java.io.IOException; |
||||
import java.net.URLDecoder; |
||||
import java.nio.charset.StandardCharsets; |
||||
import java.util.Optional; |
||||
import java.util.UUID; |
||||
|
||||
/** |
||||
* 论文文本管理接口 |
||||
*/ |
||||
@RestController |
||||
@RequestMapping(value = "/v1/api/file") |
||||
public class FileController { |
||||
|
||||
@Value("${spring.resources.static-locations}") |
||||
private String txtPath; |
||||
|
||||
private static Logger logger = LoggerFactory.getLogger(FileController.class); |
||||
|
||||
@Autowired |
||||
private FileRepository fileRepository; |
||||
|
||||
//上传论文文本
|
||||
@PostMapping("upload") |
||||
public ResponseData upload(FileForm fileForm){ |
||||
MultipartFile file=fileForm.getFile(); |
||||
if(file!=null&& MediaType.TEXT_PLAIN_VALUE.equals(file.getContentType())){ |
||||
|
||||
File txtFile; |
||||
File txtDir; |
||||
try { |
||||
txtDir=new File(URLDecoder.decode(ResourceUtils.getURL("classpath:").getPath(), StandardCharsets.UTF_8) + txtPath.replace("classpath:/", "")); |
||||
|
||||
if(!txtDir.exists()&&txtDir.mkdirs()){ |
||||
logger.info("成功初始化上传论文目录:"+txtDir.getAbsolutePath()); |
||||
} |
||||
txtFile=new File(txtDir, UUID.randomUUID()+".txt"); |
||||
logger.debug("论文保存到"+txtFile.getAbsolutePath()); |
||||
file.transferTo(txtFile); |
||||
com.bupt.note.Model.File f=new com.bupt.note.Model.File(); |
||||
f.setFilePath(txtFile.getAbsolutePath()); |
||||
fileRepository.save(f); |
||||
return ResponseDataUtil.buildSuccess(f.getId()); |
||||
} catch (IOException e) { |
||||
logger.error(String.valueOf(e)); |
||||
e.printStackTrace(); |
||||
return ResponseDataUtil.buildError(); |
||||
} |
||||
}else{ |
||||
return ResponseDataUtil.buildError(); |
||||
} |
||||
} |
||||
|
||||
/** |
||||
* 删除论文文本文件 |
||||
* @param id 文件id |
||||
* @return |
||||
*/ |
||||
@DeleteMapping("remove/{id}") |
||||
public ResponseData remove(@PathVariable Long id){ |
||||
if(fileRepository.existsById(id)){ |
||||
Optional<com.bupt.note.Model.File> f=fileRepository.findById(id); |
||||
if(f.isPresent()){ |
||||
File txtFile=new File(f.get().getFilePath()); |
||||
if(txtFile.exists()&&txtFile.delete()) { |
||||
fileRepository.deleteById(id); |
||||
return ResponseDataUtil.buildSuccess(); |
||||
}else{ |
||||
return ResponseDataUtil.buildError(); |
||||
} |
||||
}else { |
||||
return ResponseDataUtil.buildError(); |
||||
} |
||||
}else{ |
||||
return ResponseDataUtil.buildError(); |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,40 @@ |
||||
package com.bupt.note.Controller; |
||||
|
||||
import com.bupt.note.Model.Paper; |
||||
import com.bupt.note.Repository.PapaerRepository; |
||||
import com.bupt.note.ResponseData.ResponseData; |
||||
import com.bupt.note.ResponseData.ResponseDataUtil; |
||||
import com.bupt.note.dto.UploadPaper; |
||||
import org.apache.commons.lang3.StringUtils; |
||||
import org.springframework.beans.factory.annotation.Autowired; |
||||
import org.springframework.web.bind.annotation.*; |
||||
|
||||
/** |
||||
* 论文管理接口 |
||||
*/ |
||||
@RestController |
||||
@RequestMapping(value = "/v1/api/paper") |
||||
public class PaperController { |
||||
|
||||
@Autowired |
||||
private PapaerRepository papaerRepository; |
||||
|
||||
@PostMapping("upload") |
||||
public ResponseData upload(@RequestBody UploadPaper uploadPaper, @CookieValue("user") String username) { |
||||
if (uploadPaper.getFileId() != null && uploadPaper.getYear() != null && StringUtils.isNoneEmpty(uploadPaper.getType(), |
||||
uploadPaper.getAuthor(), uploadPaper.getProfession(), uploadPaper.getSchool(), uploadPaper.getSummary(),uploadPaper.getTag())){ |
||||
Paper paper = uploadPaper.toPaper(); |
||||
paper.setUserName(username); |
||||
papaerRepository.save(paper); |
||||
if(papaerRepository.existsById(paper.getId())){ |
||||
return ResponseDataUtil.buildSuccess(); |
||||
}else{ |
||||
return ResponseDataUtil.buildError(); |
||||
} |
||||
}else{ |
||||
return ResponseDataUtil.buildError(); |
||||
} |
||||
} |
||||
|
||||
|
||||
} |
@ -1,32 +0,0 @@ |
||||
package com.bupt.note.Controller; |
||||
|
||||
import com.bupt.note.Model.User; |
||||
import com.bupt.note.Repository.UserRepository; |
||||
import com.bupt.note.ResponseData.ResponseData; |
||||
import com.bupt.note.ResponseData.ResponseDataUtil; |
||||
import com.bupt.note.ResponseData.ResultEnums; |
||||
import com.bupt.note.dto.UserForm; |
||||
import org.springframework.beans.factory.annotation.Autowired; |
||||
import org.springframework.web.bind.annotation.RequestBody; |
||||
import org.springframework.web.bind.annotation.RequestMapping; |
||||
import org.springframework.web.bind.annotation.RestController; |
||||
|
||||
@RestController |
||||
@RequestMapping(value = "/v1/api") |
||||
public class SignUpController { |
||||
|
||||
@Autowired |
||||
UserRepository userRepository; |
||||
|
||||
@RequestMapping("/sign_up") |
||||
public ResponseData signUp(@RequestBody UserForm user) { |
||||
// 用来创建User(即注册)
|
||||
User exist = userRepository.findByUserName(user.getUserName()); |
||||
if (exist == null) { |
||||
userRepository.save(user.getUser()); |
||||
User u = userRepository.findByUserName(user.getUserName()); |
||||
return ResponseDataUtil.buildSuccess(u); |
||||
} |
||||
return ResponseDataUtil.buildError(ResultEnums.ErrUserNameConflict); |
||||
} |
||||
} |
@ -0,0 +1,114 @@ |
||||
package com.bupt.note.Model; |
||||
|
||||
import javax.persistence.*; |
||||
|
||||
/** |
||||
* 论文实体 |
||||
*/ |
||||
@Entity |
||||
@Table(name = "sys_paper") |
||||
public class Paper { |
||||
|
||||
private Long id; |
||||
private String type; |
||||
private String author; |
||||
private String profession; |
||||
private String school; |
||||
private Integer year; |
||||
private String summary; |
||||
private String tag; |
||||
private Long fileId; |
||||
private String userName; |
||||
|
||||
@Id |
||||
@GeneratedValue(strategy = GenerationType.IDENTITY) |
||||
public Long getId() { |
||||
return id; |
||||
} |
||||
|
||||
public void setId(Long id) { |
||||
this.id = id; |
||||
} |
||||
|
||||
@Column(nullable = false) |
||||
public String getType() { |
||||
return type; |
||||
} |
||||
|
||||
public void setType(String type) { |
||||
this.type = type; |
||||
} |
||||
|
||||
@Column(nullable = false) |
||||
public String getAuthor() { |
||||
return author; |
||||
} |
||||
|
||||
public void setAuthor(String author) { |
||||
this.author = author; |
||||
} |
||||
|
||||
@Column(nullable = false) |
||||
public String getProfession() { |
||||
return profession; |
||||
} |
||||
|
||||
public void setProfession(String profession) { |
||||
this.profession = profession; |
||||
} |
||||
|
||||
@Column(nullable = false) |
||||
public String getSchool() { |
||||
return school; |
||||
} |
||||
|
||||
public void setSchool(String school) { |
||||
this.school = school; |
||||
} |
||||
|
||||
@Column(nullable = false) |
||||
public Integer getYear() { |
||||
return year; |
||||
} |
||||
|
||||
public void setYear(Integer year) { |
||||
this.year = year; |
||||
} |
||||
|
||||
@Column(nullable = false) |
||||
public String getSummary() { |
||||
return summary; |
||||
} |
||||
|
||||
public void setSummary(String summary) { |
||||
this.summary = summary; |
||||
} |
||||
|
||||
@Column(nullable = false) |
||||
public String getTag() { |
||||
return tag; |
||||
} |
||||
|
||||
public void setTag(String tag) { |
||||
this.tag = tag; |
||||
} |
||||
|
||||
@Column(nullable = false) |
||||
public Long getFileId() { |
||||
return fileId; |
||||
} |
||||
|
||||
public void setFileId(Long fileId) { |
||||
this.fileId = fileId; |
||||
} |
||||
|
||||
@Column(nullable = false) |
||||
public String getUserName() { |
||||
return userName; |
||||
} |
||||
|
||||
public void setUserName(String userName) { |
||||
this.userName = userName; |
||||
} |
||||
} |
||||
|
@ -0,0 +1,7 @@ |
||||
package com.bupt.note.Repository; |
||||
|
||||
import com.bupt.note.Model.Paper; |
||||
import org.springframework.data.jpa.repository.JpaRepository; |
||||
|
||||
public interface PapaerRepository extends JpaRepository<Paper, Long> { |
||||
} |
@ -0,0 +1,18 @@ |
||||
package com.bupt.note.dto; |
||||
|
||||
import org.springframework.web.multipart.MultipartFile; |
||||
|
||||
public class FileForm { |
||||
|
||||
|
||||
private MultipartFile file; |
||||
|
||||
public MultipartFile getFile() { |
||||
return file; |
||||
} |
||||
|
||||
public void setFile(MultipartFile file) { |
||||
this.file = file; |
||||
} |
||||
|
||||
} |
@ -0,0 +1,91 @@ |
||||
package com.bupt.note.dto; |
||||
|
||||
import com.bupt.note.Model.Paper; |
||||
|
||||
public class UploadPaper { |
||||
private String type; |
||||
private String author; |
||||
private String profession; |
||||
private String school; |
||||
private Integer year; |
||||
private String summary; |
||||
private String tag; |
||||
private Long fileId; |
||||
|
||||
public String getType() { |
||||
return type; |
||||
} |
||||
|
||||
public void setType(String type) { |
||||
this.type = type; |
||||
} |
||||
|
||||
public String getAuthor() { |
||||
return author; |
||||
} |
||||
|
||||
public void setAuthor(String author) { |
||||
this.author = author; |
||||
} |
||||
|
||||
public String getProfession() { |
||||
return profession; |
||||
} |
||||
|
||||
public void setProfession(String profession) { |
||||
this.profession = profession; |
||||
} |
||||
|
||||
public String getSchool() { |
||||
return school; |
||||
} |
||||
|
||||
public void setSchool(String school) { |
||||
this.school = school; |
||||
} |
||||
|
||||
public Integer getYear() { |
||||
return year; |
||||
} |
||||
|
||||
public void setYear(Integer year) { |
||||
this.year = year; |
||||
} |
||||
|
||||
public String getSummary() { |
||||
return summary; |
||||
} |
||||
|
||||
public void setSummary(String summary) { |
||||
this.summary = summary; |
||||
} |
||||
|
||||
public String getTag() { |
||||
return tag; |
||||
} |
||||
|
||||
public void setTag(String tag) { |
||||
this.tag = tag; |
||||
} |
||||
|
||||
public Long getFileId() { |
||||
return fileId; |
||||
} |
||||
|
||||
public void setFileId(Long fileId) { |
||||
this.fileId = fileId; |
||||
} |
||||
|
||||
public Paper toPaper(){ |
||||
Paper paper=new Paper(); |
||||
paper.setType(this.type); |
||||
paper.setAuthor(this.author); |
||||
paper.setProfession(this.profession); |
||||
paper.setSchool(this.school); |
||||
paper.setYear(this.year); |
||||
paper.setSummary(this.summary); |
||||
paper.setTag(this.tag); |
||||
paper.setFileId(this.fileId); |
||||
return paper; |
||||
} |
||||
} |
Loading…
Reference in new issue