20 files modified
1 files added
| | |
| | | log.error("| |_ / /\\ | | | |"); |
| | | log.error("|_| /_/--\\ |_| |_|__"); |
| | | log.error(" "); |
| | | log.error("BNBWEB启动失败,{}", e.getMessage()); |
| | | log.error("系统启动失败,{}", e.getMessage()); |
| | | log.error("Redis连接异常,请检查Redis连接配置并确保Redis服务已启动"); |
| | | // 关闭 FEBS |
| | | context.close(); |
| | |
| | | log.info("/ /` / / \\ | |\\/| | |_) | | | |_ | | | |_ "); |
| | | log.info("\\_\\_, \\_\\_/ |_| | |_| |_|__ |_|__ |_| |_|__ "); |
| | | log.info(" "); |
| | | log.info("BNBWEB 权限系统启动完毕,地址:{}", url); |
| | | log.info("系统启动完毕,地址:{}", url); |
| | | |
| | | boolean auto = febsProperties.isAutoOpenBrowser(); |
| | | if (auto && StringUtils.equalsIgnoreCase(active, FebsConstant.DEVELOP)) { |
| | |
| | | Map<String, Object> data = getDataTable(dappMemberService.getTeamInfo(dappMemberEntity,request)); |
| | | return new FebsResponse().success().data(data); |
| | | } |
| | | |
| | | /** |
| | | * 用户列表-购买记录 |
| | | */ |
| | | @GetMapping("memberNodeInfo") |
| | | public FebsResponse memberNodeInfo(DappMemberEntity dappMemberEntity, QueryRequest request, Integer parentId) { |
| | | if (parentId == null) { |
| | | ViewController.memberNodeInfoMemberId = 0L; |
| | | } |
| | | dappMemberEntity.setId(ViewController.memberNodeInfoMemberId); |
| | | Map<String, Object> data = getDataTable(dappMemberService.getMemberNodeInfo(dappMemberEntity,request)); |
| | | return new FebsResponse().success().data(data); |
| | | } |
| | | } |
| | |
| | | String value = symbolPrice.getValue() == null ? "0" : symbolPrice.getValue(); |
| | | adminSystemFeeVo.setSymbolPrice(value); |
| | | } |
| | | |
| | | DataDictionaryCustom directProfitDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( |
| | | DataDictionaryEnum.DIRECT_PROFIT.getType(), DataDictionaryEnum.DIRECT_PROFIT.getCode()); |
| | | if (ObjectUtil.isNotEmpty(directProfitDic)) { |
| | | String value = directProfitDic.getValue() == null ? "0" : directProfitDic.getValue(); |
| | | adminSystemFeeVo.setDirectProfit(value); |
| | | } |
| | | model.addAttribute("systemFee", adminSystemFeeVo); |
| | | return FebsUtil.view("dapp/system-fee-set"); |
| | | } |
| | |
| | | teamInfoMemberId = id; |
| | | return FebsUtil.view("dapp/member-teamInfo"); |
| | | } |
| | | |
| | | |
| | | |
| | | public static long memberNodeInfoMemberId; |
| | | /** |
| | | * 用户列表-购买记录 |
| | | * @param id |
| | | * @param model |
| | | * @return |
| | | */ |
| | | @GetMapping("/memberNodeInfo/{id}") |
| | | @RequiresPermissions("memberNodeInfo:view") |
| | | public String memberNodeInfo(@PathVariable long id, Model model) { |
| | | memberNodeInfoMemberId = id; |
| | | return FebsUtil.view("dapp/member-node-Info"); |
| | | } |
| | | } |
| | |
| | | |
| | | @TableField(exist = false) |
| | | private Long systemProfitId; |
| | | |
| | | @TableField(exist = false) |
| | | private int memberNodeCnt; |
| | | |
| | | @TableField(exist = false) |
| | | private BigDecimal memberNodeSumPrice; |
| | | } |
| | |
| | | package cc.mrbird.febs.dapp.mapper; |
| | | |
| | | import cc.mrbird.febs.dapp.entity.DappMemberEntity; |
| | | import cc.mrbird.febs.dapp.entity.DappMemberNodeEntity; |
| | | import cc.mrbird.febs.dapp.vo.AdminTeamInfoVo; |
| | | import cc.mrbird.febs.dapp.vo.DappMemberNodeVo; |
| | | import com.baomidou.mybatisplus.core.mapper.BaseMapper; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import org.apache.ibatis.annotations.Param; |
| | | |
| | | import java.util.List; |
| | |
| | | |
| | | DappMemberNodeEntity selectNodeByMemberIdAndNodeCode(@Param("memberId")Long id, @Param("nodeCode")String code); |
| | | |
| | | IPage<DappMemberNodeVo> findMemberNodeInPage(Page<DappMemberNodeVo> page, @Param("record")DappMemberEntity dappMemberEntity); |
| | | } |
| | |
| | | FebsResponse getMemberNode(); |
| | | |
| | | FebsResponse getMemberInfo(); |
| | | |
| | | IPage<DappMemberNodeVo> getMemberNodeInfo(DappMemberEntity dappMemberEntity, QueryRequest request); |
| | | } |
| | |
| | | if(CollUtil.isNotEmpty(records)){ |
| | | for(DappMemberEntity memberEntity : records){ |
| | | Long memberId = memberEntity.getId(); |
| | | |
| | | DappSystemProfit dappSystemProfit = dappSystemProfitDao.selectByMemberIdAndState(memberId,DappSystemProfit.STATE_IN); |
| | | memberEntity.setSystemProfitId(ObjectUtil.isEmpty(dappSystemProfit) ? 0L : dappSystemProfit.getId()); |
| | | //直推收益 |
| | | BigDecimal directProfit = dappFundFlowDao.selectSumAmountByMemberIdAndTypeAndStatus(memberId,3,2); |
| | | memberEntity.setDirectProfit(directProfit); |
| | | BigDecimal levelProfit = dappFundFlowDao.selectSumAmountByMemberIdAndTypeAndStatus(memberId,4,2); |
| | | memberEntity.setLevelProfit(levelProfit); |
| | | BigDecimal luckyProfit = dappFundFlowDao.selectSumAmountByMemberIdAndTypeAndStatus(memberId,7,2); |
| | | memberEntity.setLuckyProfit(luckyProfit); |
| | | //购买节点数量 |
| | | List<DappMemberNodeVo> dappMemberNodeVos = dappMemberNodeMapper.selectListByMemberId(memberId); |
| | | memberEntity.setMemberNodeCnt(CollUtil.isEmpty(dappMemberNodeVos) ? 0 : dappMemberNodeVos.size()); |
| | | |
| | | BigDecimal memberNodeSumPrice = BigDecimal.ZERO; |
| | | if(CollUtil.isNotEmpty(dappMemberNodeVos)){ |
| | | for(DappMemberNodeVo dappMemberNodeVo : dappMemberNodeVos){ |
| | | BigDecimal nodePrice = dappMemberNodeVo.getNodePrice(); |
| | | memberNodeSumPrice = memberNodeSumPrice.add(nodePrice); |
| | | } |
| | | } |
| | | memberEntity.setMemberNodeSumPrice(memberNodeSumPrice.setScale(8,BigDecimal.ROUND_DOWN)); |
| | | } |
| | | } |
| | | return dappMemberEntityIPage; |
| | |
| | | DataDictionaryCustom symbolPriceDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.SYMBOL_PRICE.getType(), DataDictionaryEnum.SYMBOL_PRICE.getCode()); |
| | | symbolPriceDic.setValue(symbolPrice); |
| | | dataDictionaryCustomMapper.updateById(symbolPriceDic); |
| | | |
| | | String directProfit = adminSystemFeeVo.getDirectProfit(); |
| | | DataDictionaryCustom directProfitDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode( |
| | | DataDictionaryEnum.DIRECT_PROFIT.getType(), DataDictionaryEnum.DIRECT_PROFIT.getCode()); |
| | | directProfitDic.setValue(directProfit); |
| | | dataDictionaryCustomMapper.updateById(directProfitDic); |
| | | } |
| | | |
| | | @Override |
| | |
| | | return new FebsResponse().success().data(dappMemberInfoVo); |
| | | } |
| | | |
| | | @Override |
| | | public IPage<DappMemberNodeVo> getMemberNodeInfo(DappMemberEntity dappMemberEntity, QueryRequest request) { |
| | | Page<DappMemberNodeVo> page = new Page<>(request.getPageNum(), request.getPageSize()); |
| | | return dappMemberNodeMapper.findMemberNodeInPage(page, dappMemberEntity); |
| | | } |
| | | |
| | | public TeamListVo buildTeamMatrix(Long memberId) { |
| | | DappMemberEntity member = dappMemberDao.selectById(memberId); |
| | | TeamListVo teamListVo = new TeamListVo(); |
| | |
| | | private String serviceFee; |
| | | |
| | | private String symbolPrice; |
| | | //直推奖励百分比 |
| | | private String directProfit; |
| | | } |
| | |
| | | package cc.mrbird.febs.dapp.vo; |
| | | |
| | | import com.fasterxml.jackson.annotation.JsonFormat; |
| | | import io.swagger.annotations.ApiModel; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import lombok.Data; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.util.Date; |
| | | |
| | | @Data |
| | | @ApiModel(value = "DappMemberNodeVo", description = "会员节点购买信息") |
| | |
| | | */ |
| | | @ApiModelProperty(value = "节点价格") |
| | | private BigDecimal nodePrice; |
| | | /** |
| | | * 购买时间 |
| | | */ |
| | | @ApiModelProperty(value = "购买时间") |
| | | @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") |
| | | private Date createTime; |
| | | } |
| | |
| | | publisher-confirm-type: correlated |
| | | |
| | | system: |
| | | online-transfer: true |
| | | online-transfer: false |
| | | chain-listener: false |
| | | reset-job: false |
| | | quartz-job: false |
| | |
| | | <select id="selectListByMemberId" resultType="cc.mrbird.febs.dapp.vo.DappMemberNodeVo"> |
| | | select |
| | | a.node_code nodeCode, |
| | | a.create_time createTime, |
| | | b.node_name nodeName, |
| | | a.node_price nodePrice |
| | | from dapp_member_node a |
| | |
| | | and a.node_code = #{nodeCode} |
| | | </select> |
| | | |
| | | |
| | | |
| | | <select id="findMemberNodeInPage" resultType="cc.mrbird.febs.dapp.vo.DappMemberNodeVo"> |
| | | select |
| | | a.node_code nodeCode, |
| | | a.create_time createTime, |
| | | b.node_name nodeName, |
| | | a.node_price nodePrice |
| | | from dapp_member_node a |
| | | inner join dapp_node_order b on a.node_id = b.id |
| | | where a.member_id = #{record.id} |
| | | order by a.create_time desc |
| | | </select> |
| | | |
| | | </mapper> |
| | |
| | | <html xmlns:th="http://www.thymeleaf.org"> |
| | | <head> |
| | | <meta charset="utf-8"> |
| | | <title>BNBWEB 权限系统</title> |
| | | <title>ANT 权限系统</title> |
| | | <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> |
| | | <meta name="renderer" content="webkit"> |
| | | <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> |
| | |
| | | <html xmlns:th="http://www.thymeleaf.org"> |
| | | <head> |
| | | <meta charset="utf-8"> |
| | | <title>BNBWEB 权限系统</title> |
| | | <title>ANT 权限系统</title> |
| | | <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> |
| | | <meta name="renderer" content="webkit"> |
| | | <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> |
| | |
| | | <html xmlns:th="http://www.thymeleaf.org"> |
| | | <head> |
| | | <meta charset="utf-8"> |
| | | <title>BNBWEB 权限系统</title> |
| | | <title>ANT 权限系统</title> |
| | | <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> |
| | | <meta name="renderer" content="webkit"> |
| | | <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> |
| New file |
| | |
| | | <div className="layui-fluid layui-anim febs-anim" id="febs-memberNode-info" lay-title="购买记录"> |
| | | <div className="layui-row febs-container"> |
| | | <div className="layui-col-md12"> |
| | | <div className="layui-card"> |
| | | <div className="layui-card-body febs-table-full"> |
| | | <table lay-filter="memberNodeInfoChild" lay-data="{id: 'memberNodeInfoChild'}"></table> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <script data-th-inline="none" type="text/javascript"> |
| | | layui.use(['jquery', 'form', 'table', 'febs'], function () { |
| | | var $ = layui.jquery, |
| | | febs = layui.febs, |
| | | form = layui.form, |
| | | table = layui.table, |
| | | $view = $('#febs-memberNode-info'), |
| | | tableIns; |
| | | |
| | | form.render(); |
| | | |
| | | initTable(); |
| | | |
| | | function initTable() { |
| | | tableIns = febs.table.init({ |
| | | elem: $view.find('table'), |
| | | id: 'memberNodeInfoChild', |
| | | url: ctx + 'member/memberNodeInfo?parentId=1', |
| | | totalRow: true, |
| | | cols: [[ |
| | | {field: 'nodeName', title: '节点名称', minWidth: 100}, |
| | | {field: 'nodePrice', title: '价格', minWidth: 100, totalRow: true}, |
| | | {field: 'createTime', title: '购买时间', minWidth: 100}, |
| | | ]] |
| | | }); |
| | | } |
| | | |
| | | }) |
| | | </script> |
| | |
| | | <div class="layui-col-md10"> |
| | | <div class="layui-form-item"> |
| | | <div class="layui-inline"> |
| | | <div class="layui-input-inline"> |
| | | <input type="text" name="inviteId" autocomplete="off" placeholder="输入地址或邀请码" class="layui-input"> |
| | | <label class="layui-form-label">地址邀请码:</label> |
| | | <div class="layui-input-inline"><input type="text" name="inviteId" autocomplete="off" placeholder="输入地址或邀请码" class="layui-input"> |
| | | </div> |
| | | </div> |
| | | <!-- <div class="layui-inline">--> |
| | |
| | | maxmin: true, |
| | | }); |
| | | } |
| | | |
| | | if (layEvent === 'memberNodeInfo') { |
| | | febs.modal.open( '购买记录', 'dappView/memberNodeInfo/' + data.id, { |
| | | maxmin: true, |
| | | }); |
| | | } |
| | | if (layEvent === 'accountStatus') { |
| | | var text = "是否启用该用户?"; |
| | | if (data.accountStatus === 1) { |
| | |
| | | url: ctx + 'member/list', |
| | | totalRow: true, |
| | | cols: [[ |
| | | // {type: 'checkbox'}, |
| | | // {type: 'numbers'}, |
| | | {title: '代理级别', |
| | | templet: function (d) { |
| | | return '<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="teamInfo" shiro:hasPermission="teamInfo:view"><span>'+d.accountType+'</span></button>' |
| | | return '<span class="layui-btn layui-btn-normal layui-btn-xs">'+d.accountType+'</span>' |
| | | },minWidth: 130,align:'center', totalRowText: '合计'}, |
| | | // {title: '地址', templet: '#approve-list', minWidth: 400}, |
| | | {field: 'address', title: '地址', minWidth: 400}, |
| | | {field: 'chainType', title: '所属链', minWidth: 130}, |
| | | {field: 'activeStatus', title: '加入动能', |
| | | {field: 'memberNodeSumPrice', title: '拥有积分', minWidth: 130}, |
| | | {title: '购买节点数量', |
| | | templet: function (d) { |
| | | if (d.activeStatus === 1) { |
| | | return '<span style="color:green;">'+d.systemProfitId+'</span>' |
| | | } else{ |
| | | return '' |
| | | } |
| | | }, minWidth: 80,align:'center'}, |
| | | return '<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="memberNodeInfo" shiro:hasPermission="memberNodeInfo:view"><span>'+d.memberNodeCnt+'</span></button>' |
| | | },minWidth: 130,align:'center'}, |
| | | {field: 'directProfit', title: '直推收益', minWidth: 100, totalRow: true}, |
| | | {field: 'levelProfit', title: '层级收益', minWidth: 100, totalRow: true}, |
| | | {field: 'luckyProfit', title: '出局收益', minWidth: 100, totalRow: true}, |
| | | {field: 'inviteId', title: '邀请码', minWidth: 100}, |
| | | {field: 'refererId', title: '上级邀请码', minWidth: 100}, |
| | | {field: 'createTime', title: '创建时间', minWidth: 180} |
| | |
| | | function getQueryParams() { |
| | | return { |
| | | inviteId: $searchForm.find('input[name="inviteId"]').val().trim(), |
| | | // changeAble: $searchForm.find("select[name='changeAble']").val(), |
| | | accountStatus: $searchForm.find("select[name='accountStatus']").val(), |
| | | withdrawAble: $searchForm.find("select[name='withdrawAble']").val(), |
| | | invalidate_ie_cache: new Date() |
| | |
| | | <div class="layui-row"> |
| | | <div class="layui-col-md10"> |
| | | <div class="layui-form-item"> |
| | | |
| | | <div class="layui-inline"> |
| | | <label class="layui-form-label">地址:</label> |
| | | <div class="layui-input-inline"> |
| | | <input type="text" name="systemProfitId" autocomplete="off" placeholder="输入动能编号" class="layui-input"> |
| | | <input type="text" placeholder="输入地址" name="address" autocomplete="off" class="layui-input"> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="layui-inline"> |
| | | <label class="layui-form-label">转账HASH:</label> |
| | | <div class="layui-input-inline"> |
| | | <input type="text" name="address" autocomplete="off" placeholder="输入地址" class="layui-input"> |
| | | <input type="text" placeholder="输入转账HASH" name="fromHash" autocomplete="off" class="layui-input"> |
| | | </div> |
| | | </div> |
| | | |
| | | <div class="layui-inline"> |
| | | <div class="layui-input-inline"> |
| | | <input type="text" name="fromHash" autocomplete="off" placeholder="输入FromHash" class="layui-input"> |
| | | </div> |
| | | </div> |
| | | <div class="layui-inline"> |
| | | <label class="layui-form-label layui-form-label-sm">类型</label> |
| | | <label class="layui-form-label">类型:</label> |
| | | <div class="layui-input-inline"> |
| | | <select name="type"> |
| | | <!-- 1-加入动能 2-技术方收益 3-直推收益 4-层级收益 5-剩余层级收益给系统 6-复投动能 7-动能收益--> |
| | | <option value=""></option> |
| | | <option value="1">加入动能</option> |
| | | <option value="2">技术方收益</option> |
| | | <option value="1">购买节点</option> |
| | | <option value="3">直推收益</option> |
| | | <option value="4">层级收益</option> |
| | | <option value="5">剩余层级收益</option> |
| | | <option value="6">复投动能</option> |
| | | <option value="7">出局收益</option> |
| | | </select> |
| | | </div> |
| | | </div> |
| | | <!-- <div class="layui-inline">--> |
| | | <!-- <label class="layui-form-label layui-form-label-sm">可兑换</label>--> |
| | | <!-- <div class="layui-input-inline">--> |
| | | <!-- <select name="changeAble">--> |
| | | <!-- <option value=""></option>--> |
| | | <!-- <option value="2">否</option>--> |
| | | <!-- <option value="1">是</option>--> |
| | | <!-- </select>--> |
| | | <!-- </div>--> |
| | | <!-- </div>--> |
| | | <!-- <div class="layui-inline">--> |
| | | <!-- <label class="layui-form-label layui-form-label-sm">可提现</label>--> |
| | | <!-- <div class="layui-input-inline">--> |
| | | <!-- <select name="withdrawAble">--> |
| | | <!-- <option value=""></option>--> |
| | | <!-- <option value="2">否</option>--> |
| | | <!-- <option value="1">是</option>--> |
| | | <!-- </select>--> |
| | | <!-- </div>--> |
| | | <!-- </div>--> |
| | | </div> |
| | | </div> |
| | | <div class="layui-col-md2 layui-col-sm12 layui-col-xs12 table-action-area"> |
| | |
| | | </div> |
| | | </div> |
| | | </div> |
| | | <style> |
| | | .layui-table-cell { |
| | | height: auto !important; |
| | | } |
| | | </style> |
| | | <script type="text/html" id="flow-status"> |
| | | {{# |
| | | var status = { |
| | | 2: {title: '成功'}, |
| | | 1: {title: '进行中'}, |
| | | 3: {title: '取消'} |
| | | }[d.status]; |
| | | }} |
| | | <span>{{ status.title }}</span> |
| | | </script> |
| | | <script type="text/html" id="flow-type"> |
| | | {{# |
| | | var type = { |
| | | 1: {title: '加入动能'}, |
| | | 2: {title: '技术方收益'}, |
| | | 1: {title: '购买节点'}, |
| | | 3: {title: '直推收益'}, |
| | | 4: {title: '层级收益'}, |
| | | 5: {title: '剩余层级收益'}, |
| | | 6: {title: '复投动能'}, |
| | | 7: {title: '出局收益'}, |
| | | }[d.type]; |
| | | }} |
| | | <span>{{ type.title }}</span> |
| | |
| | | <span class="layui-badge febs-bg-{{status.color}}">{{ status.title }}</span> |
| | | </script> |
| | | <script data-th-inline="none" type="text/javascript"> |
| | | layui.use(['dropdown', 'jquery', 'laydate', 'form', 'table', 'febs', 'treeSelect'], function () { |
| | | layui.use(['jquery', 'form', 'table', 'febs'], function () { |
| | | var $ = layui.jquery, |
| | | laydate = layui.laydate, |
| | | febs = layui.febs, |
| | | form = layui.form, |
| | | table = layui.table, |
| | | dropdown = layui.dropdown, |
| | | $view = $('#febs-money-change'), |
| | | $query = $view.find('#query'), |
| | | $reset = $view.find('#reset'), |
| | |
| | | table.on('tool(moneyChangeTable)', function (obj) { |
| | | var data = obj.data, |
| | | layEvent = obj.event; |
| | | // if (layEvent === 'transferManual') { |
| | | // febs.modal.confirm('人工操作', '是否人工转账?', function () { |
| | | // transferManual("flow/withdrawAgree/" + data.id); |
| | | // }); |
| | | // } |
| | | if (layEvent === 'transferManual') { |
| | | febs.modal.confirm('人工操作', '是否人工转账?', function () { |
| | | transferManual(data.id); |
| | | }); |
| | | } |
| | | }); |
| | | |
| | | function transferManual(id) { |
| | | febs.get(ctx + 'flow/transferManual/' + id, null, function () { |
| | | febs.alert.success('操作成功'); |
| | | $reset.click(); |
| | | }); |
| | | } |
| | | |
| | | table.on('sort(moneyChangeTable)', function (obj) { |
| | | sortObject = obj; |
| | | tableIns.reload({ |
| | | initSort: obj, |
| | | where: $.extend(getQueryParams(), { |
| | | field: obj.field, |
| | | order: obj.type |
| | | }) |
| | | }); |
| | | }); |
| | | |
| | | $query.on('click', function () { |
| | | var params = $.extend(getQueryParams(), {field: sortObject.field, order: sortObject.type}); |
| | |
| | | url: ctx + 'flow/fundFlow', |
| | | cols: [[ |
| | | {field: 'address', title: '地址', minWidth: 400}, |
| | | {field: 'systemProfitId', title: '动能编号', minWidth: 100}, |
| | | {title: '类型', minWidth: 100,templet: '#flow-type',align:'center'}, |
| | | {field: 'amount', title: '金额', |
| | | templet: function (d) { |
| | |
| | | return d.amount |
| | | } |
| | | }, minWidth: 80,align:'center'}, |
| | | // {field: 'fee', title: '手续费', minWidth: 80}, |
| | | {field: 'createTime', title: '创建时间', minWidth: 150}, |
| | | {title: '状态', templet: '#status-able', minWidth: 80}, |
| | | {field: 'fromHash', title: 'FromHash', minWidth: 150}, |
| | | // {title: '操作', |
| | | // templet: function (d) { |
| | | // if(d.status == 1){ |
| | | // return '<button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="transferManual" shiro:hasPermission="transferManual:update">手动转账</button>' |
| | | // }else{ |
| | | // return '' |
| | | // } |
| | | // },minWidth: 100,align:'center'} |
| | | {field: 'fromHash', title: '转账HASH', minWidth: 150}, |
| | | ]] |
| | | }); |
| | | } |
| | | |
| | | function getQueryParams() { |
| | | return { |
| | | systemProfitId: $searchForm.find('input[name="systemProfitId"]').val().trim(), |
| | | address: $searchForm.find('input[name="address"]').val().trim(), |
| | | fromHash: $searchForm.find('input[name="fromHash"]').val().trim(), |
| | | type: $searchForm.find("select[name='type']").val(), |
| | | // accountStatus: $searchForm.find("select[name='accountStatus']").val(), |
| | | // withdrawAble: $searchForm.find("input[name='withdrawAble']").val(), |
| | | // invalidate_ie_cache: new Date() |
| | | type: $searchForm.find("select[name='type']").val() |
| | | }; |
| | | } |
| | | |
| | | function changeStatus(url) { |
| | | febs.post(ctx + url, null, function () { |
| | | febs.alert.success('设置成功'); |
| | | $query.click(); |
| | | }); |
| | | } |
| | | }) |
| | | </script> |
| | |
| | | <form class="layui-form" action="" lay-filter="system-fee-set-form"> |
| | | <div class="layui-card"> |
| | | <div class="layui-card-body"> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label ">每日返利的产矿百分比:</label> |
| | | <div class="layui-input-block"> |
| | | <input type="text" name="rebatePercent" data-th-id="${systemFee.rebatePercent}" |
| | | autocomplete="off" class="layui-input" > |
| | | </div> |
| | | <!-- <div class="layui-word-aux" style="margin-left: 150px;">--> |
| | | <!-- 【填写整数】每日订单金额的百分之几,增加到积分池:直接输入百分比,例如25%,直接输入25--> |
| | | <!-- <div class="layui-form-item">--> |
| | | <!-- <label class="layui-form-label ">每日返利的产矿百分比:</label>--> |
| | | <!-- <div class="layui-input-block">--> |
| | | <!-- <input type="text" name="rebatePercent" data-th-id="${systemFee.rebatePercent}"--> |
| | | <!-- autocomplete="off" class="layui-input" >--> |
| | | <!-- </div>--> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label ">分给推荐三人的终身VIP会员手续费:</label> |
| | | <div class="layui-input-block"> |
| | | <input type="text" name="memberFee" data-th-id="${systemFee.memberFee}" |
| | | autocomplete="off" class="layui-input" > |
| | | </div> |
| | | <!-- <div class="layui-word-aux" style="margin-left: 150px;">--> |
| | | <!-- 【填写整数】每日订单金额的百分之几,增加到积分池:直接输入百分比,例如25%,直接输入25--> |
| | | <!--<!– <div class="layui-word-aux" style="margin-left: 150px;">–>--> |
| | | <!--<!– 【填写整数】每日订单金额的百分之几,增加到积分池:直接输入百分比,例如25%,直接输入25–>--> |
| | | <!--<!– </div>–>--> |
| | | <!-- </div>--> |
| | | </div> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label ">提现手续费:</label> |
| | | <div class="layui-input-block"> |
| | | <input type="text" name="serviceFee" data-th-id="${systemFee.serviceFee}" |
| | | autocomplete="off" class="layui-input" > |
| | | </div> |
| | | <!-- <div class="layui-word-aux" style="margin-left: 150px;">--> |
| | | <!-- 【填写整数】每日订单金额的百分之几,增加到积分池:直接输入百分比,例如25%,直接输入25--> |
| | | <!-- <div class="layui-form-item">--> |
| | | <!-- <label class="layui-form-label ">分给推荐三人的终身VIP会员手续费:</label>--> |
| | | <!-- <div class="layui-input-block">--> |
| | | <!-- <input type="text" name="memberFee" data-th-id="${systemFee.memberFee}"--> |
| | | <!-- autocomplete="off" class="layui-input" >--> |
| | | <!-- </div>--> |
| | | </div> |
| | | <!--<!– <div class="layui-word-aux" style="margin-left: 150px;">–>--> |
| | | <!--<!– 【填写整数】每日订单金额的百分之几,增加到积分池:直接输入百分比,例如25%,直接输入25–>--> |
| | | <!--<!– </div>–>--> |
| | | <!-- </div>--> |
| | | <!-- <div class="layui-form-item">--> |
| | | <!-- <label class="layui-form-label ">提现手续费:</label>--> |
| | | <!-- <div class="layui-input-block">--> |
| | | <!-- <input type="text" name="serviceFee" data-th-id="${systemFee.serviceFee}"--> |
| | | <!-- autocomplete="off" class="layui-input" >--> |
| | | <!-- </div>--> |
| | | <!--<!– <div class="layui-word-aux" style="margin-left: 150px;">–>--> |
| | | <!--<!– 【填写整数】每日订单金额的百分之几,增加到积分池:直接输入百分比,例如25%,直接输入25–>--> |
| | | <!--<!– </div>–>--> |
| | | <!-- </div>--> |
| | | <!-- <div class="layui-form-item">--> |
| | | <!-- <label class="layui-form-label ">DMD价格:</label>--> |
| | | <!-- <div class="layui-input-block">--> |
| | | <!-- <input type="text" name="symbolPrice" data-th-id="${systemFee.symbolPrice}"--> |
| | | <!-- autocomplete="off" class="layui-input" >--> |
| | | <!-- </div>--> |
| | | <!-- </div>--> |
| | | <div class="layui-form-item"> |
| | | <label class="layui-form-label ">DMD价格:</label> |
| | | <label class="layui-form-label febs-form-item-require">直推奖励:</label> |
| | | <div class="layui-input-block"> |
| | | <input type="text" name="symbolPrice" data-th-id="${systemFee.symbolPrice}" |
| | | autocomplete="off" class="layui-input" > |
| | | <input type="text" name="directProfit" lay-verify="required" placeholder="请输入直推奖励" autocomplete="off" class="layui-input" > |
| | | <div class="layui-word-aux">例:10%,填写0.1</div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | |
| | | function initSystemFeeValue() { |
| | | form.val("system-fee-set-form", { |
| | | "directProfit": systemFee.directProfit, |
| | | "rebatePercent": systemFee.rebatePercent, |
| | | "memberFee": systemFee.memberFee, |
| | | "serviceFee": systemFee.serviceFee, |
| | |
| | | <div class="layui-side-scroll"> |
| | | <div class="layui-logo" style="cursor: pointer"> |
| | | <img data-th-src="@{febs/images/logo.png}"> |
| | | <span>BNBWEB 权限系统</span> |
| | | <span>ANT 权限系统</span> |
| | | </div> |
| | | <script |
| | | type="text/html" |
| | |
| | | <html xmlns:th="http://www.thymeleaf.org"> |
| | | <head> |
| | | <meta charset="utf-8"> |
| | | <title>BNBWEB 权限系统</title> |
| | | <title>ANT 权限系统</title> |
| | | <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> |
| | | <meta name="renderer" content="webkit"> |
| | | <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> |
| | |
| | | <div class="layui-container"> |
| | | <div class="layui-row"> |
| | | <div class="layui-col-xs12 layui-col-lg4 layui-col-lg-offset4 febs-tc"> |
| | | <div class="layui-logo"><span><b>BNBWEB</b> 权限系统</span></div> |
| | | <div class="layui-logo"><span><b>ANT</b> 权限系统</span></div> |
| | | </div> |
| | | <div class="layui-col-xs12 layui-col-lg4 layui-col-lg-offset4" id="login-div"> |
| | | <div class="layui-form" lay-filter="login-form"> |
| | |
| | | xmlns:shiro="http://www.pollix.at/thymeleaf/shiro"> |
| | | <head> |
| | | <meta charset="utf-8"> |
| | | <title>BNBWEB 权限系统</title> |
| | | <title>ANT 权限系统</title> |
| | | <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> |
| | | <meta name="renderer" content="webkit"> |
| | | <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> |
| | |
| | | </head> |
| | | <body> |
| | | <div id="febs"></div> |
| | | <style type="text/css"> |
| | | ::-webkit-scrollbar { |
| | | height: 20px !important; |
| | | background-color: #f4f4f4; |
| | | } |
| | | </style> |
| | | <script th:src="@{layui/layui.js}"></script> |
| | | <script th:inline="javascript"> |
| | | var ctx = [[@{/}]]; |