欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 社会 > 民宿管理系统6

民宿管理系统6

2025/5/9 6:55:15 来源:https://blog.csdn.net/ABCDEEE7/article/details/147773676  浏览:    关键词:民宿管理系统6

普通管理员管理:

新增普通管理员:

前端效果:

前端代码:

<body>
<div class="layui-fluid"><div class="layui-row"><div class="layui-form"><div class="layui-form-item"><label for="loginname" class="layui-form-label"><span class="x-red">*</span>登录名</label><div class="layui-input-inline"><input type="text" id="loginname" name="loginname" lay-verify="required|loginname" class="layui-input"></div></div><div class="layui-form-item"><label for="L_loginpassword" class="layui-form-label"><span class="x-red">*</span>设置登录密码</label><div class="layui-input-inline"><input type="password" id="L_loginpassword" name="loginpassword" lay-verify="required|loginpassword" class="layui-input"></div></div><div class="layui-form-item"><label for="L_confirmloginpassword" class="layui-form-label"><span class="x-red">*</span>确认密码</label><div class="layui-input-inline"><input type="password" id="L_confirmloginpassword" name="confirmloginpassword" lay-verify="required|confirmloginpassword" class="layui-input"></div></div><div class="layui-form-item"><label class="layui-form-label"></label><button class="layui-btn" lay-filter="submit" lay-submit="">保存</button></div></div></div>
</div><script>layui.use(['form', 'layer', 'upload'], function () {$ = layui.jquery;var form = layui.form,upload = layui.upload,layer = layui.layer;//自定义验证规则form.verify({loginname: function (value) {var code;$.ajax({url: "/smalladmin/checkloginname",type: "GET",async: false,  //关闭异步,当success返回结果后才执行ajax之后的内容data: {"loginname": value},success: function (s) {code = s;}});if (code != true) {return '登录名重复,请重新输入!';}},loginpassword: [/(.+){6,12}$/, '密码必须6到12位'],confirmloginpassword: function () {if ($('#L_confirmloginpassword').val() != $('#L_loginpassword').val()) {return '两次密码不一致';}}});//监听提交form.on('submit(submit)', function (data) {console.log(data.field);$.ajax({url: "/smalladmin/addadmin",type: "post",data: data.field,success: function (s) {if (s == true) {layer.alert("新增普通管理员信息成功!", {icon: 6}, function () {parent.layer.closeAll();parent.location.href = "/admin/sysindex";});} else {layer.msg("登录名重复!", function () {});}},error: function () {layer.msg("接口异常!", function () {});}});});});
</script></body>

后端代码:

SmalladminController
/*** 超级管理员,新增普通管理员页面*/@GetMapping("/addadminpage")public String adduserpage() {return "smalladmin/addadminpage";}/*** 超级管理员新增普通管理员,判断新增普通管理员登录名是否重复*/@GetMapping("/checkloginname")@ResponseBodypublic boolean checkaddadminloginname(@RequestParam("loginname") String loginname) {return smalladminService.checkaddadminloginname(loginname);}/*** 超级管理员新增普通管理员信息*/@PostMapping("/addadmin")@ResponseBodypublic boolean addadmin(@RequestParam("loginname") String loginname,@RequestParam("loginpassword") String loginpassword,@RequestParam("confirmloginpassword") String confirmloginpassword) {return smalladminService.addadmin(loginname,loginpassword);}@GetMapping("/updateadminpage")public String updateadminpage() {return "smalladmin/updateadminpage";}
SmalladminService
/*** 超级管理员新增普通管理员,判断新增普通管理员登录名是否重复*/boolean checkaddadminloginname(String loginname);/*** 超级管理员新增普通管理员信息*/boolean addadmin(String loginname, String loginpassword);
SmalladminServicelpml
/*** 超级管理员新增普通管理员,判断新增普通管理员登录名是否重复*/@Overridepublic boolean checkaddadminloginname(String loginname) {Smalladmin smalladmin=smalladminMapper.selectaddadminloginname(loginname);return smalladmin==null;}/*** 超级管理员新增普通管理员信息*/@Overridepublic boolean addadmin(String loginname, String loginpassword) {return smalladminMapper.addsmalladmin(loginname,loginpassword);}
SmalladminMapper
/*** 超级管理员新增普通管理员时,检查登录名是否重复* @param loginname* @return*/Smalladmin selectaddadminloginname(String loginname);/*** 超级管理员新增普通管理员信息* @param loginname* @param loginpassword* @return*/boolean addsmalladmin(@Param("loginname") String loginname,@Param("loginpassword") String loginpassword);

SmalladminMapper.xml

  <select id="selectaddadminloginname" resultType="com.homestay.pojo.Smalladmin">select<include refid="Base_Column_List"></include>from smalladminwhere sname=#{loginname}</select><insert id="addsmalladmin">insert into smalladmin(sname,spassword)values (#{loginname},#{loginpassword})</insert>

测试:

登录名重复:

必填项为空:

两次密码不一样:

新增成功:

普通管理员分页查询:

前端效果:

前端代码:

<body>
<div class="layui-fluid"><div class="layui-row layui-col-space15"><div class="layui-col-md12"><div class="layui-card"><div class="layui-card-body "><form class="layui-form layui-col-space5"><div class="layui-inline layui-show-xs-block"><input type="text" name="dname" placeholder="管理员名称" autocomplete="off" class="layui-input"></div><div class="layui-inline layui-show-xs-block"><button class="layui-btn" lay-submit="" lay-filter="search_btn"><i class="layui-icon">&#xe615;</i></button></div><a class="layui-btn layui-btn-small" style="line-height:1.6em;margin-top:3px;float:right" onclick="reload();" title="刷新"><i class="layui-icon layui-icon-refresh" style="line-height:30px"></i></a></form></div><div class="layui-card-body "><table id="departmenList" lay-filter="departmenList"></table></div></div></div></div>
</div><script type="text/html" id="departmenListBar"><a class="layui-btn layui-btn-xs" lay-event="edit" >编辑</a><a class="layui-btn layui-btn-xs layui-btn-danger" lay-event="del">删除</a>
</script><script type="text/javascript" th:inline="javascript">layui.use(['form', 'layer', 'table'], function () {var form = layui.form,layer = layui.layer,$ = layui.jquery,table = layui.table;var tableIns = table.render({elem: '#departmenList',url: '/smalladmin/pagequarysmalladmin',method: 'get',title: '管理员列表',page: true,  //开启分页height: "full-110",  //高度最大化减去差值110,高度将始终铺满// toolbar: true,  //开启工具栏limit:10,  //每页显示的条数limits: [5,10,20,30],  //每页条数的选择项cols:[[{type: 'checkbox', field: 'sid', fixed: "left"},{field: 'sid', title: '普通管理员id', align: "center", unresize: "true"},{field: 'sphoto',title: '普通管理员头像',align: 'center',unresize: "true",templet: function(d) {// 如果 uphoto 是图片URL,直接渲染为 <img> 标签return '<img src="' + d.sphoto + '" style="width: 40px; height: 40px; border-radius: 50%;" />';}},{field: 'sname', title: '普通管理员名称', align: 'center', unresize: "true"},{field: 'spassword',title: '普通管理员密码',align: 'center',unresize: "true"},{title: '操作', align: "center", unresize: "true", toolbar: "#departmenListBar"}]]});//搜索form.on('submit(search_btn)', function (data) {tableIns.reload({url: '/smalladmin/listbyname',where: data.field, page: {curr: 1 //重新从第 1 页开始}});return false;});//监听工具条table.on('tool(departmenList)', function (obj) {var data = obj.data, //获得当前行数据layEvent = obj.event; //获得 lay-event 对应的值(也可以是表头的 event 参数对应的值)switch (layEvent) {case 'del':layer.confirm('确定删除此管理员?', {icon: 3, title: '提示信息'}, function (index) {$.post("/smalladmin/delete",{// "nid": $('#nid').val()"sid":data.sid},function (success) {  // 直接接收布尔值if (success) {layer.msg('删除管理员成功', {icon: 1});// 删除成功后刷新父窗口setTimeout(function() {xadmin.father_reload();}, 1000);} else {layer.msg('删除管理员失败', {icon: 2});}});layer.close(index);});return false;// 阻止默认行为break;// case 'edit'://     xadmin.open('管理员编辑', '/admin/checkadminpasswordpage?gid=' + data.gid, 450, 300);//     break;case 'edit':// 构造完整的编辑URL,包含所有参数var editUrl = '/smalladmin/updatesmalladminpage?sid=' + data.sid+ '&sphoto=' + encodeURIComponent(data.sphoto || '')+ '&sname=' + encodeURIComponent(data.sname || '')+ '&spassword=' + encodeURIComponent(data.spassword || '');// 打开编辑窗口(调整弹窗大小以适应内容)xadmin.open('普通员工编辑', editUrl, 800, 550);break;default:break;}});});function reload() {$.get("/smalladmin/reload", function (data) {if (data) {location.reload();} else {parent.location.reload();}});}
</script>
</body>

后端代码:

SmalladminController:
/*** 超级管理员编辑普通管理员,分页查询*/@GetMapping("/pagequarysmalladmin")@ResponseBodypublic Result pagequarysmalladmin(@RequestParam Map<String,Object> map) {int page = Integer.parseInt(map.get("page").toString());int limit = Integer.parseInt(map.get("limit").toString());int start=(page-1)*limit;return smalladminService.getsmalladminList(start,limit);}
SmalladminService
/*** 分页查询普通管理员* @param start* @param limit* @return*/Result getsmalladminList(int start, int limit);
SmalladminServicelpml
/*** 分页查询普通管理员* @param start* @param limit* @return*/@Overridepublic Result getsmalladminList(int start, int limit) {int countsmalladmin=smalladminMapper.countsmalladmin();List<Smalladmin> smalladmins=smalladminMapper.selectsmalladmin(start,limit);Result result=new Result();result.setData(smalladmins);result.setCount(countsmalladmin);result.setMsg("查询成功");result.setCode(0);return result;}
SmalladminMapper:
 /*** 获取普通管理员总数* @return*/int countsmalladmin();/*** 分页查询,获取数据* @param start* @param limit* @return*/List<Smalladmin> selectsmalladmin(@Param("start") int start, @Param("limit") int limit);

SmalladminMapper.xml

  <select id="countsmalladmin" resultType="java.lang.Integer">select count(*) from smalladmin</select><select id="selectsmalladmin" resultType="com.homestay.pojo.Smalladmin">select<include refid="Base_Column_List"></include>from smalladminorder by sidlimit #{start},#{limit}</select>

测试:

一页5条:

一页10条:

模糊查询:

后端代码:

SmalladminController
 /*** 模糊查询*/@GetMapping("/listbyname")@ResponseBodypublic Result listbyname(@RequestParam Map<String,Object> map) {int page = Integer.parseInt(map.get("page").toString());int limit = Integer.parseInt(map.get("limit").toString());int start=(page-1)*limit;String dname=map.get("dname").toString();return smalladminService.listbyname(dname,start,limit);}
SmalladminService
/*** 模糊查询* @param dname* @param start* @param limit* @return*/Result listbyname(String dname, int start, int limit);
SmalladminServicelpml
 /*** 模糊查询* @param dname* @param start* @param limit* @return*/@Overridepublic Result listbyname(String dname, int start, int limit) {int countsmalladmin=smalladminMapper.countsmalladminbyname(dname);List<Smalladmin> smalladmins=smalladminMapper.selectsmalladminbyname(dname,start,limit);Result result=new Result();result.setData(smalladmins);result.setCount(countsmalladmin);result.setMsg("查询成功");result.setCode(0);return result;}
SmalladminMapper
/*** 模糊查询获取名总数* @param dname* @return*/int countsmalladminbyname(@Param("dname") String dname);/*** 模糊查询* @param dname* @param start* @param limit* @return*/List<Smalladmin> selectsmalladminbyname(@Param("dname") String dname, @Param("start") int start, @Param("limit") int limit);
 SmalladminMapper.xml
    <select id="countsmalladminbyname" resultType="java.lang.Integer">select count(*)from smalladminwhere sname like concat('%',#{dname},'%')</select><select id="selectsmalladminbyname" resultType="com.homestay.pojo.Smalladmin">select<include refid="Base_Column_List"></include>from smalladminwhere sname like concat('%',#{dname},'%')order by sidlimit #{start},#{limit}</select>

测试:

删除普通管理员

后端代码:

SmalladminController
/*** 删除普通管理员* @param sid* @return*/@PostMapping("/delete")@ResponseBodypublic boolean delete(@RequestParam("sid") int sid) {return smalladminService.deletesmalladmin(sid);}
SmalladminService
/*** 删除普通管理员* @param sid* @return*/boolean deletesmalladmin(int sid);
SmalladminServicelpml
/*** 删除普通管理员* @param sid* @return*/@Overridepublic boolean deletesmalladmin(int sid) {return smalladminMapper.deletesmalladmin(sid);}
SmalladminMapper
/*** 删除普通管理员* @param sid* @return*/boolean deletesmalladmin(int sid);
SmalladminMapper.xml
  <delete id="deletesmalladmin">delete from smalladminwhere sid = #{sid,jdbcType=INTEGER}</delete>

测试

编辑普通管理员:

前端效果

前端代码

<body>
<div class="layui-fluid"><div class="layui-row"><div class="layui-form"><div class="layui-form-item"><label class="layui-form-label">普通管理员头像</label><div class="img-upload-area"><img class="layui-upload-img" id="nphoto" th:src="${session.smallphoto}"><div class="upload-btn-group"><button type="button" class="layui-btn layui-btn-primary" id="choiceImg"><i class="layui-icon">&#xe67c;</i>选择图片</button><button type="button" class="layui-btn" id="uploadImg"><i class="layui-icon">&#xe67c;</i>上传图片</button></div></div><p id="uploadErrorText" style="margin-left: 120px; color: var(--error-color);"></p></div><div class="layui-form-item"><label for="sid" class="layui-form-label"><span class="x-red">*</span>普通管理员id</label><div class="layui-input-inline"><input type="text" id="sid" name="sid" class="layui-input" readonly="readonly" th:value="${session.sid}"></div></div><div class="layui-form-item"><label for="updatesmallname" class="layui-form-label"><span class="x-red">*</span>修改登录名</label><div class="layui-input-inline"><input type="text" id="updatesmallname" name="updatesmallname" lay-verify="required|loginname" class="layui-input" th:value="${sname}"></div></div><div class="layui-form-item"><label for="updatesmallloginpassword" class="layui-form-label"><span class="x-red">*</span>修改登录密码</label><div class="layui-input-inline"><input type="password" id="updatesmallloginpassword" name="updatesmallloginpassword" lay-verify="required|updatesmallloginpassword" class="layui-input" th:value="${spassword}"></div></div><div class="layui-form-item"><label for="confirmloginpassword" class="layui-form-label"><span class="x-red">*</span>确认密码</label><div class="layui-input-inline"><input type="password" id="confirmloginpassword" name="confirmloginpassword" lay-verify="required|confirmloginpassword" class="layui-input"></div></div><div class="layui-form-item"><label class="layui-form-label"></label><button class="layui-btn" lay-filter="submit" lay-submit="" id="submit"><i class="layui-icon">&#xe605;</i> 保存修改</button></div></div></div>
</div>
<script>layui.use(['form', 'layer', 'upload'], function () {$ = layui.jquery;var form = layui.form,upload = layui.upload,layer = layui.layer;// 表单验证form.verify({required: function(value) {if(value.trim() === '') {return '此项不能为空';}}});//选完文件后不自动上传var uploadInst = upload.render({elem: '#choiceImg',url: '/smalladmin/upload/updatesmalladminphoto',auto: false,bindAction: '#uploadImg',choose: function (obj) {obj.preview(function (index, file, result) {$('#nphoto').attr('src', result);});},before: function() {layer.load(1, {shade: [0.1, '#fff']});},done: function (res) {layer.closeAll('loading');if (res == true) {layer.msg('上传成功', {icon: 1});} else {layer.msg('上传失败', {icon: 2});}},error: function () {layer.closeAll('loading');var uploadErrorText = $('#uploadErrorText');uploadErrorText.html('<span style="color: var(--error-color);">上传失败,请重试</span>');}});//自定义验证规则form.verify({// oldPwd: function (value) {//     var code;//     $.ajax({//         url: "/admin/password",//         type: "GET",//         async: false,  //关闭异步,当success返回结果后才执行ajax之后的内容//         data: {"oldPwd": value},//         success: function (s) {//             code = s;//         }//     });//     if (code != true) {//         return '旧密码错误,请重新输入!';//     }// },updatesmallloginpassword: [/(.+){6,12}$/, '密码必须6到12位'],confirmloginpassword: function () {if ($('#updatesmallloginpassword').val() != $('#confirmloginpassword').val()) {return '两次密码不一致';}}});//监听提交form.on('submit(submit)', function (data) {var loadIndex = layer.load(2, {shade: [0.1, '#fff']});$.ajax({url: "/smalladmin/updatesmalladmininformation",type: "post",data: data.field,success: function (s) {layer.close(loadIndex);if (s == true) {layer.alert("普通管理员信息修改成功!", {icon: 1,title: '成功',skin: 'layui-layer-molv'}, function () {parent.layer.closeAll();parent.location.reload();});} else {layer.msg("登录名重复,普通管理员信息修改失败!", {icon: 2});}},error: function () {layer.close(loadIndex);layer.msg("请求失败,请检查网络连接", {icon: 2});}});return false;});});
</script>
</body>

后端代码:

SmalladminController
/*** 修改普通管理员页面* @return*/@GetMapping("/updatesmalladminpage")public String updatesmalladminpage(@RequestParam("sid")String sid, @RequestParam("sname")String sname,@RequestParam("spassword")String spassword, HttpSession session,@RequestParam("sphoto")String sphoto, Model model) {model.addAttribute("sid", sid);model.addAttribute("sname", sname);model.addAttribute("spassword", spassword);model.addAttribute("sphoto", sphoto);session.setAttribute("smallphoto",sphoto);session.setAttribute("sid",sid);return "smalladmin/updatesmalladminpage";}/*** 修改普通管理员信息* @param sid* @param sname* @return*/@PostMapping("/updatesmalladmininformation")@ResponseBodypublic boolean updatesmalladmininformation(@RequestParam("sid")String sid,@RequestParam("updatesmallname")String sname,@RequestParam("updatesmallloginpassword")String spassword,HttpSession session){return smalladminService.updatesmalladmin(sid,sname,spassword);}@PostMapping({"/upload/updatesmalladminphoto"})@ResponseBodypublic boolean updatesmalladminphoto(HttpServletRequest request, @RequestParam("file")MultipartFile file, HttpSession session, Model model) throws IOException, URISyntaxException{/*1、给文件起一个新的文件名--------------------*/String suffixName = UploadFileUtils.getSuffixName(file);String newFileName = UploadFileUtils.getNewFileName(suffixName);/*-----------------------------------------*//*2.在本机(或服务器)创建一个文件夹-----------*/String realPath = System.getProperty("user.dir") + "\\upload\\";
//System.getProperty("user.dir")获取该项目在本机上的绝对路径,比如“C:\java\demo”
//realPath:图片在服务器上的物理存储地址,比如“C:\java\demo\\upload”File fileDirectory = new File(realPath); //在内存中创建文件夹映射对象,比如“C:\java\demo\\upload”File destFile = new File(realPath + newFileName); //在内存中创建文件映射对象,比如“C:\java\demo\\upload\xxxx.jpg”if (!fileDirectory.exists() && !fileDirectory.mkdirs()) {System.out.println("文件夹创建失败!");return false;}/*-----------------------------------------*//*3.把file以新文件名形式存入本机(或服务器)文件夹-----*/file.transferTo(destFile);/*----------------------------------------------*//*4.创建能访问该文件的URL地址(不是电脑的物理地址、不是绝对路径)放入数据库表-----*/
//new URI()生成一个统一资源定位地址,例如URL,如果语法不正确则抛出异常URI uri = new URI(request.getRequestURL() + "");
//http://localhost:8081/admin/upload/userImg/uri = UploadFileUtils.getHost(uri); //http://localhost:8081String sqlImg = uri + "/upload/" + newFileName; //sqlImg:存入数据库表中的图片地址,比如“http://localhost:8081/upload/xxxx.jpg”if (smalladminService.updatesmalladminphoto(session.getAttribute("sid").toString(), sqlImg)) {session.setAttribute("smalladminphoto", sqlImg);return true;} else {return false;}/*--------------------------------------------------------------------*/}
SmalladminService
 /*** 修改普通管理员信息* @param sid* @param sname* @param spassword* @return*/boolean updatesmalladmin(String sid, String sname, String spassword);/*** 改照片* @param sid* @param sqlImg* @return*/boolean updatesmalladminphoto(String sid, String sqlImg);
SmalladminServicelpml
/*** 修改普通管理员信息* @param sid* @param sname* @param spassword* @return*/@Overridepublic boolean updatesmalladmin(String sid, String sname, String spassword) {try {int countsmalladminname=smalladminMapper.countsmalladminname(sid,sname);//判断登录名是否重复if(countsmalladminname>0){throw new RuntimeException("登录名重复");}} catch (RuntimeException e) {return false;}smalladminMapper.updatesmalladmin(sid,sname,spassword);return true;}/*** 修改头像* @param sid* @param sqlImg* @return*/@Overridepublic boolean updatesmalladminphoto(String sid,  String sqlImg) {return smalladminMapper.updatesmalladminphoto(sid,sqlImg);}
SmalladminMapper
/*** 修改头像* @param sid* @param sqlImg* @return*/boolean updatesmalladminphoto(@Param("sid")String sid,@Param("sqlImg") String sqlImg);/*** 检查登录名是否重复* @param sid* @param sname* @return*/int countsmalladminname(@Param("sid")String sid,@Param("sname") String sname);/*** 修改普通管理员信息* @param sid* @param sname* @param spassword*/void updatesmalladmin(@Param("sid") String sid,@Param("sname") String sname,@Param("spassword") String spassword);
SmalladminMapper.xml
  <update id="updatesmalladminphoto">update smalladminset sphoto=#{sqlImg}where sid=#{sid}</update><select id="countsmalladminname" resultType="java.lang.Integer">select count(*)from smalladminwhere sname=#{sname} and sid!=#{sid}</select><update id="updatesmalladmin">update smalladminset sname=#{sname},spassword=#{spassword}where sid=#{sid}</update>

测试:

登录名重复

密码不一样

必填项为空

修改成功

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词