diff --git a/baogutang-admin/pom.xml b/baogutang-admin/pom.xml index e756754..f9d43f5 100644 --- a/baogutang-admin/pom.xml +++ b/baogutang-admin/pom.xml @@ -81,18 +81,18 @@ - - cn.dev33 - sa-token-spring-boot-starter - 1.34.0 - + + + + + - - cn.dev33 - sa-token-sso - 1.34.0 - + + + + + com.dtflys.forest diff --git a/baogutang-admin/src/main/java/top/baogutang/admin/config/SysGlobalExceptionHandler.java b/baogutang-admin/src/main/java/top/baogutang/admin/config/SysGlobalExceptionHandler.java index d985973..555a69b 100644 --- a/baogutang-admin/src/main/java/top/baogutang/admin/config/SysGlobalExceptionHandler.java +++ b/baogutang-admin/src/main/java/top/baogutang/admin/config/SysGlobalExceptionHandler.java @@ -1,31 +1,31 @@ -package top.baogutang.admin.config; - -import cn.dev33.satoken.exception.NotLoginException; -import lombok.extern.slf4j.Slf4j; -import org.springframework.web.bind.annotation.ExceptionHandler; -import org.springframework.web.bind.annotation.RestControllerAdvice; -import top.baogutang.common.domain.Results; - -/** - * @description: 全局异常处理 - * @author: nikooh - * @date: 2023/06/15 : 12:23 - */ -@Slf4j -@RestControllerAdvice -public class SysGlobalExceptionHandler { - - - public SysGlobalExceptionHandler() { - // - } - - - @ExceptionHandler({NotLoginException.class}) - public Results businessNotLoginException(NotLoginException e) { - log.error("请求发生错误,code:{},message:{}", e.getCode(), e.getMessage()); - return Results.failed(e.getCode(), e.getMessage()); - } - - -} +//package top.baogutang.admin.config; +// +//import cn.dev33.satoken.exception.NotLoginException; +//import lombok.extern.slf4j.Slf4j; +//import org.springframework.web.bind.annotation.ExceptionHandler; +//import org.springframework.web.bind.annotation.RestControllerAdvice; +//import top.baogutang.common.domain.Results; +// +///** +// * @description: 全局异常处理 +// * @author: nikooh +// * @date: 2023/06/15 : 12:23 +// */ +//@Slf4j +//@RestControllerAdvice +//public class SysGlobalExceptionHandler { +// +// +// public SysGlobalExceptionHandler() { +// // +// } +// +// +// @ExceptionHandler({NotLoginException.class}) +// public Results businessNotLoginException(NotLoginException e) { +// log.error("请求发生错误,code:{},message:{}", e.getCode(), e.getMessage()); +// return Results.failed(e.getCode(), e.getMessage()); +// } +// +// +//} diff --git a/baogutang-admin/src/main/java/top/baogutang/admin/config/WebConfig.java b/baogutang-admin/src/main/java/top/baogutang/admin/config/WebConfig.java new file mode 100644 index 0000000..d1133dc --- /dev/null +++ b/baogutang-admin/src/main/java/top/baogutang/admin/config/WebConfig.java @@ -0,0 +1,18 @@ +package top.baogutang.admin.config; + +import org.springframework.context.annotation.Configuration; +import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; + +@Configuration +public class WebConfig implements WebMvcConfigurer { + + @Override + public void addResourceHandlers(ResourceHandlerRegistry registry) { + registry.addResourceHandler("/**") + .addResourceLocations("classpath:/static/"); + + registry.addResourceHandler("/file-parse/**") + .addResourceLocations("classpath:/static/"); + } +} diff --git a/baogutang-admin/src/main/java/top/baogutang/admin/config/WebSocketConfig.java b/baogutang-admin/src/main/java/top/baogutang/admin/config/WebSocketConfig.java index d53b317..60cf64c 100644 --- a/baogutang-admin/src/main/java/top/baogutang/admin/config/WebSocketConfig.java +++ b/baogutang-admin/src/main/java/top/baogutang/admin/config/WebSocketConfig.java @@ -1,24 +1,24 @@ -package top.baogutang.admin.config; - -import org.springframework.context.annotation.Configuration; -import org.springframework.web.socket.config.annotation.EnableWebSocket; -import org.springframework.web.socket.config.annotation.WebSocketConfigurer; -import org.springframework.web.socket.config.annotation.WebSocketHandlerRegistry; -import top.baogutang.admin.handlers.KlineWebSocketHandler; - -import javax.annotation.Resource; - -@Configuration -@EnableWebSocket -public class WebSocketConfig implements WebSocketConfigurer { - - @Resource - private KlineWebSocketHandler klineWebSocketHandler; - - @Override - public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) { - registry.addHandler(klineWebSocketHandler, "/ws") - // 配置 WebSocket 端点,并允许跨域 - .setAllowedOrigins("*"); - } -} +//package top.baogutang.admin.config; +// +//import org.springframework.context.annotation.Configuration; +//import org.springframework.web.socket.config.annotation.EnableWebSocket; +//import org.springframework.web.socket.config.annotation.WebSocketConfigurer; +//import org.springframework.web.socket.config.annotation.WebSocketHandlerRegistry; +//import top.baogutang.admin.handlers.KlineWebSocketHandler; +// +//import javax.annotation.Resource; +// +//@Configuration +//@EnableWebSocket +//public class WebSocketConfig implements WebSocketConfigurer { +// +// @Resource +// private KlineWebSocketHandler klineWebSocketHandler; +// +// @Override +// public void registerWebSocketHandlers(WebSocketHandlerRegistry registry) { +// registry.addHandler(klineWebSocketHandler, "/ws") +// // 配置 WebSocket 端点,并允许跨域 +// .setAllowedOrigins("*"); +// } +//} diff --git a/baogutang-admin/src/main/java/top/baogutang/admin/controller/SysUserController.java b/baogutang-admin/src/main/java/top/baogutang/admin/controller/SysUserController.java index 2edd37e..06899c1 100644 --- a/baogutang-admin/src/main/java/top/baogutang/admin/controller/SysUserController.java +++ b/baogutang-admin/src/main/java/top/baogutang/admin/controller/SysUserController.java @@ -1,73 +1,73 @@ -package top.baogutang.admin.controller; - -import cn.dev33.satoken.annotation.SaCheckLogin; -import cn.dev33.satoken.stp.SaTokenInfo; -import cn.hutool.core.lang.PatternPool; -import cn.hutool.core.lang.Validator; -import lombok.extern.slf4j.Slf4j; -import org.springframework.validation.annotation.Validated; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; -import top.baogutang.admin.domain.req.SysUserLoginReq; -import top.baogutang.admin.domain.req.SysUserRegisterReq; -import top.baogutang.admin.services.ISysUserService; -import top.baogutang.common.domain.Results; - -import javax.annotation.Resource; - -/** - * @description: 后台用户控制器 - * @author: nikooh - * @date: 2023/06/19 : 11:57 - */ -@Slf4j -@RestController -@RequestMapping("/api/v1/admin/sysUser") -public class SysUserController { - - @Resource - private ISysUserService sysUserService; - - /** - * 后台系统用户注册 - * - * @param sysUserRegisterReq 注册请求参数 - * @return 注册结果 - */ - @PostMapping("register") - public Results register(@Validated @RequestBody SysUserRegisterReq sysUserRegisterReq) { - if (!Validator.isMatchRegex(PatternPool.EMAIL, sysUserRegisterReq.getEmail())) { - return Results.failed("邮箱格式不正确!"); - } - if (!Validator.isMatchRegex(PatternPool.MOBILE, sysUserRegisterReq.getMobile())) { - return Results.failed("手机号格式不正确!"); - } - sysUserService.register(sysUserRegisterReq); - return Results.ok(); - } - - /** - * 登陆接口 - * - * @param sysUserLoginReq 登陆请求参数 - * @return 登陆用户信息 - */ - @PostMapping("/login") - public Results login(@RequestBody SysUserLoginReq sysUserLoginReq) { - return Results.ok(sysUserService.login(sysUserLoginReq)); - } - - /** - * 登出接口 - */ - @PostMapping("/logout") - @SaCheckLogin - public Results logout() { - sysUserService.logout(); - return Results.ok(); - } - - -} +//package top.baogutang.admin.controller; +// +//import cn.dev33.satoken.annotation.SaCheckLogin; +//import cn.dev33.satoken.stp.SaTokenInfo; +//import cn.hutool.core.lang.PatternPool; +//import cn.hutool.core.lang.Validator; +//import lombok.extern.slf4j.Slf4j; +//import org.springframework.validation.annotation.Validated; +//import org.springframework.web.bind.annotation.PostMapping; +//import org.springframework.web.bind.annotation.RequestBody; +//import org.springframework.web.bind.annotation.RequestMapping; +//import org.springframework.web.bind.annotation.RestController; +//import top.baogutang.admin.domain.req.SysUserLoginReq; +//import top.baogutang.admin.domain.req.SysUserRegisterReq; +//import top.baogutang.admin.services.ISysUserService; +//import top.baogutang.common.domain.Results; +// +//import javax.annotation.Resource; +// +///** +// * @description: 后台用户控制器 +// * @author: nikooh +// * @date: 2023/06/19 : 11:57 +// */ +//@Slf4j +//@RestController +//@RequestMapping("/api/v1/admin/sysUser") +//public class SysUserController { +// +// @Resource +// private ISysUserService sysUserService; +// +// /** +// * 后台系统用户注册 +// * +// * @param sysUserRegisterReq 注册请求参数 +// * @return 注册结果 +// */ +// @PostMapping("register") +// public Results register(@Validated @RequestBody SysUserRegisterReq sysUserRegisterReq) { +// if (!Validator.isMatchRegex(PatternPool.EMAIL, sysUserRegisterReq.getEmail())) { +// return Results.failed("邮箱格式不正确!"); +// } +// if (!Validator.isMatchRegex(PatternPool.MOBILE, sysUserRegisterReq.getMobile())) { +// return Results.failed("手机号格式不正确!"); +// } +// sysUserService.register(sysUserRegisterReq); +// return Results.ok(); +// } +// +// /** +// * 登陆接口 +// * +// * @param sysUserLoginReq 登陆请求参数 +// * @return 登陆用户信息 +// */ +// @PostMapping("/login") +// public Results login(@RequestBody SysUserLoginReq sysUserLoginReq) { +// return Results.ok(sysUserService.login(sysUserLoginReq)); +// } +// +// /** +// * 登出接口 +// */ +// @PostMapping("/logout") +// @SaCheckLogin +// public Results logout() { +// sysUserService.logout(); +// return Results.ok(); +// } +// +// +//} diff --git a/baogutang-admin/src/main/java/top/baogutang/admin/controller/VirtualCoinController.java b/baogutang-admin/src/main/java/top/baogutang/admin/controller/VirtualCoinController.java index 727ada2..f4aed05 100644 --- a/baogutang-admin/src/main/java/top/baogutang/admin/controller/VirtualCoinController.java +++ b/baogutang-admin/src/main/java/top/baogutang/admin/controller/VirtualCoinController.java @@ -1,48 +1,48 @@ -package top.baogutang.admin.controller; - -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; -import top.baogutang.admin.domain.res.MarketCandlesRes; -import top.baogutang.admin.services.IVirtualCoinService; -import top.baogutang.common.domain.Results; - -import javax.annotation.Resource; -import java.text.SimpleDateFormat; -import java.util.Collections; -import java.util.Comparator; -import java.util.List; -import java.util.stream.Collectors; - -/** - * @description: - * @author: nikooh - * @date: 2024/08/23 : 17:29 - */ -@RestController -@RequestMapping("/api/v1/admin/virtualCoin") -public class VirtualCoinController { - - @Resource - private IVirtualCoinService virtualCoinService; - - private static final SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - - @GetMapping("/uiKline") - public Results> uiKline(@RequestParam(name = "symbol") String symbol, - @RequestParam(name = "interval") String interval) { - return Results.ok(virtualCoinService.uiKline(symbol, interval)); - } - - @GetMapping("/uiKlineData") - public Results> uiKlineData(@RequestParam(name = "symbol") String symbol, - @RequestParam(name = "interval") String interval) { - List kLineDataList = virtualCoinService.uiKline(symbol, interval).stream() - .sorted(Collections.reverseOrder(Comparator.comparingLong(data -> Long.parseLong(data[0])))) - .limit(5) - .map(data -> MarketCandlesRes.KLineData.newInstance(data, DATE_FORMAT)) - .collect(Collectors.toList()); - return Results.ok(kLineDataList); - } -} +//package top.baogutang.admin.controller; +// +//import org.springframework.web.bind.annotation.GetMapping; +//import org.springframework.web.bind.annotation.RequestMapping; +//import org.springframework.web.bind.annotation.RequestParam; +//import org.springframework.web.bind.annotation.RestController; +//import top.baogutang.admin.domain.res.MarketCandlesRes; +//import top.baogutang.admin.services.IVirtualCoinService; +//import top.baogutang.common.domain.Results; +// +//import javax.annotation.Resource; +//import java.text.SimpleDateFormat; +//import java.util.Collections; +//import java.util.Comparator; +//import java.util.List; +//import java.util.stream.Collectors; +// +///** +// * @description: +// * @author: nikooh +// * @date: 2024/08/23 : 17:29 +// */ +//@RestController +//@RequestMapping("/api/v1/admin/virtualCoin") +//public class VirtualCoinController { +// +// @Resource +// private IVirtualCoinService virtualCoinService; +// +// private static final SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); +// +// @GetMapping("/uiKline") +// public Results> uiKline(@RequestParam(name = "symbol") String symbol, +// @RequestParam(name = "interval") String interval) { +// return Results.ok(virtualCoinService.uiKline(symbol, interval)); +// } +// +// @GetMapping("/uiKlineData") +// public Results> uiKlineData(@RequestParam(name = "symbol") String symbol, +// @RequestParam(name = "interval") String interval) { +// List kLineDataList = virtualCoinService.uiKline(symbol, interval).stream() +// .sorted(Collections.reverseOrder(Comparator.comparingLong(data -> Long.parseLong(data[0])))) +// .limit(5) +// .map(data -> MarketCandlesRes.KLineData.newInstance(data, DATE_FORMAT)) +// .collect(Collectors.toList()); +// return Results.ok(kLineDataList); +// } +//} diff --git a/baogutang-admin/src/main/java/top/baogutang/admin/handlers/KlineWebSocketHandler.java b/baogutang-admin/src/main/java/top/baogutang/admin/handlers/KlineWebSocketHandler.java index bebcf8f..835f8b0 100644 --- a/baogutang-admin/src/main/java/top/baogutang/admin/handlers/KlineWebSocketHandler.java +++ b/baogutang-admin/src/main/java/top/baogutang/admin/handlers/KlineWebSocketHandler.java @@ -1,98 +1,98 @@ -package top.baogutang.admin.handlers; - -import com.binance.connector.client.WebSocketStreamClient; -import lombok.Data; -import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Component; -import org.springframework.util.CollectionUtils; -import org.springframework.web.socket.*; -import top.baogutang.common.utils.JacksonUtil; - -import javax.annotation.Resource; -import java.io.IOException; -import java.io.Serializable; -import java.util.Map; -import java.util.Objects; -import java.util.concurrent.ConcurrentHashMap; - -@Slf4j -@Component -public class KlineWebSocketHandler implements WebSocketHandler { - - @Resource - private WebSocketStreamClient webSocketStreamClient; - - private final Map webSocketMap = new ConcurrentHashMap<>(); - - private volatile Integer connectionId; - - @Override - public void afterConnectionEstablished(WebSocketSession webSocketSession) throws Exception { - //连接成功时调用该方法 - log.info(">>>>>>>>>>WebSocket connected:{}<<<<<<<<<<", webSocketSession.getId()); - webSocketMap.put(webSocketSession.getId(), webSocketSession); - } - - @Override - public void handleMessage(WebSocketSession webSocketSession, WebSocketMessage webSocketMessage) throws Exception { - // 获取客户端发送的消息 - log.info(">>>>>>>>>>客户端ID:{} 发送消息:{}<<<<<<<<<<", webSocketSession.getId(), webSocketMessage.getPayload()); - KlineMessage message = JacksonUtil.fromJson(webSocketMessage.getPayload().toString(), KlineMessage.class); - if (Objects.nonNull(connectionId)) { - webSocketStreamClient.closeConnection(connectionId); - } - // 使用 Binance Connector 开启 WebSocket 连接 - connectionId = webSocketStreamClient.klineStream(message.getSymbol(), message.getInterval(), event -> { - log.info(">>>>>>>>>>binance event:{}<<<<<<<<<<", event); - // 将从 Binance 接收到的数据转发给前端 - TextMessage textMessage = new TextMessage(event); - - // 推送消息给所有连接的客户端 - webSocketMap.entrySet() - .stream() - .filter(entry -> entry.getValue().isOpen()) - .forEach(entry -> { - try { - entry.getValue().sendMessage(textMessage); - } catch (IOException e) { - log.error(">>>>>>>>>>消息发送错误:{}<<<<<<<<<<", e.getMessage(), e); - } - }); - }); - log.info(">>>>>>>>>启动了 Binance WebSocket 连接: {} , 监控交易对: {} 时间间隔: {}<<<<<<<<", connectionId, message.getSymbol(), message.getInterval()); - } - - @Override - public void handleTransportError(WebSocketSession webSocketSession, Throwable throwable) throws Exception { - //发生错误时调用该方法 - log.error(">>>>>>>>>>WebSocket error: {}<<<<<<<<<<", throwable.getMessage(), throwable); - webSocketSession.close(CloseStatus.SERVER_ERROR); - webSocketMap.remove(webSocketSession.getId()); - } - - @Override - public void afterConnectionClosed(WebSocketSession webSocketSession, CloseStatus closeStatus) throws Exception { - //连接关闭时调用该方法 - log.info(">>>>>>>>>>WebSocket closed:{}<<<<<<<<<<", webSocketSession.getId()); - webSocketMap.remove(webSocketSession.getId()); - if (CollectionUtils.isEmpty(webSocketMap)) { - log.info(">>>>>>>>>>client session all closed!<<<<<<<<<<"); - webSocketStreamClient.closeAllConnections(); - } - } - - @Override - public boolean supportsPartialMessages() { - return false; - } - - @Data - public static class KlineMessage implements Serializable { - - private static final long serialVersionUID = -3288071423561766084L; - - private String symbol; - - private String interval; - } -} +//package top.baogutang.admin.handlers; +// +//import com.binance.connector.client.WebSocketStreamClient; +//import lombok.Data; +//import lombok.extern.slf4j.Slf4j; +//import org.springframework.stereotype.Component; +//import org.springframework.util.CollectionUtils; +//import org.springframework.web.socket.*; +//import top.baogutang.common.utils.JacksonUtil; +// +//import javax.annotation.Resource; +//import java.io.IOException; +//import java.io.Serializable; +//import java.util.Map; +//import java.util.Objects; +//import java.util.concurrent.ConcurrentHashMap; +// +//@Slf4j +//@Component +//public class KlineWebSocketHandler implements WebSocketHandler { +// +// @Resource +// private WebSocketStreamClient webSocketStreamClient; +// +// private final Map webSocketMap = new ConcurrentHashMap<>(); +// +// private volatile Integer connectionId; +// +// @Override +// public void afterConnectionEstablished(WebSocketSession webSocketSession) throws Exception { +// //连接成功时调用该方法 +// log.info(">>>>>>>>>>WebSocket connected:{}<<<<<<<<<<", webSocketSession.getId()); +// webSocketMap.put(webSocketSession.getId(), webSocketSession); +// } +// +// @Override +// public void handleMessage(WebSocketSession webSocketSession, WebSocketMessage webSocketMessage) throws Exception { +// // 获取客户端发送的消息 +// log.info(">>>>>>>>>>客户端ID:{} 发送消息:{}<<<<<<<<<<", webSocketSession.getId(), webSocketMessage.getPayload()); +// KlineMessage message = JacksonUtil.fromJson(webSocketMessage.getPayload().toString(), KlineMessage.class); +// if (Objects.nonNull(connectionId)) { +// webSocketStreamClient.closeConnection(connectionId); +// } +// // 使用 Binance Connector 开启 WebSocket 连接 +// connectionId = webSocketStreamClient.klineStream(message.getSymbol(), message.getInterval(), event -> { +// log.info(">>>>>>>>>>binance event:{}<<<<<<<<<<", event); +// // 将从 Binance 接收到的数据转发给前端 +// TextMessage textMessage = new TextMessage(event); +// +// // 推送消息给所有连接的客户端 +// webSocketMap.entrySet() +// .stream() +// .filter(entry -> entry.getValue().isOpen()) +// .forEach(entry -> { +// try { +// entry.getValue().sendMessage(textMessage); +// } catch (IOException e) { +// log.error(">>>>>>>>>>消息发送错误:{}<<<<<<<<<<", e.getMessage(), e); +// } +// }); +// }); +// log.info(">>>>>>>>>启动了 Binance WebSocket 连接: {} , 监控交易对: {} 时间间隔: {}<<<<<<<<", connectionId, message.getSymbol(), message.getInterval()); +// } +// +// @Override +// public void handleTransportError(WebSocketSession webSocketSession, Throwable throwable) throws Exception { +// //发生错误时调用该方法 +// log.error(">>>>>>>>>>WebSocket error: {}<<<<<<<<<<", throwable.getMessage(), throwable); +// webSocketSession.close(CloseStatus.SERVER_ERROR); +// webSocketMap.remove(webSocketSession.getId()); +// } +// +// @Override +// public void afterConnectionClosed(WebSocketSession webSocketSession, CloseStatus closeStatus) throws Exception { +// //连接关闭时调用该方法 +// log.info(">>>>>>>>>>WebSocket closed:{}<<<<<<<<<<", webSocketSession.getId()); +// webSocketMap.remove(webSocketSession.getId()); +// if (CollectionUtils.isEmpty(webSocketMap)) { +// log.info(">>>>>>>>>>client session all closed!<<<<<<<<<<"); +// webSocketStreamClient.closeAllConnections(); +// } +// } +// +// @Override +// public boolean supportsPartialMessages() { +// return false; +// } +// +// @Data +// public static class KlineMessage implements Serializable { +// +// private static final long serialVersionUID = -3288071423561766084L; +// +// private String symbol; +// +// private String interval; +// } +//} diff --git a/baogutang-admin/src/main/java/top/baogutang/admin/schedule/OkCoinMarketCandlesHandler.java b/baogutang-admin/src/main/java/top/baogutang/admin/schedule/OkCoinMarketCandlesHandler.java index 8f274e5..d35916a 100644 --- a/baogutang-admin/src/main/java/top/baogutang/admin/schedule/OkCoinMarketCandlesHandler.java +++ b/baogutang-admin/src/main/java/top/baogutang/admin/schedule/OkCoinMarketCandlesHandler.java @@ -1,122 +1,122 @@ -package top.baogutang.admin.schedule; - -import cn.hutool.core.bean.BeanUtil; -import com.binance.connector.client.SpotClient; -import com.fasterxml.jackson.core.type.TypeReference; -import com.xxl.job.core.biz.model.ReturnT; -import com.xxl.job.core.handler.IJobHandler; -import com.xxl.job.core.handler.annotation.XxlJob; -import lombok.Data; -import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang3.StringUtils; -import org.springframework.cloud.context.config.annotation.RefreshScope; -import org.springframework.stereotype.Component; -import top.baogutang.admin.utils.DingTalkMsgPushUtils; -import top.baogutang.admin.utils.OkCoinKLineUtil; -import top.baogutang.common.domain.BinanceResults; -import top.baogutang.common.utils.JacksonUtil; - -import javax.annotation.Resource; -import java.text.SimpleDateFormat; -import java.util.*; -import java.util.stream.Collectors; - -/** - * @description: OKCOIN K线数据 - * @author: nikooh - * @date: 2024/08/22 : 09:52 - */ -@Slf4j -@Component -@RefreshScope -public class OkCoinMarketCandlesHandler extends IJobHandler { - - @Resource - private DingTalkMsgPushUtils dingTalkMsgPushUtils; - - @Resource - private SpotClient spotClient; - - public static final SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS"); - - @Override - @XxlJob("marketCandlesHandler") - public ReturnT execute(String params) throws Exception { - - - if (StringUtils.isBlank(params)) { - log.error(">>>>>>>>>>job params is null!<<<<<<<<<<"); - return ReturnT.FAIL; - } - JobParams jobParams = JacksonUtil.fromJson(params, JobParams.class); - if (Objects.isNull(jobParams)) { - log.error(">>>>>>>>>>job params is null!<<<<<<<<<<"); - return ReturnT.FAIL; - } - String interval = jobParams.getInterval(); - Integer limit = jobParams.getLimit(); - Arrays.stream(jobParams.getSymbolList().split(",")) - .forEach(symbol -> { - KLinesRequestParameters kLinesRequestParameters = new KLinesRequestParameters(symbol, interval, limit); - Map parameters = BeanUtil.beanToMap(kLinesRequestParameters); - String resultStr = spotClient.createMarket().uiKlines(parameters); - if (StringUtils.isBlank(resultStr)) { - log.error(">>>>>>>>>>request result is null!<<<<<<<<<<"); - return; - } - List kLineDataList = JacksonUtil.fromJson(resultStr, new TypeReference>() { - }); - String[] kLineData = kLineDataList.get(0); - log.info(">>>>>>>>>>当前:【{}】 开盘价:【{}】 最高价:【{}】最低价:【{}】收盘价:【{}】<<<<<<<<<<", DATE_FORMAT.format(new Date(Long.parseLong(kLineData[0]))), kLineData[1], kLineData[2], kLineData[3], kLineData[4]); - kLineDataList = kLineDataList.stream() - .sorted(Comparator.comparing(data -> data[0], Comparator.reverseOrder())) - .limit(5) - .collect(Collectors.toList()); - String markdownContent = OkCoinKLineUtil.getCoinMarkdownContent(symbol, kLineDataList); - dingTalkMsgPushUtils.robotMarkdownMsg("交易产品K线数据", markdownContent); - - }); - - - return ReturnT.SUCCESS; - } - - @Data - public static class JobParams { - - // BTCUSDT,ETHUSDT - private String symbolList; - - // 时间粒度 - // 1s, 1m, 3m, 5m, 15m, 30m, 1h, 2h, 4h, 6h, 8h, 12h, 1d, 3d, 1w, 1M - private String interval; - - // 默认 500; 最大值 1000 - private Integer limit; - } - - @Data - public static class KLinesRequestParameters { - - // BTCUSDT,ETHUSDT - private String symbol; - - // 1s, 1m, 3m, 5m, 15m, 30m, 1h, 2h, 4h, 6h, 8h, 12h, 1d, 3d, 1w, 1M - private String interval; - - // 默认 500; 最大值 1000 - private Integer limit; - - public KLinesRequestParameters(String symbol, String interval, Integer limit) { - this.symbol = symbol; - this.interval = interval; - this.limit = limit; - } - - public KLinesRequestParameters(String symbol, String interval) { - this.symbol = symbol; - this.interval = interval; - } - } - -} +//package top.baogutang.admin.schedule; +// +//import cn.hutool.core.bean.BeanUtil; +//import com.binance.connector.client.SpotClient; +//import com.fasterxml.jackson.core.type.TypeReference; +//import com.xxl.job.core.biz.model.ReturnT; +//import com.xxl.job.core.handler.IJobHandler; +//import com.xxl.job.core.handler.annotation.XxlJob; +//import lombok.Data; +//import lombok.extern.slf4j.Slf4j; +//import org.apache.commons.lang3.StringUtils; +//import org.springframework.cloud.context.config.annotation.RefreshScope; +//import org.springframework.stereotype.Component; +//import top.baogutang.admin.utils.DingTalkMsgPushUtils; +//import top.baogutang.admin.utils.OkCoinKLineUtil; +//import top.baogutang.common.domain.BinanceResults; +//import top.baogutang.common.utils.JacksonUtil; +// +//import javax.annotation.Resource; +//import java.text.SimpleDateFormat; +//import java.util.*; +//import java.util.stream.Collectors; +// +///** +// * @description: OKCOIN K线数据 +// * @author: nikooh +// * @date: 2024/08/22 : 09:52 +// */ +//@Slf4j +//@Component +//@RefreshScope +//public class OkCoinMarketCandlesHandler extends IJobHandler { +// +// @Resource +// private DingTalkMsgPushUtils dingTalkMsgPushUtils; +// +// @Resource +// private SpotClient spotClient; +// +// public static final SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss:SSS"); +// +// @Override +// @XxlJob("marketCandlesHandler") +// public ReturnT execute(String params) throws Exception { +// +// +// if (StringUtils.isBlank(params)) { +// log.error(">>>>>>>>>>job params is null!<<<<<<<<<<"); +// return ReturnT.FAIL; +// } +// JobParams jobParams = JacksonUtil.fromJson(params, JobParams.class); +// if (Objects.isNull(jobParams)) { +// log.error(">>>>>>>>>>job params is null!<<<<<<<<<<"); +// return ReturnT.FAIL; +// } +// String interval = jobParams.getInterval(); +// Integer limit = jobParams.getLimit(); +// Arrays.stream(jobParams.getSymbolList().split(",")) +// .forEach(symbol -> { +// KLinesRequestParameters kLinesRequestParameters = new KLinesRequestParameters(symbol, interval, limit); +// Map parameters = BeanUtil.beanToMap(kLinesRequestParameters); +// String resultStr = spotClient.createMarket().uiKlines(parameters); +// if (StringUtils.isBlank(resultStr)) { +// log.error(">>>>>>>>>>request result is null!<<<<<<<<<<"); +// return; +// } +// List kLineDataList = JacksonUtil.fromJson(resultStr, new TypeReference>() { +// }); +// String[] kLineData = kLineDataList.get(0); +// log.info(">>>>>>>>>>当前:【{}】 开盘价:【{}】 最高价:【{}】最低价:【{}】收盘价:【{}】<<<<<<<<<<", DATE_FORMAT.format(new Date(Long.parseLong(kLineData[0]))), kLineData[1], kLineData[2], kLineData[3], kLineData[4]); +// kLineDataList = kLineDataList.stream() +// .sorted(Comparator.comparing(data -> data[0], Comparator.reverseOrder())) +// .limit(5) +// .collect(Collectors.toList()); +// String markdownContent = OkCoinKLineUtil.getCoinMarkdownContent(symbol, kLineDataList); +// dingTalkMsgPushUtils.robotMarkdownMsg("交易产品K线数据", markdownContent); +// +// }); +// +// +// return ReturnT.SUCCESS; +// } +// +// @Data +// public static class JobParams { +// +// // BTCUSDT,ETHUSDT +// private String symbolList; +// +// // 时间粒度 +// // 1s, 1m, 3m, 5m, 15m, 30m, 1h, 2h, 4h, 6h, 8h, 12h, 1d, 3d, 1w, 1M +// private String interval; +// +// // 默认 500; 最大值 1000 +// private Integer limit; +// } +// +// @Data +// public static class KLinesRequestParameters { +// +// // BTCUSDT,ETHUSDT +// private String symbol; +// +// // 1s, 1m, 3m, 5m, 15m, 30m, 1h, 2h, 4h, 6h, 8h, 12h, 1d, 3d, 1w, 1M +// private String interval; +// +// // 默认 500; 最大值 1000 +// private Integer limit; +// +// public KLinesRequestParameters(String symbol, String interval, Integer limit) { +// this.symbol = symbol; +// this.interval = interval; +// this.limit = limit; +// } +// +// public KLinesRequestParameters(String symbol, String interval) { +// this.symbol = symbol; +// this.interval = interval; +// } +// } +// +//} diff --git a/baogutang-admin/src/main/java/top/baogutang/admin/services/ISysUserService.java b/baogutang-admin/src/main/java/top/baogutang/admin/services/ISysUserService.java index 6f8914b..cc018c4 100644 --- a/baogutang-admin/src/main/java/top/baogutang/admin/services/ISysUserService.java +++ b/baogutang-admin/src/main/java/top/baogutang/admin/services/ISysUserService.java @@ -1,34 +1,34 @@ -package top.baogutang.admin.services; - -import cn.dev33.satoken.stp.SaTokenInfo; -import top.baogutang.admin.domain.req.SysUserLoginReq; -import top.baogutang.admin.domain.req.SysUserRegisterReq; -import top.baogutang.admin.domain.res.SysUserInfo; - -/** - * @description: - * @author: nikooh - * @date: 2023/06/19 : 12:13 - */ -public interface ISysUserService { - - /** - * 后台系统用户注册 - * - * @param sysUserRegisterReq 注册请求参数 - */ - void register(SysUserRegisterReq sysUserRegisterReq); - - /** - * 登陆接口 - * - * @param sysUserLoginReq 登陆请求参数 - * @return 登陆用户信息 - */ - SaTokenInfo login(SysUserLoginReq sysUserLoginReq); - - /** - * 登出接口 - */ - void logout(); -} +//package top.baogutang.admin.services; +// +//import cn.dev33.satoken.stp.SaTokenInfo; +//import top.baogutang.admin.domain.req.SysUserLoginReq; +//import top.baogutang.admin.domain.req.SysUserRegisterReq; +//import top.baogutang.admin.domain.res.SysUserInfo; +// +///** +// * @description: +// * @author: nikooh +// * @date: 2023/06/19 : 12:13 +// */ +//public interface ISysUserService { +// +// /** +// * 后台系统用户注册 +// * +// * @param sysUserRegisterReq 注册请求参数 +// */ +// void register(SysUserRegisterReq sysUserRegisterReq); +// +// /** +// * 登陆接口 +// * +// * @param sysUserLoginReq 登陆请求参数 +// * @return 登陆用户信息 +// */ +// SaTokenInfo login(SysUserLoginReq sysUserLoginReq); +// +// /** +// * 登出接口 +// */ +// void logout(); +//} diff --git a/baogutang-admin/src/main/java/top/baogutang/admin/services/IVirtualCoinService.java b/baogutang-admin/src/main/java/top/baogutang/admin/services/IVirtualCoinService.java index a66219e..096375f 100644 --- a/baogutang-admin/src/main/java/top/baogutang/admin/services/IVirtualCoinService.java +++ b/baogutang-admin/src/main/java/top/baogutang/admin/services/IVirtualCoinService.java @@ -1,16 +1,16 @@ -package top.baogutang.admin.services; - -import java.util.List; - -/** - * @description: - * @author: nikooh - * @date: 2024/08/23 : 17:50 - */ -public interface IVirtualCoinService { - - List uiKline(String symbol, String interval); - -// void startWebSocket(String symbol, String interval); - -} +//package top.baogutang.admin.services; +// +//import java.util.List; +// +///** +// * @description: +// * @author: nikooh +// * @date: 2024/08/23 : 17:50 +// */ +//public interface IVirtualCoinService { +// +// List uiKline(String symbol, String interval); +// +//// void startWebSocket(String symbol, String interval); +// +//} diff --git a/baogutang-admin/src/main/java/top/baogutang/admin/services/impl/SysUserServiceImpl.java b/baogutang-admin/src/main/java/top/baogutang/admin/services/impl/SysUserServiceImpl.java index 7e1d96f..872facf 100644 --- a/baogutang-admin/src/main/java/top/baogutang/admin/services/impl/SysUserServiceImpl.java +++ b/baogutang-admin/src/main/java/top/baogutang/admin/services/impl/SysUserServiceImpl.java @@ -1,105 +1,105 @@ -package top.baogutang.admin.services.impl; - -import cn.dev33.satoken.stp.SaTokenInfo; -import cn.dev33.satoken.stp.StpUtil; -import com.baomidou.mybatisplus.core.conditions.Wrapper; -import com.baomidou.mybatisplus.core.toolkit.IdWorker; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import lombok.extern.slf4j.Slf4j; -import org.springframework.data.redis.core.RedisTemplate; -import org.springframework.security.crypto.password.PasswordEncoder; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; -import top.baogutang.admin.dao.entity.SysUserEntity; -import top.baogutang.admin.dao.mapper.SysUserMapper; -import top.baogutang.admin.domain.req.SysUserLoginReq; -import top.baogutang.admin.domain.req.SysUserRegisterReq; -import top.baogutang.admin.services.ISysUserService; -import top.baogutang.common.annotation.RequestLimit; -import top.baogutang.common.constants.ErrorCodeEnum; -import top.baogutang.common.exceptions.BusinessException; - -import javax.annotation.Resource; - -import java.util.Objects; - -import static top.baogutang.common.constants.CacheConstant.ENABLE; -import static top.baogutang.common.constants.CacheConstant.RANDOM_IMAGE_CACHE_KEY; - -/** - * @description: - * @author: nikooh - * @date: 2023/06/19 : 12:14 - */ -@Slf4j -@Service -public class SysUserServiceImpl extends ServiceImpl implements ISysUserService { - - @Resource - private SysUserMapper sysUserMapper; - - @Resource - private RedisTemplate redisTemplate; - - @Resource - private PasswordEncoder passwordEncoder; - - - @Override - @RequestLimit - @Transactional(rollbackFor = Exception.class) - public void register(SysUserRegisterReq sysUserRegisterReq) { - String cacheKey = String.format(RANDOM_IMAGE_CACHE_KEY, sysUserRegisterReq.getCheckKey()); - Object cacheCaptcha = redisTemplate.opsForValue().get(cacheKey); - if (Objects.isNull(cacheCaptcha)) { - throw new BusinessException(ErrorCodeEnum.CAPTCHA_NOT_EXISTS); - } - if (!sysUserRegisterReq.getCaptcha().equalsIgnoreCase((String) cacheCaptcha)) { - throw new BusinessException(ErrorCodeEnum.CAPTCHA_INCORRECT); - } - // 查询邮箱手机号是否已占用 - SysUserEntity sysUser = baseMapper.selectByEmailOrMobile(sysUserRegisterReq.getEmail(), sysUserRegisterReq.getMobile()); - if (Objects.nonNull(sysUser)) { - throw new BusinessException(ErrorCodeEnum.CURRENT_USER_EXISTS); - } - // 可以进行注册 - SysUserEntity userEntity = new SysUserEntity(); - userEntity.setId(IdWorker.getId()); - userEntity.setUsername(sysUserRegisterReq.getEmail()); - userEntity.setEmail(sysUserRegisterReq.getEmail()); - userEntity.setMobile(sysUserRegisterReq.getMobile()); - userEntity.setPassword(passwordEncoder.encode(sysUserRegisterReq.getPassword())); - saveOrUpdate(userEntity); - } - - @Override - public SaTokenInfo login(SysUserLoginReq sysUserLoginReq) { - String password = sysUserLoginReq.getPassword(); - SysUserEntity userEntity = this.findByEmail(sysUserLoginReq.getEmail()); - if (userEntity == null) { - throw new BusinessException(ErrorCodeEnum.E_BIZ_DIGITAL_ART_USER_NOT_EXISTS); - } - boolean userVerify = passwordEncoder.matches(password, userEntity.getPassword()); - if (!userVerify) { - throw new BusinessException(ErrorCodeEnum.PASSWORD_ERROR); - } - // Sa-Token - StpUtil.login(userEntity.getId()); - return StpUtil.getTokenInfo(); - } - - @Override - public void logout() { - StpUtil.logout(); - } - - - private SysUserEntity findByEmail(String email) { - Wrapper wrapper = Wrappers.query() - .lambda() - .eq(SysUserEntity::getEmail, email) - .eq(SysUserEntity::getEnableFlag, ENABLE); - return this.getOne(wrapper); - } -} +//package top.baogutang.admin.services.impl; +// +//import cn.dev33.satoken.stp.SaTokenInfo; +//import cn.dev33.satoken.stp.StpUtil; +//import com.baomidou.mybatisplus.core.conditions.Wrapper; +//import com.baomidou.mybatisplus.core.toolkit.IdWorker; +//import com.baomidou.mybatisplus.core.toolkit.Wrappers; +//import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +//import lombok.extern.slf4j.Slf4j; +//import org.springframework.data.redis.core.RedisTemplate; +//import org.springframework.security.crypto.password.PasswordEncoder; +//import org.springframework.stereotype.Service; +//import org.springframework.transaction.annotation.Transactional; +//import top.baogutang.admin.dao.entity.SysUserEntity; +//import top.baogutang.admin.dao.mapper.SysUserMapper; +//import top.baogutang.admin.domain.req.SysUserLoginReq; +//import top.baogutang.admin.domain.req.SysUserRegisterReq; +//import top.baogutang.admin.services.ISysUserService; +//import top.baogutang.common.annotation.RequestLimit; +//import top.baogutang.common.constants.ErrorCodeEnum; +//import top.baogutang.common.exceptions.BusinessException; +// +//import javax.annotation.Resource; +// +//import java.util.Objects; +// +//import static top.baogutang.common.constants.CacheConstant.ENABLE; +//import static top.baogutang.common.constants.CacheConstant.RANDOM_IMAGE_CACHE_KEY; +// +///** +// * @description: +// * @author: nikooh +// * @date: 2023/06/19 : 12:14 +// */ +//@Slf4j +//@Service +//public class SysUserServiceImpl extends ServiceImpl implements ISysUserService { +// +// @Resource +// private SysUserMapper sysUserMapper; +// +// @Resource +// private RedisTemplate redisTemplate; +// +// @Resource +// private PasswordEncoder passwordEncoder; +// +// +// @Override +// @RequestLimit +// @Transactional(rollbackFor = Exception.class) +// public void register(SysUserRegisterReq sysUserRegisterReq) { +// String cacheKey = String.format(RANDOM_IMAGE_CACHE_KEY, sysUserRegisterReq.getCheckKey()); +// Object cacheCaptcha = redisTemplate.opsForValue().get(cacheKey); +// if (Objects.isNull(cacheCaptcha)) { +// throw new BusinessException(ErrorCodeEnum.CAPTCHA_NOT_EXISTS); +// } +// if (!sysUserRegisterReq.getCaptcha().equalsIgnoreCase((String) cacheCaptcha)) { +// throw new BusinessException(ErrorCodeEnum.CAPTCHA_INCORRECT); +// } +// // 查询邮箱手机号是否已占用 +// SysUserEntity sysUser = baseMapper.selectByEmailOrMobile(sysUserRegisterReq.getEmail(), sysUserRegisterReq.getMobile()); +// if (Objects.nonNull(sysUser)) { +// throw new BusinessException(ErrorCodeEnum.CURRENT_USER_EXISTS); +// } +// // 可以进行注册 +// SysUserEntity userEntity = new SysUserEntity(); +// userEntity.setId(IdWorker.getId()); +// userEntity.setUsername(sysUserRegisterReq.getEmail()); +// userEntity.setEmail(sysUserRegisterReq.getEmail()); +// userEntity.setMobile(sysUserRegisterReq.getMobile()); +// userEntity.setPassword(passwordEncoder.encode(sysUserRegisterReq.getPassword())); +// saveOrUpdate(userEntity); +// } +// +// @Override +// public SaTokenInfo login(SysUserLoginReq sysUserLoginReq) { +// String password = sysUserLoginReq.getPassword(); +// SysUserEntity userEntity = this.findByEmail(sysUserLoginReq.getEmail()); +// if (userEntity == null) { +// throw new BusinessException(ErrorCodeEnum.E_BIZ_DIGITAL_ART_USER_NOT_EXISTS); +// } +// boolean userVerify = passwordEncoder.matches(password, userEntity.getPassword()); +// if (!userVerify) { +// throw new BusinessException(ErrorCodeEnum.PASSWORD_ERROR); +// } +// // Sa-Token +// StpUtil.login(userEntity.getId()); +// return StpUtil.getTokenInfo(); +// } +// +// @Override +// public void logout() { +// StpUtil.logout(); +// } +// +// +// private SysUserEntity findByEmail(String email) { +// Wrapper wrapper = Wrappers.query() +// .lambda() +// .eq(SysUserEntity::getEmail, email) +// .eq(SysUserEntity::getEnableFlag, ENABLE); +// return this.getOne(wrapper); +// } +//} diff --git a/baogutang-admin/src/main/java/top/baogutang/admin/services/impl/VirtualCoinServiceImpl.java b/baogutang-admin/src/main/java/top/baogutang/admin/services/impl/VirtualCoinServiceImpl.java index 1f456d5..815016e 100644 --- a/baogutang-admin/src/main/java/top/baogutang/admin/services/impl/VirtualCoinServiceImpl.java +++ b/baogutang-admin/src/main/java/top/baogutang/admin/services/impl/VirtualCoinServiceImpl.java @@ -1,48 +1,48 @@ -package top.baogutang.admin.services.impl; - -import cn.hutool.core.bean.BeanUtil; -import com.binance.connector.client.SpotClient; -import com.binance.connector.client.WebSocketStreamClient; -import com.fasterxml.jackson.core.type.TypeReference; -import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang3.StringUtils; -import org.springframework.stereotype.Service; -import top.baogutang.admin.schedule.OkCoinMarketCandlesHandler; -import top.baogutang.admin.services.IVirtualCoinService; -import top.baogutang.common.utils.JacksonUtil; - -import javax.annotation.Resource; -import java.util.Collections; -import java.util.List; -import java.util.Map; - -/** - * @description: - * @author: nikooh - * @date: 2024/08/23 : 17:50 - */ -@Slf4j -@Service -public class VirtualCoinServiceImpl implements IVirtualCoinService { - - @Resource - private SpotClient spotClient; - - @Resource - private WebSocketStreamClient webSocketStreamClient; - - - @Override - public List uiKline(String symbol, String interval) { - OkCoinMarketCandlesHandler.KLinesRequestParameters kLinesRequestParameters = new OkCoinMarketCandlesHandler.KLinesRequestParameters(symbol, interval); - Map parameters = BeanUtil.beanToMap(kLinesRequestParameters, Boolean.FALSE, Boolean.TRUE); - String resultStr = spotClient.createMarket().uiKlines(parameters); - if (StringUtils.isBlank(resultStr)) { - log.error(">>>>>>>>>>request result is null!<<<<<<<<<<"); - return Collections.emptyList(); - } - return JacksonUtil.fromJson(resultStr, new TypeReference>() { - }); - } - -} +//package top.baogutang.admin.services.impl; +// +//import cn.hutool.core.bean.BeanUtil; +//import com.binance.connector.client.SpotClient; +//import com.binance.connector.client.WebSocketStreamClient; +//import com.fasterxml.jackson.core.type.TypeReference; +//import lombok.extern.slf4j.Slf4j; +//import org.apache.commons.lang3.StringUtils; +//import org.springframework.stereotype.Service; +//import top.baogutang.admin.schedule.OkCoinMarketCandlesHandler; +//import top.baogutang.admin.services.IVirtualCoinService; +//import top.baogutang.common.utils.JacksonUtil; +// +//import javax.annotation.Resource; +//import java.util.Collections; +//import java.util.List; +//import java.util.Map; +// +///** +// * @description: +// * @author: nikooh +// * @date: 2024/08/23 : 17:50 +// */ +//@Slf4j +//@Service +//public class VirtualCoinServiceImpl implements IVirtualCoinService { +// +// @Resource +// private SpotClient spotClient; +// +// @Resource +// private WebSocketStreamClient webSocketStreamClient; +// +// +// @Override +// public List uiKline(String symbol, String interval) { +// OkCoinMarketCandlesHandler.KLinesRequestParameters kLinesRequestParameters = new OkCoinMarketCandlesHandler.KLinesRequestParameters(symbol, interval); +// Map parameters = BeanUtil.beanToMap(kLinesRequestParameters, Boolean.FALSE, Boolean.TRUE); +// String resultStr = spotClient.createMarket().uiKlines(parameters); +// if (StringUtils.isBlank(resultStr)) { +// log.error(">>>>>>>>>>request result is null!<<<<<<<<<<"); +// return Collections.emptyList(); +// } +// return JacksonUtil.fromJson(resultStr, new TypeReference>() { +// }); +// } +// +//} diff --git a/baogutang-admin/src/main/resources/bootstrap.yml b/baogutang-admin/src/main/resources/bootstrap.yml index 7beeda9..5d065cc 100644 --- a/baogutang-admin/src/main/resources/bootstrap.yml +++ b/baogutang-admin/src/main/resources/bootstrap.yml @@ -4,5 +4,5 @@ spring: main: allow-bean-definition-overriding: true - resources: - static-locations: classpath:/templates/ \ No newline at end of file +# resources: +# static-locations: classpath:/templates/ \ No newline at end of file diff --git a/baogutang-admin/src/main/resources/templates/NIKO.png b/baogutang-admin/src/main/resources/static/NIKO.png similarity index 100% rename from baogutang-admin/src/main/resources/templates/NIKO.png rename to baogutang-admin/src/main/resources/static/NIKO.png diff --git a/baogutang-admin/src/main/resources/templates/css/base.css b/baogutang-admin/src/main/resources/static/css/base.css similarity index 100% rename from baogutang-admin/src/main/resources/templates/css/base.css rename to baogutang-admin/src/main/resources/static/css/base.css diff --git a/baogutang-admin/src/main/resources/templates/css/bootstrap.min.css b/baogutang-admin/src/main/resources/static/css/bootstrap.min.css similarity index 100% rename from baogutang-admin/src/main/resources/templates/css/bootstrap.min.css rename to baogutang-admin/src/main/resources/static/css/bootstrap.min.css diff --git a/baogutang-admin/src/main/resources/templates/css/font-awesome.min.css b/baogutang-admin/src/main/resources/static/css/font-awesome.min.css similarity index 100% rename from baogutang-admin/src/main/resources/templates/css/font-awesome.min.css rename to baogutang-admin/src/main/resources/static/css/font-awesome.min.css diff --git a/baogutang-admin/src/main/resources/templates/css/jquery.numberedtextarea.css b/baogutang-admin/src/main/resources/static/css/jquery.numberedtextarea.css similarity index 100% rename from baogutang-admin/src/main/resources/templates/css/jquery.numberedtextarea.css rename to baogutang-admin/src/main/resources/static/css/jquery.numberedtextarea.css diff --git a/baogutang-admin/src/main/resources/templates/fonts/fontawesome-webfont.eot@ b/baogutang-admin/src/main/resources/static/fonts/fontawesome-webfont.eot@ similarity index 100% rename from baogutang-admin/src/main/resources/templates/fonts/fontawesome-webfont.eot@ rename to baogutang-admin/src/main/resources/static/fonts/fontawesome-webfont.eot@ diff --git a/baogutang-admin/src/main/resources/templates/fonts/fontawesome-webfont.eot@v=4.2.0 b/baogutang-admin/src/main/resources/static/fonts/fontawesome-webfont.eot@v=4.2.0 similarity index 100% rename from baogutang-admin/src/main/resources/templates/fonts/fontawesome-webfont.eot@v=4.2.0 rename to baogutang-admin/src/main/resources/static/fonts/fontawesome-webfont.eot@v=4.2.0 diff --git a/baogutang-admin/src/main/resources/templates/fonts/fontawesome-webfont.svg@v=4.2.0 b/baogutang-admin/src/main/resources/static/fonts/fontawesome-webfont.svg@v=4.2.0 similarity index 100% rename from baogutang-admin/src/main/resources/templates/fonts/fontawesome-webfont.svg@v=4.2.0 rename to baogutang-admin/src/main/resources/static/fonts/fontawesome-webfont.svg@v=4.2.0 diff --git a/baogutang-admin/src/main/resources/templates/fonts/fontawesome-webfont.ttf@v=4.2.0 b/baogutang-admin/src/main/resources/static/fonts/fontawesome-webfont.ttf@v=4.2.0 similarity index 100% rename from baogutang-admin/src/main/resources/templates/fonts/fontawesome-webfont.ttf@v=4.2.0 rename to baogutang-admin/src/main/resources/static/fonts/fontawesome-webfont.ttf@v=4.2.0 diff --git a/baogutang-admin/src/main/resources/templates/fonts/fontawesome-webfont.woff@v=4.2.0 b/baogutang-admin/src/main/resources/static/fonts/fontawesome-webfont.woff@v=4.2.0 similarity index 100% rename from baogutang-admin/src/main/resources/templates/fonts/fontawesome-webfont.woff@v=4.2.0 rename to baogutang-admin/src/main/resources/static/fonts/fontawesome-webfont.woff@v=4.2.0 diff --git a/baogutang-admin/src/main/resources/templates/fonts/glyphicons-halflings-regular.eot b/baogutang-admin/src/main/resources/static/fonts/glyphicons-halflings-regular.eot similarity index 100% rename from baogutang-admin/src/main/resources/templates/fonts/glyphicons-halflings-regular.eot rename to baogutang-admin/src/main/resources/static/fonts/glyphicons-halflings-regular.eot diff --git a/baogutang-admin/src/main/resources/templates/fonts/glyphicons-halflings-regular.eot@ b/baogutang-admin/src/main/resources/static/fonts/glyphicons-halflings-regular.eot@ similarity index 100% rename from baogutang-admin/src/main/resources/templates/fonts/glyphicons-halflings-regular.eot@ rename to baogutang-admin/src/main/resources/static/fonts/glyphicons-halflings-regular.eot@ diff --git a/baogutang-admin/src/main/resources/templates/fonts/glyphicons-halflings-regular.svg b/baogutang-admin/src/main/resources/static/fonts/glyphicons-halflings-regular.svg similarity index 100% rename from baogutang-admin/src/main/resources/templates/fonts/glyphicons-halflings-regular.svg rename to baogutang-admin/src/main/resources/static/fonts/glyphicons-halflings-regular.svg diff --git a/baogutang-admin/src/main/resources/templates/fonts/glyphicons-halflings-regular.ttf b/baogutang-admin/src/main/resources/static/fonts/glyphicons-halflings-regular.ttf similarity index 100% rename from baogutang-admin/src/main/resources/templates/fonts/glyphicons-halflings-regular.ttf rename to baogutang-admin/src/main/resources/static/fonts/glyphicons-halflings-regular.ttf diff --git a/baogutang-admin/src/main/resources/templates/fonts/glyphicons-halflings-regular.woff b/baogutang-admin/src/main/resources/static/fonts/glyphicons-halflings-regular.woff similarity index 100% rename from baogutang-admin/src/main/resources/templates/fonts/glyphicons-halflings-regular.woff rename to baogutang-admin/src/main/resources/static/fonts/glyphicons-halflings-regular.woff diff --git a/baogutang-admin/src/main/resources/templates/js/FileSaver.min.js b/baogutang-admin/src/main/resources/static/js/FileSaver.min.js similarity index 100% rename from baogutang-admin/src/main/resources/templates/js/FileSaver.min.js rename to baogutang-admin/src/main/resources/static/js/FileSaver.min.js diff --git a/baogutang-admin/src/main/resources/templates/js/bootstrap.min.js b/baogutang-admin/src/main/resources/static/js/bootstrap.min.js similarity index 100% rename from baogutang-admin/src/main/resources/templates/js/bootstrap.min.js rename to baogutang-admin/src/main/resources/static/js/bootstrap.min.js diff --git a/baogutang-admin/src/main/resources/templates/js/clipboard.min.js b/baogutang-admin/src/main/resources/static/js/clipboard.min.js similarity index 100% rename from baogutang-admin/src/main/resources/templates/js/clipboard.min.js rename to baogutang-admin/src/main/resources/static/js/clipboard.min.js diff --git a/baogutang-admin/src/main/resources/templates/js/jquery.json.js b/baogutang-admin/src/main/resources/static/js/jquery.json.js similarity index 100% rename from baogutang-admin/src/main/resources/templates/js/jquery.json.js rename to baogutang-admin/src/main/resources/static/js/jquery.json.js diff --git a/baogutang-admin/src/main/resources/templates/js/jquery.json2xml.js b/baogutang-admin/src/main/resources/static/js/jquery.json2xml.js similarity index 100% rename from baogutang-admin/src/main/resources/templates/js/jquery.json2xml.js rename to baogutang-admin/src/main/resources/static/js/jquery.json2xml.js diff --git a/baogutang-admin/src/main/resources/templates/js/jquery.message.js b/baogutang-admin/src/main/resources/static/js/jquery.message.js similarity index 100% rename from baogutang-admin/src/main/resources/templates/js/jquery.message.js rename to baogutang-admin/src/main/resources/static/js/jquery.message.js diff --git a/baogutang-admin/src/main/resources/templates/js/jquery.min.js b/baogutang-admin/src/main/resources/static/js/jquery.min.js similarity index 100% rename from baogutang-admin/src/main/resources/templates/js/jquery.min.js rename to baogutang-admin/src/main/resources/static/js/jquery.min.js diff --git a/baogutang-admin/src/main/resources/templates/js/jquery.numberedtextarea.js b/baogutang-admin/src/main/resources/static/js/jquery.numberedtextarea.js similarity index 100% rename from baogutang-admin/src/main/resources/templates/js/jquery.numberedtextarea.js rename to baogutang-admin/src/main/resources/static/js/jquery.numberedtextarea.js diff --git a/baogutang-admin/src/main/resources/templates/js/jquery.xml2json.js b/baogutang-admin/src/main/resources/static/js/jquery.xml2json.js similarity index 100% rename from baogutang-admin/src/main/resources/templates/js/jquery.xml2json.js rename to baogutang-admin/src/main/resources/static/js/jquery.xml2json.js diff --git a/baogutang-admin/src/main/resources/templates/js/json2.js b/baogutang-admin/src/main/resources/static/js/json2.js similarity index 100% rename from baogutang-admin/src/main/resources/templates/js/json2.js rename to baogutang-admin/src/main/resources/static/js/json2.js diff --git a/baogutang-admin/src/main/resources/templates/js/jsonlint.js b/baogutang-admin/src/main/resources/static/js/jsonlint.js similarity index 100% rename from baogutang-admin/src/main/resources/templates/js/jsonlint.js rename to baogutang-admin/src/main/resources/static/js/jsonlint.js diff --git a/baogutang-admin/src/main/resources/templates/file-baogutang.html b/baogutang-admin/src/main/resources/templates/file-baogutang.html index dbd1867..32c8f0e 100644 --- a/baogutang-admin/src/main/resources/templates/file-baogutang.html +++ b/baogutang-admin/src/main/resources/templates/file-baogutang.html @@ -1,13 +1,19 @@ - + - - - + BAOGUTANG-FILE - - - + + + + + + + + + + +