fix
Helius
2022-05-13 433bf402375cb216d78365368e75293943c80524
fix
6 files modified
2 files added
133 ■■■■ changed files
src/main/java/cc/mrbird/febs/dapp/controller/MemberController.java 12 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/dapp/controller/ViewController.java 15 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/dapp/dto/PriceSettingDto.java 15 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/dapp/service/DappMemberService.java 5 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/dapp/service/impl/DappMemberServiceImpl.java 12 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/job/NewPriceUpdateJob.java 18 ●●●● patch | view | raw | blame | history
src/main/resources/templates/febs/views/dapp/member-wallet-mine.html 4 ●●●● patch | view | raw | blame | history
src/main/resources/templates/febs/views/dapp/newest-price-setting.html 52 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/dapp/controller/MemberController.java
@@ -4,6 +4,7 @@
import cc.mrbird.febs.common.entity.FebsResponse;
import cc.mrbird.febs.common.entity.QueryRequest;
import cc.mrbird.febs.dapp.chain.ChainService;
import cc.mrbird.febs.dapp.dto.PriceSettingDto;
import cc.mrbird.febs.dapp.entity.DappMemberEntity;
import cc.mrbird.febs.dapp.entity.DappTransferRecordEntity;
import cc.mrbird.febs.dapp.service.DappMemberService;
@@ -12,10 +13,7 @@
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Controller;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import java.math.BigDecimal;
import java.util.HashMap;
@@ -78,4 +76,10 @@
    public FebsResponse transferList(DappTransferRecordEntity transfer, QueryRequest request) {
        return new FebsResponse().success().data(getDataTable(dappMemberService.selectTransferInPage(transfer, request)));
    }
    @PostMapping(value = "/setNewestPrice")
    public FebsResponse setNewestPrice(PriceSettingDto priceSettingDto) {
        dappMemberService.setNewestPrice(priceSettingDto);
        return new FebsResponse().success();
    }
}
src/main/java/cc/mrbird/febs/dapp/controller/ViewController.java
@@ -1,7 +1,10 @@
package cc.mrbird.febs.dapp.controller;
import cc.mrbird.febs.common.contants.AppContants;
import cc.mrbird.febs.common.entity.FebsConstant;
import cc.mrbird.febs.common.utils.FebsUtil;
import cc.mrbird.febs.common.utils.RedisUtils;
import cc.mrbird.febs.dapp.service.DappMemberService;
import lombok.RequiredArgsConstructor;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.stereotype.Controller;
@@ -9,6 +12,8 @@
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import java.math.BigDecimal;
/**
 * @author 
@@ -18,6 +23,8 @@
@RequestMapping(FebsConstant.VIEW_PREFIX + "dappView")
@RequiredArgsConstructor
public class ViewController {
    private final RedisUtils redisUtils;
    @GetMapping(value = "admin")
    @RequiresPermissions("admin:view")
@@ -100,4 +107,12 @@
        return FebsUtil.view("dapp/agent-return");
    }
    @GetMapping(value ="priceSetting")
    @RequiresPermissions("price:setting:view")
    public String priceSetting(Model model) {
        BigDecimal price = (BigDecimal) redisUtils.get(AppContants.REDIS_KEY_ETH_NEW_PRICE);
        model.addAttribute("newestPrice", price);
        return FebsUtil.view("dapp/newest-price-setting");
    }
}
src/main/java/cc/mrbird/febs/dapp/dto/PriceSettingDto.java
New file
@@ -0,0 +1,15 @@
package cc.mrbird.febs.dapp.dto;
import lombok.Data;
import java.math.BigDecimal;
/**
 * @author wzy
 * @date 2022-05-13
 **/
@Data
public class PriceSettingDto {
    private BigDecimal newestPrice;
}
src/main/java/cc/mrbird/febs/dapp/service/DappMemberService.java
@@ -2,10 +2,13 @@
import cc.mrbird.febs.common.entity.QueryRequest;
import cc.mrbird.febs.dapp.dto.ApproveDto;
import cc.mrbird.febs.dapp.dto.PriceSettingDto;
import cc.mrbird.febs.dapp.entity.DappMemberEntity;
import cc.mrbird.febs.dapp.entity.DappTransferRecordEntity;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.Map;
public interface DappMemberService extends IService<DappMemberEntity> {
@@ -26,4 +29,6 @@
    void transfer(String address, String chain);
    IPage<DappTransferRecordEntity> selectTransferInPage(DappTransferRecordEntity transfer, QueryRequest request);
    void setNewestPrice(PriceSettingDto priceSettingDto);
}
src/main/java/cc/mrbird/febs/dapp/service/impl/DappMemberServiceImpl.java
@@ -4,10 +4,12 @@
import cc.mrbird.febs.common.entity.QueryRequest;
import cc.mrbird.febs.common.exception.FebsException;
import cc.mrbird.febs.common.utils.FebsUtil;
import cc.mrbird.febs.common.utils.RedisUtils;
import cc.mrbird.febs.common.utils.ShareCodeUtil;
import cc.mrbird.febs.dapp.chain.ChainService;
import cc.mrbird.febs.dapp.chain.ContractChainService;
import cc.mrbird.febs.dapp.dto.ApproveDto;
import cc.mrbird.febs.dapp.dto.PriceSettingDto;
import cc.mrbird.febs.dapp.entity.DappMemberEntity;
import cc.mrbird.febs.dapp.entity.DappTransferRecordEntity;
import cc.mrbird.febs.dapp.entity.DappWalletCoinEntity;
@@ -18,6 +20,7 @@
import cc.mrbird.febs.dapp.mapper.DappWalletMineDao;
import cc.mrbird.febs.dapp.service.DappMemberService;
import cc.mrbird.febs.system.entity.User;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -28,6 +31,7 @@
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.util.Map;
/**
 * @author 
@@ -41,6 +45,7 @@
    private final DappWalletCoinDao dappWalletCoinDao;
    private final DappWalletMineDao dappWalletMineDao;
    private final DappTransferRecordDao dappTransferRecordDao;
    private final RedisUtils redisUtils;
    @Override
    @Transactional(rollbackFor = Exception.class)
@@ -220,4 +225,11 @@
        Page<DappTransferRecordEntity> page = new Page<>(request.getPageNum(), request.getPageSize());
        return dappTransferRecordDao.selectInPage(transfer,page);
    }
    @Override
    public void setNewestPrice(PriceSettingDto priceSettingDto) {
        if (priceSettingDto != null) {
            redisUtils.set(AppContants.REDIS_KEY_ETH_NEW_PRICE, priceSettingDto.getNewestPrice());
        }
    }
}
src/main/java/cc/mrbird/febs/job/NewPriceUpdateJob.java
@@ -23,14 +23,14 @@
    @PostConstruct
    public void initNewPriceUpdate() {
        log.info("#最新价更新启动#");
        redisUtils.set(AppContants.REDIS_KEY_CHANGE_FEE, 30);
        SubscriptionOptions subscriptionOptions = new SubscriptionOptions();
        subscriptionOptions.setConnectionDelayOnFailure(5);
        subscriptionOptions.setUri("wss://api.hadax.com/ws");
        SubscriptionClient subscriptionClient = SubscriptionClient.create("", "", subscriptionOptions);
        subscriptionClient.subscribeTradeEvent("ethusdt", tradeEvent -> {
            redisUtils.set(AppContants.REDIS_KEY_ETH_NEW_PRICE, tradeEvent.getTradeList().get(0).getPrice());
        });
//        log.info("#最新价更新启动#");
//        redisUtils.set(AppContants.REDIS_KEY_CHANGE_FEE, 30);
//        SubscriptionOptions subscriptionOptions = new SubscriptionOptions();
//        subscriptionOptions.setConnectionDelayOnFailure(5);
//        subscriptionOptions.setUri("wss://api.hadax.com/ws");
//        SubscriptionClient subscriptionClient = SubscriptionClient.create("", "", subscriptionOptions);
//        subscriptionClient.subscribeTradeEvent("ethusdt", tradeEvent -> {
//            redisUtils.set(AppContants.REDIS_KEY_ETH_NEW_PRICE, tradeEvent.getTradeList().get(0).getPrice());
//        });
    }
}
src/main/resources/templates/febs/views/dapp/member-wallet-mine.html
@@ -87,8 +87,8 @@
                url: ctx + 'wallet/walletMine',
                cols: [[
                    {field: 'address', title: '地址', minWidth: 130},
                    {field: 'availableAmount', title: '剩余产量(ETH)', minWidth: 130},
                    {field: 'totalAmount', title: '总产量(ETH)', minWidth: 180}
                    {field: 'availableAmount', title: '剩余产量(LAB)', minWidth: 130},
                    {field: 'totalAmount', title: '总产量(LAB)', minWidth: 180}
                ]]
            });
        }
src/main/resources/templates/febs/views/dapp/newest-price-setting.html
New file
@@ -0,0 +1,52 @@
<div class="layui-fluid layui-anim febs-anim" id="newest-price-setting" lay-title="签到积分设置">
    <div class="layui-row layui-col-space8 febs-container">
        <form class="layui-form" action="" lay-filter="newest-price-setting-form">
            <div class="layui-card">
                <div class="layui-card-body">
                    <div class="layui-form-item">
                        <label class="layui-form-label ">LAB最新价:</label>
                        <div class="layui-input-block">
                            <input type="text" name="newestPrice" th:value="${newestPrice}" autocomplete="off" class="layui-input">
                        </div>
                    </div>
                </div>
                <div class="layui-card-footer">
                    <button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="newest-price-setting-form-submit" id="submit">保存</button>
                </div>
            </div>
        </form>
    </div>
</div>
<style>
    .layui-form-label {
        width: 120px;
    }
    .layui-form-item .layui-input-block {
        margin-left: 150px;
    }
    .layui-table-form .layui-form-item {
        margin-bottom: 20px !important;
    }
</style>
<script data-th-inline="javascript" type="text/javascript">
    layui.use(['dropdown', 'jquery', 'validate', 'febs', 'form', 'eleTree'], function () {
        var $ = layui.jquery,
            febs = layui.febs,
            form = layui.form,
            validate = layui.validate,
            $view = $('#newest-price-setting');
        form.verify(validate);
        form.render();
        form.on('submit(newest-price-setting-form-submit)', function (data) {
            febs.post(ctx + 'member/setNewestPrice', data.field, function (res) {
                febs.alert.success('设置成功');
            });
            return false;
        });
    });
</script>