This commit is contained in:
none 2023-03-06 16:06:56 +08:00
parent 866b8e0759
commit 32f6966706
5 changed files with 39 additions and 7 deletions

View File

@ -4,6 +4,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
import xyz.playedu.api.config.MinioConfig;
import xyz.playedu.api.service.ImageCaptchaService; import xyz.playedu.api.service.ImageCaptchaService;
import xyz.playedu.api.types.ImageCaptchaResult; import xyz.playedu.api.types.ImageCaptchaResult;
import xyz.playedu.api.types.JsonResponse; import xyz.playedu.api.types.JsonResponse;
@ -18,6 +19,9 @@ public class SystemController {
@Autowired @Autowired
private ImageCaptchaService imageCaptchaService; private ImageCaptchaService imageCaptchaService;
@Autowired
private MinioConfig minioConfig;
@GetMapping("/image-captcha") @GetMapping("/image-captcha")
public JsonResponse imageCaptcha() throws IOException { public JsonResponse imageCaptcha() throws IOException {
ImageCaptchaResult imageCaptchaResult = imageCaptchaService.generate(); ImageCaptchaResult imageCaptchaResult = imageCaptchaService.generate();
@ -29,4 +33,11 @@ public class SystemController {
return JsonResponse.data(data); return JsonResponse.data(data);
} }
@GetMapping("/config")
public JsonResponse config() {
HashMap<String, Object> data = new HashMap<>();
data.put("minio_endpoint", minioConfig.getEndPoint());
return JsonResponse.data(data);
}
} }

View File

@ -1,8 +1,7 @@
package xyz.playedu.api.controller.backend; package xyz.playedu.api.controller.backend;
import io.minio.MinioClient; import io.minio.*;
import io.minio.PostPolicy; import io.minio.http.Method;
import io.minio.PutObjectArgs;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.MapUtils; import org.apache.commons.collections4.MapUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -100,11 +99,17 @@ public class UploadController {
String resourceType = BackendConstant.RESOURCE_EXT_2_TYPE.get(extension.toLowerCase()); String resourceType = BackendConstant.RESOURCE_EXT_2_TYPE.get(extension.toLowerCase());
try { try {
PostPolicy postPolicy = new PostPolicy(minioConfig.getBucket(), ZonedDateTime.now().plusDays(1)); String url = minioClient.getPresignedObjectUrl(GetPresignedObjectUrlArgs.builder()
postPolicy.addStartsWithCondition("Content-Type", contentType); .bucket(minioConfig.getBucket())
postPolicy.addEqualsCondition("key", HelperUtil.randomString(32)); .object(HelperUtil.randomString(32) + "." + extension)
Map<String, String> data = minioClient.getPresignedPostFormData(postPolicy); .method(Method.PUT)
.expiry(60 * 60 * 24)
.build());
HashMap<String, String> data = new HashMap<>();
data.put("resource_type", resourceType); data.put("resource_type", resourceType);
data.put("url", url);
return JsonResponse.data(data); return JsonResponse.data(data);
} catch (Exception e) { } catch (Exception e) {
log.error(e.getMessage()); log.error(e.getMessage());

View File

@ -9,6 +9,7 @@ import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import xyz.playedu.api.constant.BPermissionConstant; import xyz.playedu.api.constant.BPermissionConstant;
import xyz.playedu.api.constant.SystemConstant; import xyz.playedu.api.constant.SystemConstant;
import xyz.playedu.api.domain.Department;
import xyz.playedu.api.domain.User; import xyz.playedu.api.domain.User;
import xyz.playedu.api.domain.UserDepartment; import xyz.playedu.api.domain.UserDepartment;
import xyz.playedu.api.event.UserDestroyEvent; import xyz.playedu.api.event.UserDestroyEvent;
@ -133,8 +134,11 @@ public class UserController {
public JsonResponse edit(@PathVariable(name = "id") Integer id) throws NotFoundException { public JsonResponse edit(@PathVariable(name = "id") Integer id) throws NotFoundException {
User user = userService.findOrFail(id); User user = userService.findOrFail(id);
List<Integer> depIds = userService.getDepIdsByUserId(user.getId());
HashMap<String, Object> data = new HashMap<>(); HashMap<String, Object> data = new HashMap<>();
data.put("user", user); data.put("user", user);
data.put("dep_ids", depIds);
return JsonResponse.data(data); return JsonResponse.data(data);
} }

View File

@ -27,4 +27,6 @@ public interface UserService extends IService<User> {
User createWithDepIds(String email, String name, String avatar, String password, String idCard, Integer[] depIds); User createWithDepIds(String email, String name, String avatar, String password, String idCard, Integer[] depIds);
User updateWithDepIds(User user, String email, String nickname, String name, String avatar, String password, String idCard, Integer[] depIds); User updateWithDepIds(User user, String email, String nickname, String name, String avatar, String password, String idCard, Integer[] depIds);
List<Integer> getDepIdsByUserId(Integer userId);
} }

View File

@ -201,6 +201,16 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
userDepartmentService.resetStoreDepIds(newUser.getId(), depIds); userDepartmentService.resetStoreDepIds(newUser.getId(), depIds);
return newUser; return newUser;
} }
@Override
public List<Integer> getDepIdsByUserId(Integer userId) {
List<Integer> ids = new ArrayList<>();
List<UserDepartment> userDepartments = userDepartmentService.list(userDepartmentService.query().getWrapper().eq("user_id", userId));
for (UserDepartment userDepartment : userDepartments) {
ids.add(userDepartment.getDepId());
}
return ids;
}
} }