基于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());