216
m2pool-modules/m2pool-pool/pom.xml
Normal file
216
m2pool-modules/m2pool-pool/pom.xml
Normal file
@@ -0,0 +1,216 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
||||
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<parent>
|
||||
<artifactId>m2pool-modules</artifactId>
|
||||
<groupId>com.m2pool</groupId>
|
||||
<version>3.5.0</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<artifactId>m2pool-pool</artifactId>
|
||||
|
||||
<dependencies>
|
||||
<!-- SpringCloud Alibaba Nacos -->
|
||||
<dependency>
|
||||
<groupId>com.alibaba.cloud</groupId>
|
||||
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
|
||||
</dependency>
|
||||
<!-- SpringCloud Alibaba Nacos Config -->
|
||||
<dependency>
|
||||
<groupId>com.alibaba.cloud</groupId>
|
||||
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
|
||||
</dependency>
|
||||
|
||||
<!-- SpringCloud Alibaba Sentinel -->
|
||||
<dependency>
|
||||
<groupId>com.alibaba.cloud</groupId>
|
||||
<artifactId>spring-cloud-starter-alibaba-sentinel</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-web</artifactId>
|
||||
</dependency>
|
||||
|
||||
|
||||
<!-- SpringBoot Actuator -->
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-actuator</artifactId>
|
||||
</dependency>
|
||||
|
||||
<!-- Swagger UI -->
|
||||
<dependency>
|
||||
<groupId>io.springfox</groupId>
|
||||
<artifactId>springfox-swagger-ui</artifactId>
|
||||
<version>${swagger.fox.version}</version>
|
||||
</dependency>
|
||||
|
||||
<!-- Mysql Connector -->
|
||||
<dependency>
|
||||
<groupId>mysql</groupId>
|
||||
<artifactId>mysql-connector-java</artifactId>
|
||||
</dependency>
|
||||
|
||||
<!-- Lombok -->
|
||||
<dependency>
|
||||
<groupId>org.projectlombok</groupId>
|
||||
<artifactId>lombok-maven-plugin</artifactId>
|
||||
<scope>provided</scope>
|
||||
</dependency>
|
||||
|
||||
<!-- <!– Mybatis-Plus –>-->
|
||||
<!-- <dependency>-->
|
||||
<!-- <groupId>com.baomidou</groupId>-->
|
||||
<!-- <artifactId>mybatis-plus-boot-starter</artifactId>-->
|
||||
<!-- <exclusions>-->
|
||||
<!-- <exclusion>-->
|
||||
<!-- <artifactId>jsqlparser</artifactId>-->
|
||||
<!-- <groupId>com.github.jsqlparser</groupId>-->
|
||||
<!-- </exclusion>-->
|
||||
<!--<!– <exclusion>–>-->
|
||||
<!--<!– <artifactId>mybatis</artifactId>–>-->
|
||||
<!--<!– <groupId>org.mybatis</groupId>–>-->
|
||||
<!--<!– </exclusion>–>-->
|
||||
<!-- </exclusions>-->
|
||||
<!-- </dependency>-->
|
||||
|
||||
<!-- M2Pool Common DataSource -->
|
||||
<dependency>
|
||||
<groupId>com.m2pool</groupId>
|
||||
<artifactId>common-datasource</artifactId>
|
||||
</dependency>
|
||||
|
||||
<!-- M2Pool Common security -->
|
||||
<dependency>
|
||||
<groupId>com.m2pool</groupId>
|
||||
<artifactId>common-security</artifactId>
|
||||
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.m2pool</groupId>
|
||||
<artifactId>common-log</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.m2pool</groupId>
|
||||
<artifactId>common-swagger</artifactId>
|
||||
</dependency>
|
||||
|
||||
<!-- WebSocket-->
|
||||
<dependency>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-starter-websocket</artifactId>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.java-websocket</groupId>
|
||||
<artifactId>Java-WebSocket</artifactId>
|
||||
<version>1.3.5</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>cn.hutool</groupId>
|
||||
<artifactId>hutool-all</artifactId>
|
||||
<version>5.6.2</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.mybatis</groupId>
|
||||
<artifactId>mybatis</artifactId>
|
||||
<version>3.5.7</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
|
||||
<!--google两步认证相关-->
|
||||
<dependency>
|
||||
<groupId>de.taimos</groupId>
|
||||
<artifactId>totp</artifactId>
|
||||
<version>1.0</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>commons-codec</groupId>
|
||||
<artifactId>commons-codec</artifactId>
|
||||
<version>1.10</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.google.zxing</groupId>
|
||||
<artifactId>javase</artifactId>
|
||||
<version>3.3.0</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>commons-codec</groupId>
|
||||
<artifactId>commons-codec</artifactId>
|
||||
<version>1.18.0</version>
|
||||
</dependency>
|
||||
|
||||
<dependency>
|
||||
<groupId>org.bouncycastle</groupId>
|
||||
<artifactId>bcprov-jdk15on</artifactId>
|
||||
<version>1.70</version> <!-- 请使用最新版本 -->
|
||||
</dependency>
|
||||
|
||||
</dependencies>
|
||||
|
||||
<profiles>
|
||||
<profile>
|
||||
<!-- 本地环境 -->
|
||||
<id>dev</id>
|
||||
<properties>
|
||||
<spring.profile>dev</spring.profile>
|
||||
<nacos.server.address>127.0.0.1:8808</nacos.server.address>
|
||||
</properties>
|
||||
<activation>
|
||||
<!-- 是否默认激活 -->
|
||||
<activeByDefault>true</activeByDefault>
|
||||
</activation>
|
||||
</profile>
|
||||
<profile>
|
||||
<!-- 测试环境 -->
|
||||
<id>test</id>
|
||||
<properties>
|
||||
<spring.profile>test</spring.profile>
|
||||
<nacos.server.address>127.0.0.1:8808</nacos.server.address>
|
||||
</properties>
|
||||
<activation>
|
||||
<activeByDefault>false</activeByDefault>
|
||||
</activation>
|
||||
</profile>
|
||||
<profile>
|
||||
<!-- 生产环境 -->
|
||||
<id>prod</id>
|
||||
<properties>
|
||||
<spring.profile>prod</spring.profile>
|
||||
<nacos.server.address>127.0.0.1:8808</nacos.server.address>
|
||||
</properties>
|
||||
<activation>
|
||||
<activeByDefault>false</activeByDefault>
|
||||
</activation>
|
||||
</profile>
|
||||
</profiles>
|
||||
|
||||
<build>
|
||||
<finalName>${project.artifactId}</finalName>
|
||||
<plugins>
|
||||
<plugin>
|
||||
<groupId>org.springframework.boot</groupId>
|
||||
<artifactId>spring-boot-maven-plugin</artifactId>
|
||||
<executions>
|
||||
<execution>
|
||||
<goals>
|
||||
<goal>repackage</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
|
||||
|
||||
</project>
|
||||
@@ -0,0 +1,34 @@
|
||||
package com.m2pool.pool;
|
||||
|
||||
import com.m2pool.common.swagger.annotation.EnableCustomSwagger2;
|
||||
import com.m2pool.common.security.annotation.EnableCustomConfig;
|
||||
import com.m2pool.common.security.annotation.EnableM2PoolFeignClients;
|
||||
import org.mybatis.spring.annotation.MapperScan;
|
||||
import org.springframework.boot.SpringApplication;
|
||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.web.client.RestTemplate;
|
||||
|
||||
/**
|
||||
* @Description pool服务入口类
|
||||
* @Date 2024/6/14 13:42
|
||||
* @Author dy
|
||||
*/
|
||||
@EnableCustomConfig
|
||||
@EnableCustomSwagger2
|
||||
@EnableM2PoolFeignClients
|
||||
@SpringBootApplication
|
||||
@MapperScan({"com.m2pool.pool.mapper"})
|
||||
public class M2PoolApplication {
|
||||
|
||||
@Bean
|
||||
public RestTemplate restTemplate(){
|
||||
return new RestTemplate();
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
SpringApplication.run(M2PoolApplication.class,args);
|
||||
System.out.println("m2pool矿池微服务启动成功");
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
//package com.m2pool.pool.config;
|
||||
//
|
||||
//import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;
|
||||
//import com.baomidou.mybatisplus.extension.plugins.pagination.optimize.JsqlParserCountOptimize;
|
||||
//import org.springframework.context.annotation.Bean;
|
||||
//import org.springframework.context.annotation.Configuration;
|
||||
//
|
||||
///**
|
||||
// * @Description TODO
|
||||
// * @Date 2024/6/14 11:15
|
||||
// * @Author dy
|
||||
// */
|
||||
//@Configuration
|
||||
//public class MybatisPlusConfig {
|
||||
// @Bean
|
||||
// public PaginationInterceptor paginationInterceptor(){
|
||||
// return new PaginationInterceptor();
|
||||
// }
|
||||
//}
|
||||
@@ -0,0 +1,77 @@
|
||||
package com.m2pool.pool.config;
|
||||
|
||||
import com.m2pool.pool.factory.IgnoreSSLRequestFactory;
|
||||
|
||||
import org.apache.http.client.HttpClient;
|
||||
import org.apache.http.config.Registry;
|
||||
import org.apache.http.config.RegistryBuilder;
|
||||
import org.apache.http.conn.socket.ConnectionSocketFactory;
|
||||
import org.apache.http.conn.socket.PlainConnectionSocketFactory;
|
||||
import org.apache.http.conn.ssl.NoopHostnameVerifier;
|
||||
import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
|
||||
import org.apache.http.impl.client.CloseableHttpClient;
|
||||
import org.apache.http.impl.client.HttpClientBuilder;
|
||||
import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
|
||||
import org.apache.http.ssl.SSLContextBuilder;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.context.annotation.Primary;
|
||||
import org.springframework.http.client.HttpComponentsClientHttpRequestFactory;
|
||||
import org.springframework.web.client.RestTemplate;
|
||||
|
||||
import java.security.KeyManagementException;
|
||||
import java.security.NoSuchAlgorithmException;
|
||||
|
||||
|
||||
/**
|
||||
* @Description TODO
|
||||
* @Date 2024/6/14 14:59
|
||||
* @Author dy
|
||||
*/
|
||||
@Configuration
|
||||
public class RestTemplateConfig {
|
||||
|
||||
/**
|
||||
* 使用ssl对证书进行验证,需要将证书导出到jdk管理仓库,
|
||||
* 命令:keytool -import -v -trustcacerts -alias mytest -file "D:/tmp/mytest.cer" -keystore "C:/Program Files/Java/jdk1.8.0_131/jre/lib/security/cacerts"
|
||||
*/
|
||||
//@Bean("restTemplate")
|
||||
//@Primary
|
||||
//public RestTemplate restTemplate() throws NoSuchAlgorithmException, KeyManagementException {
|
||||
// HttpComponentsClientHttpRequestFactory httpRequestFactory = new
|
||||
// HttpComponentsClientHttpRequestFactory();
|
||||
// httpRequestFactory.setConnectionRequestTimeout(6 * 1000); //获取连接池连接的超时时间(毫秒)
|
||||
// httpRequestFactory.setConnectTimeout(6 * 1000); //连接上服务器(握手成功)的时间(毫秒)
|
||||
// httpRequestFactory.setReadTimeout(60 * 1000); //返回数据时间(毫秒)
|
||||
// httpRequestFactory.setHttpClient(httpClient());
|
||||
// RestTemplate restTemplate = new RestTemplate(httpRequestFactory);
|
||||
// return restTemplate;
|
||||
//}
|
||||
|
||||
/**
|
||||
* 绕过ssl对证书进行验证,无需将证书导出到jdk管理仓库
|
||||
*/
|
||||
@Bean("restTemplateIgnoreSSL")
|
||||
public RestTemplate restTemplateIgnoreSSL() throws NoSuchAlgorithmException, KeyManagementException {
|
||||
IgnoreSSLRequestFactory requestFactory = new IgnoreSSLRequestFactory(httpClient());
|
||||
requestFactory.setConnectTimeout(60000); //连接上服务器(握手成功)的时间
|
||||
requestFactory.setReadTimeout(60000); //返回数据时间
|
||||
RestTemplate restTemplate = new RestTemplate(requestFactory);
|
||||
return restTemplate;
|
||||
}
|
||||
|
||||
@Bean
|
||||
public HttpClient httpClient() throws KeyManagementException, NoSuchAlgorithmException {
|
||||
SSLContextBuilder contextBuilder = new SSLContextBuilder();
|
||||
SSLConnectionSocketFactory socketFactory = new SSLConnectionSocketFactory(contextBuilder.build(), NoopHostnameVerifier.INSTANCE);
|
||||
Registry<ConnectionSocketFactory> registry = RegistryBuilder.<ConnectionSocketFactory>create()
|
||||
.register("http", new PlainConnectionSocketFactory())
|
||||
.register("https", socketFactory).build();
|
||||
PoolingHttpClientConnectionManager connectionManager = new PoolingHttpClientConnectionManager(registry);
|
||||
connectionManager.setMaxTotal(200);
|
||||
connectionManager.setDefaultMaxPerRoute(100);
|
||||
CloseableHttpClient httpClient = HttpClientBuilder.create().setConnectionManager(connectionManager).build();
|
||||
return httpClient;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
package com.m2pool.pool.config;
|
||||
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.scheduling.annotation.SchedulingConfigurer;
|
||||
import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler;
|
||||
import org.springframework.scheduling.config.ScheduledTaskRegistrar;
|
||||
|
||||
/**
|
||||
* @Description scheduler配置类
|
||||
* @Date 2024/10/25 10:26
|
||||
* @Author 杜懿
|
||||
*/
|
||||
@Configuration
|
||||
public class ScheduledTaskConfig implements SchedulingConfigurer {
|
||||
@Override
|
||||
public void configureTasks(ScheduledTaskRegistrar taskRegistrar) {
|
||||
ThreadPoolTaskScheduler taskScheduler = new ThreadPoolTaskScheduler();
|
||||
taskScheduler.setPoolSize(20);
|
||||
taskScheduler.initialize();
|
||||
taskRegistrar.setTaskScheduler(taskScheduler);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
package com.m2pool.pool.config;
|
||||
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.web.socket.server.standard.ServerEndpointExporter;
|
||||
|
||||
/**
|
||||
* @Description websocket 配置
|
||||
* @Date 2024/6/14 11:09
|
||||
* @Author dy
|
||||
*/
|
||||
@Configuration
|
||||
public class WebSocketConfig {
|
||||
|
||||
@Bean
|
||||
public ServerEndpointExporter serverEndpointExporter()
|
||||
{
|
||||
return new ServerEndpointExporter();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,79 @@
|
||||
package com.m2pool.pool.controller;
|
||||
|
||||
import com.github.pagehelper.PageHelper;
|
||||
import com.m2pool.common.core.web.Result.AjaxResult;
|
||||
import com.m2pool.common.core.web.controller.BaseController;
|
||||
import com.m2pool.common.core.web.page.TableDataInfo;
|
||||
import com.m2pool.common.security.annotation.RequiresLogin;
|
||||
import com.m2pool.pool.dto.NoticeListDto;
|
||||
import com.m2pool.pool.service.NoticeService;
|
||||
import com.m2pool.pool.vo.*;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Description 告警系统相关请求接口
|
||||
* @Date 2024/6/14 9:54
|
||||
* @Author dy
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/notice")
|
||||
public class NoticeController extends BaseController {
|
||||
|
||||
@Autowired
|
||||
private NoticeService noticeService;
|
||||
|
||||
|
||||
@PostMapping("/addNoticeEmail")
|
||||
@ApiOperation(value = "添加告警邮箱")
|
||||
@RequiresLogin
|
||||
public AjaxResult addNoticeEmail(@RequestBody NoticeAddVo vo){
|
||||
|
||||
return noticeService.addNoticeEmail(vo);
|
||||
|
||||
}
|
||||
|
||||
@PostMapping("/getCode")
|
||||
@ApiOperation(value = "绑定通知邮箱 发送邮箱验证码")
|
||||
@RequiresLogin
|
||||
public AjaxResult getCode(@RequestBody NoticeAddVo vo){
|
||||
clearPage();
|
||||
return noticeService.getCode(vo);
|
||||
|
||||
}
|
||||
|
||||
@PostMapping("/getList")
|
||||
@ApiOperation(value = "获取当前用户绑定的通知邮箱列表 ")
|
||||
@RequiresLogin
|
||||
public TableDataInfo getNoticeEmailList(@RequestBody NoticePageVo vo){
|
||||
|
||||
PageHelper.startPage(vo.getPage(),vo.getLimit());
|
||||
List<NoticeListDto> list = noticeService.getNoticeEmailList(vo);
|
||||
return getDataTable(list);
|
||||
|
||||
}
|
||||
|
||||
@PostMapping("/updateInfo")
|
||||
@ApiOperation(value = "修改通知邮箱备注信息")
|
||||
@RequiresLogin
|
||||
public AjaxResult updateInfo(@RequestBody NoticeUpdateVo vo){
|
||||
|
||||
return noticeService.updateInfo(vo);
|
||||
|
||||
}
|
||||
|
||||
@DeleteMapping("/deleteEmail")
|
||||
@ApiOperation(value = "删除通知邮箱")
|
||||
@RequiresLogin
|
||||
public AjaxResult deleteEmail(@RequestBody NoticeDelVo vo){
|
||||
|
||||
return noticeService.deleteEmail(vo);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,203 @@
|
||||
package com.m2pool.pool.controller;
|
||||
|
||||
import com.github.pagehelper.PageHelper;
|
||||
import com.m2pool.common.core.web.Result.AjaxResult;
|
||||
import com.m2pool.common.core.web.controller.BaseController;
|
||||
import com.m2pool.common.core.web.page.TableDataInfo;
|
||||
import com.m2pool.common.security.annotation.RequiresLogin;
|
||||
import com.m2pool.pool.dto.BlockInfoDto;
|
||||
import com.m2pool.pool.service.MinerAccountService;
|
||||
import com.m2pool.pool.service.PoolService;
|
||||
import com.m2pool.pool.vo.*;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.validation.Valid;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Description 统一请求接口
|
||||
* @Date 2024/6/14 9:54
|
||||
* @Author dy
|
||||
*/
|
||||
@RestController
|
||||
//@RequestMapping("/pool")
|
||||
public class PoolController extends BaseController {
|
||||
|
||||
@Autowired
|
||||
private PoolService poolService;
|
||||
|
||||
@Autowired
|
||||
private MinerAccountService maService;
|
||||
|
||||
|
||||
@PostMapping("/getCoinInfo")
|
||||
@ApiOperation(value = "获取币种(矿池)信息")
|
||||
public AjaxResult getCoinInfo(@Valid @RequestBody CoinVo vo){
|
||||
|
||||
return poolService.getPoolInfo(vo);
|
||||
|
||||
}
|
||||
|
||||
@PostMapping("/checkAccount")
|
||||
@ApiOperation(value = "校验挖矿账号是否存在")
|
||||
public boolean checkAccount(@Valid @RequestBody MinerAccountAddVo vo){
|
||||
|
||||
return poolService.checkAccount(vo);
|
||||
|
||||
}
|
||||
|
||||
@PostMapping("/getPoolPower")
|
||||
@ApiOperation(value = "获取币种(矿池)算力曲线图")
|
||||
public AjaxResult getPoolPower(@Valid @RequestBody CoinVo vo){
|
||||
|
||||
return poolService.getPoolPower(vo);
|
||||
|
||||
}
|
||||
|
||||
//@PostMapping("/getMinerCount")
|
||||
//@ApiOperation(value = "获取币种(矿池)矿工数量曲线图")
|
||||
//public AjaxResult getMinerCount(@Valid @RequestBody CoinVo com.m2pool.chat.vo){
|
||||
//
|
||||
// return poolService.getMinerCount(com.m2pool.chat.vo);
|
||||
//
|
||||
//}
|
||||
|
||||
@PostMapping("/getLuck")
|
||||
@ApiOperation(value = "获取币种(矿池)幸运值")
|
||||
public AjaxResult getLuck(@Valid @RequestBody CoinVo vo){
|
||||
|
||||
return poolService.getLuckByCoin(vo);
|
||||
|
||||
}
|
||||
|
||||
@PostMapping("/getBlockInfo")
|
||||
@ApiOperation(value = "获取币种(矿池)报块信息")
|
||||
public TableDataInfo getBlockInfo(@RequestBody() CoinVo vo){
|
||||
PageHelper.startPage(vo.getPage(),vo.getLimit());
|
||||
List<BlockInfoDto> list = poolService.getBlockInfoList(vo);
|
||||
return getDataTable(list);
|
||||
}
|
||||
|
||||
//@PostMapping("/getPoolPowerDistribution")
|
||||
//@ApiOperation(value = "获取当前矿池算力分布 柱状图")
|
||||
//public AjaxResult getPoolPowerDistribution(@Valid @RequestBody CoinVo com.m2pool.chat.vo){
|
||||
// //暂未使用
|
||||
// return poolService.getPoolPowerDistribution(com.m2pool.chat.vo);
|
||||
//
|
||||
//}
|
||||
|
||||
@PostMapping("/getMinerAccountPower")
|
||||
@ApiOperation(value = "获取当前挖矿账号算力曲线图")
|
||||
@RequiresLogin
|
||||
public AjaxResult getMinerAccountPower(@Valid @RequestBody AccountVo vo){
|
||||
|
||||
return maService.getMinerAccountPower(vo);
|
||||
|
||||
}
|
||||
|
||||
@PostMapping("/getAccountPowerDistribution")
|
||||
@ApiOperation(value = "获取当前挖矿账号算力分布 柱状图")
|
||||
@RequiresLogin
|
||||
public AjaxResult getAccountPowerDistribution(@Valid @RequestBody AccountVo vo){
|
||||
|
||||
return maService.getAccountPowerDistribution(vo);
|
||||
|
||||
}
|
||||
|
||||
@PostMapping("/getMinerAccountInfo")
|
||||
@ApiOperation(value = "获取当前挖矿账户收益信息")
|
||||
@RequiresLogin
|
||||
public AjaxResult getMinerAccountInfo(@Valid @RequestBody AccountVo vo){
|
||||
|
||||
return maService.getMinerAccountInfo(vo);
|
||||
|
||||
}
|
||||
|
||||
@PostMapping("/getMinerList")
|
||||
@ApiOperation(value = "获取当前挖矿账户下矿工详情")
|
||||
@RequiresLogin
|
||||
public AjaxResult getMinerList(@Valid @RequestBody MinerListVo vo){
|
||||
|
||||
return maService.getMinerList(vo);
|
||||
|
||||
}
|
||||
|
||||
@PostMapping("/getMinerPower")
|
||||
@ApiOperation(value = "获取矿工算力曲线图")
|
||||
@RequiresLogin
|
||||
public AjaxResult getMinerPower(@Valid @RequestBody MinerVo vo){
|
||||
|
||||
return maService.getMinerPower(vo);
|
||||
|
||||
}
|
||||
|
||||
//@PostMapping("/getMinerPowerDistribution")
|
||||
//@ApiOperation(value = "获取矿工算力分布 柱状图")
|
||||
//@RequiresLogin
|
||||
//public AjaxResult getMinerPowerDistribution(@Valid @RequestBody MinerVo com.m2pool.chat.vo){
|
||||
//
|
||||
// return maService.getMinerPowerDistribution(com.m2pool.chat.vo);
|
||||
//
|
||||
//}
|
||||
|
||||
@PostMapping("/getHistoryIncome")
|
||||
@ApiOperation(value = "获取收益历史记录")
|
||||
@RequiresLogin
|
||||
public TableDataInfo getHistoryIncome(@RequestBody() AccountVo vo){
|
||||
|
||||
//PageHelper.startPage(com.m2pool.chat.vo.getPage(),com.m2pool.chat.vo.getLimit());
|
||||
return maService.getHistoryIncome(vo);
|
||||
}
|
||||
|
||||
@PostMapping("/getHistoryOutcome")
|
||||
@ApiOperation(value = "获取账号提现历史记录")
|
||||
@RequiresLogin
|
||||
public TableDataInfo getHistoryOutcome(@RequestBody() AccountVo vo){
|
||||
|
||||
return maService.getHistoryOutcome(vo);
|
||||
}
|
||||
|
||||
@PostMapping(value = {"/getCoinBalanceList","/getCoinBalancetList"})
|
||||
@ApiOperation(value = "获取币种余额list")
|
||||
public AjaxResult getCoinBalancetList(@RequestBody BalanceListGetVo vo){
|
||||
|
||||
return poolService.getCoinBalanceList(vo);
|
||||
|
||||
}
|
||||
|
||||
@PostMapping("/getNetPower")
|
||||
@ApiOperation(value = "获取全网算力曲线")
|
||||
public AjaxResult getNetPower(@Valid @RequestBody CoinVo vo){
|
||||
|
||||
return poolService.getNetPower(vo);
|
||||
|
||||
}
|
||||
|
||||
@PostMapping("/getParam")
|
||||
@ApiOperation(value = "根据币种获取计算器相关参数")
|
||||
public AjaxResult getParam(@Valid @RequestBody CoinVo vo){
|
||||
|
||||
return poolService.getParam(vo);
|
||||
|
||||
}
|
||||
|
||||
|
||||
@GetMapping("/test2")
|
||||
@ApiOperation(value = "")
|
||||
public AjaxResult test2(){
|
||||
|
||||
return poolService.test2();
|
||||
}
|
||||
|
||||
|
||||
@GetMapping("/test1")
|
||||
@ApiOperation(value = "")
|
||||
public AjaxResult test1(){
|
||||
|
||||
return poolService.test1();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,146 @@
|
||||
package com.m2pool.pool.controller;
|
||||
|
||||
import com.github.pagehelper.PageHelper;
|
||||
import com.m2pool.common.core.utils.StringUtils;
|
||||
import com.m2pool.common.core.web.Result.AjaxResult;
|
||||
import com.m2pool.common.core.web.controller.BaseController;
|
||||
import com.m2pool.common.core.web.page.TableDataInfo;
|
||||
import com.m2pool.common.security.annotation.RequiresLogin;
|
||||
import com.m2pool.pool.dto.UserReadPageInfoReturnDto;
|
||||
import com.m2pool.pool.service.ReadOnlyService;
|
||||
import com.m2pool.pool.vo.*;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.validation.Valid;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Description 统一请求接口
|
||||
* @Date 2024/6/14 9:54
|
||||
* @Author dy
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/read")
|
||||
public class ReadOnlyController extends BaseController {
|
||||
|
||||
@Autowired
|
||||
private ReadOnlyService roService;
|
||||
|
||||
@PostMapping("/getHtmlUrl")
|
||||
@ApiOperation(value = "创建只读页面 ")
|
||||
@RequiresLogin
|
||||
public AjaxResult getHtmlUrl(@Valid @RequestBody ReadOnlyHtmlCreateVo vo){
|
||||
|
||||
return roService.createPageUrl(vo);
|
||||
|
||||
}
|
||||
|
||||
@PostMapping("/getUrlList")
|
||||
@ApiOperation(value = "获取当前用户只读页面列表 ")
|
||||
@RequiresLogin
|
||||
public TableDataInfo getUrlList(@RequestBody(required = false) PageVo vo){
|
||||
|
||||
if(StringUtils.isNull(vo)){
|
||||
vo = new PageVo();
|
||||
}
|
||||
PageHelper.clearPage();
|
||||
return roService.getUrlList(vo);
|
||||
|
||||
}
|
||||
|
||||
|
||||
@PostMapping("/getUrlInfo")
|
||||
@ApiOperation(value = "获取当前只读页面基础信息 ")
|
||||
@RequiresLogin
|
||||
public AjaxResult getUrlInfo(@Valid @RequestBody ReadOnlyKeyVo vo){
|
||||
return roService.getUrlInfo(vo);
|
||||
|
||||
}
|
||||
|
||||
@PostMapping("/changeUrlInfo")
|
||||
@ApiOperation(value = "修改只读页面 只能修改备注和权限")
|
||||
@RequiresLogin
|
||||
public AjaxResult changeUrlInfo(@Valid @RequestBody ReadOnlyHtmlChangeVo vo){
|
||||
|
||||
return roService.changeUrlInfo(vo);
|
||||
|
||||
}
|
||||
|
||||
@DeleteMapping("/delPage")
|
||||
@ApiOperation(value = "修改只读页面 只能修改备注和权限")
|
||||
@RequiresLogin
|
||||
public AjaxResult delPage(@Valid @RequestBody ReadOnlyKeyVo vo){
|
||||
|
||||
return roService.delPageByKey(vo);
|
||||
|
||||
}
|
||||
|
||||
|
||||
@PostMapping("/getPageInfo")
|
||||
@ApiOperation(value = "只读页面 获取只读页面 权限信息")
|
||||
public AjaxResult getPageInfo(@Valid @RequestBody ReadOnlyKeyVo vo){
|
||||
|
||||
return roService.getPageInfo(vo);
|
||||
|
||||
}
|
||||
|
||||
@PostMapping("/getMinerAccountPower")
|
||||
@ApiOperation(value = "只读页面 获取只读页面 挖矿账号算力曲线图")
|
||||
public AjaxResult getMinerAccountPower(@Valid @RequestBody ReadOnlyIntervalVo vo){
|
||||
|
||||
return roService.getMinerAccountPower(vo);
|
||||
|
||||
}
|
||||
|
||||
@PostMapping("/getAccountPowerDistribution")
|
||||
@ApiOperation(value = "只读页面 获取挖矿账号算力分布 柱状图")
|
||||
public AjaxResult getAccountPowerDistribution(@Valid @RequestBody ReadOnlyIntervalVo vo){
|
||||
|
||||
return roService.getAccountPowerDistribution(vo);
|
||||
|
||||
}
|
||||
|
||||
@PostMapping("/getProfitInfo")
|
||||
@ApiOperation(value = "只读页面 获取挖矿账户收益信息")
|
||||
public AjaxResult getMinerAccountInfo(@Valid @RequestBody ReadOnlyKeyVo vo){
|
||||
|
||||
return roService.getProfitInfo(vo);
|
||||
|
||||
}
|
||||
|
||||
@PostMapping("/getMinerList")
|
||||
@ApiOperation(value = "只读页面 获取挖矿账户下矿工详情")
|
||||
public AjaxResult getMinerList(@Valid @RequestBody ReadOnlyListVo vo){
|
||||
PageHelper.clearPage();
|
||||
return roService.getMinerList(vo);
|
||||
|
||||
}
|
||||
|
||||
@PostMapping("/getMinerPower")
|
||||
@ApiOperation(value = "只读页面 获取矿工算力曲线图")
|
||||
public AjaxResult getMinerPower(@Valid @RequestBody ReadOnlyMinerVo vo){
|
||||
|
||||
return roService.getMinerPower(vo);
|
||||
|
||||
}
|
||||
|
||||
|
||||
@PostMapping("/getHistoryIncome")
|
||||
@ApiOperation(value = "获取收益历史记录")
|
||||
public TableDataInfo getHistoryIncome(@RequestBody() ReadOnlyPageVo vo){
|
||||
PageHelper.clearPage();
|
||||
return roService.getHistoryIncome(vo);
|
||||
}
|
||||
|
||||
@PostMapping("/getHistoryOutcome")
|
||||
@ApiOperation(value = "获取账号提现历史记录")
|
||||
public TableDataInfo getHistoryOutcome(@RequestBody() ReadOnlyPageVo vo){
|
||||
|
||||
PageHelper.clearPage();
|
||||
return roService.getHistoryOutcome(vo);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,192 @@
|
||||
package com.m2pool.pool.controller;
|
||||
|
||||
import com.github.pagehelper.PageHelper;
|
||||
import com.m2pool.common.core.text.Convert;
|
||||
import com.m2pool.common.core.utils.StringUtils;
|
||||
import com.m2pool.common.core.web.Result.AjaxResult;
|
||||
import com.m2pool.common.core.web.controller.BaseController;
|
||||
import com.m2pool.common.core.web.page.TableDataInfo;
|
||||
import com.m2pool.common.security.annotation.Logical;
|
||||
import com.m2pool.common.security.annotation.RequiresLogin;
|
||||
import com.m2pool.common.security.annotation.RequiresRoles;
|
||||
import com.m2pool.pool.dto.IdsDto;
|
||||
import com.m2pool.pool.dto.TicketListDto;
|
||||
import com.m2pool.pool.service.TicketService;
|
||||
import com.m2pool.pool.vo.*;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.sql.SQLException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
/**
|
||||
* @Description 统一请求接口
|
||||
* @Date 2022/5/27 9:54
|
||||
* @Author 杜懿
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/ticket")
|
||||
public class TicketController extends BaseController {
|
||||
|
||||
@Autowired
|
||||
private TicketService ticketService;
|
||||
|
||||
@PostMapping("/uploadFile")
|
||||
@ApiOperation(value = "文件上传")
|
||||
public AjaxResult uploadFile(@RequestParam("file") MultipartFile[] file){
|
||||
try {
|
||||
return ticketService.uploadFiles(file);
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
return AjaxResult.error("服务器异常,请联系管理员");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@GetMapping("/downloadFile")
|
||||
@ApiOperation(value = "文件批量下载")
|
||||
public void download(IdsDto dto, HttpServletRequest request, HttpServletResponse response){
|
||||
|
||||
ticketService.downloadByIds(dto.getIds(),request,response);
|
||||
|
||||
}
|
||||
|
||||
@PostMapping("/submitTicket")
|
||||
@ApiOperation(value = "提交工单")
|
||||
@RequiresLogin
|
||||
public AjaxResult submitTicket(@RequestBody(required = false) TicketVo vo){
|
||||
if(StringUtils.isNull(vo)){vo = new TicketVo();}
|
||||
return ticketService.submitTicket(vo);
|
||||
|
||||
}
|
||||
|
||||
@PostMapping("/resubmitTicket")
|
||||
@ApiOperation(value = "工单内容补充工单")
|
||||
@RequiresLogin
|
||||
@RequiresRoles(value = {"admin", "registered"}, logical = Logical.OR)
|
||||
public AjaxResult resubmitTicket(@RequestBody ResubmitTicketVo vo){
|
||||
return ticketService.resubmitTicket(vo);
|
||||
}
|
||||
|
||||
@PostMapping({"/getPrivateTicket","privateConsume"})
|
||||
@ApiOperation(value = "个人工单列表")
|
||||
@RequiresLogin
|
||||
@RequiresRoles(value = {"admin", "registered"}, logical = Logical.OR)
|
||||
public AjaxResult getPrivateTicket(@RequestBody(required = false) PrivateTicketListVo vo){
|
||||
if(StringUtils.isNull(vo)){
|
||||
vo = new PrivateTicketListVo();
|
||||
vo.setStatus(0);
|
||||
}
|
||||
return ticketService.getPrivateTicketByStatus(vo);
|
||||
}
|
||||
|
||||
@PostMapping({"/privateTicketDetails","getTicketDetails"})
|
||||
@ApiOperation(value = "个人工单详情")
|
||||
@RequiresLogin
|
||||
public AjaxResult getPrivateTicketDetails(@RequestBody() IdVo vo){
|
||||
return ticketService.getPrivateTicketDetails(vo.getId());
|
||||
}
|
||||
|
||||
@PostMapping("/endTicket")
|
||||
@ApiOperation(value = "用户关闭工单")
|
||||
@RequiresLogin
|
||||
@RequiresRoles(value = {"admin", "registered"}, logical = Logical.OR)
|
||||
public AjaxResult endTicket(@RequestBody(required = false) EndTicketVo vo){
|
||||
|
||||
return ticketService.endTicket(vo);
|
||||
}
|
||||
|
||||
|
||||
/********************* admin相关接口 *************************/
|
||||
//@PostMapping("/getTicketList")
|
||||
//@ApiOperation(value = "按状态搜索后台工单列表")
|
||||
//@RequiresLogin
|
||||
//@RequiresRoles(value = {"admin", "accounting","support","maintainer"}, logical = Logical.OR)
|
||||
//public TableDataInfo getTicketList(@RequestBody StatusVo com.m2pool.chat.vo){
|
||||
// PageHelper.startPage(com.m2pool.chat.vo.getPage(),com.m2pool.chat.vo.getLimit());
|
||||
// List<TicketListDto> list = ticketService.getTicketList(com.m2pool.chat.vo.getStatus());
|
||||
// return getDataTable(list);
|
||||
//}
|
||||
|
||||
@PostMapping("/bk/getAllTicket")
|
||||
@ApiOperation(value = "条件搜索后台所有工单列表")
|
||||
@RequiresLogin
|
||||
@RequiresRoles("admin")
|
||||
public TableDataInfo getAllTicket(@RequestBody AllTicketListVo vo){
|
||||
System.out.println("com.m2pool.chat.vo"+vo);
|
||||
if(StringUtils.isNotBlank(vo.getCond())){
|
||||
System.out.println("不为空");
|
||||
Pattern pattern = Pattern.compile("^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$");
|
||||
if(pattern.matcher(vo.getCond()).matches()){
|
||||
//验证是否是邮箱
|
||||
System.out.println("邮箱"+vo.getCond());
|
||||
vo.setEmail(vo.getCond());
|
||||
}else {
|
||||
//判断是否是id
|
||||
Long id = Convert.toLong(vo.getCond(), 0L);
|
||||
System.out.println(id);
|
||||
if(id > 0){
|
||||
System.out.println("工单id:"+vo.getCond());
|
||||
vo.setId(id);
|
||||
}else {
|
||||
return getDataTable(new ArrayList<>());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
PageHelper.startPage(vo.getPage(),vo.getLimit());
|
||||
return getDataTable(ticketService.getAllTicket(vo)) ;
|
||||
}
|
||||
|
||||
@PostMapping("/bk/endTicket")
|
||||
@ApiOperation(value = "关闭用户工单")
|
||||
@RequiresLogin
|
||||
@RequiresRoles(value = {"admin"}, logical = Logical.OR)
|
||||
public AjaxResult endUserTicket(@RequestBody(required = false) IdVo vo){
|
||||
|
||||
return ticketService.closeTicket(vo);
|
||||
}
|
||||
|
||||
|
||||
@PostMapping("/bk/list")
|
||||
@ApiOperation(value = "根据状态获取type为线上(type=0)的工单")
|
||||
@RequiresLogin
|
||||
@RequiresRoles(value = {"admin"}, logical = Logical.OR)
|
||||
public TableDataInfo onlineTicketList(@RequestBody StatusVo vo){
|
||||
|
||||
PageHelper.startPage(vo.getPage(),vo.getLimit());
|
||||
List<TicketListDto> list = ticketService.getSupportTicketList(vo);
|
||||
return getDataTable(list);
|
||||
}
|
||||
|
||||
@PostMapping("/bk/details")
|
||||
@ApiOperation(value = "工单详情")
|
||||
@RequiresLogin
|
||||
@RequiresRoles(value = {"admin"}, logical = Logical.OR)
|
||||
public AjaxResult onlineTicketDetails(@RequestBody IdVo vo){
|
||||
if(StringUtils.isNull(vo)){
|
||||
return AjaxResult.error("工单id缺失");
|
||||
}
|
||||
return ticketService.getTicketDetails(vo.getId());
|
||||
}
|
||||
|
||||
@PostMapping("/bk/respon")
|
||||
@ApiOperation(value = "回复工单")
|
||||
@RequiresLogin
|
||||
@RequiresRoles(value = {"admin"}, logical = Logical.OR)
|
||||
public AjaxResult onlineResponTicket(@RequestBody ResponTicketVo vo){
|
||||
return ticketService.onlineResponTicket(vo);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,246 @@
|
||||
package com.m2pool.pool.controller;
|
||||
|
||||
import com.github.pagehelper.PageHelper;
|
||||
import com.m2pool.common.core.utils.StringUtils;
|
||||
import com.m2pool.common.core.web.Result.AjaxResult;
|
||||
import com.m2pool.common.core.web.controller.BaseController;
|
||||
import com.m2pool.common.core.web.page.TableDataInfo;
|
||||
import com.m2pool.common.security.annotation.RequiresLogin;
|
||||
import com.m2pool.pool.dto.UserApiDto;
|
||||
import com.m2pool.pool.service.GoogleAuthService;
|
||||
import com.m2pool.pool.service.MinerAccountService;
|
||||
import com.m2pool.pool.service.UserMinserService;
|
||||
import com.m2pool.pool.vo.*;
|
||||
import com.m2pool.system.api.RemoteUserService;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import javax.validation.Valid;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Description 统一请求接口
|
||||
* @Date 2024/6/14 9:54
|
||||
* @Author dy
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/user")
|
||||
public class UserController extends BaseController {
|
||||
|
||||
@Autowired
|
||||
private UserMinserService umService;
|
||||
|
||||
@Autowired
|
||||
private GoogleAuthService googleAuthService;
|
||||
|
||||
@Autowired
|
||||
private MinerAccountService maService;
|
||||
|
||||
@Autowired
|
||||
private RemoteUserService userService;
|
||||
|
||||
@PostMapping("/addMinerAccount")
|
||||
@ApiOperation(value = "绑定挖矿账号")
|
||||
@RequiresLogin
|
||||
public AjaxResult addMinerAccount(@Valid @RequestBody MinerAccountAddVo vo){
|
||||
|
||||
return umService.addMinerAccount(vo);
|
||||
|
||||
}
|
||||
|
||||
@PostMapping("/checkAccount")
|
||||
@ApiOperation(value = "校验挖矿账号是否存在")
|
||||
@RequiresLogin
|
||||
public AjaxResult checkAccount(@Valid @RequestBody MinerAccountAddVo vo){
|
||||
|
||||
return umService.checkAccount(vo);
|
||||
|
||||
}
|
||||
|
||||
@PostMapping("/checkBalance")
|
||||
@ApiOperation(value = "校验钱包可用性")
|
||||
@RequiresLogin
|
||||
public AjaxResult checkBalance(@Valid @RequestBody BalanceCheckVo vo){
|
||||
|
||||
return umService.checkBalance(vo);
|
||||
|
||||
}
|
||||
|
||||
@PostMapping("/check")
|
||||
@ApiOperation(value = "校验账户是否可用和钱包可用性")
|
||||
@RequiresLogin
|
||||
public AjaxResult check(@Valid @RequestBody MaBalanceCheckVo vo){
|
||||
|
||||
return umService.checkMaAndBalance(vo);
|
||||
|
||||
}
|
||||
|
||||
@DeleteMapping("/delMinerAccount")
|
||||
@ApiOperation(value = "删除挖矿账号")
|
||||
@RequiresLogin
|
||||
public AjaxResult delMinerAccount(@Valid @RequestBody MinerAccountDelVo vo){
|
||||
|
||||
return umService.delMinerAccount(vo);
|
||||
|
||||
}
|
||||
|
||||
@PostMapping("/addBalance")
|
||||
@ApiOperation(value = "挖矿账户绑定钱包-->>现改为 修改钱包地址或起付线以及切换自动提现激活状态")
|
||||
@RequiresLogin
|
||||
public AjaxResult addBalance(@Valid @RequestBody AccountBalanceAddVo vo){
|
||||
|
||||
return umService.addBalance(vo);
|
||||
|
||||
}
|
||||
|
||||
//@PostMapping("/updateBalance")
|
||||
//@ApiOperation(value = "挖矿账户解绑钱包")
|
||||
//@RequiresLogin
|
||||
//public AjaxResult updateBalance(@Valid @RequestBody AccountBalanceAddVo com.m2pool.chat.vo){
|
||||
//
|
||||
// return umService.updateBalance(com.m2pool.chat.vo);
|
||||
//
|
||||
//}
|
||||
|
||||
@PostMapping("/getAccountList")
|
||||
@ApiOperation(value = "获取用户当前币种下所有挖矿账号")
|
||||
@RequiresLogin
|
||||
public AjaxResult getAccountList(){
|
||||
|
||||
return umService.getAccountList();
|
||||
|
||||
}
|
||||
|
||||
@PostMapping("/getAccountGradeList")
|
||||
@ApiOperation(value = "获取用户当前币种下所有挖矿账号")
|
||||
@RequiresLogin
|
||||
public AjaxResult getAccountGradeList(){
|
||||
|
||||
return umService.getAccountGradeList();
|
||||
|
||||
}
|
||||
|
||||
@PostMapping("/getMinerAccountBalance")
|
||||
@ApiOperation(value = "获取当前矿工账号绑定钱包地址")
|
||||
@RequiresLogin
|
||||
public AjaxResult getMinerAccountBalance(@RequestBody MinerIdVo vo){
|
||||
|
||||
return umService.getMinerAccountBalance(vo);
|
||||
|
||||
}
|
||||
|
||||
/**************************************** google两步验证相关接口 ***********************************************************/
|
||||
@PostMapping("/ifBind")
|
||||
@ApiOperation(value = "校验钱包可用性")
|
||||
@RequiresLogin
|
||||
public AjaxResult ifBind(){
|
||||
clearPage();
|
||||
return googleAuthService.ifBind();
|
||||
|
||||
}
|
||||
|
||||
@PostMapping("/getBindInfo")
|
||||
@ApiOperation(value = "获取谷歌验证器 安全码和验证码")
|
||||
@RequiresLogin
|
||||
public AjaxResult getBindInfo(){
|
||||
clearPage();
|
||||
return googleAuthService.getBindInfo();
|
||||
|
||||
}
|
||||
|
||||
@PostMapping("/getBindCode")
|
||||
@ApiOperation(value = "绑定谷歌验证器 发送邮箱验证码")
|
||||
@RequiresLogin
|
||||
public AjaxResult getBindCode(){
|
||||
clearPage();
|
||||
return googleAuthService.getBindCode();
|
||||
|
||||
}
|
||||
|
||||
@PostMapping("/bindGoogle")
|
||||
@ApiOperation(value = "绑定谷歌验证器")
|
||||
@RequiresLogin
|
||||
public AjaxResult bindGoogle(@Valid @RequestBody GoogleBindVo vo){
|
||||
clearPage();
|
||||
return googleAuthService.bindGoogle(vo);
|
||||
|
||||
}
|
||||
|
||||
@PostMapping("/closeStepTwo")
|
||||
@ApiOperation(value = "关闭两步验证")
|
||||
@RequiresLogin
|
||||
public AjaxResult closeStepTwo(@Valid @RequestBody GoogleCloseVo vo){
|
||||
clearPage();
|
||||
return googleAuthService.closeStepTwp(vo);
|
||||
|
||||
}
|
||||
|
||||
@PostMapping("/getCloseCode")
|
||||
@ApiOperation(value = "关闭谷歌验证器 发送邮箱验证码")
|
||||
@RequiresLogin
|
||||
public AjaxResult getCloseCode(){
|
||||
clearPage();
|
||||
return googleAuthService.getCloseCode();
|
||||
|
||||
}
|
||||
|
||||
@PostMapping("/emailIfBind")
|
||||
@ApiOperation(value = "校验钱包可用性")
|
||||
public AjaxResult emailIfBind(@Valid @RequestBody EmailVo vo){
|
||||
clearPage();
|
||||
return googleAuthService.emailIfBind(vo);
|
||||
|
||||
}
|
||||
|
||||
@PostMapping("/getApiKey")
|
||||
@ApiOperation(value = "创建apiKey")
|
||||
@RequiresLogin
|
||||
public AjaxResult getApiKey(@Valid @RequestBody ApiKeyCreateVo vo){
|
||||
|
||||
return umService.createApiKey(vo);
|
||||
|
||||
}
|
||||
|
||||
@PostMapping("/getApiList")
|
||||
@ApiOperation(value = "获取当前用户apiKEY列表 ")
|
||||
@RequiresLogin
|
||||
public TableDataInfo getApiList(@RequestBody(required = false) PageVo vo){
|
||||
|
||||
if(StringUtils.isNull(vo)){
|
||||
vo = new PageVo();
|
||||
}
|
||||
|
||||
PageHelper.startPage(vo.getPage(),vo.getLimit());
|
||||
List<UserApiDto> list = umService.getApiList(vo);
|
||||
return getDataTable(list);
|
||||
|
||||
}
|
||||
|
||||
@PostMapping("/getApiInfo")
|
||||
@ApiOperation(value = "获取当前只读页面基础信息 ")
|
||||
@RequiresLogin
|
||||
public AjaxResult getApiInfo(@Valid @RequestBody ApiKeyInfoVo vo){
|
||||
return umService.getApiInfo(vo);
|
||||
|
||||
}
|
||||
|
||||
|
||||
@PostMapping("/updateAPI")
|
||||
@ApiOperation(value = "修改API绑定信息 只能修改备注和权限")
|
||||
@RequiresLogin
|
||||
public AjaxResult updateAPI(@Valid @RequestBody ApiKeyUpdateVo vo){
|
||||
|
||||
return umService.updateApi(vo);
|
||||
|
||||
}
|
||||
|
||||
@DeleteMapping("/delApi")
|
||||
@ApiOperation(value = "删除指定api 只能修改备注和权限")
|
||||
@RequiresLogin
|
||||
public AjaxResult delApi(@Valid @RequestBody ApiKeyDelVo vo){
|
||||
|
||||
return umService.deleteApi(vo);
|
||||
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
package com.m2pool.pool.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @Description 曲线图数据结构
|
||||
* @Date 2024/6/13 11:17
|
||||
* @Author dy
|
||||
*/
|
||||
@Data
|
||||
public class AccountPowerDto implements Serializable {
|
||||
|
||||
/** 日期 */
|
||||
private Date date;
|
||||
|
||||
/** 矿池算力 */
|
||||
private double pv;
|
||||
|
||||
/** 有效提交数 */
|
||||
private BigDecimal accepts;
|
||||
|
||||
/** 被拒提交数 */
|
||||
private BigDecimal rejects;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
package com.m2pool.pool.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @Description 曲线图数据结构
|
||||
* @Date 2024/6/13 11:17
|
||||
* @Author dy
|
||||
*/
|
||||
@Data
|
||||
public class AccountProfitInfoDto implements Serializable {
|
||||
|
||||
/** 挖矿账户 */
|
||||
private String account;
|
||||
|
||||
/** 总收益 */
|
||||
private BigDecimal totalProfit;
|
||||
|
||||
/** 总支出 */
|
||||
private BigDecimal expend;
|
||||
|
||||
/** 昨日收益 */
|
||||
private BigDecimal preProfit;
|
||||
|
||||
/** 今日收益 */
|
||||
private BigDecimal todayPorfit;
|
||||
|
||||
/** 余额 */
|
||||
private BigDecimal balance;
|
||||
|
||||
private BigDecimal withdrawable;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
package com.m2pool.pool.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @Description TODO
|
||||
* @Date 2022/6/20 17:44
|
||||
* @Author 杜懿
|
||||
*/
|
||||
@Data
|
||||
public class AllTicketListDto {
|
||||
|
||||
private int id;
|
||||
|
||||
private Date date;
|
||||
|
||||
private String desc;
|
||||
|
||||
private String email;
|
||||
|
||||
private String status;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
package com.m2pool.pool.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @Description 幸运值
|
||||
* @Date 2024/6/13 11:17
|
||||
* @Author dy
|
||||
*/
|
||||
@Data
|
||||
public class BalanceListDto implements Serializable {
|
||||
|
||||
/** 挖矿账户名 */
|
||||
private String user;
|
||||
|
||||
/** 钱包地址 */
|
||||
private String address;
|
||||
|
||||
/** 起付线 */
|
||||
private double amount;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
package com.m2pool.pool.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @Description 当前币种矿池报块信息
|
||||
* @Date 2024/6/13 11:17
|
||||
* @Author dy
|
||||
*/
|
||||
@Data
|
||||
public class BlockInfoDto implements Serializable {
|
||||
|
||||
/** 区块高度 */
|
||||
private int height;
|
||||
|
||||
/** 报块时间 */
|
||||
private Date date;
|
||||
|
||||
/** 区块hash */
|
||||
private String hash;
|
||||
|
||||
/** 报块奖励 */
|
||||
private double reward;
|
||||
|
||||
/** 交易费 */
|
||||
private double fees;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
package com.m2pool.pool.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @Description 返回数据实体
|
||||
* @Date 2024/6/13 11:17
|
||||
* @Author dy
|
||||
*/
|
||||
@Data
|
||||
public class CalParamDto implements Serializable {
|
||||
|
||||
/** 币种 */
|
||||
private String coin;
|
||||
|
||||
/** 全网算力 */
|
||||
private BigDecimal netHashrate;
|
||||
|
||||
/** 区块奖励 */
|
||||
private BigDecimal reward;
|
||||
|
||||
/** 每日报块数 */
|
||||
private BigDecimal count;
|
||||
|
||||
/** 矿池手续费 */
|
||||
private BigDecimal poolFee;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
package com.m2pool.pool.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @Description 返回数据实体
|
||||
* @Date 2024/6/13 11:17
|
||||
* @Author dy
|
||||
*/
|
||||
@Data
|
||||
public class ComDataDto implements Serializable {
|
||||
|
||||
/** 时间 */
|
||||
private Date date;
|
||||
|
||||
/** 数据值 */
|
||||
private Object value;
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
package com.m2pool.pool.dto;
|
||||
|
||||
import com.alibaba.nacos.shaded.com.google.gson.annotations.SerializedName;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @Description 返回数据实体
|
||||
* @Date 2024/6/13 11:17
|
||||
* @Author dy
|
||||
*/
|
||||
@Data
|
||||
public class CountDto implements Serializable {
|
||||
|
||||
/** 时间 */
|
||||
private Date dataTime;
|
||||
|
||||
/** 数据条数 */
|
||||
private int num;
|
||||
|
||||
private BigDecimal price;
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
package com.m2pool.pool.dto;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @Description 返回数据实体
|
||||
* @Date 2024/6/13 11:17
|
||||
* @Author dy
|
||||
*/
|
||||
@Data
|
||||
public class DateBigDecimalDto implements Serializable {
|
||||
|
||||
/** 时间 */
|
||||
private Date pDate;
|
||||
|
||||
/** 数据值 */
|
||||
private BigDecimal value;
|
||||
|
||||
private BigDecimal price;
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
package com.m2pool.pool.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @Description 返回数据实体
|
||||
* @Date 2024/6/13 11:17
|
||||
* @Author dy
|
||||
*/
|
||||
@Data
|
||||
public class DateBigDecimalsDto implements Serializable {
|
||||
|
||||
/** 时间 */
|
||||
private Date date;
|
||||
|
||||
/** 数据值 */
|
||||
private BigDecimal value1;
|
||||
|
||||
private BigDecimal value2;
|
||||
|
||||
private BigDecimal value3;
|
||||
|
||||
private BigDecimal value4;
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
package com.m2pool.pool.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @Description 返回数据实体
|
||||
* @Date 2024/6/13 11:17
|
||||
* @Author dy
|
||||
*/
|
||||
@Data
|
||||
public class DateStrBigDecimalDto implements Serializable {
|
||||
|
||||
/** 时间 */
|
||||
private String date;
|
||||
|
||||
/** 数据值 */
|
||||
private BigDecimal value;
|
||||
}
|
||||
@@ -0,0 +1,21 @@
|
||||
package com.m2pool.pool.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* @Description 返回数据实体
|
||||
* @Date 2024/6/13 11:17
|
||||
* @Author dy
|
||||
*/
|
||||
@Data
|
||||
public class DateStrStringDto implements Serializable {
|
||||
|
||||
/** 时间 */
|
||||
private String date;
|
||||
|
||||
/** 数据值 */
|
||||
private String value;
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
package com.m2pool.pool.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @Description 返回数据实体
|
||||
* @Date 2024/6/13 11:17
|
||||
* @Author dy
|
||||
*/
|
||||
@Data
|
||||
public class DateStringDto implements Serializable {
|
||||
|
||||
/** 时间 */
|
||||
private Date date;
|
||||
|
||||
/** 数据值 */
|
||||
private String value;
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
package com.m2pool.pool.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @Description 返回数据实体
|
||||
* @Date 2024/6/13 11:17
|
||||
* @Author dy
|
||||
*/
|
||||
@Data
|
||||
public class DistributionDto implements Serializable {
|
||||
|
||||
/** 算力范围低值 */
|
||||
private int low;
|
||||
|
||||
/** 算力范围高值 */
|
||||
private int high;
|
||||
|
||||
/** 矿工数 */
|
||||
private int count;
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
package com.m2pool.pool.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @Description 返回数据实体
|
||||
* @Date 2024/6/13 11:17
|
||||
* @Author dy
|
||||
*/
|
||||
@Data
|
||||
public class GoogleInfoDto implements Serializable {
|
||||
|
||||
/** 谷歌验证码 */
|
||||
private String secret;
|
||||
|
||||
/** 二维码 */
|
||||
private String img;
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
package com.m2pool.pool.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @Description 返回数据实体
|
||||
* @Date 2022/5/30 11:17
|
||||
* @Author 杜懿
|
||||
*/
|
||||
@Data
|
||||
public class IdsDto implements Serializable {
|
||||
private String ids;
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
package com.m2pool.pool.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @Description 矿工信息总览表对象
|
||||
* @Date 2024/6/13 11:17
|
||||
* @Author dy
|
||||
*/
|
||||
@Data
|
||||
public class IncomeDto implements Serializable {
|
||||
|
||||
/** 时间 */
|
||||
private Date date;
|
||||
|
||||
/** 难度 */
|
||||
private String difficult;
|
||||
|
||||
/** 币种/矿池 */
|
||||
private String coin;
|
||||
|
||||
/** 收益 */
|
||||
private BigDecimal amount;
|
||||
|
||||
/** 备注 */
|
||||
private double mhs;
|
||||
|
||||
private String comment;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
package com.m2pool.pool.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @Description 幸运值
|
||||
* @Date 2024/6/13 11:17
|
||||
* @Author dy
|
||||
*/
|
||||
@Data
|
||||
public class LuckDto implements Serializable {
|
||||
|
||||
/** 3日幸运值 */
|
||||
private double luck3d;
|
||||
|
||||
/** 7日幸运值 */
|
||||
private double luck7d;
|
||||
|
||||
/** 30日幸运值 */
|
||||
private double luck30d;
|
||||
|
||||
/** 90日幸运值 */
|
||||
private double luck90d;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
package com.m2pool.pool.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @Description 矿工信息总览表对象
|
||||
* @Date 2024/6/13 11:17
|
||||
* @Author dy
|
||||
*/
|
||||
@Data
|
||||
public class MinerAccountBalanceDto implements Serializable {
|
||||
|
||||
private long id;
|
||||
|
||||
/** 挖矿账户 */
|
||||
private String ma;
|
||||
|
||||
/** 提现收款地址 */
|
||||
private String balance;
|
||||
|
||||
/** 是否激活 */
|
||||
private int active;
|
||||
|
||||
private double amount;
|
||||
|
||||
private String remark;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
package com.m2pool.pool.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @Description 币种(矿池)矿工数量曲线图数据结构
|
||||
* @Date 2024/6/13 11:17
|
||||
* @Author dy
|
||||
*/
|
||||
@Data
|
||||
public class MinerCountLineDto implements Serializable {
|
||||
|
||||
/** 日期 */
|
||||
private Date date;
|
||||
|
||||
/** 矿工数量 */
|
||||
private int value;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,59 @@
|
||||
package com.m2pool.pool.dto;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonAlias;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.naming.Name;
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @Description 当前币种矿池信息
|
||||
* @Date 2024/6/13 11:17
|
||||
* @Author dy
|
||||
*/
|
||||
@Data
|
||||
public class MinerDataDto implements Serializable {
|
||||
|
||||
/** id */
|
||||
private long id;
|
||||
|
||||
/** 时间 */
|
||||
private Date date;
|
||||
|
||||
/** 挖矿账号 */
|
||||
private String user;
|
||||
|
||||
/** 矿工名 */
|
||||
private String miner;
|
||||
|
||||
private String refindex;
|
||||
|
||||
/** 1小时平均算力 */
|
||||
private double mhs;
|
||||
|
||||
/** 24小时平均算力 */
|
||||
private double mhs24h;
|
||||
|
||||
/** 申请次数?通过次数? */
|
||||
private int accepts;
|
||||
|
||||
/** 被拒次数 */
|
||||
private int rejects;
|
||||
|
||||
/** 拒绝率 */
|
||||
//private int rejects_ratio;
|
||||
@JsonAlias("rejects_ratio")
|
||||
private double rejectsRatio;
|
||||
|
||||
/** 最后一次提交的时间 */
|
||||
@JsonAlias("last_submit")
|
||||
private Date lastSubmit;
|
||||
|
||||
/** 1天内在线时间 */
|
||||
private String state;
|
||||
|
||||
/** 是否在线 */
|
||||
private String online;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,59 @@
|
||||
package com.m2pool.pool.dto;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonAlias;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @Description 当前币种矿池信息
|
||||
* @Date 2024/6/13 11:17
|
||||
* @Author dy
|
||||
*/
|
||||
@Data
|
||||
public class MinerDataInsertDBDto implements Serializable {
|
||||
|
||||
/** id */
|
||||
private long id;
|
||||
|
||||
/** 时间 */
|
||||
private String date;
|
||||
|
||||
/** 挖矿账号 */
|
||||
private String user;
|
||||
|
||||
/** 矿工名 */
|
||||
private String miner;
|
||||
|
||||
/** 1小时平均算力 */
|
||||
private double mhs;
|
||||
|
||||
/** 24小时平均算力 */
|
||||
private double mhs24h;
|
||||
|
||||
///** 申请次数?通过次数? */
|
||||
//private int accepts;
|
||||
//
|
||||
///** 被拒次数 */
|
||||
//private int rejects;
|
||||
//
|
||||
///** 拒绝率 */
|
||||
////private int rejects_ratio;
|
||||
//@JsonAlias("rejects_ratio")
|
||||
//private double rejectsRatio;
|
||||
|
||||
/** 最后一次提交的时间 */
|
||||
@JsonAlias("last_submit")
|
||||
private String lastSubmit;
|
||||
|
||||
///** */
|
||||
//private double duration;
|
||||
|
||||
/** 是否在线 */
|
||||
//private String online;
|
||||
|
||||
private String state;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
package com.m2pool.pool.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @Description 矿工信息总览表对象
|
||||
* @Date 2024/6/13 11:17
|
||||
* @Author dy
|
||||
*/
|
||||
@Data
|
||||
public class MinerDto implements Serializable {
|
||||
|
||||
private String id;
|
||||
|
||||
/** 矿工名 */
|
||||
private String miner;
|
||||
|
||||
/** 1小时平均算力 */
|
||||
private double rate;
|
||||
|
||||
/** 24小时平均算力 */
|
||||
private double dailyRate;
|
||||
|
||||
/** 拒绝率 */
|
||||
private double reject;
|
||||
|
||||
/** 最后提交时间 */
|
||||
private Date submit;
|
||||
|
||||
private String status;
|
||||
|
||||
private long offline = 0;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,50 @@
|
||||
package com.m2pool.pool.dto;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonAlias;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Description 矿工信息总览表对象
|
||||
* @Date 2024/6/13 11:17
|
||||
* @Author dy
|
||||
*/
|
||||
@Data
|
||||
public class MinerListDto implements Serializable {
|
||||
|
||||
/** 总矿机数 */
|
||||
private int all;
|
||||
|
||||
/** 在线矿机数 */
|
||||
private int online;
|
||||
|
||||
/** 离线矿机数 */
|
||||
private int offline;
|
||||
|
||||
/** 矿工名 */
|
||||
private String miner;
|
||||
|
||||
/** 1小时平均算力 */
|
||||
private double rate;
|
||||
|
||||
/** 24小时平均算力 */
|
||||
private double dailyRate;
|
||||
|
||||
/** 拒绝率 */
|
||||
private double reject;
|
||||
|
||||
private Date submit;
|
||||
|
||||
/** 总条数 */
|
||||
private int total;
|
||||
|
||||
/** 总页数 */
|
||||
private int page;
|
||||
|
||||
/** 最后一次提交的时间 */
|
||||
private List<MinerDto> rows;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
package com.m2pool.pool.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @Description 矿工信息总览表对象
|
||||
* @Date 2024/6/13 11:17
|
||||
* @Author dy
|
||||
*/
|
||||
@Data
|
||||
public class NoticeListDto implements Serializable {
|
||||
|
||||
/** 通知邮箱记录表id */
|
||||
private long id;
|
||||
|
||||
/** 通知邮箱 */
|
||||
private String email;
|
||||
|
||||
/** 币种/矿池 */
|
||||
private String remark;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
package com.m2pool.pool.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @Description 矿工信息总览表对象
|
||||
* @Date 2024/6/13 11:17
|
||||
* @Author dy
|
||||
*/
|
||||
@Data
|
||||
public class NoticeMinerCoinListDto implements Serializable {
|
||||
|
||||
///** 通知邮箱记录表id */
|
||||
//private long id;
|
||||
|
||||
/** 通知邮箱 */
|
||||
private String email;
|
||||
|
||||
/** 挖矿账户 */
|
||||
private String miner;
|
||||
|
||||
///** 币种 */
|
||||
//private String coin;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
package com.m2pool.pool.dto;
|
||||
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @Description 文件
|
||||
* @Date 2024/6/14 15:57
|
||||
* @Author dy
|
||||
*/
|
||||
@Data
|
||||
public class OfflineUserMinerDto implements Serializable {
|
||||
|
||||
private Date date;
|
||||
|
||||
private String user;
|
||||
|
||||
private String miners;
|
||||
|
||||
private int offline;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
package com.m2pool.pool.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @Description 支出表实体类
|
||||
* @Date 2024/6/13 11:17
|
||||
* @Author dy
|
||||
*/
|
||||
@Data
|
||||
public class OutcomeDto implements Serializable {
|
||||
|
||||
/** 时间 */
|
||||
private Date date;
|
||||
|
||||
/** 提现地址 */
|
||||
private String address;
|
||||
|
||||
/** 币种/矿池 */
|
||||
private String coin;
|
||||
|
||||
/** 收益 */
|
||||
private double amount;
|
||||
|
||||
/** 交易id */
|
||||
private String txid;
|
||||
|
||||
private int status = 1;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
package com.m2pool.pool.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @Description 幸运值
|
||||
* @Date 2024/6/13 11:17
|
||||
* @Author dy
|
||||
*/
|
||||
@Data
|
||||
public class PageInfoDto implements Serializable {
|
||||
|
||||
/** 网址 */
|
||||
private String url;
|
||||
|
||||
/** 页面标号 */
|
||||
private String key;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
package com.m2pool.pool.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @Description 幸运值
|
||||
* @Date 2024/6/13 11:17
|
||||
* @Author dy
|
||||
*/
|
||||
@Data
|
||||
public class PageUrlDto implements Serializable {
|
||||
|
||||
/** 网址 */
|
||||
private String url;
|
||||
|
||||
/** 页面标号 */
|
||||
private String key;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
package com.m2pool.pool.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @Description 当前币种矿池信息
|
||||
* @Date 2024/6/13 11:17
|
||||
* @Author dy
|
||||
*/
|
||||
@Data
|
||||
public class PoolInfoDto implements Serializable {
|
||||
|
||||
/** 币种参数名 */
|
||||
private String coin;
|
||||
|
||||
/** 页面显示名 */
|
||||
private String name;
|
||||
|
||||
/** 算法 */
|
||||
private String algorithm;
|
||||
|
||||
/** 全网算力 */
|
||||
private String totalPower;
|
||||
|
||||
/** 全网难度 */
|
||||
private String totalDifficulty;
|
||||
|
||||
/** 币价 */
|
||||
private String price;
|
||||
|
||||
/** 当前高度 */
|
||||
private long height;
|
||||
|
||||
/** 矿池算力 */
|
||||
private String poolPower;
|
||||
|
||||
/** 矿工数 */
|
||||
private String poolMc;
|
||||
|
||||
/** 收费模式 **/
|
||||
private String model ="PPLNS";
|
||||
|
||||
/** 费率% 默认为1%**/
|
||||
private int fee = 1;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
package com.m2pool.pool.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @Description 曲线图数据结构
|
||||
* @Date 2024/6/13 11:17
|
||||
* @Author dy
|
||||
*/
|
||||
@Data
|
||||
public class PowerLineDto implements Serializable {
|
||||
|
||||
/** 日期 */
|
||||
private Date date;
|
||||
|
||||
/** 矿工算力 */
|
||||
private BigDecimal pv;
|
||||
|
||||
/** 拒绝率 */
|
||||
private BigDecimal rejectRate;
|
||||
|
||||
private double price;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
package com.m2pool.pool.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @Description TODO
|
||||
* @Date 2022/6/20 17:44
|
||||
* @Author 杜懿
|
||||
*/
|
||||
@Data
|
||||
public class PrivateTicketListDto {
|
||||
|
||||
private int id;
|
||||
|
||||
private Date date;
|
||||
|
||||
private String email;
|
||||
|
||||
private String status;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
package com.m2pool.pool.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @Description 收益
|
||||
* @Date 2024/6/13 11:17
|
||||
* @Author dy
|
||||
*/
|
||||
@Data
|
||||
public class ProfitDto implements Serializable {
|
||||
|
||||
/** 算力范围低值 */
|
||||
private long id;
|
||||
|
||||
/** 结算时间 */
|
||||
private Date date;
|
||||
|
||||
/** 收益 */
|
||||
private BigDecimal profit;
|
||||
|
||||
private int status;
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
package com.m2pool.pool.dto;
|
||||
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @Description 文件
|
||||
* @Date 2024/6/14 15:57
|
||||
* @Author dy
|
||||
*/
|
||||
@Data
|
||||
public class ReadOnlyPageInfo implements Serializable {
|
||||
|
||||
/** 只读页面表id */
|
||||
private long id;
|
||||
|
||||
/** 权限配置 */
|
||||
private String[] config;
|
||||
|
||||
private String coin;
|
||||
|
||||
private String account;
|
||||
|
||||
private String img;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
package com.m2pool.pool.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @Description 返回数据实体
|
||||
* @Date 2024/6/13 11:17
|
||||
* @Author dy
|
||||
*/
|
||||
@Data
|
||||
public class SysFileDto implements Serializable {
|
||||
|
||||
/** 多文件拼接 */
|
||||
private String id;
|
||||
|
||||
/**
|
||||
* 文件名称
|
||||
*/
|
||||
private String name;
|
||||
|
||||
/**
|
||||
* 文件地址
|
||||
*/
|
||||
private String url;
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
package com.m2pool.pool.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @Description TODO
|
||||
* @Date 2022/6/20 17:44
|
||||
* @Author 杜懿
|
||||
*/
|
||||
@Data
|
||||
public class TicketContentDto {
|
||||
|
||||
|
||||
private Date time;
|
||||
|
||||
private String content;
|
||||
|
||||
private String name;
|
||||
|
||||
private String files;
|
||||
|
||||
private String videoPath;
|
||||
|
||||
private String audioPath;
|
||||
|
||||
private String imagePath;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
package com.m2pool.pool.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @Description TODO
|
||||
* @Date 2022/6/20 17:44
|
||||
* @Author 杜懿
|
||||
*/
|
||||
@Data
|
||||
public class TicketDto {
|
||||
|
||||
private int id;
|
||||
|
||||
private String email;
|
||||
|
||||
private String desc;
|
||||
|
||||
private Date createTime;
|
||||
|
||||
private int status;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
package com.m2pool.pool.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @Description TODO
|
||||
* @Date 2022/6/20 17:44
|
||||
* @Author 杜懿
|
||||
*/
|
||||
@Data
|
||||
public class TicketListDto {
|
||||
|
||||
private int id;
|
||||
|
||||
private Date date;
|
||||
|
||||
private String email;
|
||||
|
||||
private String status;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
package com.m2pool.pool.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Description TODO
|
||||
* @Date 2022/6/20 17:44
|
||||
* @Author 杜懿
|
||||
*/
|
||||
@Data
|
||||
public class TicketPrivateDto {
|
||||
|
||||
private int id;
|
||||
|
||||
private String email;
|
||||
|
||||
private String desc;
|
||||
|
||||
private Date createTime;
|
||||
|
||||
private String status;
|
||||
|
||||
private List<TicketContentDto> list;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
package com.m2pool.pool.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @Description 幸运值
|
||||
* @Date 2024/6/13 11:17
|
||||
* @Author dy
|
||||
*/
|
||||
@Data
|
||||
public class UserAccountDto implements Serializable {
|
||||
|
||||
private long id;
|
||||
|
||||
/** 网站用户名 */
|
||||
private String user;
|
||||
|
||||
/** 挖矿账户名 */
|
||||
private String account;
|
||||
|
||||
/** 币种 */
|
||||
private String coin;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
package com.m2pool.pool.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @Description 幸运值
|
||||
* @Date 2024/6/13 11:17
|
||||
* @Author dy
|
||||
*/
|
||||
@Data
|
||||
public class UserAccountGradeDto implements Serializable {
|
||||
|
||||
private long id;
|
||||
|
||||
/** 挖矿账户名 */
|
||||
private String account;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
package com.m2pool.pool.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Description 幸运值
|
||||
* @Date 2024/6/13 11:17
|
||||
* @Author dy
|
||||
*/
|
||||
@Data
|
||||
public class UserAccountGradeListDto implements Serializable {
|
||||
|
||||
|
||||
/** 币种 */
|
||||
private String coin;
|
||||
|
||||
/** 矿池展示名 */
|
||||
private String title;
|
||||
|
||||
/** 图片地址 */
|
||||
private String img;
|
||||
|
||||
private List<UserAccountGradeDto> children;
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
package com.m2pool.pool.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @Description 幸运值
|
||||
* @Date 2024/6/13 11:17
|
||||
* @Author dy
|
||||
*/
|
||||
@Data
|
||||
public class UserAccountListDto implements Serializable {
|
||||
|
||||
private long id;
|
||||
|
||||
/** 挖矿账户名 */
|
||||
private String ma;
|
||||
|
||||
/** 币种 */
|
||||
private String coin;
|
||||
|
||||
private String pool;
|
||||
|
||||
/** 备注 */
|
||||
private String remark;
|
||||
|
||||
private String img;
|
||||
|
||||
private String addr;
|
||||
|
||||
private int addrStatus;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
package com.m2pool.pool.dto;
|
||||
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @Description 文件
|
||||
* @Date 2024/6/14 15:57
|
||||
* @Author dy
|
||||
*/
|
||||
@Data
|
||||
public class UserApiDto implements Serializable {
|
||||
|
||||
/** 只读页面表id */
|
||||
private long id;
|
||||
|
||||
private String user;
|
||||
|
||||
private String key;
|
||||
|
||||
private String ip;
|
||||
|
||||
/** 权限 */
|
||||
private String[] perms;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
package com.m2pool.pool.dto;
|
||||
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @Description 文件
|
||||
* @Date 2024/6/14 15:57
|
||||
* @Author dy
|
||||
*/
|
||||
@Data
|
||||
public class UserApiInfoReturnDto implements Serializable {
|
||||
|
||||
/** 只读页面表id */
|
||||
private long id;
|
||||
|
||||
/** 页面请求路径 */
|
||||
private String ip;
|
||||
|
||||
/** 权限配置 */
|
||||
private String[] perms;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
package com.m2pool.pool.dto;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @Description 曲线图数据结构
|
||||
* @Date 2024/6/13 11:17
|
||||
* @Author dy
|
||||
*/
|
||||
@Data
|
||||
public class UserPowerDto implements Serializable {
|
||||
|
||||
/** 挖矿账户名 */
|
||||
private String user;
|
||||
|
||||
/** 矿池算力 */
|
||||
private BigDecimal mhs;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
package com.m2pool.pool.dto;
|
||||
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @Description 文件
|
||||
* @Date 2024/6/14 15:57
|
||||
* @Author dy
|
||||
*/
|
||||
@Data
|
||||
public class UserReadPageInfoReturnDto implements Serializable {
|
||||
|
||||
/** 只读页面表id */
|
||||
private long id;
|
||||
|
||||
/** 只读页面编码 */
|
||||
private String key;
|
||||
|
||||
private String user;
|
||||
|
||||
/** 页面请求路径 */
|
||||
private String url;
|
||||
|
||||
private String img;
|
||||
|
||||
/** 挖矿账户 */
|
||||
private String account;
|
||||
|
||||
/** 币种 */
|
||||
private String coin;
|
||||
|
||||
/** 币种展示名*/
|
||||
private String label;
|
||||
|
||||
/** 权限配置 */
|
||||
private String[] config;
|
||||
|
||||
/** 备注 */
|
||||
private String remark;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
package com.m2pool.pool.entity;
|
||||
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @Description 文件
|
||||
* @Date 2024/6/14 15:57
|
||||
* @Author dy
|
||||
*/
|
||||
@Data
|
||||
public class BlockInfo implements Serializable {
|
||||
|
||||
/** 区块高度 */
|
||||
private long height;
|
||||
|
||||
/** 全网难度 */
|
||||
private BigDecimal difficulty;
|
||||
|
||||
/** 全网算力 */
|
||||
private BigDecimal power;
|
||||
|
||||
/** 报块奖励 */
|
||||
private BigDecimal reward;
|
||||
|
||||
/** 报块手续费 */
|
||||
private BigDecimal fees;
|
||||
|
||||
/** 报块实际收益 */
|
||||
private BigDecimal profit;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
package com.m2pool.pool.entity;
|
||||
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* @Description 文件
|
||||
* @Date 2024/6/14 15:57
|
||||
* @Author dy
|
||||
*/
|
||||
@Data
|
||||
public class GoogleInfo implements Serializable {
|
||||
|
||||
/** 邮箱 */
|
||||
private String email;
|
||||
|
||||
/** 谷歌验证码 */
|
||||
private String secret;
|
||||
|
||||
/** 谷歌验证码 */
|
||||
private int status;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
package com.m2pool.pool.entity;
|
||||
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @Description
|
||||
* @Date 2024/11/19 15:57
|
||||
* @Author 杜懿
|
||||
*/
|
||||
@Data
|
||||
public class M2File {
|
||||
|
||||
/** id */
|
||||
private Long id;
|
||||
|
||||
/** 时间 */
|
||||
private Date createTime;
|
||||
|
||||
/** value */
|
||||
private String fileName;
|
||||
|
||||
private String url;
|
||||
|
||||
// 0 图片 1音频 2视频
|
||||
private int fileType;
|
||||
|
||||
|
||||
private String userName;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,30 @@
|
||||
package com.m2pool.pool.entity;
|
||||
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @Description 文件
|
||||
* @Date 2024/6/14 15:57
|
||||
* @Author dy
|
||||
*/
|
||||
@Data
|
||||
public class M2PoolFile {
|
||||
|
||||
/** id */
|
||||
private Long id;
|
||||
|
||||
/** 时间 */
|
||||
private Date createTime;
|
||||
|
||||
/** value */
|
||||
private String fileName;
|
||||
|
||||
private String url;
|
||||
|
||||
|
||||
private String userName;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
//package com.m2pool.pool.entity;
|
||||
//
|
||||
//import lombok.Data;
|
||||
//
|
||||
///**
|
||||
// * @Description TODO
|
||||
// * @Date 2025/3/21 18:16
|
||||
// * @Author 杜懿
|
||||
// */
|
||||
//@Data
|
||||
//public class NotifyMsgAlph {
|
||||
// //ID interface{} `json:"id"`
|
||||
// //Method string `json:"method"`
|
||||
// //Params [5]interface{} `json:"params"`
|
||||
//
|
||||
// private Object id;
|
||||
// private String method;
|
||||
// private Object[] params;
|
||||
//}
|
||||
@@ -0,0 +1,47 @@
|
||||
package com.m2pool.pool.entity;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @Description TODO
|
||||
* @Date 2025/4/3 12:47
|
||||
* @Author 杜懿
|
||||
*/
|
||||
@Data
|
||||
public class NotifyMsgParams {
|
||||
|
||||
@JsonProperty("jobId")
|
||||
public String jobId;
|
||||
|
||||
//jobId
|
||||
@JsonProperty("fromGroup")
|
||||
public int fromGroup;
|
||||
//header
|
||||
@JsonProperty("toGroup")
|
||||
public int toGroup;
|
||||
//header
|
||||
@JsonProperty("headerBlob")
|
||||
public String header;
|
||||
|
||||
@JsonProperty("txsBlob")
|
||||
public String txs;
|
||||
|
||||
@JsonProperty("targetBlob")
|
||||
public String target;
|
||||
|
||||
@JsonProperty("height")
|
||||
public long height;
|
||||
|
||||
@JsonProperty("diff")
|
||||
public double diff;
|
||||
|
||||
@JsonProperty("nonce")
|
||||
public String nonce;
|
||||
|
||||
@JsonProperty("extranonce1")
|
||||
public String extranonce1;
|
||||
|
||||
@JsonProperty("extranonce2_size")
|
||||
public long extranonce2Size;
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
package com.m2pool.pool.entity;
|
||||
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Set;
|
||||
|
||||
/**
|
||||
* @Description 文件
|
||||
* @Date 2024/6/14 15:57
|
||||
* @Author dy
|
||||
*/
|
||||
@Data
|
||||
public class OpenApiKey implements Serializable {
|
||||
|
||||
/** 用户唯一标识 */
|
||||
private String key;
|
||||
|
||||
/** 用户邮箱 */
|
||||
private String user;
|
||||
|
||||
/** apiKey绑定的ip */
|
||||
private String apiIp;
|
||||
|
||||
private String permissions;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,36 @@
|
||||
package com.m2pool.pool.entity;
|
||||
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @Description 文件
|
||||
* @Date 2024/6/14 15:57
|
||||
* @Author dy
|
||||
*/
|
||||
@Data
|
||||
public class PoolPower implements Serializable {
|
||||
|
||||
/** 日期 */
|
||||
private Date date;
|
||||
|
||||
/** 日期str 入库要用String */
|
||||
private String dateStr;
|
||||
|
||||
/** 矿池算力 */
|
||||
private BigDecimal mhs;
|
||||
|
||||
/** 总矿工数 */
|
||||
private int miners;
|
||||
|
||||
/** 在线矿工数 */
|
||||
private int online;
|
||||
|
||||
/** 离线矿工数 */
|
||||
private int offline;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
package com.m2pool.pool.entity;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.OutputStream;
|
||||
import java.math.BigDecimal;
|
||||
import java.net.HttpURLConnection;
|
||||
import java.net.Socket;
|
||||
import java.util.concurrent.BlockingQueue;
|
||||
import java.util.concurrent.LinkedBlockingDeque;
|
||||
|
||||
/**
|
||||
* @Description TODO
|
||||
* @Date 2025/3/17 10:00
|
||||
* @Author 杜懿
|
||||
*/
|
||||
@Data
|
||||
public class TempMiner {
|
||||
public String coin;
|
||||
public String pool;
|
||||
public String user;
|
||||
public String password;
|
||||
public int id;
|
||||
public String state;
|
||||
// net.conn
|
||||
public OutputStream conn;
|
||||
public String extraNonce1;
|
||||
public int extraNonce2Size;
|
||||
public double difficulty;
|
||||
public String jobId;
|
||||
public String header;
|
||||
public String nbits;
|
||||
//64位无符号整数
|
||||
public BigDecimal jobTime;
|
||||
public String blockData;
|
||||
//64位无符号整数
|
||||
public long nonce;
|
||||
public long blockNonce;
|
||||
//chan bool
|
||||
private final BlockingQueue<Boolean> newJobCh = new LinkedBlockingDeque<>();
|
||||
public volatile boolean running = false;
|
||||
public volatile boolean newJob = false;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
package com.m2pool.pool.entity;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @Description TODO
|
||||
* @Date 2022/6/20 17:44
|
||||
* @Author 杜懿
|
||||
*/
|
||||
@Data
|
||||
public class Ticket {
|
||||
|
||||
private int id;
|
||||
|
||||
private String email;
|
||||
|
||||
private Date createTime;
|
||||
|
||||
private int status;
|
||||
|
||||
//问题描述
|
||||
private String desc;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
package com.m2pool.pool.entity;
|
||||
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @Description 文件
|
||||
* @Date 2024/6/14 15:57
|
||||
* @Author dy
|
||||
*/
|
||||
@Data
|
||||
public class UserApi implements Serializable {
|
||||
|
||||
/** 只读页面表id */
|
||||
private long id;
|
||||
|
||||
private String user;
|
||||
|
||||
private String key;
|
||||
|
||||
private String ip;
|
||||
|
||||
/** 权限 */
|
||||
private String perms;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
package com.m2pool.pool.entity;
|
||||
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @Description 文件
|
||||
* @Date 2024/6/14 15:57
|
||||
* @Author dy
|
||||
*/
|
||||
@Data
|
||||
public class UserGoogleAuthInfo implements Serializable {
|
||||
|
||||
/** 邮箱 */
|
||||
private String email;
|
||||
|
||||
/** 谷歌验证码 */
|
||||
private String secret;
|
||||
|
||||
private String pwd;
|
||||
|
||||
/** 谷歌验证码 */
|
||||
private int status;
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
package com.m2pool.pool.entity;
|
||||
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @Description 用户网站账户-用户挖矿账号名数据
|
||||
* 对应数据库user_miner_account数据
|
||||
* @Date 2024/6/14 15:57
|
||||
* @Author dy
|
||||
*/
|
||||
@Data
|
||||
public class UserMinerAccount {
|
||||
|
||||
private long id;
|
||||
|
||||
/** 网站账号名 */
|
||||
private String user;
|
||||
|
||||
/** 挖矿账号名 */
|
||||
private String ma;
|
||||
|
||||
/** 对应矿池 参数名 */
|
||||
private String coin;
|
||||
|
||||
private String remark;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,45 @@
|
||||
package com.m2pool.pool.entity;
|
||||
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
/**
|
||||
* @Description 文件
|
||||
* @Date 2024/6/14 15:57
|
||||
* @Author dy
|
||||
*/
|
||||
@Data
|
||||
public class UserReadOnlyPage implements Serializable {
|
||||
|
||||
private long id;
|
||||
|
||||
/** 邮箱 */
|
||||
private String email;
|
||||
|
||||
/** 币种 */
|
||||
private String coin;
|
||||
|
||||
/** 挖矿账户 */
|
||||
private String account;
|
||||
|
||||
/** 只读页面key */
|
||||
private String key;
|
||||
|
||||
/** 页面权限配置 */
|
||||
private String config;
|
||||
|
||||
/** 备注 */
|
||||
private String remark;
|
||||
|
||||
private String lang;
|
||||
|
||||
/** 创建时间 */
|
||||
private Date createTime;
|
||||
|
||||
/** 修改时间 */
|
||||
private Date updateTime;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
package com.m2pool.pool.entity;
|
||||
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* @Description 文件
|
||||
* @Date 2024/6/14 15:57
|
||||
* @Author dy
|
||||
*/
|
||||
@Data
|
||||
public class UserReadOnlyPageInfo implements Serializable {
|
||||
|
||||
/** 只读页面表id */
|
||||
private long id;
|
||||
|
||||
/** 只读页面编码 */
|
||||
private String key;
|
||||
|
||||
private String user;
|
||||
|
||||
/** 页面请求路径 */
|
||||
private String url;
|
||||
|
||||
/** 挖矿账户 */
|
||||
private String account;
|
||||
|
||||
/** 币种 */
|
||||
private String coin;
|
||||
|
||||
/** 权限配置 */
|
||||
private String config;
|
||||
|
||||
/** 备注 */
|
||||
private String remark;
|
||||
|
||||
private String lang;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
package com.m2pool.pool.enums;
|
||||
|
||||
/**
|
||||
* @Description 矿池
|
||||
* @Date 2022/5/20 11:15
|
||||
* @Author 杜懿
|
||||
*/
|
||||
public enum BalanceUseStatus {
|
||||
|
||||
START(0, "正常"),
|
||||
DELETE(99, "停用");
|
||||
|
||||
/** 币种参数名 */
|
||||
private final int code;
|
||||
/** 页面显示名 */
|
||||
private final String status;
|
||||
|
||||
BalanceUseStatus(int code, String status) {
|
||||
this.code = code;
|
||||
this.status = status;
|
||||
}
|
||||
|
||||
public int getCode() {
|
||||
return code;
|
||||
}
|
||||
|
||||
public String getStatus() {
|
||||
return status;
|
||||
}
|
||||
|
||||
public static String getStatusByCode(int code){
|
||||
for (BalanceUseStatus t : BalanceUseStatus.values()) {
|
||||
if(t.getCode()==code){
|
||||
return t.getStatus();
|
||||
}
|
||||
}
|
||||
return "";
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
package com.m2pool.pool.enums;
|
||||
|
||||
/**
|
||||
* @Description 矿池
|
||||
* @Date 2022/5/20 11:15
|
||||
* @Author 杜懿
|
||||
*/
|
||||
public enum MinerAccountStatus {
|
||||
|
||||
START(0, "正常"),
|
||||
DELETE(11, "停用");
|
||||
|
||||
/** 币种参数名 */
|
||||
private final int code;
|
||||
/** 页面显示名 */
|
||||
private final String status;
|
||||
|
||||
MinerAccountStatus(int code, String status) {
|
||||
this.code = code;
|
||||
this.status = status;
|
||||
}
|
||||
|
||||
public int getCode() {
|
||||
return code;
|
||||
}
|
||||
|
||||
public String getStatus() {
|
||||
return status;
|
||||
}
|
||||
|
||||
public static String getStatusByCode(int code){
|
||||
for (MinerAccountStatus t : MinerAccountStatus.values()) {
|
||||
if(t.getCode()==code){
|
||||
return t.getStatus();
|
||||
}
|
||||
}
|
||||
return "";
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,63 @@
|
||||
package com.m2pool.pool.enums;
|
||||
|
||||
/**
|
||||
* @Description 矿池
|
||||
* @Date 2022/5/20 11:15
|
||||
* @Author 杜懿
|
||||
*/
|
||||
public enum NodeConfig {
|
||||
|
||||
GRS("grs", "13.213.4.56", "1441", "test", "test"),
|
||||
MONA("mona", "13.213.4.56", "9402", "test", "test"),
|
||||
DGBS("dgbs", "13.214.176.64", "14022", "test", "test"),
|
||||
DGBQ("dgbq", "13.214.176.64", "14022", "test", "test"),
|
||||
DGBO("dgbo", "13.214.176.64", "14022", "test", "test"),
|
||||
DGB_QUBIT_A10("dgb_qubit_a10", "127.0.0.1", "3306", "user", "pwd"),
|
||||
DGB_SKEIN_A10("dgb_skein_a10", "127.0.0.1", "3306", "user", "pwd"),
|
||||
DGB_ODO_B20("dgb_odo_b20", "127.0.0.1", "3306", "user", "pwd"),
|
||||
NEXA("nexa", "18.139.85.190", "7227", "test", "test"),
|
||||
RXD("rxd", "13.214.176.64", "7332", "test", "test"),
|
||||
ALPH("alph", "18.141.161.129", "12973", "test", "test"),
|
||||
ENX("enx", "13.214.6.253", "12973", "test", "test");
|
||||
|
||||
/** 币种参数名 */
|
||||
private final String coin;
|
||||
/** 页面显示名 */
|
||||
private final String ip;
|
||||
/** 算法 */
|
||||
private final String host;
|
||||
|
||||
private final String user;
|
||||
|
||||
private final String pwd;
|
||||
|
||||
|
||||
NodeConfig(String coin, String ip, String host, String user, String pwd) {
|
||||
this.coin = coin;
|
||||
this.ip = ip;
|
||||
this.host = host;
|
||||
this.user = user;
|
||||
this.pwd = pwd;
|
||||
}
|
||||
|
||||
public String getCoin() {
|
||||
return coin;
|
||||
}
|
||||
|
||||
public String getIp() {
|
||||
return ip;
|
||||
}
|
||||
|
||||
public String getHost() {
|
||||
return host;
|
||||
}
|
||||
|
||||
public String getUser() {
|
||||
return user;
|
||||
}
|
||||
|
||||
public String getPwd() {
|
||||
return pwd;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,45 @@
|
||||
package com.m2pool.pool.enums;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* @Description 矿池 相关的
|
||||
* @Date 2022/5/20 11:15
|
||||
* @Author 杜懿
|
||||
*/
|
||||
public enum NodeConstant {
|
||||
|
||||
GRS("grs", BigDecimal.valueOf(Math.pow(2,32)).divide(BigDecimal.valueOf(60),2,BigDecimal.ROUND_HALF_UP)),
|
||||
MONA("mona", BigDecimal.valueOf(Math.pow(2,32)).divide(BigDecimal.valueOf(90),2,BigDecimal.ROUND_HALF_UP)),
|
||||
DGBS("dgbs", BigDecimal.valueOf(Math.pow(2,32)).divide(BigDecimal.valueOf(73.2),2,BigDecimal.ROUND_HALF_UP)),
|
||||
DGBQ("dgbq", BigDecimal.valueOf(Math.pow(2,32)).divide(BigDecimal.valueOf(73.2),2,BigDecimal.ROUND_HALF_UP)),
|
||||
DGBO("dgbo", BigDecimal.valueOf(Math.pow(2,32)).divide(BigDecimal.valueOf(73.2),2,BigDecimal.ROUND_HALF_UP)),
|
||||
DGB_QUBIT_A10("dgb_qubit_a10", BigDecimal.valueOf(Math.pow(2,32)).divide(BigDecimal.valueOf(120),2,BigDecimal.ROUND_HALF_UP)),
|
||||
DGB_SKEIN_A10("dgb_skein_a10", BigDecimal.valueOf(Math.pow(2,32)).divide(BigDecimal.valueOf(120),2,BigDecimal.ROUND_HALF_UP)),
|
||||
DGB_ODO_B20("dgb_odo_b20", BigDecimal.valueOf(Math.pow(2,32)).divide(BigDecimal.valueOf(120),2,BigDecimal.ROUND_HALF_UP)),
|
||||
NEXA("nexa", BigDecimal.valueOf(Math.pow(2,32)).subtract(BigDecimal.ONE).divide(BigDecimal.valueOf(120),2,BigDecimal.ROUND_HALF_UP)),
|
||||
RXD("rxd", BigDecimal.valueOf(Math.pow(2,32)).subtract(BigDecimal.ONE).divide(BigDecimal.valueOf(300),2,BigDecimal.ROUND_HALF_UP)),
|
||||
ALPH("alph", BigDecimal.valueOf(Math.pow(2,32)).subtract(BigDecimal.ONE).divide(BigDecimal.valueOf(16),2,BigDecimal.ROUND_HALF_UP)),
|
||||
ENX("enx", BigDecimal.valueOf(Math.pow(2,32)).subtract(BigDecimal.ONE).divide(BigDecimal.valueOf(1),2,BigDecimal.ROUND_HALF_UP));
|
||||
|
||||
/** 币种参数名 */
|
||||
private final String coin;
|
||||
/** 换算系数 */
|
||||
private final BigDecimal factor;
|
||||
|
||||
|
||||
|
||||
NodeConstant(String coin, BigDecimal factor) {
|
||||
this.coin = coin;
|
||||
this.factor = factor;
|
||||
}
|
||||
|
||||
public String getCoin() {
|
||||
return coin;
|
||||
}
|
||||
|
||||
public BigDecimal getFactor() {
|
||||
return factor;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
package com.m2pool.pool.enums;
|
||||
|
||||
/**
|
||||
* @Description 矿池默认起付额
|
||||
* @Date 2022/5/20 11:15
|
||||
* @Author 杜懿
|
||||
*/
|
||||
public enum PoolAmount {
|
||||
|
||||
GRS("grs", 1),
|
||||
MONA("mona", 1),
|
||||
DGBS("dgbs", 1),
|
||||
DGBQ("dgbq", 1),
|
||||
DGBO("dgbo", 1),
|
||||
DGB_QUBIT_A10("dgb_qubit_a10", 100),
|
||||
DGB_SKEIN_A10("dgb_skein_a10", 100),
|
||||
DGB_ODO_B20("dgb_odo_b20", 100),
|
||||
NEXA("nexa", 10000),
|
||||
RXD("rxd", 100),
|
||||
ALPH("alph", 1),
|
||||
ENX("enx", 5000);
|
||||
|
||||
/** 币种参数名 */
|
||||
private final String coin;
|
||||
/** 单位 */
|
||||
private final double amount;
|
||||
|
||||
|
||||
PoolAmount(String coin, double amount) {
|
||||
this.coin = coin;
|
||||
this.amount = amount;
|
||||
}
|
||||
|
||||
public String getCoin() {
|
||||
return coin;
|
||||
}
|
||||
|
||||
public double getAmount(){return amount;}
|
||||
|
||||
public static double getAmountByCoin(String coin){
|
||||
for (PoolAmount t : PoolAmount.values()) {
|
||||
if(t.getCoin().equals(coin)){
|
||||
return t.getAmount();
|
||||
}
|
||||
}
|
||||
return 10000;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,59 @@
|
||||
package com.m2pool.pool.enums;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* @Description 矿池 收益计数器相关常量
|
||||
* @Date 2022/5/20 11:15
|
||||
* @Author 杜懿
|
||||
*/
|
||||
public enum PoolCalParamConfig {
|
||||
|
||||
GRS("grs", BigDecimal.valueOf(Math.pow(2,32)), BigDecimal.valueOf(1440),BigDecimal.valueOf(0.01)),
|
||||
MONA("mona", BigDecimal.valueOf(Math.pow(2,32)), BigDecimal.valueOf(960),BigDecimal.valueOf(0.01)),
|
||||
DGBS("dgbs", BigDecimal.valueOf(Math.pow(2,32)), BigDecimal.valueOf(1180),BigDecimal.valueOf(0.01)),
|
||||
DGBQ("dgbq", BigDecimal.valueOf(Math.pow(2,32)), BigDecimal.valueOf(1180),BigDecimal.valueOf(0.01)),
|
||||
DGBO("dgbo", BigDecimal.valueOf(Math.pow(2,32)), BigDecimal.valueOf(1180),BigDecimal.valueOf(0.01)),
|
||||
DGB2_ODO("dgb2_odo", BigDecimal.valueOf(Math.pow(2,32)), BigDecimal.valueOf(720),BigDecimal.valueOf(0.01)),
|
||||
DGB_QUBIT_A10("dgb_qubit_a10", BigDecimal.valueOf(Math.pow(2,32)), BigDecimal.valueOf(720),BigDecimal.valueOf(0.01)),
|
||||
DGB_SKEIN_A10("dgb_skein_a10", BigDecimal.valueOf(Math.pow(2,32)), BigDecimal.valueOf(720),BigDecimal.valueOf(0.01)),
|
||||
DGB_ODO_B20("dgb_odo_b20", BigDecimal.valueOf(Math.pow(2,32)), BigDecimal.valueOf(720),BigDecimal.valueOf(0.01)),
|
||||
NEXA("nexa", BigDecimal.valueOf(Math.pow(2,32)), BigDecimal.valueOf(720),BigDecimal.valueOf(0.01)),
|
||||
RXD("rxd", BigDecimal.valueOf(Math.pow(2,32)), BigDecimal.valueOf(288),BigDecimal.valueOf(0.01)),
|
||||
ALPH("alph", BigDecimal.valueOf(Math.pow(2,32)), BigDecimal.valueOf(5400),BigDecimal.valueOf(0.01)),
|
||||
ENX("enx", BigDecimal.valueOf(Math.pow(2,32)), BigDecimal.valueOf(86400),BigDecimal.valueOf(0.00));
|
||||
|
||||
/** 币种参数名 */
|
||||
private final String coin;
|
||||
|
||||
/** 报块所需哈希次数 难度为1时 */
|
||||
private final BigDecimal hashTime;
|
||||
|
||||
/** 每日出块数 s*/
|
||||
private final BigDecimal count;
|
||||
|
||||
private final BigDecimal poolFees;
|
||||
|
||||
PoolCalParamConfig(String coin, BigDecimal hashTime, BigDecimal count, BigDecimal poolFees) {
|
||||
this.coin = coin;
|
||||
this.hashTime = hashTime;
|
||||
this.count = count;
|
||||
this.poolFees = poolFees;
|
||||
}
|
||||
|
||||
public String getCoin() {
|
||||
return coin;
|
||||
}
|
||||
|
||||
public BigDecimal getHashTime() {
|
||||
return hashTime;
|
||||
}
|
||||
|
||||
public BigDecimal getCount() {
|
||||
return count;
|
||||
}
|
||||
|
||||
public BigDecimal getPoolFees() {
|
||||
return poolFees;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
package com.m2pool.pool.enums;
|
||||
|
||||
/**
|
||||
* @Description 矿池单位换算
|
||||
* @Date 2022/5/20 11:15
|
||||
* @Author 杜懿
|
||||
*/
|
||||
public enum PoolProfitScale {
|
||||
|
||||
GRS("grs", 2),
|
||||
MONA("mona", 2),
|
||||
DGBS("dgbs", 2),
|
||||
DGBQ("dgbq", 2),
|
||||
DGBO("dgbo", 2),
|
||||
DGB2_ODO("dgb2_odo", 2),
|
||||
DGB_QUBIT_A10("dgb_qubit_a10", 2),
|
||||
DGB_SKEIN_A10("dgb_skein_a10", 2),
|
||||
DGB_ODO_B20("dgb_odo_b20", 2),
|
||||
NEXA("nexa", 2),
|
||||
RXD("rxd", 2),
|
||||
ALPH("alph", 2),
|
||||
ENX("enx", 2);
|
||||
|
||||
/** 币种参数名 */
|
||||
private final String coin;
|
||||
|
||||
private final int scale ;
|
||||
|
||||
|
||||
PoolProfitScale(String coin, int scale) {
|
||||
this.coin = coin;
|
||||
this.scale = scale;
|
||||
}
|
||||
|
||||
public String getCoin() {
|
||||
return coin;
|
||||
}
|
||||
|
||||
public int getScale() {
|
||||
return scale;
|
||||
}
|
||||
|
||||
public static int getScaleByCoin(String coin){
|
||||
for (PoolProfitScale t : PoolProfitScale.values()) {
|
||||
if(t.getCoin().equals(coin)){
|
||||
return t.getScale();
|
||||
}
|
||||
}
|
||||
return 8;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,62 @@
|
||||
package com.m2pool.pool.enums;
|
||||
|
||||
/**
|
||||
* @Description 矿池单位换算
|
||||
* @Date 2022/5/20 11:15
|
||||
* @Author 杜懿
|
||||
*/
|
||||
public enum PoolUnits {
|
||||
|
||||
GRS("grs", "MH/s", 1000*1000, 1000),
|
||||
MONA("mona", "MH/s", 1000*1000, 1000),
|
||||
DGBS("dgbs", "MH/s", 1000*1000, 1000),
|
||||
DGBQ("dgbq", "MH/s", 1000*1000, 1000),
|
||||
DGBO("dgbo", "MH/s", 1000*1000, 1000),
|
||||
DGB2_ODO("dgb2_odo", "MH/s", 1000*1000, 1000),
|
||||
DGB_QUBIT_A10("dgb_qubit_a10", "MH/s", 1000*1000, 1000),
|
||||
DGB_SKEIN_A10("dgb_skein_a10", "MH/s", 1000*1000, 1000),
|
||||
DGB_ODO_B20("dgb_odo_b20", "MH/s", 1000*1000, 1000),
|
||||
NEXA("nexa", "MH/s", 1000*1000, 1000),
|
||||
RXD("rxd", "MH/s", 1000*1000, 1000),
|
||||
ALPH("alph", "MH/s", 1000*1000, 1000),
|
||||
ENX("enx", "MH/s", 1000*1000, 1000);
|
||||
|
||||
/** 币种参数名 */
|
||||
private final String coin;
|
||||
/** 矿池数据单位 */
|
||||
private final String unit;
|
||||
/** 换算率 数据库原始数据换算为H/s的换算率 */
|
||||
private final int hRate ;
|
||||
|
||||
/** 换算率 数据库原始数据换算为H/s的换算率 */
|
||||
private final int gRate ;
|
||||
|
||||
|
||||
|
||||
|
||||
PoolUnits(String coin, String unit, int hRate, int gRate) {
|
||||
this.coin = coin;
|
||||
this.unit = unit;
|
||||
this.hRate = hRate;
|
||||
this.gRate = gRate;
|
||||
}
|
||||
|
||||
public String getCoin() {
|
||||
return coin;
|
||||
}
|
||||
|
||||
public String getUnit() {
|
||||
return unit;
|
||||
}
|
||||
|
||||
public int gethRate() {
|
||||
return hRate;
|
||||
}
|
||||
|
||||
public int getgRate() {
|
||||
return gRate;
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,104 @@
|
||||
package com.m2pool.pool.enums;
|
||||
|
||||
/**
|
||||
* @Description 矿池
|
||||
* @Date 2022/5/20 11:15
|
||||
* @Author 杜懿
|
||||
*/
|
||||
public enum Pools {
|
||||
|
||||
GRS("grs", "grs", "groestl", "grs_pool_blkstats", "grs_mhs", "grs_pool","grs.svg",0.985),
|
||||
MONA("mona", "mona", "Lyra2REv2", "mona_pool_blkstats", "mona_mhs", "mona_pool","mona.svg",0.985),
|
||||
DGBS("dgbs", "dgb(skein)", "DigiByte(Skein)", "dgbs_pool_blkstats", "dgbs_mhs", "dgbs_pool","dgb.svg",0.985),
|
||||
DGBQ("dgbq", "dgb(qubit)", "DigiByte(Qubit)", "dgbq_pool_blkstats", "dgbq_mhs", "dgbq_pool","dgb.svg",0.985),
|
||||
DGBO("dgbo", "dgb(odocrypt)", "DigiByte(Odocrypt)", "dgbo_pool_blkstats", "dgbo_mhs", "dgbo_pool","dgb.svg",0.985),
|
||||
//DGB2_ODO("dgb2_odo", "dgb-odocrypt-pool2", "odocrypt", "dgb2_odo_pool_blkstats", "dgb2_odo_miners", "dgb2_odo_pool"),
|
||||
DGB_QUBIT_A10("dgb_qubit_a10", "dgb-qubit-pool2", "qubit", "dgb_qubit_a10_pool_blkstats", "dgb_qubit_a10_miners", "dgb_qubit_a10_pool","dgb.svg",0.985),
|
||||
DGB_SKEIN_A10("dgb_skein_a10", "dgb-skein-pool2", "skein", "dgb_skein_a10_pool_blkstats", "dgb_skein_a10_miners", "dgb_skein_a10_pool","dgb.svg",0.985),
|
||||
DGB_ODO_B20("dgb_odo_b20", "dgb-odoscrypt-pool3", "odocrypt", "dgb_odo_b20_pool_blkstats", "dgb_odo_b20_miners", "dgb_odo_b20_pool","dgb.svg",0.985),
|
||||
NEXA("nexa", "nexa", "NexaPow", "nexa_pool_blkstats", "nexa_mhs", "nexa_pool","nexa.png",0.985),
|
||||
RXD("rxd", "Radiant", "Sha512256D", "rxd_pool_blkstats", "rxd_mhs", "rxd_pool","rxd.png",0.985),
|
||||
ALPH("alph", "Alephium", "Blake3", "alph_pool_blkstats", "alph_mhs", "alph_pool","alph.svg",0.985),
|
||||
ENX("enx", "entropyx", "kHeavyHash", "enx_pool_blkstats", "enx_mhs", "enx_pool","enx.svg",0.985);
|
||||
|
||||
|
||||
/** 币种参数名 */
|
||||
private final String coin;
|
||||
/** 页面显示名 */
|
||||
private final String name;
|
||||
/** 算法 */
|
||||
private final String algorithm;
|
||||
/** 报块数据表名 */
|
||||
private final String blkTable;
|
||||
/** 矿机表名 */
|
||||
private final String mhs;
|
||||
/** 矿池表名 */
|
||||
private final String poolTable;
|
||||
|
||||
private final String img;
|
||||
|
||||
private final double fac;
|
||||
|
||||
Pools(String coin, String name, String algorithm, String blkTable, String mhs, String poolTable,String img,double fac) {
|
||||
this.coin = coin;
|
||||
this.name = name;
|
||||
this.algorithm = algorithm;
|
||||
this.blkTable = blkTable;
|
||||
this.mhs = mhs;
|
||||
this.poolTable = poolTable;
|
||||
this.img = img;
|
||||
this.fac = fac;
|
||||
}
|
||||
|
||||
public String getCoin() {
|
||||
return coin;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public String getAlgorithm() {
|
||||
return algorithm;
|
||||
}
|
||||
|
||||
public String getBlkTable() {
|
||||
return blkTable;
|
||||
}
|
||||
|
||||
public String getMhs() {
|
||||
return mhs;
|
||||
}
|
||||
|
||||
public String getPoolTable() {
|
||||
return poolTable;
|
||||
}
|
||||
|
||||
public String getImg() {
|
||||
return img;
|
||||
}
|
||||
|
||||
public double getFac() {
|
||||
return fac;
|
||||
}
|
||||
|
||||
|
||||
|
||||
public static String getNameByCoin(String coin){
|
||||
for (Pools t : Pools.values()) {
|
||||
if(t.getCoin().equals(coin)){
|
||||
return t.getName();
|
||||
}
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
public static String getImgByCoin(String coin){
|
||||
for (Pools t : Pools.values()) {
|
||||
if(t.getCoin().equals(coin)){
|
||||
return t.getImg();
|
||||
}
|
||||
}
|
||||
return "";
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
package com.m2pool.pool.enums;
|
||||
|
||||
/**
|
||||
* @Description 工单状态枚举类
|
||||
* @Date 2022/5/20 11:15
|
||||
* @Author 杜懿
|
||||
*/
|
||||
public enum TicketStatusType {
|
||||
//ps:4是后台人员已回复用户但用户还未读 13是用户已读
|
||||
STATUS_NULL(0,""),
|
||||
STATUS_ONE(1,"待处理"),
|
||||
STATUS_TWO(2,"客服处理中"),
|
||||
STATUS_TEN(10,"已完结");
|
||||
|
||||
private final int code;
|
||||
private final String status;
|
||||
|
||||
TicketStatusType(int code, String status)
|
||||
{
|
||||
this.code = code;
|
||||
this.status = status;
|
||||
}
|
||||
|
||||
public int getCode()
|
||||
{
|
||||
return code;
|
||||
}
|
||||
|
||||
public String getStatus()
|
||||
{
|
||||
return status;
|
||||
}
|
||||
|
||||
public static String getStatusByCode(int code){
|
||||
for (TicketStatusType t : TicketStatusType.values()) {
|
||||
if(t.getCode()==code){
|
||||
return t.getStatus();
|
||||
}
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,133 @@
|
||||
package com.m2pool.pool.factory;
|
||||
|
||||
import org.springframework.http.client.SimpleClientHttpRequestFactory;
|
||||
|
||||
import javax.net.ssl.*;
|
||||
import java.io.IOException;
|
||||
import java.net.HttpURLConnection;
|
||||
import java.net.InetAddress;
|
||||
import java.net.Socket;
|
||||
import java.security.cert.X509Certificate;
|
||||
|
||||
/**
|
||||
* @Description TODO
|
||||
* @Date 2024/6/14 11:47
|
||||
* @Author dy
|
||||
*/
|
||||
public class HttpsClientRequestFactory extends SimpleClientHttpRequestFactory{
|
||||
|
||||
|
||||
@Override
|
||||
protected void prepareConnection(HttpURLConnection connection, String httpMethod) {
|
||||
try {
|
||||
if (!(connection instanceof HttpsURLConnection)) {
|
||||
throw new RuntimeException("An instance of HttpsURLConnection is expected");
|
||||
}
|
||||
|
||||
HttpsURLConnection httpsConnection = (HttpsURLConnection) connection;
|
||||
|
||||
TrustManager[] trustAllCerts = new TrustManager[]{
|
||||
new X509TrustManager() {
|
||||
@Override
|
||||
public java.security.cert.X509Certificate[] getAcceptedIssuers() {
|
||||
return null;
|
||||
}
|
||||
@Override
|
||||
public void checkClientTrusted(X509Certificate[] certs, String authType) {
|
||||
}
|
||||
@Override
|
||||
public void checkServerTrusted(X509Certificate[] certs, String authType) {
|
||||
}
|
||||
|
||||
}
|
||||
};
|
||||
SSLContext sslContext = SSLContext.getInstance("TLS");
|
||||
sslContext.init(null, trustAllCerts, new java.security.SecureRandom());
|
||||
httpsConnection.setSSLSocketFactory(new MyCustomSSLSocketFactory(sslContext.getSocketFactory()));
|
||||
|
||||
httpsConnection.setHostnameVerifier(new HostnameVerifier() {
|
||||
@Override
|
||||
public boolean verify(String s, SSLSession sslSession) {
|
||||
return true;
|
||||
}
|
||||
});
|
||||
|
||||
super.prepareConnection(httpsConnection, httpMethod);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* We need to invoke sslSocket.setEnabledProtocols(new String[] {"SSLv3"});
|
||||
* see http://www.oracle.com/technetwork/java/javase/documentation/cve-2014-3566-2342133.html (Java 8 section)
|
||||
*/
|
||||
// SSLSocketFactory用于创建 SSLSockets
|
||||
private static class MyCustomSSLSocketFactory extends SSLSocketFactory {
|
||||
|
||||
private final SSLSocketFactory delegate;
|
||||
|
||||
public MyCustomSSLSocketFactory(SSLSocketFactory delegate) {
|
||||
this.delegate = delegate;
|
||||
}
|
||||
|
||||
// 返回默认启用的密码套件。除非一个列表启用,对SSL连接的握手会使用这些密码套件。
|
||||
// 这些默认的服务的最低质量要求保密保护和服务器身份验证
|
||||
@Override
|
||||
public String[] getDefaultCipherSuites() {
|
||||
return delegate.getDefaultCipherSuites();
|
||||
}
|
||||
|
||||
// 返回的密码套件可用于SSL连接启用的名字
|
||||
@Override
|
||||
public String[] getSupportedCipherSuites() {
|
||||
return delegate.getSupportedCipherSuites();
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public Socket createSocket(final Socket socket, final String host, final int port,
|
||||
final boolean autoClose) throws IOException {
|
||||
final Socket underlyingSocket = delegate.createSocket(socket, host, port, autoClose);
|
||||
return overrideProtocol(underlyingSocket);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public Socket createSocket(final String host, final int port) throws IOException {
|
||||
final Socket underlyingSocket = delegate.createSocket(host, port);
|
||||
return overrideProtocol(underlyingSocket);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Socket createSocket(final String host, final int port, final InetAddress localAddress,
|
||||
final int localPort) throws
|
||||
IOException {
|
||||
final Socket underlyingSocket = delegate.createSocket(host, port, localAddress, localPort);
|
||||
return overrideProtocol(underlyingSocket);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Socket createSocket(final InetAddress host, final int port) throws IOException {
|
||||
final Socket underlyingSocket = delegate.createSocket(host, port);
|
||||
return overrideProtocol(underlyingSocket);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Socket createSocket(final InetAddress host, final int port, final InetAddress localAddress,
|
||||
final int localPort) throws
|
||||
IOException {
|
||||
final Socket underlyingSocket = delegate.createSocket(host, port, localAddress, localPort);
|
||||
return overrideProtocol(underlyingSocket);
|
||||
}
|
||||
|
||||
private Socket overrideProtocol(final Socket socket) {
|
||||
if (!(socket instanceof SSLSocket)) {
|
||||
throw new RuntimeException("An instance of SSLSocket is expected");
|
||||
}
|
||||
((SSLSocket) socket).setEnabledProtocols(new String[]{"TLSv1"});
|
||||
return socket;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,85 @@
|
||||
package com.m2pool.pool.factory;
|
||||
|
||||
|
||||
import org.apache.http.client.HttpClient;
|
||||
import org.springframework.http.client.SimpleClientHttpRequestFactory;
|
||||
|
||||
import javax.net.ssl.HostnameVerifier;
|
||||
import javax.net.ssl.HttpsURLConnection;
|
||||
import javax.net.ssl.SSLContext;
|
||||
import javax.net.ssl.SSLSession;
|
||||
import javax.net.ssl.SSLSocketFactory;
|
||||
import javax.net.ssl.TrustManager;
|
||||
import javax.net.ssl.X509TrustManager;
|
||||
import java.io.IOException;
|
||||
import java.net.HttpURLConnection;
|
||||
import java.security.SecureRandom;
|
||||
import java.security.cert.CertificateException;
|
||||
import java.security.cert.X509Certificate;
|
||||
|
||||
/**
|
||||
* @Description TODO
|
||||
* @Date 2024/6/14 14:56
|
||||
* @Author dy
|
||||
*/
|
||||
public class IgnoreSSLRequestFactory extends SimpleClientHttpRequestFactory {
|
||||
|
||||
public IgnoreSSLRequestFactory(HttpClient httpClient) {
|
||||
super();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void prepareConnection(HttpURLConnection connection, String httpMethod)
|
||||
throws IOException {
|
||||
if (connection instanceof HttpsURLConnection) {
|
||||
prepareHttpsConnection((HttpsURLConnection) connection);
|
||||
}
|
||||
connection.setConnectTimeout(3000);
|
||||
connection.setReadTimeout(3000);
|
||||
super.prepareConnection(connection, httpMethod);
|
||||
}
|
||||
|
||||
private void prepareHttpsConnection(HttpsURLConnection connection) {
|
||||
connection.setHostnameVerifier(new SkipHostnameVerifier());
|
||||
try {
|
||||
connection.setSSLSocketFactory(createSslSocketFactory());
|
||||
} catch (Exception ex) {
|
||||
// Ignore
|
||||
}
|
||||
}
|
||||
|
||||
private SSLSocketFactory createSslSocketFactory() throws Exception {
|
||||
SSLContext context = SSLContext.getInstance("TLS");
|
||||
context.init(null, new TrustManager[]{new SkipX509TrustManager()},
|
||||
new SecureRandom());
|
||||
return context.getSocketFactory();
|
||||
}
|
||||
|
||||
private class SkipHostnameVerifier implements HostnameVerifier {
|
||||
|
||||
@Override
|
||||
public boolean verify(String s, SSLSession sslSession) {
|
||||
return true;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
private static class SkipX509TrustManager implements X509TrustManager {
|
||||
|
||||
|
||||
@Override
|
||||
public void checkClientTrusted(X509Certificate[] x509Certificates, String s) throws CertificateException {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void checkServerTrusted(X509Certificate[] x509Certificates, String s) throws CertificateException {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public X509Certificate[] getAcceptedIssuers() {
|
||||
return new X509Certificate[0];
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,31 @@
|
||||
package com.m2pool.pool.mapper;
|
||||
|
||||
import com.m2pool.common.datasource.annotation.DistributionDB;
|
||||
import com.m2pool.pool.dto.ProfitDto;
|
||||
import com.m2pool.pool.dto.OutcomeDto;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Description 挖矿账号收益、提现
|
||||
* @Date 2022/8/30 17:47
|
||||
* @Author 杜懿
|
||||
*/
|
||||
@DistributionDB
|
||||
public interface AccountDistributionMapper {
|
||||
|
||||
public List<ProfitDto> getDistributionByMinerAccount(@Param("coin") String coin, @Param("ma") String ma);
|
||||
|
||||
public List<ProfitDto> getDayDistributionByMinerAccount(@Param("coin") String coin, @Param("ma") String ma);
|
||||
|
||||
|
||||
public List<ProfitDto> getDayPendingByMinerAccount(@Param("coin") String coin, @Param("ma") String ma);
|
||||
|
||||
|
||||
public List<OutcomeDto> getOutcomeListByCoinAndUser(@Param("coin") String coin, @Param("ma") String ma);
|
||||
|
||||
public BigDecimal getTotalOutByCoinAndUser(@Param("coin") String coin, @Param("ma") String ma);
|
||||
|
||||
}
|
||||
@@ -0,0 +1,50 @@
|
||||
package com.m2pool.pool.mapper;
|
||||
|
||||
import com.m2pool.common.datasource.annotation.DistributionDB;
|
||||
import com.m2pool.common.datasource.annotation.GAuth;
|
||||
import com.m2pool.pool.dto.GoogleInfoDto;
|
||||
import com.m2pool.pool.dto.ProfitDto;
|
||||
import com.m2pool.pool.entity.GoogleInfo;
|
||||
import com.m2pool.pool.entity.UserGoogleAuthInfo;
|
||||
import com.m2pool.system.api.entity.SysUser;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Description 谷歌验证器相关sql
|
||||
* @Date 2022/8/30 17:47
|
||||
* @Author 杜懿
|
||||
*/
|
||||
@GAuth
|
||||
public interface GoogleAuthMapper {
|
||||
|
||||
/**
|
||||
* 查询是否绑定google验证器
|
||||
* @param email
|
||||
* @return
|
||||
*/
|
||||
public boolean checkIfBindByEmail(@Param("email") String email);
|
||||
|
||||
/**
|
||||
* 获取谷歌验证码
|
||||
* @param email
|
||||
* @return
|
||||
*/
|
||||
public GoogleInfo getGoogleInfoByEmail(@Param("email") String email);
|
||||
|
||||
public UserGoogleAuthInfo getUserInfoByEmail(@Param("email") String email);
|
||||
|
||||
public boolean bingGoogleAuthenticator(@Param("info") UserGoogleAuthInfo info);
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 判断验证码是否已存在
|
||||
* @param secret
|
||||
* @return
|
||||
*/
|
||||
public boolean checkSecretIfExist(@Param("secret") String secret);
|
||||
|
||||
public boolean closeGoogleAuthenticator(@Param("info") UserGoogleAuthInfo info);
|
||||
}
|
||||
@@ -0,0 +1,49 @@
|
||||
package com.m2pool.pool.mapper;
|
||||
|
||||
import com.m2pool.common.datasource.annotation.UserDB;
|
||||
import com.m2pool.pool.dto.NoticeListDto;
|
||||
import com.m2pool.pool.dto.NoticeMinerCoinListDto;
|
||||
import com.m2pool.pool.dto.OfflineUserMinerDto;
|
||||
import com.m2pool.pool.dto.UserAccountDto;
|
||||
import com.m2pool.pool.vo.NoticeAddVo;
|
||||
import com.m2pool.pool.vo.NoticeDelVo;
|
||||
import com.m2pool.pool.vo.NoticePageVo;
|
||||
import com.m2pool.pool.vo.NoticeUpdateVo;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* @Description 邮箱通知相关sql
|
||||
* @Date 2022/8/30 17:47
|
||||
* @Author 杜懿
|
||||
*/
|
||||
@UserDB
|
||||
public interface NoticeMapper {
|
||||
|
||||
//查询当前账号绑定通知邮箱
|
||||
public List<NoticeListDto> getNoticeEmailListByMaId(@Param("vo") NoticePageVo vo,@Param("user") String user);
|
||||
|
||||
//检查当前记录id和当前挖矿账号以及当前用户账号是否对应
|
||||
public boolean checkIdAndMa(@Param("id") long id,@Param("user") String user);
|
||||
|
||||
public boolean checkEmailIfExist(@Param("maId") long maId,@Param("email") String email);
|
||||
|
||||
public long getMaIdByIdAndUser(@Param("id") long id, @Param("user") String user);
|
||||
|
||||
//查询当前账号绑定通知邮箱个数
|
||||
public int getNoticeEmailCountByMaId(@Param("maId") long maId);
|
||||
|
||||
//新增通知邮箱
|
||||
public boolean addNoticeEmail(@Param("vo") NoticeAddVo vo);
|
||||
|
||||
//修改通知邮箱备注
|
||||
public boolean updateInfo(@Param("vo") NoticeUpdateVo vo);
|
||||
|
||||
//删除通知邮箱
|
||||
public boolean deleteNoticeInfoById(@Param("vo") NoticeDelVo vo,@Param("maId") Long maId);
|
||||
|
||||
public List<NoticeMinerCoinListDto> getNoticeEmailListByMinerAndCoin(@Param("list") List<OfflineUserMinerDto> list, @Param("coin") String coin);
|
||||
|
||||
}
|
||||
@@ -0,0 +1,176 @@
|
||||
package com.m2pool.pool.mapper;
|
||||
|
||||
|
||||
import com.m2pool.common.datasource.annotation.DistributionDB;
|
||||
import com.m2pool.common.datasource.annotation.HashRateDB;
|
||||
import com.m2pool.common.datasource.annotation.InfoDB;
|
||||
import com.m2pool.pool.dto.*;
|
||||
import com.m2pool.pool.entity.PoolPower;
|
||||
import com.m2pool.pool.vo.DateValueVo;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Description TODO
|
||||
* @Date 2022/8/30 17:47
|
||||
* @Author 杜懿
|
||||
*/
|
||||
@InfoDB
|
||||
public interface PoolMapper {
|
||||
|
||||
@HashRateDB
|
||||
public PoolInfoDto getPoolInfoByCoin(@Param("table") String table);
|
||||
|
||||
@HashRateDB
|
||||
public Double getNowPoolDailyPower(@Param("table") String table);
|
||||
|
||||
@HashRateDB
|
||||
public Double getNowPoolPower(@Param("table") String table);
|
||||
|
||||
public List<PowerLineDto> get30mPoolPowerList(@Param("table") String table);
|
||||
|
||||
public List<PowerLineDto> getDailyPoolPowerList(@Param("table") String table);
|
||||
|
||||
public List<PowerLineDto> getHourNetPowerList(@Param("table") String table);
|
||||
|
||||
public List<BlockInfoDto> getGRSBlockInfoList();
|
||||
|
||||
public List<BlockInfoDto> getMonaBlockInfoList();
|
||||
|
||||
public List<BlockInfoDto> getDgbQubitBlockInfoList();
|
||||
|
||||
public List<BlockInfoDto> getDgbSkeinBlockInfoList();
|
||||
|
||||
public List<BlockInfoDto> getDGBODOBlockInfoList();
|
||||
|
||||
public List<BlockInfoDto> getDgbQubitA10BlockInfoList();
|
||||
|
||||
public List<BlockInfoDto> getDgbSkeinA10BlockInfoList();
|
||||
|
||||
public List<BlockInfoDto> getDGBODOB20BlockInfoList();
|
||||
|
||||
public List<BlockInfoDto> getRXDBlockInfoList();
|
||||
|
||||
public List<BlockInfoDto> getNEXABlockInfoList();
|
||||
|
||||
public List<BlockInfoDto> getALPHBlockInfoList();
|
||||
|
||||
public List<BlockInfoDto> getENXBlockInfoList();
|
||||
|
||||
@DistributionDB
|
||||
public List<BlockInfoDto> getNewNEXABlockInfoList(@Param("date") String date);
|
||||
|
||||
@DistributionDB
|
||||
public List<BlockInfoDto> getNewGRSBlockInfoList(@Param("date") String date);
|
||||
|
||||
@DistributionDB
|
||||
public List<BlockInfoDto> getNewMONABlockInfoList(@Param("date") String date);
|
||||
|
||||
@DistributionDB
|
||||
public List<BlockInfoDto> getNewDGBQBlockInfoList(@Param("date") String date);
|
||||
|
||||
@DistributionDB
|
||||
public List<BlockInfoDto> getNewDGBSBlockInfoList(@Param("date") String date);
|
||||
|
||||
@DistributionDB
|
||||
public List<BlockInfoDto> getNewDGBOBlockInfoList(@Param("date") String date);
|
||||
|
||||
@DistributionDB
|
||||
public List<BlockInfoDto> getNewRXDBlockInfoList(@Param("date") String date);
|
||||
|
||||
@DistributionDB
|
||||
public List<BlockInfoDto> getNewALPHBlockInfoList(@Param("date") String date);
|
||||
|
||||
@DistributionDB
|
||||
public List<BlockInfoDto> getNewENXBlockInfoList(@Param("date") String date);
|
||||
|
||||
@HashRateDB
|
||||
public List<MinerDataDto> getMinerInfoList(@Param("table") String table);
|
||||
|
||||
//public List<MinerDataDto> get24hMinerInfoList(@Param("table") String table);
|
||||
|
||||
public List<PowerLineDto> get30mAccountPowerListByAccount(@Param("table") String table, @Param("user") String user);
|
||||
|
||||
|
||||
|
||||
public List<PowerLineDto> getDailyAccountPowerListByAccount(@Param("table") String table, @Param("user") String user);
|
||||
|
||||
public List<PowerLineDto> get24hAccountPowerListByAccount(@Param("table") String table, @Param("user") String user);
|
||||
|
||||
//todo 考虑删除
|
||||
public List<MinerDataDto> getDailyPoolPowerDistributionList(@Param("table") String table);
|
||||
|
||||
//todo 考虑删除
|
||||
public List<MinerDataDto> getDailyAccountPowerDistributionList(@Param("table") String table, @Param("user") String user);
|
||||
|
||||
public List<PowerLineDto> getMinerPowerList(@Param("table") String table, @Param("user") String user, @Param("miner") String miner);
|
||||
|
||||
//todo 考虑删除
|
||||
public List<MinerDataDto> getDailyMinerPowerDistributionList(@Param("table") String table, @Param("user") String user, @Param("miner") String miner);
|
||||
|
||||
@HashRateDB
|
||||
public List<MinerDataDto> getHourMinerDataList(@Param("table") String table,@Param("now") String now);
|
||||
|
||||
@HashRateDB
|
||||
public List<MinerDataDto> getDailyMinerDataList(@Param("table") String table,@Param("now") String now);
|
||||
|
||||
//todo 考虑删除
|
||||
public List<MinerDataDto> getUserHourMinerDataList(@Param("table") String table);
|
||||
|
||||
//todo 考虑删除
|
||||
public List<MinerDataDto> getUserDailyMinerDataList(@Param("table") String table);
|
||||
|
||||
//从网站的算力总表拿大于date的数据条数
|
||||
public int getLastDataTime(@Param("table") String table,@Param("date") String date);
|
||||
|
||||
//批量写入算力数据
|
||||
public boolean batchInsertMhsDataToDB(@Param("table") String table,@Param("list") List<MinerDataInsertDBDto> list);
|
||||
|
||||
public boolean batchInsertUserMhsDateToDB(@Param("table") String table,@Param("list") List<MinerDataInsertDBDto> list);
|
||||
|
||||
//public boolean batchInsertUserMhsDataToDB(@Param("table") String table,@Param("list") List<MinerDataInsertDBDto> list);
|
||||
|
||||
//写入全网算力数据 30m
|
||||
public boolean insertNetPower(@Param("table") String table,@Param("date") String date,@Param("vo") DateValueVo vo);
|
||||
|
||||
//写入币价数据 30m
|
||||
public boolean insertPrice(@Param("table") String table,@Param("date") String date,@Param("vo") DateValueVo vo);
|
||||
//@Pool2DB
|
||||
//public boolean insertMhsDataToDB(@Param("table") String table,@Param("list") List<MinerDataDto> list);
|
||||
//报块信息表
|
||||
public boolean batchInsertNexaPoolBlkToDB(@Param("list") List<BlockInfoDto> list);
|
||||
|
||||
public boolean batchInsertGRSPoolBlkToDB(@Param("list") List<BlockInfoDto> list);
|
||||
|
||||
public boolean batchInsertMONAPoolBlkToDB(@Param("list") List<BlockInfoDto> list);
|
||||
|
||||
public boolean batchInsertDGBOPoolBlkToDB(@Param("list") List<BlockInfoDto> list);
|
||||
|
||||
public boolean batchInsertDGBQPoolBlkToDB(@Param("list") List<BlockInfoDto> list);
|
||||
|
||||
public boolean batchInsertDGBSPoolBlkToDB(@Param("list") List<BlockInfoDto> list);
|
||||
|
||||
public boolean batchInsertRXDPoolBlkToDB(@Param("list") List<BlockInfoDto> list);
|
||||
|
||||
public boolean batchInsertALPHPoolBlkToDB(@Param("list") List<BlockInfoDto> list);
|
||||
|
||||
public boolean batchInsertENXPoolBlkToDB(@Param("list") List<BlockInfoDto> list);
|
||||
|
||||
//todo 矿池统计数据入库
|
||||
public boolean insertPoolPower(@Param("table") String table,@Param("vo") PoolPower vo);
|
||||
|
||||
public BigDecimal getPoolTodayTotalPower(@Param("coin") String coin, @Param("date") String date);
|
||||
|
||||
public List<UserPowerDto> getUserTodayTotalPower(@Param("coin") String coin, @Param("date") String date);
|
||||
|
||||
public List<DateBigDecimalDto> getDailyPoolPower(@Param("coin") String coin);
|
||||
|
||||
public List<DateBigDecimalDto> getDailyNetPower(@Param("coin") String coin);
|
||||
|
||||
public BigDecimal getAvgNetPower(@Param("coin") String coin, @Param("date") String date);
|
||||
//todo 分配数据入库 目的:整合主库分库
|
||||
|
||||
public List<OfflineUserMinerDto> getOfflineList(@Param("table") String table, @Param("date") String date);
|
||||
}
|
||||
@@ -0,0 +1,158 @@
|
||||
package com.m2pool.pool.mapper;
|
||||
|
||||
import com.m2pool.pool.dto.*;
|
||||
import com.m2pool.pool.entity.M2File;
|
||||
import com.m2pool.pool.entity.Ticket;
|
||||
import com.m2pool.pool.vo.*;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface TicketMapper {
|
||||
|
||||
/**
|
||||
* 修改工单状态
|
||||
* @param id
|
||||
* @param status
|
||||
* @return
|
||||
*/
|
||||
public boolean changeTicketStatus(@Param("id") long id, @Param("status") int status);
|
||||
|
||||
/**
|
||||
* 修改工单update_time
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
public boolean changeTicketUpdateTime(@Param("id") long id);
|
||||
|
||||
/**
|
||||
* 添加上传文件的保存信息
|
||||
* @param vo
|
||||
* @return
|
||||
*/
|
||||
public boolean insertFileInfo(@Param("vo") M2File vo);
|
||||
|
||||
/**
|
||||
* 根据id获取文件相关信息
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
public M2File getFileInfoById(Long id);
|
||||
|
||||
/**
|
||||
* 根据工单id查询工单是否存在
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
public int checkTicketExist(@Param("id") long id);
|
||||
|
||||
/**
|
||||
* 新增工单
|
||||
* @param data
|
||||
* @return
|
||||
*/
|
||||
public boolean insertTicket(@Param("data") Ticket data);
|
||||
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 工单补充内容提交工单信息
|
||||
* @param vo
|
||||
* @return
|
||||
*/
|
||||
public boolean insertTicketSupplement(@Param("vo") ResubmitTicketVo vo);
|
||||
|
||||
public Integer getTicketSupplementCountByTicketId(@Param("id") long id);
|
||||
|
||||
|
||||
/**
|
||||
* 根据工单id 获取工单补充提交内容
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
public List<TicketContentDto> getTicketSupplementListByTicketId(@Param("id") long id);
|
||||
|
||||
/**
|
||||
* 根据工单id 获取工单回复内容
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
public List<TicketContentDto> getTicketResponListByTicketId(@Param("id") long id);
|
||||
|
||||
/**
|
||||
* 查询个人工单列表
|
||||
* @return
|
||||
* @param vo
|
||||
*/
|
||||
public List<PrivateTicketListDto> getPrivateTicketList(@Param("vo") PrivateTicketListVo vo, @Param("email") String email);
|
||||
|
||||
/**
|
||||
* 个人处理中的工单列表
|
||||
* @return
|
||||
*/
|
||||
public List<PrivateTicketListDto> getPrivateProcessingTicketList(@Param("vo") PrivateTicketListVo vo, @Param("email") String email);
|
||||
|
||||
/**
|
||||
* 个人 已完结的工单列表
|
||||
* @return
|
||||
*/
|
||||
public List<PrivateTicketListDto> getPrivateEndTicketList(@Param("vo") PrivateTicketListVo vo,@Param("email") String email);
|
||||
|
||||
|
||||
/**
|
||||
* 查看工单详情
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
public TicketDto getTicketById(@Param("id") long id);
|
||||
|
||||
/**
|
||||
* 根据工单id查看工单状态
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
public int getTicketStatusById(@Param("id") long id);
|
||||
|
||||
/**
|
||||
* 查看工单详情
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
public TicketPrivateDto getBackendTicketById(@Param("id") long id);
|
||||
|
||||
|
||||
/**
|
||||
* 查看个人工单详情
|
||||
* @param id
|
||||
* @param email
|
||||
* @return
|
||||
*/
|
||||
public TicketPrivateDto getPrivateTicketById(@Param("id") long id, @Param("email") String email);
|
||||
|
||||
/**
|
||||
* 根据状态和类型查询工单列表
|
||||
* @param vo
|
||||
* @return
|
||||
*/
|
||||
public List<TicketListDto> getTicketListByStatusAndType(@Param("vo") StatusVo vo);
|
||||
|
||||
|
||||
/**
|
||||
* 后台获取总览工单 条件搜索 工单号/用户邮箱/时间
|
||||
* @param vo
|
||||
* @return
|
||||
*/
|
||||
public List<AllTicketListDto> getTicketListByCond(@Param("vo") AllTicketListVo vo);
|
||||
|
||||
public List<TicketListDto> getAllTicketList(@Param("vo") StatusVo vo);
|
||||
|
||||
/**
|
||||
* 添加工单回复
|
||||
* @param vo
|
||||
* @return
|
||||
*/
|
||||
public boolean insertRespon(@Param("vo") ResponTicketVo vo, @Param("name") String name);
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,105 @@
|
||||
package com.m2pool.pool.mapper;
|
||||
|
||||
import com.m2pool.common.datasource.annotation.UserDB;
|
||||
import com.m2pool.pool.dto.*;
|
||||
import com.m2pool.pool.entity.*;
|
||||
import com.m2pool.pool.vo.AccountBalanceAddVo;
|
||||
import com.m2pool.pool.vo.ApiKeyUpdateVo;
|
||||
import com.m2pool.pool.vo.ReadOnlyHtmlChangeVo;
|
||||
import com.m2pool.system.api.model.OpenApiKeyInfo;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Description 用户网站账号和挖矿账号相关sql
|
||||
* @Date 2022/8/30 17:47
|
||||
* @Author 杜懿
|
||||
*/
|
||||
@UserDB
|
||||
public interface UserAccountMapper {
|
||||
|
||||
/**
|
||||
* 添加挖矿账号
|
||||
* @param vo
|
||||
* @return
|
||||
*/
|
||||
public boolean userAddMinerAccount(@Param("vo") UserMinerAccount vo);
|
||||
|
||||
/**
|
||||
* 修改挖矿账号 备注等
|
||||
* @param accountId
|
||||
* @param vo
|
||||
* @return
|
||||
*/
|
||||
public boolean updateMinerAccountRemark(@Param("accountId") long accountId,@Param("vo") AccountBalanceAddVo vo);
|
||||
|
||||
/**
|
||||
* 挖矿账户绑定钱包
|
||||
* @param accountId
|
||||
* @param vo
|
||||
* @return
|
||||
*/
|
||||
public boolean accountAddBalance(@Param("accountId") long accountId, @Param("vo") AccountBalanceAddVo vo);
|
||||
|
||||
/** 停止使用地址 */
|
||||
public boolean accountStopBalance(@Param("id") long id, @Param("vo") AccountBalanceAddVo vo);
|
||||
|
||||
/**
|
||||
* 修改挖矿账户绑定的钱包地址
|
||||
* @param id
|
||||
* @param vo
|
||||
* @return
|
||||
*/
|
||||
public boolean updateBalance(@Param("id") long id, @Param("vo") AccountBalanceAddVo vo);
|
||||
|
||||
//public List<UserAccountDto> getAccountByUser(@Param("user") String user, @Param("vo") AccountVo vo);
|
||||
|
||||
public UserAccountDto getAccountByUserAccountAndCoin(@Param("user") String user, @Param("account") String account, @Param("coin") String coin);
|
||||
|
||||
public boolean checkAccountIfExist(@Param("account") String account, @Param("coin") String coin);
|
||||
|
||||
public UserAccountDto getAccountByUserAccountId(@Param("user") String user,@Param("id") long id);
|
||||
|
||||
|
||||
public int getAccountNumberByUserAccountAndCoin(@Param("user") String user, @Param("coin") String coin);
|
||||
|
||||
public List<UserAccountListDto> getAccountByUserAndCoin(@Param("user") String user);
|
||||
|
||||
public UserAccountDto getAccountByUserAndMinerAccount(@Param("user") String user,@Param("ma") String ma);
|
||||
|
||||
public MinerAccountBalanceDto getBalanceByMinerAccount(@Param("maId") long maId);
|
||||
|
||||
boolean batchDelAccount(@Param("ids") List<Long> ids);
|
||||
|
||||
public List<BalanceListDto> getBalanceByCoin(@Param("coin") String coin);
|
||||
|
||||
public boolean checkKeyIfExist(@Param("key") String key);
|
||||
|
||||
public boolean createReadOnlyPage(@Param("vo") UserReadOnlyPage vo);
|
||||
|
||||
public List<UserReadOnlyPageInfo> getPageListByUser(@Param("user") String user);
|
||||
|
||||
public UserReadOnlyPageInfo getPageInfoByKey(@Param("key") String key);
|
||||
|
||||
public boolean changeReadOnlyPage(@Param("vo") ReadOnlyHtmlChangeVo vo);
|
||||
|
||||
public boolean batchDeletePageByKeyAndUser(@Param("keys") List<String> keys,@Param("user") String user);
|
||||
|
||||
public int getApiKeyCountByUser(@Param("user") String user);
|
||||
/**
|
||||
* 用户绑定apiKey
|
||||
* @param vo
|
||||
* @return
|
||||
*/
|
||||
public boolean userCreateApiKey(@Param("vo") OpenApiKey vo);
|
||||
|
||||
public List<UserApi> getAPIListByUser(@Param("user") String user);
|
||||
|
||||
public UserApi getAPIInfoByUserAndId(@Param("id") long id,@Param("user") String user);
|
||||
|
||||
public boolean updateApiKey(@Param("vo") ApiKeyUpdateVo vo,@Param("user") String user);
|
||||
|
||||
public boolean batchDeleteAPIByIdsAndUser(@Param("ids") List<String> ids,@Param("user") String user);
|
||||
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
package com.m2pool.pool.service;
|
||||
|
||||
|
||||
import com.m2pool.common.core.Result.R;
|
||||
import com.m2pool.system.api.entity.SysFile;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
|
||||
/**
|
||||
* @Description M2pool 文件上传
|
||||
* @Date 2022/5/19 17:40
|
||||
* @Author 杜懿
|
||||
*/
|
||||
public interface FileService {
|
||||
|
||||
|
||||
/**
|
||||
* 文件上传
|
||||
* @return
|
||||
*/
|
||||
public R<SysFile> uploadFile(MultipartFile file);
|
||||
|
||||
|
||||
///**
|
||||
// * 工具类文件上传
|
||||
// * @return
|
||||
// */
|
||||
//public R<SysFile> uploadToolsFile(MultipartFile file, String fileName);
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,60 @@
|
||||
package com.m2pool.pool.service;
|
||||
|
||||
|
||||
import com.m2pool.common.core.web.Result.AjaxResult;
|
||||
import com.m2pool.pool.vo.*;
|
||||
|
||||
import javax.validation.constraints.Email;
|
||||
|
||||
/**
|
||||
* @Description 谷歌验证器服务类
|
||||
* @Date 2024/8/19 11:40
|
||||
* @Author dy
|
||||
*/
|
||||
public interface GoogleAuthService {
|
||||
|
||||
/**
|
||||
* 判断账户是否绑定谷歌验证器
|
||||
* @return
|
||||
*/
|
||||
public AjaxResult ifBind();
|
||||
|
||||
/**
|
||||
* 判断邮箱是否绑定谷歌验证器
|
||||
* @return
|
||||
* @param vo
|
||||
*/
|
||||
public AjaxResult emailIfBind(EmailVo vo);
|
||||
/**
|
||||
* 获取google两步验证二维码和安全码字符串
|
||||
* @return
|
||||
*/
|
||||
public AjaxResult getBindInfo();
|
||||
|
||||
/**
|
||||
* 绑定谷歌验证器
|
||||
* @param vo
|
||||
* @return
|
||||
*/
|
||||
public AjaxResult bindGoogle(GoogleBindVo vo);
|
||||
|
||||
/**
|
||||
* 获取谷歌绑定邮箱验证码
|
||||
* @return
|
||||
*/
|
||||
public AjaxResult getBindCode();
|
||||
|
||||
|
||||
/**
|
||||
* 获取谷歌绑定邮箱验证码
|
||||
* @return
|
||||
*/
|
||||
public AjaxResult closeStepTwp(GoogleCloseVo vo);
|
||||
|
||||
/**
|
||||
* 获取关闭谷歌绑定邮箱验证码
|
||||
* @return
|
||||
*/
|
||||
public AjaxResult getCloseCode();
|
||||
|
||||
}
|
||||
@@ -0,0 +1,32 @@
|
||||
package com.m2pool.pool.service;
|
||||
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
/**
|
||||
* 文件上传接口
|
||||
*
|
||||
* @author du
|
||||
*/
|
||||
public interface ISysFileService
|
||||
{
|
||||
/**
|
||||
* 文件上传接口
|
||||
*
|
||||
* @param file 上传的文件
|
||||
* @return 访问地址
|
||||
* @throws Exception
|
||||
*/
|
||||
public String uploadFile(MultipartFile file) throws Exception;
|
||||
|
||||
///**
|
||||
// * 相关工具类文件上传接口
|
||||
// *
|
||||
// * @param file 上传的文件
|
||||
// * @param fileName
|
||||
// * @return 访问地址
|
||||
// * @throws Exception
|
||||
// */
|
||||
//public String uploadToolsFile(MultipartFile file,String fileName) throws Exception;
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,69 @@
|
||||
package com.m2pool.pool.service;
|
||||
import com.m2pool.common.core.utils.FileUploadUtils;
|
||||
import com.m2pool.common.core.utils.file.MimeTypeUtils;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.context.annotation.Primary;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
/**
|
||||
* 本地文件存储
|
||||
*
|
||||
* @author du
|
||||
*/
|
||||
@Primary
|
||||
@Service
|
||||
public class LocalSysFileServiceImpl implements ISysFileService
|
||||
{
|
||||
/**
|
||||
* 资源映射路径 前缀
|
||||
*/
|
||||
@Value("/statics")
|
||||
public String localFilePrefix;
|
||||
|
||||
/**
|
||||
* 域名或本机访问地址
|
||||
*/
|
||||
//@Value("http://10.168.2.125:9808")
|
||||
@Value("${myenv.domain}")
|
||||
public String domain;
|
||||
|
||||
/**
|
||||
* 上传文件存储在本地的根路径
|
||||
*/
|
||||
@Value("${myenv.filepath}")
|
||||
private String localFilePath;
|
||||
|
||||
/**
|
||||
* 本地文件上传接口
|
||||
*
|
||||
* @param file 上传的文件
|
||||
* @return 访问地址
|
||||
* @throws Exception
|
||||
*/
|
||||
@Override
|
||||
public String uploadFile(MultipartFile file) throws Exception
|
||||
{
|
||||
String name = FileUploadUtils.upload(localFilePath, file , MimeTypeUtils.DEFAULT_ALLOWED_EXTENSION);
|
||||
String url = domain + localFilePrefix + name;
|
||||
return url;
|
||||
}
|
||||
|
||||
///**
|
||||
// * 本地使用手册等相关工具文件文件上传接口
|
||||
// *
|
||||
// * @param file 上传的文件
|
||||
// * @param fileName
|
||||
// * @return 访问地址
|
||||
// * @throws Exception
|
||||
// */
|
||||
//@Override
|
||||
//public String uploadToolsFile(MultipartFile file, String fileName) throws Exception
|
||||
//{
|
||||
// String name = FileUploadUtils.toolsUpload(localFilePath + "/tools", file ,fileName, MimeTypeUtils.DEFAULT_ALLOWED_EXTENSION);
|
||||
// String url = domain + localFilePrefix+ "/tools" + name;
|
||||
// System.out.println("url"+url);
|
||||
// return url;
|
||||
//}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,35 @@
|
||||
package com.m2pool.pool.service;
|
||||
|
||||
|
||||
import com.m2pool.common.core.web.Result.AjaxResult;
|
||||
import com.m2pool.common.core.web.page.TableDataInfo;
|
||||
import com.m2pool.pool.dto.OutcomeDto;
|
||||
import com.m2pool.pool.vo.AccountVo;
|
||||
import com.m2pool.pool.vo.MinerListVo;
|
||||
import com.m2pool.pool.vo.MinerVo;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Description 挖矿账户相关服务类
|
||||
* @Date 2024/6/14 11:40
|
||||
* @Author dy
|
||||
*/
|
||||
public interface MinerAccountService {
|
||||
|
||||
public AjaxResult getMinerAccountPower(AccountVo vo);
|
||||
|
||||
public AjaxResult getMinerAccountInfo(AccountVo vo);
|
||||
|
||||
public AjaxResult getAccountPowerDistribution(AccountVo vo);
|
||||
|
||||
public AjaxResult getMinerList(MinerListVo vo);
|
||||
|
||||
public AjaxResult getMinerPower(MinerVo vo);
|
||||
|
||||
//public AjaxResult getMinerPowerDistribution(MinerVo com.m2pool.chat.vo);
|
||||
|
||||
public TableDataInfo getHistoryIncome(AccountVo vo);
|
||||
|
||||
public TableDataInfo getHistoryOutcome(AccountVo vo);
|
||||
}
|
||||
@@ -0,0 +1,52 @@
|
||||
package com.m2pool.pool.service;
|
||||
|
||||
|
||||
import com.m2pool.common.core.web.Result.AjaxResult;
|
||||
import com.m2pool.pool.dto.NoticeListDto;
|
||||
import com.m2pool.pool.vo.*;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Description 告警系统服务类
|
||||
* @Date 2024/8/19 11:40
|
||||
* @Author dy
|
||||
*/
|
||||
public interface NoticeService {
|
||||
|
||||
/**
|
||||
* 查看当前挖矿账户绑定的通知邮箱 分页
|
||||
* @return
|
||||
* @param vo
|
||||
*/
|
||||
public List<NoticeListDto> getNoticeEmailList(NoticePageVo vo);
|
||||
|
||||
/**
|
||||
* 对指定挖矿账户添加通知邮箱
|
||||
* @return
|
||||
*/
|
||||
public AjaxResult addNoticeEmail(NoticeAddVo vo);
|
||||
|
||||
/**
|
||||
* 对指定挖矿账户添加通知邮箱
|
||||
* @return
|
||||
*/
|
||||
public AjaxResult getCode(NoticeAddVo vo);
|
||||
|
||||
/**
|
||||
* 修改备注信息
|
||||
* @param vo
|
||||
* @return
|
||||
*/
|
||||
public AjaxResult updateInfo(NoticeUpdateVo vo);
|
||||
|
||||
/**
|
||||
* 删除挖矿账户绑定的通知邮箱
|
||||
* @return
|
||||
*/
|
||||
public AjaxResult deleteEmail(NoticeDelVo vo);
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,42 @@
|
||||
package com.m2pool.pool.service;
|
||||
|
||||
|
||||
import com.m2pool.common.core.web.Result.AjaxResult;
|
||||
import com.m2pool.pool.dto.BlockInfoDto;
|
||||
import com.m2pool.pool.vo.*;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Description 矿池相关服务类
|
||||
* @Date 2024/6/14 11:40
|
||||
* @Author dy
|
||||
*/
|
||||
public interface PoolService {
|
||||
|
||||
public AjaxResult getPoolInfo(CoinVo vo);
|
||||
|
||||
public AjaxResult getPoolPower(CoinVo vo);
|
||||
|
||||
public boolean checkAccount(MinerAccountAddVo vo);
|
||||
|
||||
//public AjaxResult getMinerCount(CoinVo com.m2pool.chat.vo);
|
||||
|
||||
|
||||
public AjaxResult getLuckByCoin(CoinVo vo);
|
||||
|
||||
public List<BlockInfoDto> getBlockInfoList(CoinVo vo);
|
||||
|
||||
//public AjaxResult getPoolPowerDistribution(CoinVo com.m2pool.chat.vo);
|
||||
|
||||
public AjaxResult getCoinBalanceList(BalanceListGetVo vo);
|
||||
|
||||
public AjaxResult getNetPower(CoinVo vo);
|
||||
|
||||
public AjaxResult getParam(CoinVo vo);
|
||||
|
||||
public AjaxResult test2();
|
||||
|
||||
public AjaxResult test1();
|
||||
|
||||
}
|
||||
@@ -0,0 +1,53 @@
|
||||
package com.m2pool.pool.service;
|
||||
|
||||
|
||||
import com.m2pool.common.core.web.Result.AjaxResult;
|
||||
import com.m2pool.common.core.web.page.TableDataInfo;
|
||||
import com.m2pool.pool.dto.UserReadPageInfoReturnDto;
|
||||
import com.m2pool.pool.vo.*;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Description 只读页面 挖矿账户相关服务类
|
||||
* @Date 2024/6/14 11:40
|
||||
* @Author dy
|
||||
*/
|
||||
public interface ReadOnlyService {
|
||||
|
||||
/**
|
||||
* 生成只读页面链接
|
||||
* @param vo 只读页面基本信息 挖矿账号、币种、备注、权限配置
|
||||
* @return
|
||||
*/
|
||||
public AjaxResult createPageUrl(ReadOnlyHtmlCreateVo vo);
|
||||
|
||||
/**
|
||||
* 获取只读页面列表 查看用户生成的只读页面
|
||||
* @param vo
|
||||
* @return
|
||||
*/
|
||||
public TableDataInfo getUrlList(PageVo vo);
|
||||
|
||||
public AjaxResult getUrlInfo(ReadOnlyKeyVo vo);
|
||||
|
||||
public AjaxResult changeUrlInfo(ReadOnlyHtmlChangeVo vo);
|
||||
|
||||
public AjaxResult delPageByKey(ReadOnlyKeyVo vo);
|
||||
|
||||
public AjaxResult getPageInfo(ReadOnlyKeyVo vo);
|
||||
|
||||
public AjaxResult getProfitInfo(ReadOnlyKeyVo vo);
|
||||
|
||||
public AjaxResult getMinerAccountPower(ReadOnlyIntervalVo vo);
|
||||
|
||||
public AjaxResult getAccountPowerDistribution(ReadOnlyIntervalVo vo);
|
||||
|
||||
public AjaxResult getMinerList(ReadOnlyListVo vo);
|
||||
|
||||
public AjaxResult getMinerPower(ReadOnlyMinerVo vo);
|
||||
|
||||
public TableDataInfo getHistoryIncome(ReadOnlyPageVo vo);
|
||||
|
||||
public TableDataInfo getHistoryOutcome(ReadOnlyPageVo vo);
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user