Java项目:健身房管理系统(java+SpringBoot+Vue+ElementUI+Layui+Mysql)

源码获取:俺的博客首页 "资源" 里下载!

项目介绍

基于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
public class OrderController {
    @Autowired
    private OrderService orderService;
    @Autowired
    private ClassService classService;
    /**
     * 后台跳转到订单页面
     * @return
     */
    @RequestMapping("/admin/order.html")
    public String adminOrder(){
        return "admin/order/orderlist";
    }

    /**
     * 订单后台分页
     * @param page
     * @param limit
     * @param mname
     * @return
     */
    @RequestMapping("/admin/orderlist.html")
    @ResponseBody
    public Map<String,Object> orderList(String page,String limit,String mname){
        Map<String,Object> orderPageMap = new HashMap<String,Object>();
        PageHelper.startPage(Integer.parseInt(page),Integer.parseInt(limit));
        List<TblOrder> orders = orderService.selectAllOrderWithMember(mname);
        PageInfo<TblOrder> orderPageInfo = new PageInfo<TblOrder>(orders);
        orderPageMap.put("code",0);
        orderPageMap.put("msg","");
        orderPageMap.put("count",orderPageInfo.getTotal());
        orderPageMap.put("data",orders);
        return orderPageMap;
    }

    /**
     * 预订
     * @param classId
     * @return
     */
    @RequestMapping("/class/order.html")
    @ResponseBody
    public Map<String,Object> orderCourse(String classId, HttpServletRequest request){
        Map<String,Object> orderMap = new HashMap<String,Object>();
        TblOrder order = new TblOrder();
        Member member = (Member) request.getSession().getAttribute("member");
        order.setMemberId(member.getMid());
        order.setOcreatetime(new Date());
        order.setOstatus(1);
        order.setClassId(Integer.parseInt(classId));
        TblOrderExample tblOrderExample = new TblOrderExample();
        TblOrderExample.Criteria criteria = tblOrderExample.createCriteria();
        criteria.andMemberIdEqualTo(member.getMid());
        criteria.andClassIdEqualTo(Integer.parseInt(classId));
        List<TblOrder> tblOrders = orderService.selectByExample(tblOrderExample);
        if(!tblOrders.isEmpty()){//不为null说明已经预订
            orderMap.put("msg","您已经预订过该课程,不可重复预订");
        }else{
            //判断是否已经满员
            //1、先根据课程id查询课程的容量
            TblOrderExample tblOrderExample2 = new TblOrderExample();
            Class clazz = classService.selectByPrimaryKey(Integer.parseInt(classId));
            TblOrderExample.Criteria criteria2 = tblOrderExample2.createCriteria();
            criteria2.andClassIdEqualTo(Integer.parseInt(classId));
            long haveOrder = orderService.countByExample(tblOrderExample2);
            //2、已经预订人数和容量比较
            if(new Long(haveOrder).intValue() == clazz.getClassvolume() ){
                orderMap.put("msg","班级已经满员");
            }else{
                int i = orderService.insertSelective(order);
                if(i>0){
                    orderMap.put("msg","预订成功");
                }else {
                    orderMap.put("msg","预订失败");
                }
            }
        }
        return orderMap;
    }
    @RequestMapping("/admin/order/del.html")
    @ResponseBody
    public Map<String,Object> delOrder(String oid){
        Map<String,Object> delMap = new HashMap<String,Object>();
        int i = orderService.deleteByPrimaryKey(Integer.parseInt(oid));
        if(i>0){
            delMap.put("status",1);
        }else{
            delMap.put("status",0);
        }
        return delMap;
    }

}

角色管理控制层:

/**
 * 员工 -控制层
 */
@Controller
public class EmployeeController {
    @Autowired
    private PostService postService;
    @Autowired
    private EmployeeService employeeService;
    /**
     * 后台员工管理
     * @return
     */
    @RequestMapping("/admin/employee.html")
    public String employeePage(Model model){
        //查询所有职务
        List<Post> posts = postService.selectByExample(new PostExample());
        model.addAttribute("posts",posts);
        return "admin/employee/employeelist";
    }

    /**
     * 员工管理分页
     * @param page
     * @param limit
     * @param model
     * @param ename
     * @return
     */
    @RequestMapping("/admin/employeelist.html")
    @ResponseBody
    public Map<String,Object> employeelistPage(String page, String limit, Model model, String ename){
        Map<String,Object> employeeMap = new HashMap<String,Object>();
        //查询所有职务
        List<Post> posts = postService.selectByExample(new PostExample());
        model.addAttribute("posts",posts);
        //分页查询员工
        EmployeeExample employeeExample = new EmployeeExample();
        EmployeeExample.Criteria criteria = employeeExample.createCriteria();
        if(ename != null&& !ename.equals("")){
            criteria.andEnameLike("%"+ename+"%");
        }
        PageHelper.startPage(Integer.parseInt(page),Integer.parseInt(limit));
        List<Employee> employees = employeeService.selectByExample(employeeExample);
        PageInfo<Employee> employeePageInfo = new PageInfo<Employee>(employees);
        employeeMap.put("code",0);
        employeeMap.put("msg","");
        employeeMap.put("count",employeePageInfo.getTotal());
        employeeMap.put("data",employeePageInfo.getList());
        return employeeMap;
    }
    @RequestMapping("/admin/employee/goaddorupdate.html")
    public String goUpdate(Model model,String eid){
        //查询所有职务
        List<Post> posts = postService.selectByExample(new PostExample());
        model.addAttribute("posts",posts);
        //eid不为null,就进行更新,根据员工id查询员工
        if(eid!=null&&!eid.equals(" ")){
            Employee employee = employeeService.selectByPrimaryKey(Integer.parseInt(eid));
            model.addAttribute("employee",employee);
        }
        return "admin/employee/employeeedit";
    }
    @RequestMapping("/admin/employee/doaddorupdate.html")
    @ResponseBody
    public Map<String,Object> doaddorupdate(Employee employee,String time){
        Map<String,Object> updateMap = new HashMap<String,Object>();
        int i = 0;
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        try {
            Date date = sdf.parse(time);
            employee.setEhire(date);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        if(employee.getEid()==null){//没有eid则是添加员工
            i = employeeService.insertSelective(employee);
            if(i>0){
                updateMap.put("msg","添加成功");
                updateMap.put("status",1);
            }else{
                updateMap.put("msg","添加失败");
                updateMap.put("status",0);
            }
        }else{
            i = employeeService.updateByPrimaryKeySelective(employee);
            if(i>0){
                updateMap.put("msg","更新成功");
                updateMap.put("status",1);
            }else{
                updateMap.put("msg","更新失败");
                updateMap.put("status",0);
            }
        }

        return updateMap;
    }
    @RequestMapping("/admin/employee/del.html")
    @ResponseBody
    public Map<String,String> delEmployee(String eid){
        Map<String,String> delMap = new HashMap<String, String>();
        int i = employeeService.deleteByPrimaryKey(Integer.parseInt(eid));
        if(i>0){
            delMap.put("status","1");
        }else {
            delMap.put("status","0");
        }
        return delMap;
    }
    /**
     *
     * 教练管理
     *
     */
    @RequestMapping("/admin/trainer.html")
    public String adminTrainer(Model model){
        return "admin/trainer/trainerlist";
    }
    /**
     * 教练管理分页
     */
    @RequestMapping("/admin/trainerlist.html")
    @ResponseBody
    public Map<String,Object> trainerPage(String page,String limit,String ename,Model model){
        Map<String,Object> trainerMap = new HashMap<String,Object>();
        EmployeeExample employeeExample = new EmployeeExample();
        EmployeeExample.Criteria criteria = employeeExample.createCriteria();
        criteria.andEpostIdEqualTo(1);
        if(ename!=null && !ename.equals(" ")){
            criteria.andEnameLike("%"+ename+"%");
        }
        PageHelper.startPage(Integer.parseInt(page),Integer.parseInt(limit));
        List<Employee> trainers = employeeService.selectByExample(employeeExample);
        PageInfo<Employee> trainerPageInfo = new PageInfo<Employee>(trainers);
        trainerMap.put("code",0);
        trainerMap.put("msg","");
        trainerMap.put("count",trainerPageInfo.getTotal());
        trainerMap.put("data",trainers);
        return trainerMap;
    }
    /**
     * 添加或者更新教练
     */
    @RequestMapping("/admin/trainer/goaddorupdate.html")
    public String trainerGoAddOrUpdate(String eid,Model model){
        if(eid!=null&&!eid.equals(" ")){//更新
            Employee trainer = employeeService.selectByPrimaryKey(Integer.parseInt(eid));
            model.addAttribute("trainer",trainer);
        }
        return "admin/trainer/traineredit";
    }
    @RequestMapping("/admin/trainer/doaddorupdate.html")
    @ResponseBody
    public Map<String,Object>  trainerDoAddOrUpdate(Employee employee,String time){
        Map<String,Object> trainerMap = new HashMap<String,Object>();
        int i = 0;
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        try {
            Date ehire = sdf.parse(time);
            employee.setEhire(ehire);
        } catch (ParseException e) {
            e.printStackTrace();
        }
        if(employee.getEid()!=null&&!employee.getEid().equals(" ")){//eid不为null则是更新
            i = employeeService.updateByPrimaryKeySelective(employee);
            if(i>0){
                trainerMap.put("msg","更新成功");
                trainerMap.put("res",1);
            }else {
                trainerMap.put("msg","更新失败");
                trainerMap.put("res",0);
            }
        }else{
            i = employeeService.insertSelective(employee);
            if(i>0){
                trainerMap.put("msg","添加成功");
                trainerMap.put("res",1);
            }else{
                trainerMap.put("msg","添加失败");
                trainerMap.put("res",0);
            }
        }
        return trainerMap;
    }
    /**
     * 教练删除
     */
    @RequestMapping("/admin/trainer/del.html")
    @ResponseBody
    public Map<String,Object> delTrainer(String eid){
        Map<String,Object> delMap = new HashMap<String,Object>();
        int i = employeeService.deleteByPrimaryKey(Integer.parseInt(eid));
        if(i>0){
            delMap.put("status",1);
        }else {
            delMap.put("status",0);
        }
        return delMap;
    }

}

 课程管理控制层:

/**
 * 课程管理 -控制层
 */
@Controller
public class CourseController {
	@Autowired
	private CourseService courseService;
	@Autowired
	private EmployeeService employeeService;
	@Autowired
	private CoursecategoryService coursecategoryService;
	@Autowired
	private CoursefunctionService coursefunctionService;
	@Autowired
	private ClassService classService;
	@Autowired
	private OrderService orderService;
	@Autowired
	private ClassMapper classMapper;
	/**
	 * 前台页面-跳转到健身课程
	 * @return
	 */
	@RequestMapping("/course.html")
	public String coursePage(Model model,String page,String cate,String func){
		System.out.println(cate+"====================================="+func);
		//查询所有课程类型
		List<Coursecategory> coursecategories = coursecategoryService.selectByExample(new CoursecategoryExample());
		model.addAttribute("coursecategories",coursecategories);
		//查询所有课程功能
		List<Coursefunction> coursefunctions = coursefunctionService.selectByExample(new CoursefunctionExample());
		model.addAttribute("coursefunctions",coursefunctions);
		//查询所有课程  总页数
		int _page;
		if(page==null){
			_page = 1;
		}else {
			_page = Integer.parseInt(page);
		}
		//根据课程类型名称查询课程类型ID,根据功能名称查询功能ID
		CourseExample courseExample = new CourseExample();
		CourseExample.Criteria criteria = courseExample.createCriteria();

		CoursecategoryExample coursecategoryExample = new CoursecategoryExample();
		CoursecategoryExample.Criteria criteria1 = coursecategoryExample.createCriteria();

		CoursefunctionExample coursefunctionExample = new CoursefunctionExample();
		CoursefunctionExample.Criteria criteria2 = coursefunctionExample.createCriteria();


		if(cate!=null&&!cate.equals("全部")){
			criteria1.andCateNameEqualTo(cate);
			List<Coursecategory> coursecategories1 = coursecategoryService.selectByExample(coursecategoryExample);
			criteria.andCcateIdEqualTo(coursecategories1.get(0).getCateId());
		}
		if (func!=null&&!func.equals("全部")){
			criteria2.andFnameEqualTo(func);
			List<Coursefunction> coursefunctions1 = coursefunctionService.selectByExample(coursefunctionExample);
			criteria.andCfunctionIdEqualTo(coursefunctions1.get(0).getFid());
		}
		PageHelper.startPage(_page,6);
		List<Course> courses = courseService.selectByExampleWithBLOBs(courseExample);
		PageInfo<Course> pageInfo = new PageInfo<Course>(courses);
		int totalPages = pageInfo.getPages();
		model.addAttribute("totalPages",totalPages);
		model.addAttribute("currentPage",_page);
		model.addAttribute("courses",courses);
		model.addAttribute("cate",cate);
		model.addAttribute("func",func);
		Sheet sheet = courseService.selectSheetByPrimaryKey(1);
		if(sheet!=null){
			model.addAttribute("sheetsrc",sheet.getSsrc());
		}
		return "course";
	}

	/**
	 * 前台课程详情页面
	 * @param model
	 * @param cid
	 * @return
	 */
	@RequestMapping("/courseinfo.html")
	public String coursePage(Model model,String cid){
		Course course = courseService.selectByPrimaryKey(Integer.parseInt(cid));
		model.addAttribute("course",course);
		//如果是cid为8(游泳)或者18(瑜伽)就查询所有开设班级
		ClassExample classExample = new ClassExample();
		ClassExample.Criteria criteria = classExample.createCriteria();
		criteria.andCourseIdEqualTo(Integer.parseInt(cid));
		List<Class> classes = classService.selectByExample(classExample);
		//查询该课程已预订人数
		for (Class aClass : classes) {
			TblOrderExample tblOrderExample = new TblOrderExample();
			TblOrderExample.Criteria criteria1 = tblOrderExample.createCriteria();
			criteria1.andClassIdEqualTo(aClass.getClassid());
			long haveOrder = orderService.countByExample(tblOrderExample);
			aClass.setHaveOrder(new Long(haveOrder).intValue());
		}
		model.addAttribute("classes",classes);
		//查询所有教练
		EmployeeExample employeeExample = new EmployeeExample();
		EmployeeExample.Criteria criteria2 = employeeExample.createCriteria();
		criteria2.andEpostIdEqualTo(1);
		List<Employee> trainers = employeeService.selectByExample(employeeExample);
		model.addAttribute("trainers",trainers);
		return "courseinfo";
	}
	/**
	 * 后台管理跳转到课程管理界面
	 * @return
	 */
	@RequestMapping("/admin/course.html")
	public String admincourse(Model model){
		//查询所有员工,进行教练名称显示
		List<Employee> employees = employeeService.selectByExample(new EmployeeExample());
		model.addAttribute("employees",employees);
		//查询所有课程类型
		List<Coursecategory> coursecategories = coursecategoryService.selectByExample(new CoursecategoryExample());
		model.addAttribute("coursecategories",coursecategories);
		//查询所有课程功能
		List<Coursefunction> coursefunctions = coursefunctionService.selectByExample(new CoursefunctionExample());
		model.addAttribute("coursefunctions",coursefunctions);
		return "admin/course/courselist";
	}

	/**
	 * 分页+课程名称  查询
	 * @param page
	 * @param limit
	 * @param model
	 * @param cname
	 * @return
	 */
	@RequestMapping("/admin/courselist.html")
	@ResponseBody
	public Map<String,Object> courselistPage(String page, String limit,Model model,String cname){
		List<Employee> employees = employeeService.selectByExample(new EmployeeExample());
		model.addAttribute("employees",employees);
		CourseExample example = new CourseExample();
		if(cname!=null&&!"".equals(cname)){
			CourseExample.Criteria criteria = example.createCriteria();
			criteria.andCnameLike("%"+cname+"%");
		}
		PageHelper.startPage(Integer.parseInt(page),Integer.parseInt(limit));
		List<Course> courses = courseService.selectByExampleWithBLOBs(example);
		PageInfo<Course> pageInfo = new PageInfo<Course>(courses);
		Map<String,Object> pageMap = new HashMap<String,Object >();
		pageMap.put("code",0);
		pageMap.put("msg","");
		pageMap.put("count",pageInfo.getTotal());
		pageMap.put("data",pageInfo.getList());
		return pageMap;
	}


	/**
	 * 上传课程图片
	 * @param file
	 * @return
	 */
	@RequestMapping("/admin/upload.html")
	@ResponseBody
	public Map<String,Object> upload(MultipartFile file){
		String extName = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf("."));
		String filename = System.currentTimeMillis()+extName;
		File newFile = new File(Thread.currentThread().getContextClassLoader().getResource("").getPath().substring(0,Thread.currentThread().getContextClassLoader().getResource("").getPath().length()-16)+"/sterngymimages/"+filename);
		try {
			file.transferTo(newFile);
		}catch (Exception e){
			e.printStackTrace();
		}
		Map<String,String > srcMap = new HashMap<String, String>();
		srcMap.put("src",filename);
		Map<String,Object> imgMap = new HashMap<String,Object>();
		imgMap.put("code",0);
		imgMap.put("msg","");
		imgMap.put("data",srcMap);
		return imgMap;
	}

	/**
	 * 查看课程信息
	 * @param model
	 * @param cid
	 * @return
	 */
	@RequestMapping("/admin/courseinfo.html")
	public String courseInfo(Model model,String cid){
		Course course = courseService.selectByPrimaryKey(Integer.parseInt(cid));
		model.addAttribute("course",course);
		//查询所有教练
		EmployeeExample example = new EmployeeExample();
		EmployeeExample.Criteria criteria = example.createCriteria();
		criteria.andEpostIdEqualTo(1);
		List<Employee> trainers = employeeService.selectByExample(example);
		model.addAttribute("trainers",trainers);
		//查询所有课程类型
		List<Coursecategory> coursecategories = coursecategoryService.selectByExample(new CoursecategoryExample());
		model.addAttribute("coursecategories",coursecategories);
		//查询所有课程功能
		List<Coursefunction> coursefunctions = coursefunctionService.selectByExample(new CoursefunctionExample());
		model.addAttribute("coursefunctions",coursefunctions);
		return "admin/course/courseinfo";
	}
	@RequestMapping("/admin/goaddorupdate.html")
	public String admingoaddPage(Model model, @RequestParam(required = false)String cid){
		//查询所有教练
		EmployeeExample example = new EmployeeExample();
		EmployeeExample.Criteria criteria = example.createCriteria();
		criteria.andEpostIdEqualTo(1);
		List<Employee> trainers = employeeService.selectByExample(example);
		model.addAttribute("trainers",trainers);
		//查询所有课程类型
		List<Coursecategory> coursecategories = coursecategoryService.selectByExample(new CoursecategoryExample());
		model.addAttribute("coursecategories",coursecategories);
		//查询所有课程功能
		List<Coursefunction> coursefunctions = coursefunctionService.selectByExample(new CoursefunctionExample());
		model.addAttribute("coursefunctions",coursefunctions);
		//如果是要更新,根据课程id查询课程
		if(cid!=null &&!cid.equals("")){
			Course course = courseService.selectByPrimaryKey(Integer.parseInt(cid));
			model.addAttribute("course",course);
		}
		return "admin/course/courseaddorupdate";
	}

	/**
	 * 更新或者添加课程
	 * @param course
	 * @return
	 */
	@RequestMapping("/admin/addorupdate.html")
	public String adminaddorupdatePage(Course course){
		if(course.getCid() == null){//添加
			if(course.getTrainerId().equals(-1)){
				course.setTrainerId(null);
			}
			course.setCcreatetime(new Date()); 

			int ids = courseService.insertSelective(course);
			Class class1 = new Class();
			class1.setClasstime("7:00-18:00");
			class1.setClassvolume(20);
			class1.setCourseId(course.getCid());
			class1.setEmplId(course.getTrainerId());
			class1.setHaveOrder(1);
			class1.setCourseId(course.getCid());
			classMapper.insertSelective(class1);

		}else{//更新
			if(course.getTrainerId().equals(-1)){
				course.setTrainerId(null);

			}
			ClassExample classExample = new ClassExample();
			ClassExample.Criteria  c = classExample.createCriteria();
			c.andCourseIdEqualTo(course.getCid());
			List<Class> list = classService.selectByExample(classExample);
			if(list == null||list.size() == 0) {
				Class class1 = new Class();
				class1.setClasstime("7:00-18:00");
				class1.setClassvolume(20);
				class1.setCourseId(course.getCid());
				class1.setEmplId(course.getTrainerId());
				class1.setHaveOrder(1);
				classMapper.insertSelective(class1);
			}else {
				Class class1 = list.get(0);
				class1.setCourseId(course.getCid());
				class1.setEmplId(course.getTrainerId());
				classMapper.updateByPrimaryKeySelective(class1);
			}

			courseService.updateByPrimaryKeySelective(course);
		}
		return "forward:/admin/course.html";
	}
	@RequestMapping("/admin/course/del.html")
	@ResponseBody
	public Map<String,Object> courseDel(String cid){
		int i = courseService.deleteByPrimaryKey(Integer.parseInt(cid));
		Map<String ,Object> delMap = new HashMap<String,Object>();
		if(i>0){//删除成功
			delMap.put("status",1);
		}else{
			delMap.put("status",0);
		}
		return delMap;
	}
	/**
	 * 上传课表
	 */
	@RequestMapping("/admin/courseupload.html")
	public String courseUpload(Model model){
		Sheet sheet = courseService.selectSheetByPrimaryKey(1);
		if(sheet!=null){
			model.addAttribute("sheetsrc",sheet.getSsrc());
		}
		return "admin/course/courseupload";
	}
	@RequestMapping("/admin/coursesheet.html")
	@ResponseBody
	public Map<String,Object> uploatSheet(MultipartFile file){
		Map<String,Object> uploadMap = new HashMap<String,Object>();
		Map<String,String> srcMap = new HashMap<String, String>();
		String filename = file.getOriginalFilename();
		Sheet sheet = new Sheet();
		sheet.setSsrc(filename);
		if(courseService.countByExample(new SheetExample())==0){
			courseService.insertSelective(sheet);
		}else {
			sheet.setSid(1);
			courseService.updateByPrimaryKey(sheet);
		}
		File newFile = new File(Thread.currentThread().getContextClassLoader().getResource("").getPath().substring(0,Thread.currentThread().getContextClassLoader().getResource("").getPath().length()-16)+"/sterngymimages/"+filename);
		try {
			file.transferTo(newFile);
		} catch (IOException e) {
			e.printStackTrace();
		}
		srcMap.put("src",filename);
		uploadMap.put("data",srcMap);
		uploadMap.put("code",0);
		uploadMap.put("msg","");
		return uploadMap;
	}
}

登录管理控制层: 

@Controller
public class MemberController {
	@Autowired
	private MemberService memberService;
	@Autowired
	private DefaultKaptcha kaptcha;

	/**
	 * 注册
	 * @param member
	 * @param result
	 * @return
	 */
	@RequestMapping("/user/register.html")
	@ResponseBody
	public Map<String,Object> reg(@Validated Member member, BindingResult result, @RequestParam("gender")String gender, @RequestParam("repassword") String repassword){
		Map<String,Object> errorMap = new HashMap<String, Object>();
		List<String> errorList = new ArrayList<String>();
		if(result.hasErrors()||!member.getMpassword().equals(repassword)){
			errorMap.put("status","0");
			if(!member.getMpassword().equals(repassword)){
				errorList.add("两次输入密码不一致");
			}
			FieldError nameError = result.getFieldError("mname");
			FieldError mpasswordError = result.getFieldError("mpassword");
			FieldError midnoError = result.getFieldError("midno");
			FieldError mphoneError = result.getFieldError("mphone");
			FieldError memailError = result.getFieldError("memail");
			if(nameError != null){
				errorList.add(nameError.getDefaultMessage());
			}
			if(mpasswordError != null){
				errorList.add(mpasswordError.getDefaultMessage());
			}
			if(midnoError != null){
				errorList.add(midnoError.getDefaultMessage());
			}
			if(mphoneError != null){
				errorList.add(mphoneError.getDefaultMessage());
			}
			if(memailError != null){
				errorList.add(memailError.getDefaultMessage());
			}
			errorMap.put("errorList",errorList);
		}else{
			if(gender.equals("1")){
				member.setMgender(1);
			}else{
				member.setMgender(0);
			}
			member.setMdate(new Date());
			memberService.addMember(member);
			errorMap.put("status","1");
			errorMap.put("msg","注册成功,请前往登录!");
		}
		return errorMap;
	}
	/**
	 * 注册时校验邮箱和手机号是否已经被注册
	 */
	@RequestMapping("/user/verifyemailandphone.html")
	@ResponseBody
	public Map<String,Object> verifyEmailAndPhone(String memail,String mphone){
		Map<String,Object> verifyMap = new HashMap<String,Object>();
		if(memail!=null&&!memail.equals(" ")){
			MemberExample memberExample1 = new MemberExample();
			MemberExample.Criteria criteria = memberExample1.createCriteria();
			criteria.andMemailEqualTo(memail);
			long memailCount = memberService.countByExample(memberExample1);
			if(memailCount>0){
				verifyMap.put("status",0);
				verifyMap.put("msg","邮箱已被注册");
				return verifyMap;
			}
		}
		if(mphone!=null && !mphone.equals(" ")){
			MemberExample memberExample2 = new MemberExample();
			MemberExample.Criteria criteria2 = memberExample2.createCriteria();
			criteria2.andMphoneEqualTo(mphone);
			long mphoneCount = memberService.countByExample(memberExample2);
			if(mphoneCount>0){
				verifyMap.put("status",0);
				verifyMap.put("msg","手机号已被注册");
				return verifyMap;
			}
		}
		verifyMap.put("status",1);
		return verifyMap;
	}/**
	 * 注册时校验邮箱和手机号是否已经被注册
	 */
	@RequestMapping("/user/chongzhihuiyuan.html")
	@ResponseBody
	public Map<String,Object> chongzhihuiyuan(HttpServletRequest request,int huiyuan){
		Map<String,Object> verifyMap = new HashMap<String,Object>();
		Member member = (Member)request.getSession().getAttribute("member");
		String name = "";
		Date date = new Date();
		if(huiyuan == 1) {
			name = "月费会员";
			
			if(member.getDaoqi() == null) {
				date = new Date();
				Calendar cal = Calendar.getInstance();   
				cal.setTime(date);   
				cal.add(Calendar.MONTH, 1);// 24小时制   
				date = cal.getTime(); 
				member.setDaoqi(date);
			}else {
				date = member.getDaoqi();
				Calendar cal = Calendar.getInstance();   
				cal.setTime(date);   
				cal.add(Calendar.MONTH, 1);// 24小时制   
				date = cal.getTime(); 
				member.setDaoqi(date);
			}

		}else if(huiyuan == 4) {
			name = "季度会员";
			if(member.getDaoqi() == null) {
				date = new Date();
				Calendar cal = Calendar.getInstance();   
				cal.setTime(date);   
				cal.add(Calendar.MONTH, 4);// 24小时制   
				date = cal.getTime(); 
				member.setDaoqi(date);
			}else {
				date = member.getDaoqi();
				Calendar cal = Calendar.getInstance();   
				cal.setTime(date);   
				cal.add(Calendar.MONTH, 4);// 24小时制   
				date = cal.getTime(); 
				member.setDaoqi(date);
			}
		}else if(huiyuan == 12) {
			name = "年费会员";
			if(member.getDaoqi() == null) {
				date = new Date();
				Calendar cal = Calendar.getInstance();   
				cal.setTime(date);   
				cal.add(Calendar.MONTH, 12);// 24小时制   
				date = cal.getTime(); 
				member.setDaoqi(date);
			}else {
				date = member.getDaoqi();
				Calendar cal = Calendar.getInstance();   
				cal.setTime(date);   
				cal.add(Calendar.MONTH, 12);// 24小时制   
				date = cal.getTime(); 
				member.setDaoqi(date);
			}
		}else if(huiyuan == 24) {
			name = "双年费会员";
			if(member.getDaoqi() == null) {
				date = new Date();
				Calendar cal = Calendar.getInstance();   
				cal.setTime(date);   
				cal.add(Calendar.MONTH, 24);// 24小时制   
				date = cal.getTime(); 
				member.setDaoqi(date);
			}else {
				date = member.getDaoqi();
				Calendar cal = Calendar.getInstance();   
				cal.setTime(date);   
				cal.add(Calendar.MONTH, 24);// 24小时制   
				date = cal.getTime(); 
				member.setDaoqi(date);
			}
		}

		member.setHuiyuan(name);
		memberService.updateByPrimaryKeySelective(member);
		request.getSession().setAttribute("member", member);
		verifyMap.put("status",1);
		return verifyMap;
	}
	/**
	 * 点击验证码重新生成新的验证码
	 */
	@RequestMapping("/login/captcha.html")
	public void captcha(HttpServletRequest request, HttpServletResponse response)
			throws Exception {
		String capText = kaptcha.createText();
		request.getSession().setAttribute(
				com.google.code.kaptcha.Constants.KAPTCHA_SESSION_KEY, capText);
		BufferedImage bi = kaptcha.createImage(capText);
		ServletOutputStream out = response.getOutputStream();
		ImageIO.write(bi, "jpg", out);
		try {
			out.flush();
		} finally {
			out.close();
		}
	}
	/**
	 * 验证码校验
	 */
	@RequestMapping("/kaptchaverify.html")
	@ResponseBody
	public Map<String,Object> verifyCode(String code,HttpServletResponse response,HttpServletRequest request){
		Map<String,Object> verifyMap = new HashMap<String,Object>();
		String codeText = (String)request.getSession().getAttribute(Constants.KAPTCHA_SESSION_KEY);
		if(codeText.equals(code)){
			verifyMap.put("status",1);
		}else{
			verifyMap.put("status",0);
			verifyMap.put("msg","验证码错误");
		}
		return verifyMap;
	}
	/**
	 * 忘记密码 -重置密码
	 */
	@RequestMapping("/user/resetpwd.html")
	@ResponseBody
	public Map<String,Object> resetPwd(String email){
		Map<String,Object> map = new HashMap<String,Object>();

		if(email!=null&&!email.equals(" ")){
			MemberExample memberExample = new MemberExample();
			MemberExample.Criteria criteria = memberExample.createCriteria();
			criteria.andMemailEqualTo(email);
			List<Member> members = memberService.selectByExample(memberExample);
			if(members.size()>0){
				if(SendMail.sendMail(email,members.get(0).getMname())){
					String newPwd = Funcs.MD5(Cons.CONS_MD+"123456789");
					members.get(0).setMpassword(newPwd);
					memberService.updateByPrimaryKeySelective(members.get(0));
					map.put("msg","重置成功,请用新密码登录,如果没有查收到邮件,请到垃圾箱中查看!");
				}else{
					map.put("msg","重置失败");
				}

			}else if(members.size() == 0){
				map.put("msg","该邮箱没有被注册");
			}
		}else{
			map.put("msg","请输入正确的邮箱");
		}
		return map;
	}
	/**
	 * 前台跳转到登录界面
	 * @param request
	 * @param model
	 * @return
	 * @throws UnsupportedEncodingException
	 */
	@RequestMapping("/login.html")
	public String loginPage(HttpServletRequest request,Model model) throws IOException {
		//判断是否用户登录时选择了记住密码,即cookie中有没有信息
		Cookie[] cookies = request.getCookies();
		String username = "";
		String pwd = "";
		if(cookies != null){
			for (Cookie cookie : cookies) {
				if(cookie.getName().equals("user")){
					username = URLDecoder.decode(cookie.getValue().split("#")[0],"UTF-8");
					pwd = cookie.getValue().split("#")[1];
					break;
				}
			}
			model.addAttribute("mname",username);
			model.addAttribute("mpassword",pwd);
		}
		return "login";
	}

	/**
	 * 用户登录
	 * @param mname
	 * @param mpassword
	 * @param request
	 * @param response
	 * @return
	 * @throws Exception
	 */
	@RequestMapping("/user/login.html")
	@ResponseBody
	public Map<String, String> login(String mname, String mpassword, HttpServletRequest request, HttpServletResponse response) throws Exception{
		Map<String, String> res = new HashMap<String, String>();
		Member member = memberService.selectMemberByNameAndPwd(mname, mpassword);
		if (member != null) {
			res.put("status", "1");
			if (request.getParameter("isRemember") != null) {
				Cookie cookie = new Cookie("user", java.net.URLEncoder.encode(mname,"utf-8")+"#"+mpassword);
				cookie.setPath("/");
				cookie.setMaxAge(7 * 24 * 60 * 60);//一星期
				response.addCookie(cookie);
			}
			res.put("username",mname);
			request.getSession().setAttribute("member", member);
		} else {
			res.put("status", "0");
			res.put("msg", "用户名或者密码错误!");
		}
		return res;
	}
	/**
	 * 用户退出
	 * @param request
	 * @return
	 */
	@RequestMapping("/member/loginout.html")
	@ResponseBody
	public Map<String,Object> loginout(HttpServletRequest request){
		Map<String,Object> loginoutMap = new HashMap<String,Object>();
		request.getSession().removeAttribute("member");
		request.getSession().invalidate();
		loginoutMap.put("status",1);
		return loginoutMap;
	}

	/**
	 * 跳转到后台
	 * @return
	 */
	@RequestMapping("admin/adminindex.html")
	public Object admin(HttpServletRequest request,HttpServletResponse response,Model model) throws IOException{
		Member member = (Member)request.getSession().getAttribute("member");
		if(!member.getMname().equals("admin")){
			response.setCharacterEncoding("utf-8");
			response.setContentType("text/html;charset=utf-8;");
			PrintWriter writer = response.getWriter();
			writer.print("<script>alert('没有访问权限!');parent.location.href='"+request.getContextPath()+"/index.html'</script>");
			return false;
		}
		return request.getContextPath()+"/admin/adminindex";
	}
	/**
	 * 后台跳转到会员管理
	 * @return
	 */
	@RequestMapping("/admin/memberlist.html")
	public String memberlistPage(){
		return "admin/member/membermanage";
	}

	/**
	 * 后台会员管理分页
	 * @param page
	 * @param limit
	 * @param mname
	 * @return
	 */
	@RequestMapping("/admin/userlist.html")
	@ResponseBody
	public Map<String,Object> userlistPage(String page,String limit,String mname){
		MemberExample memberExample = new MemberExample();
		if(mname != null && !mname.equals("")){
			MemberExample.Criteria criteria = memberExample.createCriteria();
			criteria.andMnameLike("%"+mname+"%");
		}
		PageHelper.startPage(Integer.parseInt(page),Integer.parseInt(limit));
		List<Member> members = memberService.selectByExample(memberExample);
		PageInfo<Member> pageInfo = new PageInfo<Member>(members);
		Map<String,Object> pageMap = new HashMap<String,Object >();
		pageMap.put("code",0);
		pageMap.put("msg","");
		pageMap.put("count",pageInfo.getTotal());
		pageMap.put("data",pageInfo.getList());
		return pageMap;
	}

	/**
	 * 后台 -会员更新
	 * @param model
	 * @param mid
	 * @return
	 */
	@RequestMapping("/admin/member/goupdate.html")
	public String memberGoUpdate(Model model,String mid){
		Member member = memberService.selectByPrimaryKey(Integer.parseInt(mid));
		model.addAttribute("member",member);
		return "admin/member/memberedit";
	}
	@RequestMapping("/admin/member/doupdate.html")
	@ResponseBody
	public Map<String,Object> memberGoUpdate(Member member){
		Map<String,Object> updateMap = new HashMap<String,Object>();
		int i = memberService.updateByPrimaryKeySelective(member);
		if(i>0){
			updateMap.put("status",1);
		}else {
			updateMap.put("status",0);
		}
		return updateMap;
	}

	/**
	 * 管理员删除用户
	 * @param mid
	 * @return
	 */
	@RequestMapping("/admin/del.html")
	@ResponseBody
	public Map<String,Object> userdelPage(String mid){
		int i = memberService.deleteByPrimaryKey(Integer.parseInt(mid));
		Map<String,Object> delMap = new HashMap<String,Object >();
		if(i>0){
			delMap.put("status",1);
		}else{
			delMap.put("status",0);
		}
		return delMap;
	}
}

源码获取:俺的博客首页 "资源" 里下载!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qq1334611189

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值