package com.yami.trading.admin.controller;
|
|
import com.yami.trading.admin.model.UpdateAddressModel;
|
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.YamiShopBindException;
|
import com.yami.trading.security.common.enums.CryptoCurrencyEnum;
|
import com.yami.trading.service.ChannelBlockchainService;
|
import io.swagger.annotations.Api;
|
import io.swagger.annotations.ApiOperation;
|
import lombok.extern.slf4j.Slf4j;
|
import org.apache.commons.lang3.StringUtils;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.data.redis.core.RedisTemplate;
|
import org.springframework.web.bind.annotation.*;
|
|
import java.util.ArrayList;
|
import java.util.List;
|
|
/**
|
* 管理后台 - 财务 - 充值地址(ChannelBlockchain 表)
|
*/
|
@Slf4j
|
@RestController
|
@RequestMapping("address")
|
@Api(tags = "充值地址")
|
public class AddressController {
|
|
@Autowired
|
RedisTemplate redisTemplate;
|
|
@Autowired
|
private ChannelBlockchainService channelBlockchainService;
|
|
@ApiOperation("充值地址列表")
|
@PostMapping("/list")
|
public Result<List<ChannelBlockchain>> list() {
|
List<ChannelBlockchain> list = channelBlockchainService.list();
|
list.forEach(this::fillBlockchainNameAlias);
|
return Result.succeed(list);
|
}
|
|
@ApiOperation("修改充值地址")
|
@PostMapping("/update")
|
public Result<ChannelBlockchain> update(@RequestBody UpdateAddressModel model) {
|
if (StringUtils.isNotBlank(model.getUuid())) {
|
ChannelBlockchain existing = channelBlockchainService.getById(model.getUuid());
|
if (existing == null) {
|
throw new YamiShopBindException("充值地址记录不存在");
|
}
|
if (StringUtils.isBlank(model.getAddress())) {
|
throw new YamiShopBindException("充值地址不能为空");
|
}
|
existing.setAddress(model.getAddress().trim());
|
if (StringUtils.isNotBlank(model.getCoin())) {
|
existing.setCoin(model.getCoin().trim().toLowerCase());
|
}
|
if (StringUtils.isNotBlank(model.getChain())) {
|
existing.setBlockchainName(model.getChain().trim());
|
}
|
channelBlockchainService.updateById(existing);
|
fillBlockchainNameAlias(existing);
|
return Result.succeed(existing);
|
}
|
ChannelBlockchain saved = channelBlockchainService.saveOrUpdateByCoinAndChain(
|
model.getCoin(), model.getChain(), model.getAddress());
|
fillBlockchainNameAlias(saved);
|
return Result.succeed(saved);
|
}
|
|
/**
|
* u盾地址列表(按用户维度,仍走 Redis)
|
*/
|
@GetMapping("/getUDList")
|
public Result<List<ChannelBlockchain>> 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.setBlockchainName(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 void fillBlockchainNameAlias(ChannelBlockchain item) {
|
if (item != null && StringUtils.isNotBlank(item.getBlockchainName())) {
|
item.setBlockchain_name(item.getBlockchainName());
|
}
|
}
|
}
|