Sfoglia il codice sorgente

feat: 完成了图片上传和用户信息获取

DingXiaoYu 2 anni fa
parent
commit
908cbec0b3

+ 5 - 0
pom.xml

@@ -47,6 +47,11 @@
 			<artifactId>java-jwt</artifactId>
 			<version>3.10.3</version>
 		</dependency>
+		<dependency>
+			<groupId>com.aliyun.oss</groupId>
+			<artifactId>aliyun-sdk-oss</artifactId>
+			<version>3.15.1</version>
+		</dependency>
 	</dependencies>
 
 	<build>

+ 22 - 0
src/main/java/com/seecoder/BlueWhale/Controller/ToolController.java

@@ -0,0 +1,22 @@
+package com.seecoder.BlueWhale.Controller;
+
+import com.seecoder.BlueWhale.Service.ToolService;
+import com.seecoder.BlueWhale.VO.ResultVO;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.multipart.MultipartFile;
+
+@RestController
+@RequestMapping("/api/tool")
+public class ToolController {
+    @Autowired
+    ToolService toolService;
+
+    @PostMapping("/upload")
+    public ResultVO<String> upload(@RequestParam MultipartFile file){
+        return ResultVO.buildSuccess(toolService.upload(file));
+    }
+}

+ 8 - 13
src/main/java/com/seecoder/BlueWhale/Controller/UserController.java

@@ -3,16 +3,8 @@ package com.seecoder.BlueWhale.Controller;
 import com.seecoder.BlueWhale.Service.UserService;
 import com.seecoder.BlueWhale.VO.ResultVO;
 import com.seecoder.BlueWhale.VO.UserVO;
-
-import java.util.HashMap;
-import java.util.Map;
-
 import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 @RestController
 @RequestMapping("/api/user")
@@ -27,9 +19,12 @@ public class UserController {
     }
 
     @PostMapping("/login")
-    public ResultVO<Map<String, String>> login(@RequestParam("phone") String phone, @RequestParam("password") String password){
-        Map<String, String> tokenMap = new HashMap<>();
-        tokenMap.put("token", userService.login(phone, password));
-        return ResultVO.buildSuccess(tokenMap);
+    public ResultVO<String> login(@RequestParam("phone") String phone, @RequestParam("password") String password){
+        return ResultVO.buildSuccess(userService.login(phone, password));
+    }
+
+    @GetMapping
+    public ResultVO<UserVO> getInformation(){
+        return ResultVO.buildSuccess(userService.getInformation());
     }
 }

+ 4 - 0
src/main/java/com/seecoder/BlueWhale/Exception/BlueWhaleException.java

@@ -21,4 +21,8 @@ public class BlueWhaleException extends RuntimeException{
     public static BlueWhaleException phoneOrPasswordError(){
         return new BlueWhaleException("手机号或密码错误!");
     }
+
+    public static BlueWhaleException fileUploadFail(){
+        return new BlueWhaleException("文件上传失败!");
+    }
 }

+ 7 - 0
src/main/java/com/seecoder/BlueWhale/Service/ToolService.java

@@ -0,0 +1,7 @@
+package com.seecoder.BlueWhale.Service;
+
+import org.springframework.web.multipart.MultipartFile;
+
+public interface ToolService {
+    String upload(MultipartFile file);
+}

+ 25 - 0
src/main/java/com/seecoder/BlueWhale/ServiceImpl/ToolServiceImpl.java

@@ -0,0 +1,25 @@
+package com.seecoder.BlueWhale.ServiceImpl;
+
+import com.seecoder.BlueWhale.Exception.BlueWhaleException;
+import com.seecoder.BlueWhale.Service.ToolService;
+import com.seecoder.BlueWhale.Util.OssUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.web.multipart.MultipartFile;
+
+@Service
+public class ToolServiceImpl implements ToolService {
+
+    @Autowired
+    OssUtil ossUtil;
+
+    @Override
+    public String upload(MultipartFile file) {
+        try {
+            return ossUtil.upload(file.getOriginalFilename(),file.getInputStream());
+        }catch (Exception e){
+            e.printStackTrace();
+            throw BlueWhaleException.fileUploadFail();
+        }
+    }
+}

+ 6 - 4
src/main/java/com/seecoder/BlueWhale/ServiceImpl/UserServiceImpl.java

@@ -4,6 +4,7 @@ import com.seecoder.BlueWhale.Exception.BlueWhaleException;
 import com.seecoder.BlueWhale.Mapper.UserMapper;
 import com.seecoder.BlueWhale.PO.User;
 import com.seecoder.BlueWhale.Service.UserService;
+import com.seecoder.BlueWhale.Util.SecurityUtil;
 import com.seecoder.BlueWhale.Util.TokenUtil;
 import com.seecoder.BlueWhale.VO.UserVO;
 
@@ -27,6 +28,9 @@ public class UserServiceImpl implements UserService {
     @Autowired
     TokenUtil tokenUtil;
 
+    @Autowired
+    SecurityUtil securityUtil;
+
     @Override
     public Boolean register(UserVO userVO) {
         User user = userMapper.findByPhone(userVO.getPhone());
@@ -37,7 +41,6 @@ public class UserServiceImpl implements UserService {
         newUser.setCreateTime(new Date());
         userMapper.save(newUser);
         return true;
-        //return null;
     }
 
     @Override
@@ -46,12 +49,11 @@ public class UserServiceImpl implements UserService {
         if (user == null) {
             throw BlueWhaleException.phoneOrPasswordError();
         }
-        String token = tokenUtil.getToken(user);
-        return token;
+        return tokenUtil.getToken(user);
     }
 
     @Override
     public UserVO getInformation() {
-        return null;
+        return securityUtil.getCurrentUser().toVO();
     }
 }

+ 38 - 0
src/main/java/com/seecoder/BlueWhale/Util/OssUtil.java

@@ -0,0 +1,38 @@
+package com.seecoder.BlueWhale.Util;
+
+import com.aliyun.oss.*;
+import com.aliyun.oss.model.*;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.stereotype.Component;
+
+import java.io.InputStream;
+import java.util.Date;
+
+@Component
+@Getter
+@Setter
+@NoArgsConstructor
+@ConfigurationProperties("aliyun.oss")
+public class OssUtil {
+    private String endpoint;
+    private String accessKeyId;
+    private String accessKeySecret;
+    private String bucketName;
+
+    public String upload(String objectName, InputStream inputStream) {
+        OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
+        PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, objectName, inputStream);
+        try {
+            ossClient.putObject(putObjectRequest);
+        }finally {
+            if (ossClient != null) {
+                ossClient.shutdown();
+            }
+        }
+        return ossClient.generatePresignedUrl(bucketName, objectName, new Date()).toString().split("\\?Expires")[0];
+    }
+}
+

+ 6 - 1
src/main/resources/application.yml

@@ -12,4 +12,9 @@ spring:
 server:
   port: 8080
 
-
+aliyun:
+  oss:
+    endpoint: https://oss-cn-hangzhou.aliyuncs.com
+    accessKeyId: LTAI4Fi1qmL4iuhH8t7G7r2H
+    accessKeySecret: 7tJWyQqa0cMkQGaPMMvtH6c0VLiOO2
+    bucketName: seec-portal

+ 0 - 1
src/test/java/com/seecoder/BlueWhale/BlueWhaleApplicationTests.java

@@ -18,7 +18,6 @@ class BlueWhaleApplicationTests {
 		User user=new User();
 		user.setId(1);
 		user.setPassword("123456");
-		user.setRole(RoleEnum.CUSTOMER);
 		System.out.println(tokenUtil.getToken(user));
 	}