售票系统|基于springboot+vue+elementui实现海底世界售票系统(一)https://developer.aliyun.com/article/1423356
5.6后台管理模块
5.6.1 用户管理功能
用户管理管理模块由三个功能组成,用户信息管理、订单信息管理、用户爱好管理。这三个功能包括基本的新增、修改、删除、查询。在进行这些操作的时候会统一的交给/sysUser接口进行传输到后台,再根据传输的数据决定调用哪个控制层进行操作传递,在传到服务层进行数据的改变。这些功能统一用功能抽取进行实现的。
用户信息管理使用/sysUser/userinfo,接口接收数据的在进入后调用服务层内的增删改查进行管理和操作。具体操作如图5-16所示。
图5-15 用户信息页面图
用户信息管理使用/sysUser/BillInfo,接口接收数据的在进入后调用服务层内的增删改查进行管理和操作。具体操作如图5-16所示。
图5-16 用户订单页面图
用户信息管理使用/sysUser/UserHabit,接口接收数据的在进入后调用服务层内的增删改查进行管理和操作。具体操作如图5-17所示。
图5-17 用户爱好页面图
5.6.2 权限管理功能
权限管理是由角色信息管理和资源信息管理组成,这两个功能包括基本的新增、修改、删除、查询功能。
角色信息管理功能是负责管理拥有权限的角色或者新建角色,这些角色是负责装取资源。在进行基本的事务操作后统一交到/sysRole接口中再由传输的数据下放细分在具体调用/sysRloe中相应方法接着进行对应数据处理和操作。后端负责相应前端的操作进行角色的管理。具体操作如图5-18所示。
图5-18 角色信息管理页面图
资源信息管理,是对页面资源进行管理,给角色分配不同的页面资源角色就要不同的权限去访问相应的页面。在进行资源管理的同时所进行的任何操作都将通过/sysResource接口传输到后端进行事务操作。具体进行的操作会细分到其控制层中去调用相应服务层的方法进行数据处理和后续操作。具体操作如图5-19所示。
图5-19 资源信息管理页面图
5.6.3 海底世界管理功能
海底世界管理功能是由海底世界信息管理、海底世界区域管理、海底世界品牌管理组成。这三个功能包括基本的新增、修改、删除、查询功能。这三个功能拥有各个管理功能中的基本事务逻辑。
海底世界信息管理,是对海底世界详细信息进行管理,海底世界信息管理标签查询功能方便用户更加快的找到相应想要的数据。在进行海底世界信息管理的同时所进行的任何操作都将通过/sysMovieinfo接口传输到后端进行事务操作。具体进行的操作会细分到其控制层中去调用相应服务层的方法进行数据处理和后续操作。具体操作如图5-20所示。
图5-20 海底世界详细信息管理页面图
海底世界区域管理,是对海底世界区域操作进行管理,对个各个省份还有市区有门店的地方进行管理。在进行海底世界区域管理的同时所进行的任何操作都将通过/sysMovieArea接口传输到后端进行事务操作。具体进行的操作会细分到其控制层中去调用相应服务层的方法进行数据处理和后续操作。具体操作如图5-21所示。
图5-21 海底世界区域管理页面图
海底世界品牌管理,是对海底世界品牌操作进行管理,对所有相应的海底世界品牌进行操作对新注册的海底世界品牌进行添加。在进行海底世界区域管理的同时所进行的任何操作都将通过/sysMovieCinema接口传输到后端进行事务操作。具体进行的操作会细分到其控制层中去调用相应服务层的方法进行数据处理和后续操作。具体操作如图5-22所示。
图5-22 海底世界品牌管理页面图
四,核心代码展示
package com.gouyan.web.controller.system; import com.gouyan.common.response.ResponseResult; import com.gouyan.system.domin.SysRole; import com.gouyan.system.service.impl.SysRoleServiceImpl; import com.gouyan.web.controller.BaseController; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import java.util.List; @RestController public class SysRoleController extends BaseController { @Autowired SysRoleServiceImpl sysRoleService; @GetMapping("/sysRole") public ResponseResult findAll(){ startPage(); List<SysRole> data = sysRoleService.findAll(); return getResult(data); } @GetMapping("/sysRole/{id}") public ResponseResult findById(@PathVariable Long id){ return getResult(sysRoleService.findById(id)); } @PostMapping("/sysRole") public ResponseResult add(@Validated @RequestBody SysRole sysRole){ return getResult(sysRoleService.add(sysRole)); } @PutMapping("/sysRole") public ResponseResult update(@Validated @RequestBody SysRole sysRole){ return getResult(sysRoleService.update(sysRole)); } @DeleteMapping("/sysRole/{ids}") public ResponseResult delete(@PathVariable Long[] ids){ return getResult(sysRoleService.delete(ids)); } /** * 给指定 id 的角色分配权限,包括增加或者删除权限 * @param roleId * @param keys * @return */ @PostMapping("/sysRole/{roleId}") public ResponseResult allotRight(@PathVariable Long roleId, @RequestBody Long[] keys){ return getResult(sysRoleService.allotRight(roleId, keys)); } }
package com.gouyan.web.controller.system; import com.fasterxml.jackson.core.JsonProcessingException; import com.gouyan.common.response.ResponseResult; import com.gouyan.common.utils.StringUtil; import com.gouyan.system.domin.LoginUser; import com.gouyan.system.domin.SysUser; import com.gouyan.system.domin.vo.SysUserVo; import com.gouyan.system.service.impl.SysUserServiceImpl; import com.gouyan.web.controller.BaseController; import org.apache.shiro.SecurityUtils; import org.apache.shiro.authc.AuthenticationException; import org.apache.shiro.authc.IncorrectCredentialsException; import org.apache.shiro.authc.UnknownAccountException; import org.apache.shiro.authc.UsernamePasswordToken; import org.apache.shiro.subject.Subject; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import java.util.List; /** * @author * @create 2022-11-22 21:52 */ @RestController public class SysUserController extends BaseController { @Autowired private SysUserServiceImpl sysUserService; @GetMapping("/sysUser") public ResponseResult findAll(SysUser sysUser){ startPage(); List<SysUser> data = sysUserService.findAll(sysUser); return getResult(data); } @GetMapping("/sysUser/{id}") public ResponseResult findById(@PathVariable Long id){ return getResult(sysUserService.findById(id)); } /** * 添加用户请求,注册也在这里 * @param sysUser * @return */ @PostMapping("/sysUser") public ResponseResult add(@Validated @RequestBody SysUser sysUser){ return getResult(sysUserService.add(sysUser)); } @PutMapping("/sysUser") public ResponseResult update(@Validated @RequestBody SysUser sysUser){ return getResult(sysUserService.update(sysUser)); } @DeleteMapping("/sysUser/{ids}") public ResponseResult delete(@PathVariable Long[] ids){ return getResult(sysUserService.delete(ids)); } //用户登录 @RequestMapping("/sysUser/login") public ResponseResult login(@RequestBody SysUserVo sysUserVo){ return getResult(sysUserService.login(sysUserVo)); } }
package com.gouyan.web.controller.system; import com.gouyan.common.response.ResponseResult; import com.gouyan.system.domin.SysUserHobby; import com.gouyan.system.service.impl.SysUserHobbyServiceImpl; import com.gouyan.web.controller.BaseController; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import java.util.List; /** * @Author: * @Create: 2022-11-20 10:54 */ @RestController public class SysUserHobbyController extends BaseController { @Autowired SysUserHobbyServiceImpl sysUserHobbyService; @GetMapping("/sysUserHobby") public ResponseResult findAll(){ startPage(); List<SysUserHobby> data = sysUserHobbyService.findAll(); return getResult(data); } @GetMapping("/sysUserHobby/{id}") public ResponseResult findById(@PathVariable Long id){ return getResult(sysUserHobbyService.findById(id)); } @PostMapping("/sysUserHobby") public ResponseResult add(@Validated @RequestBody SysUserHobby sysUserHobby){ return getResult(sysUserHobbyService.add(sysUserHobby)); } @PutMapping("/sysUserHobby") public ResponseResult update(@Validated @RequestBody SysUserHobby sysUserHobby){ return getResult(sysUserHobbyService.update(sysUserHobby)); } @DeleteMapping("/sysUserHobby/{ids}") public ResponseResult delete(@PathVariable Long[] ids){ return getResult(sysUserHobbyService.delete(ids)); } }
五,项目总结
本系统使用Java基础语言和成熟的springboot框架和vue框架集成开发做到前后端分离,MybatisPlus和MySQL也是非常成熟的技术是开发变得更加简洁。资料文档齐全,并且系统在市场上已经有成熟的同类型系统案例。技术上可行。