新版仿ok交易所-后端
zyy
2025-09-03 41b107ba7acd40fa32ce9ec8f103dfe1061ecf4e
初始化修改
6 files modified
49 ■■■■ changed files
trading-order-admin/src/main/java/com/yami/trading/admin/controller/ico/AdminIcoController.java 22 ●●●●● patch | view | raw | blame | history
trading-order-bean/src/main/java/com/yami/trading/bean/ico/dto/UserSubscriptionDTO.java 9 ●●●● patch | view | raw | blame | history
trading-order-service/src/main/java/com/yami/trading/service/ico/IcoService.java 5 ●●●●● patch | view | raw | blame | history
trading-order-service/src/main/java/com/yami/trading/service/impl/WalletServiceImpl.java 3 ●●●● patch | view | raw | blame | history
trading-order-service/src/main/java/com/yami/trading/service/item/ItemService.java 5 ●●●●● patch | view | raw | blame | history
trading-order-service/src/main/resources/mapper/ico/UserSubscriptionMapper.xml 5 ●●●●● patch | view | raw | blame | history
trading-order-admin/src/main/java/com/yami/trading/admin/controller/ico/AdminIcoController.java
@@ -1,5 +1,6 @@
package com.yami.trading.admin.controller.ico;
import cn.hutool.core.date.DateTime;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -24,6 +25,8 @@
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import java.time.Instant;
import java.util.Date;
@Api(tags ="新币管理")
@@ -63,6 +66,25 @@
                    .eq(Ico::getSymbol, ico.getSymbol()).or().eq(Ico::getSymbolData, ico.getSymbolData()));
        } else {
            Ico model = icoService.getById(ico.getId());
            if (model == null) {
                throw new YamiShopBindException("数据不存在");
            }
            Date now = Date.from(Instant.now());
            if (model.getMarketDate() != null && model.getMarketDate().before(now)){
                throw new YamiShopBindException("已上市不能修改");
            }
            if (!model.getSymbol().equalsIgnoreCase(ico.getSymbol()) ||
                    !model.getSymbolData().equalsIgnoreCase(ico.getSymbolData())) {
                //修改编码判断是否有人购买
                QueryWrapper<UserSubscription> queryWrapper = new QueryWrapper<>();
                queryWrapper.eq("ico_project_id", ico.getId());
                long uCount = userSubscriptionService.count(queryWrapper);
                if (uCount > 0) {
                    throw new YamiShopBindException("已有申购,禁止修改代币符号,数据源编码");
                }
            }
            count = icoService.count(new LambdaQueryWrapper<Ico>()
                            .ne(Ico::getId, ico.getId())
                            .and(wrapper -> wrapper
trading-order-bean/src/main/java/com/yami/trading/bean/ico/dto/UserSubscriptionDTO.java
@@ -10,11 +10,16 @@
@EqualsAndHashCode(callSuper = false)
public class UserSubscriptionDTO extends UserSubscription {
    @ApiModelProperty("交易对名称")
    @ApiModelProperty("币名称")
    private String name;
    @ApiModelProperty("代码/交易对")
    private String symbol;
    @ApiModelProperty("用户名")
    private String userName;
    @ApiModelProperty("UID")
    private String userCode;
}
trading-order-service/src/main/java/com/yami/trading/service/ico/IcoService.java
@@ -154,10 +154,10 @@
            if (model.getStatus() == 3) { //中签
                //资金账户
                Wallet wallet = walletService.saveWalletByPartyId(userId);
                int applyNumber = userSubscription.getSubscribeNums() - model.getBallotNumber();
                BigDecimal amount = ico.getUnitAmount().multiply(new BigDecimal(applyNumber));
                //已经预支付
                if(ico.getIsPayDown() !=null && ico.getIsPayDown() == 1) {
                    int applyNumber = userSubscription.getSubscribeNums() - model.getBallotNumber();
                    BigDecimal amount = ico.getUnitAmount().multiply(new BigDecimal(applyNumber));
                    if(applyNumber > 0) {
                        //退回资金
                        BigDecimal refundPrice = ico.getUnitAmount().multiply(new BigDecimal(applyNumber));
@@ -177,6 +177,7 @@
                        moneyLogService.save(moneylog);
                    }
                } else {
                    BigDecimal amount = ico.getUnitAmount().multiply(new BigDecimal(model.getBallotNumber()));
                    BigDecimal subtract = amount.subtract(wallet.getMoney());
                    if (subtract.compareTo(BigDecimal.ZERO) > 0) {
                        //放入待补
trading-order-service/src/main/java/com/yami/trading/service/impl/WalletServiceImpl.java
@@ -296,7 +296,8 @@
        if (realtimes != null && realtimes.size() > 0) {
            close = realtimes.get(0).getClose().doubleValue();
        } else {
            throw new YamiShopBindException("参数错误");
            close = 0;
            //throw new YamiShopBindException("参数错误");
        }
        return close;
    }
trading-order-service/src/main/java/com/yami/trading/service/item/ItemService.java
@@ -16,15 +16,12 @@
import com.yami.trading.bean.item.domain.Item;
import com.yami.trading.bean.item.dto.ItemDTO;
import com.yami.trading.bean.item.dto.ItemLeverageDTO;
import com.yami.trading.common.exception.YamiShopBindException;
import com.yami.trading.common.util.ApplicationContextUtils;
import com.yami.trading.common.util.MarketOpenChecker;
import com.yami.trading.common.util.StringUtils;
import com.yami.trading.dao.item.ItemMapper;
import lombok.extern.slf4j.Slf4j;
import org.checkerframework.checker.units.qual.A;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cache.annotation.CacheEvict;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -255,6 +252,7 @@
     * @return
     */
    public boolean isContractTrading(Item item) {
        item = getById(item.getUuid());
        //虚拟币新币才判断
        if (item.getType().equals(Item.cryptos) && (item.getCurrencyType() != null && item.getCurrencyType() == 1)) {
            if (item.getTradeType() != null && item.getTradeType().equals("0")) {
@@ -270,6 +268,7 @@
     * @return
     */
    public boolean isSuspended(Item item) {
        item = getById(item.getUuid());
        //虚拟币新币才判断
        if (item.getType().equals(Item.cryptos) && (item.getCurrencyType() != null && item.getCurrencyType() == 1)) {
            if (item.getStatus() != null && item.getStatus() == 0) {
trading-order-service/src/main/resources/mapper/ico/UserSubscriptionMapper.xml
@@ -4,9 +4,10 @@
    <select id="findList" resultType="com.yami.trading.bean.ico.dto.UserSubscriptionDTO">
        SELECT u.*,t.name,t.symbol
        SELECT u.*,t.name,t.symbol,r.user_name,r.user_code
        FROM user_subscription_record u
        LEFT JOIN t_ico_project t ON t.id = u.ico_project_id
                 LEFT JOIN t_ico_project t ON t.id = u.ico_project_id
                 LEFT JOIN tz_user r ON r.user_id = u.user_id
        ${ew.customSqlSegment}
    </select>