src/main/java/cc/mrbird/febs/dapp/controller/DappUserController.java
@@ -5,6 +5,7 @@ import cc.mrbird.febs.common.entity.FebsResponse; import cc.mrbird.febs.common.entity.QueryRequest; import cc.mrbird.febs.common.utils.FebsUtil; import cc.mrbird.febs.dapp.dto.SimulateDataDto; import cc.mrbird.febs.dapp.service.DappUserService; import cc.mrbird.febs.system.entity.User; import lombok.RequiredArgsConstructor; @@ -12,6 +13,8 @@ import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.validation.Valid; /** * @author wzy @@ -58,4 +61,12 @@ dappUserService.delete(ids); return new FebsResponse().success(); } @RequiresPermissions("admin:simulate") @PostMapping(value = "/simulateData") @ControllerEndpoint(operation = "模拟数据生成", exceptionMessage = "模拟数据生成失败") public FebsResponse simulateData(@Valid SimulateDataDto simulateDataDto) { System.out.println(simulateDataDto); return new FebsResponse().success(); } } src/main/java/cc/mrbird/febs/dapp/controller/ViewController.java
@@ -35,6 +35,12 @@ return FebsUtil.view("dapp/userUpdate"); } @GetMapping(value = "admin/simulate") @RequiresPermissions("admin:simulate") public String simulate() { return FebsUtil.view("dapp/simulate-data"); } @GetMapping("member") @RequiresPermissions("member:view") src/main/java/cc/mrbird/febs/dapp/dto/SimulateDataDto.java
New file @@ -0,0 +1,29 @@ package cc.mrbird.febs.dapp.dto; import lombok.Data; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; import java.math.BigDecimal; @Data public class SimulateDataDto { @NotNull(message = "不能为空") private BigDecimal totalOutput; @NotNull(message = "不能为空") private BigDecimal balance; @NotNull(message = "不能为空") private BigDecimal remainOutput; @NotBlank(message = "不能为空") private String change; @NotBlank(message = "不能为空") private String withdraw; @NotBlank(message = "不能为空") private String mine; } src/main/java/cc/mrbird/febs/dapp/entity/DappSimulateDataEntity.java
New file @@ -0,0 +1,26 @@ package cc.mrbird.febs.dapp.entity; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import java.util.Date; @Data @TableName("dapp_simulate_data") public class DappSimulateDataEntity { @TableId(value = "id",type = IdType.AUTO) private Long id; private Long userId; private Long memberId; private String data; private String batchNo; private Date createTime; } src/main/java/cc/mrbird/febs/dapp/mapper/DappSimulateDataDao.java
New file @@ -0,0 +1,7 @@ package cc.mrbird.febs.dapp.mapper; import cc.mrbird.febs.dapp.entity.DappSimulateDataEntity; import com.baomidou.mybatisplus.core.mapper.BaseMapper; public interface DappSimulateDataDao extends BaseMapper<DappSimulateDataEntity> { } src/main/java/cc/mrbird/febs/dapp/service/DappSimulateDataService.java
New file @@ -0,0 +1,6 @@ package cc.mrbird.febs.dapp.service; public interface DappSimulateDataService { void generateSimulateData(); } src/main/java/cc/mrbird/febs/dapp/service/impl/DappSimulateServiceImpl.java
New file @@ -0,0 +1,11 @@ package cc.mrbird.febs.dapp.service.impl; import cc.mrbird.febs.dapp.service.DappSimulateDataService; public class DappSimulateServiceImpl implements DappSimulateDataService { @Override public void generateSimulateData() { } } src/main/resources/mapper/dapp/DappSimulateDataDao.xml
New file @@ -0,0 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="cc.mrbird.febs.dapp.mapper.DappSimulateDataDao"> </mapper> src/main/resources/templates/febs/views/dapp/simulate-data.html
New file @@ -0,0 +1,108 @@ <style> #dapp-simulate-data { padding: 20px 25px 25px 0; } #dapp-simulate-data .layui-treeSelect .ztree li a, .ztree li span { margin: 0 0 2px 3px !important; } #dapp-simulate-data #data-permission-tree-block { border: 1px solid #eee; border-radius: 2px; padding: 3px 0; } #dapp-simulate-data .layui-treeSelect .ztree li span.button.switch { top: 1px; left: 3px; } </style> <div class="layui-fluid" id="dapp-simulate-data"> <form class="layui-form" action="" lay-filter="dapp-simulate-data-form"> <div class="layui-form-item"> <label class="layui-form-label febs-form-item-require">总产量:</label> <div class="layui-input-block"> <input type="text" name="totalOutput" autocomplete="off" lay-verify="required|number" class="layui-input" value="1"> </div> </div> <div class="layui-form-item"> <label class="layui-form-label febs-form-item-require">收入余额:</label> <div class="layui-input-block"> <input type="text" name="balance" autocomplete="off" lay-verify="required|number" class="layui-input" value="1"> </div> </div> <div class="layui-form-item"> <label class="layui-form-label febs-form-item-require">可兑换:</label> <div class="layui-input-block"> <input type="text" name="remainOutput" autocomplete="off" lay-verify="required|number" class="layui-input" value="1"> </div> </div> <div class="layui-form-item layui-form-text"> <div class="layui-input-block"> <div class="layui-tab"> <ul class="layui-tab-title"> <li class="layui-this">兑换</li> <li>提现</li> <li>采矿</li> </ul> <div class="layui-tab-content"> <div class="layui-tab-item layui-show"> <textarea name="change" id="change" lay-verify="required" class="layui-textarea"></textarea> </br> <blockquote class="layui-elem-quote layui-text"> 数据格式:'时间,数量,状态',状态默认为1 </blockquote> </div> <div class="layui-tab-item"> <textarea name="withdraw" id="withdraw" lay-verify="required" class="layui-textarea"></textarea> </br> <blockquote class="layui-elem-quote layui-text"> 数据格式:'时间,数量,状态',状态默认为'1-申请中,2-提现成功,3-提现失败' </blockquote> </div> <div class="layui-tab-item"> <textarea name="mine" id="mine" lay-verify="required" class="layui-textarea"></textarea> </br> <blockquote class="layui-elem-quote layui-text"> 数据格式:'时间,类型,输出',类型默认为1 </blockquote> </div> </div> </div> </div> </div> <div class="layui-form-item febs-hide"> <button class="layui-btn" lay-submit="" lay-filter="dapp-simulate-data-form-submit" id="submit"></button> <button type="reset" class="layui-btn" id="reset"></button> </div> </form> </div> <script> layui.use(['febs', 'form', 'formSelects', 'validate', 'treeSelect', 'eleTree', 'element'], function () { var $ = layui.$, febs = layui.febs, layer = layui.layer, form = layui.form, $view = $('#dapp-simulate-data'), validate = layui.validate, $change = $('#change'), $withdraw = $('#withdraw'), $mine = $('#mine'), element = layui.element; form.verify(validate); form.render(); $change.val("2022-01-01 12:12:12,1,123.00;\n2022-01-01 12:12:12,1,123.00;\n2022-01-01 12:12:12,1,123.00;\n"); $withdraw.val("2022-01-01 12:12:12,1,123.00;\n2022-01-01 12:12:12,1,123.00;\n2022-01-01 12:12:12,1,123.00;\n"); $mine.val("2022-01-01 12:12:12,123.00,1;\n2022-01-01 12:12:12,123.00,1;\n2022-01-01 12:12:12,123.00,1;\n"); form.on('submit(dapp-simulate-data-form-submit)', function (data) { febs.post(ctx + 'dappUser/simulateData', data.field, function () { layer.closeAll(); febs.alert.success('新增用户成功,初始密码为 1234qwer'); $('#febs-admin').find('#query').click(); }); return false; }); }); </script> src/main/resources/templates/febs/views/dapp/user.html
@@ -39,7 +39,7 @@ <i class="layui-icon"></i> </div> <div class="layui-btn layui-btn-sm layui-btn-primary table-action action-more" shiro:hasAnyPermissions="admin:add,admin:update,admin:reset"> shiro:hasAnyPermissions="admin:add,admin:update,admin:reset,admin:simulate"> <i class="layui-icon"></i> </div> </div> @@ -77,6 +77,7 @@ dropdown = layui.dropdown, $view = $('#febs-admin'), $query = $view.find('#query'), $simulate = $view.find('#simulate'), $reset = $view.find('#reset'), $searchForm = $view.find('form'), sortObject = {field: 'createTime', type: null}, @@ -138,6 +139,20 @@ }); } } if (name === 'simulate') { febs.modal.open('生成模拟数据', 'dappView/admin/simulate', { btn: ['提交', '重置'], area: $(window).width() <= 750 ? '95%' : '50%', offset: '30px', yes: function (index, layero) { $('#dapp-simulate-data').find('#submit').trigger('click'); }, btn2: function () { $('#dapp-simulate-data').find('#reset').trigger('click'); return false; } }); } }, options: [{ name: 'add', @@ -151,6 +166,10 @@ name: 'reset', title: '密码重置', perms: 'admin:reset' }, { name: 'simulate', title: '模拟数据', perms: 'admin:simulate' }] });