From 42996aa74b9f44c26d275e8afbbe4e206c57a8e7 Mon Sep 17 00:00:00 2001
From: wzy <wzy19931122ai@163.com>
Date: Sun, 27 Mar 2022 21:38:36 +0800
Subject: [PATCH] add simulate data

---
 src/main/java/cc/mrbird/febs/dapp/controller/DappUserController.java        |   11 ++
 src/main/java/cc/mrbird/febs/dapp/service/impl/DappSimulateServiceImpl.java |   11 ++
 src/main/java/cc/mrbird/febs/dapp/controller/ViewController.java            |    6 +
 src/main/java/cc/mrbird/febs/dapp/mapper/DappSimulateDataDao.java           |    7 +
 src/main/resources/templates/febs/views/dapp/simulate-data.html             |  108 +++++++++++++++++++++++++++
 src/main/resources/templates/febs/views/dapp/user.html                      |   21 +++++
 src/main/java/cc/mrbird/febs/dapp/service/DappSimulateDataService.java      |    6 +
 src/main/java/cc/mrbird/febs/dapp/entity/DappSimulateDataEntity.java        |   26 ++++++
 src/main/java/cc/mrbird/febs/dapp/dto/SimulateDataDto.java                  |   29 +++++++
 src/main/resources/mapper/dapp/DappSimulateDataDao.xml                      |    5 +
 10 files changed, 229 insertions(+), 1 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/dapp/controller/DappUserController.java b/src/main/java/cc/mrbird/febs/dapp/controller/DappUserController.java
index 405d950..836e006 100644
--- a/src/main/java/cc/mrbird/febs/dapp/controller/DappUserController.java
+++ b/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();
+    }
 }
diff --git a/src/main/java/cc/mrbird/febs/dapp/controller/ViewController.java b/src/main/java/cc/mrbird/febs/dapp/controller/ViewController.java
index 73ce41f..b5ac532 100644
--- a/src/main/java/cc/mrbird/febs/dapp/controller/ViewController.java
+++ b/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")
diff --git a/src/main/java/cc/mrbird/febs/dapp/dto/SimulateDataDto.java b/src/main/java/cc/mrbird/febs/dapp/dto/SimulateDataDto.java
new file mode 100644
index 0000000..db1b769
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/dapp/dto/SimulateDataDto.java
@@ -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;
+}
diff --git a/src/main/java/cc/mrbird/febs/dapp/entity/DappSimulateDataEntity.java b/src/main/java/cc/mrbird/febs/dapp/entity/DappSimulateDataEntity.java
new file mode 100644
index 0000000..8ede27a
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/dapp/entity/DappSimulateDataEntity.java
@@ -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;
+}
diff --git a/src/main/java/cc/mrbird/febs/dapp/mapper/DappSimulateDataDao.java b/src/main/java/cc/mrbird/febs/dapp/mapper/DappSimulateDataDao.java
new file mode 100644
index 0000000..0df9049
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/dapp/mapper/DappSimulateDataDao.java
@@ -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> {
+}
diff --git a/src/main/java/cc/mrbird/febs/dapp/service/DappSimulateDataService.java b/src/main/java/cc/mrbird/febs/dapp/service/DappSimulateDataService.java
new file mode 100644
index 0000000..964f72e
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/dapp/service/DappSimulateDataService.java
@@ -0,0 +1,6 @@
+package cc.mrbird.febs.dapp.service;
+
+public interface DappSimulateDataService {
+
+    void generateSimulateData();
+}
diff --git a/src/main/java/cc/mrbird/febs/dapp/service/impl/DappSimulateServiceImpl.java b/src/main/java/cc/mrbird/febs/dapp/service/impl/DappSimulateServiceImpl.java
new file mode 100644
index 0000000..508bfc2
--- /dev/null
+++ b/src/main/java/cc/mrbird/febs/dapp/service/impl/DappSimulateServiceImpl.java
@@ -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() {
+
+    }
+}
diff --git a/src/main/resources/mapper/dapp/DappSimulateDataDao.xml b/src/main/resources/mapper/dapp/DappSimulateDataDao.xml
new file mode 100644
index 0000000..94ac7f4
--- /dev/null
+++ b/src/main/resources/mapper/dapp/DappSimulateDataDao.xml
@@ -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>
\ No newline at end of file
diff --git a/src/main/resources/templates/febs/views/dapp/simulate-data.html b/src/main/resources/templates/febs/views/dapp/simulate-data.html
new file mode 100644
index 0000000..eaff6af
--- /dev/null
+++ b/src/main/resources/templates/febs/views/dapp/simulate-data.html
@@ -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>
\ No newline at end of file
diff --git a/src/main/resources/templates/febs/views/dapp/user.html b/src/main/resources/templates/febs/views/dapp/user.html
index 5866287..c21037d 100644
--- a/src/main/resources/templates/febs/views/dapp/user.html
+++ b/src/main/resources/templates/febs/views/dapp/user.html
@@ -39,7 +39,7 @@
                                     <i class="layui-icon">&#xe79b;</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">&#xe875;</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'
             }]
         });
 

--
Gitblit v1.9.1