xiaoyong931011
2020-06-28 25950338f31855e2a01545d752b204b8157f5029
20200628  代码提交
16 files modified
8 files added
706 ■■■■■ changed files
src/main/java/com/xcong/excoin/modules/member/controller/DataInfoController.java 24 ●●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/member/controller/ViewController.java 11 ●●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/member/service/IMemberService.java 4 ●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/member/service/impl/MemberServiceImpl.java 9 ●●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/systemSetting/controller/SystemSettingController.java 38 ●●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/systemSetting/controller/ViewController.java 30 ●●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/systemSetting/entity/AppVersionEntity.java 45 ●●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/systemSetting/mapper/AppVersionMapper.java 12 ●●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/systemSetting/service/Impl/SystemSettingServiceImpl.java 43 ●●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/systemSetting/service/SystemSettingService.java 11 ●●●●● patch | view | raw | blame | history
src/main/resources/mapper/modules/AppVersionMapper.xml 11 ●●●●● patch | view | raw | blame | history
src/main/resources/templates/febs/views/modules/member/applyCoin.html 5 ●●●● patch | view | raw | blame | history
src/main/resources/templates/febs/views/modules/member/chargeUsdt.html 12 ●●●● patch | view | raw | blame | history
src/main/resources/templates/febs/views/modules/member/member.html 5 ●●●●● patch | view | raw | blame | history
src/main/resources/templates/febs/views/modules/member/memberDataInfo.html 96 ●●●●● patch | view | raw | blame | history
src/main/resources/templates/febs/views/modules/member/memberDetail.html 6 ●●●● patch | view | raw | blame | history
src/main/resources/templates/febs/views/modules/member/withdrawCoin.html 10 ●●●●● patch | view | raw | blame | history
src/main/resources/templates/febs/views/modules/systemSetting/appVersionAdd.html 88 ●●●●● patch | view | raw | blame | history
src/main/resources/templates/febs/views/modules/systemSetting/appVersionDetail.html 100 ●●●●● patch | view | raw | blame | history
src/main/resources/templates/febs/views/modules/systemSetting/appVersionManage.html 140 ●●●●● patch | view | raw | blame | history
src/main/resources/templates/febs/views/modules/systemSetting/noticeManage.html 2 ●●●●● patch | view | raw | blame | history
src/main/resources/templates/febs/views/modules/systemSetting/platformBanner.html 2 ●●●●● patch | view | raw | blame | history
src/main/resources/templates/febs/views/modules/systemSetting/platformSymbolsSku.html 1 ●●●● patch | view | raw | blame | history
src/main/resources/templates/febs/views/modules/systemSetting/platformTradeSetting.html 1 ●●●● patch | view | raw | blame | history
src/main/java/com/xcong/excoin/modules/member/controller/DataInfoController.java
New file
@@ -0,0 +1,24 @@
package com.xcong.excoin.modules.member.controller;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.xcong.excoin.common.controller.BaseController;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
/**
 * todo   数据关联性
 * @author Administrator
 *
 */
@Slf4j
@Validated
@RestController
@RequiredArgsConstructor
@RequestMapping(value = "/dataInfo")
public class DataInfoController extends BaseController {
}
src/main/java/com/xcong/excoin/modules/member/controller/ViewController.java
@@ -3,10 +3,13 @@
import com.xcong.excoin.common.controller.BaseController;
import com.xcong.excoin.common.entity.FebsConstant;
import com.xcong.excoin.common.utils.FebsUtil;
import com.xcong.excoin.modules.member.entity.MemberCoinChargeEntity;
import com.xcong.excoin.modules.member.service.IMemberService;
import com.xcong.excoin.modules.member.vo.MemberAuthenticationVo;
import lombok.RequiredArgsConstructor;
import java.util.List;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.stereotype.Controller;
@@ -26,6 +29,14 @@
    
    private final IMemberService memberService;
    
    @GetMapping("memberDataInfo/{id}")
    @RequiresPermissions("memberDataInfo:view")
    public String memberDataInfo(@PathVariable long id, Model model) {
        List<MemberCoinChargeEntity> data = memberService.selectMemberDataInfoById(id);
        model.addAttribute("memberCoinChargeEntity", data);
        return FebsUtil.view("modules/member/memberDataInfo");
    }
    @GetMapping("member")
    @RequiresPermissions("member:view")
    public String member() {
src/main/java/com/xcong/excoin/modules/member/service/IMemberService.java
@@ -1,5 +1,7 @@
package com.xcong.excoin.modules.member.service;
import java.util.List;
import javax.validation.Valid;
import javax.validation.constraints.NotNull;
@@ -49,4 +51,6 @@
    FebsResponse memberDetailConfirm(@Valid MemberDetailConfirmDto memberDetailConfirmDto);
    List<MemberCoinChargeEntity> selectMemberDataInfoById(long id);
}
src/main/java/com/xcong/excoin/modules/member/service/impl/MemberServiceImpl.java
@@ -428,4 +428,13 @@
        return new FebsResponse().success();
    }
    @Override
    public List<MemberCoinChargeEntity> selectMemberDataInfoById(long id) {
        Map<String, Object> columnMap = new HashMap<>();
        columnMap.put("member_id", id);
        List<MemberCoinChargeEntity> selectByMap = memberCoinChargeMapper.selectByMap(columnMap);
        // TODO Auto-generated method stub
        return null;
    }
}
src/main/java/com/xcong/excoin/modules/systemSetting/controller/SystemSettingController.java
@@ -16,6 +16,7 @@
import com.xcong.excoin.common.controller.BaseController;
import com.xcong.excoin.common.entity.FebsResponse;
import com.xcong.excoin.common.entity.QueryRequest;
import com.xcong.excoin.modules.systemSetting.entity.AppVersionEntity;
import com.xcong.excoin.modules.systemSetting.entity.PlatformBannerEntity;
import com.xcong.excoin.modules.systemSetting.entity.PlatformNoticeEntity;
import com.xcong.excoin.modules.systemSetting.entity.PlatformSymbolsSkuEntity;
@@ -147,5 +148,42 @@
        systemSettingService.noticeManageAdds(platformNoticeEntity);
        return new FebsResponse().success();
    }
    /**
     * 版本管理---列表
     */
    @GetMapping("appVersionManage")
    public FebsResponse appVersionManage(AppVersionEntity appVersionEntity, QueryRequest request) {
        Map<String, Object> data = getDataTable(systemSettingService.findAppVersionEntityInPage(appVersionEntity, request));
        return new FebsResponse().success().data(data);
    }
    /**
     * 版本管理---确认
     */
    @PostMapping("appVersionConfirm")
    @ControllerEndpoint(operation = "版本管理---确认", exceptionMessage = "设置失败")
    public FebsResponse appVersionConfirm(@Valid AppVersionEntity appVersionEntity) {
        return systemSettingService.appVersionConfirm(appVersionEntity);
    }
    /**
     * 版本管理---删除
     */
    @GetMapping("appVersionDelete/{id}")
    @ControllerEndpoint(operation = "版本管理---删除", exceptionMessage = "删除失败")
    public FebsResponse appVersionDelete(@NotNull(message = "{required}") @PathVariable Long id) {
        return systemSettingService.appVersionDelete(id);
    }
    /**
     * 版本管理---新增
     */
    @PostMapping("appVersionAdds")
    @ControllerEndpoint(operation = "版本管理---新增", exceptionMessage = "新增失败")
    public FebsResponse appVersionAdds(@Valid AppVersionEntity appVersionEntity) {
        systemSettingService.appVersionAdds(appVersionEntity);
        return new FebsResponse().success();
    }
    
}
src/main/java/com/xcong/excoin/modules/systemSetting/controller/ViewController.java
@@ -2,6 +2,7 @@
import com.xcong.excoin.common.entity.FebsConstant;
import com.xcong.excoin.common.utils.FebsUtil;
import com.xcong.excoin.modules.systemSetting.entity.AppVersionEntity;
import com.xcong.excoin.modules.systemSetting.entity.PlatformBannerEntity;
import com.xcong.excoin.modules.systemSetting.entity.PlatformNoticeEntity;
import com.xcong.excoin.modules.systemSetting.entity.PlatformSymbolsSkuEntity;
@@ -126,4 +127,33 @@
        return FebsUtil.view("modules/systemSetting/noticeManageAdd");
    }
    
    /**
     * 版本管理---列表
     */
    @GetMapping("appVersionManage")
    @RequiresPermissions("appVersionManage:view")
    public String appVersionManage() {
        return FebsUtil.view("modules/systemSetting/appVersionManage");
    }
    /**
     * 版本管理---修改
     */
    @GetMapping("appVersionUpdate/{id}")
    @RequiresPermissions("appVersionUpdate:update")
    public String appVersionUpdate(@PathVariable long id, Model model) {
        AppVersionEntity data = systemSettingService.selectAppVersionById(id);
        model.addAttribute("member", data);
        return FebsUtil.view("modules/systemSetting/appVersionDetail");
    }
    /**
     * 版本管理---新增
     */
    @GetMapping("appVersionAdd")
    @RequiresPermissions("appVersionAdd:add")
    public String appVersionAdd() {
        return FebsUtil.view("modules/systemSetting/appVersionAdd");
    }
}
src/main/java/com/xcong/excoin/modules/systemSetting/entity/AppVersionEntity.java
New file
@@ -0,0 +1,45 @@
package com.xcong.excoin.modules.systemSetting.entity;
import java.io.Serializable;
import java.util.Date;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
/**
 * 版本表
 * @author Administrator
 */
@Data
@TableName("app_version")
public class AppVersionEntity implements Serializable {
     /**
     * 账号状态 - 禁用
     */
    public static final Integer type_and = 1;
    /**
     * 账号状态 - 启用
     */
    public static final Integer type_app = 2;
    /**
     *
     */
    private static final long serialVersionUID = 1L;
     @TableId(value = "id",type = IdType.AUTO)
        private Long id;
     @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
        private Date createtime;
     private String version;
     private String content;
     private String address;
     private Integer type;
}
src/main/java/com/xcong/excoin/modules/systemSetting/mapper/AppVersionMapper.java
New file
@@ -0,0 +1,12 @@
package com.xcong.excoin.modules.systemSetting.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.xcong.excoin.modules.systemSetting.entity.AppVersionEntity;
public interface AppVersionMapper extends BaseMapper<AppVersionEntity> {
    IPage<AppVersionEntity> findAppVersionInPage(Page<AppVersionEntity> page, AppVersionEntity appVersionEntity);
}
src/main/java/com/xcong/excoin/modules/systemSetting/service/Impl/SystemSettingServiceImpl.java
@@ -13,10 +13,12 @@
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.xcong.excoin.common.entity.FebsResponse;
import com.xcong.excoin.common.entity.QueryRequest;
import com.xcong.excoin.modules.systemSetting.entity.AppVersionEntity;
import com.xcong.excoin.modules.systemSetting.entity.PlatformBannerEntity;
import com.xcong.excoin.modules.systemSetting.entity.PlatformNoticeEntity;
import com.xcong.excoin.modules.systemSetting.entity.PlatformSymbolsSkuEntity;
import com.xcong.excoin.modules.systemSetting.entity.PlatformTradeSettingEntity;
import com.xcong.excoin.modules.systemSetting.mapper.AppVersionMapper;
import com.xcong.excoin.modules.systemSetting.mapper.PlatformBannerMapper;
import com.xcong.excoin.modules.systemSetting.mapper.PlatformNoticeMapper;
import com.xcong.excoin.modules.systemSetting.mapper.PlatformSymbolsSkuMapper;
@@ -36,6 +38,8 @@
    private final PlatformBannerMapper platformBannerMapper;
    
    private final PlatformNoticeMapper platformNoticeMapper;
    private final AppVersionMapper appVersionMapper;
    
    @Override
    public IPage<PlatformTradeSettingEntity> findPlatformTradeSettingInPage(
@@ -169,5 +173,44 @@
        return platformNoticeEntity;
    }
    @Override
    public IPage<AppVersionEntity> findAppVersionEntityInPage(AppVersionEntity appVersionEntity, QueryRequest request) {
        Page<AppVersionEntity> page = new Page<>(request.getPageNum(), request.getPageSize());
        IPage<AppVersionEntity> appVersionEntitys = appVersionMapper.findAppVersionInPage(page, appVersionEntity);
        return appVersionEntitys;
    }
    @Override
    public AppVersionEntity selectAppVersionById(long id) {
        AppVersionEntity appVersionEntity = appVersionMapper.selectById(id);
        return appVersionEntity;
    }
    @Override
    @Transactional(rollbackFor = Exception.class)
    public FebsResponse appVersionConfirm(@Valid AppVersionEntity appVersionEntity) {
        appVersionMapper.updateById(appVersionEntity);
        return new FebsResponse().success();
    }
    @Override
    @Transactional(rollbackFor = Exception.class)
    public FebsResponse appVersionDelete(@NotNull(message = "{required}") Long id) {
        appVersionMapper.deleteById(id);
        return new FebsResponse().success();
    }
    @Override
    public void appVersionAdds(@Valid AppVersionEntity appVersionEntity) {
        AppVersionEntity appVersionEntitys = new AppVersionEntity();
        appVersionEntitys.setCreatetime(new Date());
        appVersionEntitys.setAddress(appVersionEntity.getAddress());
        appVersionEntitys.setContent(appVersionEntity.getContent());
        appVersionEntitys.setType(appVersionEntity.getType());
        appVersionEntitys.setVersion(appVersionEntity.getVersion());
        appVersionMapper.insert(appVersionEntitys);
    }
}
src/main/java/com/xcong/excoin/modules/systemSetting/service/SystemSettingService.java
@@ -7,6 +7,7 @@
import com.baomidou.mybatisplus.extension.service.IService;
import com.xcong.excoin.common.entity.FebsResponse;
import com.xcong.excoin.common.entity.QueryRequest;
import com.xcong.excoin.modules.systemSetting.entity.AppVersionEntity;
import com.xcong.excoin.modules.systemSetting.entity.PlatformBannerEntity;
import com.xcong.excoin.modules.systemSetting.entity.PlatformNoticeEntity;
import com.xcong.excoin.modules.systemSetting.entity.PlatformSymbolsSkuEntity;
@@ -47,4 +48,14 @@
    PlatformNoticeEntity selectNoticeManageById(long id);
    IPage<AppVersionEntity> findAppVersionEntityInPage(AppVersionEntity appVersionEntity, QueryRequest request);
    AppVersionEntity selectAppVersionById(long id);
    FebsResponse appVersionConfirm(@Valid AppVersionEntity appVersionEntity);
    FebsResponse appVersionDelete(@NotNull(message = "{required}") Long id);
    void appVersionAdds(@Valid AppVersionEntity appVersionEntity);
}
src/main/resources/mapper/modules/AppVersionMapper.xml
New file
@@ -0,0 +1,11 @@
<?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="com.xcong.excoin.modules.systemSetting.mapper.AppVersionMapper">
    <select id="findAppVersionInPage" resultType="com.xcong.excoin.modules.systemSetting.entity.AppVersionEntity">
        SELECT
            *
        FROM
            app_version
    </select>
</mapper>
src/main/resources/templates/febs/views/modules/member/applyCoin.html
@@ -106,7 +106,10 @@
                cols: [[
                    {field: 'phone', title: '手机号码', minWidth: 120,align:'left',totalRowText: '合计'},
                    {field: 'email', title: '邮箱', minWidth: 200,align:'left'},
                    {field: 'inviteId', title: '邀请码UID', minWidth: 80,align:'center'},
                    {field: 'inviteId', title: '邀请码UID',
                        templet: function (d) {
                                return '<a lay-event="see" shiro:hasPermission="user:delete">'+d.inviteId+'</a>'
                            }, minWidth: 80,align:'center'},
                    {field: 'symbol', title: '币种', minWidth: 60,align:'center'},
                    {field: 'tag', title: 'USDT类型', minWidth: 60,align:'center'},
                    {field: 'amount', title: '充币数量', minWidth: 100,align:'center',totalRow: true},
src/main/resources/templates/febs/views/modules/member/chargeUsdt.html
@@ -171,12 +171,7 @@
                    {field: 'amountCny', title: '人民币金额', minWidth: 120,align:'center',totalRow: true},
                    {field: 'amountUsdt', title: 'USDT金额', minWidth: 120,align:'center',totalRow: true},
                    {field: 'unitPrice', title: '单价', minWidth: 80,align:'center'},
                    {field: 'createTime', title: '充值时间', minWidth: 180,align:'center'},
                    {title: '付款状态', templet: '#order-Status', minWidth: 100,align:'center'},
                    {field: 'orderNo', title: '订单编号', minWidth: 150,align:'center'},
                    {field: 'paymentName', title: '收款人', minWidth: 150,align:'center'},
                    {field: 'paymentAccount', title: '收款账号', minWidth: 150,align:'center'},
                    {title: '收款方式', templet: '#payment-Type', minWidth: 100,align:'center'},
                    {title: '操作', 
                        templet: function (d) {
                            if (d.orderStatus === 2) {
@@ -186,7 +181,12 @@
                            }else {
                                return ''
                            }
                        },minWidth: 200,align:'center'}
                        },minWidth: 200,align:'center'},
                    {field: 'paymentName', title: '收款人', minWidth: 150,align:'center'},
                    {field: 'paymentAccount', title: '收款账号', minWidth: 150,align:'center'},
                    {title: '收款方式', templet: '#payment-Type', minWidth: 100,align:'center'},
                    {field: 'orderNo', title: '订单编号', minWidth: 150,align:'center'},
                    {field: 'createTime', title: '充值时间', minWidth: 180,align:'center'}
                ]]
            });
        }
src/main/resources/templates/febs/views/modules/member/member.html
@@ -99,7 +99,6 @@
            
            if (layEvent === 'edit') {
                febs.modal.open('身份认证', 'modules/member/memberDetail/' + data.id, {
                    area: $(window).width() <= 1000 ? '100%' : '50%',
                    btn: ['提交', '取消'],
                    yes: function (index, layero) {
                        $('#user-update').find('#submit').trigger('click');
@@ -110,8 +109,8 @@
                });
            }
            if (layEvent === 'see') {
                febs.modal.open('身份认证', 'modules/member/memberDetail/' + data.id, {
                    area: $(window).width() <= 1000 ? '100%' : '50%',
                var index = febs.modal.open( '身份认证', 'modules/member/memberDetail/' + data.id, {
                    maxmin: true,
                });
            }
        });
src/main/resources/templates/febs/views/modules/member/memberDataInfo.html
New file
@@ -0,0 +1,96 @@
<div class="layui-fluid layui-anim febs-anim" id="febs-user" lay-title="用户详细信息">
    <div class="layui-row febs-container">
        <div class="layui-col-md12">
            <div class="layui-card">
                <div class="layui-card-body febs-table-full">
                    <form class="layui-form layui-table-form" lay-filter="user-table-form">
                        <div class="layui-row">
                            <div class="layui-col-md2 layui-col-sm12 layui-col-xs12 table-action-area">
                                <div class="layui-btn layui-btn-sm layui-btn-primary febs-button-blue-plain table-action" id="query">
                                    <i class="layui-icon">&#xe848;</i>
                                </div>
                                <div class="layui-btn layui-btn-sm layui-btn-primary febs-button-green-plain table-action" id="reset">
                                    <i class="layui-icon">&#xe79b;</i>
                                </div>
                            </div>
                        </div>
                    </form>
                    <table lay-filter="userTable" lay-data="{id: 'userTable'}"></table>
                </div>
            </div>
        </div>
    </div>
</div>
<!-- 表格字段状态格式化 start -->
<script type="text/html" id="status">
    {{#
    var status = {
    1: {title: '已到账' , color: 'green'},
    0: {title: '已到账' },
    2: {title: '已到账' },
    3: {title: '已到账' },
    4: {title: '已到账' }
    }[d.status];
    }}
    <span class="layui-badge febs-tag-{{status.color}}">{{ status.title }}</span>
</script>
<!-- 表格字段状态格式化 start -->
<!-- 表格操作栏 end -->
<script data-th-inline="none" type="text/javascript">
    // 引入组件并初始化
    layui.use(['jquery', 'laydate', 'form', 'table', 'febs', 'treeSelect'], function () {
        var $ = layui.jquery,
            laydate = layui.laydate,
            febs = layui.febs,
            form = layui.form,
            table = layui.table,
            treeSelect = layui.treeSelect,
            $view = $('#febs-user'),
            $query = $view.find('#query'),
            $reset = $view.find('#reset'),
            tableIns;
        form.render();
        // 表格初始化
        initTable();
        // 初始化表格操作栏各个按钮功能
        table.on('tool(userTable)', function (obj) {
            var data = obj.data,
                layEvent = obj.event;
            if (layEvent === 'see') {
                febs.modal.open('身份认证', 'modules/member/memberDetail/' + data.id, {
                });
            }
        });
        // 刷新按钮
        $reset.on('click', function () {
        });
        function initTable() {
            tableIns = febs.table.init({
                elem: $view.find('table'),
                id: 'userTable',
                url: ctx + 'member/memberApplyCoin',
                totalRow: true,
                cols: [[
                    {field: 'phone', title: '手机号码111111', minWidth: 120,align:'left',totalRowText: '合计'},
                    {field: 'email', title: '邮箱', minWidth: 200,align:'left'},
                    {field: 'inviteId', title: '邀请码UID', minWidth: 80,align:'center'},
                    {field: 'symbol', title: '币种', minWidth: 60,align:'center'},
                    {field: 'tag', title: 'USDT类型', minWidth: 60,align:'center'},
                    {field: 'amount', title: '充币数量', minWidth: 100,align:'center',totalRow: true},
                    {field: 'lastAmount', title: '本次余额', minWidth: 100,align:'center'},
                    {field: 'address', title: '平台钱包地址', minWidth: 280,align:'center'},
                    {field: 'createTime', title: '创建时间', minWidth: 200,align:'center'},
                    {title: '状态', templet: '#status', minWidth: 100,align:'center'}
                ]]
            });
        }
    })
</script>
src/main/resources/templates/febs/views/modules/member/memberDetail.html
@@ -63,19 +63,19 @@
        <div class="layui-form-item">
            <label class="layui-form-label febs-form-item-require">身份证正面:</label>
            <div class="layui-input-block">
                <img alt="头像" title="点我更换头像" data-th-src="${member.idcardImageFront}">
                <img alt="头像" data-th-src="${member.idcardImageFront}">
            </div>
        </div>
        <div class="layui-form-item">
            <label class="layui-form-label febs-form-item-require">身份证背面:</label>
            <div class="layui-input-block">
                <img alt="头像" title="点我更换头像" data-th-src="${member.idcardImageBack}">
                <img alt="头像" data-th-src="${member.idcardImageBack}">
            </div>
        </div>
        <div class="layui-form-item">
            <label class="layui-form-label febs-form-item-require">手持身份证:</label>
            <div class="layui-input-block">
                <img alt="头像" title="点我更换头像" data-th-src="${member.idcardImageInHand}">
                <img alt="头像" data-th-src="${member.idcardImageInHand}">
            </div>
        </div>
        <div class="layui-form-item febs-hide">
src/main/resources/templates/febs/views/modules/member/withdrawCoin.html
@@ -129,6 +129,11 @@
                    cancelUsers(data.id);
                });
            }
            if (layEvent === 'see') {
                var index = febs.modal.open( '数据详情', 'modules/member/memberDataInfo/' + data.id, {
                    maxmin: true,
                });
            }
        });
        
        function confirmUsers(id) {
@@ -167,7 +172,10 @@
                cols: [[
                    {field: 'phone', title: '手机号码', minWidth: 120,align:'left',totalRowText: '合计'},
                    {field: 'email', title: '邮箱', minWidth: 200,align:'left'},
                    {field: 'inviteId', title: '邀请码UID', minWidth: 80,align:'center'},
                    {field: 'inviteId', title: '邀请码UID',
                        templet: function (d) {
                            return '<a lay-event="see" shiro:hasPermission="user:delete">'+d.inviteId+'</a>'
                        }, minWidth: 80,align:'center'},
                    {field: 'symbol', title: '币种', minWidth: 100,align:'center'},
                    {field: 'amount', title: '提币数量', minWidth: 120,align:'center' ,totalRow: true},
                    {field: 'address', title: '提币地址', minWidth: 300,align:'center'},
src/main/resources/templates/febs/views/modules/systemSetting/appVersionAdd.html
New file
@@ -0,0 +1,88 @@
<style>
    #user-add {
        padding: 20px 25px 25px 0;
    }
    #user-add .layui-treeSelect .ztree li a, .ztree li span {
        margin: 0 0 2px 3px !important;
    }
    #user-add #data-permission-tree-block {
        border: 1px solid #eee;
        border-radius: 2px;
        padding: 3px 0;
    }
    #user-add .layui-treeSelect .ztree li span.button.switch {
        top: 1px;
        left: 3px;
    }
</style>
<div class="layui-fluid" id="user-add">
    <form class="layui-form" action="" lay-filter="user-add-form">
        <div class="layui-form-item febs-hide">
            <label class="layui-form-label febs-form-item-require">用户id:</label>
            <div class="layui-input-block">
                <input type="text" name="id">
            </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="version" minlength="4" maxlength="10" lay-verify="range|version"
                        autocomplete="off" class="layui-input" >
            </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="content" minlength="4" maxlength="200" lay-verify="range|content"
                        autocomplete="off" class="layui-input" >
            </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="address" minlength="4" maxlength="500" lay-verify="range|address"
                        autocomplete="off" class="layui-input" >
            </div>
        </div>
        <div class="layui-form-item">
            <label class="layui-form-label febs-form-item-require">类型:</label>
            <div class="layui-input-block">
                <input type="radio" name="type" value="1" title="安卓" checked="">
                <input type="radio" name="type" value="2" title="苹果">
            </div>
        </div>
        <div class="layui-form-item febs-hide">
            <button class="layui-btn" lay-submit="" lay-filter="user-add-form-submit" id="submit"></button>
        </div>
    </form>
</div>
<script data-th-inline="javascript">
    layui.use(['febs', 'form', 'formSelects', 'validate', 'treeSelect', 'eleTree'], function () {
        var $ = layui.$,
            febs = layui.febs,
            layer = layui.layer,
            formSelects = layui.formSelects,
            treeSelect = layui.treeSelect,
            form = layui.form,
            eleTree = layui.eleTree,
            $view = $('#user-add'),
            validate = layui.validate,
            _deptTree;
        form.render();
        formSelects.render();
        form.on('submit(user-add-form-submit)', function (data) {
            febs.post(ctx + 'systemSetting/appVersionAdds', data.field, function () {
                layer.closeAll();
                febs.alert.success('新增成功');
                $('#febs-user').find('#reset').click();
            });
            return false;
        });
    });
</script>
src/main/resources/templates/febs/views/modules/systemSetting/appVersionDetail.html
New file
@@ -0,0 +1,100 @@
<style>
    #user-update {
        padding: 20px 25px 25px 0;
    }
    #user-update .layui-treeSelect .ztree li a, .ztree li span {
        margin: 0 0 2px 3px !important;
    }
    #user-update #data-permission-tree-block {
        border: 1px solid #eee;
        border-radius: 2px;
        padding: 3px 0;
    }
    #user-add .layui-treeSelect .ztree li span.button.switch {
        top: 1px;
        left: 3px;
    }
</style>
<div class="layui-fluid" id="user-update">
    <form class="layui-form" action="" lay-filter="user-update-form">
        <div class="layui-form-item febs-hide">
            <label class="layui-form-label febs-form-item-require">用户id:</label>
            <div class="layui-input-block">
                <input type="text" name="id">
            </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="version" minlength="4" maxlength="10" lay-verify="range|version"
                        autocomplete="off" class="layui-input" >
            </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="content" minlength="4" maxlength="200" lay-verify="range|content"
                        autocomplete="off" class="layui-input" >
            </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="address" minlength="4" maxlength="500" lay-verify="range|address"
                        autocomplete="off" class="layui-input" >
            </div>
        </div>
        <div class="layui-form-item">
            <label class="layui-form-label febs-form-item-require">类型:</label>
            <div class="layui-input-block">
                <input type="radio" name="type" value="1" title="安卓" checked="">
                <input type="radio" name="type" value="2" title="苹果">
            </div>
        </div>
        <div class="layui-form-item febs-hide">
            <button class="layui-btn" lay-submit="" lay-filter="user-update-form-submit" id="submit"></button>
        </div>
    </form>
</div>
<script data-th-inline="javascript">
    layui.use(['febs', 'form', 'formSelects', 'validate', 'treeSelect', 'eleTree'], function () {
        var $ = layui.$,
            febs = layui.febs,
            layer = layui.layer,
            formSelects = layui.formSelects,
            treeSelect = layui.treeSelect,
            form = layui.form,
            eleTree = layui.eleTree,
            member = [[${member}]],
            $view = $('#user-update'),
            validate = layui.validate,
            _deptTree;
        form.render();
        initUserValue();
        formSelects.render();
        function initUserValue() {
            form.val("user-update-form", {
                "version": member.version,
                "content": member.content,
                "type": member.type,
                "address": member.address
            });
        }
        form.on('submit(user-update-form-submit)', function (data) {
            febs.post(ctx + 'systemSetting/appVersionConfirm', data.field, function () {
                layer.closeAll();
                febs.alert.success('设置成功');
                $('#febs-user').find('#reset').click();
            });
            return false;
        });
    });
</script>
src/main/resources/templates/febs/views/modules/systemSetting/appVersionManage.html
New file
@@ -0,0 +1,140 @@
<div class="layui-fluid layui-anim febs-anim" id="febs-user" lay-title="版本管理">
    <div class="layui-row febs-container">
        <div class="layui-col-md12">
            <div class="layui-card">
                <div class="layui-card-body febs-table-full">
                    <form class="layui-form layui-table-form" lay-filter="user-table-form">
                            <div class="layui-row">
                                <div class="layui-col-md2 layui-col-sm12 layui-col-xs12 table-action-area">
                                    <div class="layui-btn layui-btn-sm layui-btn-primary febs-button-green-plain table-action" id="add">
                                        新增
                                    </div>
                                    <div class="layui-btn layui-btn-sm layui-btn-primary febs-button-green-plain table-action" id="reset">
                                        <i class="layui-icon">&#xe79b;</i>
                                    </div>
                                </div>
                            </div>
                        </form>
                    <table lay-filter="userTable" lay-data="{id: 'userTable'}"></table>
                </div>
            </div>
        </div>
    </div>
</div>
<script type="text/html" id="isType">
    {{#
    var type = {
    2: {title: '苹果', color: 'red' },
    1: {title: '安卓' , color: 'green'}
    }[d.type];
    }}
    <span class="layui-badge febs-bg-{{type.color}}">{{ type.title }}</span>
</script>
<!-- 表格操作栏 start -->
<script type="text/html" id="user-option">
    <span shiro:lacksPermission="user:view,user:update,user:delete">
        <span class="layui-badge-dot febs-bg-orange"></span> 无权限
    </span>
    <a lay-event="edit" shiro:hasPermission="user:update">编辑
        <i class="layui-icon febs-edit-area febs-blue"></i>
     </a>
    <a lay-event="delete" shiro:hasPermission="user:update">删除
        <i class="layui-icon febs-edit-area febs-blue"></i>
     </a>
</script>
<!-- 表格操作栏 end -->
<script data-th-inline="none" type="text/javascript">
    // 引入组件并初始化
    layui.use(['dropdown', 'jquery', 'laydate', 'form', 'table', 'febs'], function () {
        var $ = layui.jquery,
            laydate = layui.laydate,
            febs = layui.febs,
            form = layui.form,
            table = layui.table,
            dropdown = layui.dropdown,
            $view = $('#febs-user'),
            $reset = $view.find('#reset'),
            $add = $view.find('#add'),
            $searchForm = $view.find('form'),
            sortObject = {field: 'title', type: null},
            tableIns
            ;
        form.render();
        // 表格初始化
        initTable();
        // 初始化表格操作栏各个按钮功能
        table.on('tool(userTable)', function (obj) {
            var data = obj.data,
                layEvent = obj.event;
            if (layEvent === 'edit') {
                febs.modal.open('版本设置', 'modules/systemSetting/appVersionUpdate/' + data.id, {
                    btn: ['提交', '取消'],
                    yes: function (index, layero) {
                        $('#user-update').find('#submit').trigger('click');
                    },
                    btn2: function () {
                        layer.closeAll();
                    }
                });
            }
            if (layEvent === 'delete') {
                febs.modal.confirm('删除', '您是否确认删除?', function () {
                    deleteUsers(data.id);
                });
            }
        });
        function deleteUsers(id) {
            febs.get(ctx + 'systemSetting/appVersionDelete/' + id, null, function () {
                febs.alert.success('确认删除');
                $reset.click();
            });
        }
         // 刷新按钮
        $reset.on('click', function () {
            $searchForm[0].reset();
            sortObject.type = 'null';
            tableIns.reload({where: getQueryParams(), page: {curr: 1}, initSort: sortObject});
        });
        $add.on('click', function () {
            febs.modal.open('公告新增', 'modules/systemSetting/appVersionAdd/', {
                btn: ['提交', '取消'],
                yes: function (index, layero) {
                    $('#user-add').find('#submit').trigger('click');
                },
                btn2: function () {
                    layer.closeAll();
                }
            });
        });
         // 获取查询参数
        function getQueryParams() {
            return {};
        }
        function initTable() {
            tableIns = febs.table.init({
                elem: $view.find('table'),
                id: 'userTable',
                url: ctx + 'systemSetting/appVersionManage',
                cols: [[
                    {field: 'id', title: '', minWidth: 10,align:'center'},
                    {field: 'version', title: '版本号', minWidth: 120,align:'center'},
                    {field: 'content', title: '更新内容', minWidth: 120,align:'center'},
                    {field: 'address', title: '下载地址', minWidth: 200,align:'center'},
                    {title: '类型', templet: '#isType', minWidth: 60,align:'center'},
                    {title: '操作', toolbar: '#user-option', minWidth: 140, fixed : 'right'}
                ]]
            });
        }
    })
</script>
src/main/resources/templates/febs/views/modules/systemSetting/noticeManage.html
@@ -64,7 +64,6 @@
            
            if (layEvent === 'edit') {
                febs.modal.open('公告设置', 'modules/systemSetting/noticeManageUpdate/' + data.id, {
                    area: $(window).width() <= 1000 ? '100%' : '50%',
                    btn: ['提交', '取消'],
                    yes: function (index, layero) {
                        $('#user-update').find('#submit').trigger('click');
@@ -97,7 +96,6 @@
         
        $add.on('click', function () {
            febs.modal.open('公告新增', 'modules/systemSetting/noticeManageAdd/', {
                area: $(window).width() <= 1000 ? '100%' : '50%',
                btn: ['提交', '取消'],
                yes: function (index, layero) {
                    $('#user-add').find('#submit').trigger('click');
src/main/resources/templates/febs/views/modules/systemSetting/platformBanner.html
@@ -100,7 +100,6 @@
            
            if (layEvent === 'edit') {
                febs.modal.open('轮播图设置', 'modules/systemSetting/platformBannerUpdate/' + data.id, {
                    area: $(window).width() <= 1000 ? '100%' : '50%',
                    btn: ['提交', '取消'],
                    yes: function (index, layero) {
                        $('#user-update').find('#submit').trigger('click');
@@ -134,7 +133,6 @@
         // 刷新按钮
        $add.on('click', function () {
            febs.modal.open('轮播图新增', 'modules/systemSetting/platformBannerAdd/', {
                area: $(window).width() <= 1000 ? '100%' : '50%',
                btn: ['提交', '取消'],
                yes: function (index, layero) {
                    $('#user-add').find('#submit').trigger('click');
src/main/resources/templates/febs/views/modules/systemSetting/platformSymbolsSku.html
@@ -56,7 +56,6 @@
            
            if (layEvent === 'edit') {
                febs.modal.open('币种交易手数规格设置', 'modules/systemSetting/platformSymbolsSkuUpdate/' + data.id, {
                    area: $(window).width() <= 1000 ? '100%' : '50%',
                    btn: ['提交', '取消'],
                    yes: function (index, layero) {
                        $('#user-update').find('#submit').trigger('click');
src/main/resources/templates/febs/views/modules/systemSetting/platformTradeSetting.html
@@ -56,7 +56,6 @@
            
            if (layEvent === 'edit') {
                febs.modal.open('交易设置', 'modules/systemSetting/platformTradeSettingUpdate/' + data.id, {
                    area: $(window).width() <= 1000 ? '100%' : '50%',
                    btn: ['提交', '取消'],
                    yes: function (index, layero) {
                        $('#user-update').find('#submit').trigger('click');