| src/main/java/cc/mrbird/febs/dapp/controller/AdminBannerController.java | ●●●●● patch | view | raw | blame | history | |
| src/main/java/cc/mrbird/febs/dapp/controller/ViewBannerController.java | ●●●●● patch | view | raw | blame | history | |
| src/main/java/cc/mrbird/febs/dapp/dto/ZhiyaAddDto.java | ●●●●● patch | view | raw | blame | history | |
| src/main/java/cc/mrbird/febs/dapp/service/IAdminBannerService.java | ●●●●● patch | view | raw | blame | history | |
| src/main/java/cc/mrbird/febs/dapp/service/impl/AdminBannerServiceImpl.java | ●●●●● patch | view | raw | blame | history | |
| src/main/resources/templates/febs/views/modules/banner/inviteList.html | ●●●●● patch | view | raw | blame | history | |
| src/main/resources/templates/febs/views/modules/banner/zhiyaAdd.html | ●●●●● 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>