新版仿ok交易所-后端
1
zyy
2026-05-29 7289903c3b78d4e6e141e3a5e976ddef52e9fc97
trading-order-admin/src/main/java/com/yami/trading/admin/controller/AddressController.java
@@ -2,22 +2,28 @@
import com.yami.trading.admin.model.LoginModel;
import com.yami.trading.admin.model.UpdateAddressModel;
import com.yami.trading.admin.model.channelBlockchain.ChannelBlockchainUpdateModel;
import com.yami.trading.bean.model.ChannelBlockchain;
import com.yami.trading.common.constants.RedisKeys;
import com.yami.trading.common.domain.Result;
import com.yami.trading.common.exception.BusinessException;
import com.yami.trading.common.exception.YamiShopBindException;
import com.yami.trading.common.util.GoogleAuthenticator;
import com.yami.trading.common.util.IPHelper;
import com.yami.trading.common.util.StringUtils;
import com.yami.trading.security.common.bo.UserInfoInTokenBO;
import com.yami.trading.security.common.enums.CryptoCurrencyEnum;
import com.yami.trading.security.common.enums.SysTypeEnum;
import com.yami.trading.security.common.util.LocalKeyStorageAESUtil;
import com.yami.trading.security.common.util.SecurityUtils;
import com.yami.trading.security.common.vo.TokenInfoVO;
import com.yami.trading.service.ChannelBlockchainService;
import com.yami.trading.service.system.LogService;
import com.yami.trading.sys.model.SysUser;
import com.yami.trading.sys.service.SysUserService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
@@ -30,14 +36,17 @@
 * @description: 充值地址
 * @create: 2025-08-07 14:44
 **/
@Slf4j
@RestController
@RequestMapping("address")
@Api(tags = "充值地址")
public class AddressController {
    @Autowired
    RedisTemplate redisTemplate;
    ChannelBlockchainService channelBlockchainService;
    @Autowired
    SysUserService sysUserService;
    /**
     * 地址列表
@@ -45,18 +54,11 @@
     */
    @PostMapping("/list")
    public Result<?> list() {
        List<CryptoCurrencyEnum> currencyEnums = CryptoCurrencyEnum.getAll();
        List<ChannelBlockchain> data = new ArrayList<>();
        currencyEnums.forEach(f->{
        //List<CryptoCurrencyEnum> currencyEnums = CryptoCurrencyEnum.getAll();
        List<ChannelBlockchain> data = channelBlockchainService.list();
        data.forEach(f->{
            try {
                String address = LocalKeyStorageAESUtil.loadAndDecrypt(f.getName());
                ChannelBlockchain blockchain = new ChannelBlockchain();
                blockchain.setBlockchain_name(f.getChain());
                blockchain.setAddress(address);
                blockchain.setCoin(f.getCoin());
                blockchain.setAuto(false);
                blockchain.setImg(null);
                data.add(blockchain);
                f.setBlockchain_name(f.getBlockchainName());
            } catch (Exception e) {
                e.getMessage();
            }
@@ -64,7 +66,7 @@
        return Result.succeed(data);
    }
    @PostMapping("/update")
    /*@PostMapping("/update")
    public Result<?> list(@RequestBody UpdateAddressModel model) {
        String name = model.getCoin().toLowerCase()+"_"+model.getChain().toLowerCase();
        try {
@@ -76,34 +78,41 @@
            e.getMessage();
        }
        return Result.succeed();
    }*/
    @ApiOperation("修改 区块链充值地址")
    @PostMapping("update")
    public Result update(@RequestBody @Valid ChannelBlockchainUpdateModel model) {
        String id = model.getId();
        String blockchain_name = model.getBlockchainName();
        String coin = model.getCoin();
        String address = model.getAddress();
        ChannelBlockchain channelBlockchain = this.channelBlockchainService.getById(id);
        /*String error = this.verif(blockchain_name, coin, address, null);
        if (!StringUtils.isNullOrEmpty(error)) {
            throw new BusinessException(error);
        }*/
        if (!blockchain_name.isEmpty()) {
            channelBlockchain.setBlockchain_name(blockchain_name);
        }
        if (!coin.isEmpty()) {
            channelBlockchain.setCoin(coin);
        }
        if (!address.isEmpty()) {
            channelBlockchain.setAddress(address);
        }
        channelBlockchainService.updateById(channelBlockchain);
        return Result.succeed();
    }
    /**
     * u盾地址列表
     * @return
     */
    @GetMapping("/getUDList")
    public Result<?> getUDList(String partyId) {
        if (partyId == null || partyId.isEmpty()) {
            return Result.failed("请选择用户");
        }
        List<CryptoCurrencyEnum> currencyEnums = CryptoCurrencyEnum.getAll();
        List<ChannelBlockchain> data = new ArrayList<>();
        currencyEnums.forEach(currencyEnum->{
            try {
                String address = (String)redisTemplate.opsForValue().get(RedisKeys.BLOCKCHAIN_ADDRESS + partyId + currencyEnum.getName());
                ChannelBlockchain blockchain = new ChannelBlockchain();
                blockchain.setBlockchain_name(currencyEnum.getChain());
                blockchain.setAddress(address);
                blockchain.setCoin(currencyEnum.getCoin());
                blockchain.setAuto(false);
                blockchain.setImg(null);
                data.add(blockchain);
            } catch (Exception e) {
                log.error(e.getMessage());
            }
        });
        return Result.succeed(data);
    private String verif(String blockchain_name, String coin, String address, String img) {
        if (StringUtils.isEmptyString(blockchain_name))
            return "请输入链名称";
        if (StringUtils.isEmptyString(coin))
            return "请输入币种";
        if (StringUtils.isEmptyString(address))
            return "请输入地址";
        return null;
    }
}