From d098702af765058c7c76e69f80413e7bf2251aa7 Mon Sep 17 00:00:00 2001 From: yyb <1416014977@qq.com> Date: Tue, 27 May 2025 17:51:18 +0800 Subject: [PATCH] =?UTF-8?q?update=20v1.1.0=20=E7=89=88=E6=9C=AC=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../m2pool/auth/entity/LoginManageBody.java | 30 +++ m2pool-modules/m2pool-manage/pom.xml | 212 ++++++++++++++++++ .../m2pool/manage/M2ManageApplication.java | 33 +++ .../controller/ManageBroadcastController.java | 70 ++++++ .../controller/ManageUserController.java | 50 +++++ .../m2pool/manage/dto/ManageBroadcastDto.java | 36 +++ .../com/m2pool/manage/dto/ManageUserDto.java | 37 +++ .../m2pool/manage/entity/ManageBroadcast.java | 37 +++ .../manage/mapper/ManageBroadcastMapper.java | 24 ++ .../service/ManageBroadcastService.java | 59 +++++ .../manage/service/ManageUserService.java | 31 +++ .../impl/ManageBroadcastServiceImpl.java | 137 +++++++++++ .../service/impl/ManageUserServiceImpl.java | 86 +++++++ .../java/com/m2pool/manage/vo/EmailVo.java | 29 +++ .../com/m2pool/manage/vo/ManageBaseVo.java | 25 +++ .../m2pool/manage/vo/ManageBroadcastVo.java | 28 +++ .../com/m2pool/manage/vo/ManageUserVo.java | 31 +++ .../java/com/m2pool/manage/vo/PageVo.java | 20 ++ .../src/main/resources/bootstrap-prod.yml | 41 ++++ .../src/main/resources/bootstrap-test.yml | 77 +++++++ .../src/main/resources/bootstrap.yml | 3 + .../src/main/resources/logback.xml | 74 ++++++ .../mapper/manage/ManageBroadcastMapper.xml | 29 +++ v1.1.0.sql | 10 + 24 files changed, 1209 insertions(+) create mode 100644 m2pool-auth/src/main/java/com/m2pool/auth/entity/LoginManageBody.java create mode 100644 m2pool-modules/m2pool-manage/pom.xml create mode 100644 m2pool-modules/m2pool-manage/src/main/java/com/m2pool/manage/M2ManageApplication.java create mode 100644 m2pool-modules/m2pool-manage/src/main/java/com/m2pool/manage/controller/ManageBroadcastController.java create mode 100644 m2pool-modules/m2pool-manage/src/main/java/com/m2pool/manage/controller/ManageUserController.java create mode 100644 m2pool-modules/m2pool-manage/src/main/java/com/m2pool/manage/dto/ManageBroadcastDto.java create mode 100644 m2pool-modules/m2pool-manage/src/main/java/com/m2pool/manage/dto/ManageUserDto.java create mode 100644 m2pool-modules/m2pool-manage/src/main/java/com/m2pool/manage/entity/ManageBroadcast.java create mode 100644 m2pool-modules/m2pool-manage/src/main/java/com/m2pool/manage/mapper/ManageBroadcastMapper.java create mode 100644 m2pool-modules/m2pool-manage/src/main/java/com/m2pool/manage/service/ManageBroadcastService.java create mode 100644 m2pool-modules/m2pool-manage/src/main/java/com/m2pool/manage/service/ManageUserService.java create mode 100644 m2pool-modules/m2pool-manage/src/main/java/com/m2pool/manage/service/impl/ManageBroadcastServiceImpl.java create mode 100644 m2pool-modules/m2pool-manage/src/main/java/com/m2pool/manage/service/impl/ManageUserServiceImpl.java create mode 100644 m2pool-modules/m2pool-manage/src/main/java/com/m2pool/manage/vo/EmailVo.java create mode 100644 m2pool-modules/m2pool-manage/src/main/java/com/m2pool/manage/vo/ManageBaseVo.java create mode 100644 m2pool-modules/m2pool-manage/src/main/java/com/m2pool/manage/vo/ManageBroadcastVo.java create mode 100644 m2pool-modules/m2pool-manage/src/main/java/com/m2pool/manage/vo/ManageUserVo.java create mode 100644 m2pool-modules/m2pool-manage/src/main/java/com/m2pool/manage/vo/PageVo.java create mode 100644 m2pool-modules/m2pool-manage/src/main/resources/bootstrap-prod.yml create mode 100644 m2pool-modules/m2pool-manage/src/main/resources/bootstrap-test.yml create mode 100644 m2pool-modules/m2pool-manage/src/main/resources/bootstrap.yml create mode 100644 m2pool-modules/m2pool-manage/src/main/resources/logback.xml create mode 100644 m2pool-modules/m2pool-manage/src/main/resources/mapper/manage/ManageBroadcastMapper.xml create mode 100644 v1.1.0.sql diff --git a/m2pool-auth/src/main/java/com/m2pool/auth/entity/LoginManageBody.java b/m2pool-auth/src/main/java/com/m2pool/auth/entity/LoginManageBody.java new file mode 100644 index 0000000..e93d2ef --- /dev/null +++ b/m2pool-auth/src/main/java/com/m2pool/auth/entity/LoginManageBody.java @@ -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; +} diff --git a/m2pool-modules/m2pool-manage/pom.xml b/m2pool-modules/m2pool-manage/pom.xml new file mode 100644 index 0000000..8e0d8bd --- /dev/null +++ b/m2pool-modules/m2pool-manage/pom.xml @@ -0,0 +1,212 @@ + + + 4.0.0 + + com.m2pool + m2pool-modules + 3.5.0 + + + m2pool-manage + + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-discovery + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-nacos-config + + + + + com.alibaba.cloud + spring-cloud-starter-alibaba-sentinel + + + + org.springframework.boot + spring-boot-starter-web + + + + + + org.springframework.boot + spring-boot-starter-actuator + + + + + io.springfox + springfox-swagger-ui + ${swagger.fox.version} + + + + + mysql + mysql-connector-java + + + + + org.projectlombok + lombok-maven-plugin + provided + + + + + + + + + + + + + + + + + + + + + com.m2pool + common-datasource + + + + + com.m2pool + common-security + + + + + com.m2pool + common-log + + + + com.m2pool + common-swagger + + + + + org.springframework.boot + spring-boot-starter-websocket + + + + org.java-websocket + Java-WebSocket + 1.3.5 + + + + cn.hutool + hutool-all + 5.6.2 + + + + org.mybatis + mybatis + 3.5.7 + compile + + + + com.baomidou + mybatis-plus-boot-starter + 3.5.3 + + + + + de.taimos + totp + 1.0 + + + + commons-codec + commons-codec + 1.10 + + + + com.google.zxing + javase + 3.3.0 + + + + + + + + + dev + + dev + 127.0.0.1:8808 + + + + true + + + + + test + + test + 127.0.0.1:8808 + + + false + + + + + prod + + prod + 127.0.0.1:8808 + + + false + + + + + + ${project.artifactId} + + + org.springframework.boot + spring-boot-maven-plugin + 2.5.6 + + + + repackage + + + + + + + + + diff --git a/m2pool-modules/m2pool-manage/src/main/java/com/m2pool/manage/M2ManageApplication.java b/m2pool-modules/m2pool-manage/src/main/java/com/m2pool/manage/M2ManageApplication.java new file mode 100644 index 0000000..2e5d524 --- /dev/null +++ b/m2pool-modules/m2pool-manage/src/main/java/com/m2pool/manage/M2ManageApplication.java @@ -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矿池 管理系统启动成功"); + } + +} diff --git a/m2pool-modules/m2pool-manage/src/main/java/com/m2pool/manage/controller/ManageBroadcastController.java b/m2pool-modules/m2pool-manage/src/main/java/com/m2pool/manage/controller/ManageBroadcastController.java new file mode 100644 index 0000000..93864a2 --- /dev/null +++ b/m2pool-modules/m2pool-manage/src/main/java/com/m2pool/manage/controller/ManageBroadcastController.java @@ -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 getListDataByPage(@RequestBody PageVo pageVo){ + return manageBroadcastService.getListDataByPage(pageVo); + } + + @PostMapping("/find/data/by/id") + @ApiOperation(value = "业务系统:用于获取m2pool广播数据") + public R> findDataById(@RequestBody ManageBaseVo manageBaseVo){ + return manageBroadcastService.findDataById(manageBaseVo); + } + + @PostMapping("/add") + @ApiOperation(value = "管理系统:新增广播") + @RequiresLogin + public R add(@RequestBody ManageBroadcastVo broadcastVo){ + return manageBroadcastService.addBroadcast(broadcastVo); + } + + @PostMapping("/delete") + @ApiOperation(value = "管理系统:删除广播") + @RequiresLogin + public R delete(@RequestBody ManageBaseVo manageBaseVo){ + return manageBroadcastService.deleteBroadcastById(manageBaseVo.getId()); + } + + @PostMapping("/update") + @ApiOperation(value = "管理系统:修改广播") + @RequiresLogin + public R update(@RequestBody ManageBroadcastVo broadcastVo){ + return manageBroadcastService.updateBroadcast(broadcastVo); + } + + +} diff --git a/m2pool-modules/m2pool-manage/src/main/java/com/m2pool/manage/controller/ManageUserController.java b/m2pool-modules/m2pool-manage/src/main/java/com/m2pool/manage/controller/ManageUserController.java new file mode 100644 index 0000000..167b53e --- /dev/null +++ b/m2pool-modules/m2pool-manage/src/main/java/com/m2pool/manage/controller/ManageUserController.java @@ -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 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()); + } + +} diff --git a/m2pool-modules/m2pool-manage/src/main/java/com/m2pool/manage/dto/ManageBroadcastDto.java b/m2pool-modules/m2pool-manage/src/main/java/com/m2pool/manage/dto/ManageBroadcastDto.java new file mode 100644 index 0000000..5dfa1a1 --- /dev/null +++ b/m2pool-modules/m2pool-manage/src/main/java/com/m2pool/manage/dto/ManageBroadcastDto.java @@ -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; +} diff --git a/m2pool-modules/m2pool-manage/src/main/java/com/m2pool/manage/dto/ManageUserDto.java b/m2pool-modules/m2pool-manage/src/main/java/com/m2pool/manage/dto/ManageUserDto.java new file mode 100644 index 0000000..d512dcf --- /dev/null +++ b/m2pool-modules/m2pool-manage/src/main/java/com/m2pool/manage/dto/ManageUserDto.java @@ -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; +} diff --git a/m2pool-modules/m2pool-manage/src/main/java/com/m2pool/manage/entity/ManageBroadcast.java b/m2pool-modules/m2pool-manage/src/main/java/com/m2pool/manage/entity/ManageBroadcast.java new file mode 100644 index 0000000..047af6b --- /dev/null +++ b/m2pool-modules/m2pool-manage/src/main/java/com/m2pool/manage/entity/ManageBroadcast.java @@ -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; +} diff --git a/m2pool-modules/m2pool-manage/src/main/java/com/m2pool/manage/mapper/ManageBroadcastMapper.java b/m2pool-modules/m2pool-manage/src/main/java/com/m2pool/manage/mapper/ManageBroadcastMapper.java new file mode 100644 index 0000000..d2761cf --- /dev/null +++ b/m2pool-modules/m2pool-manage/src/main/java/com/m2pool/manage/mapper/ManageBroadcastMapper.java @@ -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 { + + /** + * 分页查询出用户信息 + * @param coin + * @param user + * @param minerUser + * @return + */ + List selectUserListByPage(@Param("coin") String coin,@Param("user")String user,@Param("minerUser") String minerUser); + +} diff --git a/m2pool-modules/m2pool-manage/src/main/java/com/m2pool/manage/service/ManageBroadcastService.java b/m2pool-modules/m2pool-manage/src/main/java/com/m2pool/manage/service/ManageBroadcastService.java new file mode 100644 index 0000000..d485ffc --- /dev/null +++ b/m2pool-modules/m2pool-manage/src/main/java/com/m2pool/manage/service/ManageBroadcastService.java @@ -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 { + /** + * 获取所有广播信息分页 + * @return 广播列表 + */ + TableDataInfo getListDataByPage(PageVo pageVo); + + + /** + * 根据id查询一批广播数据 + * @param manageBaseVo + * @return + */ + R> findDataById(ManageBaseVo manageBaseVo); + + + /** + * 新增广播信息 + * + * @param broadcastVo 广播对象 + * @return 是否成功 + */ + R addBroadcast(ManageBroadcastVo broadcastVo); + + /** + * 根据ID删除广播 + * + * @param id 主键ID + * @return 是否成功 + */ + R deleteBroadcastById(Long id); + + /** + * 修改广播信息 + * + * @param broadcastVo 广播对象 + * @return 是否成功 + */ + R updateBroadcast(ManageBroadcastVo broadcastVo); + + +} diff --git a/m2pool-modules/m2pool-manage/src/main/java/com/m2pool/manage/service/ManageUserService.java b/m2pool-modules/m2pool-manage/src/main/java/com/m2pool/manage/service/ManageUserService.java new file mode 100644 index 0000000..10ac28e --- /dev/null +++ b/m2pool-modules/m2pool-manage/src/main/java/com/m2pool/manage/service/ManageUserService.java @@ -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 listInfo(ManageUserVo manageUserVo); + + /** + * 发送存文本邮件 + * @param to + * @param subject + * @param text + */ + void sendTextMailMessage(String to,String subject,String text); +} diff --git a/m2pool-modules/m2pool-manage/src/main/java/com/m2pool/manage/service/impl/ManageBroadcastServiceImpl.java b/m2pool-modules/m2pool-manage/src/main/java/com/m2pool/manage/service/impl/ManageBroadcastServiceImpl.java new file mode 100644 index 0000000..8f9ff1d --- /dev/null +++ b/m2pool-modules/m2pool-manage/src/main/java/com/m2pool/manage/service/impl/ManageBroadcastServiceImpl.java @@ -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 implements ManageBroadcastService { + + + + /** + * 获取所有广播信息 + * + * @return 广播列表 + */ + @Override + public TableDataInfo getListDataByPage(PageVo pageVo) { + PageHelper.startPage(pageVo.getPageNum(), pageVo.getPageSize()); + List list = this.list(new LambdaQueryWrapper().eq(ManageBroadcast::getDel, false)); + List 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 getDataTable(List list) + { + TableDataInfo rspData = new TableDataInfo(); + rspData.setCode(HttpStatus.SUCCESS); + rspData.setRows(list); + rspData.setMsg("查询成功"); + PageInfo pageInfo = new PageInfo(list); + rspData.setTotal(pageInfo.getTotal()); + rspData.setTotalPage(pageInfo.getPages()); + return rspData; + } + + + @Override + public R> findDataById(ManageBaseVo manageBaseVo) { + LambdaQueryWrapper eq = new LambdaQueryWrapper() + .eq(ManageBroadcast::getDel, false); + if(manageBaseVo.getId() != null){ + eq.eq(ManageBroadcast::getId, manageBaseVo.getId()); + } + eq.orderByDesc(ManageBroadcast::getId).last("limit 20"); + + List list = this.list(eq); + List 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 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 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 updateBroadcast(ManageBroadcastVo broadcastVo) { + boolean b = this.updateById(ManageBroadcast.builder() + .content(broadcastVo.getContent()) + .updateUser(SecurityUtils.getUsername()) + .build()); + if (b){ + return R.success("修改成功"); + } + return R.fail("修改失败"); + } +} diff --git a/m2pool-modules/m2pool-manage/src/main/java/com/m2pool/manage/service/impl/ManageUserServiceImpl.java b/m2pool-modules/m2pool-manage/src/main/java/com/m2pool/manage/service/impl/ManageUserServiceImpl.java new file mode 100644 index 0000000..a0f1875 --- /dev/null +++ b/m2pool-modules/m2pool-manage/src/main/java/com/m2pool/manage/service/impl/ManageUserServiceImpl.java @@ -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 listInfo(ManageUserVo manageUserVo) { + PageHelper.startPage(manageUserVo.getPageNum(), manageUserVo.getPageSize()); + List manageUserDtos = manageBroadcastMapper.selectUserListByPage(manageUserVo.getCoin(), manageUserVo.getUser(), manageUserVo.getMinerUser()); + PageHelper.clearPage(); + return getDataTable(manageUserDtos); + } + + private TableDataInfo getDataTable(List list) + { + TableDataInfo rspData = new TableDataInfo<>(); + rspData.setCode(HttpStatus.SUCCESS); + rspData.setRows(list); + rspData.setMsg("查询成功"); + PageInfo 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()); + } + } +} diff --git a/m2pool-modules/m2pool-manage/src/main/java/com/m2pool/manage/vo/EmailVo.java b/m2pool-modules/m2pool-manage/src/main/java/com/m2pool/manage/vo/EmailVo.java new file mode 100644 index 0000000..83652f6 --- /dev/null +++ b/m2pool-modules/m2pool-manage/src/main/java/com/m2pool/manage/vo/EmailVo.java @@ -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; +} diff --git a/m2pool-modules/m2pool-manage/src/main/java/com/m2pool/manage/vo/ManageBaseVo.java b/m2pool-modules/m2pool-manage/src/main/java/com/m2pool/manage/vo/ManageBaseVo.java new file mode 100644 index 0000000..7dd2dbb --- /dev/null +++ b/m2pool-modules/m2pool-manage/src/main/java/com/m2pool/manage/vo/ManageBaseVo.java @@ -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; +} diff --git a/m2pool-modules/m2pool-manage/src/main/java/com/m2pool/manage/vo/ManageBroadcastVo.java b/m2pool-modules/m2pool-manage/src/main/java/com/m2pool/manage/vo/ManageBroadcastVo.java new file mode 100644 index 0000000..911f35f --- /dev/null +++ b/m2pool-modules/m2pool-manage/src/main/java/com/m2pool/manage/vo/ManageBroadcastVo.java @@ -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; +} diff --git a/m2pool-modules/m2pool-manage/src/main/java/com/m2pool/manage/vo/ManageUserVo.java b/m2pool-modules/m2pool-manage/src/main/java/com/m2pool/manage/vo/ManageUserVo.java new file mode 100644 index 0000000..7381d6b --- /dev/null +++ b/m2pool-modules/m2pool-manage/src/main/java/com/m2pool/manage/vo/ManageUserVo.java @@ -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; +} diff --git a/m2pool-modules/m2pool-manage/src/main/java/com/m2pool/manage/vo/PageVo.java b/m2pool-modules/m2pool-manage/src/main/java/com/m2pool/manage/vo/PageVo.java new file mode 100644 index 0000000..8534844 --- /dev/null +++ b/m2pool-modules/m2pool-manage/src/main/java/com/m2pool/manage/vo/PageVo.java @@ -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; +} diff --git a/m2pool-modules/m2pool-manage/src/main/resources/bootstrap-prod.yml b/m2pool-modules/m2pool-manage/src/main/resources/bootstrap-prod.yml new file mode 100644 index 0000000..8b69197 --- /dev/null +++ b/m2pool-modules/m2pool-manage/src/main/resources/bootstrap-prod.yml @@ -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 + diff --git a/m2pool-modules/m2pool-manage/src/main/resources/bootstrap-test.yml b/m2pool-modules/m2pool-manage/src/main/resources/bootstrap-test.yml new file mode 100644 index 0000000..b5f4d9b --- /dev/null +++ b/m2pool-modules/m2pool-manage/src/main/resources/bootstrap-test.yml @@ -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 + diff --git a/m2pool-modules/m2pool-manage/src/main/resources/bootstrap.yml b/m2pool-modules/m2pool-manage/src/main/resources/bootstrap.yml new file mode 100644 index 0000000..03c30d3 --- /dev/null +++ b/m2pool-modules/m2pool-manage/src/main/resources/bootstrap.yml @@ -0,0 +1,3 @@ +spring: + profiles: + active: test diff --git a/m2pool-modules/m2pool-manage/src/main/resources/logback.xml b/m2pool-modules/m2pool-manage/src/main/resources/logback.xml new file mode 100644 index 0000000..b348b16 --- /dev/null +++ b/m2pool-modules/m2pool-manage/src/main/resources/logback.xml @@ -0,0 +1,74 @@ + + + + + + + + + + + ${log.pattern} + + + + + + ${log.path}/info.log + + + + ${log.path}/info.%d{yyyy-MM-dd}.log + + 30 + + + ${log.pattern} + + + + INFO + + ACCEPT + + DENY + + + + + ${log.path}/error.log + + + + ${log.path}/error.%d{yyyy-MM-dd}.log + + 30 + + + ${log.pattern} + + + + ERROR + + ACCEPT + + DENY + + + + + + + + + + + + + + + + + + diff --git a/m2pool-modules/m2pool-manage/src/main/resources/mapper/manage/ManageBroadcastMapper.xml b/m2pool-modules/m2pool-manage/src/main/resources/mapper/manage/ManageBroadcastMapper.xml new file mode 100644 index 0000000..16ea244 --- /dev/null +++ b/m2pool-modules/m2pool-manage/src/main/resources/mapper/manage/ManageBroadcastMapper.xml @@ -0,0 +1,29 @@ + + + + + + + diff --git a/v1.1.0.sql b/v1.1.0.sql new file mode 100644 index 0000000..06739ca --- /dev/null +++ b/v1.1.0.sql @@ -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='广播表';