diff --git a/src/main/java/com/yupi/springbootinit/config/CosClientConfig.java b/src/main/java/com/yupi/springbootinit/config/CosClientConfig.java deleted file mode 100644 index f01b26a..0000000 --- a/src/main/java/com/yupi/springbootinit/config/CosClientConfig.java +++ /dev/null @@ -1,53 +0,0 @@ -package com.yupi.springbootinit.config; - -import com.qcloud.cos.COSClient; -import com.qcloud.cos.ClientConfig; -import com.qcloud.cos.auth.BasicCOSCredentials; -import com.qcloud.cos.auth.COSCredentials; -import com.qcloud.cos.region.Region; -import lombok.Data; -import org.springframework.boot.context.properties.ConfigurationProperties; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; - -/** - * 腾讯云对象存储客户端 - * - * @author 程序员鱼皮 - * @from 编程导航知识星球 - */ -@Configuration -@ConfigurationProperties(prefix = "cos.client") -@Data -public class CosClientConfig { - - /** - * accessKey - */ - private String accessKey; - - /** - * secretKey - */ - private String secretKey; - - /** - * 区域 - */ - private String region; - - /** - * 桶名 - */ - private String bucket; - - @Bean - public COSClient cosClient() { - // 初始化用户身份信息(secretId, secretKey) - COSCredentials cred = new BasicCOSCredentials(accessKey, secretKey); - // 设置bucket的区域, COS地域的简称请参照 https://www.qcloud.com/document/product/436/6224 - ClientConfig clientConfig = new ClientConfig(new Region(region)); - // 生成cos客户端 - return new COSClient(cred, clientConfig); - } -} \ No newline at end of file diff --git a/src/main/java/com/yupi/springbootinit/controller/DishController.java b/src/main/java/com/yupi/springbootinit/controller/DishController.java index 55beabc..58f6a45 100644 --- a/src/main/java/com/yupi/springbootinit/controller/DishController.java +++ b/src/main/java/com/yupi/springbootinit/controller/DishController.java @@ -6,7 +6,6 @@ import com.yupi.springbootinit.common.ErrorCode; import com.yupi.springbootinit.common.ResultUtils; import com.yupi.springbootinit.exception.BusinessException; import com.yupi.springbootinit.exception.ThrowUtils; -import com.yupi.springbootinit.manager.CosManager; import com.yupi.springbootinit.model.dto.dish.DishAddRequest; import com.yupi.springbootinit.model.dto.dish.DishRandomRequest; import com.yupi.springbootinit.model.dto.dish.DishUpdataRequest; @@ -32,9 +31,6 @@ public class DishController { @Resource private DishService dishService; - @Resource - private CosManager cosManager; - @PostMapping("/add") public BaseResponse add(@ModelAttribute DishAddRequest dishAddRequest, HttpServletRequest request) { if (dishAddRequest == null) { diff --git a/src/main/java/com/yupi/springbootinit/controller/FileController.java b/src/main/java/com/yupi/springbootinit/controller/FileController.java deleted file mode 100644 index cd3b060..0000000 --- a/src/main/java/com/yupi/springbootinit/controller/FileController.java +++ /dev/null @@ -1,108 +0,0 @@ -package com.yupi.springbootinit.controller; - -import cn.hutool.core.io.FileUtil; -import com.yupi.springbootinit.common.BaseResponse; -import com.yupi.springbootinit.common.ErrorCode; -import com.yupi.springbootinit.common.ResultUtils; -import com.yupi.springbootinit.constant.FileConstant; -import com.yupi.springbootinit.exception.BusinessException; -import com.yupi.springbootinit.manager.CosManager; -import com.yupi.springbootinit.model.dto.file.UploadFileRequest; -import com.yupi.springbootinit.model.entity.User; -import com.yupi.springbootinit.model.enums.FileUploadBizEnum; -import com.yupi.springbootinit.service.UserService; -import java.io.File; -import java.util.Arrays; -import javax.annotation.Resource; -import javax.servlet.http.HttpServletRequest; -import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang3.RandomStringUtils; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestPart; -import org.springframework.web.bind.annotation.RestController; -import org.springframework.web.multipart.MultipartFile; - -/** - * 文件接口 - * - * @author 程序员鱼皮 - * @from 编程导航知识星球 - */ -@RestController -@RequestMapping("/file") -@Slf4j -public class FileController { - - @Resource - private UserService userService; - - @Resource - private CosManager cosManager; - - /** - * 文件上传 - * - * @param multipartFile - * @param uploadFileRequest - * @param request - * @return - */ - @PostMapping("/upload") - public BaseResponse uploadFile(@RequestPart("file") MultipartFile multipartFile, - UploadFileRequest uploadFileRequest, HttpServletRequest request) { - String biz = uploadFileRequest.getBiz(); - FileUploadBizEnum fileUploadBizEnum = FileUploadBizEnum.getEnumByValue(biz); - if (fileUploadBizEnum == null) { - throw new BusinessException(ErrorCode.PARAMS_ERROR); - } - validFile(multipartFile, fileUploadBizEnum); - User loginUser = userService.getLoginUser(request); - // 文件目录:根据业务、用户来划分 - String uuid = RandomStringUtils.randomAlphanumeric(8); - String filename = uuid + "-" + multipartFile.getOriginalFilename(); - String filepath = String.format("/%s/%s/%s", fileUploadBizEnum.getValue(), loginUser.getId(), filename); - File file = null; - try { - // 上传文件 - file = File.createTempFile(filepath, null); - multipartFile.transferTo(file); - cosManager.putObject(filepath, file); - // 返回可访问地址 - return ResultUtils.success(FileConstant.COS_HOST + filepath); - } catch (Exception e) { - log.error("file upload error, filepath = " + filepath, e); - throw new BusinessException(ErrorCode.SYSTEM_ERROR, "上传失败"); - } finally { - if (file != null) { - // 删除临时文件 - boolean delete = file.delete(); - if (!delete) { - log.error("file delete error, filepath = {}", filepath); - } - } - } - } - - /** - * 校验文件 - * - * @param multipartFile - * @param fileUploadBizEnum 业务类型 - */ - private void validFile(MultipartFile multipartFile, FileUploadBizEnum fileUploadBizEnum) { - // 文件大小 - long fileSize = multipartFile.getSize(); - // 文件后缀 - String fileSuffix = FileUtil.getSuffix(multipartFile.getOriginalFilename()); - final long ONE_M = 1024 * 1024L; - if (FileUploadBizEnum.USER_AVATAR.equals(fileUploadBizEnum)) { - if (fileSize > ONE_M) { - throw new BusinessException(ErrorCode.PARAMS_ERROR, "文件大小不能超过 1M"); - } - if (!Arrays.asList("jpeg", "jpg", "svg", "png", "webp").contains(fileSuffix)) { - throw new BusinessException(ErrorCode.PARAMS_ERROR, "文件类型错误"); - } - } - } -} diff --git a/src/main/java/com/yupi/springbootinit/manager/CosManager.java b/src/main/java/com/yupi/springbootinit/manager/CosManager.java deleted file mode 100644 index a556cc2..0000000 --- a/src/main/java/com/yupi/springbootinit/manager/CosManager.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.yupi.springbootinit.manager; - -import com.qcloud.cos.COSClient; -import com.qcloud.cos.model.PutObjectRequest; -import com.qcloud.cos.model.PutObjectResult; -import com.yupi.springbootinit.config.CosClientConfig; -import java.io.File; -import javax.annotation.Resource; -import org.springframework.stereotype.Component; - -/** - * Cos 对象存储操作 - * - * @author 程序员鱼皮 - * @from 编程导航知识星球 - */ -@Component -public class CosManager { - - @Resource - private CosClientConfig cosClientConfig; - - @Resource - private COSClient cosClient; - - /** - * 上传对象 - * - * @param key 唯一键 - * @param localFilePath 本地文件路径 - * @return - */ - public PutObjectResult putObject(String key, String localFilePath) { - PutObjectRequest putObjectRequest = new PutObjectRequest(cosClientConfig.getBucket(), key, - new File(localFilePath)); - return cosClient.putObject(putObjectRequest); - } - - /** - * 上传对象 - * - * @param key 唯一键 - * @param file 文件 - * @return - */ - public PutObjectResult putObject(String key, File file) { - PutObjectRequest putObjectRequest = new PutObjectRequest(cosClientConfig.getBucket(), key, - file); - return cosClient.putObject(putObjectRequest); - } -} diff --git a/src/main/resources/application-prod.yml b/src/main/resources/application-prod.yml index 937d251..7d08149 100644 --- a/src/main/resources/application-prod.yml +++ b/src/main/resources/application-prod.yml @@ -6,11 +6,11 @@ server: spring: # 数据库配置 # todo 需替换配置 - datasource: + datasource: driver-class-name: com.mysql.cj.jdbc.Driver - url: jdbc:mysql://localhost:3306/my_db + url: jdbc:mysql://192.168.100.113:13306/my_db username: root - password: 123456 + password: n2kXGhGY25bFkWCH # Redis 配置 # todo 需替换配置 redis: @@ -28,4 +28,10 @@ spring: mybatis-plus: configuration: # 生产环境关闭日志 - log-impl: '' \ No newline at end of file + log-impl: '' + +minio: + endpoint: http://192.168.100.113:9000 + accessKey: LAVcDlmF4PHW84aoko75 + secretKey: Xr5bj08bo1WexFvJwwkXyYETWzNTUdpxxSfWzMqj + bucketName: order \ No newline at end of file diff --git a/src/main/resources/application-test.yml b/src/main/resources/application-test.yml index c0fcf94..99dfb2e 100644 --- a/src/main/resources/application-test.yml +++ b/src/main/resources/application-test.yml @@ -8,9 +8,9 @@ spring: # todo 需替换配置 datasource: driver-class-name: com.mysql.cj.jdbc.Driver - url: jdbc:mysql://localhost:3306/my_db + url: jdbc:mysql://192.168.100.113:13306/my_db username: root - password: 123456 + password: n2kXGhGY25bFkWCH # Redis 配置 # todo 需替换配置 redis: diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 1604566..4009b15 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -22,7 +22,7 @@ spring: datasource: driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://192.168.100.113:13306/my_db - username: root + username: my_db password: n2kXGhGY25bFkWCH # Redis 配置 # todo 需替换配置,然后取消注释 @@ -84,14 +84,8 @@ wx: appSecret: xxx # 对象存储 # todo 需替换配置 -cos: - client: - accessKey: xxx - secretKey: xxx - region: xxx - bucket: xxx minio: endpoint: http://192.168.100.113:9000 - accessKey: an3QBebaTB4N0CbIWXCm - secretKey: yEEQKNw1WzBjBEgdCrVSe3AFT7ktzkrxzpHH3MZl + accessKey: LAVcDlmF4PHW84aoko75 + secretKey: Xr5bj08bo1WexFvJwwkXyYETWzNTUdpxxSfWzMqj bucketName: order \ No newline at end of file diff --git a/src/test/java/com/yupi/springbootinit/esdao/PostEsDaoTest.java b/src/test/java/com/yupi/springbootinit/esdao/PostEsDaoTest.java deleted file mode 100644 index 42d8457..0000000 --- a/src/test/java/com/yupi/springbootinit/esdao/PostEsDaoTest.java +++ /dev/null @@ -1,83 +0,0 @@ -package com.yupi.springbootinit.esdao; - -import com.yupi.springbootinit.model.dto.post.PostEsDTO; -import com.yupi.springbootinit.model.dto.post.PostQueryRequest; -import com.yupi.springbootinit.model.entity.Post; -import com.yupi.springbootinit.service.PostService; -import java.util.Arrays; -import java.util.Date; -import java.util.List; -import java.util.Optional; -import javax.annotation.Resource; -import org.junit.jupiter.api.Test; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.data.domain.Page; -import org.springframework.data.domain.PageRequest; -import org.springframework.data.domain.Sort; - -/** - * 帖子 ES 操作测试 - * - * @author 程序员鱼皮 - * @from 编程导航知识星球 - */ -@SpringBootTest -public class PostEsDaoTest { - - @Resource - private PostEsDao postEsDao; - - @Resource - private PostService postService; - - @Test - void test() { - PostQueryRequest postQueryRequest = new PostQueryRequest(); - com.baomidou.mybatisplus.extension.plugins.pagination.Page page = - postService.searchFromEs(postQueryRequest); - System.out.println(page); - } - - @Test - void testSelect() { - System.out.println(postEsDao.count()); - Page PostPage = postEsDao.findAll( - PageRequest.of(0, 5, Sort.by("createTime"))); - List postList = PostPage.getContent(); - System.out.println(postList); - } - - @Test - void testAdd() { - PostEsDTO postEsDTO = new PostEsDTO(); - postEsDTO.setId(1L); - postEsDTO.setTitle("test"); - postEsDTO.setContent("test"); - postEsDTO.setTags(Arrays.asList("java", "python")); - postEsDTO.setThumbNum(1); - postEsDTO.setFavourNum(1); - postEsDTO.setUserId(1L); - postEsDTO.setCreateTime(new Date()); - postEsDTO.setUpdateTime(new Date()); - postEsDTO.setIsDelete(0); - postEsDao.save(postEsDTO); - System.out.println(postEsDTO.getId()); - } - - @Test - void testFindById() { - Optional postEsDTO = postEsDao.findById(1L); - System.out.println(postEsDTO); - } - - @Test - void testCount() { - System.out.println(postEsDao.count()); - } - - @Test - void testFindByCategory() { - List postEsDaoTestList = postEsDao.findByUserId(1L); - System.out.println(postEsDaoTestList); - } -} diff --git a/src/test/java/com/yupi/springbootinit/manager/CosManagerTest.java b/src/test/java/com/yupi/springbootinit/manager/CosManagerTest.java deleted file mode 100644 index e803a4b..0000000 --- a/src/test/java/com/yupi/springbootinit/manager/CosManagerTest.java +++ /dev/null @@ -1,23 +0,0 @@ -package com.yupi.springbootinit.manager; - -import javax.annotation.Resource; -import org.junit.jupiter.api.Test; -import org.springframework.boot.test.context.SpringBootTest; - -/** - * Cos 操作测试 - * - * @author 程序员鱼皮 - * @from 编程导航知识星球 - */ -@SpringBootTest -class CosManagerTest { - - @Resource - private CosManager cosManager; - - @Test - void putObject() { - cosManager.putObject("test", "test.json"); - } -} \ No newline at end of file diff --git a/src/test/java/com/yupi/springbootinit/mapper/PostFavourMapperTest.java b/src/test/java/com/yupi/springbootinit/mapper/PostFavourMapperTest.java deleted file mode 100644 index 96bd2f3..0000000 --- a/src/test/java/com/yupi/springbootinit/mapper/PostFavourMapperTest.java +++ /dev/null @@ -1,33 +0,0 @@ -package com.yupi.springbootinit.mapper; - -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.yupi.springbootinit.model.entity.Post; -import javax.annotation.Resource; -import org.junit.jupiter.api.Assertions; -import org.junit.jupiter.api.Test; -import org.springframework.boot.test.context.SpringBootTest; - -/** - * 帖子收藏数据库操作测试 - * - * @author 程序员鱼皮 - * @from 编程导航知识星球 - */ -@SpringBootTest -class PostFavourMapperTest { - - @Resource - private PostFavourMapper postFavourMapper; - - @Test - void listUserFavourPostByPage() { - IPage page = new Page<>(2, 1); - QueryWrapper queryWrapper = new QueryWrapper<>(); - queryWrapper.eq("id", 1); - queryWrapper.like("content", "a"); - IPage result = postFavourMapper.listFavourPostByPage(page, queryWrapper, 1); - Assertions.assertNotNull(result); - } -} \ No newline at end of file diff --git a/src/test/java/com/yupi/springbootinit/mapper/PostMapperTest.java b/src/test/java/com/yupi/springbootinit/mapper/PostMapperTest.java deleted file mode 100644 index b0186ba..0000000 --- a/src/test/java/com/yupi/springbootinit/mapper/PostMapperTest.java +++ /dev/null @@ -1,28 +0,0 @@ -package com.yupi.springbootinit.mapper; - -import com.yupi.springbootinit.model.entity.Post; -import java.util.Date; -import java.util.List; -import javax.annotation.Resource; -import org.junit.jupiter.api.Assertions; -import org.junit.jupiter.api.Test; -import org.springframework.boot.test.context.SpringBootTest; - -/** - * 帖子数据库操作测试 - * - * @author 程序员鱼皮 - * @from 编程导航知识星球 - */ -@SpringBootTest -class PostMapperTest { - - @Resource - private PostMapper postMapper; - - @Test - void listPostWithDelete() { - List postList = postMapper.listPostWithDelete(new Date()); - Assertions.assertNotNull(postList); - } -} \ No newline at end of file diff --git a/src/test/java/com/yupi/springbootinit/service/PostFavourServiceTest.java b/src/test/java/com/yupi/springbootinit/service/PostFavourServiceTest.java deleted file mode 100644 index 16aa319..0000000 --- a/src/test/java/com/yupi/springbootinit/service/PostFavourServiceTest.java +++ /dev/null @@ -1,44 +0,0 @@ -package com.yupi.springbootinit.service; - -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.yupi.springbootinit.model.entity.Post; -import com.yupi.springbootinit.model.entity.User; -import javax.annotation.Resource; -import org.junit.jupiter.api.Assertions; -import org.junit.jupiter.api.BeforeAll; -import org.junit.jupiter.api.Test; -import org.springframework.boot.test.context.SpringBootTest; - -/** - * 帖子收藏服务测试 - * - * @author 程序员鱼皮 - * @from 编程导航知识星球 - */ -@SpringBootTest -class PostFavourServiceTest { - - @Resource - private PostFavourService postFavourService; - - private static final User loginUser = new User(); - - @BeforeAll - static void setUp() { - loginUser.setId(1L); - } - - @Test - void doPostFavour() { - int i = postFavourService.doPostFavour(1L, loginUser); - Assertions.assertTrue(i >= 0); - } - - @Test - void listFavourPostByPage() { - QueryWrapper postQueryWrapper = new QueryWrapper<>(); - postQueryWrapper.eq("id", 1L); - postFavourService.listFavourPostByPage(Page.of(0, 1), postQueryWrapper, loginUser.getId()); - } -} diff --git a/src/test/java/com/yupi/springbootinit/service/PostServiceTest.java b/src/test/java/com/yupi/springbootinit/service/PostServiceTest.java deleted file mode 100644 index bd30a9a..0000000 --- a/src/test/java/com/yupi/springbootinit/service/PostServiceTest.java +++ /dev/null @@ -1,31 +0,0 @@ -package com.yupi.springbootinit.service; - -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.yupi.springbootinit.model.dto.post.PostQueryRequest; -import com.yupi.springbootinit.model.entity.Post; -import javax.annotation.Resource; -import org.junit.jupiter.api.Assertions; -import org.junit.jupiter.api.Test; -import org.springframework.boot.test.context.SpringBootTest; - -/** - * 帖子服务测试 - * - * @author 程序员鱼皮 - * @from 编程导航知识星球 - */ -@SpringBootTest -class PostServiceTest { - - @Resource - private PostService postService; - - @Test - void searchFromEs() { - PostQueryRequest postQueryRequest = new PostQueryRequest(); - postQueryRequest.setUserId(1L); - Page postPage = postService.searchFromEs(postQueryRequest); - Assertions.assertNotNull(postPage); - } - -} \ No newline at end of file diff --git a/src/test/java/com/yupi/springbootinit/service/PostThumbServiceTest.java b/src/test/java/com/yupi/springbootinit/service/PostThumbServiceTest.java deleted file mode 100644 index 46fe0e9..0000000 --- a/src/test/java/com/yupi/springbootinit/service/PostThumbServiceTest.java +++ /dev/null @@ -1,34 +0,0 @@ -package com.yupi.springbootinit.service; - -import com.yupi.springbootinit.model.entity.User; -import javax.annotation.Resource; -import org.junit.jupiter.api.Assertions; -import org.junit.jupiter.api.BeforeAll; -import org.junit.jupiter.api.Test; -import org.springframework.boot.test.context.SpringBootTest; - -/** - * 帖子点赞服务测试 - * - * @author 程序员鱼皮 - * @from 编程导航知识星球 - */ -@SpringBootTest -class PostThumbServiceTest { - - @Resource - private PostThumbService postThumbService; - - private static final User loginUser = new User(); - - @BeforeAll - static void setUp() { - loginUser.setId(1L); - } - - @Test - void doPostThumb() { - int i = postThumbService.doPostThumb(1L, loginUser); - Assertions.assertTrue(i >= 0); - } -} diff --git a/src/test/java/com/yupi/springbootinit/service/UserServiceTest.java b/src/test/java/com/yupi/springbootinit/service/UserServiceTest.java deleted file mode 100644 index 0b152c5..0000000 --- a/src/test/java/com/yupi/springbootinit/service/UserServiceTest.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.yupi.springbootinit.service; - -import javax.annotation.Resource; -import org.junit.jupiter.api.Assertions; -import org.junit.jupiter.api.Test; -import org.springframework.boot.test.context.SpringBootTest; - -/** - * 用户服务测试 - * - * @author 程序员鱼皮 - * @from 编程导航知识星球 - */ -@SpringBootTest -public class UserServiceTest { - - @Resource - private UserService userService; - - @Test - void userRegister() { - String userAccount = "yupi"; - String userPassword = ""; - String checkPassword = "123456"; - try { - long result = userService.userRegister(userAccount, userPassword, checkPassword); - Assertions.assertEquals(-1, result); - userAccount = "yu"; - result = userService.userRegister(userAccount, userPassword, checkPassword); - Assertions.assertEquals(-1, result); - } catch (Exception e) { - - } - } -} diff --git a/src/test/java/com/yupi/springbootinit/utils/EasyExcelTest.java b/src/test/java/com/yupi/springbootinit/utils/EasyExcelTest.java deleted file mode 100644 index b74eb9f..0000000 --- a/src/test/java/com/yupi/springbootinit/utils/EasyExcelTest.java +++ /dev/null @@ -1,34 +0,0 @@ -package com.yupi.springbootinit.utils; - -import com.alibaba.excel.EasyExcel; -import com.alibaba.excel.support.ExcelTypeEnum; -import org.junit.jupiter.api.Test; -import org.springframework.boot.test.context.SpringBootTest; -import org.springframework.util.ResourceUtils; - -import java.io.File; -import java.io.FileNotFoundException; -import java.util.List; -import java.util.Map; - -/** - * EasyExcel 测试 - * - * @author 程序员鱼皮 - * @from 编程导航知识星球 - */ -@SpringBootTest -public class EasyExcelTest { - - @Test - public void doImport() throws FileNotFoundException { - File file = ResourceUtils.getFile("classpath:test_excel.xlsx"); - List> list = EasyExcel.read(file) - .excelType(ExcelTypeEnum.XLSX) - .sheet() - .headRowNumber(0) - .doReadSync(); - System.out.println(list); - } - -} \ No newline at end of file