Merge branch 'master' of ssh://193.112.35.168:29418/tejia
| | |
| | | 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; |
| | |
| | | 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); |
| | | } |
| | |
| | | } |
| | | |
| | | |
| | | 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("保存失败!"); |
| | | return ResultUtils.loadFalse("保存失败!"); |
| | | } |
| | | } |
| | | |
| | | |
| | | @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("保存失败!"); |
| | | } |
| | | } |
| | | |
| | | } |
| | |
| | | return ResultUtils.loadFalse("获取失败!"); |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | } |
| | |
| | | 等级标识</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> |
New file |
| | |
| | | <!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> |
| | |
| | | <![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> |
| | | |
| | |
| | | </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> |
| | |
| | | |
| | | |
| | | <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) { |
| | |
| | | |
| | | |
| | | <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': ''}} > |
| | |
| | | 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'}, |
| | | ] |
| | |
| | | "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'); |
| | | }); |
| | | } |
| | | //,…… //其他参数 |
| | | }); |
| | |
| | | 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> |
| | |
| | | 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; |
| | | |
| | |
| | | @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; |
| | | |
| | |
| | | // 等级状态 |
| | | private String statedesc; |
| | | |
| | | // 等级下拉框 |
| | | private String vipGradeSelect; |
| | | |
| | | |
| | | public String getUserName() { |
| | | return userName; |
| | |
| | | public void setStatedesc(String statedesc) { |
| | | this.statedesc = statedesc; |
| | | } |
| | | |
| | | public String getVipGradeSelect() { |
| | | return vipGradeSelect; |
| | | } |
| | | |
| | | public void setVipGradeSelect(String vipGradeSelect) { |
| | | this.vipGradeSelect = vipGradeSelect; |
| | | } |
| | | } |