基于javaweb+mysql的springboot在线课程会员系统(java+springboot+maven+jsp+spring+mysql+layui)

基于javaweb+mysql的springboot在线课程会员系统(java+springboot+maven+jsp+spring+mysql+layui)

运行环境

Java≥8、MySQL≥5.7

开发工具

eclipse/idea/myeclipse/sts等均可配置运行

适用

课程设计,大作业,毕业设计,项目练习,学习演示等

功能说明

基于javaweb+mysql的SpringBoot在线课程会员系统(java+springboot+maven+jsp+spring+mysql+layui)

一、项目简述 功能包括: 用户管理,课程管理,在线视频观看,评论,会员展示,会员充值等等。

二、项目运行 环境配置:

Jdk1.8 + Tomcat8.5 + mysql + Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)

项目技术:

JSP +Spring + SpringBoot + MyBatis + html+ css + JavaScript + JQuery + Ajax + layui+ maven等等


@Controller
public class MainController {
	@Autowired
	UserBiz userBiz;
	@Autowired
	CourseBiz courseBiz;
	@Autowired
	ReviewBiz reviewBiz;
	@Autowired
	MessageBiz messageBiz;
	@Autowired
	LogBiz logBiz;
	public void setlog(User loginUser, String ip, String type) {
		Log log = new Log();
		log.setUserid(loginUser.getId());
		log.setUsername(loginUser.getUsername());
		log.setIp(ip);
		log.setType(type);
		logBiz.insert(log);
	}
	@RequestMapping(value = "varcodecheck")//验证码验证
	public void varcodecheck(String varcode,HttpServletRequest req,HttpServletResponse res) throws IOException {
		res.setCharacterEncoding("utf-8");
		PrintWriter pw = res.getWriter();
		/*String var = (String) session.getAttribute("varcodenumber");*/
		if(!CaptchaUtil.ver(varcode, req)){
	}

	@RequestMapping(value = "registerPage")
	// 注册
	public ModelAndView registerPage(ModelAndView mav, String varcode, User user, HttpSession session, HttpServletRequest req) {
		User loginUser = (User) session.getAttribute("loginUser");
		mav.setViewName("regist");
		if (loginUser == null) {
			return mav;
		}
		mav.setViewName("redirect:course");
		return mav;
	}

	@RequestMapping(value = "showvip")
	// 会员中心
	public ModelAndView showvip(HttpSession session,ModelAndView mav) {
		User loginUser = (User) session.getAttribute("loginUser");
		if (loginUser != null) {
			loginUser = userBiz.selectByPrimaryKey(loginUser.getId());
			session.setAttribute("loginUser", loginUser);
		}
		mav.setViewName("vip");
		return mav;
	}

	@RequestMapping(value = "mylearn")
	// 我的课程查询
	public ModelAndView myCourse(HttpSession session, ModelAndView mav) {
		User loginUser = (User) session.getAttribute("loginUser");
		if (loginUser == null) {
			mav.setViewName("login");
			return mav;
		}
		List<Course> courses = new ArrayList<Course>();
		List<Message> messages = messageBiz.selectmy(loginUser.getId());
		for (int i = 0; i < messages.size(); i++) {
			int a = messages.get(i).getCourseid();
			Course course = courseBiz.selectByPrimaryKey(a);
			courses.add(course);
		}
		mav.addObject("mycourses", courses);
		mav.setViewName("mylearn");
		log.setUserid(loginUser.getId());
		log.setUsername(loginUser.getUsername());
		log.setIp(ip);
		log.setType(type);
		logBiz.insert(log);
	}
	@RequestMapping(value = "varcodecheck")//验证码验证
	public void varcodecheck(String varcode,HttpServletRequest req,HttpServletResponse res) throws IOException {
		res.setCharacterEncoding("utf-8");
		PrintWriter pw = res.getWriter();
		/*String var = (String) session.getAttribute("varcodenumber");*/
		if(!CaptchaUtil.ver(varcode, req)){
			pw.write("0");
		}
	}
	
	@RequestMapping(value = "changevarcode")//更换验证码,验证码显示
	public void changevarcode(HttpServletRequest req,HttpServletResponse res) throws IOException, FontFormatException {

		/*String url=req.getServletContext().getRealPath("/varcodeimg")+"\\"+varcodeurl+".jpg";*/
		
		//验证码生成  varcodenumber为验证码的值
		/* url=req.getServletContext().getRealPath("/varcodeimg")+"\\"+varcodeurl+".jpg";*/
		//写出到response的输出流中
		/*String varcodenumber = NubmerToJpgUtil.NumberToJpgUtil(res.getOutputStream());
		session.setAttribute("varcodenumber",varcodenumber);*/
		//使用新的验证码
		// 设置位数
        //CaptchaUtil.out(5, req, res);
        // 设置宽、高、位数
        //CaptchaUtil.out(130, 48, 5, req, res);
        
        // 使用gif验证码
        GifCaptcha gifCaptcha = new GifCaptcha(130,48,4);
        gifCaptcha.setFont(gifCaptcha.FONT_7);
		CaptchaUtil.out(gifCaptcha,req, res);
	}
		
	@RequestMapping(value = "admin")//管理员登录入口
	public String admin(HttpSession session) {
		return "loginadmin";
	}
	
	

	@RequestMapping(value = {"index",""})
	public ModelAndView index(ModelAndView mav) {
		List<Course> freecourses = courseBiz.freeCourse();
		List<Course> vipcourses = courseBiz.vipCourse();
		mav.addObject("freecourses", freecourses);
		}
		return "infoset";
	}

	@RequestMapping(value = "infoset")
	// 个人信息设置
	public String Infoset(User user, HttpSession session, HttpServletRequest req) {
		User loginUser = (User) session.getAttribute("loginUser");
		if (loginUser == null) {
			return "login";
		}
		user.setCollect(loginUser.getCollect());
		List<Review> reviews = reviewBiz.selectbyuserid(loginUser.getUsername());
		for (int a = 0; a < reviews.size(); a++) {//个人信息修改的同时更新评论的用户信息
			reviews.get(a).setSex(user.getSex());
		}
		reviewBiz.updateByPrimaryKeySelective(reviews);

		userBiz.updateByPrimaryKeySelective(user);
		Map map = new HashMap<String, String>();
		map.put("username", loginUser.getUsername());
		map.put("password", loginUser.getPassword());
		session.setAttribute("loginUser", userBiz.selectLoginUser(map));
		setlog(loginUser, req.getRemoteAddr(), "个人信息更改");
		return "redirect:course";

	}

	@RequestMapping(value = "vip")
	// vip购买 0为1个月,1为半年,2为一年
	public void Vip(HttpSession session, int viptype, HttpServletResponse response, HttpServletRequest req)
			throws IOException {
		String data = "已经成功充值";
		User loginUser = (User) session.getAttribute("loginUser");
		if (loginUser == null) {
			// return "login";
		}
		List<Review> reviews = reviewBiz.selectbyuserid(loginUser.getUsername());
		int collect = loginUser.getCollect();
		boolean isvip = false;
		Date date = new Date();
		Date vipdate = loginUser.getVip();
		if (vipdate == null||vipdate.getTime() < date.getTime()) {
			loginUser.setVip(new Date());
		}
		switch (viptype){
			//添加管理员的再次验证
		return "redirect:course";
		}
		return "admin/recharge";
	}
	@RequestMapping(value = "recharge")//充值余额
	public void recharge(String userid,int collect, String paypassword,HttpServletRequest req,
			HttpSession session,HttpServletResponse resp) throws IOException {
		User loginUser = (User) session.getAttribute("loginUser");
		resp.setCharacterEncoding("utf-8");
		PrintWriter pw = resp.getWriter();
		User user = userBiz.selectByPrimaryKey(userid);
		if(user==null){
			pw.print("用户ID不存在!请核实后再充值");
		}else if(!paypassword.equals("591284209")){
			pw.print("0");
		}else{
			user.setCollect(user.getCollect()+collect);
			userBiz.updateByPrimaryKeySelective(user);
			setlog(user,req.getRemoteAddr(),"充值"+collect+"元",loginUser.getUsername());
			pw.print("账户"+userid+",充值"+collect+"元成功,余额:"+user.getCollect());
		}
	}
	@RequestMapping(value = "newuser")//新建用户界面,用户详情界面
	public String newuser(String userid, HttpSession session) {
		User loginUser = (User) session.getAttribute("loginUser");
		if (loginUser == null) {
			return "login"; 
		}else if(!"admin".equals(loginUser.getMission())&&!"showadmin".equals(loginUser.getMission())){
			//添加管理员的再次验证
		return "redirect:course";
		}
		if(userid!=null){
			User user = userBiz.selectByPrimaryKey(userid);
			session.setAttribute("user", user);
			return "admin/newuser";
		}else{
			session.removeAttribute("user");
			return "admin/newuser";
		}
	}
	@RequestMapping(value = "newadduser")//新建账户
	public String newadduser(User newuser,HttpSession session,HttpServletRequest req){
		User loginUser = (User) session.getAttribute("loginUser");
		if (loginUser == null) {
			return "login";
		}else if(!"admin".equals(loginUser.getMission())){
			//添加管理员的再次验证
			return "redirect:course";
		}
		newuser.setId(DateUtil.getId());
		session.invalidate();
		setlog(loginUser, req.getRemoteAddr(),"注销", loginUser.getUsername());
		return "loginadmin";
	}
	@RequestMapping(value = "coursede")//课程详情界面
	public String coursede(String courseid, HttpSession session) {
		session.removeAttribute("msg");
		User loginUser = (User) session.getAttribute("loginUser");
		if (loginUser == null) {
			return "login"; 
		}else if(!"admin".equals(loginUser.getMission())&&!"showadmin".equals(loginUser.getMission())){
			//添加管理员的再次验证
		return "redirect:course";
		}
		if(courseid!=null) {
			Course course = courseBiz.selectByPrimaryKey(Integer.parseInt(courseid));
			session.setAttribute("course", course);
			return "admin/course";
		}
		    session.removeAttribute("course");
			return "admin/course";
		
	}
	@RequestMapping(value = "coursesave")//课程上传/修改
	public String coursesave(HttpServletRequest req, HttpSession session) {
		session.removeAttribute("msg");
		User loginUser = (User) session.getAttribute("loginUser");
		if (loginUser == null) {
			return "login"; 
		}else if(!"admin".equals(loginUser.getMission())){
			//添加管理员的再次验证
		return "redirect:course";
		}
		courseBiz.savecourse(req);
		session.setAttribute("msg", "操作成功");
			return "admin/course";
		
	}

}
package com.mooc.controller;
	public void Vip(HttpSession session, int viptype, HttpServletResponse response, HttpServletRequest req)
			throws IOException {
		String data = "已经成功充值";
		User loginUser = (User) session.getAttribute("loginUser");
		if (loginUser == null) {
			// return "login";
		}
		List<Review> reviews = reviewBiz.selectbyuserid(loginUser.getUsername());
		int collect = loginUser.getCollect();
		boolean isvip = false;
		Date date = new Date();
		Date vipdate = loginUser.getVip();
		if (vipdate == null||vipdate.getTime() < date.getTime()) {
			loginUser.setVip(new Date());
		}
		switch (viptype){
			default:
				data = "请求错误!";
				break;
			case 0:
				if (collect < 500) {
					data = "余额不足,请联系管理员充值!";
				} else {
					loginUser.setCollect(collect - 500);
					vipdate = loginUser.getVip();
					vipdate.setMonth(vipdate.getMonth() + 1);
					loginUser.setVip(vipdate);
					isvip = true;
					setlog(loginUser, req.getRemoteAddr(), "购买会员:一个月");
				}
				break;
			case 1:
				if (collect < 2000) {
					data = "余额不足,请联系管理员充值!";
				} else {
					loginUser.setCollect(collect - 2000);
					vipdate = loginUser.getVip();
					vipdate.setMonth(vipdate.getMonth() + 6);
					loginUser.setVip(vipdate);
					isvip = true;
					setlog(loginUser, req.getRemoteAddr(), "购买会员:半年");
				}
				break;
package com.mooc.controller;

/**
 * 2121.4.14
 * 2647445712@qq.com
 */

@Controller
public class UserController {
	@Autowired
	UserBiz userBiz;
	@Autowired
	CourseBiz courseBiz;
	@Autowired
	MessageBiz messageBiz;
	@Autowired
	ReviewBiz reviewBiz;
	@Autowired
	LogBiz logBiz;

	/**
	 * 普通日志写入
	 * 
	}

	@RequestMapping(value = "coursedetail")
	// 单课程主页
	public ModelAndView Courseindex(int id, HttpSession session,ModelAndView mav) {
		User loginUser = (User) session.getAttribute("loginUser");
		if (loginUser == null) {
			mav.setViewName("login");
			return mav;
		}
		Message message = new Message();
		message.setCourseid(id);
		message.setUserid(loginUser.getId());
		Message me = messageBiz.select(message);
		if (me == null) {
			mav.addObject("isSelect", false);
		} else {
			mav.addObject("isSelect", true);
		}
		Course course = courseBiz.selectByPrimaryKey(id);
		mav.addObject("course", course);
		mav.setViewName("coursedetail");
		return mav;

	}

	@RequestMapping(value = "coursevideo")
	// 单课程视屏
	public String Coursevideo(int courseid, HttpSession session, Map map) {
		User loginUser = (User) session.getAttribute("loginUser");
		if (loginUser == null) {
			return "login";
		}
		Course course = courseBiz.selectByPrimaryKey(courseid);
		if ("1".equals(course.getType())) {
			if (loginUser.getVip() == null) {
				return "vip";
			}
		}
		map.put("course", course);
		List<Review> reviews = reviewBiz.select(courseid);
		map.put("reviews", reviews);
		return "coursevideo";

			pw.print("0");
		}else{
			User user = userBiz.selectByPrimaryKey(userid);
			userBiz.deleteByPrimaryKey(userid);
			setlog(user,req.getRemoteAddr(),"删除用户",loginUser.getUsername());
			pw.print("账户:"+userid+",删除成功");
			List<User> users = userBiz.selectAllUser();
			session.setAttribute("users", users);
		}
	}
	@RequestMapping(value = "showlog")//日志查看
	public String showlog(String seachusername,String type, HttpSession session) {
		User loginUser = (User) session.getAttribute("loginUser");
		if (loginUser == null) {
			return "login";
		}else if(!"admin".equals(loginUser.getMission())&&!"showadmin".equals(loginUser.getMission())){
			//添加管理员的再次验证
		return "redirect:course";
		}
		List<Log> logs;
		if(seachusername!=null&&type==null){
			logs = logBiz.selectbyusername(seachusername);
			session.setAttribute("logss", logs);
			session.removeAttribute("type");
			session.setAttribute("logs", initlogpage(logs));
			session.setAttribute("maxpage", (logs.size()-1)/15);//10为每页个数
			session.setAttribute("page", 0);
			return "admin/log";
		}
		if(type!=null&&seachusername==null){
			logs = logBiz.selectadminlog();
			session.setAttribute("type", "admin");
			session.setAttribute("logss", logs);
			session.setAttribute("logs", initlogpage(logs));
			session.setAttribute("maxpage", (logs.size()-1)/15);
			session.setAttribute("page", 0);
			return "admin/log";
		}
		if(type==null){
			logs = logBiz.select();
			session.removeAttribute("type");
		    session.setAttribute("logss", logs);
		    session.setAttribute("logs", initlogpage(logs));
		    session.setAttribute("maxpage", (logs.size()-1)/15);
		    session.setAttribute("page", 0);
		    return "admin/log";
		} else {
		    logs = logBiz.selectadminlogbyusername(seachusername);
			session.removeAttribute("type");
		    session.setAttribute("logss", logs);
		    session.setAttribute("logs", initlogpage(logs));
		    session.setAttribute("maxpage", (logs.size()-1)/15);
		    session.setAttribute("page", 0);
		    return "admin/log";
		if (me == null) {
			mav.addObject("isSelect", false);
		} else {
			mav.addObject("isSelect", true);
		}
		Course course = courseBiz.selectByPrimaryKey(id);
		mav.addObject("course", course);
		mav.setViewName("coursedetail");
		return mav;

	}

	@RequestMapping(value = "coursevideo")
	// 单课程视屏
	public String Coursevideo(int courseid, HttpSession session, Map map) {
		User loginUser = (User) session.getAttribute("loginUser");
		if (loginUser == null) {
			return "login";
		}
		Course course = courseBiz.selectByPrimaryKey(courseid);
		if ("1".equals(course.getType())) {
			if (loginUser.getVip() == null) {
				return "vip";
			}
		}
		map.put("course", course);
		List<Review> reviews = reviewBiz.select(courseid);
		map.put("reviews", reviews);
		return "coursevideo";

	}

	@RequestMapping(value = "insertCourse")
	// 加入课程
	public void insertCourse(int courseid, String userid, HttpSession session, HttpServletRequest req,
			HttpServletResponse response) throws IOException {
		String result = "订阅成功!";
		User user = (User) session.getAttribute("loginUser");
		Course c = courseBiz.selectByPrimaryKey(courseid);
		if (user.getVip() == null && "1".equals(c.getType())) {
			log.setIp(req.getRemoteAddr());
			log.setType("删除课程:"+course.getName());
			logBiz.insert(log);
			pw.print("课程:"+course.getName()+",删除成功!请刷新页面后操作");
		}
	}
	
	@RequestMapping(value = "allip")//展示所有IP信息
	public String allip(int page, HttpSession session) {
		User loginUser = (User) session.getAttribute("loginUser");
		if (loginUser == null) {
			return "login"; 
		}else if(!"admin".equals(loginUser.getMission())&&!"showadmin".equals(loginUser.getMission())){
			//添加管理员的再次验证
		session.setAttribute("loginUser", loginUser);
		return "redirect:course";
		}else{
			List<Ipset> ipss = ipsetBiz.select();
			int totalpage = 14;//一页的数量
			List<Ipset> ips = new ArrayList<Ipset>();
			session.setAttribute("maxpage", (ipss.size()-1)/totalpage);
			for(int i = page*totalpage;i<page*totalpage+totalpage;i++){
				if(ipss.size()==i){
					session.setAttribute("ips", ips);
					session.setAttribute("page", page);
					return "admin/allip";
				}
				ips.add(ipss.get(i));
			}
			session.setAttribute("page", page);
		    session.setAttribute("ips", ips);
		    return "admin/allip";
		}
		}
	@RequestMapping(value="ipset")//ip管理
	public String ipset(HttpSession session,String ip,String onbaned){
		if(onbaned!=null) {
			Ipset ip1 = ipsetBiz.selectip(ip);
			ip1.setType("0");
			ip1.setBantime(null);
			ipsetBiz.updateByPrimaryKeySelective(ip1);
			return "redirect:allip?page=0";
		}
		
		session.setAttribute("ip", ipsetBiz.selectip(ip));
		return "admin/ipset";
	}
	@RequestMapping(value="banip")//封禁ip
	public void banip(HttpServletResponse resp,HttpSession session,String ip,String mark,String time) throws IOException{
		User loginUser = (User) session.getAttribute("loginUser");
		if (loginUser == null) {
			return ;
		}else if(!"admin".equals(loginUser.getMission())){
	@RequestMapping(value = "logout") // 注销登出
	public String logout(String type, User user, HttpSession session, HttpServletRequest req) {
		User loginUser = (User) session.getAttribute("loginUser");
		if (loginUser == null) {
			return "index";
		} else {
			session.invalidate();
			if (type == "admin") {
				setlog(loginUser, req.getRemoteAddr(), "管理员注销");
				return "loginadmin";
			} else
				setlog(loginUser, req.getRemoteAddr(), "注销");
			return "redirect:index";
		}
	}

	/*
	 * ajax密码检查
	 */
	@RequestMapping(value = "passwordcheck")
	public void selectUser(User user, HttpServletResponse response, HttpServletRequest req)
			throws IOException {
		Map<String, String> paramMap = new HashMap<String, String>();
		paramMap.put("username", user.getUsername());
		paramMap.put("password", user.getPassword());
		response.setCharacterEncoding("utf-8");
		PrintWriter out = response.getWriter();
		if (userBiz.selectUser(paramMap) == 1) {
			user = userBiz.selectLoginUser(paramMap);
			if (!"admin".equals(user.getMission())&&!"showadmin".equals(user.getMission())) {
				if (user.getBuycase() != null) {
					if ("1".equals(user.getBuycase())) {
						out.println("3");// 屏蔽登录
					} else
						out.println("1");// 正常登录密码正确
				} else {
					out.println("1");
				}
			} else {
				out.println("2");// 管理员返回
			}
		} else {
			Log log = new Log();

@Controller
public class AdminController {
	@Autowired
	UserBiz userBiz;
	@Autowired
	LogBiz logBiz;
	@Autowired
	CourseBiz courseBiz;
	@Autowired
	IpsetBiz ipsetBiz;
	public void setlog(User loginUser,String ip,String type,String adminname){
		Log log = new Log();
		log.setUserid(loginUser.getId());
		log.setUsername(loginUser.getUsername());
		log.setIp(ip);
		log.setType(type);
		log.setExecutor(adminname);
		logBiz.insert(log);
	}
	
	@RequestMapping(value = "adminindex")
	public String adminindex(HttpSession session){
		User loginUser = (User) session.getAttribute("loginUser");
		if (loginUser == null) {
			return "login"; 
		}else if(!"admin".equals(loginUser.getMission())&&!"showadmin".equals(loginUser.getMission())){
			//添加管理员的再次验证
		session.setAttribute("loginUser", loginUser);
		return "redirect:course";
		}
		return "admin/adminindex";
	}
	
	
	@RequestMapping(value = "adminlogin")//管理员登录
	public String adminlogin(User user, HttpSession session,HttpServletRequest req) {
		Map<String, String> paramMap = new HashMap<String, String>();
		paramMap.put("username", user.getUsername());
		paramMap.put("password", user.getPassword());
		User loginUser = userBiz.selectLoginUser(paramMap);
		if (loginUser == null) {
			return "login"; 
		}else if(!"admin".equals(loginUser.getMission())&&!"showadmin".equals(loginUser.getMission())){
			//添加管理员登录的再次验证,防止直接跳过前端验证进行强制登录
		session.setAttribute("loginUser", loginUser);
		Log log = new Log();
		log.setUserid(loginUser.getId());
		message.setCourseid(id);
		message.setUserid(loginUser.getId());
		Message me = messageBiz.select(message);
		if (me == null) {
			mav.addObject("isSelect", false);
		} else {
			mav.addObject("isSelect", true);
		}
		Course course = courseBiz.selectByPrimaryKey(id);
		mav.addObject("course", course);
		mav.setViewName("coursedetail");
		return mav;

	}

	@RequestMapping(value = "coursevideo")
	// 单课程视屏
	public String Coursevideo(int courseid, HttpSession session, Map map) {
		User loginUser = (User) session.getAttribute("loginUser");
		if (loginUser == null) {
			return "login";
		}
		Course course = courseBiz.selectByPrimaryKey(courseid);
		if ("1".equals(course.getType())) {
			if (loginUser.getVip() == null) {
				return "vip";
			}
		}
		map.put("course", course);
		List<Review> reviews = reviewBiz.select(courseid);
		map.put("reviews", reviews);
		return "coursevideo";

	}

	@RequestMapping(value = "insertCourse")
	// 加入课程
	public void insertCourse(int courseid, String userid, HttpSession session, HttpServletRequest req,
			HttpServletResponse response) throws IOException {
		String result = "订阅成功!";
		User user = (User) session.getAttribute("loginUser");
		Course c = courseBiz.selectByPrimaryKey(courseid);
		if (user.getVip() == null && "1".equals(c.getType())) {
			result = "此课程是会员课程,请购买会员!";
		} else {
			Message message = new Message();
			message.setCourseid(courseid);
				} else {
					loginUser.setCollect(collect - 3000);
					vipdate = loginUser.getVip();
					vipdate.setYear(vipdate.getYear() + 1);
					loginUser.setVip(vipdate);
					isvip = true;
					setlog(loginUser, req.getRemoteAddr(), "购买会员:一年");
				}
				break;
		}
		if (isvip) {
			for (int a = 0; a < reviews.size(); a++) {
				reviews.get(a).setVip(1);
			}
		}
		reviewBiz.updateByPrimaryKeySelective(reviews);
		userBiz.updateByPrimaryKeySelective(loginUser);
		Map map = new HashMap<String, String>();
		map.put("username", loginUser.getUsername());
		map.put("password", loginUser.getPassword());
		session.setAttribute("loginUser", userBiz.selectLoginUser(map));

		response.setCharacterEncoding("utf-8");
		PrintWriter out = response.getWriter();

		out.println(data);

	}
}
package com.mooc.util;

/**
 * 文件上传包装类
 * jpg文件与其他文件分开存放
 *
 */
public class UploadFile {
				User user = userBiz.selectByPrimaryKey(userid);
				user.setBuycase("1");
				userBiz.updateByPrimaryKeySelective(user);
				setlog(user,req.getRemoteAddr(),"屏蔽用户登录",loginUser.getUsername());
				return "redirect:alluser?page=0";
			}
			if(type==1){//1为恢复用户
				User user = userBiz.selectByPrimaryKey(userid);
				user.setBuycase("0");
				userBiz.updateByPrimaryKeySelective(user);
				setlog(user,req.getRemoteAddr(),"恢复用户登录",loginUser.getUsername());
				return "redirect:alluser?page=0";
			}
		
		}
		return "redirect:alluser?page=0";
	}
	@RequestMapping(value = "rechargeindex")//充值余额界面
	public String rechargeindex( HttpSession session) {
		User loginUser = (User) session.getAttribute("loginUser");
		if (loginUser == null) {
			return "login"; 
		}else if(!"admin".equals(loginUser.getMission())&&!"showadmin".equals(loginUser.getMission())){
			//添加管理员的再次验证
		return "redirect:course";
		}
		return "admin/recharge";
	}
	@RequestMapping(value = "recharge")//充值余额
	public void recharge(String userid,int collect, String paypassword,HttpServletRequest req,
			HttpSession session,HttpServletResponse resp) throws IOException {
		User loginUser = (User) session.getAttribute("loginUser");
		resp.setCharacterEncoding("utf-8");
		PrintWriter pw = resp.getWriter();
		User user = userBiz.selectByPrimaryKey(userid);
		if(user==null){
			pw.print("用户ID不存在!请核实后再充值");
		}else if(!paypassword.equals("591284209")){
			pw.print("0");
		}else{
			user.setCollect(user.getCollect()+collect);
			userBiz.updateByPrimaryKeySelective(user);
			setlog(user,req.getRemoteAddr(),"充值"+collect+"元",loginUser.getUsername());
			pw.print("账户"+userid+",充值"+collect+"元成功,余额:"+user.getCollect());
		}
	}
	@RequestMapping(value = "newuser")//新建用户界面,用户详情界面
	public String newuser(String userid, HttpSession session) {
		User loginUser = (User) session.getAttribute("loginUser");
		if (loginUser == null) {
			return "login"; 
		}else if(!"admin".equals(loginUser.getMission())&&!"showadmin".equals(loginUser.getMission())){
			//添加管理员的再次验证
		}else if(!"admin".equals(loginUser.getMission())&&!"showadmin".equals(loginUser.getMission())){
			//添加管理员的再次验证
			mav.setViewName("redirect:course");
			return mav;
		}else{
			List<User> userss = userBiz.selectAllUser();
			int totalpage = 14;//一页的数量
			List<User> users = new ArrayList<User>();
			mav.addObject("maxpage", (userss.size()-1)/totalpage);
			for(int i = page*totalpage;i<page*totalpage+totalpage;i++){
				if(userss.size()==i){
					mav.addObject("users", users);
					mav.addObject("page", page);
					mav.setViewName("admin/alluser");
					return mav;
				}
				users.add(userss.get(i));
			}
			mav.addObject("page", page);
			mav.addObject("loginUser", loginUser);
			mav.addObject("users", users);
			mav.setViewName("admin/alluser");
		    return mav;
		
		}
	}
	@RequestMapping(value = "banuser")//屏蔽和恢复用户
	public String banuser(String userid,int type, HttpSession session,HttpServletRequest req) {
		User loginUser = (User) session.getAttribute("loginUser");
		if (loginUser == null) {
			return "login"; 
		}else if(!"admin".equals(loginUser.getMission())){
			//添加管理员的再次验证
		session.setAttribute("loginUser", loginUser);
		return "redirect:course";
		}else{
			if(type==0){//0为屏蔽用户
				User user = userBiz.selectByPrimaryKey(userid);
				user.setBuycase("1");
				userBiz.updateByPrimaryKeySelective(user);
				setlog(user,req.getRemoteAddr(),"屏蔽用户登录",loginUser.getUsername());
				return "redirect:alluser?page=0";
			}
			if(type==1){//1为恢复用户
				User user = userBiz.selectByPrimaryKey(userid);
				user.setBuycase("0");
				userBiz.updateByPrimaryKeySelective(user);
			case "1y":
				date.setYear(date.getYear() + 1);
				ip1.setBantime(date);
				break;
			case "ever":
				date.setYear(date.getYear() + 99);
				ip1.setBantime(date);
				break;
		}
		if(isnull) {
			ipsetBiz.insert(ip1);
		}else {
		ipsetBiz.updateByPrimaryKeySelective(ip1);
		}
		resp.setCharacterEncoding("utf-8");
		resp.getWriter().write("封禁成功!封禁至:"+date);
	}
	
	@RequestMapping(value="logoutadmin")//管理员注销
	public String logoutadmin(HttpSession session,HttpServletRequest req){
		User loginUser = (User) session.getAttribute("loginUser");
		session.invalidate();
		setlog(loginUser, req.getRemoteAddr(),"注销", loginUser.getUsername());
		return "loginadmin";
	}
	@RequestMapping(value = "coursede")//课程详情界面
	public String coursede(String courseid, HttpSession session) {
		session.removeAttribute("msg");
		User loginUser = (User) session.getAttribute("loginUser");
		if (loginUser == null) {
			return "login"; 
		}else if(!"admin".equals(loginUser.getMission())&&!"showadmin".equals(loginUser.getMission())){
			//添加管理员的再次验证
		return "redirect:course";
		}
		if(courseid!=null) {
			Course course = courseBiz.selectByPrimaryKey(Integer.parseInt(courseid));
			session.setAttribute("course", course);
			return "admin/course";
		}
		    session.removeAttribute("course");
			return "admin/course";
		
	}
	@RequestMapping(value = "coursesave")//课程上传/修改
	public String coursesave(HttpServletRequest req, HttpSession session) {
		session.removeAttribute("msg");
		User loginUser = (User) session.getAttribute("loginUser");
		if (loginUser == null) {
			return "login"; 
		}else if(!"admin".equals(loginUser.getMission())){
			//添加管理员的再次验证
		return "redirect:course";
		}else{
			List<Ipset> ipss = ipsetBiz.select();
			int totalpage = 14;//一页的数量
			List<Ipset> ips = new ArrayList<Ipset>();
			session.setAttribute("maxpage", (ipss.size()-1)/totalpage);
			for(int i = page*totalpage;i<page*totalpage+totalpage;i++){
				if(ipss.size()==i){
					session.setAttribute("ips", ips);
					session.setAttribute("page", page);
					return "admin/allip";
				}
				ips.add(ipss.get(i));
			}
			session.setAttribute("page", page);
		    session.setAttribute("ips", ips);
		    return "admin/allip";
		}
		}
	@RequestMapping(value="ipset")//ip管理
	public String ipset(HttpSession session,String ip,String onbaned){
		if(onbaned!=null) {
			Ipset ip1 = ipsetBiz.selectip(ip);
			ip1.setType("0");
			ip1.setBantime(null);
			ipsetBiz.updateByPrimaryKeySelective(ip1);
			return "redirect:allip?page=0";
		}
		
		session.setAttribute("ip", ipsetBiz.selectip(ip));
		return "admin/ipset";
	}
	@RequestMapping(value="banip")//封禁ip
	public void banip(HttpServletResponse resp,HttpSession session,String ip,String mark,String time) throws IOException{
		User loginUser = (User) session.getAttribute("loginUser");
		if (loginUser == null) {
			return ;
		}else if(!"admin".equals(loginUser.getMission())){
			//添加管理员的再次验证
			return ;
		}
		Date date = new Date();
		Ipset ip1 = ipsetBiz.selectip(ip);
		boolean isnull = false;
		if(ip1==null) {
			ip1=new Ipset();
			ip1.setIp(ip);
			isnull =true;
		}
		ip1.setIp(ip);
		ip1.setMark(mark);
		ip1.setType("1");
		switch (time) {
			case "5m":
	@RequestMapping(value = "infoset")
	// 个人信息设置
	public String Infoset(User user, HttpSession session, HttpServletRequest req) {
		User loginUser = (User) session.getAttribute("loginUser");
		if (loginUser == null) {
			return "login";
		}
		user.setCollect(loginUser.getCollect());
		List<Review> reviews = reviewBiz.selectbyuserid(loginUser.getUsername());
		for (int a = 0; a < reviews.size(); a++) {//个人信息修改的同时更新评论的用户信息
			reviews.get(a).setSex(user.getSex());
		}
		reviewBiz.updateByPrimaryKeySelective(reviews);

		userBiz.updateByPrimaryKeySelective(user);
		Map map = new HashMap<String, String>();
		map.put("username", loginUser.getUsername());
		map.put("password", loginUser.getPassword());
		session.setAttribute("loginUser", userBiz.selectLoginUser(map));
		setlog(loginUser, req.getRemoteAddr(), "个人信息更改");
		return "redirect:course";

	}

	@RequestMapping(value = "vip")
	// vip购买 0为1个月,1为半年,2为一年
	public void Vip(HttpSession session, int viptype, HttpServletResponse response, HttpServletRequest req)
			throws IOException {
		String data = "已经成功充值";
		User loginUser = (User) session.getAttribute("loginUser");
		if (loginUser == null) {
			// return "login";
		}
		List<Review> reviews = reviewBiz.selectbyuserid(loginUser.getUsername());
		int collect = loginUser.getCollect();
		boolean isvip = false;
		Date date = new Date();
		Date vipdate = loginUser.getVip();
		if (vipdate == null||vipdate.getTime() < date.getTime()) {
			loginUser.setVip(new Date());
		}
		switch (viptype){
			default:
				data = "请求错误!";
				break;
			case 0:
				if (collect < 500) {
					data = "余额不足,请联系管理员充值!";
		for(int i = page*totalpage;i<page*totalpage+totalpage;i++){
			if(logss.size()==i){
				session.setAttribute("logs", logs);
				session.setAttribute("page", page);
				return "admin/log";
			}
			logs.add(logss.get(i));
		}
		session.setAttribute("logs", logs);
		session.setAttribute("page", page);
		return "admin/log";
	}
	
	@RequestMapping(value = "allcourse")//全部课程界面
	public String allcourseindex(int page, HttpSession session) {
		User loginUser = (User) session.getAttribute("loginUser");
		if (loginUser == null) {
			return "login"; 
		}else if(!"admin".equals(loginUser.getMission())&&!"showadmin".equals(loginUser.getMission())){
			//添加管理员的再次验证
		return "redirect:course";
		}
		List<Course> coursess = courseBiz.selectAllCourse();
		int totalpage = 14;//一页的数量
		List<Course> courses = new ArrayList<Course>();
		session.setAttribute("maxpage", (coursess.size()-1)/totalpage);
		for(int i = page*totalpage;i<page*totalpage+totalpage;i++){
			if(coursess.size()==i){
				session.setAttribute("courses", courses);
				session.setAttribute("page", page);
				return "admin/allcourse";
			}
			courses.add(coursess.get(i));
		}
		session.setAttribute("page", page);
	    session.setAttribute("courses", courses);
		return "admin/allcourse";
	}
	
	@RequestMapping(value = "bancourse")//上下架课程
	public String bancourse(int type,int courseid, HttpSession session,HttpServletRequest req) {
		User loginUser = (User) session.getAttribute("loginUser");
		int page = (int) session.getAttribute("page");
		if (loginUser == null) {
			return "login"; 
		}else if(!"admin".equals(loginUser.getMission())&&!"showadmin".equals(loginUser.getMission())){
			//添加管理员的再次验证
		return "redirect:course";
	@Autowired
	MessageBiz messageBiz;
	@Autowired
	ReviewBiz reviewBiz;
	@Autowired
	LogBiz logBiz;

	/**
	 * 普通日志写入
	 * 
	 * @param loginUser
	 * @param ip
	 * @param type
	 */
	public void setlog(User loginUser, String ip, String type) {
		Log log = new Log();
		log.setUserid(loginUser.getId());
		log.setUsername(loginUser.getUsername());
		log.setIp(ip);
		log.setType(type);
		logBiz.insert(log);
	}

	@RequestMapping(value = "login")
	public String login(User user, HttpSession session, HttpServletRequest req) {
		Map<String, String> paramMap = new HashMap<String, String>();
		paramMap.put("username", user.getUsername());
		paramMap.put("password", user.getPassword());
		User loginUser = userBiz.selectLoginUser(paramMap);
		if (loginUser == null) {
			return "login";
		}
		setlog(loginUser, req.getRemoteAddr(), "登录");
		session.setAttribute("loginUser", loginUser);
		return "redirect:course";
	}

	@RequestMapping(value = "logout") // 注销登出
	public String logout(String type, User user, HttpSession session, HttpServletRequest req) {
		User loginUser = (User) session.getAttribute("loginUser");
		if (loginUser == null) {
			ipsetBiz.insert(ip1);
		}else {
		ipsetBiz.updateByPrimaryKeySelective(ip1);
		}
		resp.setCharacterEncoding("utf-8");
		resp.getWriter().write("封禁成功!封禁至:"+date);
	}
	
	@RequestMapping(value="logoutadmin")//管理员注销
	public String logoutadmin(HttpSession session,HttpServletRequest req){
		User loginUser = (User) session.getAttribute("loginUser");
		session.invalidate();
		setlog(loginUser, req.getRemoteAddr(),"注销", loginUser.getUsername());
		return "loginadmin";
	}
	@RequestMapping(value = "coursede")//课程详情界面
	public String coursede(String courseid, HttpSession session) {
		session.removeAttribute("msg");
		User loginUser = (User) session.getAttribute("loginUser");
		if (loginUser == null) {
			return "login"; 
		}else if(!"admin".equals(loginUser.getMission())&&!"showadmin".equals(loginUser.getMission())){
			//添加管理员的再次验证
		return "redirect:course";
		}
		if(courseid!=null) {
			Course course = courseBiz.selectByPrimaryKey(Integer.parseInt(courseid));
			session.setAttribute("course", course);
			return "admin/course";
		}
		    session.removeAttribute("course");
			return "admin/course";
		
	}
	@RequestMapping(value = "coursesave")//课程上传/修改
	public String coursesave(HttpServletRequest req, HttpSession session) {
		session.removeAttribute("msg");
		User loginUser = (User) session.getAttribute("loginUser");
		if (loginUser == null) {
			return "login"; 
		}else if(!"admin".equals(loginUser.getMission())){
			//添加管理员的再次验证
		return "redirect:course";
		}
		courseBiz.savecourse(req);
		session.setAttribute("msg", "操作成功");
			return "admin/course";
		
	}

}
package com.mooc.controller;

@Controller
public class MainController {
	@Autowired
	UserBiz userBiz;
	@Autowired
	CourseBiz courseBiz;
	@Autowired
	ReviewBiz reviewBiz;
	@Autowired
	MessageBiz messageBiz;
	@Autowired
	LogBiz logBiz;
	public void setlog(User loginUser, String ip, String type) {
		Log log = new Log();
		log.setUserid(loginUser.getId());
		log.setUsername(loginUser.getUsername());
		log.setIp(ip);
	IpsetBiz ipsetBiz;
	public void setlog(User loginUser,String ip,String type,String adminname){
		Log log = new Log();
		log.setUserid(loginUser.getId());
		log.setUsername(loginUser.getUsername());
		log.setIp(ip);
		log.setType(type);
		log.setExecutor(adminname);
		logBiz.insert(log);
	}
	
	@RequestMapping(value = "adminindex")
	public String adminindex(HttpSession session){
		User loginUser = (User) session.getAttribute("loginUser");
		if (loginUser == null) {
			return "login"; 
		}else if(!"admin".equals(loginUser.getMission())&&!"showadmin".equals(loginUser.getMission())){
			//添加管理员的再次验证
		session.setAttribute("loginUser", loginUser);
		return "redirect:course";
		}
		return "admin/adminindex";
	}
	
	
	@RequestMapping(value = "adminlogin")//管理员登录
	public String adminlogin(User user, HttpSession session,HttpServletRequest req) {
		Map<String, String> paramMap = new HashMap<String, String>();
		paramMap.put("username", user.getUsername());
		paramMap.put("password", user.getPassword());
		User loginUser = userBiz.selectLoginUser(paramMap);
		if (loginUser == null) {
			return "login"; 
		}else if(!"admin".equals(loginUser.getMission())&&!"showadmin".equals(loginUser.getMission())){
			//添加管理员登录的再次验证,防止直接跳过前端验证进行强制登录
		session.setAttribute("loginUser", loginUser);
		Log log = new Log();
		log.setUserid(loginUser.getId());
		log.setUsername(loginUser.getUsername());
		log.setIp(req.getRemoteAddr());
		log.setType("用户尝试强制登录管理员页面");
		logBiz.insert(log);
		return "redirect:course";
		}else{
		session.setAttribute("loginUser", loginUser);
		setlog(loginUser, req.getRemoteAddr(),"登录", loginUser.getUsername());

请添加图片描述

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值