源码获取:俺的博客首页 "资源" 里下载!
项目介绍
基于SpringBoot Vue的漫画之家系统
角色:管理员、用户
管理员:管理员登录进入系统可以查看首页,个人中心,用户管理,漫画管理,同人插画管理,漫画活动管理,商品管理,论坛管理,我的收藏管理,留言板管理,系统管理,订单管理等功能
用户:在用户管理页面中可以查看索引,用户账号,用户姓名,性别,联系方式,头像等内容,并进行详情,修改和删除等操作
环境需要
1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。
2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;
3.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS;
4.数据库:MySql 5.7/8.0版本均可;
5.是否Maven项目:是;
技术栈
后端:SpringBoot+Mybaits
前端:Vue+ElementUI+Layui+HTML+CSS+JS
使用说明
项目运行:
1. 使用Navicat或者其它工具,在mysql中创建对应sql文件名称的数据库,并导入项目的sql文件;
2. 使用IDEA/Eclipse/MyEclipse导入项目,导入成功后请执行maven clean;maven install命令,然后运行;
3. 将项目中application.yml配置文件中的数据库配置改为自己的配置;
4. 运行项目,控制台提示运行成功后再去运行前端项目;
5. 管理员用户名密码:admin/admin
普通用户名密码:user/123456
管理员控制层:
@Controller
@RequestMapping("/admin")
public class UserController {
@Autowired
private IUserService userService;
//加载列表界面
@RequestMapping("/userView")
public String showUser() {
return "user/user";
}
//跳转add页面
@RequestMapping("/addView")
public String userAddView() {
return "user/userAdd";
}
@RequestMapping(value = "/userAdd", method = RequestMethod.POST)
@ResponseBody
public String userAdd(@RequestBody User user) {
int insert = userService.insert(user);
if (insert < 0) {
return "error";
}
return "success";
}
//page=1&limit=10
@RequestMapping(value = "/userList", method = RequestMethod.GET)
public @ResponseBody
Map<String, Object> showUserList(@RequestParam("page") int page, @RequestParam("limit") int limit,
String keyword1, String keyword2) {
System.out.println("keyword1 = " + keyword1);
System.out.println("keyword2 = " + keyword2);
//查询结果集对象
List<User> countData = userService.selectAll(keyword1, keyword2);
//封装json数据
Map<String, Object> resultMap = new HashMap<String, Object>();
//分页
if (page < 0) {
page = 1;
PageHelper.startPage(page, limit);
}
List<User> users = userService.selectAll(keyword1, keyword2);
resultMap.put("code", 0);
resultMap.put("msg", "");
//结果总数
resultMap.put("count", countData.size());
//结果对象数据
resultMap.put("data", users);
return resultMap;
}
@RequestMapping("/delete")
@ResponseBody
public String delete(@RequestParam("id") Long id) {
System.out.println("id = " + id);
int index = userService.deleteByPrimaryKey(id);
if (index > 0) {
return "success";
}
//删除失败返回error
return "error";
}
@RequestMapping("/update")
@ResponseBody
public String update(@RequestBody User user) {
if (user != null) {
int index = userService.updateByPrimaryKey(user);
if (index > 0) {
return "success";
}
}
return "error";
}
}
登录控制层:
@Controller
public class LoginController {
//依赖Mapper
@Autowired
private UserMapper mapper;
//处理验证码
@RequestMapping("/imageCode")
public void imgCode(HttpServletRequest request, HttpServletResponse response) throws IOException {
//这个方法实现验证码的生成
BufferedImage bi = new BufferedImage(68, 22, BufferedImage.TYPE_INT_RGB);//创建图像缓冲区
Graphics g = bi.getGraphics(); //通过缓冲区创建一个画布
Color c = new Color(200, 150, 255); //创建颜色
/*根据背景画了一个矩形框
*/
g.setColor(c);//为画布创建背景颜色
g.fillRect(0, 0, 68, 22); //fillRect:填充指定的矩形
char[] ch = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789".toCharArray();//转化为字符型的数组
Random r = new Random();
int len = ch.length;
int index; //index用于存放随机数字
StringBuffer sb = new StringBuffer();
for (int i = 0; i < 4; i++) {
index = r.nextInt(len);//产生随机数字
g.setColor(new Color(r.nextInt(88), r.nextInt(188), r.nextInt(255))); //设置颜色
g.drawString(ch[index] + "", (i * 15) + 3, 18);//画数字以及数字的位置
sb.append(ch[index]);
}
request.getSession().setAttribute("imgCode", sb.toString()); //将数字保留在session中,便于后续的使用
ImageIO.write(bi, "JPG", response.getOutputStream());
}
//登入处理
@RequestMapping(value = "/login", method = {RequestMethod.POST, RequestMethod.GET})
public ModelAndView login(@RequestParam("loginname") String loginname, @RequestParam("password") String password,
@RequestParam("imgCode") String imgCode, HttpSession session, ModelAndView mv) {
User user = mapper.selectByLogin(loginname, password);
//取出session中的验证码
String imgCode1 = (String) session.getAttribute("imgCode");
System.out.println("user = " + user);
//校验账号密码
if (user == null) {
session.setAttribute("errorMsg", "账号密码错误!请检查!");
session.setAttribute("loginname", loginname);
// 服务器内部跳转到登录页面
mv.setViewName("forward:/login.jsp");
return mv;
//检验验证码
} else if (!(imgCode.equals(imgCode1))) {
session.setAttribute("errorMsg", "验证码错误!请重新输入!");
session.setAttribute("loginname", loginname);
// 服务器内部跳转到登录页面
mv.setViewName("forward:/login.jsp");
return mv;
} else if (user.getState() == 0) {
session.setAttribute("errorMsg", user.getLoginname()+"用户被锁定!请联系管理员!");
session.setAttribute("loginname", loginname);
// 服务器内部跳转到登录页面
mv.setViewName("forward:/login.jsp");
return mv;
}
//存储用户登入信息
UserContext.setUserInSession(user);
// 客户端跳转到main页面
mv.setViewName("redirect:/main");
return mv;
}
@RequestMapping("/main")
public String main() {
return "main";
}
//注销处理
@RequestMapping("/loginOut")
public String invalidate(HttpSession session) {
session.invalidate();
return "redirect:login.jsp";
}
}
首页管理控制层:
@Controller
public class WelcomeController {
@RequestMapping("/hello")
public String welcome(){
return "common/welcome";
}
//跳转到主页
@RequestMapping("/index")
public String index(){
return "/main.jsp";
}
}
源码获取:俺的博客首页 "资源" 里下载!