111
This commit is contained in:
@@ -9,6 +9,8 @@ import org.springframework.boot.web.servlet.ServletComponentScan;
|
||||
import org.springframework.context.annotation.ComponentScan;
|
||||
import org.springframework.transaction.annotation.EnableTransactionManagement;
|
||||
|
||||
import java.util.TimeZone;
|
||||
|
||||
|
||||
@SpringBootApplication
|
||||
@ServletComponentScan(basePackages ={"com.it.rattan"})
|
||||
@@ -19,6 +21,8 @@ import org.springframework.transaction.annotation.EnableTransactionManagement;
|
||||
public class SpcCloudApplication {
|
||||
|
||||
public static void main(String[] args) {
|
||||
// 统一设置JVM默认时区为北京时间,确保无论服务器部署在哪里时间都一致
|
||||
TimeZone.setDefault(TimeZone.getTimeZone("Asia/Shanghai"));
|
||||
SpringApplication.run(SpcCloudApplication.class, args);
|
||||
}
|
||||
|
||||
|
||||
@@ -7,40 +7,60 @@ import com.fasterxml.jackson.databind.DeserializationFeature;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.fasterxml.jackson.databind.SerializationFeature;
|
||||
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
|
||||
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateDeserializer;
|
||||
import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer;
|
||||
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateSerializer;
|
||||
import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.context.annotation.Primary;
|
||||
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.TimeZone;
|
||||
|
||||
/**
|
||||
* Jackson 配置类
|
||||
* 彻底解决 StackOverflowError 问题
|
||||
* 统一时间格式为 yyyy-MM-dd HH:mm:ss,时区为 Asia/Shanghai
|
||||
*/
|
||||
@Configuration
|
||||
public class JacksonConfig {
|
||||
|
||||
private static final String DATE_TIME_PATTERN = "yyyy-MM-dd HH:mm:ss";
|
||||
private static final String DATE_PATTERN = "yyyy-MM-dd";
|
||||
|
||||
@Bean
|
||||
@Primary
|
||||
public ObjectMapper objectMapper() {
|
||||
ObjectMapper mapper = new ObjectMapper();
|
||||
|
||||
|
||||
// 设置可见性
|
||||
mapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY);
|
||||
|
||||
|
||||
// 禁用空对象序列化失败
|
||||
mapper.disable(SerializationFeature.FAIL_ON_EMPTY_BEANS);
|
||||
|
||||
|
||||
// 忽略未知属性
|
||||
mapper.disable(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES);
|
||||
|
||||
|
||||
// 不序列化 null 值
|
||||
mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
|
||||
|
||||
// 注册 Java 8 时间模块
|
||||
mapper.registerModule(new JavaTimeModule());
|
||||
|
||||
|
||||
// 注册 Java 8 时间模块,自定义日期时间格式
|
||||
JavaTimeModule module = new JavaTimeModule();
|
||||
DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern(DATE_TIME_PATTERN);
|
||||
DateTimeFormatter dateFormatter = DateTimeFormatter.ofPattern(DATE_PATTERN);
|
||||
module.addSerializer(java.time.LocalDateTime.class, new LocalDateTimeSerializer(dateTimeFormatter));
|
||||
module.addDeserializer(java.time.LocalDateTime.class, new LocalDateTimeDeserializer(dateTimeFormatter));
|
||||
module.addSerializer(java.time.LocalDate.class, new LocalDateSerializer(dateFormatter));
|
||||
module.addDeserializer(java.time.LocalDate.class, new LocalDateDeserializer(dateFormatter));
|
||||
mapper.registerModule(module);
|
||||
|
||||
// 禁用日期作为时间戳
|
||||
mapper.disable(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS);
|
||||
|
||||
|
||||
// 统一时区为北京时间
|
||||
mapper.setTimeZone(TimeZone.getTimeZone("Asia/Shanghai"));
|
||||
|
||||
return mapper;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -445,6 +445,7 @@ public class AdminController {
|
||||
coin.setStatus(status);
|
||||
coin.setUpdateTime(LocalDateTime.now());
|
||||
coinService.updateById(coin);
|
||||
coinService.clearCache(coin.getCode());
|
||||
|
||||
return Result.success(status == 1 ? "已上架" : "已下架", null);
|
||||
}
|
||||
|
||||
@@ -540,7 +540,7 @@ public class FundService {
|
||||
LambdaQueryWrapper<OrderFund> wrapper = new LambdaQueryWrapper<>();
|
||||
|
||||
if (adminRole != null && adminRole == 3) {
|
||||
// 财务只看提现订单
|
||||
// 财务:看所有提现订单
|
||||
wrapper.eq(OrderFund::getType, 2);
|
||||
} else if (type != null && type > 0) {
|
||||
wrapper.eq(OrderFund::getType, type);
|
||||
@@ -550,14 +550,9 @@ public class FundService {
|
||||
wrapper.eq(OrderFund::getStatus, status);
|
||||
}
|
||||
|
||||
if (adminId != null) {
|
||||
if (adminRole != null && adminRole == 3) {
|
||||
// 财务:看自己审批过的
|
||||
wrapper.eq(OrderFund::getFinanceAdminId, adminId);
|
||||
} else {
|
||||
// 管理员:看自己审批过的
|
||||
wrapper.eq(OrderFund::getApproveAdminId, adminId);
|
||||
}
|
||||
if (adminId != null && adminRole != null && adminRole == 2) {
|
||||
// 普通管理员:看自己审批过的
|
||||
wrapper.eq(OrderFund::getApproveAdminId, adminId);
|
||||
}
|
||||
|
||||
wrapper.orderByDesc(OrderFund::getCreateTime);
|
||||
|
||||
@@ -21,6 +21,8 @@ spring:
|
||||
connection-timeout: 30000
|
||||
connection-test-query: SELECT 1
|
||||
jackson:
|
||||
time-zone: Asia/Shanghai
|
||||
date-format: yyyy-MM-dd HH:mm:ss
|
||||
serialization:
|
||||
write-dates-as-timestamps: false
|
||||
fail-on-empty-beans: false
|
||||
|
||||
@@ -31,6 +31,15 @@ spring:
|
||||
maxPoolPreparedStatementPerConnectionSize: 20
|
||||
# 通过connectProperties属性来打开mergeSql功能;慢SQL记录
|
||||
connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
|
||||
jackson:
|
||||
time-zone: Asia/Shanghai
|
||||
date-format: yyyy-MM-dd HH:mm:ss
|
||||
serialization:
|
||||
write-dates-as-timestamps: false
|
||||
fail-on-empty-beans: false
|
||||
deserialization:
|
||||
fail-on-unknown-properties: false
|
||||
default-property-inclusion: non_null
|
||||
|
||||
|
||||
#mybatis-plus
|
||||
|
||||
Reference in New Issue
Block a user