源码获取:俺的博客首页 "资源" 里下载!
项目介绍
基于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;
}
}
源码获取:俺的博客首页 "资源" 里下载!