gunshi-project-ss/src/main/java/com/gunshi/project/hsz/controller/AbstractCommonFileControlle...

102 lines
3.4 KiB
Java
Raw Normal View History

2025-07-17 15:26:39 +08:00
package com.gunshi.project.hsz.controller;
2024-07-08 10:05:02 +08:00
import com.gunshi.core.GunShiCoreProperties;
import com.gunshi.core.result.R;
import com.gunshi.core.session.entity.SessionUser;
import com.gunshi.core.session.service.BaseSessionService;
2024-07-08 10:05:02 +08:00
import com.gunshi.file.model.FileDescriptor;
import com.gunshi.file.service.IFileService;
import com.gunshi.file.service.LoginFileService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import jakarta.servlet.http.HttpServletRequest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RequestPart;
import org.springframework.web.multipart.MultipartFile;
/**
*
*
* @author lyf
* @version 1.0.0
* @since 2024-03-12
*/
public abstract class AbstractCommonFileController implements ICommonFileController {
@Override
public R<FileDescriptor> uploadSingle(MultipartFile file, String groupId, String businessType, Long userId, HttpServletRequest request) throws Exception {
return ICommonFileController.super.uploadSingle(file, getGroupId(), getBusinessType(), userId, request);
}
/**
*
*
* @param file
* @param userId userId
*/
@Operation(summary = "单个文件上传不需要groupId和businessType")
@PostMapping(path = "/file/upload/singleSimple", consumes = "multipart/form-data")
@Override
public R<FileDescriptor> uploadSingle(
@Parameter(description = "文件") @RequestPart("file") MultipartFile file,
@Parameter(description = "上传者用户id", hidden = true) @RequestParam(value = "userId", required = false) Long userId,
@Parameter(hidden = true) HttpServletRequest request) throws Exception {
if (userId == null) {
SessionUser sessionUser = checkLogin(request);
if (sessionUser == null) {
return R.error(400, "未登录", null);
}
userId = sessionUser.getUserId();
}
FileDescriptor fd = new FileDescriptor();
fd.setBusinessType(getBusinessType());
fd.setGroupId(getGroupId());
fd.setUserId(userId);
fd.setAccessGroup(getService().getAccessGroup());
fd.setFilePath(generateFilePath(getProperty().getAppCode(), getBusinessType(), userId, getGroupId(), file.getOriginalFilename()));
fd.setFileName(file.getOriginalFilename());
fd.setFileLength(file.getSize());
getService().upload(fd, file.getInputStream());
return R.ok(fd);
}
@Override
public String getBusinessType() {
return "common";
}
@Autowired
private LoginFileService service;
@Autowired
private GunShiCoreProperties properties;
@Autowired
private BaseSessionService sessionService;
2024-07-08 10:05:02 +08:00
@Override
public IFileService getService() {
return service;
}
@Override
public SessionUser checkLogin(HttpServletRequest request) {
2025-12-02 15:18:17 +08:00
// String token = sessionService.getToken(request);
// return sessionService.getSessionUser(token);
SessionUser user = new SessionUser();
user.setUserId(1L);
return user;
2024-07-08 10:05:02 +08:00
}
@Override
public GunShiCoreProperties getProperty() {
return properties;
}
}