KKSU
2024-04-19 af18f13ad4056a6a2f134c6fa3ccf6e0d67ad2be
后台优化
5 files modified
2 files added
190 ■■■■■ changed files
src/main/java/cc/mrbird/febs/dapp/controller/AdminBannerController.java 10 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/dapp/controller/ViewBannerController.java 10 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/dapp/dto/ZhiyaAddDto.java 25 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/dapp/service/IAdminBannerService.java 3 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/dapp/service/impl/AdminBannerServiceImpl.java 62 ●●●●● patch | view | raw | blame | history
src/main/resources/templates/febs/views/modules/banner/inviteList.html 8 ●●●● patch | view | raw | blame | history
src/main/resources/templates/febs/views/modules/banner/zhiyaAdd.html 72 ●●●●● patch | view | raw | blame | history
src/main/java/cc/mrbird/febs/dapp/controller/AdminBannerController.java
@@ -6,6 +6,7 @@
import cc.mrbird.febs.common.entity.QueryRequest;
import cc.mrbird.febs.common.enumerates.DataDicEnum;
import cc.mrbird.febs.common.utils.RedisUtils;
import cc.mrbird.febs.dapp.dto.ZhiyaAddDto;
import cc.mrbird.febs.dapp.entity.DappCoinPrice;
import cc.mrbird.febs.dapp.entity.DappHdRecord;
import cc.mrbird.febs.dapp.entity.DappMemberEntity;
@@ -40,6 +41,15 @@
    private final ChainProducer chainProducer;
    /**
     * 质押恢复
     */
    @PostMapping("zhiyaAdd")
    @ControllerEndpoint(operation = "质押恢复", exceptionMessage = "操作失败")
    public FebsResponse zhiyaAdd(@Valid ZhiyaAddDto zhiyaAddDto) {
        return iAdminBannerService.zhiyaAdd(zhiyaAddDto);
    }
    /**
     * 邀请---列表
     */
    @GetMapping("inviteList")
src/main/java/cc/mrbird/febs/dapp/controller/ViewBannerController.java
@@ -31,6 +31,16 @@
    /**
     * 质押恢复
     */
    @GetMapping("zhiyaAdd")
    @RequiresPermissions("zhiyaAdd:view")
    public String zhiyaAdd() {
        return FebsUtil.view("modules/banner/zhiyaAdd");
    }
    /**
     * 邀请---列表
     */
    @GetMapping("inviteList")
src/main/java/cc/mrbird/febs/dapp/dto/ZhiyaAddDto.java
New file
@@ -0,0 +1,25 @@
package cc.mrbird.febs.dapp.dto;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import javax.validation.Valid;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
@Data
@ApiModel(value = "WalletOperateDto", description = "钱包操作参数接收类")
public class ZhiyaAddDto {
    @NotBlank(message = "地址不能为空")
    private String address;
    @Valid
    @NotNull(message = "数量不能为空")
    @Min(0)
    private String amount;
    @NotBlank(message = "HASH不能为空")
    private String zyHash;
}
src/main/java/cc/mrbird/febs/dapp/service/IAdminBannerService.java
@@ -2,6 +2,7 @@
import cc.mrbird.febs.common.entity.FebsResponse;
import cc.mrbird.febs.common.entity.QueryRequest;
import cc.mrbird.febs.dapp.dto.ZhiyaAddDto;
import cc.mrbird.febs.dapp.entity.DappCoinPrice;
import cc.mrbird.febs.dapp.entity.DappHdRecord;
import cc.mrbird.febs.dapp.entity.DappMemberEntity;
@@ -31,4 +32,6 @@
    IPage<DappHdRecord> findHdRecordInPage(DappHdRecord dappHdRecord, QueryRequest request);
    IPage<DappMemberEntity> inviteList(DappMemberEntity dappMemberEntity, QueryRequest request);
    FebsResponse zhiyaAdd(ZhiyaAddDto zhiyaAddDto);
}
src/main/java/cc/mrbird/febs/dapp/service/impl/AdminBannerServiceImpl.java
@@ -3,10 +3,15 @@
import cc.mrbird.febs.common.entity.FebsResponse;
import cc.mrbird.febs.common.entity.QueryRequest;
import cc.mrbird.febs.common.enumerates.DataDicEnum;
import cc.mrbird.febs.common.enumerates.FlowTypeEnum;
import cc.mrbird.febs.common.exception.FebsException;
import cc.mrbird.febs.common.utils.RedisUtils;
import cc.mrbird.febs.dapp.dto.TransferDto;
import cc.mrbird.febs.dapp.dto.ZhiyaAddDto;
import cc.mrbird.febs.dapp.entity.*;
import cc.mrbird.febs.dapp.mapper.*;
import cc.mrbird.febs.dapp.service.AsyncCjService;
import cc.mrbird.febs.dapp.service.DappWalletService;
import cc.mrbird.febs.dapp.service.IAdminBannerService;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateTime;
@@ -40,6 +45,9 @@
    private final AsyncCjService asyncCjService;
    private final DappMemberDao dappMemberDao;
    private final DappAchieveMapper dappAchieveMapper;
    private final DappWalletService dappWalletService;
    private final DappFundFlowDao dappFundFlowDao;
    private final RedisUtils redisUtils;
    @Override
    public IPage<PlatformBanner> findPlatformBannerInPage(PlatformBanner platformBannerEntity,
@@ -150,4 +158,58 @@
        }
        return dappMemberEntityIPage;
    }
    @Override
    public FebsResponse zhiyaAdd(ZhiyaAddDto zhiyaAddDto) {
        String address = zhiyaAddDto.getAddress();
        String hash = zhiyaAddDto.getZyHash();
        BigDecimal amount = new BigDecimal(zhiyaAddDto.getAmount()).setScale(2,BigDecimal.ROUND_DOWN);
        DappMemberEntity dappMemberEntity = dappMemberDao.selectByAddress(address, null);
        if(ObjectUtil.isEmpty(dappMemberEntity)){
            throw new FebsException("地址不存在");
        }
        if(BigDecimal.ZERO.compareTo(amount) >= 0){
            throw new FebsException("金额不正确");
        }
        QueryWrapper<DappFundFlowEntity> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("from_hash",hash);
        List<DappFundFlowEntity> dappFundFlowEntities = dappFundFlowDao.selectList(queryWrapper);
        if(CollUtil.isNotEmpty(dappFundFlowEntities)){
            throw new FebsException("HASH已经产生了质押记录");
        }
        DappFundFlowEntity fundFlow = new DappFundFlowEntity(
                dappMemberEntity.getId(),
                amount.negate(),
                FlowTypeEnum.ZHI_YA.getValue(),
                DappFundFlowEntity.WITHDRAW_STATUS_ING,
                BigDecimal.ZERO,
                null);
        dappFundFlowDao.insert(fundFlow);
        fundFlow.setFromHash(hash);
        fundFlow.setStatus(DappFundFlowEntity.WITHDRAW_STATUS_AGREE);
        fundFlow.setContent(FlowTypeEnum.ZHI_YA.getDescrition());
        dappFundFlowDao.updateById(fundFlow);
        //用户质押代币数量
        Long memberId = fundFlow.getMemberId();
        //新增一条用户质押记录
        DappAchieve dappAchieve = new DappAchieve();
        dappAchieve.setMemberId(memberId);
        dappAchieve.setAmount(amount);
        BigDecimal achieveReleasePercent = new BigDecimal("0.01").multiply(
                new BigDecimal(redisUtils.getString(DataDicEnum.GFA_ACHIEVE_RELEASE.getValue())).setScale(2,BigDecimal.ROUND_DOWN)
        );
        dappAchieve.setAmountDay(achieveReleasePercent.multiply(amount).setScale(2,BigDecimal.ROUND_DOWN));
        BigDecimal achieveOut = new BigDecimal(redisUtils.getString(DataDicEnum.GFA_ACHIEVE_OUT.getValue())).setScale(2,BigDecimal.ROUND_DOWN);
        dappAchieve.setAmountMax(achieveOut.multiply(amount).setScale(2,BigDecimal.ROUND_DOWN));
        dappAchieve.setState(DappAchieve.STATUS_ING);
        dappAchieve.setAmountDone(BigDecimal.ZERO);
        dappAchieveMapper.insert(dappAchieve);
        asyncCjService.insertTeamPerk(fundFlow.getId(), dappAchieve.getId());
        return new FebsResponse().success();
    }
}
src/main/resources/templates/febs/views/modules/banner/inviteList.html
@@ -106,10 +106,10 @@
                totalRow : true,
                cols: [[
                    {field: 'id', title: '', minWidth: 50,align:'left',totalRowText:"合计"},
                    {field: 'address', title: '地址', minWidth: 400,align:'center'},
                    {field: 'inviteId', title: '邀请码', minWidth: 50,align:'center'},
                    {field: 'refererId', title: '上级邀请码', minWidth: 50,align:'center'},
                    {field: 'refererAddress', title: '上级地址', minWidth: 400,align:'center'},
                    {field: 'address', title: '地址', minWidth: 200,align:'center'},
                    {field: 'inviteId', title: '邀请码', minWidth: 100,align:'center'},
                    {field: 'refererId', title: '上级邀请码', minWidth: 100,align:'center'},
                    {field: 'refererAddress', title: '上级地址', minWidth: 200,align:'center'},
                    {field: 'zhiYaAmount', title: '个人业绩', minWidth: 50,align:'center', totalRow:true},
                ]]
            });
src/main/resources/templates/febs/views/modules/banner/zhiyaAdd.html
New file
@@ -0,0 +1,72 @@
<div class="layui-fluid layui-anim febs-anim" id="zhiya-add" lay-title="质押恢复">
    <div class="layui-row layui-col-space8 febs-container">
        <form class="layui-form" action="" lay-filter="zhiya-add">
            <div class="layui-card">
                <div class="layui-card-body">
                    <blockquote class="layui-elem-quote blue-border">恢复</blockquote>
                    <div class="layui-row layui-col-space10 layui-form-item">
                        <div class="layui-col-lg6">
                            <label class="layui-form-label febs-form-item-require">地址:</label>
                            <div class="layui-input-block">
                                <input type="text" name="address" lay-verify="required" placeholder="" autocomplete="off" class="layui-input">
                            </div>
                        </div>
                    </div>
                    <div class="layui-row layui-col-space10 layui-form-item">
                        <div class="layui-col-lg6">
                            <label class="layui-form-label febs-form-item-require">质押金额:</label>
                            <div class="layui-input-block">
                                <input type="text" name="amount" lay-verify="required" placeholder="" autocomplete="off" class="layui-input">
                            </div>
                        </div>
                    </div>
                    <div class="layui-row layui-col-space10 layui-form-item">
                        <div class="layui-col-lg6">
                            <label class="layui-form-label febs-form-item-require">质押HASH:</label>
                            <div class="layui-input-block">
                                <input type="text" name="zyHash" lay-verify="required" placeholder="" autocomplete="off" class="layui-input">
                            </div>
                        </div>
                    </div>
                </div>
                <div class="layui-card-footer">
                    <button class="layui-btn layui-btn-normal" lay-submit="" lay-filter="zhiya-add-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,
            coinSetVo = [[${coinSetVo}]],
            validate = layui.validate,
            $view = $('#zhiya-add');
        form.render();
        form.on('submit(zhiya-add-form-submit)', function (data) {
            console.log(data);
            febs.post(ctx + 'admin/banner/zhiyaAdd', data.field, function (res) {
                febs.alert.success('操作成功');
            });
            return false;
        });
    });
</script>