update m2pool 注销功能删除api,挖矿账户等功能测试通过

This commit is contained in:
yyb
2026-01-06 11:41:52 +08:00
parent 6de94fb487
commit 94db6e9d3b
12 changed files with 30 additions and 19 deletions

View File

@@ -2,6 +2,7 @@ package com.m2pool.system.api;
import com.m2pool.common.core.Result.R; import com.m2pool.common.core.Result.R;
import com.m2pool.common.core.constant.SecurityConstants;
import com.m2pool.common.core.constant.ServiceNameConstants; import com.m2pool.common.core.constant.ServiceNameConstants;
import com.m2pool.system.api.entity.SysUser; import com.m2pool.system.api.entity.SysUser;
import com.m2pool.system.api.factory.RemotePoolFallbackFactory; import com.m2pool.system.api.factory.RemotePoolFallbackFactory;
@@ -9,6 +10,7 @@ import com.m2pool.system.api.factory.RemoteUserFallbackFactory;
import org.springframework.cloud.openfeign.FeignClient; import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestHeader;
/** /**
* @Description 矿池服务 * @Description 矿池服务
@@ -19,7 +21,7 @@ import org.springframework.web.bind.annotation.RequestBody;
public interface RemotePoolService { public interface RemotePoolService {
@PostMapping("/user/deleteUserDataAndPutTemporaryTable") @PostMapping("/user/deleteUserDataAndPutTemporaryTable")
R<Boolean> deleteUserDataAndPutTemporaryTable(); R<Boolean> deleteUserDataAndPutTemporaryTable(@RequestBody SysUser sysUser,@RequestHeader(SecurityConstants.FROM_SOURCE) String source);
} }

View File

@@ -99,6 +99,6 @@ public interface RemoteUserService {
* @return 结果 * @return 结果
*/ */
@PostMapping("/user/closeAccount") @PostMapping("/user/closeAccount")
R<Boolean> closeAccount(@RequestBody SysUser sysUser); R<Boolean> closeAccount(@RequestBody SysUser sysUser, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
} }

View File

@@ -28,7 +28,7 @@ public class RemotePoolFallbackFactory implements FallbackFactory<RemotePoolServ
log.error("矿池服务调用失败:{}",cause.getMessage()); log.error("矿池服务调用失败:{}",cause.getMessage());
return new RemotePoolService(){ return new RemotePoolService(){
@Override @Override
public R<Boolean> deleteUserDataAndPutTemporaryTable() { public R<Boolean> deleteUserDataAndPutTemporaryTable(SysUser sysUser,String source) {
return R.fail("注销账户失败," + cause.getMessage()); return R.fail("注销账户失败," + cause.getMessage());
} }
}; };

View File

@@ -71,7 +71,7 @@ public class RemoteUserFallbackFactory implements FallbackFactory<RemoteUserServ
} }
@Override @Override
public R<Boolean> closeAccount(SysUser sysUser) { public R<Boolean> closeAccount(SysUser sysUser, String source) {
return R.fail("注销用户失败:" + cause.getMessage()); return R.fail("注销用户失败:" + cause.getMessage());
} }

View File

@@ -105,6 +105,7 @@ public class TokenController {
*/ */
@PostMapping("/closeAccount") @PostMapping("/closeAccount")
@ApiOperation(value = "用户注销") @ApiOperation(value = "用户注销")
@RequiresLogin
public R<?> closeAccount(@RequestBody @Valid CloseAccountVo closeAccountVo){ public R<?> closeAccount(@RequestBody @Valid CloseAccountVo closeAccountVo){
return sysLoginService.closeAccount(closeAccountVo); return sysLoginService.closeAccount(closeAccountVo);
} }

View File

@@ -10,10 +10,7 @@ import com.m2pool.common.core.constant.UserConstants;
import com.m2pool.common.core.enums.UserStatus; import com.m2pool.common.core.enums.UserStatus;
import com.m2pool.common.core.exception.ServiceException; import com.m2pool.common.core.exception.ServiceException;
import com.m2pool.common.core.text.Convert; import com.m2pool.common.core.text.Convert;
import com.m2pool.common.core.utils.DateUtils; import com.m2pool.common.core.utils.*;
import com.m2pool.common.core.utils.GoogleAuthenticator;
import com.m2pool.common.core.utils.ServletUtils;
import com.m2pool.common.core.utils.StringUtils;
import com.m2pool.common.core.utils.ip.IpUtils; import com.m2pool.common.core.utils.ip.IpUtils;
import com.m2pool.common.core.utils.sign.RsaUtils; import com.m2pool.common.core.utils.sign.RsaUtils;
import com.m2pool.common.core.web.Result.AjaxResult; import com.m2pool.common.core.web.Result.AjaxResult;
@@ -35,6 +32,8 @@ import java.util.Map;
import java.util.Set; import java.util.Set;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import static com.m2pool.common.core.RedisTransKey.getTokenKey;
/** /**
* @Description 登录校验方法 * @Description 登录校验方法
@@ -578,7 +577,6 @@ public class SysLoginService {
throw new ServiceException("邮箱为必填项"); throw new ServiceException("邮箱为必填项");
} }
String closeAccountKey = RedisTransKey.getCloseAccountKey(email); String closeAccountKey = RedisTransKey.getCloseAccountKey(email);
System.out.println("redis 的 key"+closeAccountKey);
//校验谷歌验证码和邮箱验证码 //校验谷歌验证码和邮箱验证码
if(redisService.hasKey(closeAccountKey)){ if(redisService.hasKey(closeAccountKey)){
Object o = redisService.getCacheObject(closeAccountKey);//user:emailCode:email Object o = redisService.getCacheObject(closeAccountKey);//user:emailCode:email
@@ -602,13 +600,18 @@ public class SysLoginService {
if (R.FAIL == userInfo.getCode()) { if (R.FAIL == userInfo.getCode()) {
throw new ServiceException("服务器请求失败请稍后再试"); throw new ServiceException("服务器请求失败请稍后再试");
} }
SysUser sysUser = userInfo.getData().getSysUser();
LoginUser loginUser = userInfo.getData();
SysUser sysUser = loginUser.getSysUser();
sysUser.setDelFlag("2"); sysUser.setDelFlag("2");
R<Boolean> booleanR = remoteUserService.closeAccount(sysUser); R<Boolean> booleanR = remoteUserService.closeAccount(sysUser, SecurityConstants.INNER);
System.out.println("用户邮箱"+booleanR.getData()+"---" + booleanR.getMsg()+"--"+booleanR.getCode() );
if (R.FAIL == booleanR.getCode()) { if (R.FAIL == booleanR.getCode()) {
throw new ServiceException("服务器请求失败请稍后再试"); throw new ServiceException("服务器请求失败请稍后再试");
} }
String userKey = getTokenKey(loginUser.getToken());
redisService.deleteObject(userKey);
return booleanR; return booleanR;
} }

View File

@@ -92,7 +92,6 @@ public class ChatRoomServiceImpl extends ServiceImpl<ChatRoomMapper, ChatRoom> i
//1.查询当前用户与对应用户是否已存在创建的聊天室 //1.查询当前用户与对应用户是否已存在创建的聊天室
String userEmail = roomVo.getEmail(); String userEmail = roomVo.getEmail();
ChatRoomDto roomByUserEmail = chatRoomMapper.findRoomByUserEmail(userEmail); ChatRoomDto roomByUserEmail = chatRoomMapper.findRoomByUserEmail(userEmail);
System.out.println("bby-用户邮箱"+roomByUserEmail);
//获取nacos中配置的客服邮箱列表,这个列表中的邮箱实际可能不是客服角色,但能够行驶客服角色功能 //获取nacos中配置的客服邮箱列表,这个列表中的邮箱实际可能不是客服角色,但能够行驶客服角色功能
List<String> customerEmails = new ArrayList<>(Arrays.asList(webSocketConfig.getDefaultCustomerEmail().split(","))); List<String> customerEmails = new ArrayList<>(Arrays.asList(webSocketConfig.getDefaultCustomerEmail().split(",")));
int i = random.nextInt(customerEmails.size()); int i = random.nextInt(customerEmails.size());

View File

@@ -15,6 +15,7 @@ import com.m2pool.pool.service.UserMinserService;
import com.m2pool.pool.vo.*; import com.m2pool.pool.vo.*;
import com.m2pool.system.api.RemoteUserService; import com.m2pool.system.api.RemoteUserService;
import com.m2pool.system.api.entity.CloseAccountVo; import com.m2pool.system.api.entity.CloseAccountVo;
import com.m2pool.system.api.entity.SysUser;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@@ -250,8 +251,8 @@ public class UserController extends BaseController {
@InnerAuth @InnerAuth
@PostMapping("/deleteUserDataAndPutTemporaryTable") @PostMapping("/deleteUserDataAndPutTemporaryTable")
@ApiOperation(value = "用户注销--删除用户(邮箱)对应相关信息并存入临时表") @ApiOperation(value = "用户注销--删除用户(邮箱)对应相关信息并存入临时表")
public R<?> deleteUserDataAndPutTemporaryTable(){ public R<?> deleteUserDataAndPutTemporaryTable(@RequestBody SysUser sysUser){
return umService.deleteUserDataAndPutTemporaryTable(); return umService.deleteUserDataAndPutTemporaryTable(sysUser);
} }
} }

View File

@@ -5,6 +5,7 @@ import com.m2pool.common.core.Result.R;
import com.m2pool.common.core.web.Result.AjaxResult; import com.m2pool.common.core.web.Result.AjaxResult;
import com.m2pool.pool.dto.UserApiDto; import com.m2pool.pool.dto.UserApiDto;
import com.m2pool.pool.vo.*; import com.m2pool.pool.vo.*;
import com.m2pool.system.api.entity.SysUser;
import java.util.List; import java.util.List;
@@ -63,5 +64,5 @@ public interface UserMinserService {
* 用户注销--删除用户(邮箱)对应相关信息并存入临时表 * 用户注销--删除用户(邮箱)对应相关信息并存入临时表
* return * return
*/ */
R<?> deleteUserDataAndPutTemporaryTable(); R<?> deleteUserDataAndPutTemporaryTable(SysUser sysUser);
} }

View File

@@ -26,6 +26,7 @@ import com.m2pool.pool.utils.EnumUtils;
import com.m2pool.common.core.utils.GoogleAuthenticator; import com.m2pool.common.core.utils.GoogleAuthenticator;
import com.m2pool.pool.utils.NodeRpc; import com.m2pool.pool.utils.NodeRpc;
import com.m2pool.pool.vo.*; import com.m2pool.pool.vo.*;
import com.m2pool.system.api.entity.SysUser;
import com.m2pool.system.api.model.OpenApiKeyInfo; import com.m2pool.system.api.model.OpenApiKeyInfo;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@@ -766,8 +767,9 @@ public class UserMinerServiceImpl implements UserMinserService {
@Override @Override
@Transactional @Transactional
public R<?> deleteUserDataAndPutTemporaryTable() { public R<?> deleteUserDataAndPutTemporaryTable(SysUser sysUser) {
String username = SecurityUtils.getUsername(); String username = sysUser.getUserName();
System.out.println("用户邮箱2"+ username);
//删除挖矿账户 //删除挖矿账户
uaMapper.deleteUserAccount(username); uaMapper.deleteUserAccount(username);
uaMapper.deleteUserBalance(username); uaMapper.deleteUserBalance(username);

View File

@@ -13,7 +13,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</update> </update>
<select id="checkIfBindByEmail" resultType="java.lang.Boolean"> <select id="checkIfBindByEmail" resultType="java.lang.Boolean">
select COUNT(google_auth) from sys_user where email = #{email} and google_status=1 select COUNT(google_auth) from sys_user where email = #{email} and google_status = 1 and del_flag = 0
</select> </select>
<select id="getGoogleInfoByEmail" resultType="com.m2pool.pool.entity.GoogleInfo"> <select id="getGoogleInfoByEmail" resultType="com.m2pool.pool.entity.GoogleInfo">

View File

@@ -1,6 +1,7 @@
package com.m2pool.system.service.impl; package com.m2pool.system.service.impl;
import com.m2pool.common.core.Result.R; import com.m2pool.common.core.Result.R;
import com.m2pool.common.core.constant.SecurityConstants;
import com.m2pool.common.core.constant.UserConstants; import com.m2pool.common.core.constant.UserConstants;
import com.m2pool.common.core.exception.ServiceException; import com.m2pool.common.core.exception.ServiceException;
import com.m2pool.common.core.utils.GoogleAuthenticator; import com.m2pool.common.core.utils.GoogleAuthenticator;
@@ -453,8 +454,9 @@ public class SysUserServiceImpl implements SysUserService {
@Override @Override
@Transactional @Transactional
public boolean closeAccount(SysUser sysUser) { public boolean closeAccount(SysUser sysUser) {
System.out.println("用户邮箱2"+sysUser.getUserName());
//删除用户相关信息 //删除用户相关信息
R<Boolean> booleanR = remotePoolService.deleteUserDataAndPutTemporaryTable(); R<Boolean> booleanR = remotePoolService.deleteUserDataAndPutTemporaryTable(sysUser,SecurityConstants.INNER);
if (R.FAIL == booleanR.getCode()){ if (R.FAIL == booleanR.getCode()){
throw new ServiceException("服务器请求失败请稍后再试"); throw new ServiceException("服务器请求失败请稍后再试");
} }