diff --git a/gan-modules/ruoyi-gan/pom.xml b/gan-modules/ruoyi-gan/pom.xml
index c4245b3..d7ebbec 100644
--- a/gan-modules/ruoyi-gan/pom.xml
+++ b/gan-modules/ruoyi-gan/pom.xml
@@ -93,10 +93,20 @@
com.github.xiaoymin
knife4j-spring-boot-starter
+
+ cn.hutool
+ hutool-all
+ 4.1.1
+
org.projectlombok
lombok
+
+ com.aliyun.oss
+ aliyun-sdk-oss
+ 3.10.2
+
diff --git a/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/controller/AppLoginController.java b/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/controller/AppLoginController.java
index f65ac93..0fe4eae 100644
--- a/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/controller/AppLoginController.java
+++ b/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/controller/AppLoginController.java
@@ -1,4 +1,27 @@
package com.ruoyi.app.controller;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+@RestController
+@RequestMapping("/api/app")
+@Api(
+ tags = "APP-登录接口"
+)
public class AppLoginController {
+
+
+ @PostMapping("/register")
+ @ApiOperation(value = "注册" , notes = "注册")
+ public void register(RegisterForm registerForm) {
+
+
+ }
}
+
+
+
diff --git a/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/controller/AppSchoolController.java b/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/controller/AppSchoolController.java
index 5d55169..dbed4a0 100644
--- a/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/controller/AppSchoolController.java
+++ b/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/controller/AppSchoolController.java
@@ -25,8 +25,8 @@ import com.ruoyi.common.core.web.page.TableDataInfo;
* @date 2024-04-18
*/
@RestController
-@RequestMapping("/school")
-@Api(tags = "学校配置接口" , description = "学校配置接口")
+@RequestMapping("/api/school")
+@Api(tags = "学校配置" , description = "学校配置")
public class AppSchoolController extends BaseController
{
@Autowired
diff --git a/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/controller/OssController.java b/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/controller/OssController.java
new file mode 100644
index 0000000..a0a2526
--- /dev/null
+++ b/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/controller/OssController.java
@@ -0,0 +1,36 @@
+package com.ruoyi.app.controller;
+
+import com.ruoyi.app.service.OssService;
+import com.ruoyi.common.core.domain.R;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.servlet.http.HttpServletRequest;
+
+@RestController
+@RequestMapping("/api/oss")
+@Api(tags = "文件上传" , description = "文件上传")
+public class OssController {
+
+ @Autowired
+ OssService ossService;
+
+ //1、上传文件到oss: 接收客户端上传的文件流和文件名称 上传到oss之后 返回上传成功的文件路径
+ @PostMapping("upload")
+ @ApiOperation(value = "上传文件" , notes = "上传文件", produces = "file" , response = R.class)
+ public R uploadFile(@RequestBody MultipartFile file, HttpServletRequest request
+ ) {
+ return ossService.uploadFile(file);
+ }
+
+ //2、删除oss中的文件
+ @DeleteMapping("delete")
+ @ApiOperation("删除文件")
+ public R deleteFile(@RequestParam("path") String path
+ ) {
+ return ossService.deleteFile(path);
+ }
+}
diff --git a/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/service/OssService.java b/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/service/OssService.java
new file mode 100644
index 0000000..2350b27
--- /dev/null
+++ b/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/service/OssService.java
@@ -0,0 +1,14 @@
+package com.ruoyi.app.service;
+
+
+import com.ruoyi.common.core.domain.R;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.servlet.http.HttpServletRequest;
+
+public interface OssService {
+
+ R uploadFile(MultipartFile file);
+
+ R deleteFile(String path);
+}
\ No newline at end of file
diff --git a/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/service/impl/MsmServiceImpl.java b/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/service/impl/MsmServiceImpl.java
deleted file mode 100644
index 93f6ab4..0000000
--- a/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/service/impl/MsmServiceImpl.java
+++ /dev/null
@@ -1,63 +0,0 @@
-//package com.ruoyi.app.service.impl;
-//
-//import com.aliyun.dysmsapi20170525.models.*;
-//import com.ruoyi.app.service.MsmService;
-//
-//
-//public class MsmServiceImpl implements MsmService {
-// @Override
-// public Boolean send(String phoneNum, String code) {
-// return false;
-// }
-//
-// public static com.aliyun.dysmsapi20170525.Client createClient(String accessKeyId, String accessKeySecret) throws Exception {
-// Config config = new Config();
-// config.accessKeyId = accessKeyId;
-// config.accessKeySecret = accessKeySecret;
-// return new com.aliyun.dysmsapi20170525.Client(config);
-// }
-//
-// public static void main(String[] args_) throws Exception {
-// java.util.List args = java.util.Arrays.asList(args_);
-// com.aliyun.dysmsapi20170525.Client client = MsmServiceImpl.createClient(com.aliyun.darabonba.env.EnvClient.getEnv("ACCESS_KEY_ID"), com.aliyun.darabonba.env.EnvClient.getEnv("ACCESS_KEY_SECRET"));
-// // 1.发送短信
-// SendSmsRequest sendReq = new SendSmsRequest()
-// .setPhoneNumbers(args.get(0))
-// .setSignName(args.get(1))
-// .setTemplateCode(args.get(2))
-// .setTemplateParam(args.get(3));
-// SendSmsResponse sendResp = client.sendSms(sendReq);
-// String code = sendResp.body.code;
-// if (!com.aliyun.teautil.Common.equalString(code, "OK")) {
-// com.aliyun.teaconsole.Client.log("错误信息: " + sendResp.body.message + "");
-// return ;
-// }
-//
-// String bizId = sendResp.body.bizId;
-// // 2. 等待 10 秒后查询结果
-// com.aliyun.teautil.Common.sleep(10000);
-// // 3.查询结果
-// java.util.List phoneNums = com.aliyun.darabonbastring.Client.split(args.get(0), ",", -1);
-// for (String phoneNum : phoneNums) {
-// QuerySendDetailsRequest queryReq = new QuerySendDetailsRequest()
-// .setPhoneNumber(com.aliyun.teautil.Common.assertAsString(phoneNum))
-// .setBizId(bizId)
-// .setSendDate(com.aliyun.darabonbatime.Client.format("yyyyMMdd"))
-// .setPageSize(10L)
-// .setCurrentPage(1L);
-// QuerySendDetailsResponse queryResp = client.querySendDetails(queryReq);
-// java.util.List dtos = queryResp.body.smsSendDetailDTOs.smsSendDetailDTO;
-// // 打印结果
-// for (QuerySendDetailsResponseBody.QuerySendDetailsResponseBodySmsSendDetailDTOsSmsSendDetailDTO dto : dtos) {
-// if (com.aliyun.teautil.Common.equalString("" + dto.sendStatus + "", "3")) {
-// com.aliyun.teaconsole.Client.log("" + dto.phoneNum + " 发送成功,接收时间: " + dto.receiveDate + "");
-// } else if (com.aliyun.teautil.Common.equalString("" + dto.sendStatus + "", "2")) {
-// com.aliyun.teaconsole.Client.log("" + dto.phoneNum + " 发送失败");
-// } else {
-// com.aliyun.teaconsole.Client.log("" + dto.phoneNum + " 正在发送中...");
-// }
-//
-// }
-// }
-// }
-//}
diff --git a/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/service/impl/OssServiceImpl.java b/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/service/impl/OssServiceImpl.java
new file mode 100644
index 0000000..541df30
--- /dev/null
+++ b/gan-modules/ruoyi-gan/src/main/java/com/ruoyi/app/service/impl/OssServiceImpl.java
@@ -0,0 +1,60 @@
+package com.ruoyi.app.service.impl;
+
+
+import cn.hutool.core.date.DateTime;
+import com.aliyun.oss.OSS;
+import com.aliyun.oss.OSSClientBuilder;
+import com.ruoyi.app.service.OssService;
+import com.ruoyi.common.core.domain.R;
+import org.springframework.stereotype.Service;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.UUID;
+
+@Service("ossService")
+public class OssServiceImpl implements OssService {
+
+
+
+ private static final String schema= "https://";
+ private static final String endpoint= "oss-cn-shanghai.aliyuncs.com";
+ private static final String accessKeyId= "LTAI5tM1LeE2pkiS3qEFQkfb";
+ private static final String accessKeySecret= "fEZZyFvWkETS8Clm73f7qmY9ohcTpc";
+ private static final String bucketName= "gan-app-test";
+ @Override
+ public R uploadFile(MultipartFile file) {
+ try {
+ //4、 创建OSSClient实例。
+ OSS ossClient = new OSSClientBuilder().build(schema + endpoint, accessKeyId, accessKeySecret);
+ String fileName = file.getOriginalFilename();//获取上传文件的名称
+ InputStream inputStream = file.getInputStream();
+ // 通过ossClient上传文件: 参数1:桶名, 参数2:上传后的文件路径+文件名 ,参数3:要上传的文件流
+ String objectName = new DateTime().toString("yyyy/MM/dd/") +
+ UUID.randomUUID().toString().replace("-", "").substring(0, 16) +
+ "_" + fileName;//使用UUID+源文件名称后缀拼接生成objectName
+ ossClient.putObject(bucketName, objectName, inputStream);
+ // 关闭OSSClient。
+ ossClient.shutdown();
+
+ String path = schema + bucketName + "." + endpoint + "/" + objectName;//手动拼接上传成功的图片地址
+// System.out.println("path ======================================" + path);
+ return R.ok(path);
+
+ } catch (IOException e) {
+ throw new RuntimeException("图片上传失败");
+ }
+
+ }
+
+ @Override
+ public R deleteFile(String path) {
+ String host = schema + bucketName + "." + endpoint +"/";
+ String objectName = path.replace(host,"");
+ OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
+ ossClient.deleteObject(bucketName, objectName.trim());
+ ossClient.shutdown();
+ return R.ok("删除成功");
+ }
+}
\ No newline at end of file