java基于springboot+vue的汉服推广与交流平台
在时间安排上,开发系统所需要的时间是充裕的。从老师发布课题到完成课题,这期间有大量的时间去准备毕业项目。从设计初期对整个开发项目进行背景调查,以及中期的系统分析与实现,到最后的系统测试,充分利用课余课堂时间,所以时间可行性上是可以的。 本课题使用的技术多数来自大学课程,一小部分来自自行搜索的技术,在实现对数据的增删改查中,充分调动了大学中所使用的开发技术,在实体属性分析的时候充分调用了UML的知识。
/** * 登录相关 */ @RequestMapping("users") @RestController public class UserController{ @Autowired private UserService userService; @Autowired private TokenService tokenService; /** * 登录 */ @IgnoreAuth @PostMapping(value = "/login") public R login(String username, String password, String captcha, HttpServletRequest request) { UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username)); if(user==null || !user.getPassword().equals(password)) { return R.error("账号或密码不正确"); } String token = tokenService.generateToken(user.getId(),username, "users", user.getRole()); return R.ok().put("token", token); } /** * 注册 */ @IgnoreAuth @PostMapping(value = "/register") public R register(@RequestBody UserEntity user){ // ValidatorUtils.validateEntity(user); if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) { return R.error("用户已存在"); } userService.insert(user); return R.ok(); } /** * 退出 */ @GetMapping(value = "logout") public R logout(HttpServletRequest request) { request.getSession().invalidate(); return R.ok("退出成功"); } /** * 密码重置 */ @IgnoreAuth @RequestMapping(value = "/resetPass") public R resetPass(String username, HttpServletRequest request){ UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username)); if(user==null) { return R.error("账号不存在"); } user.setPassword("123456"); userService.update(user,null); return R.ok("密码已重置为:123456"); } /** * 列表 */ @RequestMapping("/page") public R page(@RequestParam Map<String, Object> params,UserEntity user){ EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>(); PageUtils page = userService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.allLike(ew, user), params), params)); return R.ok().put("data", page); } /** * 列表 */ @RequestMapping("/list") public R list( UserEntity user){ EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>(); ew.allEq(MPUtil.allEQMapPre( user, "user")); return R.ok().put("data", userService.selectListView(ew)); } /** * 信息 */ @RequestMapping("/info/{id}") public R info(@PathVariable("id") String id){ UserEntity user = userService.selectById(id); return R.ok().put("data", user); } /** * 获取用户的session用户信息 */ @RequestMapping("/session") public R getCurrUser(HttpServletRequest request){ Long id = (Long)request.getSession().getAttribute("userId"); UserEntity user = userService.selectById(id); return R.ok().put("data", user); } /** * 保存 */ @PostMapping("/save") public R save(@RequestBody UserEntity user){ // ValidatorUtils.validateEntity(user); if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) { return R.error("用户已存在"); } userService.insert(user); return R.ok(); } /** * 修改 */ @RequestMapping("/update") public R update(@RequestBody UserEntity user){ // ValidatorUtils.validateEntity(user); userService.updateById(user);//全部更新 return R.ok(); } /** * 删除 */ @RequestMapping("/delete") public R delete(@RequestBody Long[] ids){ userService.deleteBatchIds(Arrays.asList(ids)); return R.ok(); } }
通过软件的需求分析已经获得了系统的基本功能需求,根据需求,将汉服推广与交流平台功能模块主要分为管理员模块。管理员添加汉服知识管理、分类管理,图文动态管理、视频动态管理等操作
当前主流的数据库包括SQL Server,Oracle和MySQL,先比而言前两者都比较庞大,且都是收费的,MySQL不仅小巧,查询速度快,而且它是免费开源的。这也是本次开发使用MYSQL数据库做完存储介质的一个重要原因。MySQL虽然小巧,但是它的功能依然非常的强大,当前很多主流的互联网公司也都在使用MySQL,尤其是随着Web的盛行,MySQL更是变成了当前最后欢迎的数据库之一。MySQL除了提供基本的机构化查询语句之外,还提供了视图,存储过程和事务等非常强大的功能。这对于基本的开发完全可以胜任,所以本次开发选择了MySQL做完存储数据库。