admin
2021-05-29 a7fad98b4f19f93bbc53ae3130b4a6ff1c8326b4
Merge branch 'master' of ssh://193.112.35.168:29418/tejia
6个文件已修改
1个文件已添加
286 ■■■■■ 已修改文件
app/src/main/java/com/ks/app/controller/admin/vip/VipCenterAdminController.java 52 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/ks/app/controller/admin/vip/VipGradeAdminController.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/resources/static/views/vip/grade-add.html 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/resources/static/views/vip/vipCenter-add.html 148 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/resources/static/views/vip/vipCenter-list.html 67 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
facade-vip/src/main/java/com/ks/vip/pojo/DO/VipCenter.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
facade-vip/src/main/java/com/ks/vip/pojo/VO/VipCenterVO.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
app/src/main/java/com/ks/app/controller/admin/vip/VipCenterAdminController.java
@@ -15,8 +15,8 @@
import com.ks.vip.service.VipCenterService;
import com.ks.vip.service.VipCenterService;
import com.ks.vip.service.VipGradeService;
import org.apache.commons.beanutils.BeanUtils;
import org.apache.dubbo.config.annotation.Reference;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
@@ -47,17 +47,27 @@
        try {
            List<VipCenterVO> listVO = new ArrayList<>();
            List<VipGrade> listGrade = vipGradeService.getValidList();
            List<VipCenter> list = vipCenterService.listByPage(page, pageSize, t);
            if (list != null && list.size() > 0) {
                for (VipCenter vipCenter: list) {
                    VipCenterVO vipCenterVO = new VipCenterVO();
                    BeanUtils.copyProperties(vipCenter, vipCenterVO);
                    VipGrade vipGrade = vipGradeService.selectByPrimaryKey(vipCenter.getGradeId());
                    if (vipGrade != null) {
                        vipCenterVO.setGradeName(vipGrade.getName());
                    }
                    // 用户明查询 TODO
                    String str = "";
                    for (VipGrade vipGrade : listGrade) {
                        if (vipGrade.getId().longValue() == vipCenter.getGradeId().longValue()) {
                            vipCenterVO.setGradeName(vipGrade.getName());
                            str += "<option value=\"" + vipGrade.getId() + "\"  selected=\"selected\" > " + vipGrade.getName() + "</option> ";
                        } else {
                            str += "<option value=\"" + vipGrade.getId() + "\"> " + vipGrade.getName() + "</option> ";
                        }
                    }
                    // 下拉选择框
                    vipCenterVO.setVipGradeSelect(str);
                    // 用户名--查询 TODO
                    listVO.add(vipCenterVO);
                }
@@ -78,14 +88,24 @@
    }
    public String getVipGradeSelect(List<VipGrade> listGrade, Long gradeId) {
        String str = "";
        for (VipGrade t : listGrade) {
            str += "<option value=\"" + t.getId() + "\" "
                    + (t.getId().longValue() == gradeId.longValue() ? "selected=\"selected\"" : "") + " > " + t.getName()
                    + "</option> ";
        }
        System.out.println(str);
        return str;
    }
    @ResponseBody
    @RequestMapping(value = "save")
    public Result save(VipCenter t, HttpServletRequest request) {
    @RequestMapping(value = "add")
    public Result add(VipCenter t, HttpServletRequest request) {
        try {
            vipCenterService.saveManageWeb(t);
            return ResultUtils.loadTrue();
        } catch (VipCenterException e) {
            return ResultUtils.loadFalse(e.getMsg());
        } catch (Exception e) {
            e.printStackTrace();
           return ResultUtils.loadFalse("保存失败!");
@@ -93,4 +113,16 @@
    }
    @ResponseBody
    @RequestMapping(value = "modify")
    public Result modify(VipCenter t, HttpServletRequest request) {
        try {
            vipCenterService.updateByPrimaryKeySelective(t);
            return ResultUtils.loadTrue();
        } catch (Exception e) {
            e.printStackTrace();
            return ResultUtils.loadFalse("保存失败!");
        }
    }
}
app/src/main/java/com/ks/app/controller/admin/vip/VipGradeAdminController.java
@@ -129,4 +129,7 @@
            return ResultUtils.loadFalse("获取失败!");
        }
    }
}
app/src/main/resources/static/views/vip/grade-add.html
@@ -40,7 +40,7 @@
                    等级标识</label>
                <div class="layui-input-inline">
                    <select id="identity" name="identity" class="layui-select">
                        <option value="silver">-请选择-</option>
                        <option value="">-请选择-</option>
                        <option value="silver">白银</option>
                        <option value="platinum">铂金</option>
                    </select>
app/src/main/resources/static/views/vip/vipCenter-add.html
New file
@@ -0,0 +1,148 @@
<!DOCTYPE html>
<html class="x-admin-sm">
<head>
    <meta charset="UTF-8">
    <title>新增</title>
    <meta name="renderer" content="webkit">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta name="viewport"
          content="width=device-width,user-scalable=yes, minimum-scale=0.4, initial-scale=0.8,target-densitydpi=low-dpi"/>
    <link rel="stylesheet" href="../../css/font.css">
    <link rel="stylesheet" href="../../css/xadmin.css">
    <script type="text/javascript" src="../../lib/layui/layui.js" charset="utf-8"></script>
    <script type="text/javascript" src="../../js/xadmin.js"></script>
    <script type="text/javascript" src="../../js/http.js" charset="utf-8"></script>
    <script type="text/javascript" src="https://cdn.bootcss.com/jquery/3.2.1/jquery.min.js"></script>
    <!-- 让IE8/9支持媒体查询,从而兼容栅格 -->
    <!--[if lt IE 9]>
    <script src="https://cdn.staticfile.org/html5shiv/r29/html5.min.js"></script>
    <script src="https://cdn.staticfile.org/respond.js/1.4.2/respond.min.js"></script>
    <![endif]-->
</head>
<body>
<div class="layui-fluid">
    <div class="layui-row">
        <form class="layui-form">
            <div class="layui-form-item">
                <label for="gradeId" class="layui-form-label">
                    所属等级</label>
                <div class="layui-input-inline">
                    <select id="gradeId" name="gradeId" class="layui-select">
                        <option value="0">请选择</option>
                    </select>
                </div>
            </div>
            <div class="layui-form-item">
                <label for="uid" class="layui-form-label">
                    <span class="x-red">*</span>用户ID</label>
                <div class="layui-input-inline">
                    <input type="text" id="uid" name="uid" required="" lay-verify="uid" autocomplete="off"
                           class="layui-input"></div>
            </div>
            <div class="layui-form-item">
                <label for="startTime" class="layui-form-label">
                    <span class="x-red">*</span>开始时间</label>
                <div class="layui-input-inline">
                    <input type="text" id="startTime" name="startTime" required="" lay-verify="icon"
                           autocomplete="off" class="layui-input"></div>
            </div>
            <div class="layui-form-item">
                <label for="endTime" class="layui-form-label">
                    结束时间</label>
                <div class="layui-input-inline">
                    <input type="text" id="endTime" name="endTime" required="" lay-verify="sort"
                           autocomplete="off" class="layui-input"></div>
            </div>
            <div class="layui-form-item">
                <!--  <label for="L_remarks" class="layui-form-label"></label>-->
                <button class="layui-btn" lay-filter="add" lay-submit="">增加</button>
            </div>
        </form>
    </div>
</div>
<script>
    layui.use(['form', 'layer', 'jquery'],
    function () {
        $ = layui.jquery;
        var form = layui.form,
            layer = layui.layer;
        // //自定义验证规则
        // form.verify({
        //     username: function (value) {
        //         if (value.length < 3) {
        //             return '应用名称至少得3个字符啊';
        //         }
        //     },
        //     appcode: [/^([A-Za-z0-9]|\-|_)+$/, '应用标识只能包含 数字、英文字符、_ 、-'],
        //     desc: function (value) {
        //         if (value != null && value.length > 128) {
        //             return '简介最大为128个字符';
        //         }
        //     },
        //     remarks: function (value) {
        //         if (value != null && value.length > 128) {
        //             return '备注最大为128个字符';
        //         }
        //     },
        //
        // });
        $.ajax({
            type:"GET",
            url:"/admin/api/vip/vipGrade/getValidList",
            dataType:"json",
            success:function(data){
                if(data.code == 0) {
                    $("#gradeId").empty();
                    $("#gradeId").append("<option selected value='0'>---请选择---</option>");
                    for(var i = 0; i < data.data.length; i++) {
                        $("#gradeId").append("<option value='" + data.data[i].id + "'>" + data.data[i].name + "</option>");
                    }
                    form.render();//注意渲染页面表单,否则不显示数据
                } else {
                    alert(data.msg);
                }
            },
            error:function(jqXHR){
                alert("请求失败!");
            }
        });
        //监听提交
        form.on('submit(add)',
            function (data) {
                console.log(data.field);
                //发异步,把数据提交给php
                ksapp.post('/admin/api/vip/vipCenter/add', data.field, function (res) {
                    if (res.code == 0) {
                        layer.alert("增加成功", {
                                icon: 6
                            },
                            function () {
                                //关闭当前frame
                                xadmin.close();
                                // 可以对父窗口进行刷新
                                xadmin.father_reload();
                            });
                    } else {
                        layer.msg(res.msg);
                    }
                }, function (res) {
                });
                return false;
            });
    });
</script>
</body>
</html>
app/src/main/resources/static/views/vip/vipCenter-list.html
@@ -22,13 +22,19 @@
    <![endif]-->
    <style type="text/css">
        .layui-table-view .layui-table th{
            overflow:hidden;
        /* 防止下拉框的下拉列表被隐藏---必须设置---*/
        .layui-table-cell {
            overflow: visible !important;
        }
        .layui-table-view .layui-table {
           width: 100%;
        /* 使得下拉框与单元格刚好合适*/
        td .layui-form-select{
            margin-top: -10px;
            margin-left: -15px;
            margin-right: -15px;
        }
    </style>
</head>
@@ -77,7 +83,7 @@
</body>
<script type="text/html" id="toolbar">
    <div class="layui-btn-container">
        <button class="layui-btn" onclick="xadmin.open('添加等级','grade-add.html',500,480)"><i class="layui-icon"></i>添加
        <button class="layui-btn" onclick="xadmin.open('添加等级','vipCenter-add.html',500,480)"><i class="layui-icon"></i>添加
        </button>
    </div>
</script>
@@ -97,7 +103,11 @@
<script type="text/html" id="gradeAction">
    <a class="layui-btn layui-btn-danger layui-btn-xs"  onclick="gradeAction({{d.uid}})" >删除</a>
    <select name="editGrade" lay-filter="editGrade" id="editGrade"  data-value = {{d.gradeName}} >
       <!-- <option value="1">白银</option>
        <option value="2">铂金</option>-->
        {{d.vipGradeSelect}}
    </select>
</script>
<script>
    function gradeAction(obj, index, id) {
@@ -110,9 +120,16 @@
<script type="text/html" id="dateFomat">
    <div>{{layui.util.toDateString(d.updateTime, 'yyyy-MM-dd HH:mm:ss')}}</div>
    <div>{{d.updateTime == null?'':layui.util.toDateString(d.updateTime, 'yyyy-MM-dd HH:mm:ss')}}</div>
</script>
<script type="text/html" id="dateFomat1">
    <div>{{d.startTime == null?'':layui.util.toDateString(d.startTime, 'yyyy-MM-dd HH:mm:ss')}}</div>
</script>
<script type="text/html" id="dateFomat2">
    <div>{{d.endTime == null?'':layui.util.toDateString(d.endTime, 'yyyy-MM-dd HH:mm:ss')}}</div>
</script>
<script type="text/html" id="switchTpl">
    <input type="checkbox" name="sex" value="{{d.id}}" lay-skin="switch" lay-text="启用|停用" lay-filter="stateBox" {{ d.state== 1 ? 'checked': ''}} >
@@ -195,10 +212,10 @@
            cols: [
                [{type: 'checkbox', title: "ID"},
                    {field: 'uid', width: 80, sort: true, title: "用户ID"},
                    {field: 'userName', edit: 'text', width: 150, title: "用户名称"},
                    {field: 'gradeName', edit: 'text', width: 150, title: "对应等级", templet:"#gradeAction"},
                    {field: 'startTime',edit: 'text', width: 120, sort: true, title: "开始时间"},
                    {field: 'endTime', edit: 'text', width: 150, title: "结束时间"},
                    {field: 'userName',  width: 150, title: "用户名称"},
                    {field: 'gradeName',  width: 200, title: "对应等级", templet:"#gradeAction"},
                    {field: 'startTime',edit: 'text', width: 150, sort: true, title: "开始时间" , templet:"#dateFomat1"},
                    {field: 'endTime', edit: 'text', width: 150, title: "结束时间" , templet:"#dateFomat2"},
                    {field: 'updateTime', sort: true, width: 150, title: "修改时间", templet:"#dateFomat"},
                    {fixed: 'right', width: 250, title: "操作", toolbar: '#barAction'},
                ]
@@ -211,6 +228,19 @@
                    "count": res.data.pe.totalCount, //解析数据长度
                    "data": res.data.list //解析数据列表
                };
            },
            done: function (res, curr, count) {
                $(".layui-table-body, .layui-table-box, .layui-table-cell").css('overflow', 'visible');
                res.data.forEach(function (item, index) {//根据已有的值回填下拉框
                    layui.each($("select[name='editGrade']", ""), function (index, item) {
                        var elem = $(item);
                        elem.next().children().children()[0].defaultValue = elem.data('value');
                        elem.val(elem.data('value'));
                    });
                    table.render('select');
                });
            }
            //,…… //其他参数
        });
@@ -254,5 +284,20 @@
            app.update(this.value, params);
        });
        //下拉框监听事件
        layui.form.on('select(editGrade)', function(data) {
            //获取行tr对象
            var elem = data.othis.parents('tr');
            //获取第一列的值,第一列为ID列,
            var uid = elem.first().find('td').eq(1).text();
            //选择的select对象值;
            var selectValue=data.value;
            var params = {uid: uid, gradeId: selectValue};
            app.update(uid, params);
            //处理字段更新的逻辑
        });
    });</script>
</html>
facade-vip/src/main/java/com/ks/vip/pojo/DO/VipCenter.java
@@ -1,5 +1,6 @@
package com.ks.vip.pojo.DO;
import org.springframework.format.annotation.DateTimeFormat;
import org.yeshi.utils.generater.mybatis.Column;
import org.yeshi.utils.generater.mybatis.Table;
@@ -17,9 +18,11 @@
    @Column(name = "v_grade_id")
    private Long gradeId;
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @Column(name = "v_start_time")
    private Date startTime;
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @Column(name = "v_end_time")
    private Date endTime;
facade-vip/src/main/java/com/ks/vip/pojo/VO/VipCenterVO.java
@@ -12,6 +12,9 @@
    // 等级状态
    private  String statedesc;
    // 等级下拉框
    private  String vipGradeSelect;
    public String getUserName() {
        return userName;
@@ -36,4 +39,12 @@
    public void setStatedesc(String statedesc) {
        this.statedesc = statedesc;
    }
    public String getVipGradeSelect() {
        return vipGradeSelect;
    }
    public void setVipGradeSelect(String vipGradeSelect) {
        this.vipGradeSelect = vipGradeSelect;
    }
}