update 卖家删除钱包,修改钱包。删除店铺修改店铺均加了谷歌验证码

This commit is contained in:
yyb
2026-01-13 16:14:21 +08:00
parent f5fecd3059
commit d7556b94c7
8 changed files with 50 additions and 28 deletions

View File

@@ -7,7 +7,7 @@ import com.m2pool.lease.service.LeaseShopService;
import com.m2pool.lease.vo.BaseVo; import com.m2pool.lease.vo.BaseVo;
import com.m2pool.lease.vo.ShopConfigVo; import com.m2pool.lease.vo.ShopConfigVo;
import com.m2pool.lease.vo.ShopVo; import com.m2pool.lease.vo.ShopVo;
import com.m2pool.lease.vo.v2.WalletIdAndCodeVo; import com.m2pool.lease.vo.v2.GoogleCodeVo;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
@@ -97,7 +97,7 @@ public class LeaseShopController {
*/ */
@ApiOperation("删除店铺") @ApiOperation("删除店铺")
@PostMapping("/deleteShop") @PostMapping("/deleteShop")
public Result<String> deleteShop(@RequestBody BaseVo baseVo) { public Result<String> deleteShop(@RequestBody GoogleCodeVo baseVo) {
return leaseShopService.deleteShop(baseVo); return leaseShopService.deleteShop(baseVo);
} }
@@ -151,7 +151,7 @@ public class LeaseShopController {
*/ */
@ApiOperation("钱包配置----根据配置id 删除商铺收款钱包配置") @ApiOperation("钱包配置----根据配置id 删除商铺收款钱包配置")
@PostMapping("/deleteShopConfig") @PostMapping("/deleteShopConfig")
public Result<String> deleteShopConfig(@RequestBody WalletIdAndCodeVo baseVo) { public Result<String> deleteShopConfig(@RequestBody GoogleCodeVo baseVo) {
return leaseShopService.deleteShopConfig(baseVo); return leaseShopService.deleteShopConfig(baseVo);
} }

View File

@@ -7,7 +7,7 @@ import com.m2pool.lease.dto.v2.ShopWalletInfoDto;
import com.m2pool.lease.entity.LeaseShop; import com.m2pool.lease.entity.LeaseShop;
import com.m2pool.lease.vo.*; import com.m2pool.lease.vo.*;
import com.m2pool.lease.vo.v2.ShopWalletInfoVo; import com.m2pool.lease.vo.v2.ShopWalletInfoVo;
import com.m2pool.lease.vo.v2.WalletIdAndCodeVo; import com.m2pool.lease.vo.v2.GoogleCodeVo;
import java.util.List; import java.util.List;
@@ -64,7 +64,7 @@ public interface LeaseShopService extends IService<LeaseShop> {
* @param baseVo * @param baseVo
* @return * @return
*/ */
Result<String> deleteShop(BaseVo baseVo); Result<String> deleteShop(GoogleCodeVo baseVo);
/** /**
@@ -101,7 +101,7 @@ public interface LeaseShopService extends IService<LeaseShop> {
* @param baseVo * @param baseVo
* @return * @return
*/ */
Result<String> deleteShopConfig(WalletIdAndCodeVo baseVo); Result<String> deleteShopConfig(GoogleCodeVo baseVo);
/** /**
* 获取链和链列表 * 获取链和链列表

View File

@@ -19,8 +19,8 @@ import com.m2pool.lease.service.LeaseShopConfigService;
import com.m2pool.lease.service.LeaseShopService; import com.m2pool.lease.service.LeaseShopService;
import com.m2pool.lease.utils.*; import com.m2pool.lease.utils.*;
import com.m2pool.lease.vo.*; import com.m2pool.lease.vo.*;
import com.m2pool.lease.vo.v2.GoogleCodeVo;
import com.m2pool.lease.vo.v2.ShopWalletInfoVo; import com.m2pool.lease.vo.v2.ShopWalletInfoVo;
import com.m2pool.lease.vo.v2.WalletIdAndCodeVo;
import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
@@ -113,9 +113,19 @@ public class LeaseShopServiceImpl extends ServiceImpl<LeaseShopMapper, LeaseShop
@Override @Override
public Result<String> updateShop(ShopVo shopVo) { public Result<String> updateShop(ShopVo shopVo) {
String userEmail = SecurityUtils.getUsername();
if (shopVo.getId() == null || shopVo.getId() == 0){ if (shopVo.getId() == null || shopVo.getId() == 0){
return Result.fail("id不能为空或0"); return Result.fail("id不能为空或0");
} }
GoogleInfo googleInfo = leaseUserMapper.getGoogleInfoByEmail(userEmail);
if(googleInfo == null || StringUtils.isBlank(googleInfo.getSecret())){
//未绑定定谷歌验证器
return Result.fail("您的账号未开启双重验证,请先开启验证!");
}
if(!GoogleAuthenticator.checkCode(googleInfo.getSecret(), shopVo.getGCode(), System.currentTimeMillis())){
return Result.fail("谷歌验证码错误");
}
LeaseShop leaseShop = LeaseShop.builder() LeaseShop leaseShop = LeaseShop.builder()
.id(shopVo.getId()) .id(shopVo.getId())
@@ -205,11 +215,23 @@ public class LeaseShopServiceImpl extends ServiceImpl<LeaseShopMapper, LeaseShop
@Override @Override
@Transactional @Transactional
public Result<String> deleteShop(BaseVo baseVo) { public Result<String> deleteShop(GoogleCodeVo baseVo) {
LeaseShop byId = getById(baseVo.getId()); LeaseShop byId = getById(baseVo.getId());
String userEmail = SecurityUtils.getUsername();
GoogleInfo googleInfo = leaseUserMapper.getGoogleInfoByEmail(userEmail);
if (byId.getDel()){ if (byId.getDel()){
return Result.fail("删除店铺失败,店铺已删除,请刷新页面"); return Result.fail("删除店铺失败,店铺已删除,请刷新页面");
} }
//校验谷歌验证码
//1.1谷歌验证
if(googleInfo == null || StringUtils.isBlank(googleInfo.getSecret())){
//未绑定定谷歌验证器
return Result.fail("您的账号未开启双重验证,请先开启验证!");
}
if(!GoogleAuthenticator.checkCode(googleInfo.getSecret(), baseVo.getGCode(), System.currentTimeMillis())){
return Result.fail("谷歌验证码错误");
}
updateMachineInfoV1(baseVo.getId()); updateMachineInfoV1(baseVo.getId());
updateMachineInfoV2(baseVo.getId()); updateMachineInfoV2(baseVo.getId());
boolean b = updateById(LeaseShop.builder().id(baseVo.getId()).del(true).build()); boolean b = updateById(LeaseShop.builder().id(baseVo.getId()).del(true).build());
@@ -473,7 +495,7 @@ public class LeaseShopServiceImpl extends ServiceImpl<LeaseShopMapper, LeaseShop
} }
@Override @Override
public Result<String> deleteShopConfig(WalletIdAndCodeVo baseVo) { public Result<String> deleteShopConfig(GoogleCodeVo baseVo) {
String userEmail = SecurityUtils.getUsername(); String userEmail = SecurityUtils.getUsername();
//1.根据id找到要删除的钱包配置 //1.根据id找到要删除的钱包配置
LeaseShopConfig config = leaseShopConfigMapper.selectById(baseVo.getId()); LeaseShopConfig config = leaseShopConfigMapper.selectById(baseVo.getId());

View File

@@ -1,7 +1,6 @@
package com.m2pool.lease.service.impl; package com.m2pool.lease.service.impl;
import cn.hutool.json.JSONUtil;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.nacos.common.utils.StringUtils; import com.alibaba.nacos.common.utils.StringUtils;
import com.baomidou.dynamic.datasource.annotation.DSTransactional; import com.baomidou.dynamic.datasource.annotation.DSTransactional;
@@ -31,10 +30,7 @@ import com.m2pool.lease.utils.email.EmailTemplateEntity;
import com.m2pool.lease.utils.text.Convert; import com.m2pool.lease.utils.text.Convert;
import com.m2pool.lease.utils.uuid.IdUtils; import com.m2pool.lease.utils.uuid.IdUtils;
import com.m2pool.lease.vo.*; import com.m2pool.lease.vo.*;
import com.m2pool.lease.vo.v2.CloseAccountVo; import com.m2pool.lease.vo.v2.*;
import com.m2pool.lease.vo.v2.GoogleBindVo;
import com.m2pool.lease.vo.v2.GoogleCloseVo;
import com.m2pool.lease.vo.v2.UserGoogleAuthInfo;
import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
@@ -42,7 +38,6 @@ import org.springframework.mail.javamail.JavaMailSenderImpl;
import org.springframework.mail.javamail.MimeMessageHelper; import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.RequestBody;
import org.thymeleaf.TemplateEngine; import org.thymeleaf.TemplateEngine;
import org.thymeleaf.context.Context; import org.thymeleaf.context.Context;
@@ -51,7 +46,6 @@ import javax.mail.MessagingException;
import javax.mail.internet.MimeMessage; import javax.mail.internet.MimeMessage;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import java.io.File; import java.io.File;
import java.io.FileNotFoundException; import java.io.FileNotFoundException;
import java.io.IOException; import java.io.IOException;
@@ -382,7 +376,6 @@ public class LeaseUserServiceImpl extends ServiceImpl<LeaseUserMapper, LeaseUser
@Transactional @Transactional
public Result<String> closeAccount(CloseAccountVo closeAccountVo) { public Result<String> closeAccount(CloseAccountVo closeAccountVo) {
String userEmail = SecurityUtils.getUsername(); String userEmail = SecurityUtils.getUsername();
//1.
GoogleInfo googleInfo = leaseUserMapper.getGoogleInfoByEmail(userEmail); GoogleInfo googleInfo = leaseUserMapper.getGoogleInfoByEmail(userEmail);
//1.1谷歌验证 //1.1谷歌验证
if(googleInfo == null || StringUtils.isBlank(googleInfo.getSecret())){ if(googleInfo == null || StringUtils.isBlank(googleInfo.getSecret())){
@@ -409,9 +402,10 @@ public class LeaseUserServiceImpl extends ServiceImpl<LeaseUserMapper, LeaseUser
leaseShoppingCartInfoMapper.delete(new LambdaQueryWrapper<LeaseShoppingCartInfo>() leaseShoppingCartInfoMapper.delete(new LambdaQueryWrapper<LeaseShoppingCartInfo>()
.eq(LeaseShoppingCartInfo::getUserId, userEmail)); .eq(LeaseShoppingCartInfo::getUserId, userEmail));
//删除用户店铺,矿机,店铺配置(钱包)相关信息 //删除用户店铺,矿机,店铺配置(钱包)相关信息
BaseVo baseVo = new BaseVo(); GoogleCodeVo googleCodeVo = new GoogleCodeVo();
baseVo.setId(leaseShop.getId()); googleCodeVo.setId(leaseShop.getId());
Result<String> stringResult = leaseShopService.deleteShop(baseVo); googleCodeVo.setGCode(closeAccountVo.getGCode());
Result<String> stringResult = leaseShopService.deleteShop(googleCodeVo);
//删除钱包 //删除钱包
leaseUserWalletDataMapper.update(LeaseUserWalletData.builder().del(true).build(), leaseUserWalletDataMapper.update(LeaseUserWalletData.builder().del(true).build(),
new LambdaUpdateWrapper<LeaseUserWalletData>() new LambdaUpdateWrapper<LeaseUserWalletData>()

View File

@@ -1,5 +1,6 @@
package com.m2pool.lease.vo; package com.m2pool.lease.vo;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.m2pool.lease.annotation.EncryptedField; import com.m2pool.lease.annotation.EncryptedField;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
@@ -47,7 +48,10 @@ public class ShopConfigVo extends BaseVo {
* 卖方对应收款钱包 * 卖方对应收款钱包
*/ */
@ApiModelProperty(value = "卖方对应收款钱包",example = "nexa:nqtsq5g50jkkmklvjyaflg46c4nwuy46z9gzswqe3l0csc7g") @ApiModelProperty(value = "卖方对应收款钱包",example = "nexa:nqtsq5g50jkkmklvjyaflg46c4nwuy46z9gzswqe3l0csc7g")
private String payAddress; private String payAddress;
@ApiModelProperty(value = "谷歌验证码")
@JsonProperty("gCode")
private Long gCode;
} }

View File

@@ -2,6 +2,7 @@ package com.m2pool.lease.vo;
import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
@@ -58,4 +59,7 @@ public class ShopVo extends BaseVo{
//@ApiModelProperty(value = "逻辑删除字段",example = "false") //@ApiModelProperty(value = "逻辑删除字段",example = "false")
//private Boolean del; //private Boolean del;
@ApiModelProperty(value = "谷歌验证码")
@JsonProperty("gCode")
private Long gCode;
} }

View File

@@ -4,10 +4,7 @@ import com.fasterxml.jackson.annotation.JsonProperty;
import com.m2pool.lease.vo.BaseVo; import com.m2pool.lease.vo.BaseVo;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor; import lombok.*;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;
/** /**
* @Description 支付订单请求对象 * @Description 支付订单请求对象
@@ -18,8 +15,8 @@ import lombok.NoArgsConstructor;
@Data @Data
@NoArgsConstructor @NoArgsConstructor
@AllArgsConstructor @AllArgsConstructor
@ApiModel(description = "卖家钱包id 和 谷歌验证码请求对象",value = "WalletIdAndCodeVo" ) @ApiModel(description = "卖家钱包id 和 谷歌验证码请求对象",value = "GoogleCodeVo" )
public class WalletIdAndCodeVo extends BaseVo{ public class GoogleCodeVo extends BaseVo{
@ApiModelProperty(value = "谷歌验证码") @ApiModelProperty(value = "谷歌验证码")
@JsonProperty("gCode") @JsonProperty("gCode")

View File

@@ -1,5 +1,6 @@
package com.m2pool.lease.vo.v2; package com.m2pool.lease.vo.v2;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.m2pool.lease.annotation.EncryptedField; import com.m2pool.lease.annotation.EncryptedField;
import com.m2pool.lease.vo.BaseVo; import com.m2pool.lease.vo.BaseVo;
import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModel;
@@ -36,6 +37,6 @@ public class ShopWalletInfoVo {
private String payAddress; private String payAddress;
@ApiModelProperty(value = "谷歌验证码",example = "123456") @ApiModelProperty(value = "谷歌验证码",example = "123456")
@JsonProperty("gCode")
private Long gCode; private Long gCode;
} }