Compare commits
13 Commits
329b6cb23d
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
| 723992f360 | |||
| 05e15998f5 | |||
| 44d55c0ed6 | |||
| 06bb86ccd5 | |||
| 6f1cf2083d | |||
| fd71f330d2 | |||
| cdff62b3b5 | |||
| 2ba868b3b6 | |||
| c270ae177d | |||
| 323e038e86 | |||
| e816b885b2 | |||
| 53230943e8 | |||
| 2de29cb3a8 |
1
.gitignore
vendored
1
.gitignore
vendored
@ -2,6 +2,7 @@
|
|||||||
/data
|
/data
|
||||||
/logs
|
/logs
|
||||||
/target
|
/target
|
||||||
|
/temp
|
||||||
|
|
||||||
multilingualField/
|
multilingualField/
|
||||||
!.mvn/wrapper/maven-wrapper.jar
|
!.mvn/wrapper/maven-wrapper.jar
|
||||||
|
|||||||
2
.idea/.gitignore
generated
vendored
2
.idea/.gitignore
generated
vendored
@ -1,3 +1,5 @@
|
|||||||
# Default ignored files
|
# Default ignored files
|
||||||
/shelf/
|
/shelf/
|
||||||
/workspace.xml
|
/workspace.xml
|
||||||
|
CopilotChatHistory.xml
|
||||||
|
developer-tools.xml
|
||||||
84
pom.xml
84
pom.xml
@ -30,6 +30,57 @@
|
|||||||
</repository>
|
</repository>
|
||||||
</repositories>
|
</repositories>
|
||||||
|
|
||||||
|
<profiles>
|
||||||
|
<profile>
|
||||||
|
<id>dev-windows</id>
|
||||||
|
<activation>
|
||||||
|
<activeByDefault>true</activeByDefault>
|
||||||
|
</activation>
|
||||||
|
<properties>
|
||||||
|
<native.classifier>windows-x86_64</native.classifier>
|
||||||
|
</properties>
|
||||||
|
</profile>
|
||||||
|
<profile>
|
||||||
|
<id>prod-linux</id>
|
||||||
|
<dependencies>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.bytedeco</groupId>
|
||||||
|
<artifactId>ffmpeg</artifactId>
|
||||||
|
<version>7.1.1-1.5.12</version>
|
||||||
|
<classifier>linux-x86_64</classifier>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.bytedeco</groupId>
|
||||||
|
<artifactId>opencv</artifactId>
|
||||||
|
<version>4.11.0-1.5.12</version>
|
||||||
|
<classifier>linux-x86_64</classifier>
|
||||||
|
</dependency>
|
||||||
|
</dependencies>
|
||||||
|
<build>
|
||||||
|
<plugins>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.springframework.boot</groupId>
|
||||||
|
<artifactId>spring-boot-maven-plugin</artifactId>
|
||||||
|
<configuration>
|
||||||
|
<excludes>
|
||||||
|
<exclude>
|
||||||
|
<groupId>org.bytedeco</groupId>
|
||||||
|
<artifactId>ffmpeg</artifactId>
|
||||||
|
<classifier>windows-x86_64</classifier>
|
||||||
|
</exclude>
|
||||||
|
<exclude>
|
||||||
|
<groupId>org.bytedeco</groupId>
|
||||||
|
<artifactId>opencv</artifactId>
|
||||||
|
<classifier>windows-x86_64</classifier>
|
||||||
|
</exclude>
|
||||||
|
</excludes>
|
||||||
|
</configuration>
|
||||||
|
</plugin>
|
||||||
|
</plugins>
|
||||||
|
</build>
|
||||||
|
</profile>
|
||||||
|
</profiles>
|
||||||
|
|
||||||
<build>
|
<build>
|
||||||
<defaultGoal>compile</defaultGoal>
|
<defaultGoal>compile</defaultGoal>
|
||||||
<plugins>
|
<plugins>
|
||||||
@ -46,7 +97,7 @@
|
|||||||
</executions>
|
</executions>
|
||||||
<configuration>
|
<configuration>
|
||||||
<excludeDevtools>true</excludeDevtools>
|
<excludeDevtools>true</excludeDevtools>
|
||||||
<mainClass>com.imyeyu.server.TimiServerAPI</mainClass>
|
<mainClass>com.imyeyu.api.TimiServerAPI</mainClass>
|
||||||
<finalName>${project.artifactId}</finalName>
|
<finalName>${project.artifactId}</finalName>
|
||||||
</configuration>
|
</configuration>
|
||||||
</plugin>
|
</plugin>
|
||||||
@ -57,17 +108,17 @@
|
|||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.imyeyu.spring</groupId>
|
<groupId>com.imyeyu.spring</groupId>
|
||||||
<artifactId>timi-spring</artifactId>
|
<artifactId>timi-spring</artifactId>
|
||||||
<version>0.0.1</version>
|
<version>0.0.2</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.imyeyu.network</groupId>
|
<groupId>com.imyeyu.network</groupId>
|
||||||
<artifactId>timi-network</artifactId>
|
<artifactId>timi-network</artifactId>
|
||||||
<version>0.0.1</version>
|
<version>0.0.2</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>com.imyeyu.lang</groupId>
|
<groupId>com.imyeyu.lang</groupId>
|
||||||
<artifactId>timi-lang</artifactId>
|
<artifactId>timi-lang</artifactId>
|
||||||
<version>0.0.1</version>
|
<version>0.0.2</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.springframework.boot</groupId>
|
<groupId>org.springframework.boot</groupId>
|
||||||
@ -167,6 +218,25 @@
|
|||||||
<artifactId>jcodec-javase</artifactId>
|
<artifactId>jcodec-javase</artifactId>
|
||||||
<version>0.2.5</version>
|
<version>0.2.5</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.bytedeco</groupId>
|
||||||
|
<artifactId>javacv</artifactId>
|
||||||
|
<version>1.5.12</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.bytedeco</groupId>
|
||||||
|
<artifactId>ffmpeg</artifactId>
|
||||||
|
<version>7.1.1-1.5.12</version>
|
||||||
|
<scope>provided</scope>
|
||||||
|
<classifier>windows-x86_64</classifier>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.bytedeco</groupId>
|
||||||
|
<artifactId>opencv</artifactId>
|
||||||
|
<version>4.11.0-1.5.12</version>
|
||||||
|
<scope>provided</scope>
|
||||||
|
<classifier>windows-x86_64</classifier>
|
||||||
|
</dependency>
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.jsoup</groupId>
|
<groupId>org.jsoup</groupId>
|
||||||
<artifactId>jsoup</artifactId>
|
<artifactId>jsoup</artifactId>
|
||||||
@ -177,5 +247,11 @@
|
|||||||
<artifactId>commons-codec</artifactId>
|
<artifactId>commons-codec</artifactId>
|
||||||
<version>1.17.0</version>
|
<version>1.17.0</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.jayway.jsonpath</groupId>
|
||||||
|
<artifactId>json-path</artifactId>
|
||||||
|
<version>2.9.0</version>
|
||||||
|
<scope>test</scope>
|
||||||
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
</project>
|
</project>
|
||||||
|
|||||||
@ -1,4 +1,4 @@
|
|||||||
package com.imyeyu.server;
|
package com.imyeyu.api;
|
||||||
|
|
||||||
import com.imyeyu.io.IO;
|
import com.imyeyu.io.IO;
|
||||||
import com.imyeyu.java.TimiJava;
|
import com.imyeyu.java.TimiJava;
|
||||||
@ -27,7 +27,7 @@ import java.io.File;
|
|||||||
* @since 2021-02-23 21:35
|
* @since 2021-02-23 21:35
|
||||||
*/
|
*/
|
||||||
@Slf4j
|
@Slf4j
|
||||||
@SpringBootApplication(scanBasePackages = {"com.imyeyu.server", "com.imyeyu.spring"})
|
@SpringBootApplication(scanBasePackages = {"com.imyeyu.api", "com.imyeyu.spring"})
|
||||||
@EnableTransactionManagement
|
@EnableTransactionManagement
|
||||||
public class TimiServerAPI implements OS.FileSystem, ApplicationContextAware {
|
public class TimiServerAPI implements OS.FileSystem, ApplicationContextAware {
|
||||||
|
|
||||||
@ -1,6 +1,6 @@
|
|||||||
package com.imyeyu.server.annotation;
|
package com.imyeyu.api.annotation;
|
||||||
|
|
||||||
import com.imyeyu.server.bean.CaptchaFrom;
|
import com.imyeyu.api.bean.CaptchaFrom;
|
||||||
|
|
||||||
import java.lang.annotation.ElementType;
|
import java.lang.annotation.ElementType;
|
||||||
import java.lang.annotation.Retention;
|
import java.lang.annotation.Retention;
|
||||||
@ -1,8 +1,8 @@
|
|||||||
package com.imyeyu.server.annotation;
|
package com.imyeyu.api.annotation;
|
||||||
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import com.imyeyu.server.bean.CaptchaFrom;
|
import com.imyeyu.api.bean.CaptchaFrom;
|
||||||
import com.imyeyu.server.util.CaptchaManager;
|
import com.imyeyu.api.util.CaptchaManager;
|
||||||
import com.imyeyu.spring.bean.CaptchaData;
|
import com.imyeyu.spring.bean.CaptchaData;
|
||||||
import org.aspectj.lang.JoinPoint;
|
import org.aspectj.lang.JoinPoint;
|
||||||
import org.aspectj.lang.annotation.Aspect;
|
import org.aspectj.lang.annotation.Aspect;
|
||||||
@ -33,7 +33,7 @@ public class CaptchaValidInterceptor {
|
|||||||
private CaptchaManager captchaManager;
|
private CaptchaManager captchaManager;
|
||||||
|
|
||||||
/** 注入注解 */
|
/** 注入注解 */
|
||||||
@Pointcut("@annotation(com.imyeyu.server.annotation.CaptchaValid)")
|
@Pointcut("@annotation(com.imyeyu.api.annotation.CaptchaValid)")
|
||||||
public void captchaPointCut() {
|
public void captchaPointCut() {
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1,6 +1,6 @@
|
|||||||
package com.imyeyu.server.annotation;
|
package com.imyeyu.api.annotation;
|
||||||
|
|
||||||
import com.imyeyu.server.modules.common.bean.SettingKey;
|
import com.imyeyu.api.modules.common.bean.SettingKey;
|
||||||
|
|
||||||
import java.lang.annotation.ElementType;
|
import java.lang.annotation.ElementType;
|
||||||
import java.lang.annotation.Retention;
|
import java.lang.annotation.Retention;
|
||||||
@ -1,11 +1,11 @@
|
|||||||
package com.imyeyu.server.annotation;
|
package com.imyeyu.api.annotation;
|
||||||
|
|
||||||
import jakarta.servlet.http.HttpServletRequest;
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
import jakarta.servlet.http.HttpServletResponse;
|
import jakarta.servlet.http.HttpServletResponse;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import com.imyeyu.java.bean.timi.TimiCode;
|
import com.imyeyu.java.bean.timi.TimiCode;
|
||||||
import com.imyeyu.java.bean.timi.TimiException;
|
import com.imyeyu.java.bean.timi.TimiException;
|
||||||
import com.imyeyu.server.modules.common.service.SettingService;
|
import com.imyeyu.api.modules.common.service.SettingService;
|
||||||
import org.springframework.context.annotation.Lazy;
|
import org.springframework.context.annotation.Lazy;
|
||||||
import org.springframework.lang.NonNull;
|
import org.springframework.lang.NonNull;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package com.imyeyu.server.annotation;
|
package com.imyeyu.api.annotation;
|
||||||
|
|
||||||
import jakarta.servlet.http.HttpServletRequest;
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
import jakarta.servlet.http.HttpServletResponse;
|
import jakarta.servlet.http.HttpServletResponse;
|
||||||
@ -1,11 +1,11 @@
|
|||||||
package com.imyeyu.server.annotation;
|
package com.imyeyu.api.annotation;
|
||||||
|
|
||||||
import jakarta.servlet.http.HttpServletRequest;
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
import jakarta.servlet.http.HttpServletResponse;
|
import jakarta.servlet.http.HttpServletResponse;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import com.imyeyu.java.bean.timi.TimiCode;
|
import com.imyeyu.java.bean.timi.TimiCode;
|
||||||
import com.imyeyu.java.bean.timi.TimiException;
|
import com.imyeyu.java.bean.timi.TimiException;
|
||||||
import com.imyeyu.server.modules.blog.util.UserToken;
|
import com.imyeyu.api.modules.blog.util.UserToken;
|
||||||
import com.imyeyu.spring.TimiSpring;
|
import com.imyeyu.spring.TimiSpring;
|
||||||
import com.imyeyu.spring.annotation.RequiredToken;
|
import com.imyeyu.spring.annotation.RequiredToken;
|
||||||
import com.imyeyu.spring.annotation.RequiredTokenAbstractInterceptor;
|
import com.imyeyu.spring.annotation.RequiredTokenAbstractInterceptor;
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package com.imyeyu.server.bean;
|
package com.imyeyu.api.bean;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 验证码来源
|
* 验证码来源
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package com.imyeyu.server.bean;
|
package com.imyeyu.api.bean;
|
||||||
|
|
||||||
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Bean;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package com.imyeyu.server.bean;
|
package com.imyeyu.api.bean;
|
||||||
|
|
||||||
import java.lang.annotation.ElementType;
|
import java.lang.annotation.ElementType;
|
||||||
import java.lang.annotation.Retention;
|
import java.lang.annotation.Retention;
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package com.imyeyu.server.bean;
|
package com.imyeyu.api.bean;
|
||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import com.imyeyu.utils.OS;
|
import com.imyeyu.utils.OS;
|
||||||
@ -0,0 +1,15 @@
|
|||||||
|
package com.imyeyu.api.bean.wechat;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author 夜雨
|
||||||
|
* @since 2025-09-27 11:33
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class InitCodeResponse {
|
||||||
|
|
||||||
|
private String session_key;
|
||||||
|
|
||||||
|
private String openid;
|
||||||
|
}
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package com.imyeyu.server.config;
|
package com.imyeyu.api.config;
|
||||||
|
|
||||||
import jakarta.validation.constraints.NotNull;
|
import jakarta.validation.constraints.NotNull;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package com.imyeyu.server.config;
|
package com.imyeyu.api.config;
|
||||||
|
|
||||||
import com.google.gson.Gson;
|
import com.google.gson.Gson;
|
||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package com.imyeyu.server.config;
|
package com.imyeyu.api.config;
|
||||||
|
|
||||||
import jakarta.servlet.Filter;
|
import jakarta.servlet.Filter;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package com.imyeyu.server.config;
|
package com.imyeyu.api.config;
|
||||||
|
|
||||||
import com.mongodb.client.MongoClient;
|
import com.mongodb.client.MongoClient;
|
||||||
import com.mongodb.client.gridfs.GridFSBucket;
|
import com.mongodb.client.gridfs.GridFSBucket;
|
||||||
@ -1,9 +1,9 @@
|
|||||||
package com.imyeyu.server.config;
|
package com.imyeyu.api.config;
|
||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
import com.imyeyu.server.modules.blog.entity.ArticleRanking;
|
import com.imyeyu.api.modules.blog.entity.ArticleRanking;
|
||||||
import com.imyeyu.server.modules.common.entity.Multilingual;
|
import com.imyeyu.api.modules.common.entity.Multilingual;
|
||||||
import com.imyeyu.spring.bean.RedisConfigParams;
|
import com.imyeyu.spring.bean.RedisConfigParams;
|
||||||
import com.imyeyu.spring.config.AbstractRedisConfig;
|
import com.imyeyu.spring.config.AbstractRedisConfig;
|
||||||
import com.imyeyu.spring.util.Redis;
|
import com.imyeyu.spring.util.Redis;
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package com.imyeyu.server.config;
|
package com.imyeyu.api.config;
|
||||||
|
|
||||||
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Bean;
|
||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package com.imyeyu.server.config;
|
package com.imyeyu.api.config;
|
||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
@ -1,17 +1,18 @@
|
|||||||
package com.imyeyu.server.config;
|
package com.imyeyu.api.config;
|
||||||
|
|
||||||
import com.google.gson.GsonBuilder;
|
import com.google.gson.GsonBuilder;
|
||||||
import com.imyeyu.server.annotation.EnableSettingInterceptor;
|
import com.imyeyu.api.annotation.EnableSettingInterceptor;
|
||||||
import com.imyeyu.server.annotation.RequestRateLimitInterceptor;
|
import com.imyeyu.api.annotation.RequestRateLimitInterceptor;
|
||||||
import com.imyeyu.server.annotation.RequiredTokenInterceptor;
|
import com.imyeyu.api.annotation.RequiredTokenInterceptor;
|
||||||
import com.imyeyu.server.modules.common.entity.Attachment;
|
import com.imyeyu.api.modules.common.entity.Attachment;
|
||||||
import com.imyeyu.server.modules.common.vo.user.UserProfileView;
|
import com.imyeyu.api.modules.common.vo.user.UserProfileView;
|
||||||
import com.imyeyu.server.modules.common.vo.user.UserView;
|
import com.imyeyu.api.modules.common.vo.user.UserView;
|
||||||
import com.imyeyu.server.modules.minecraft.annotation.RequiredFMCServerTokenInterceptor;
|
import com.imyeyu.api.modules.journal.util.JournalAPIInterceptor;
|
||||||
import com.imyeyu.server.modules.minecraft.entity.MinecraftPlayer;
|
import com.imyeyu.api.modules.minecraft.annotation.RequiredFMCServerTokenInterceptor;
|
||||||
import com.imyeyu.server.modules.mirror.vo.MirrorView;
|
import com.imyeyu.api.modules.minecraft.entity.MinecraftPlayer;
|
||||||
import com.imyeyu.server.modules.system.util.SystemAPIInterceptor;
|
import com.imyeyu.api.modules.mirror.vo.MirrorView;
|
||||||
import com.imyeyu.server.util.GsonSerializerAdapter;
|
import com.imyeyu.api.modules.system.util.SystemAPIInterceptor;
|
||||||
|
import com.imyeyu.api.util.GsonSerializerAdapter;
|
||||||
import com.imyeyu.spring.annotation.RequestSingleParamResolver;
|
import com.imyeyu.spring.annotation.RequestSingleParamResolver;
|
||||||
import jakarta.validation.constraints.NotNull;
|
import jakarta.validation.constraints.NotNull;
|
||||||
import lombok.NonNull;
|
import lombok.NonNull;
|
||||||
@ -41,6 +42,7 @@ public class WebConfig implements WebMvcConfigurer {
|
|||||||
|
|
||||||
private final SystemAPIInterceptor systemAPIInterceptor;
|
private final SystemAPIInterceptor systemAPIInterceptor;
|
||||||
private final GsonSerializerAdapter gsonSerializerAdapter;
|
private final GsonSerializerAdapter gsonSerializerAdapter;
|
||||||
|
private final JournalAPIInterceptor journalAPIInterceptor;
|
||||||
private final RequiredTokenInterceptor requiredTokenInterceptor;
|
private final RequiredTokenInterceptor requiredTokenInterceptor;
|
||||||
private final EnableSettingInterceptor enableSettingInterceptor;
|
private final EnableSettingInterceptor enableSettingInterceptor;
|
||||||
private final RequestSingleParamResolver requestSingleParamResolver;
|
private final RequestSingleParamResolver requestSingleParamResolver;
|
||||||
@ -55,6 +57,7 @@ public class WebConfig implements WebMvcConfigurer {
|
|||||||
@Override
|
@Override
|
||||||
public void addInterceptors(InterceptorRegistry registry) {
|
public void addInterceptors(InterceptorRegistry registry) {
|
||||||
registry.addInterceptor(systemAPIInterceptor).addPathPatterns(SystemAPIInterceptor.PATH);
|
registry.addInterceptor(systemAPIInterceptor).addPathPatterns(SystemAPIInterceptor.PATH);
|
||||||
|
registry.addInterceptor(journalAPIInterceptor).addPathPatterns(JournalAPIInterceptor.PATH);
|
||||||
registry.addInterceptor(requiredFMCServerTokenInterceptor).addPathPatterns("/fmc/server/**");
|
registry.addInterceptor(requiredFMCServerTokenInterceptor).addPathPatterns("/fmc/server/**");
|
||||||
registry.addInterceptor(requiredTokenInterceptor).addPathPatterns("/**");
|
registry.addInterceptor(requiredTokenInterceptor).addPathPatterns("/**");
|
||||||
registry.addInterceptor(enableSettingInterceptor).addPathPatterns("/**");
|
registry.addInterceptor(enableSettingInterceptor).addPathPatterns("/**");
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package com.imyeyu.server.config.dbsource;
|
package com.imyeyu.api.config.dbsource;
|
||||||
|
|
||||||
import com.zaxxer.hikari.HikariDataSource;
|
import com.zaxxer.hikari.HikariDataSource;
|
||||||
import com.imyeyu.utils.Time;
|
import com.imyeyu.utils.Time;
|
||||||
@ -24,7 +24,7 @@ import java.sql.SQLException;
|
|||||||
* @since 2022-11-29 22:39
|
* @since 2022-11-29 22:39
|
||||||
*/
|
*/
|
||||||
@Configuration
|
@Configuration
|
||||||
@MapperScan(basePackages = "com.imyeyu.server.modules.forevermc.mapper", sqlSessionFactoryRef = "foreverMCSqlSessionFactory")
|
@MapperScan(basePackages = "com.imyeyu.api.modules.forevermc.mapper", sqlSessionFactoryRef = "foreverMCSqlSessionFactory")
|
||||||
public class ForeverMCDBConfig {
|
public class ForeverMCDBConfig {
|
||||||
|
|
||||||
public static final String ROLLBACKER = "foreverMCTransactionManager";
|
public static final String ROLLBACKER = "foreverMCTransactionManager";
|
||||||
@ -58,7 +58,7 @@ public class ForeverMCDBConfig {
|
|||||||
|
|
||||||
SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
|
SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
|
||||||
bean.setDataSource(datasource);
|
bean.setDataSource(datasource);
|
||||||
bean.setTypeAliasesPackage("com.imyeyu.server.modules.forevermc.entity");
|
bean.setTypeAliasesPackage("com.imyeyu.api.modules.forevermc.entity");
|
||||||
bean.setConfiguration(config);
|
bean.setConfiguration(config);
|
||||||
return bean.getObject();
|
return bean.getObject();
|
||||||
}
|
}
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package com.imyeyu.server.config.dbsource;
|
package com.imyeyu.api.config.dbsource;
|
||||||
|
|
||||||
import com.imyeyu.utils.Time;
|
import com.imyeyu.utils.Time;
|
||||||
import com.zaxxer.hikari.HikariDataSource;
|
import com.zaxxer.hikari.HikariDataSource;
|
||||||
@ -31,7 +31,7 @@ import java.util.List;
|
|||||||
*/
|
*/
|
||||||
@Configuration
|
@Configuration
|
||||||
@MapperScan(basePackages = {
|
@MapperScan(basePackages = {
|
||||||
"com.imyeyu.server.modules.gitea.mapper",
|
"com.imyeyu.api.modules.gitea.mapper",
|
||||||
}, sqlSessionFactoryRef = "giteaSqlSessionFactory")
|
}, sqlSessionFactoryRef = "giteaSqlSessionFactory")
|
||||||
public class GiteaDBConfig {
|
public class GiteaDBConfig {
|
||||||
|
|
||||||
@ -75,10 +75,10 @@ public class GiteaDBConfig {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
String[] typeAliases = {
|
String[] typeAliases = {
|
||||||
"com.imyeyu.server.modules.gitea.entity",
|
"com.imyeyu.api.modules.gitea.entity",
|
||||||
};
|
};
|
||||||
String[] typeHandlers = {
|
String[] typeHandlers = {
|
||||||
"com.imyeyu.server.handler"
|
"com.imyeyu.api.handler"
|
||||||
};
|
};
|
||||||
|
|
||||||
SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
|
SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package com.imyeyu.server.config.dbsource;
|
package com.imyeyu.api.config.dbsource;
|
||||||
|
|
||||||
import com.zaxxer.hikari.HikariDataSource;
|
import com.zaxxer.hikari.HikariDataSource;
|
||||||
import com.imyeyu.utils.Time;
|
import com.imyeyu.utils.Time;
|
||||||
@ -31,14 +31,15 @@ import java.util.List;
|
|||||||
*/
|
*/
|
||||||
@Configuration
|
@Configuration
|
||||||
@MapperScan(basePackages = {
|
@MapperScan(basePackages = {
|
||||||
"com.imyeyu.server.modules.git.mapper",
|
"com.imyeyu.api.modules.git.mapper",
|
||||||
"com.imyeyu.server.modules.bill.mapper",
|
"com.imyeyu.api.modules.bill.mapper",
|
||||||
"com.imyeyu.server.modules.blog.mapper",
|
"com.imyeyu.api.modules.blog.mapper",
|
||||||
"com.imyeyu.server.modules.lyric.mapper",
|
"com.imyeyu.api.modules.lyric.mapper",
|
||||||
"com.imyeyu.server.modules.mirror.mapper",
|
"com.imyeyu.api.modules.mirror.mapper",
|
||||||
"com.imyeyu.server.modules.system.mapper",
|
"com.imyeyu.api.modules.system.mapper",
|
||||||
"com.imyeyu.server.modules.common.mapper",
|
"com.imyeyu.api.modules.common.mapper",
|
||||||
"com.imyeyu.server.modules.minecraft.mapper"
|
"com.imyeyu.api.modules.journal.mapper",
|
||||||
|
"com.imyeyu.api.modules.minecraft.mapper"
|
||||||
}, sqlSessionFactoryRef = "timiServerSqlSessionFactory")
|
}, sqlSessionFactoryRef = "timiServerSqlSessionFactory")
|
||||||
public class TimiServerDBConfig {
|
public class TimiServerDBConfig {
|
||||||
|
|
||||||
@ -86,17 +87,18 @@ public class TimiServerDBConfig {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
String[] typeAliases = {
|
String[] typeAliases = {
|
||||||
"com.imyeyu.server.modules.git.entity",
|
"com.imyeyu.api.modules.git.entity",
|
||||||
"com.imyeyu.server.modules.bill.entity",
|
"com.imyeyu.api.modules.bill.entity",
|
||||||
"com.imyeyu.server.modules.blog.entity",
|
"com.imyeyu.api.modules.blog.entity",
|
||||||
"com.imyeyu.server.modules.lyric.entity",
|
"com.imyeyu.api.modules.lyric.entity",
|
||||||
"com.imyeyu.server.modules.mirror.entity",
|
"com.imyeyu.api.modules.mirror.entity",
|
||||||
"com.imyeyu.server.modules.system.entity",
|
"com.imyeyu.api.modules.system.entity",
|
||||||
"com.imyeyu.server.modules.common.entity",
|
"com.imyeyu.api.modules.common.entity",
|
||||||
"com.imyeyu.server.modules.minecraft.entity"
|
"com.imyeyu.api.modules.journal.entity",
|
||||||
|
"com.imyeyu.api.modules.minecraft.entity"
|
||||||
};
|
};
|
||||||
String[] typeHandlers = {
|
String[] typeHandlers = {
|
||||||
"com.imyeyu.server.handler"
|
"com.imyeyu.api.handler"
|
||||||
};
|
};
|
||||||
|
|
||||||
SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
|
SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package com.imyeyu.server.handler;
|
package com.imyeyu.api.handler;
|
||||||
|
|
||||||
import com.google.gson.JsonElement;
|
import com.google.gson.JsonElement;
|
||||||
import com.google.gson.JsonParser;
|
import com.google.gson.JsonParser;
|
||||||
@ -1,14 +1,14 @@
|
|||||||
package com.imyeyu.server.modules.bill.controller;
|
package com.imyeyu.api.modules.bill.controller;
|
||||||
|
|
||||||
import jakarta.validation.Valid;
|
import jakarta.validation.Valid;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import com.imyeyu.java.bean.timi.TimiCode;
|
import com.imyeyu.java.bean.timi.TimiCode;
|
||||||
import com.imyeyu.java.bean.timi.TimiException;
|
import com.imyeyu.java.bean.timi.TimiException;
|
||||||
import com.imyeyu.server.modules.bill.entity.Bill;
|
import com.imyeyu.api.modules.bill.entity.Bill;
|
||||||
import com.imyeyu.server.modules.bill.service.BillService;
|
import com.imyeyu.api.modules.bill.service.BillService;
|
||||||
import com.imyeyu.server.modules.common.bean.SettingKey;
|
import com.imyeyu.api.modules.common.bean.SettingKey;
|
||||||
import com.imyeyu.server.modules.common.service.SettingService;
|
import com.imyeyu.api.modules.common.service.SettingService;
|
||||||
import com.imyeyu.spring.TimiSpring;
|
import com.imyeyu.spring.TimiSpring;
|
||||||
import com.imyeyu.spring.annotation.AOPLog;
|
import com.imyeyu.spring.annotation.AOPLog;
|
||||||
import com.imyeyu.spring.annotation.RequestRateLimit;
|
import com.imyeyu.spring.annotation.RequestRateLimit;
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package com.imyeyu.server.modules.bill.entity;
|
package com.imyeyu.api.modules.bill.entity;
|
||||||
|
|
||||||
import jakarta.validation.constraints.DecimalMin;
|
import jakarta.validation.constraints.DecimalMin;
|
||||||
import jakarta.validation.constraints.NotBlank;
|
import jakarta.validation.constraints.NotBlank;
|
||||||
@ -1,6 +1,6 @@
|
|||||||
package com.imyeyu.server.modules.bill.mapper;
|
package com.imyeyu.api.modules.bill.mapper;
|
||||||
|
|
||||||
import com.imyeyu.server.modules.bill.entity.Bill;
|
import com.imyeyu.api.modules.bill.entity.Bill;
|
||||||
import com.imyeyu.spring.mapper.BaseMapper;
|
import com.imyeyu.spring.mapper.BaseMapper;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -1,6 +1,6 @@
|
|||||||
package com.imyeyu.server.modules.bill.service;
|
package com.imyeyu.api.modules.bill.service;
|
||||||
|
|
||||||
import com.imyeyu.server.modules.bill.entity.Bill;
|
import com.imyeyu.api.modules.bill.entity.Bill;
|
||||||
import com.imyeyu.spring.service.CreatableService;
|
import com.imyeyu.spring.service.CreatableService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -1,8 +1,8 @@
|
|||||||
package com.imyeyu.server.modules.bill.service.implement;
|
package com.imyeyu.api.modules.bill.service.implement;
|
||||||
|
|
||||||
import com.imyeyu.server.modules.bill.entity.Bill;
|
import com.imyeyu.api.modules.bill.entity.Bill;
|
||||||
import com.imyeyu.server.modules.bill.mapper.BillMapper;
|
import com.imyeyu.api.modules.bill.mapper.BillMapper;
|
||||||
import com.imyeyu.server.modules.bill.service.BillService;
|
import com.imyeyu.api.modules.bill.service.BillService;
|
||||||
import com.imyeyu.spring.mapper.BaseMapper;
|
import com.imyeyu.spring.mapper.BaseMapper;
|
||||||
import com.imyeyu.spring.service.AbstractEntityService;
|
import com.imyeyu.spring.service.AbstractEntityService;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
@ -1,10 +1,10 @@
|
|||||||
package com.imyeyu.server.modules.blog.controller;
|
package com.imyeyu.api.modules.blog.controller;
|
||||||
|
|
||||||
import com.imyeyu.server.modules.blog.entity.Article;
|
import com.imyeyu.api.modules.blog.entity.Article;
|
||||||
import com.imyeyu.server.modules.blog.entity.ArticleRanking;
|
import com.imyeyu.api.modules.blog.entity.ArticleRanking;
|
||||||
import com.imyeyu.server.modules.blog.service.ArticleService;
|
import com.imyeyu.api.modules.blog.service.ArticleService;
|
||||||
import com.imyeyu.server.modules.blog.vo.article.ArticleView;
|
import com.imyeyu.api.modules.blog.vo.article.ArticleView;
|
||||||
import com.imyeyu.server.modules.blog.vo.article.KeywordPage;
|
import com.imyeyu.api.modules.blog.vo.article.KeywordPage;
|
||||||
import com.imyeyu.spring.annotation.AOPLog;
|
import com.imyeyu.spring.annotation.AOPLog;
|
||||||
import com.imyeyu.spring.annotation.RequestRateLimit;
|
import com.imyeyu.spring.annotation.RequestRateLimit;
|
||||||
import com.imyeyu.spring.bean.Page;
|
import com.imyeyu.spring.bean.Page;
|
||||||
@ -1,9 +1,9 @@
|
|||||||
package com.imyeyu.server.modules.blog.controller;
|
package com.imyeyu.api.modules.blog.controller;
|
||||||
|
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import com.imyeyu.server.modules.blog.entity.Friend;
|
import com.imyeyu.api.modules.blog.entity.Friend;
|
||||||
import com.imyeyu.server.modules.blog.service.FriendService;
|
import com.imyeyu.api.modules.blog.service.FriendService;
|
||||||
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;
|
||||||
@ -1,7 +1,7 @@
|
|||||||
package com.imyeyu.server.modules.blog.entity;
|
package com.imyeyu.api.modules.blog.entity;
|
||||||
|
|
||||||
import com.google.gson.JsonElement;
|
import com.google.gson.JsonElement;
|
||||||
import com.imyeyu.server.modules.common.bean.CommentSupport;
|
import com.imyeyu.api.modules.common.bean.CommentSupport;
|
||||||
import com.imyeyu.spring.entity.Destroyable;
|
import com.imyeyu.spring.entity.Destroyable;
|
||||||
import com.imyeyu.spring.entity.Entity;
|
import com.imyeyu.spring.entity.Entity;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
@ -25,9 +25,6 @@ public class Article extends Entity implements CommentSupport, Destroyable {
|
|||||||
*/
|
*/
|
||||||
public enum Type {
|
public enum Type {
|
||||||
|
|
||||||
/** 关于 */
|
|
||||||
ABOUT,
|
|
||||||
|
|
||||||
/** 公版 */
|
/** 公版 */
|
||||||
PUBLIC,
|
PUBLIC,
|
||||||
|
|
||||||
@ -44,9 +41,6 @@ public class Article extends Entity implements CommentSupport, Destroyable {
|
|||||||
/** 类型 */
|
/** 类型 */
|
||||||
protected Type type;
|
protected Type type;
|
||||||
|
|
||||||
/** 分类 ID */
|
|
||||||
protected long classId;
|
|
||||||
|
|
||||||
/** 摘要 */
|
/** 摘要 */
|
||||||
protected String digest;
|
protected String digest;
|
||||||
|
|
||||||
@ -62,7 +56,7 @@ public class Article extends Entity implements CommentSupport, Destroyable {
|
|||||||
/** 喜欢数量 */
|
/** 喜欢数量 */
|
||||||
protected int likes;
|
protected int likes;
|
||||||
|
|
||||||
/** 是否显示评论 */
|
/** true 为显示评论 */
|
||||||
protected boolean showComment;
|
protected boolean showComment;
|
||||||
|
|
||||||
/** true 为可评论 */
|
/** true 为可评论 */
|
||||||
@ -71,6 +65,9 @@ public class Article extends Entity implements CommentSupport, Destroyable {
|
|||||||
/** true 为可排位 */
|
/** true 为可排位 */
|
||||||
protected boolean canRanking;
|
protected boolean canRanking;
|
||||||
|
|
||||||
|
/** true 为可通过列表查询 */
|
||||||
|
protected boolean canList;
|
||||||
|
|
||||||
/** @return true 为可评论 */
|
/** @return true 为可评论 */
|
||||||
@Override
|
@Override
|
||||||
public boolean canComment() {
|
public boolean canComment() {
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package com.imyeyu.server.modules.blog.entity;
|
package com.imyeyu.api.modules.blog.entity;
|
||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
@ -1,6 +1,6 @@
|
|||||||
package com.imyeyu.server.modules.blog.entity;
|
package com.imyeyu.api.modules.blog.entity;
|
||||||
|
|
||||||
import com.imyeyu.server.modules.common.vo.comment.CommentReplyView;
|
import com.imyeyu.api.modules.common.vo.comment.CommentReplyView;
|
||||||
import com.imyeyu.spring.annotation.table.AutoUUID;
|
import com.imyeyu.spring.annotation.table.AutoUUID;
|
||||||
import com.imyeyu.spring.annotation.table.Id;
|
import com.imyeyu.spring.annotation.table.Id;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package com.imyeyu.server.modules.blog.entity;
|
package com.imyeyu.api.modules.blog.entity;
|
||||||
|
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
@ -1,6 +1,6 @@
|
|||||||
package com.imyeyu.server.modules.blog.mapper;
|
package com.imyeyu.api.modules.blog.mapper;
|
||||||
|
|
||||||
import com.imyeyu.server.modules.blog.entity.Article;
|
import com.imyeyu.api.modules.blog.entity.Article;
|
||||||
import com.imyeyu.spring.mapper.BaseMapper;
|
import com.imyeyu.spring.mapper.BaseMapper;
|
||||||
import org.apache.ibatis.annotations.Select;
|
import org.apache.ibatis.annotations.Select;
|
||||||
|
|
||||||
@ -14,6 +14,12 @@ import java.util.List;
|
|||||||
*/
|
*/
|
||||||
public interface ArticleMapper extends BaseMapper<Article, Long> {
|
public interface ArticleMapper extends BaseMapper<Article, Long> {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
long count();
|
||||||
|
|
||||||
|
@Override
|
||||||
|
List<Article> list(long offset, int limit);
|
||||||
|
|
||||||
long countByKeyword(String keyword);
|
long countByKeyword(String keyword);
|
||||||
|
|
||||||
List<Article> selectByKeyword(String keyword, Long offset, int limit);
|
List<Article> selectByKeyword(String keyword, Long offset, int limit);
|
||||||
@ -1,7 +1,7 @@
|
|||||||
package com.imyeyu.server.modules.blog.mapper;
|
package com.imyeyu.api.modules.blog.mapper;
|
||||||
|
|
||||||
|
|
||||||
import com.imyeyu.server.modules.blog.entity.Friend;
|
import com.imyeyu.api.modules.blog.entity.Friend;
|
||||||
import com.imyeyu.spring.mapper.BaseMapper;
|
import com.imyeyu.spring.mapper.BaseMapper;
|
||||||
import org.apache.ibatis.annotations.Select;
|
import org.apache.ibatis.annotations.Select;
|
||||||
|
|
||||||
@ -1,10 +1,10 @@
|
|||||||
package com.imyeyu.server.modules.blog.service;
|
package com.imyeyu.api.modules.blog.service;
|
||||||
|
|
||||||
import com.imyeyu.java.bean.timi.TimiException;
|
import com.imyeyu.java.bean.timi.TimiException;
|
||||||
import com.imyeyu.server.modules.blog.entity.Article;
|
import com.imyeyu.api.modules.blog.entity.Article;
|
||||||
import com.imyeyu.server.modules.blog.entity.ArticleRanking;
|
import com.imyeyu.api.modules.blog.entity.ArticleRanking;
|
||||||
import com.imyeyu.server.modules.blog.vo.article.ArticleView;
|
import com.imyeyu.api.modules.blog.vo.article.ArticleView;
|
||||||
import com.imyeyu.server.modules.blog.vo.article.KeywordPage;
|
import com.imyeyu.api.modules.blog.vo.article.KeywordPage;
|
||||||
import com.imyeyu.spring.bean.PageResult;
|
import com.imyeyu.spring.bean.PageResult;
|
||||||
import com.imyeyu.spring.service.GettableService;
|
import com.imyeyu.spring.service.GettableService;
|
||||||
import com.imyeyu.spring.service.PageableService;
|
import com.imyeyu.spring.service.PageableService;
|
||||||
@ -1,7 +1,7 @@
|
|||||||
package com.imyeyu.server.modules.blog.service;
|
package com.imyeyu.api.modules.blog.service;
|
||||||
|
|
||||||
import com.imyeyu.java.bean.timi.TimiException;
|
import com.imyeyu.java.bean.timi.TimiException;
|
||||||
import com.imyeyu.server.modules.blog.entity.CommentRemindQueue;
|
import com.imyeyu.api.modules.blog.entity.CommentRemindQueue;
|
||||||
import com.imyeyu.spring.service.CreatableService;
|
import com.imyeyu.spring.service.CreatableService;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -1,6 +1,6 @@
|
|||||||
package com.imyeyu.server.modules.blog.service;
|
package com.imyeyu.api.modules.blog.service;
|
||||||
|
|
||||||
import com.imyeyu.server.modules.blog.entity.Friend;
|
import com.imyeyu.api.modules.blog.entity.Friend;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@ -1,20 +1,21 @@
|
|||||||
package com.imyeyu.server.modules.blog.service.implement;
|
package com.imyeyu.api.modules.blog.service.implement;
|
||||||
|
|
||||||
|
import com.imyeyu.api.config.dbsource.TimiServerDBConfig;
|
||||||
|
import com.imyeyu.api.modules.blog.entity.Article;
|
||||||
|
import com.imyeyu.api.modules.blog.entity.ArticleRanking;
|
||||||
|
import com.imyeyu.api.modules.blog.mapper.ArticleMapper;
|
||||||
|
import com.imyeyu.api.modules.blog.service.ArticleService;
|
||||||
|
import com.imyeyu.api.modules.blog.vo.article.ArticleView;
|
||||||
|
import com.imyeyu.api.modules.blog.vo.article.KeywordPage;
|
||||||
|
import com.imyeyu.api.modules.common.entity.Attachment;
|
||||||
|
import com.imyeyu.api.modules.common.entity.Comment;
|
||||||
|
import com.imyeyu.api.modules.common.entity.Tag;
|
||||||
|
import com.imyeyu.api.modules.common.mapper.CommentMapper;
|
||||||
|
import com.imyeyu.api.modules.common.service.AttachmentService;
|
||||||
|
import com.imyeyu.api.modules.common.service.TagService;
|
||||||
import com.imyeyu.java.bean.timi.TimiException;
|
import com.imyeyu.java.bean.timi.TimiException;
|
||||||
import com.imyeyu.server.config.dbsource.TimiServerDBConfig;
|
|
||||||
import com.imyeyu.server.modules.blog.entity.Article;
|
|
||||||
import com.imyeyu.server.modules.blog.entity.ArticleRanking;
|
|
||||||
import com.imyeyu.server.modules.blog.mapper.ArticleMapper;
|
|
||||||
import com.imyeyu.server.modules.blog.service.ArticleService;
|
|
||||||
import com.imyeyu.server.modules.blog.vo.article.ArticleView;
|
|
||||||
import com.imyeyu.server.modules.blog.vo.article.KeywordPage;
|
|
||||||
import com.imyeyu.server.modules.common.entity.Attachment;
|
|
||||||
import com.imyeyu.server.modules.common.entity.Comment;
|
|
||||||
import com.imyeyu.server.modules.common.entity.Tag;
|
|
||||||
import com.imyeyu.server.modules.common.mapper.CommentMapper;
|
|
||||||
import com.imyeyu.server.modules.common.service.AttachmentService;
|
|
||||||
import com.imyeyu.server.modules.common.service.TagService;
|
|
||||||
import com.imyeyu.spring.TimiSpring;
|
import com.imyeyu.spring.TimiSpring;
|
||||||
|
import com.imyeyu.spring.bean.Page;
|
||||||
import com.imyeyu.spring.bean.PageResult;
|
import com.imyeyu.spring.bean.PageResult;
|
||||||
import com.imyeyu.spring.mapper.BaseMapper;
|
import com.imyeyu.spring.mapper.BaseMapper;
|
||||||
import com.imyeyu.spring.service.AbstractEntityService;
|
import com.imyeyu.spring.service.AbstractEntityService;
|
||||||
@ -54,6 +55,14 @@ public class ArticleServiceImplement extends AbstractEntityService<Article, Long
|
|||||||
return mapper;
|
return mapper;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public PageResult<Article> page(Page page) {
|
||||||
|
PageResult<Article> result = new PageResult<>();
|
||||||
|
result.setList(mapper.list(page.getOffset(), page.getLimit()));
|
||||||
|
result.setTotal(mapper.count());
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
@Transactional(TimiServerDBConfig.ROLLBACKER)
|
@Transactional(TimiServerDBConfig.ROLLBACKER)
|
||||||
@Override
|
@Override
|
||||||
public ArticleView view(long id) {
|
public ArticleView view(long id) {
|
||||||
@ -1,9 +1,9 @@
|
|||||||
package com.imyeyu.server.modules.blog.service.implement;
|
package com.imyeyu.api.modules.blog.service.implement;
|
||||||
|
|
||||||
import com.imyeyu.server.config.dbsource.TimiServerDBConfig;
|
import com.imyeyu.api.config.dbsource.TimiServerDBConfig;
|
||||||
import com.imyeyu.server.modules.blog.entity.CommentRemindQueue;
|
import com.imyeyu.api.modules.blog.entity.CommentRemindQueue;
|
||||||
import com.imyeyu.server.modules.blog.service.CommentRemindQueueService;
|
import com.imyeyu.api.modules.blog.service.CommentRemindQueueService;
|
||||||
import com.imyeyu.server.modules.common.mapper.CommentRemindQueueMapper;
|
import com.imyeyu.api.modules.common.mapper.CommentRemindQueueMapper;
|
||||||
import com.imyeyu.spring.mapper.BaseMapper;
|
import com.imyeyu.spring.mapper.BaseMapper;
|
||||||
import com.imyeyu.spring.service.AbstractEntityService;
|
import com.imyeyu.spring.service.AbstractEntityService;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
@ -1,9 +1,9 @@
|
|||||||
package com.imyeyu.server.modules.blog.service.implement;
|
package com.imyeyu.api.modules.blog.service.implement;
|
||||||
|
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import com.imyeyu.server.modules.blog.entity.Friend;
|
import com.imyeyu.api.modules.blog.entity.Friend;
|
||||||
import com.imyeyu.server.modules.blog.mapper.FriendMapper;
|
import com.imyeyu.api.modules.blog.mapper.FriendMapper;
|
||||||
import com.imyeyu.server.modules.blog.service.FriendService;
|
import com.imyeyu.api.modules.blog.service.FriendService;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@ -1,13 +1,12 @@
|
|||||||
package com.imyeyu.server.modules.blog.util;
|
package com.imyeyu.api.modules.blog.util;
|
||||||
|
|
||||||
import com.imyeyu.java.TimiJava;
|
import com.imyeyu.java.TimiJava;
|
||||||
import com.imyeyu.java.bean.timi.TimiCode;
|
|
||||||
import com.imyeyu.java.bean.timi.TimiException;
|
import com.imyeyu.java.bean.timi.TimiException;
|
||||||
import com.imyeyu.server.config.RedisConfig;
|
import com.imyeyu.api.config.RedisConfig;
|
||||||
import com.imyeyu.server.modules.common.bean.SettingKey;
|
import com.imyeyu.api.modules.common.bean.SettingKey;
|
||||||
import com.imyeyu.server.modules.common.entity.User;
|
import com.imyeyu.api.modules.common.entity.User;
|
||||||
import com.imyeyu.server.modules.common.service.SettingService;
|
import com.imyeyu.api.modules.common.service.SettingService;
|
||||||
import com.imyeyu.server.modules.common.service.UserService;
|
import com.imyeyu.api.modules.common.service.UserService;
|
||||||
import com.imyeyu.spring.TimiSpring;
|
import com.imyeyu.spring.TimiSpring;
|
||||||
import com.imyeyu.spring.util.Redis;
|
import com.imyeyu.spring.util.Redis;
|
||||||
import com.imyeyu.spring.util.RedisSerializers;
|
import com.imyeyu.spring.util.RedisSerializers;
|
||||||
@ -1,8 +1,8 @@
|
|||||||
package com.imyeyu.server.modules.blog.vo.article;
|
package com.imyeyu.api.modules.blog.vo.article;
|
||||||
|
|
||||||
import com.imyeyu.server.modules.blog.entity.Article;
|
import com.imyeyu.api.modules.blog.entity.Article;
|
||||||
import com.imyeyu.server.modules.common.entity.Attachment;
|
import com.imyeyu.api.modules.common.entity.Attachment;
|
||||||
import com.imyeyu.server.modules.common.entity.Tag;
|
import com.imyeyu.api.modules.common.entity.Tag;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package com.imyeyu.server.modules.blog.vo.article;
|
package com.imyeyu.api.modules.blog.vo.article;
|
||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package com.imyeyu.server.modules.blog.vo.article;
|
package com.imyeyu.api.modules.blog.vo.article;
|
||||||
|
|
||||||
import jakarta.validation.constraints.NotBlank;
|
import jakarta.validation.constraints.NotBlank;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package com.imyeyu.server.modules.blog.vo.article;
|
package com.imyeyu.api.modules.blog.vo.article;
|
||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package com.imyeyu.server.modules.common.bean;
|
package com.imyeyu.api.modules.common.bean;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 支持评论的实体
|
* 支持评论的实体
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package com.imyeyu.server.modules.common.bean;
|
package com.imyeyu.api.modules.common.bean;
|
||||||
|
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package com.imyeyu.server.modules.common.bean;
|
package com.imyeyu.api.modules.common.bean;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
@ -0,0 +1,39 @@
|
|||||||
|
package com.imyeyu.api.modules.common.bean;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author 夜雨
|
||||||
|
* @since 2025-10-20 15:04
|
||||||
|
*/
|
||||||
|
public class MediaAttach {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author 夜雨
|
||||||
|
* @since 2025-09-28 02:01
|
||||||
|
*/
|
||||||
|
public enum Type {
|
||||||
|
|
||||||
|
SOURCE,
|
||||||
|
|
||||||
|
THUMB
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @author 夜雨
|
||||||
|
* @since 2025-10-20 15:04
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public static class ExtData {
|
||||||
|
|
||||||
|
private Long sourceId;
|
||||||
|
|
||||||
|
private String sourceMongoId;
|
||||||
|
|
||||||
|
private boolean isImage;
|
||||||
|
|
||||||
|
private boolean isVideo;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package com.imyeyu.server.modules.common.bean;
|
package com.imyeyu.api.modules.common.bean;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 系统设置
|
* 系统设置
|
||||||
@ -32,6 +32,8 @@ public enum SettingKey {
|
|||||||
/** 启用灰色滤镜 */
|
/** 启用灰色滤镜 */
|
||||||
ENABLE_GRAY_FILTER,
|
ENABLE_GRAY_FILTER,
|
||||||
|
|
||||||
|
TEMP_FILE_PATH,
|
||||||
|
|
||||||
// ---------- ICP 备案号 ----------
|
// ---------- ICP 备案号 ----------
|
||||||
|
|
||||||
ICP_IMYEYU_COM,
|
ICP_IMYEYU_COM,
|
||||||
@ -111,6 +113,8 @@ public enum SettingKey {
|
|||||||
|
|
||||||
GIT_API,
|
GIT_API,
|
||||||
|
|
||||||
|
GIT_ABOUT_ARTICLE,
|
||||||
|
|
||||||
GIT_REPO_PATH,
|
GIT_REPO_PATH,
|
||||||
|
|
||||||
// ---------- 远程音乐 ----------
|
// ---------- 远程音乐 ----------
|
||||||
@ -127,6 +131,16 @@ public enum SettingKey {
|
|||||||
|
|
||||||
MUSIC_CONTROLLER_URI,
|
MUSIC_CONTROLLER_URI,
|
||||||
|
|
||||||
|
// ---------- ----------
|
||||||
|
|
||||||
|
JOURNAL_KEY,
|
||||||
|
|
||||||
|
JOURNAL_APP_ID,
|
||||||
|
|
||||||
|
JOURNAL_APP_SECRET,
|
||||||
|
|
||||||
|
JOURNAL_TRAVEL,
|
||||||
|
|
||||||
// ---------- 系统 ----------
|
// ---------- 系统 ----------
|
||||||
|
|
||||||
SYSTEM_FILE_BASE,
|
SYSTEM_FILE_BASE,
|
||||||
@ -0,0 +1,23 @@
|
|||||||
|
package com.imyeyu.api.modules.common.bean;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.nio.file.Path;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author 夜雨
|
||||||
|
* @since 2025-09-27 01:47
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class TempFileMetaData {
|
||||||
|
|
||||||
|
private String id;
|
||||||
|
|
||||||
|
private String name;
|
||||||
|
|
||||||
|
private String originalName;
|
||||||
|
|
||||||
|
private Path path;
|
||||||
|
|
||||||
|
private Long lastAccessAt;
|
||||||
|
}
|
||||||
@ -1,17 +1,17 @@
|
|||||||
package com.imyeyu.server.modules.common.controller;
|
package com.imyeyu.api.modules.common.controller;
|
||||||
|
|
||||||
import com.imyeyu.server.annotation.CaptchaValid;
|
import com.imyeyu.api.annotation.CaptchaValid;
|
||||||
import com.imyeyu.server.annotation.EnableSetting;
|
import com.imyeyu.api.annotation.EnableSetting;
|
||||||
import com.imyeyu.server.bean.CaptchaFrom;
|
import com.imyeyu.api.bean.CaptchaFrom;
|
||||||
import com.imyeyu.server.modules.common.bean.SettingKey;
|
import com.imyeyu.api.modules.common.bean.SettingKey;
|
||||||
import com.imyeyu.server.modules.common.entity.Comment;
|
import com.imyeyu.api.modules.common.entity.Comment;
|
||||||
import com.imyeyu.server.modules.common.entity.CommentReply;
|
import com.imyeyu.api.modules.common.entity.CommentReply;
|
||||||
import com.imyeyu.server.modules.common.service.CommentReplyService;
|
import com.imyeyu.api.modules.common.service.CommentReplyService;
|
||||||
import com.imyeyu.server.modules.common.service.CommentService;
|
import com.imyeyu.api.modules.common.service.CommentService;
|
||||||
import com.imyeyu.server.modules.common.vo.comment.CommentReplyPage;
|
import com.imyeyu.api.modules.common.vo.comment.CommentReplyPage;
|
||||||
import com.imyeyu.server.modules.common.vo.comment.CommentReplyView;
|
import com.imyeyu.api.modules.common.vo.comment.CommentReplyView;
|
||||||
import com.imyeyu.server.modules.common.vo.comment.CommentView;
|
import com.imyeyu.api.modules.common.vo.comment.CommentView;
|
||||||
import com.imyeyu.server.modules.git.vo.issue.CommentPage;
|
import com.imyeyu.api.modules.git.vo.issue.CommentPage;
|
||||||
import com.imyeyu.spring.annotation.AOPLog;
|
import com.imyeyu.spring.annotation.AOPLog;
|
||||||
import com.imyeyu.spring.annotation.RequestRateLimit;
|
import com.imyeyu.spring.annotation.RequestRateLimit;
|
||||||
import com.imyeyu.spring.bean.CaptchaData;
|
import com.imyeyu.spring.bean.CaptchaData;
|
||||||
@ -1,36 +1,39 @@
|
|||||||
package com.imyeyu.server.modules.common.controller;
|
package com.imyeyu.api.modules.common.controller;
|
||||||
|
|
||||||
import com.google.gson.Gson;
|
import com.google.gson.Gson;
|
||||||
import com.google.gson.reflect.TypeToken;
|
import com.google.gson.reflect.TypeToken;
|
||||||
|
import com.imyeyu.api.bean.CaptchaFrom;
|
||||||
|
import com.imyeyu.api.modules.common.bean.ImageType;
|
||||||
|
import com.imyeyu.api.modules.common.bean.SettingKey;
|
||||||
|
import com.imyeyu.api.modules.common.entity.Attachment;
|
||||||
|
import com.imyeyu.api.modules.common.entity.Setting;
|
||||||
|
import com.imyeyu.api.modules.common.entity.Task;
|
||||||
|
import com.imyeyu.api.modules.common.entity.Template;
|
||||||
|
import com.imyeyu.api.modules.common.entity.Version;
|
||||||
|
import com.imyeyu.api.modules.common.service.AttachmentService;
|
||||||
|
import com.imyeyu.api.modules.common.service.FeedbackService;
|
||||||
|
import com.imyeyu.api.modules.common.service.SettingService;
|
||||||
|
import com.imyeyu.api.modules.common.service.TaskService;
|
||||||
|
import com.imyeyu.api.modules.common.service.TempFileService;
|
||||||
|
import com.imyeyu.api.modules.common.service.TemplateService;
|
||||||
|
import com.imyeyu.api.modules.common.service.VersionService;
|
||||||
|
import com.imyeyu.api.modules.common.vo.FeedbackRequest;
|
||||||
|
import com.imyeyu.api.modules.common.vo.TempFileResponse;
|
||||||
|
import com.imyeyu.api.modules.common.vo.attachment.AttachmentView;
|
||||||
|
import com.imyeyu.api.modules.system.util.ResourceHandler;
|
||||||
|
import com.imyeyu.api.util.CaptchaManager;
|
||||||
import com.imyeyu.io.IO;
|
import com.imyeyu.io.IO;
|
||||||
import com.imyeyu.java.TimiJava;
|
import com.imyeyu.java.TimiJava;
|
||||||
import com.imyeyu.java.bean.timi.TimiCode;
|
import com.imyeyu.java.bean.timi.TimiCode;
|
||||||
import com.imyeyu.java.bean.timi.TimiException;
|
import com.imyeyu.java.bean.timi.TimiException;
|
||||||
import com.imyeyu.java.ref.Ref;
|
import com.imyeyu.java.ref.Ref;
|
||||||
import com.imyeyu.network.Network;
|
import com.imyeyu.network.Network;
|
||||||
import com.imyeyu.server.bean.CaptchaFrom;
|
|
||||||
import com.imyeyu.server.modules.common.bean.ImageType;
|
|
||||||
import com.imyeyu.server.modules.common.bean.SettingKey;
|
|
||||||
import com.imyeyu.server.modules.common.entity.Attachment;
|
|
||||||
import com.imyeyu.server.modules.common.entity.Setting;
|
|
||||||
import com.imyeyu.server.modules.common.entity.Task;
|
|
||||||
import com.imyeyu.server.modules.common.entity.Template;
|
|
||||||
import com.imyeyu.server.modules.common.entity.Version;
|
|
||||||
import com.imyeyu.server.modules.common.service.AttachmentService;
|
|
||||||
import com.imyeyu.server.modules.common.service.FeedbackService;
|
|
||||||
import com.imyeyu.server.modules.common.service.SettingService;
|
|
||||||
import com.imyeyu.server.modules.common.service.TaskService;
|
|
||||||
import com.imyeyu.server.modules.common.service.TemplateService;
|
|
||||||
import com.imyeyu.server.modules.common.service.VersionService;
|
|
||||||
import com.imyeyu.server.modules.common.vo.FeedbackRequest;
|
|
||||||
import com.imyeyu.server.modules.common.vo.attachment.AttachmentView;
|
|
||||||
import com.imyeyu.server.modules.system.util.ResourceHandler;
|
|
||||||
import com.imyeyu.server.util.CaptchaManager;
|
|
||||||
import com.imyeyu.spring.TimiSpring;
|
import com.imyeyu.spring.TimiSpring;
|
||||||
import com.imyeyu.spring.annotation.AOPLog;
|
import com.imyeyu.spring.annotation.AOPLog;
|
||||||
import com.imyeyu.spring.annotation.IgnoreGlobalReturn;
|
import com.imyeyu.spring.annotation.IgnoreGlobalReturn;
|
||||||
import com.imyeyu.spring.annotation.RequestRateLimit;
|
import com.imyeyu.spring.annotation.RequestRateLimit;
|
||||||
import com.imyeyu.spring.bean.CaptchaData;
|
import com.imyeyu.spring.bean.CaptchaData;
|
||||||
|
import com.imyeyu.spring.bean.RequestRange;
|
||||||
import com.mongodb.client.gridfs.GridFSBucket;
|
import com.mongodb.client.gridfs.GridFSBucket;
|
||||||
import com.mongodb.client.gridfs.GridFSDownloadStream;
|
import com.mongodb.client.gridfs.GridFSDownloadStream;
|
||||||
import com.mongodb.client.gridfs.model.GridFSFile;
|
import com.mongodb.client.gridfs.model.GridFSFile;
|
||||||
@ -39,6 +42,7 @@ import jakarta.servlet.http.HttpServletResponse;
|
|||||||
import jakarta.validation.Valid;
|
import jakarta.validation.Valid;
|
||||||
import jakarta.validation.constraints.NotBlank;
|
import jakarta.validation.constraints.NotBlank;
|
||||||
import jakarta.validation.constraints.NotNull;
|
import jakarta.validation.constraints.NotNull;
|
||||||
|
import lombok.Cleanup;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.tika.Tika;
|
import org.apache.tika.Tika;
|
||||||
@ -51,6 +55,7 @@ import org.springframework.web.bind.annotation.RequestBody;
|
|||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
import org.springframework.web.bind.annotation.RequestParam;
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
import org.springframework.web.multipart.MultipartFile;
|
||||||
import org.yaml.snakeyaml.Yaml;
|
import org.yaml.snakeyaml.Yaml;
|
||||||
|
|
||||||
import javax.imageio.ImageIO;
|
import javax.imageio.ImageIO;
|
||||||
@ -58,8 +63,12 @@ import java.awt.Graphics2D;
|
|||||||
import java.awt.RenderingHints;
|
import java.awt.RenderingHints;
|
||||||
import java.awt.image.BufferedImage;
|
import java.awt.image.BufferedImage;
|
||||||
import java.io.ByteArrayInputStream;
|
import java.io.ByteArrayInputStream;
|
||||||
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.io.RandomAccessFile;
|
||||||
import java.nio.charset.StandardCharsets;
|
import java.nio.charset.StandardCharsets;
|
||||||
|
import java.nio.file.Files;
|
||||||
|
import java.nio.file.Path;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
@ -83,6 +92,7 @@ public class CommonController {
|
|||||||
private final SettingService settingService;
|
private final SettingService settingService;
|
||||||
private final FeedbackService feedbackService;
|
private final FeedbackService feedbackService;
|
||||||
private final TemplateService templateService;
|
private final TemplateService templateService;
|
||||||
|
private final TempFileService tempFileService;
|
||||||
private final AttachmentService attachmentService;
|
private final AttachmentService attachmentService;
|
||||||
|
|
||||||
private final Gson gson;
|
private final Gson gson;
|
||||||
@ -171,7 +181,7 @@ public class CommonController {
|
|||||||
@RequestRateLimit
|
@RequestRateLimit
|
||||||
@PostMapping("/feedback")
|
@PostMapping("/feedback")
|
||||||
public void createFeedback(@Valid @NotNull @RequestBody CaptchaData<FeedbackRequest> request) {
|
public void createFeedback(@Valid @NotNull @RequestBody CaptchaData<FeedbackRequest> request) {
|
||||||
captchaManager.test(request.getCaptcha(), request.getFrom());
|
captchaManager.test(request.getCaptcha(), request.getCaptchaId());
|
||||||
feedbackService.create(request.getData());
|
feedbackService.create(request.getData());
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -250,12 +260,6 @@ public class CommonController {
|
|||||||
return result.stream().collect(Collectors.toMap(Setting::getKey, Setting::getValue));
|
return result.stream().collect(Collectors.toMap(Setting::getKey, Setting::getValue));
|
||||||
}
|
}
|
||||||
|
|
||||||
@RequestRateLimit
|
|
||||||
@GetMapping("/setting/flushCache")
|
|
||||||
public void settingFlushCache() {
|
|
||||||
settingService.flushCache();
|
|
||||||
}
|
|
||||||
|
|
||||||
@AOPLog
|
@AOPLog
|
||||||
@RequestRateLimit
|
@RequestRateLimit
|
||||||
@GetMapping("/attachment/{mongoId}")
|
@GetMapping("/attachment/{mongoId}")
|
||||||
@ -264,7 +268,6 @@ public class CommonController {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@AOPLog
|
@AOPLog
|
||||||
@RequestRateLimit
|
|
||||||
@IgnoreGlobalReturn
|
@IgnoreGlobalReturn
|
||||||
@GetMapping("/attachment/read/{mongoId}")
|
@GetMapping("/attachment/read/{mongoId}")
|
||||||
public void readAttachment(
|
public void readAttachment(
|
||||||
@ -372,4 +375,72 @@ public class CommonController {
|
|||||||
resp.setCharacterEncoding(StandardCharsets.UTF_8.toString());
|
resp.setCharacterEncoding(StandardCharsets.UTF_8.toString());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@AOPLog
|
||||||
|
@PostMapping("/temp/file/upload")
|
||||||
|
public List<TempFileResponse> uploadFile(@RequestParam("file") List<MultipartFile> files) {
|
||||||
|
return tempFileService.store(files);
|
||||||
|
}
|
||||||
|
|
||||||
|
@AOPLog
|
||||||
|
@RequestRateLimit
|
||||||
|
@IgnoreGlobalReturn
|
||||||
|
@GetMapping("/temp/file/read/{fileId}")
|
||||||
|
public void tempFileRead(@PathVariable String fileId, HttpServletRequest req, HttpServletResponse resp) {
|
||||||
|
try {
|
||||||
|
File file = tempFileService.get(fileId);
|
||||||
|
if (TimiJava.isEmpty(file) && file.exists()) {
|
||||||
|
resp.setStatus(HttpServletResponse.SC_NOT_FOUND);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
Path filePath = file.toPath();
|
||||||
|
resp.setContentLengthLong(Files.size(filePath));
|
||||||
|
String mimeType = new Tika().detect(filePath);
|
||||||
|
if (TimiJava.isNotEmpty(mimeType)) {
|
||||||
|
resp.setContentType(mimeType);
|
||||||
|
}
|
||||||
|
req.setAttribute(ResourceHandler.ATTR_TYPE, ResourceHandler.Type.FILE);
|
||||||
|
req.setAttribute(ResourceHandler.ATTR_VALUE, filePath);
|
||||||
|
resourceHandler.handleRequest(req, resp);
|
||||||
|
} catch (Exception e) {
|
||||||
|
resp.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@AOPLog
|
||||||
|
@RequestRateLimit
|
||||||
|
@IgnoreGlobalReturn
|
||||||
|
@RequestMapping("/temp/file/download/{fileId}")
|
||||||
|
public void tempFileDownload(@PathVariable String fileId, HttpServletResponse resp) {
|
||||||
|
try {
|
||||||
|
File file = tempFileService.get(fileId);
|
||||||
|
if (TimiJava.isEmpty(file) && file.exists()) {
|
||||||
|
resp.setStatus(HttpServletResponse.SC_NOT_FOUND);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
String mimeType = new Tika().detect(file);
|
||||||
|
resp.setContentType(mimeType);
|
||||||
|
resp.setHeader("Content-Disposition", Network.getFileDownloadHeader(file.getName()));
|
||||||
|
resp.setHeader("Accept-Ranges", "bytes");
|
||||||
|
|
||||||
|
RequestRange range = TimiSpring.requestRange(file.length());
|
||||||
|
if (range == null) {
|
||||||
|
// 完整文件
|
||||||
|
resp.setContentLengthLong(file.length());
|
||||||
|
resp.setStatus(HttpServletResponse.SC_OK);
|
||||||
|
IO.toOutputStream(resp.getOutputStream(), file);
|
||||||
|
} else {
|
||||||
|
// 分片文件
|
||||||
|
resp.setStatus(HttpServletResponse.SC_PARTIAL_CONTENT);
|
||||||
|
resp.setHeader("Content-Range", "bytes %s-%s/%s".formatted(range.getStart(), range.getEnd(), file.length()));
|
||||||
|
resp.setContentLengthLong(range.getLength());
|
||||||
|
|
||||||
|
@Cleanup RandomAccessFile raf = new RandomAccessFile(file, "r");
|
||||||
|
raf.seek(range.getStart());
|
||||||
|
IO.toOutputStream(resp.getOutputStream(), raf, range.getStart(), range.getLength());
|
||||||
|
}
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error("download error", e);
|
||||||
|
resp.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@ -1,10 +1,10 @@
|
|||||||
package com.imyeyu.server.modules.common.controller;
|
package com.imyeyu.api.modules.common.controller;
|
||||||
|
|
||||||
import com.imyeyu.server.modules.common.entity.Icon;
|
import com.imyeyu.api.modules.common.entity.Icon;
|
||||||
import com.imyeyu.server.modules.common.service.IconService;
|
import com.imyeyu.api.modules.common.service.IconService;
|
||||||
import com.imyeyu.server.modules.common.vo.icon.AllResponse;
|
import com.imyeyu.api.modules.common.vo.icon.AllResponse;
|
||||||
import com.imyeyu.server.modules.common.vo.icon.NamePage;
|
import com.imyeyu.api.modules.common.vo.icon.NamePage;
|
||||||
import com.imyeyu.server.modules.common.vo.icon.UnicodePage;
|
import com.imyeyu.api.modules.common.vo.icon.UnicodePage;
|
||||||
import com.imyeyu.spring.annotation.AOPLog;
|
import com.imyeyu.spring.annotation.AOPLog;
|
||||||
import com.imyeyu.spring.annotation.RequestRateLimit;
|
import com.imyeyu.spring.annotation.RequestRateLimit;
|
||||||
import com.imyeyu.spring.bean.Page;
|
import com.imyeyu.spring.bean.Page;
|
||||||
@ -1,32 +1,32 @@
|
|||||||
package com.imyeyu.server.modules.common.controller;
|
package com.imyeyu.api.modules.common.controller;
|
||||||
|
|
||||||
import com.imyeyu.java.TimiJava;
|
import com.imyeyu.java.TimiJava;
|
||||||
import com.imyeyu.java.bean.timi.TimiException;
|
import com.imyeyu.java.bean.timi.TimiException;
|
||||||
import com.imyeyu.server.annotation.CaptchaValid;
|
import com.imyeyu.api.annotation.CaptchaValid;
|
||||||
import com.imyeyu.server.annotation.EnableSetting;
|
import com.imyeyu.api.annotation.EnableSetting;
|
||||||
import com.imyeyu.server.bean.CaptchaFrom;
|
import com.imyeyu.api.bean.CaptchaFrom;
|
||||||
import com.imyeyu.server.modules.common.bean.SettingKey;
|
import com.imyeyu.api.modules.common.bean.SettingKey;
|
||||||
import com.imyeyu.server.modules.common.entity.CommentReply;
|
import com.imyeyu.api.modules.common.entity.CommentReply;
|
||||||
import com.imyeyu.server.modules.common.entity.UserConfig;
|
import com.imyeyu.api.modules.common.entity.UserConfig;
|
||||||
import com.imyeyu.server.modules.common.entity.UserPrivacy;
|
import com.imyeyu.api.modules.common.entity.UserPrivacy;
|
||||||
import com.imyeyu.server.modules.common.service.CommentReplyService;
|
import com.imyeyu.api.modules.common.service.CommentReplyService;
|
||||||
import com.imyeyu.server.modules.common.service.CommentService;
|
import com.imyeyu.api.modules.common.service.CommentService;
|
||||||
import com.imyeyu.server.modules.common.service.UserConfigService;
|
import com.imyeyu.api.modules.common.service.UserConfigService;
|
||||||
import com.imyeyu.server.modules.common.service.UserPrivacyService;
|
import com.imyeyu.api.modules.common.service.UserPrivacyService;
|
||||||
import com.imyeyu.server.modules.common.service.UserProfileService;
|
import com.imyeyu.api.modules.common.service.UserProfileService;
|
||||||
import com.imyeyu.server.modules.common.service.UserService;
|
import com.imyeyu.api.modules.common.service.UserService;
|
||||||
import com.imyeyu.server.modules.common.vo.comment.CommentReplyPage;
|
import com.imyeyu.api.modules.common.vo.comment.CommentReplyPage;
|
||||||
import com.imyeyu.server.modules.common.vo.comment.CommentReplyView;
|
import com.imyeyu.api.modules.common.vo.comment.CommentReplyView;
|
||||||
import com.imyeyu.server.modules.common.vo.comment.CommentView;
|
import com.imyeyu.api.modules.common.vo.comment.CommentView;
|
||||||
import com.imyeyu.server.modules.common.vo.comment.UserCommentPage;
|
import com.imyeyu.api.modules.common.vo.comment.UserCommentPage;
|
||||||
import com.imyeyu.server.modules.common.vo.user.EmailVerifyCallbackRequest;
|
import com.imyeyu.api.modules.common.vo.user.EmailVerifyCallbackRequest;
|
||||||
import com.imyeyu.server.modules.common.vo.user.LoginRequest;
|
import com.imyeyu.api.modules.common.vo.user.LoginRequest;
|
||||||
import com.imyeyu.server.modules.common.vo.user.LoginResponse;
|
import com.imyeyu.api.modules.common.vo.user.LoginResponse;
|
||||||
import com.imyeyu.server.modules.common.vo.user.RegisterRequest;
|
import com.imyeyu.api.modules.common.vo.user.RegisterRequest;
|
||||||
import com.imyeyu.server.modules.common.vo.user.UpdatePasswordByKeyRequest;
|
import com.imyeyu.api.modules.common.vo.user.UpdatePasswordByKeyRequest;
|
||||||
import com.imyeyu.server.modules.common.vo.user.UpdatePasswordRequest;
|
import com.imyeyu.api.modules.common.vo.user.UpdatePasswordRequest;
|
||||||
import com.imyeyu.server.modules.common.vo.user.UserRequest;
|
import com.imyeyu.api.modules.common.vo.user.UserRequest;
|
||||||
import com.imyeyu.server.modules.common.vo.user.UserView;
|
import com.imyeyu.api.modules.common.vo.user.UserView;
|
||||||
import com.imyeyu.spring.annotation.AOPLog;
|
import com.imyeyu.spring.annotation.AOPLog;
|
||||||
import com.imyeyu.spring.annotation.RequestRateLimit;
|
import com.imyeyu.spring.annotation.RequestRateLimit;
|
||||||
import com.imyeyu.spring.annotation.RequestSingleParam;
|
import com.imyeyu.spring.annotation.RequestSingleParam;
|
||||||
@ -1,7 +1,7 @@
|
|||||||
package com.imyeyu.server.modules.common.entity;
|
package com.imyeyu.api.modules.common.entity;
|
||||||
|
|
||||||
|
import com.imyeyu.api.bean.MultilingualHandler;
|
||||||
import com.imyeyu.java.ref.Ref;
|
import com.imyeyu.java.ref.Ref;
|
||||||
import com.imyeyu.server.bean.MultilingualHandler;
|
|
||||||
import com.imyeyu.spring.entity.Entity;
|
import com.imyeyu.spring.entity.Entity;
|
||||||
import lombok.AllArgsConstructor;
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
@ -44,24 +44,36 @@ public class Attachment extends Entity implements MultilingualHandler {
|
|||||||
/** 镜像 */
|
/** 镜像 */
|
||||||
MIRROR,
|
MIRROR,
|
||||||
|
|
||||||
|
JOURNAL,
|
||||||
|
|
||||||
|
JOURNAL_TRAVEL,
|
||||||
|
|
||||||
|
JOURNAL_MOMENT,
|
||||||
|
|
||||||
/** 系统 */
|
/** 系统 */
|
||||||
SYSTEM
|
SYSTEM
|
||||||
}
|
}
|
||||||
|
|
||||||
private BizType bizType;
|
protected BizType bizType;
|
||||||
|
|
||||||
private Long bizId;
|
protected Long bizId;
|
||||||
|
|
||||||
private String attachType;
|
protected String attachType;
|
||||||
|
|
||||||
private String mongoId;
|
protected String mongoId;
|
||||||
|
|
||||||
@MultilingualField
|
@MultilingualField
|
||||||
private String title;
|
protected String title;
|
||||||
|
|
||||||
private String name;
|
protected String name;
|
||||||
|
|
||||||
private Long size;
|
protected Long size;
|
||||||
|
|
||||||
|
protected String md5;
|
||||||
|
|
||||||
|
protected String ext;
|
||||||
|
|
||||||
|
protected Long destroyAt;
|
||||||
|
|
||||||
public void setAttachTypeValue(Enum<?> attachType) {
|
public void setAttachTypeValue(Enum<?> attachType) {
|
||||||
this.attachType = attachType.toString();
|
this.attachType = attachType.toString();
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package com.imyeyu.server.modules.common.entity;
|
package com.imyeyu.api.modules.common.entity;
|
||||||
|
|
||||||
import com.imyeyu.spring.service.GettableService;
|
import com.imyeyu.spring.service.GettableService;
|
||||||
import jakarta.validation.constraints.NotBlank;
|
import jakarta.validation.constraints.NotBlank;
|
||||||
@ -7,12 +7,11 @@ import lombok.Data;
|
|||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.NoArgsConstructor;
|
import lombok.NoArgsConstructor;
|
||||||
import com.imyeyu.server.modules.blog.service.implement.ArticleServiceImplement;
|
import com.imyeyu.api.modules.blog.service.implement.ArticleServiceImplement;
|
||||||
import com.imyeyu.server.modules.common.bean.CommentSupport;
|
import com.imyeyu.api.modules.common.bean.CommentSupport;
|
||||||
import com.imyeyu.server.modules.git.service.implement.IssueServiceImplement;
|
import com.imyeyu.api.modules.git.service.implement.IssueServiceImplement;
|
||||||
import com.imyeyu.server.modules.git.service.implement.MergeServiceImplement;
|
import com.imyeyu.api.modules.git.service.implement.MergeServiceImplement;
|
||||||
import com.imyeyu.spring.entity.Entity;
|
import com.imyeyu.spring.entity.Entity;
|
||||||
import com.imyeyu.spring.service.BaseService;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 评论
|
* 评论
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package com.imyeyu.server.modules.common.entity;
|
package com.imyeyu.api.modules.common.entity;
|
||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package com.imyeyu.server.modules.common.entity;
|
package com.imyeyu.api.modules.common.entity;
|
||||||
|
|
||||||
import com.imyeyu.spring.annotation.table.AutoUUID;
|
import com.imyeyu.spring.annotation.table.AutoUUID;
|
||||||
import com.imyeyu.spring.annotation.table.Id;
|
import com.imyeyu.spring.annotation.table.Id;
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package com.imyeyu.server.modules.common.entity;
|
package com.imyeyu.api.modules.common.entity;
|
||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package com.imyeyu.server.modules.common.entity;
|
package com.imyeyu.api.modules.common.entity;
|
||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package com.imyeyu.server.modules.common.entity;
|
package com.imyeyu.api.modules.common.entity;
|
||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
@ -1,9 +1,9 @@
|
|||||||
package com.imyeyu.server.modules.common.entity;
|
package com.imyeyu.api.modules.common.entity;
|
||||||
|
|
||||||
import com.imyeyu.java.bean.timi.TimiCode;
|
import com.imyeyu.java.bean.timi.TimiCode;
|
||||||
import com.imyeyu.java.bean.timi.TimiException;
|
import com.imyeyu.java.bean.timi.TimiException;
|
||||||
import com.imyeyu.java.ref.Ref;
|
import com.imyeyu.java.ref.Ref;
|
||||||
import com.imyeyu.server.TimiServerAPI;
|
import com.imyeyu.api.TimiServerAPI;
|
||||||
import com.imyeyu.spring.entity.Entity;
|
import com.imyeyu.spring.entity.Entity;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
@ -1,6 +1,6 @@
|
|||||||
package com.imyeyu.server.modules.common.entity;
|
package com.imyeyu.api.modules.common.entity;
|
||||||
|
|
||||||
import com.imyeyu.server.modules.common.bean.SettingKey;
|
import com.imyeyu.api.modules.common.bean.SettingKey;
|
||||||
import com.imyeyu.spring.annotation.table.Id;
|
import com.imyeyu.spring.annotation.table.Id;
|
||||||
import com.imyeyu.spring.entity.Creatable;
|
import com.imyeyu.spring.entity.Creatable;
|
||||||
import com.imyeyu.spring.entity.Updatable;
|
import com.imyeyu.spring.entity.Updatable;
|
||||||
@ -1,6 +1,6 @@
|
|||||||
package com.imyeyu.server.modules.common.entity;
|
package com.imyeyu.api.modules.common.entity;
|
||||||
|
|
||||||
import com.imyeyu.server.bean.MultilingualHandler;
|
import com.imyeyu.api.bean.MultilingualHandler;
|
||||||
import com.imyeyu.spring.entity.Entity;
|
import com.imyeyu.spring.entity.Entity;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package com.imyeyu.server.modules.common.entity;
|
package com.imyeyu.api.modules.common.entity;
|
||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package com.imyeyu.server.modules.common.entity;
|
package com.imyeyu.api.modules.common.entity;
|
||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package com.imyeyu.server.modules.common.entity;
|
package com.imyeyu.api.modules.common.entity;
|
||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package com.imyeyu.server.modules.common.entity;
|
package com.imyeyu.api.modules.common.entity;
|
||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package com.imyeyu.server.modules.common.entity;
|
package com.imyeyu.api.modules.common.entity;
|
||||||
|
|
||||||
import com.imyeyu.spring.annotation.table.Id;
|
import com.imyeyu.spring.annotation.table.Id;
|
||||||
import com.imyeyu.spring.entity.Updatable;
|
import com.imyeyu.spring.entity.Updatable;
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package com.imyeyu.server.modules.common.entity;
|
package com.imyeyu.api.modules.common.entity;
|
||||||
|
|
||||||
import com.imyeyu.java.ref.Ref;
|
import com.imyeyu.java.ref.Ref;
|
||||||
import com.imyeyu.spring.annotation.table.Id;
|
import com.imyeyu.spring.annotation.table.Id;
|
||||||
@ -1,6 +1,6 @@
|
|||||||
package com.imyeyu.server.modules.common.entity;
|
package com.imyeyu.api.modules.common.entity;
|
||||||
|
|
||||||
import com.imyeyu.server.modules.common.bean.ImageType;
|
import com.imyeyu.api.modules.common.bean.ImageType;
|
||||||
import com.imyeyu.spring.annotation.table.Id;
|
import com.imyeyu.spring.annotation.table.Id;
|
||||||
import com.imyeyu.spring.entity.Updatable;
|
import com.imyeyu.spring.entity.Updatable;
|
||||||
import jakarta.validation.constraints.Max;
|
import jakarta.validation.constraints.Max;
|
||||||
@ -1,4 +1,4 @@
|
|||||||
package com.imyeyu.server.modules.common.entity;
|
package com.imyeyu.api.modules.common.entity;
|
||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
@ -1,6 +1,7 @@
|
|||||||
package com.imyeyu.server.modules.common.mapper;
|
package com.imyeyu.api.modules.common.mapper;
|
||||||
|
|
||||||
import com.imyeyu.server.modules.common.entity.Attachment;
|
import com.imyeyu.api.modules.common.entity.Attachment;
|
||||||
|
import com.imyeyu.spring.bean.Page;
|
||||||
import com.imyeyu.spring.mapper.BaseMapper;
|
import com.imyeyu.spring.mapper.BaseMapper;
|
||||||
import org.apache.ibatis.annotations.Select;
|
import org.apache.ibatis.annotations.Select;
|
||||||
|
|
||||||
@ -24,8 +25,9 @@ public interface AttachmentMapper extends BaseMapper<Attachment, Long> {
|
|||||||
@Select("SELECT * FROM attachment WHERE biz_type = #{bizType} AND biz_id = #{bizId} AND attach_type = #{attachType} " + VALID + LIMIT_1)
|
@Select("SELECT * FROM attachment WHERE biz_type = #{bizType} AND biz_id = #{bizId} AND attach_type = #{attachType} " + VALID + LIMIT_1)
|
||||||
Attachment selectByAttachType(Attachment.BizType bizType, long bizId, Enum<?> attachType);
|
Attachment selectByAttachType(Attachment.BizType bizType, long bizId, Enum<?> attachType);
|
||||||
|
|
||||||
@Select("SELECT * FROM attachment WHERE biz_type = #{bizType} AND biz_id = #{bizId} AND " + VALID + PAGE)
|
List<Attachment> listByBizId(Attachment.BizType bizType, Long bizId, List<Enum<?>> attachTypes, Page page);
|
||||||
List<Attachment> listByBizId(Attachment.BizType bizType, long bizId, long offset, int limit);
|
|
||||||
|
|
||||||
List<Attachment> listByAttachType(Attachment.BizType bizType, long bizId, Enum<?> ...attachTypes);
|
long countByBizId(Attachment.BizType bizType, Long bizId, List<Enum<?>> attachTypes);
|
||||||
|
|
||||||
|
List<Attachment> listByMd5s(Attachment.BizType bizType, Long bizId, List<Enum<?>> attachTypes, List<String> md5s);
|
||||||
}
|
}
|
||||||
@ -1,7 +1,7 @@
|
|||||||
package com.imyeyu.server.modules.common.mapper;
|
package com.imyeyu.api.modules.common.mapper;
|
||||||
|
|
||||||
import com.imyeyu.server.modules.common.entity.Comment;
|
import com.imyeyu.api.modules.common.entity.Comment;
|
||||||
import com.imyeyu.server.modules.common.vo.comment.CommentView;
|
import com.imyeyu.api.modules.common.vo.comment.CommentView;
|
||||||
import com.imyeyu.spring.mapper.BaseMapper;
|
import com.imyeyu.spring.mapper.BaseMapper;
|
||||||
import org.apache.ibatis.annotations.Select;
|
import org.apache.ibatis.annotations.Select;
|
||||||
import org.apache.ibatis.annotations.Update;
|
import org.apache.ibatis.annotations.Update;
|
||||||
@ -17,6 +17,12 @@ import java.util.List;
|
|||||||
*/
|
*/
|
||||||
public interface CommentMapper extends BaseMapper<Comment, Long> {
|
public interface CommentMapper extends BaseMapper<Comment, Long> {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
long count();
|
||||||
|
|
||||||
|
@Override
|
||||||
|
List<Comment> list(long offset, int limit);
|
||||||
|
|
||||||
@Select("SELECT * FROM comment WHERE id = #{id}" + NOT_DELETE)
|
@Select("SELECT * FROM comment WHERE id = #{id}" + NOT_DELETE)
|
||||||
Comment select(Long id);
|
Comment select(Long id);
|
||||||
|
|
||||||
@ -1,6 +1,6 @@
|
|||||||
package com.imyeyu.server.modules.common.mapper;
|
package com.imyeyu.api.modules.common.mapper;
|
||||||
|
|
||||||
import com.imyeyu.server.modules.blog.entity.CommentRemindQueue;
|
import com.imyeyu.api.modules.blog.entity.CommentRemindQueue;
|
||||||
import com.imyeyu.spring.mapper.BaseMapper;
|
import com.imyeyu.spring.mapper.BaseMapper;
|
||||||
import org.apache.ibatis.annotations.Delete;
|
import org.apache.ibatis.annotations.Delete;
|
||||||
import org.apache.ibatis.annotations.Select;
|
import org.apache.ibatis.annotations.Select;
|
||||||
@ -1,9 +1,9 @@
|
|||||||
package com.imyeyu.server.modules.common.mapper;
|
package com.imyeyu.api.modules.common.mapper;
|
||||||
|
|
||||||
|
|
||||||
import com.imyeyu.server.modules.common.entity.CommentReply;
|
import com.imyeyu.api.modules.common.entity.CommentReply;
|
||||||
import com.imyeyu.server.modules.common.vo.comment.CommentReplyPage;
|
import com.imyeyu.api.modules.common.vo.comment.CommentReplyPage;
|
||||||
import com.imyeyu.server.modules.common.vo.comment.CommentReplyView;
|
import com.imyeyu.api.modules.common.vo.comment.CommentReplyView;
|
||||||
import com.imyeyu.spring.mapper.BaseMapper;
|
import com.imyeyu.spring.mapper.BaseMapper;
|
||||||
import org.apache.ibatis.annotations.Select;
|
import org.apache.ibatis.annotations.Select;
|
||||||
import org.apache.ibatis.annotations.Update;
|
import org.apache.ibatis.annotations.Update;
|
||||||
@ -1,6 +1,6 @@
|
|||||||
package com.imyeyu.server.modules.common.mapper;
|
package com.imyeyu.api.modules.common.mapper;
|
||||||
|
|
||||||
import com.imyeyu.server.modules.common.entity.EmailQueueLog;
|
import com.imyeyu.api.modules.common.entity.EmailQueueLog;
|
||||||
import com.imyeyu.spring.mapper.BaseMapper;
|
import com.imyeyu.spring.mapper.BaseMapper;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -1,6 +1,6 @@
|
|||||||
package com.imyeyu.server.modules.common.mapper;
|
package com.imyeyu.api.modules.common.mapper;
|
||||||
|
|
||||||
import com.imyeyu.server.modules.common.entity.EmailQueue;
|
import com.imyeyu.api.modules.common.entity.EmailQueue;
|
||||||
import com.imyeyu.spring.mapper.BaseMapper;
|
import com.imyeyu.spring.mapper.BaseMapper;
|
||||||
import org.apache.ibatis.annotations.Select;
|
import org.apache.ibatis.annotations.Select;
|
||||||
|
|
||||||
@ -1,6 +1,6 @@
|
|||||||
package com.imyeyu.server.modules.common.mapper;
|
package com.imyeyu.api.modules.common.mapper;
|
||||||
|
|
||||||
import com.imyeyu.server.modules.common.entity.Feedback;
|
import com.imyeyu.api.modules.common.entity.Feedback;
|
||||||
import com.imyeyu.spring.mapper.BaseMapper;
|
import com.imyeyu.spring.mapper.BaseMapper;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -1,6 +1,6 @@
|
|||||||
package com.imyeyu.server.modules.common.mapper;
|
package com.imyeyu.api.modules.common.mapper;
|
||||||
|
|
||||||
import com.imyeyu.server.modules.common.entity.Icon;
|
import com.imyeyu.api.modules.common.entity.Icon;
|
||||||
import com.imyeyu.spring.mapper.BaseMapper;
|
import com.imyeyu.spring.mapper.BaseMapper;
|
||||||
import org.apache.ibatis.annotations.Select;
|
import org.apache.ibatis.annotations.Select;
|
||||||
|
|
||||||
@ -1,6 +1,6 @@
|
|||||||
package com.imyeyu.server.modules.common.mapper;
|
package com.imyeyu.api.modules.common.mapper;
|
||||||
|
|
||||||
import com.imyeyu.server.modules.common.entity.Multilingual;
|
import com.imyeyu.api.modules.common.entity.Multilingual;
|
||||||
import com.imyeyu.spring.mapper.BaseMapper;
|
import com.imyeyu.spring.mapper.BaseMapper;
|
||||||
import org.apache.ibatis.annotations.Select;
|
import org.apache.ibatis.annotations.Select;
|
||||||
|
|
||||||
@ -1,7 +1,7 @@
|
|||||||
package com.imyeyu.server.modules.common.mapper;
|
package com.imyeyu.api.modules.common.mapper;
|
||||||
|
|
||||||
import com.imyeyu.server.modules.common.bean.SettingKey;
|
import com.imyeyu.api.modules.common.bean.SettingKey;
|
||||||
import com.imyeyu.server.modules.common.entity.Setting;
|
import com.imyeyu.api.modules.common.entity.Setting;
|
||||||
import com.imyeyu.spring.mapper.BaseMapper;
|
import com.imyeyu.spring.mapper.BaseMapper;
|
||||||
import org.apache.ibatis.annotations.Select;
|
import org.apache.ibatis.annotations.Select;
|
||||||
|
|
||||||
@ -1,6 +1,6 @@
|
|||||||
package com.imyeyu.server.modules.common.mapper;
|
package com.imyeyu.api.modules.common.mapper;
|
||||||
|
|
||||||
import com.imyeyu.server.modules.common.entity.Tag;
|
import com.imyeyu.api.modules.common.entity.Tag;
|
||||||
import com.imyeyu.spring.mapper.BaseMapper;
|
import com.imyeyu.spring.mapper.BaseMapper;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -1,6 +1,6 @@
|
|||||||
package com.imyeyu.server.modules.common.mapper;
|
package com.imyeyu.api.modules.common.mapper;
|
||||||
|
|
||||||
import com.imyeyu.server.modules.common.entity.Task;
|
import com.imyeyu.api.modules.common.entity.Task;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@ -1,6 +1,6 @@
|
|||||||
package com.imyeyu.server.modules.common.mapper;
|
package com.imyeyu.api.modules.common.mapper;
|
||||||
|
|
||||||
import com.imyeyu.server.modules.common.entity.Template;
|
import com.imyeyu.api.modules.common.entity.Template;
|
||||||
import com.imyeyu.spring.mapper.BaseMapper;
|
import com.imyeyu.spring.mapper.BaseMapper;
|
||||||
import org.apache.ibatis.annotations.Select;
|
import org.apache.ibatis.annotations.Select;
|
||||||
|
|
||||||
@ -1,6 +1,6 @@
|
|||||||
package com.imyeyu.server.modules.common.mapper;
|
package com.imyeyu.api.modules.common.mapper;
|
||||||
|
|
||||||
import com.imyeyu.server.modules.common.entity.UserConfig;
|
import com.imyeyu.api.modules.common.entity.UserConfig;
|
||||||
import com.imyeyu.spring.mapper.BaseMapper;
|
import com.imyeyu.spring.mapper.BaseMapper;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -1,6 +1,6 @@
|
|||||||
package com.imyeyu.server.modules.common.mapper;
|
package com.imyeyu.api.modules.common.mapper;
|
||||||
|
|
||||||
import com.imyeyu.server.modules.common.entity.User;
|
import com.imyeyu.api.modules.common.entity.User;
|
||||||
import com.imyeyu.spring.mapper.BaseMapper;
|
import com.imyeyu.spring.mapper.BaseMapper;
|
||||||
import org.apache.ibatis.annotations.Select;
|
import org.apache.ibatis.annotations.Select;
|
||||||
|
|
||||||
@ -1,6 +1,6 @@
|
|||||||
package com.imyeyu.server.modules.common.mapper;
|
package com.imyeyu.api.modules.common.mapper;
|
||||||
|
|
||||||
import com.imyeyu.server.modules.common.entity.UserPrivacy;
|
import com.imyeyu.api.modules.common.entity.UserPrivacy;
|
||||||
import com.imyeyu.spring.mapper.BaseMapper;
|
import com.imyeyu.spring.mapper.BaseMapper;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -1,6 +1,6 @@
|
|||||||
package com.imyeyu.server.modules.common.mapper;
|
package com.imyeyu.api.modules.common.mapper;
|
||||||
|
|
||||||
import com.imyeyu.server.modules.common.entity.UserProfile;
|
import com.imyeyu.api.modules.common.entity.UserProfile;
|
||||||
import com.imyeyu.spring.mapper.BaseMapper;
|
import com.imyeyu.spring.mapper.BaseMapper;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -1,6 +1,6 @@
|
|||||||
package com.imyeyu.server.modules.common.mapper;
|
package com.imyeyu.api.modules.common.mapper;
|
||||||
|
|
||||||
import com.imyeyu.server.modules.common.entity.Version;
|
import com.imyeyu.api.modules.common.entity.Version;
|
||||||
import com.imyeyu.spring.mapper.BaseMapper;
|
import com.imyeyu.spring.mapper.BaseMapper;
|
||||||
import org.apache.ibatis.annotations.Select;
|
import org.apache.ibatis.annotations.Select;
|
||||||
|
|
||||||
@ -0,0 +1,85 @@
|
|||||||
|
package com.imyeyu.api.modules.common.service;
|
||||||
|
|
||||||
|
import com.imyeyu.api.modules.common.entity.Attachment;
|
||||||
|
import com.imyeyu.api.modules.common.vo.attachment.AttachmentRequest;
|
||||||
|
import com.imyeyu.api.modules.common.vo.attachment.AttachmentView;
|
||||||
|
import com.imyeyu.java.bean.timi.TimiException;
|
||||||
|
import com.imyeyu.spring.bean.Page;
|
||||||
|
import com.imyeyu.spring.bean.PageResult;
|
||||||
|
import com.imyeyu.spring.service.DeletableService;
|
||||||
|
import com.imyeyu.spring.service.DestroyableService;
|
||||||
|
import com.imyeyu.spring.service.GettableService;
|
||||||
|
import com.imyeyu.spring.service.PageableService;
|
||||||
|
import com.imyeyu.spring.service.UpdatableService;
|
||||||
|
import com.mongodb.client.gridfs.model.GridFSFile;
|
||||||
|
|
||||||
|
import java.io.InputStream;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 附件服务
|
||||||
|
*
|
||||||
|
* <p>删除和销毁都为数据库软删除,但删除不删除 MongoDB 文件,而销毁则删除 MongoDB 文件
|
||||||
|
*
|
||||||
|
* @author 夜雨
|
||||||
|
* @since 2023-08-15 10:21
|
||||||
|
*/
|
||||||
|
public interface AttachmentService extends GettableService<Attachment, Long>, PageableService<Attachment>, UpdatableService<Attachment>, DeletableService<Long>, DestroyableService<Long> {
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @param request
|
||||||
|
*/
|
||||||
|
void create(AttachmentRequest request);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建媒体附件,同步创建缩略图
|
||||||
|
*
|
||||||
|
* @param request 附件请求
|
||||||
|
* @return 缩略图附件
|
||||||
|
*/
|
||||||
|
Attachment createMedia(AttachmentRequest request) throws TimiException;
|
||||||
|
|
||||||
|
void deleteMedia(Long thumbId) throws TimiException;
|
||||||
|
|
||||||
|
Attachment getByBizId(Attachment.BizType bizType, long bizId);
|
||||||
|
|
||||||
|
Attachment getByAttachType(Attachment.BizType bizType, long bizId, Enum<?> attachType);
|
||||||
|
|
||||||
|
Attachment getByMongoId(String mongoId);
|
||||||
|
|
||||||
|
AttachmentView viewByMongoId(String mongoId);
|
||||||
|
|
||||||
|
GridFSFile readByMongoId(String mongoId);
|
||||||
|
|
||||||
|
InputStream getInputStreamByMongoId(String mongoId);
|
||||||
|
|
||||||
|
byte[] readAllByMongoId(String mongoId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据业务获取所有附件
|
||||||
|
*
|
||||||
|
* @param bizType 业务类型
|
||||||
|
* @param bizId 业务 ID,可为 null
|
||||||
|
* @param attachTypes 附件类型,可为 null
|
||||||
|
* @return 所有附件
|
||||||
|
* @throws TimiException 服务异常
|
||||||
|
*/
|
||||||
|
List<Attachment> listByBizId(Attachment.BizType bizType, Long bizId, Enum<?> ...attachTypes);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 根据业务获取所有附件
|
||||||
|
*
|
||||||
|
* @param bizType 业务类型
|
||||||
|
* @param bizId 业务 ID,可为 null
|
||||||
|
* @param attachTypes 附件类型,可为 null
|
||||||
|
* @return 附件数量
|
||||||
|
* @throws TimiException 服务异常
|
||||||
|
*/
|
||||||
|
long countByBizId(Attachment.BizType bizType, Long bizId, Enum<?> ...attachTypes);
|
||||||
|
|
||||||
|
List<Attachment> listByMd5s(Attachment.BizType bizType, Long bizId, List<Enum<?>> attachTypeList, List<String> md5s) throws TimiException;
|
||||||
|
|
||||||
|
PageResult<Attachment> pageByBizId(Attachment.BizType bizType, Long bizId, List<Enum<?>> attachTypeList, Page page) throws TimiException;
|
||||||
|
}
|
||||||
@ -1,8 +1,8 @@
|
|||||||
package com.imyeyu.server.modules.common.service;
|
package com.imyeyu.api.modules.common.service;
|
||||||
|
|
||||||
import com.imyeyu.server.modules.common.entity.CommentReply;
|
import com.imyeyu.api.modules.common.entity.CommentReply;
|
||||||
import com.imyeyu.server.modules.common.vo.comment.CommentReplyPage;
|
import com.imyeyu.api.modules.common.vo.comment.CommentReplyPage;
|
||||||
import com.imyeyu.server.modules.common.vo.comment.CommentReplyView;
|
import com.imyeyu.api.modules.common.vo.comment.CommentReplyView;
|
||||||
import com.imyeyu.spring.bean.PageResult;
|
import com.imyeyu.spring.bean.PageResult;
|
||||||
import com.imyeyu.spring.service.CreatableService;
|
import com.imyeyu.spring.service.CreatableService;
|
||||||
import com.imyeyu.spring.service.DeletableService;
|
import com.imyeyu.spring.service.DeletableService;
|
||||||
@ -1,10 +1,10 @@
|
|||||||
package com.imyeyu.server.modules.common.service;
|
package com.imyeyu.api.modules.common.service;
|
||||||
|
|
||||||
import com.imyeyu.java.bean.timi.TimiException;
|
import com.imyeyu.java.bean.timi.TimiException;
|
||||||
import com.imyeyu.server.modules.common.entity.Comment;
|
import com.imyeyu.api.modules.common.entity.Comment;
|
||||||
import com.imyeyu.server.modules.common.vo.comment.CommentView;
|
import com.imyeyu.api.modules.common.vo.comment.CommentView;
|
||||||
import com.imyeyu.server.modules.common.vo.comment.UserCommentPage;
|
import com.imyeyu.api.modules.common.vo.comment.UserCommentPage;
|
||||||
import com.imyeyu.server.modules.git.vo.issue.CommentPage;
|
import com.imyeyu.api.modules.git.vo.issue.CommentPage;
|
||||||
import com.imyeyu.spring.bean.PageResult;
|
import com.imyeyu.spring.bean.PageResult;
|
||||||
import com.imyeyu.spring.service.CreatableService;
|
import com.imyeyu.spring.service.CreatableService;
|
||||||
import com.imyeyu.spring.service.DeletableService;
|
import com.imyeyu.spring.service.DeletableService;
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user