使用技术:dubbo+zookeeper实现分布式
开发技术:springboot+springmvc+mybatis+shiro(权限管理)
开发工具:IDEA、ECLIPSE
数据库:MYSQL
第三方存储:阿里云OSS存储照片
依赖管理:Maven
前端技术:Vue
开发方式:前后端分离
项目编号:BS-XX-028
本系统功能完整,运行无误,页面交互性强,使用技术先进,适合做毕业设计使用。
部分功能展示:
登陆界面
宾客管理
客房管理
客人登记入住:
历史记录
角色管理
权限管理
本项目功能强大,技术先进,适合做毕业设计使用。
部分实现代码:
package gmail.zxm.dubboz1jdglweb.controller; import com.alibaba.dubbo.config.annotation.Reference; import d.z1.entity.Authority; import d.z1.entity.Message; import d.z1.jdgl.api.IAuthorityService; import gmail.zxm.dubboz1jdglweb.oss.OSSUtil; import org.apache.shiro.authz.annotation.RequiresAuthentication; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletRequest; import javax.websocket.server.PathParam; @RestController @RequestMapping("/authority") public class AuthorityController { @Reference private IAuthorityService authorityService; private Message msg = new Message(); private static Logger log = LoggerFactory.getLogger(AuthorityController.class); @PostMapping("/add") public Message add(Authority authority, @RequestParam(value = "file",required = false) MultipartFile file) throws Exception { try { // 文件不为null时,添加文件 if (!file.isEmpty()) { String fileType = file.getContentType().replace("/", "_"); authority.setPicture(OSSUtil.uploadDocument(file, fileType)); } msg.setData(authorityService.add(authority)); msg.setPageSizes(1); msg.setStatus(200); } catch (Exception e) { throw e; } return msg; } @PostMapping("/del") public Message del(Authority authority) throws Exception { if (authority == null) return msg; try { // 获取文件的url访问地址 String fileName = authority.getPicture().substring(authority.getPicture().indexOf("images")); msg.setData(authorityService.del(authority)); // 对象删除成功,删除图片 OSSUtil.deleteDocument(fileName); msg.setPageSizes(1); msg.setStatus(200); } catch (Exception e) { throw e; } return msg; } @RequiresAuthentication @PostMapping("/rep") public Message rep(Authority authority, @RequestParam(value = "file", required = false) MultipartFile file) throws Exception { try { // 删除旧文件,并上传新文件 if (file != null) { authority.setPicture(OSSUtil.updateDocument(file, file.getContentType().replace("/", "_"), authority.getPicture().substring(authority.getPicture().indexOf("images")))); } msg.setData(authorityService.rep(authority)); msg.setPageSizes(1); msg.setStatus(200); } catch (Exception e) { throw e; } return msg; } @RequiresAuthentication @GetMapping("/getAll/{startIndex}/{endSize}") public Message getAll(@PathVariable Integer startIndex, @PathVariable Integer endSize) throws Exception { try { msg.setData(authorityService.getAll(startIndex, endSize)); msg.setPageSizes(authorityService.getSize()); msg.setStatus(200); System.out.println(authorityService.getAll(startIndex, endSize)); } catch (Exception e) { throw e; } return msg; } @PostMapping("/getT") public Message getT(Authority authority, @RequestParam("startIndex") Integer startIndex, @RequestParam("endSize") Integer endSize) throws Exception { try { msg.setData(authorityService.getT(authority, startIndex, endSize)); msg.setPageSizes(authorityService.getSize()); msg.setStatus(200); } catch (Exception e) { throw e; } return msg; } /** * 接口默认方法,根据权限名,返回,该权限的状态,是否启用权限 * * @param auth 权限名 * @return 返回满足条件的一个字段 */ @GetMapping("/getAuthority/{auth}") public Message getAuthority(@PathVariable String[] auth) throws Exception { try { msg.setData(authorityService.getAuthority(auth)); msg.setStatus(200); System.out.println(msg); } catch (Exception e) { throw e; } return msg; } }
package gmail.zxm.dubboz1jdglweb.controller; import com.alibaba.dubbo.config.annotation.Reference; import d.z1.entity.Book; import d.z1.entity.Message; import d.z1.jdgl.api.IBookService; import org.apache.shiro.authz.annotation.RequiresAuthentication; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.web.bind.annotation.*; import javax.websocket.server.PathParam; @RestController @RequestMapping("/book") public class BookController { @Reference private IBookService bookService; private Message msg = new Message(); @PostMapping("/add") @RequiresPermissions("book:add") public Message add(Book book)throws Exception { try { msg.setData(bookService.add(book)); msg.setPageSizes(1); msg.setStatus(200); } catch (Exception e) { throw e; } return msg; } @PostMapping("/del") @RequiresPermissions("book:del") public Message del(Book book)throws Exception { System.out.println(book.getRecord()); if (book == null) return msg; try { msg.setData(bookService.del(book)); msg.setPageSizes(1); msg.setStatus(200); } catch (Exception e) { throw e; } return msg; } @PostMapping("/rep") @RequiresPermissions("book:rep") public Message rep(Book book)throws Exception { try { msg.setData(bookService.rep(book)); msg.setPageSizes(1); msg.setStatus(200); } catch (Exception e) { throw e; } return msg; } @GetMapping("/getAll/{startIndex}/{endSize}") @RequiresAuthentication public Message getAll(@PathVariable Integer startIndex, @PathVariable Integer endSize)throws Exception { try { msg.setData(bookService.getAll(startIndex,endSize)); msg.setPageSizes(bookService.getSize()); msg.setStatus(200); System.out.println(bookService.getAll(startIndex,endSize)); } catch (Exception e) { throw e; } return msg; } @PostMapping("/getT") @RequiresAuthentication public Message getT(Book book, @RequestParam("startIndex") Integer startIndex, @RequestParam("endSize") Integer endSize)throws Exception { try { msg.setData(bookService.getT(book,startIndex,endSize)); msg.setPageSizes(bookService.getSize()); msg.setStatus(200); } catch (Exception e) { throw e; } return msg; } }
package gmail.zxm.dubboz1jdglweb.controller; import com.alibaba.dubbo.config.annotation.Reference; import d.z1.entity.Message; import d.z1.jdgl.api.ICustomerService; import d.z1.entity.Customer; import gmail.zxm.dubboz1jdglweb.oss.OSSUtil; import org.apache.shiro.authz.annotation.RequiresAuthentication; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.websocket.server.PathParam; @RestController @RequestMapping("/customer") public class CustomerController { @Reference private ICustomerService customerService; private Message msg = new Message(); @PostMapping("/add") @RequiresPermissions("customer:add") public Message add(Customer customer, @RequestParam(value = "file",required = false) MultipartFile file) throws Exception { try { // 文件不为null时,添加新文件 if (file != null) customer.setCustomerPicture(OSSUtil.uploadDocument(file, file.getContentType().replace("/","_"))); msg.setData(customerService.add(customer)); msg.setPageSizes(1); msg.setStatus(200); } catch (Exception e) { throw e; } return msg; } @PostMapping("/del") @RequiresPermissions("customer:del") public Message del(Customer customer) throws Exception { if (customer == null) return msg; try { // 获取文件url访问地址 String fileName = customer.getCustomerPicture().substring(customer.getCustomerPicture().indexOf("images")); msg.setData(customerService.del(customer)); // 对象删除成功时,根据文件名删除文件 OSSUtil.deleteDocument(fileName); msg.setPageSizes(1); msg.setStatus(200); } catch (Exception e) { throw e; } return msg; } @PostMapping("/rep") @RequiresPermissions("customer:rep") public Message rep(Customer customer, @RequestParam(value = "file",required = false) MultipartFile file) throws Exception { try { // 删除旧文件,并上传新文件 if (file != null){ customer.setCustomerPicture(OSSUtil.updateDocument(file, file.getContentType().replace("/","_"), customer.getCustomerPicture().substring(customer.getCustomerPicture().indexOf("upload")))); } msg.setData(customerService.rep(customer)); msg.setPageSizes(1); msg.setStatus(200); } catch (Exception e) { throw e; } return msg; } @RequiresAuthentication @GetMapping("/getAll/{startIndex}/{endSize}") public Message getAll(@PathVariable Integer startIndex, @PathVariable Integer endSize) throws Exception { try { msg.setData(customerService.getAll(startIndex, endSize)); msg.setPageSizes(customerService.getSize()); msg.setStatus(200); } catch (Exception e) { throw e; } return msg; } @PostMapping("/getT") @RequiresAuthentication public Message getT(Customer customer, @RequestParam("startIndex") Integer startIndex, @RequestParam("endSize") Integer endSize) throws Exception { try { msg.setData(customerService.getT(customer, startIndex, endSize)); msg.setPageSizes(customerService.getSize()); msg.setStatus(200); } catch (Exception e) { throw e; } return msg; } }