一、项目介绍
1、项目用到的技术栈
开发工具:idea
语言:java、js、html+ajax
数据库:MySQL
框架:springboot、mybatis
2、项目实现功能
后台管理系统:
系统包含用户登录、用户管理、角色管理、权限管理、公告管理、分类管理、文章管理、文件管理、评论管理、收藏管理、私信管理等功能
前台博客系统:
首页、分类页、我得收藏、文件资源、阅读排行、发布文章、评论管理、私信管理等功能。
二、项目展示
三、源码探讨
package com.bsgogogo.controller;import cn.hutool.core.collection.CollUtil; import cn.hutool.core.io.IoUtil; import cn.hutool.poi.excel.ExcelUtil; import cn.hutool.poi.excel.ExcelWriter; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.bsgogogo.common.Result; import com.bsgogogo.entity.User; import com.bsgogogo.service.UserService; import org.springframework.web.bind.annotation.*;import javax.annotation.Resource; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.net.URLEncoder; import java.util.Collection; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.concurrent.ConcurrentHashMap;@RestController @RequestMapping("/api/user") public class UserController {public static final ConcurrentHashMap<String, User> MAP = new ConcurrentHashMap<>();@Resourceprivate UserService userService;/*** 登录** @param user* @param request* @return*/@PostMapping("/login")public Result<User> login(@RequestBody User user, HttpServletRequest request) {User res = userService.login(user);request.getSession().setAttribute("user", res);MAP.put(res.getUsername(), res);return Result.success(res);}/*** 注册** @param user* @param request* @return*/@PostMapping("/register")public Result<User> register(@RequestBody User user, HttpServletRequest request) {if (user.getPassword() == null) {user.setPassword("123456");}User dbUser = userService.register(user);request.getSession().setAttribute("user", user);return Result.success(dbUser);}@GetMapping("/logout")public Result<?> logout(HttpServletRequest request) {User user = (User) request.getSession().getAttribute("user");if (user != null) {request.getSession().removeAttribute("user");MAP.remove(user.getUsername());}return Result.success();}@GetMapping("/online")public Result<Collection<User>> online(HttpServletRequest request) {return Result.success(MAP.values());}@PostMappingpublic Result<?> save(@RequestBody User user) {if (user.getPassword() == null) {user.setPassword("123456");}return Result.success(userService.save(user));}@PutMappingpublic Result<?> update(@RequestBody User user) {return Result.success(userService.updateById(user));}@DeleteMapping("/{id}")public Result<?> delete(@PathVariable Long id) {userService.removeById(id);return Result.success();}@GetMapping("/{id}")public Result<User> findById(@PathVariable Long id) {return Result.success(userService.getById(id));}@GetMapping("/detail/{username}")public Result<User> findByUsername(@PathVariable String username) {return Result.success(userService.getbyUsername(username));}@GetMappingpublic Result<List<User>> findAll() {return Result.success(userService.list());}@GetMapping("/page")public Result<IPage<User>> findPage(@RequestParam(required = false, defaultValue = "") String name,@RequestParam(required = false, defaultValue = "1") Integer pageNum,@RequestParam(required = false, defaultValue = "10") Integer pageSize) {return Result.success(userService.page(new Page<>(pageNum, pageSize), Wrappers.<User>lambdaQuery().like(User::getUsername, name).orderByDesc(User::getId)));}@GetMapping("/list")public Result<List<User>> listResult() {return Result.success(userService.list(Wrappers.<User>lambdaQuery().orderByDesc(User::getId)));}@GetMapping("/export")public void export(HttpServletResponse response) throws IOException {List<Map<String, Object>> list = CollUtil.newArrayList();List<User> all = userService.list();for (User user : all) {Map<String, Object> row1 = new LinkedHashMap<>();row1.put("名称", user.getUsername());row1.put("手机", user.getPhone());row1.put("邮箱", user.getEmail());list.add(row1);}// 2. 写excelExcelWriter writer = ExcelUtil.getWriter(true);writer.write(list, true);response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8");String fileName = URLEncoder.encode("用户信息", "UTF-8");response.setHeader("Content-Disposition", "attachment;filename=" + fileName + ".xlsx");ServletOutputStream out = response.getOutputStream();writer.flush(out, true);writer.close();IoUtil.close(System.out);}}
欢迎大家一起交流学习:760508995