update v1.1.0 版本接口提交
This commit is contained in:
parent
f65f08d1a6
commit
d098702af7
|
@ -0,0 +1,30 @@
|
|||
package com.m2pool.auth.entity;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.validation.constraints.Email;
|
||||
|
||||
/**
|
||||
* @Description 管理系统用户登录请求对象
|
||||
* @Date 2025/5/22 16:13
|
||||
* @Author yyb
|
||||
*/
|
||||
@Data
|
||||
@ApiModel(description = "")
|
||||
public class LoginManageBody {
|
||||
|
||||
/** 邮箱 */
|
||||
@Email
|
||||
@ApiModelProperty(value = "邮箱", required = true, example = "")
|
||||
private String userName;
|
||||
|
||||
/** 密码 */
|
||||
@ApiModelProperty(value = "密码", required = true, example = "")
|
||||
private String password;
|
||||
|
||||
private String uuid;
|
||||
|
||||
//private boolean flag = false;
|
||||
}
|
|
@ -0,0 +1,212 @@
|
|||
<?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">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<parent>
|
||||
<groupId>com.m2pool</groupId>
|
||||
<artifactId>m2pool-modules</artifactId>
|
||||
<version>3.5.0</version>
|
||||
</parent>
|
||||
|
||||
<artifactId>m2pool-manage</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>
|
||||
|
||||
<dependency>
|
||||
<groupId>com.baomidou</groupId>
|
||||
<artifactId>mybatis-plus-boot-starter</artifactId>
|
||||
<version>3.5.3</version>
|
||||
</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>
|
||||
|
||||
|
||||
</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>
|
||||
<version>2.5.6</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<goals>
|
||||
<goal>repackage</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
|
||||
|
||||
</project>
|
|
@ -0,0 +1,33 @@
|
|||
package com.m2pool.manage;
|
||||
|
||||
import com.m2pool.common.security.annotation.EnableCustomConfig;
|
||||
import com.m2pool.common.security.annotation.EnableM2PoolFeignClients;
|
||||
import com.m2pool.common.swagger.annotation.EnableCustomSwagger2;
|
||||
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 启动器类
|
||||
* @Date 2025/5/22 14:25
|
||||
* @Author yyb
|
||||
*/
|
||||
@EnableCustomConfig
|
||||
@EnableCustomSwagger2
|
||||
@EnableM2PoolFeignClients
|
||||
@SpringBootApplication
|
||||
@MapperScan({"com.m2pool.manage.mapper"})
|
||||
public class M2ManageApplication {
|
||||
@Bean
|
||||
public RestTemplate restTemplate(){
|
||||
return new RestTemplate();
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
SpringApplication.run(M2ManageApplication.class,args);
|
||||
System.out.println("m2pool矿池 管理系统启动成功");
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,70 @@
|
|||
package com.m2pool.manage.controller;
|
||||
|
||||
import com.m2pool.common.core.Result.R;
|
||||
import com.m2pool.common.core.utils.PageUtils;
|
||||
import com.m2pool.common.core.web.page.TableDataInfo;
|
||||
import com.m2pool.common.security.annotation.RequiresLogin;
|
||||
import com.m2pool.manage.dto.ManageBroadcastDto;
|
||||
import com.m2pool.manage.service.ManageBroadcastService;
|
||||
import com.m2pool.manage.vo.ManageBaseVo;
|
||||
import com.m2pool.manage.vo.ManageBroadcastVo;
|
||||
import com.m2pool.manage.vo.PageVo;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @Description 广播信息控制器类
|
||||
* @Date 2025/5/22 14:22
|
||||
* @Author yyb
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/broadcast")
|
||||
@Api(tags = "广播信息控制器类")
|
||||
public class ManageBroadcastController {
|
||||
|
||||
@Resource
|
||||
private ManageBroadcastService manageBroadcastService;
|
||||
|
||||
@PostMapping("/get/list/by/page")
|
||||
@ApiOperation(value = "管理系统:分页查询所有广播信息")
|
||||
@RequiresLogin
|
||||
public TableDataInfo<ManageBroadcastDto> getListDataByPage(@RequestBody PageVo pageVo){
|
||||
return manageBroadcastService.getListDataByPage(pageVo);
|
||||
}
|
||||
|
||||
@PostMapping("/find/data/by/id")
|
||||
@ApiOperation(value = "业务系统:用于获取m2pool广播数据")
|
||||
public R<List<ManageBroadcastDto>> findDataById(@RequestBody ManageBaseVo manageBaseVo){
|
||||
return manageBroadcastService.findDataById(manageBaseVo);
|
||||
}
|
||||
|
||||
@PostMapping("/add")
|
||||
@ApiOperation(value = "管理系统:新增广播")
|
||||
@RequiresLogin
|
||||
public R<String> add(@RequestBody ManageBroadcastVo broadcastVo){
|
||||
return manageBroadcastService.addBroadcast(broadcastVo);
|
||||
}
|
||||
|
||||
@PostMapping("/delete")
|
||||
@ApiOperation(value = "管理系统:删除广播")
|
||||
@RequiresLogin
|
||||
public R<String> delete(@RequestBody ManageBaseVo manageBaseVo){
|
||||
return manageBroadcastService.deleteBroadcastById(manageBaseVo.getId());
|
||||
}
|
||||
|
||||
@PostMapping("/update")
|
||||
@ApiOperation(value = "管理系统:修改广播")
|
||||
@RequiresLogin
|
||||
public R<String> update(@RequestBody ManageBroadcastVo broadcastVo){
|
||||
return manageBroadcastService.updateBroadcast(broadcastVo);
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,50 @@
|
|||
package com.m2pool.manage.controller;
|
||||
|
||||
import com.m2pool.common.core.Result.R;
|
||||
import com.m2pool.common.core.web.page.TableDataInfo;
|
||||
import com.m2pool.common.security.annotation.RequiresLogin;
|
||||
import com.m2pool.manage.dto.ManageBroadcastDto;
|
||||
import com.m2pool.manage.dto.ManageUserDto;
|
||||
import com.m2pool.manage.service.ManageUserService;
|
||||
import com.m2pool.manage.vo.EmailVo;
|
||||
import com.m2pool.manage.vo.ManageBaseVo;
|
||||
import com.m2pool.manage.vo.ManageUserVo;
|
||||
import com.m2pool.manage.vo.PageVo;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
/**
|
||||
* @Description 管理系统用户信息控制器类
|
||||
* @Date 2025/5/22 14:33
|
||||
* @Author yyb
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/user")
|
||||
@Api(tags = "用户信息控制器类")
|
||||
public class ManageUserController {
|
||||
|
||||
@Resource
|
||||
private ManageUserService manageUserService;
|
||||
|
||||
@PostMapping("/list/info")
|
||||
@ApiOperation(value = "管理系统:查询注册用户信息列表")
|
||||
@RequiresLogin
|
||||
public TableDataInfo<ManageUserDto> listInfo(@RequestBody ManageUserVo manageUserVo){
|
||||
return manageUserService.listInfo(manageUserVo);
|
||||
}
|
||||
|
||||
|
||||
@PostMapping("/send/text/mail/message")
|
||||
@ApiOperation(value = "管理系统:发送邮件给某些用户")
|
||||
@RequiresLogin
|
||||
public void sendTextMailMessage(@RequestBody EmailVo emailVo){
|
||||
manageUserService.sendTextMailMessage(emailVo.getTo(),emailVo.getSubject(),emailVo.getText());
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,36 @@
|
|||
package com.m2pool.manage.dto;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* @Description 广播返回对象
|
||||
* @Date 2025/5/22 17:18
|
||||
* @Author yyb
|
||||
*/
|
||||
@Builder
|
||||
@Data
|
||||
@ApiModel(value = "ManageBroadcastDto", description = "广播返回对象")
|
||||
public class ManageBroadcastDto {
|
||||
@ApiModelProperty(value = "id",example = "1")
|
||||
private Long id;
|
||||
|
||||
@ApiModelProperty(value = "内容",example = "广播内容")
|
||||
private String content;
|
||||
|
||||
@ApiModelProperty(value = "创建人",example = "广播创建者")
|
||||
private String createUser;
|
||||
|
||||
@ApiModelProperty(value = "最后一次修改,修改人",example = "146555@qq.com")
|
||||
private String updateUser;
|
||||
|
||||
@ApiModelProperty(value = "修改时间",example = "2025-05-22 14:22:13")
|
||||
private LocalDateTime updateTime;
|
||||
|
||||
@ApiModelProperty(value = "创建时间",example = "2025-05-22 14:22:13")
|
||||
private LocalDateTime createTime;
|
||||
}
|
|
@ -0,0 +1,37 @@
|
|||
package com.m2pool.manage.dto;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* @Description 注册用户信息返回对象
|
||||
* @Date 2025/5/22 17:18
|
||||
* @Author yyb
|
||||
*/
|
||||
@Builder
|
||||
@Data
|
||||
@ApiModel(value = "ManageUserDto", description = "注册用户信息返回对象")
|
||||
public class ManageUserDto {
|
||||
|
||||
@ApiModelProperty(value = "id",example = "1")
|
||||
private Long id;
|
||||
|
||||
@ApiModelProperty(value = "用户邮箱",example = "146555@qq.com")
|
||||
private String user;
|
||||
|
||||
@ApiModelProperty(value = "用户对应的挖矿账号(一个用户可以对应多个)",example = "ceshi1")
|
||||
private String minerUser;
|
||||
|
||||
@ApiModelProperty(value = "币种",example = "nexa")
|
||||
private String coin;
|
||||
|
||||
@ApiModelProperty(value = "支付地址",example = "ceshi1")
|
||||
private String balance;
|
||||
|
||||
@ApiModelProperty(value = "最小起付金额",example = "100.0")
|
||||
private String amount;
|
||||
}
|
|
@ -0,0 +1,37 @@
|
|||
package com.m2pool.manage.entity;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.m2pool.common.core.web.Result.PageResult;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* @Description 广播信息实体类
|
||||
* @Date 2025/5/22 14:13
|
||||
* @Author yyb
|
||||
*/
|
||||
@Builder
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class ManageBroadcast {
|
||||
@TableId(value = "id", type = IdType.AUTO)
|
||||
private Long id;
|
||||
|
||||
private String content;
|
||||
|
||||
private String createUser;
|
||||
|
||||
private String updateUser;
|
||||
|
||||
private LocalDateTime createTime;
|
||||
|
||||
private LocalDateTime updateTime;
|
||||
|
||||
private Boolean del;
|
||||
}
|
|
@ -0,0 +1,24 @@
|
|||
package com.m2pool.manage.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.m2pool.manage.dto.ManageUserDto;
|
||||
import com.m2pool.manage.entity.ManageBroadcast;
|
||||
import com.m2pool.manage.vo.ManageBaseVo;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Mapper
|
||||
public interface ManageBroadcastMapper extends BaseMapper<ManageBroadcast> {
|
||||
|
||||
/**
|
||||
* 分页查询出用户信息
|
||||
* @param coin
|
||||
* @param user
|
||||
* @param minerUser
|
||||
* @return
|
||||
*/
|
||||
List<ManageUserDto> selectUserListByPage(@Param("coin") String coin,@Param("user")String user,@Param("minerUser") String minerUser);
|
||||
|
||||
}
|
|
@ -0,0 +1,59 @@
|
|||
package com.m2pool.manage.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.m2pool.common.core.Result.R;
|
||||
import com.m2pool.common.core.web.page.TableDataInfo;
|
||||
import com.m2pool.manage.dto.ManageBroadcastDto;
|
||||
import com.m2pool.manage.entity.ManageBroadcast;
|
||||
import com.m2pool.manage.vo.ManageBaseVo;
|
||||
import com.m2pool.manage.vo.ManageBroadcastVo;
|
||||
import com.m2pool.manage.vo.PageVo;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
||||
/**
|
||||
* @Description 广播信息 服务接口
|
||||
*/
|
||||
public interface ManageBroadcastService extends IService<ManageBroadcast> {
|
||||
/**
|
||||
* 获取所有广播信息分页
|
||||
* @return 广播列表
|
||||
*/
|
||||
TableDataInfo<ManageBroadcastDto> getListDataByPage(PageVo pageVo);
|
||||
|
||||
|
||||
/**
|
||||
* 根据id查询一批广播数据
|
||||
* @param manageBaseVo
|
||||
* @return
|
||||
*/
|
||||
R<List<ManageBroadcastDto>> findDataById(ManageBaseVo manageBaseVo);
|
||||
|
||||
|
||||
/**
|
||||
* 新增广播信息
|
||||
*
|
||||
* @param broadcastVo 广播对象
|
||||
* @return 是否成功
|
||||
*/
|
||||
R<String> addBroadcast(ManageBroadcastVo broadcastVo);
|
||||
|
||||
/**
|
||||
* 根据ID删除广播
|
||||
*
|
||||
* @param id 主键ID
|
||||
* @return 是否成功
|
||||
*/
|
||||
R<String> deleteBroadcastById(Long id);
|
||||
|
||||
/**
|
||||
* 修改广播信息
|
||||
*
|
||||
* @param broadcastVo 广播对象
|
||||
* @return 是否成功
|
||||
*/
|
||||
R<String> updateBroadcast(ManageBroadcastVo broadcastVo);
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,31 @@
|
|||
package com.m2pool.manage.service;
|
||||
|
||||
import com.m2pool.common.core.Result.R;
|
||||
import com.m2pool.common.core.web.page.TableDataInfo;
|
||||
import com.m2pool.manage.dto.ManageUserDto;
|
||||
import com.m2pool.manage.vo.ManageBaseVo;
|
||||
import com.m2pool.manage.vo.ManageUserVo;
|
||||
import com.m2pool.manage.vo.PageVo;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* @Description 广播信息 服务接口
|
||||
*/
|
||||
public interface ManageUserService{
|
||||
|
||||
/**
|
||||
* 分页查询所有用户信息
|
||||
* @param manageUserVo
|
||||
* @return
|
||||
*/
|
||||
TableDataInfo<ManageUserDto> listInfo(ManageUserVo manageUserVo);
|
||||
|
||||
/**
|
||||
* 发送存文本邮件
|
||||
* @param to
|
||||
* @param subject
|
||||
* @param text
|
||||
*/
|
||||
void sendTextMailMessage(String to,String subject,String text);
|
||||
}
|
|
@ -0,0 +1,137 @@
|
|||
package com.m2pool.manage.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.github.pagehelper.Page;
|
||||
import com.github.pagehelper.PageHelper;
|
||||
import com.github.pagehelper.PageInfo;
|
||||
import com.m2pool.common.core.Result.R;
|
||||
import com.m2pool.common.core.constant.HttpStatus;
|
||||
import com.m2pool.common.core.web.page.TableDataInfo;
|
||||
import com.m2pool.common.security.utils.SecurityUtils;
|
||||
import com.m2pool.manage.dto.ManageBroadcastDto;
|
||||
import com.m2pool.manage.entity.ManageBroadcast;
|
||||
import com.m2pool.manage.mapper.ManageBroadcastMapper;
|
||||
import com.m2pool.manage.service.ManageBroadcastService;
|
||||
import com.m2pool.manage.vo.ManageBaseVo;
|
||||
import com.m2pool.manage.vo.ManageBroadcastVo;
|
||||
import com.m2pool.manage.vo.PageVo;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.beans.Transient;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @Description 广播信息 服务实现类
|
||||
*/
|
||||
@Service
|
||||
public class ManageBroadcastServiceImpl extends ServiceImpl<ManageBroadcastMapper, ManageBroadcast> implements ManageBroadcastService {
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 获取所有广播信息
|
||||
*
|
||||
* @return 广播列表
|
||||
*/
|
||||
@Override
|
||||
public TableDataInfo<ManageBroadcastDto> getListDataByPage(PageVo pageVo) {
|
||||
PageHelper.startPage(pageVo.getPageNum(), pageVo.getPageSize());
|
||||
List<ManageBroadcast> list = this.list(new LambdaQueryWrapper<ManageBroadcast>().eq(ManageBroadcast::getDel, false));
|
||||
List<ManageBroadcastDto> collect = list.stream().map(broadcast -> ManageBroadcastDto.builder()
|
||||
.content(broadcast.getContent())
|
||||
.id(broadcast.getId())
|
||||
.createUser(broadcast.getCreateUser())
|
||||
.updateUser(broadcast.getUpdateUser())
|
||||
.updateTime(broadcast.getUpdateTime())
|
||||
.createTime(broadcast.getCreateTime())
|
||||
.build()).collect(Collectors.toList());
|
||||
PageHelper.clearPage();
|
||||
return getDataTable(collect);
|
||||
}
|
||||
|
||||
private TableDataInfo<ManageBroadcastDto> getDataTable(List<ManageBroadcastDto> list)
|
||||
{
|
||||
TableDataInfo<ManageBroadcastDto> rspData = new TableDataInfo<ManageBroadcastDto>();
|
||||
rspData.setCode(HttpStatus.SUCCESS);
|
||||
rspData.setRows(list);
|
||||
rspData.setMsg("查询成功");
|
||||
PageInfo<ManageBroadcastDto> pageInfo = new PageInfo<ManageBroadcastDto>(list);
|
||||
rspData.setTotal(pageInfo.getTotal());
|
||||
rspData.setTotalPage(pageInfo.getPages());
|
||||
return rspData;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public R<List<ManageBroadcastDto>> findDataById(ManageBaseVo manageBaseVo) {
|
||||
LambdaQueryWrapper<ManageBroadcast> eq = new LambdaQueryWrapper<ManageBroadcast>()
|
||||
.eq(ManageBroadcast::getDel, false);
|
||||
if(manageBaseVo.getId() != null){
|
||||
eq.eq(ManageBroadcast::getId, manageBaseVo.getId());
|
||||
}
|
||||
eq.orderByDesc(ManageBroadcast::getId).last("limit 20");
|
||||
|
||||
List<ManageBroadcast> list = this.list(eq);
|
||||
List<ManageBroadcastDto> collect = list.stream()
|
||||
.map(broadcast -> ManageBroadcastDto.builder()
|
||||
.content(broadcast.getContent())
|
||||
.id(broadcast.getId())
|
||||
.createUser(broadcast.getCreateUser())
|
||||
.updateUser(broadcast.getUpdateUser())
|
||||
.updateTime(broadcast.getUpdateTime())
|
||||
.createTime(broadcast.getCreateTime())
|
||||
.build()
|
||||
).collect(Collectors.toList());
|
||||
|
||||
return R.success(collect);
|
||||
}
|
||||
|
||||
/**
|
||||
* 新增广播信息
|
||||
*
|
||||
* @param broadcastVo 广播对象
|
||||
* @return 是否成功
|
||||
*/
|
||||
@Override
|
||||
public R<String> addBroadcast(ManageBroadcastVo broadcastVo) {
|
||||
ManageBroadcast broadcast = ManageBroadcast.builder()
|
||||
.content(broadcastVo.getContent())
|
||||
.createUser(SecurityUtils.getUsername())
|
||||
.updateTime(LocalDateTime.now())
|
||||
.build();
|
||||
if(this.save(broadcast)){
|
||||
return R.success("添加成功");
|
||||
}
|
||||
return R.fail("添加失败");
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据ID删除广播(逻辑删除)
|
||||
*
|
||||
* @param id 主键ID
|
||||
* @return 是否成功
|
||||
*/
|
||||
@Override
|
||||
public R<String> deleteBroadcastById(Long id) {
|
||||
boolean b = this.updateById(ManageBroadcast.builder().id(id).del(true).build());
|
||||
if (b){
|
||||
return R.success("删除成功");
|
||||
}
|
||||
return R.fail("删除失败");
|
||||
}
|
||||
|
||||
@Override
|
||||
public R<String> updateBroadcast(ManageBroadcastVo broadcastVo) {
|
||||
boolean b = this.updateById(ManageBroadcast.builder()
|
||||
.content(broadcastVo.getContent())
|
||||
.updateUser(SecurityUtils.getUsername())
|
||||
.build());
|
||||
if (b){
|
||||
return R.success("修改成功");
|
||||
}
|
||||
return R.fail("修改失败");
|
||||
}
|
||||
}
|
|
@ -0,0 +1,86 @@
|
|||
package com.m2pool.manage.service.impl;
|
||||
|
||||
import com.github.pagehelper.PageHelper;
|
||||
import com.github.pagehelper.PageInfo;
|
||||
import com.m2pool.common.core.Result.R;
|
||||
import com.m2pool.common.core.constant.HttpStatus;
|
||||
import com.m2pool.common.core.web.page.TableDataInfo;
|
||||
import com.m2pool.manage.dto.ManageBroadcastDto;
|
||||
import com.m2pool.manage.dto.ManageUserDto;
|
||||
import com.m2pool.manage.mapper.ManageBroadcastMapper;
|
||||
import com.m2pool.manage.service.ManageUserService;
|
||||
import com.m2pool.manage.vo.ManageBaseVo;
|
||||
import com.m2pool.manage.vo.ManageUserVo;
|
||||
import com.m2pool.manage.vo.PageVo;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.mail.javamail.JavaMailSenderImpl;
|
||||
import org.springframework.mail.javamail.MimeMessageHelper;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
/**
|
||||
* @Description 广播信息 服务实现类
|
||||
*/
|
||||
@Service
|
||||
public class ManageUserServiceImpl implements ManageUserService {
|
||||
|
||||
@Resource
|
||||
private ManageBroadcastMapper manageBroadcastMapper;
|
||||
|
||||
@Resource
|
||||
private JavaMailSenderImpl javaMailSender;
|
||||
|
||||
@Value("${spring.mail.username}")
|
||||
private String sendMailer;
|
||||
@Override
|
||||
public TableDataInfo<ManageUserDto> listInfo(ManageUserVo manageUserVo) {
|
||||
PageHelper.startPage(manageUserVo.getPageNum(), manageUserVo.getPageSize());
|
||||
List<ManageUserDto> manageUserDtos = manageBroadcastMapper.selectUserListByPage(manageUserVo.getCoin(), manageUserVo.getUser(), manageUserVo.getMinerUser());
|
||||
PageHelper.clearPage();
|
||||
return getDataTable(manageUserDtos);
|
||||
}
|
||||
|
||||
private TableDataInfo<ManageUserDto> getDataTable(List<ManageUserDto> list)
|
||||
{
|
||||
TableDataInfo<ManageUserDto> rspData = new TableDataInfo<>();
|
||||
rspData.setCode(HttpStatus.SUCCESS);
|
||||
rspData.setRows(list);
|
||||
rspData.setMsg("查询成功");
|
||||
PageInfo<ManageUserDto> pageInfo = new PageInfo<>(list);
|
||||
rspData.setTotal(pageInfo.getTotal());
|
||||
rspData.setTotalPage(pageInfo.getPages());
|
||||
return rspData;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void sendTextMailMessage(String to,String subject,String text){
|
||||
|
||||
try {
|
||||
//true 代表支持复杂的类型
|
||||
MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(javaMailSender.createMimeMessage(),true);
|
||||
//邮件发信人
|
||||
mimeMessageHelper.setFrom(sendMailer);
|
||||
//邮件收信人 1或多个
|
||||
mimeMessageHelper.setTo(to.split(","));
|
||||
//邮件主题
|
||||
mimeMessageHelper.setSubject(subject);
|
||||
//邮件内容
|
||||
mimeMessageHelper.setText(text);
|
||||
//邮件发送时间
|
||||
mimeMessageHelper.setSentDate(new Date());
|
||||
|
||||
//发送邮件
|
||||
javaMailSender.send(mimeMessageHelper.getMimeMessage());
|
||||
//System.out.println("发送邮件成功:"+sendMailer+"->"+to);
|
||||
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
//System.out.println("发送邮件失败:"+e.getMessage());
|
||||
}
|
||||
}
|
||||
}
|
|
@ -0,0 +1,29 @@
|
|||
package com.m2pool.manage.vo;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* @Description 发送的邮箱信息
|
||||
* @Date 2025/5/22 17:18
|
||||
* @Author yyb
|
||||
*/
|
||||
@Builder
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@ApiModel(value = "发送的邮箱信息")
|
||||
public class EmailVo{
|
||||
@ApiModelProperty(value = "接受者邮箱,多个以逗号隔开",example = "1416014977@qq.com,1328642438@qq.com")
|
||||
private String to;
|
||||
|
||||
@ApiModelProperty(value = "邮件主题",example = "测试")
|
||||
private String subject;
|
||||
|
||||
@ApiModelProperty(value = "邮件内容",example = "测试")
|
||||
private String text;
|
||||
}
|
|
@ -0,0 +1,25 @@
|
|||
package com.m2pool.manage.vo;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* @Description 基础请求对象
|
||||
* @Date 2025/5/22 17:18
|
||||
* @Author yyb
|
||||
*/
|
||||
@Builder
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@ApiModel(value = "基础请求对象")
|
||||
public class ManageBaseVo {
|
||||
@ApiModelProperty(value = "id",example = "1")
|
||||
private Long id;
|
||||
}
|
|
@ -0,0 +1,28 @@
|
|||
package com.m2pool.manage.vo;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* @Description 广播请求对象
|
||||
* @Date 2025/5/22 17:18
|
||||
* @Author yyb
|
||||
*/
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Data
|
||||
@ApiModel(value = "广播请求对象")
|
||||
public class ManageBroadcastVo{
|
||||
@ApiModelProperty(value = "id",example = "1")
|
||||
private Long id;
|
||||
|
||||
@ApiModelProperty(value = "内容",example = "广播内容")
|
||||
private String content;
|
||||
}
|
|
@ -0,0 +1,31 @@
|
|||
package com.m2pool.manage.vo;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* @Description 用户请求对象
|
||||
* @Date 2025/5/22 17:18
|
||||
* @Author yyb
|
||||
*/
|
||||
@Builder
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@ApiModel(value = "用户请求对象")
|
||||
public class ManageUserVo extends PageVo{
|
||||
@ApiModelProperty(value = "查询条件:币种,进入页面默认只显示出nexa,用户可选择",example = "nexa",required = true)
|
||||
private String coin;
|
||||
|
||||
@ApiModelProperty(value = "模糊查询条件:用户名(邮箱)",example = "1328642438@qq.com",required = false)
|
||||
private String user;
|
||||
|
||||
@ApiModelProperty(value = "模糊查询条件:用户对应的挖矿账号(一个用户可以对应多个)",example = "ceshi",required = false)
|
||||
private String minerUser;
|
||||
}
|
|
@ -0,0 +1,20 @@
|
|||
package com.m2pool.manage.vo;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* @Description 分页请求对象
|
||||
* @Date 2025/5/23 09:52
|
||||
* @Author yyb
|
||||
*/
|
||||
@Data
|
||||
@ApiModel(value = "分页请求对象")
|
||||
public class PageVo {
|
||||
@ApiModelProperty(value = "当前页码",example = "1")
|
||||
private Integer pageNum;
|
||||
|
||||
@ApiModelProperty(value = "每页条数",example = "20")
|
||||
private Integer pageSize;
|
||||
}
|
|
@ -0,0 +1,41 @@
|
|||
#测试环境
|
||||
server:
|
||||
port: 9208
|
||||
compression:
|
||||
enabled: true
|
||||
mime-types: application/json
|
||||
|
||||
spring:
|
||||
mvc:
|
||||
pathmatch:
|
||||
matching-strategy: ant-path-matcher
|
||||
application:
|
||||
# 应用名称
|
||||
name: m2pool-manage
|
||||
# profiles:
|
||||
# # 环境配置
|
||||
# active: test
|
||||
cloud:
|
||||
nacos:
|
||||
discovery:
|
||||
# 服务注册地址
|
||||
server-addr: 127.0.0.1:8808
|
||||
namespace: m2_test
|
||||
group: m2_prod_group
|
||||
# server-addr: 127.0.0.1:8808
|
||||
config:
|
||||
# 配置中心地址
|
||||
server-addr: 127.0.0.1:8808
|
||||
# server-addr: 127.0.0.1:8808
|
||||
# 配置文件格式
|
||||
file-extension: yml
|
||||
# 共享配置
|
||||
shared-configs:
|
||||
- application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
|
||||
namespace: m2_prod
|
||||
group: m2_prod_group
|
||||
servlet:
|
||||
multipart:
|
||||
max-file-size: 2MB
|
||||
max-request-size: 8MB
|
||||
|
|
@ -0,0 +1,77 @@
|
|||
#测试环境
|
||||
server:
|
||||
port: 9508
|
||||
compression:
|
||||
enabled: true
|
||||
mime-types: application/json
|
||||
|
||||
spring:
|
||||
#邮箱基本配置
|
||||
mail:
|
||||
# 配置在limit_time内,用户可以发送limit次验证码
|
||||
limit: 2 这个是我额外的配置,结合邮箱服务用的
|
||||
limitTime: 10 这个是我额外的配置
|
||||
#配置smtp服务主机地址
|
||||
# sina smtp.sina.cn
|
||||
# aliyun smtp.aliyun.com
|
||||
# 163 smtp.163.com 端口号465或994
|
||||
host: mail.privateemail.com
|
||||
#发送者邮箱
|
||||
username: do.not.reply@m2pool.com
|
||||
#配置密码,注意不是真正的密码,而是刚刚申请到的授权码
|
||||
# password:
|
||||
# password: M2202401!
|
||||
# password: axvm-zfgx-cgcg-qhhu
|
||||
password: M2202401!
|
||||
|
||||
#端口号
|
||||
port: 587
|
||||
# port: 465
|
||||
#默认的邮件编码为UTF-8
|
||||
default-encoding: UTF-8
|
||||
#其他参数
|
||||
properties:
|
||||
mail:
|
||||
#配置SSL 加密工厂
|
||||
smtp:
|
||||
ssl:
|
||||
#本地测试,先放开ssl
|
||||
enable: false
|
||||
required: false
|
||||
#开启debug模式,这样邮件发送过程的日志会在控制台打印出来,方便排查错误
|
||||
debug: false
|
||||
socketFactory:
|
||||
class: javax.net.ssl.SSLSocketFactory
|
||||
mvc:
|
||||
pathmatch:
|
||||
matching-strategy: ant-path-matcher
|
||||
application:
|
||||
# 应用名称
|
||||
name: m2pool-manage
|
||||
# profiles:
|
||||
# # 环境配置
|
||||
# active: test
|
||||
cloud:
|
||||
nacos:
|
||||
discovery:
|
||||
# 服务注册地址
|
||||
server-addr: 127.0.0.1:8808
|
||||
namespace: m2_test
|
||||
group: m2_test_group
|
||||
# server-addr: 127.0.0.1:8808
|
||||
config:
|
||||
# 配置中心地址
|
||||
server-addr: 127.0.0.1:8808
|
||||
# server-addr: 127.0.0.1:8808
|
||||
# 配置文件格式
|
||||
file-extension: yml
|
||||
# 共享配置
|
||||
shared-configs:
|
||||
- application-${spring.profiles.active}.${spring.cloud.nacos.config.file-extension}
|
||||
namespace: m2_test
|
||||
group: m2_test_group
|
||||
servlet:
|
||||
multipart:
|
||||
max-file-size: 2MB
|
||||
max-request-size: 8MB
|
||||
|
|
@ -0,0 +1,3 @@
|
|||
spring:
|
||||
profiles:
|
||||
active: test
|
|
@ -0,0 +1,74 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<configuration scan="true" scanPeriod="60 seconds" debug="false">
|
||||
<!-- 日志存放路径 -->
|
||||
<property name="log.path" value="logs/m2pool-manage" />
|
||||
<!-- 日志输出格式 -->
|
||||
<property name="log.pattern" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - [%method,%line] - %msg%n" />
|
||||
|
||||
<!-- 控制台输出 -->
|
||||
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
|
||||
<encoder>
|
||||
<pattern>${log.pattern}</pattern>
|
||||
</encoder>
|
||||
</appender>
|
||||
|
||||
<!-- 系统日志输出 -->
|
||||
<appender name="file_info" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<file>${log.path}/info.log</file>
|
||||
<!-- 循环政策:基于时间创建日志文件 -->
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
|
||||
<!-- 日志文件名格式 -->
|
||||
<fileNamePattern>${log.path}/info.%d{yyyy-MM-dd}.log</fileNamePattern>
|
||||
<!-- 日志最大的历史 30天 -->
|
||||
<maxHistory>30</maxHistory>
|
||||
</rollingPolicy>
|
||||
<encoder>
|
||||
<pattern>${log.pattern}</pattern>
|
||||
</encoder>
|
||||
<filter class="ch.qos.logback.classic.filter.LevelFilter">
|
||||
<!-- 过滤的级别 -->
|
||||
<level>INFO</level>
|
||||
<!-- 匹配时的操作:接收(记录) -->
|
||||
<onMatch>ACCEPT</onMatch>
|
||||
<!-- 不匹配时的操作:拒绝(不记录) -->
|
||||
<onMismatch>DENY</onMismatch>
|
||||
</filter>
|
||||
</appender>
|
||||
|
||||
<appender name="file_error" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
||||
<file>${log.path}/error.log</file>
|
||||
<!-- 循环政策:基于时间创建日志文件 -->
|
||||
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
|
||||
<!-- 日志文件名格式 -->
|
||||
<fileNamePattern>${log.path}/error.%d{yyyy-MM-dd}.log</fileNamePattern>
|
||||
<!-- 日志最大的历史 30天 -->
|
||||
<maxHistory>30</maxHistory>
|
||||
</rollingPolicy>
|
||||
<encoder>
|
||||
<pattern>${log.pattern}</pattern>
|
||||
</encoder>
|
||||
<filter class="ch.qos.logback.classic.filter.LevelFilter">
|
||||
<!-- 过滤的级别 -->
|
||||
<level>ERROR</level>
|
||||
<!-- 匹配时的操作:接收(记录) -->
|
||||
<onMatch>ACCEPT</onMatch>
|
||||
<!-- 不匹配时的操作:拒绝(不记录) -->
|
||||
<onMismatch>DENY</onMismatch>
|
||||
</filter>
|
||||
</appender>
|
||||
|
||||
<!-- 系统模块日志级别控制 -->
|
||||
<logger name="com.m2pool" level="info" />
|
||||
<!-- Spring日志级别控制 -->
|
||||
<logger name="org.springframework" level="warn" />
|
||||
|
||||
<root level="info">
|
||||
<appender-ref ref="console" />
|
||||
</root>
|
||||
|
||||
<!--系统操作日志-->
|
||||
<root level="info">
|
||||
<appender-ref ref="file_info" />
|
||||
<appender-ref ref="file_error" />
|
||||
</root>
|
||||
</configuration>
|
|
@ -0,0 +1,29 @@
|
|||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
|
||||
<mapper namespace="com.m2pool.manage.mapper.ManageBroadcastMapper">
|
||||
|
||||
<select id="selectUserListByPage" resultType="com.m2pool.manage.dto.ManageUserDto">
|
||||
SELECT
|
||||
uma.id,
|
||||
uma.user as `user`,
|
||||
uma.miner_user as minerUser,
|
||||
uma.coin,
|
||||
uab.balance,
|
||||
COALESCE(uab.amount,0)
|
||||
FROM
|
||||
user_account_balance uab
|
||||
LEFT JOIN user_miner_account uma ON uab.ma_id = uma.id
|
||||
<where>
|
||||
uma.coin = #{coin}
|
||||
<if test="user != null and user != ''">
|
||||
AND uma.user like CONCAT('%',#{user},'%')
|
||||
</if>
|
||||
<if test="minerUser != null and minerUser != ''">
|
||||
AND uma.miner_user like CONCAT('%',#{minerUser},'%')
|
||||
</if>
|
||||
</where>
|
||||
</select>
|
||||
</mapper>
|
|
@ -0,0 +1,10 @@
|
|||
|
||||
-- 广播信息表
|
||||
CREATE TABLE `manage_broadcast` (
|
||||
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键id',
|
||||
`content` varchar(255) COLLATE utf8mb4_bin NOT NULL COMMENT '消息内容',
|
||||
`create_user` varchar(255) COLLATE utf8mb4_bin NOT NULL COMMENT '创建人',
|
||||
`create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间',
|
||||
PRIMARY KEY (`id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 AUTO_INCREMENT=1 COLLATE=utf8mb4_bin COMMENT='广播表';
|
Loading…
Reference in New Issue