12.24
This commit is contained in:
parent
e9075b3938
commit
54e8ad8b45
|
@ -36,9 +36,9 @@ public class LoginController {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Operation(summary = "获取登陆用户个人信息")
|
@Operation(summary = "获取登陆用户个人信息")
|
||||||
@GetMapping("info")
|
@PostMapping("info")
|
||||||
public Result<SystemUserInfoVo> info() {
|
public Result<SystemUserInfoVo> info(@RequestParam String name) {
|
||||||
SystemUserInfoVo userInfo = service.getLoginUserInfo(LoginUserHolder.getLoginUser().getUserId());
|
SystemUserInfoVo userInfo = service.getLoginUserInfo(name);
|
||||||
return Result.ok(userInfo);
|
return Result.ok(userInfo);
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -10,5 +10,5 @@ public interface LoginService {
|
||||||
|
|
||||||
CaptchaVo getCaptcha();
|
CaptchaVo getCaptcha();
|
||||||
|
|
||||||
SystemUserInfoVo getLoginUserInfo(Long userId);
|
SystemUserInfoVo getLoginUserInfo(String name);
|
||||||
}
|
}
|
|
@ -105,13 +105,13 @@ public class DoctorInfoServiceImpl extends ServiceImpl<DoctorInfoMapper, DoctorI
|
||||||
@Override
|
@Override
|
||||||
public void deleteDoctor(List<Long> ids) {
|
public void deleteDoctor(List<Long> ids) {
|
||||||
for (Long id : ids) {
|
for (Long id : ids) {
|
||||||
if (doctorAppointmentMapper.selectList(new LambdaQueryWrapper<DoctorAppointment>().eq(DoctorAppointment::getDoctorId, id)) != null) {
|
if (!doctorAppointmentMapper.selectList(new LambdaQueryWrapper<DoctorAppointment>().eq(DoctorAppointment::getDoctorId, id)).isEmpty()) {
|
||||||
throw new HassleFreeException(ResultCodeEnum.DELETE_ERROR);
|
throw new HassleFreeException(ResultCodeEnum.DELETE_ERROR);
|
||||||
}
|
}
|
||||||
if (articleInfoMapper.selectList(new LambdaQueryWrapper<ArticleInfo>().eq(ArticleInfo::getDoctorId, id)) != null) {
|
if (!articleInfoMapper.selectList(new LambdaQueryWrapper<ArticleInfo>().eq(ArticleInfo::getDoctorId, id)).isEmpty()) {
|
||||||
throw new HassleFreeException(ResultCodeEnum.DELETE_ERROR);
|
throw new HassleFreeException(ResultCodeEnum.DELETE_ERROR);
|
||||||
}
|
}
|
||||||
if (userAppointmentMapper.selectList(new LambdaQueryWrapper<UserAppointment>().eq(UserAppointment::getDoctorId, id)) != null) {
|
if (!userAppointmentMapper.selectList(new LambdaQueryWrapper<UserAppointment>().eq(UserAppointment::getDoctorId, id)).isEmpty()) {
|
||||||
throw new HassleFreeException(ResultCodeEnum.DELETE_ERROR);
|
throw new HassleFreeException(ResultCodeEnum.DELETE_ERROR);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -92,13 +92,13 @@ public class LoginServiceImpl implements LoginService {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public SystemUserInfoVo getLoginUserInfo(Long userId) {
|
public SystemUserInfoVo getLoginUserInfo(String name) {
|
||||||
SystemUser systemUser = systemUserMapper.selectById(userId);
|
SystemUser systemUser = systemUserMapper.selectOne(new LambdaQueryWrapper<SystemUser>().eq(SystemUser::getUsername, name));
|
||||||
SystemUserInfoVo systemUserInfoVo = new SystemUserInfoVo();
|
SystemUserInfoVo systemUserInfoVo = new SystemUserInfoVo();
|
||||||
systemUserInfoVo.setName(systemUser.getName());
|
systemUserInfoVo.setName(systemUser.getName());
|
||||||
systemUserInfoVo.setAvatarUrl(graphInfoMapper.selectOne(new LambdaQueryWrapper<GraphInfo>()
|
systemUserInfoVo.setAvatarUrl(graphInfoMapper.selectOne(new LambdaQueryWrapper<GraphInfo>()
|
||||||
.eq(GraphInfo::getItemType, GraphItemType.ADMIN)
|
.eq(GraphInfo::getItemType, GraphItemType.ADMIN)
|
||||||
.eq(GraphInfo::getItemId, userId))
|
.eq(GraphInfo::getItemId, systemUser.getId()))
|
||||||
.getUrl());
|
.getUrl());
|
||||||
return systemUserInfoVo;
|
return systemUserInfoVo;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,14 +1,15 @@
|
||||||
package com.atjy.web.app;
|
package com.atjy.web.app;
|
||||||
|
|
||||||
|
|
||||||
import org.mybatis.spring.annotation.MapperScan;
|
import org.mybatis.spring.annotation.MapperScan;
|
||||||
import org.springframework.boot.SpringApplication;
|
import org.springframework.boot.SpringApplication;
|
||||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||||
import org.springframework.scheduling.annotation.EnableAsync;
|
import org.springframework.scheduling.annotation.EnableAsync;
|
||||||
|
import org.springframework.scheduling.annotation.EnableScheduling;
|
||||||
|
|
||||||
@MapperScan("com.atjy.web.app.mapper")
|
@MapperScan("com.atjy.web.app.mapper")
|
||||||
@SpringBootApplication
|
@SpringBootApplication
|
||||||
@EnableAsync
|
@EnableAsync
|
||||||
|
@EnableScheduling
|
||||||
public class WebAppApplication {
|
public class WebAppApplication {
|
||||||
|
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
|
|
|
@ -0,0 +1,33 @@
|
||||||
|
package com.atjy.web.app.controller.file;
|
||||||
|
|
||||||
|
import com.atjy.common.result.Result;
|
||||||
|
import com.atjy.web.app.service.FileService;
|
||||||
|
import com.atjy.web.app.vo.file.FileVo;
|
||||||
|
import io.minio.errors.*;
|
||||||
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
|
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;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.security.InvalidKeyException;
|
||||||
|
import java.security.NoSuchAlgorithmException;
|
||||||
|
|
||||||
|
@Tag(name = "文件管理")
|
||||||
|
@RequestMapping("/app/file")
|
||||||
|
@RestController
|
||||||
|
public class FileController {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private FileService service;
|
||||||
|
|
||||||
|
@Operation(summary = "上传文件")
|
||||||
|
@PostMapping("upload")
|
||||||
|
public Result<FileVo> upload(@RequestParam MultipartFile file) throws ServerException, InsufficientDataException, ErrorResponseException, IOException, NoSuchAlgorithmException, InvalidKeyException, InvalidResponseException, XmlParserException, InternalException {
|
||||||
|
return Result.ok(service.upload(file));
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,25 @@
|
||||||
|
package com.atjy.web.app.controller.myself;
|
||||||
|
|
||||||
|
import com.atjy.common.result.Result;
|
||||||
|
import com.atjy.web.app.service.UserService;
|
||||||
|
import com.atjy.web.app.vo.user.UserVo;
|
||||||
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
@Tag(name = "用户信息")
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/app/center/user")
|
||||||
|
public class UserInfo {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private UserService service;
|
||||||
|
|
||||||
|
@Operation(summary = "修改用户信息")
|
||||||
|
@PostMapping("updateUserInfo")
|
||||||
|
public Result updateUserInfo(@RequestBody UserVo userVo) {
|
||||||
|
service.updateUserInfo(userVo);
|
||||||
|
return Result.ok();
|
||||||
|
}
|
||||||
|
}
|
|
@ -78,4 +78,11 @@ public class Knife4jConfiguration {
|
||||||
pathsToMatch("/app/appointment/**").
|
pathsToMatch("/app/appointment/**").
|
||||||
build();
|
build();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public GroupedOpenApi fileAPI() {
|
||||||
|
return GroupedOpenApi.builder().group("文件信息").
|
||||||
|
pathsToMatch("/app/file/**").
|
||||||
|
build();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,26 @@
|
||||||
|
package com.atjy.web.app.custom.config;
|
||||||
|
|
||||||
|
import com.atjy.common.minio.MinioProperties;
|
||||||
|
import io.minio.MinioClient;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
|
||||||
|
import org.springframework.boot.context.properties.EnableConfigurationProperties;
|
||||||
|
import org.springframework.context.annotation.Bean;
|
||||||
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
|
||||||
|
@Configuration
|
||||||
|
@EnableConfigurationProperties(MinioProperties.class)
|
||||||
|
@ConditionalOnProperty(name = "minio.endpoint")
|
||||||
|
public class MinioConfiguration {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private MinioProperties properties;
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public MinioClient minioClient(){
|
||||||
|
return MinioClient.builder()
|
||||||
|
.endpoint(properties.getEndpoint())
|
||||||
|
.credentials(properties.getAccessKey(),properties.getSecretKey())
|
||||||
|
.build();
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,17 +1,28 @@
|
||||||
package com.atjy.web.app.custom.config;
|
package com.atjy.web.app.custom.config;
|
||||||
|
|
||||||
|
import com.atjy.web.app.custom.converter.StringToBaseEnumConverterFactory;
|
||||||
import com.atjy.web.app.custom.interceptor.AuthenticationInterceptor;
|
import com.atjy.web.app.custom.interceptor.AuthenticationInterceptor;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
import org.springframework.format.FormatterRegistry;
|
||||||
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
|
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
|
||||||
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
|
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
|
||||||
|
|
||||||
@Configuration
|
@Configuration
|
||||||
public class WebMvcConfiguration implements WebMvcConfigurer {
|
public class WebMvcConfiguration implements WebMvcConfigurer {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private StringToBaseEnumConverterFactory stringToBaseEnumConverterFactory;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private AuthenticationInterceptor authenticationInterceptor;
|
private AuthenticationInterceptor authenticationInterceptor;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void addFormatters(FormatterRegistry registry) {
|
||||||
|
|
||||||
|
registry.addConverterFactory(this.stringToBaseEnumConverterFactory);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void addInterceptors(InterceptorRegistry registry) {
|
public void addInterceptors(InterceptorRegistry registry) {
|
||||||
registry.addInterceptor(this.authenticationInterceptor)
|
registry.addInterceptor(this.authenticationInterceptor)
|
||||||
|
|
|
@ -0,0 +1,25 @@
|
||||||
|
package com.atjy.web.app.custom.converter;
|
||||||
|
|
||||||
|
import com.atjy.model.enums.BaseEnum;
|
||||||
|
import org.springframework.core.convert.converter.Converter;
|
||||||
|
import org.springframework.core.convert.converter.ConverterFactory;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
@Component
|
||||||
|
public class StringToBaseEnumConverterFactory implements ConverterFactory<String, BaseEnum> {
|
||||||
|
@Override
|
||||||
|
public <T extends BaseEnum> Converter<String, T> getConverter(Class<T> targetType) {
|
||||||
|
return new Converter<String, T>() {
|
||||||
|
@Override
|
||||||
|
public T convert(String code) {
|
||||||
|
T[] enumConstants = targetType.getEnumConstants();
|
||||||
|
for (T enumConstant : enumConstants) {
|
||||||
|
if (enumConstant.getCode().equals(Integer.valueOf(code))) {
|
||||||
|
return enumConstant;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
throw new IllegalArgumentException("code" + code + "非法");
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,14 @@
|
||||||
|
package com.atjy.web.app.service;
|
||||||
|
|
||||||
|
import com.atjy.web.app.vo.file.FileVo;
|
||||||
|
import io.minio.errors.*;
|
||||||
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.security.InvalidKeyException;
|
||||||
|
import java.security.NoSuchAlgorithmException;
|
||||||
|
|
||||||
|
public interface FileService {
|
||||||
|
|
||||||
|
FileVo upload(MultipartFile file) throws ServerException, InsufficientDataException, ErrorResponseException, IOException, NoSuchAlgorithmException, InvalidKeyException, InvalidResponseException, XmlParserException, InternalException;
|
||||||
|
}
|
|
@ -1,7 +1,9 @@
|
||||||
package com.atjy.web.app.service;
|
package com.atjy.web.app.service;
|
||||||
|
|
||||||
import com.atjy.model.entity.UserInfo;
|
import com.atjy.model.entity.UserInfo;
|
||||||
|
import com.atjy.web.app.vo.user.UserVo;
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
|
||||||
public interface UserService extends IService<UserInfo> {
|
public interface UserService extends IService<UserInfo> {
|
||||||
|
void updateUserInfo(UserVo userVo);
|
||||||
}
|
}
|
|
@ -0,0 +1,75 @@
|
||||||
|
package com.atjy.web.app.service.impl;
|
||||||
|
|
||||||
|
import com.atjy.common.minio.MinioProperties;
|
||||||
|
import com.atjy.web.app.service.FileService;
|
||||||
|
import com.atjy.web.app.vo.file.FileVo;
|
||||||
|
import io.minio.*;
|
||||||
|
import io.minio.errors.*;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.web.ErrorResponseException;
|
||||||
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.security.InvalidKeyException;
|
||||||
|
import java.security.NoSuchAlgorithmException;
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
@Service
|
||||||
|
public class FileServiceImpl implements FileService {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private MinioClient minioClient;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private MinioProperties properties;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public FileVo upload(MultipartFile file) throws InsufficientDataException, ErrorResponseException, IOException, NoSuchAlgorithmException, InvalidKeyException, InvalidResponseException, XmlParserException, InternalException, ServerException, io.minio.errors.ErrorResponseException {
|
||||||
|
|
||||||
|
boolean bucketExists = minioClient.bucketExists(BucketExistsArgs.builder().bucket(properties.getBucketName()).build());
|
||||||
|
if (!bucketExists) {
|
||||||
|
minioClient.makeBucket(
|
||||||
|
MakeBucketArgs.builder()
|
||||||
|
.bucket(properties.getBucketName())
|
||||||
|
.build());
|
||||||
|
minioClient.setBucketPolicy(
|
||||||
|
SetBucketPolicyArgs.builder()
|
||||||
|
.bucket(properties.getBucketName())
|
||||||
|
.config(createBucketPolicyConfig(properties.getBucketName()))
|
||||||
|
.build());
|
||||||
|
}
|
||||||
|
String filename = new SimpleDateFormat("yyyyMMdd").format(new Date()) +
|
||||||
|
"/" + UUID.randomUUID() + "-" + file.getOriginalFilename();
|
||||||
|
minioClient.putObject(
|
||||||
|
PutObjectArgs.builder()
|
||||||
|
.bucket(properties.getBucketName())
|
||||||
|
.stream(file.getInputStream(), file.getSize(), -1)
|
||||||
|
.object(filename)
|
||||||
|
.contentType(file.getContentType())
|
||||||
|
.build());
|
||||||
|
|
||||||
|
FileVo result = new FileVo();
|
||||||
|
result.setUrl(String.join("/", properties.getEndpoint(), properties.getBucketName(), filename));
|
||||||
|
result.setName(file.getOriginalFilename());
|
||||||
|
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
private String createBucketPolicyConfig(String bucketName) {
|
||||||
|
|
||||||
|
return """
|
||||||
|
{
|
||||||
|
"Statement" : [ {
|
||||||
|
"Action" : "s3:GetObject",
|
||||||
|
"Effect" : "Allow",
|
||||||
|
"Principal" : "*",
|
||||||
|
"Resource" : "arn:aws:s3:::%s/*"
|
||||||
|
} ],
|
||||||
|
"Version" : "2012-10-17"
|
||||||
|
}
|
||||||
|
""".formatted(bucketName);
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,12 +1,46 @@
|
||||||
package com.atjy.web.app.service.impl;
|
package com.atjy.web.app.service.impl;
|
||||||
|
|
||||||
|
import com.atjy.common.login.LoginUserHolder;
|
||||||
|
import com.atjy.model.entity.GraphInfo;
|
||||||
import com.atjy.model.entity.UserInfo;
|
import com.atjy.model.entity.UserInfo;
|
||||||
|
import com.atjy.model.enums.GraphItemType;
|
||||||
|
import com.atjy.web.app.mapper.GraphInfoMapper;
|
||||||
import com.atjy.web.app.mapper.UserMapper;
|
import com.atjy.web.app.mapper.UserMapper;
|
||||||
import com.atjy.web.app.service.UserService;
|
import com.atjy.web.app.service.UserService;
|
||||||
|
import com.atjy.web.app.vo.user.UserVo;
|
||||||
|
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
|
||||||
@Service
|
@Service
|
||||||
public class UserServiceImpl extends ServiceImpl<UserMapper, UserInfo> implements UserService {
|
public class UserServiceImpl extends ServiceImpl<UserMapper, UserInfo> implements UserService {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private UserMapper userMapper;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private GraphInfoMapper graphInfoMapper;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void updateUserInfo(UserVo userVo) {
|
||||||
|
if (userVo.getUrlName() != null && !userVo.getUrlName().equals("")) {
|
||||||
|
UpdateWrapper<GraphInfo> updateWrapper = new UpdateWrapper<>();
|
||||||
|
updateWrapper.eq("item_type", GraphItemType.USER)
|
||||||
|
.eq("item_id", LoginUserHolder.getLoginUser().getUserId())
|
||||||
|
.set("url", userVo.getAvatarUrl())
|
||||||
|
.set("name", userVo.getUrlName());
|
||||||
|
|
||||||
|
graphInfoMapper.update(updateWrapper);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (userVo.getNickname() != null && !userVo.getNickname().equals("")) {
|
||||||
|
UpdateWrapper<UserInfo> userInfoUpdateWrapper = new UpdateWrapper<>();
|
||||||
|
userInfoUpdateWrapper.eq("id", LoginUserHolder.getLoginUser().getUserId())
|
||||||
|
.set("nickname", userVo.getNickname());
|
||||||
|
|
||||||
|
userMapper.update(userInfoUpdateWrapper);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,18 @@
|
||||||
|
package com.atjy.web.app.vo.file;
|
||||||
|
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@Schema(description = "文件实体")
|
||||||
|
public class FileVo {
|
||||||
|
|
||||||
|
@Schema(description = "图片id")
|
||||||
|
private Long urlId;
|
||||||
|
|
||||||
|
@Schema(description = "图片url")
|
||||||
|
private String url;
|
||||||
|
|
||||||
|
@Schema(description = "图片名称")
|
||||||
|
private String name;
|
||||||
|
}
|
|
@ -0,0 +1,18 @@
|
||||||
|
package com.atjy.web.app.vo.user;
|
||||||
|
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Schema(description = "用户信息")
|
||||||
|
@Data
|
||||||
|
public class UserVo {
|
||||||
|
|
||||||
|
@Schema(description = "用户昵称")
|
||||||
|
private String nickname;
|
||||||
|
|
||||||
|
@Schema(description = "头像")
|
||||||
|
private String avatarUrl;
|
||||||
|
|
||||||
|
@Schema(description = "头像名称")
|
||||||
|
private String urlName;
|
||||||
|
}
|
|
@ -27,6 +27,13 @@ spring:
|
||||||
port: 6379
|
port: 6379
|
||||||
database: 0
|
database: 0
|
||||||
|
|
||||||
|
servlet:
|
||||||
|
multipart:
|
||||||
|
# 单个文件最大大小
|
||||||
|
max-file-size: 50MB
|
||||||
|
# 所有上传文件最大大小
|
||||||
|
max-request-size: 50MB
|
||||||
|
|
||||||
mybatis-plus:
|
mybatis-plus:
|
||||||
configuration:
|
configuration:
|
||||||
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
|
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
|
||||||
|
@ -40,3 +47,8 @@ aliyun:
|
||||||
access-key-secret: uuy4Fe0zGoF5WsBod4IEwrB1O7vR6d
|
access-key-secret: uuy4Fe0zGoF5WsBod4IEwrB1O7vR6d
|
||||||
endpoint: dysmsapi.aliyuncs.com
|
endpoint: dysmsapi.aliyuncs.com
|
||||||
|
|
||||||
|
minio:
|
||||||
|
endpoint: http://192.168.47.101:9000
|
||||||
|
access-key: minioadmin
|
||||||
|
secret-key: minioadmin
|
||||||
|
bucket-name: hassle-free
|
||||||
|
|
Loading…
Reference in New Issue