基于javaweb的SpringBoot健身房管理系统(java+springboot+mybaits+vue+elementui+mysql)

运行环境

Java≥8、MySQL≥5.7、Node.js≥14

开发工具

后端:eclipse/idea/myeclipse/sts等均可配置运行
前端:WebStorm/VSCode/HBuilderX等均可

❗没学过node.js的不要搞前后端分离项目

适用

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

功能说明

192325012508

212325012508

222325012508

232325012508

242325012508

252325012508

262325012508

272325012508

282325012508

292325012508

基于javaweb的SpringBoot健身房管理系统(java+springboot+mybaits+vue+elementui+mysql)

环境需要

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

使用说明

项目运行:

  1. 使用Navicat或者其它工具,在mysql中创建对应sql文件名称的数据库,并导入项目的sql文件;

  2. 使用IDEA/Eclipse/MyEclipse导入项目,导入成功后请执行maven clean;maven install命令;

  3. 将项目中application.yml配置文件中的数据库配置改为自己的配置;

  4. 运行项目,在浏览器中输入地址:

前台地址:http://localhost:8080/springbootrpj39/front/index.html

后台地址:http://localhost:8080/springbootrpj39/admin/dist/index.html

管理员 abo 密码 abo

用户:用户1 密码: 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 orders = orderService.selectAllOrderWithMember(mname);

PageInfo orderPageInfo = new PageInfo(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 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 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 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 employees = employeeService.selectByExample(employeeExample);

PageInfo employeePageInfo = new PageInfo(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 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 trainers = employeeService.selectByExample(employeeExample);

PageInfo trainerPageInfo = new PageInfo(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 coursecategories = coursecategoryService.selectByExample(new CoursecategoryExample());

model.addAttribute(“coursecategories”,coursecategories);

//查询所有课程功能

List 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 coursecategories1 = coursecategoryService.selectByExample(coursecategoryExample);

criteria.andCcateIdEqualTo(coursecategories1.get(0).getCateId());

if (func!=null&&!func.equals(“全部”)){

criteria2.andFnameEqualTo(func);

List coursefunctions1 = coursefunctionService.selectByExample(coursefunctionExample);

criteria.andCfunctionIdEqualTo(coursefunctions1.get(0).getFid());

PageHelper.startPage(_page,6);

List courses = courseService.selectByExampleWithBLOBs(courseExample);

PageInfo pageInfo = new PageInfo(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 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 trainers = employeeService.selectByExample(employeeExample);

model.addAttribute(“trainers”,trainers);

return “courseinfo”;

/**

  • 后台管理跳转到课程管理界面

  • @return

*/

@RequestMapping(“/admin/course.html”)

public String admincourse(Model model){

//查询所有员工,进行教练名称显示

List employees = employeeService.selectByExample(new EmployeeExample());

model.addAttribute(“employees”,employees);

//查询所有课程类型

List coursecategories = coursecategoryService.selectByExample(new CoursecategoryExample());

model.addAttribute(“coursecategories”,coursecategories);

//查询所有课程功能

List 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 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 courses = courseService.selectByExampleWithBLOBs(example);

PageInfo pageInfo = new PageInfo(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 trainers = employeeService.selectByExample(example);

model.addAttribute(“trainers”,trainers);

//查询所有课程类型

List coursecategories = coursecategoryService.selectByExample(new CoursecategoryExample());

model.addAttribute(“coursecategories”,coursecategories);

//查询所有课程功能

List 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 trainers = employeeService.selectByExample(example);

model.addAttribute(“trainers”,trainers);

//查询所有课程类型

List coursecategories = coursecategoryService.selectByExample(new CoursecategoryExample());

model.addAttribute(“coursecategories”,coursecategories);

//查询所有课程功能

List 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 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 errorList = new ArrayList();

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 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(“alert(‘没有访问权限!’);parent.location.href=’”+request.getContextPath()+”/index.html’“);

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 members = memberService.selectByExample(memberExample);

PageInfo pageInfo = new PageInfo(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;


项目链接:
https://javayms.github.io?id=122325042508201tc
https://javayms.pages.dev?id=122325042508201tc