基于javaweb+mysql的ssm+maven校园共享自行车管理系统(java+ssm+jsp+easyui+bootstrap+mysql)

基于javaweb+mysql的ssm+maven校园共享自行车管理系统(java+ssm+jsp+easyui+bootstrap+mysql)

运行环境

Java≥8、MySQL≥5.7、Tomcat≥8

开发工具

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

适用

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

功能说明

基于javaweb+mysql的SSM+Maven校园共享自行车管理系统(java+ssm+jsp+easyui+bootstrap+mysql)

项目介绍

管理员角色包含以下功能: 管理员登录,用户管理,服务点管理,共享单车管理,车辆分类管理,学生管理,自行车租赁管理,统计信息,密码修改等功能。

用户角色包含以下功能: 用户登录,基本信息查看等功能。

环境需要

1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。 2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA; 3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可 4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS; 5.数据库:MySql 5.7版本; 6.是否Maven项目:是;

技术栈

  1. 后端:Spring+SpringMVC+Mybatis 2. 前端:JSP+EasyUI+BootStrap+jQuery

使用说明

  1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件; 2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;若为maven项目,导入成功后请执行maven clean;maven install命令,然后运行; 3. 将项目中jdbc.properties配置文件中的数据库配置改为自己的配置; 4. 运行项目,输入localhost:8080/ 登录

/**
 */
public interface BikeService {

    JsonResult add(MultipartFile bikeIcon, Bike bike, HttpServletRequest request,Integer bCount);

    JsonResult update(MultipartFile bikeIcon,Bike bike,HttpServletRequest request);

    Page<Bike> findAllToPage(Integer page, Integer rows);

    //当前bike d掉 和 更新该分类的数量
    JsonResult deleteById(String bids,String cids);

    Bike findById(Integer bid);
}

/**
 */
@Controller
@RequestMapping("total")
public class TotalController {
    @Autowired
    private TotalService totalService;

    public List<Place> showAll(){
        return placeService.findAll();
    }

    //添加或更新服务点 addOrUpdate
    @RequestMapping(value = "/addOrUpdate",method = RequestMethod.POST)
    @ResponseBody
    public JsonResult addOrUpdate(Place place){
        if(place == null) return new JsonResult(false, ResultEnum.SYSTEM_ERROR);
        if(place.getPid() == null ) return placeService.add(place);
        return placeService.update(place);
    }

    //删除服务点
    @RequestMapping(value = "/remove",method = RequestMethod.POST)
    @ResponseBody
    public JsonResult remove(Integer pid){
        return placeService.deleteById(pid);
    }

    //回显服务点的表单数据
    @RequestMapping("/loadForm")
    @ResponseBody
    public Place loadForm(Integer pid){
        return placeService.findById(pid);
    }

}

/**
 * 登陆拦截器
 */
public class LoginInterceptor implements HandlerInterceptor {

    @Override
    public boolean preHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o) throws Exception {
        //判断请求的地址 如果是 /admin/login 或 /admin/logout 就放行
        String requestURI = httpServletRequest.getRequestURI();
    @ResponseBody
    public JsonResult addOrUpdate(Orders orders){
        if(orders.getOid() == null) return ordersService.add(orders);
            return ordersService.update(orders);
    }

    //点击修改按钮,加载订单表单
    @RequestMapping("/loadForm")
    @ResponseBody
    public Orders loadForm(Integer oid){
        return ordersService.findById(oid);
    }

    //显示所有的订单
    @RequestMapping("/showAll")
    @ResponseBody
    public Page<Orders> show(Integer page, Integer rows){
        return ordersService.findAllToPage(page,rows);
    }

    //删除订单
    @RequestMapping("/remove")
    @ResponseBody
    public JsonResult remove(Integer oid,Integer oBid,String oState){
        return ordersService.deleteById(oid,oBid,oState);
    }

}

/**
 */
public class FileUtil {
    /**
     *
     * @param multipartFile 上传的文件
     * @param saveDir  在images文件夹下面的哪个文件夹
     * @param request
     * @return 返回一个文件路径 如果null则上传失败
     */
    }

    //显示所有分类
    @RequestMapping("/showAll")
    @ResponseBody
    public List<Category> showAll(){
       return categoryService.findAll();
    }

    //添加或更新分类 addOrUpdate
    @RequestMapping(value = "/addOrUpdate",method = RequestMethod.POST)
    @ResponseBody
    public JsonResult addOrUpdate(Category category){
        if(category == null) return new JsonResult(false, ResultEnum.SYSTEM_ERROR);
        if(category.getCid() == null ) return categoryService.add(category);
        return categoryService.update(category);
    }

    //删除分类
    @RequestMapping(value = "/remove",method = RequestMethod.POST)
    @ResponseBody
    public JsonResult remove(Integer cid){
        return categoryService.deleteById(cid);
    }

    //回显分类的表单数据
    @RequestMapping("/loadForm")
    @ResponseBody
    public Category loadForm(Integer cid){
        return categoryService.findById(cid);
    }

}

/**

/**
 */
@Controller
@RequestMapping("total")
public class TotalController {
    @Autowired
    private TotalService totalService;

    @RequestMapping("/totalManage")
    public String totalMange(Model model){
        Total totalBean = totalService.getTotalBean();
        model.addAttribute("total",totalBean);
        return "total";
    }

}

/**
 */
public interface StudentService {

    Student findBySno(String sno);

    Page findAllToPage(Integer page, Integer rows);

    JsonResult removeById(Integer sid);

    @RequestMapping("/categoryManage")
    public String categoryMange(){
        return "category";
    }

    //显示所有分类
    @RequestMapping("/showAll")
    @ResponseBody
    public List<Category> showAll(){
       return categoryService.findAll();
    }

    //添加或更新分类 addOrUpdate
    @RequestMapping(value = "/addOrUpdate",method = RequestMethod.POST)
    @ResponseBody
    public JsonResult addOrUpdate(Category category){
        if(category == null) return new JsonResult(false, ResultEnum.SYSTEM_ERROR);
        if(category.getCid() == null ) return categoryService.add(category);
        return categoryService.update(category);
    }

    //删除分类
    @RequestMapping(value = "/remove",method = RequestMethod.POST)
    @ResponseBody
    public JsonResult remove(Integer cid){
        return categoryService.deleteById(cid);
    }

    //回显分类的表单数据
    @RequestMapping("/loadForm")
    @ResponseBody
    public Category loadForm(Integer cid){
        return categoryService.findById(cid);
    }

}

 */
@Controller
@RequestMapping("/orders")
public class OrdersController {

    @Autowired
    OrdersService ordersService;

    //跳转到租赁管理页面
    @RequestMapping("/ordersManage")
    public  String ordersMange(){
        return "orders";
    }

    //添加或修改订单
    @RequestMapping("/addOrUpdate")
    @ResponseBody
    public JsonResult addOrUpdate(Orders orders){
        if(orders.getOid() == null) return ordersService.add(orders);
            return ordersService.update(orders);
    }

    //点击修改按钮,加载订单表单
    @RequestMapping("/loadForm")
    @ResponseBody
    public Orders loadForm(Integer oid){
        return ordersService.findById(oid);
    }

    //显示所有的订单
    @RequestMapping("/showAll")
    @ResponseBody
    public Page<Orders> show(Integer page, Integer rows){
        return ordersService.findAllToPage(page,rows);
    }

    //删除订单
    @RequestMapping("/remove")
    @ResponseBody
    public JsonResult remove(Integer oid,Integer oBid,String oState){
        return ordersService.deleteById(oid,oBid,oState);
    }

}


    @Autowired
    OrdersService ordersService;

    //跳转到租赁管理页面
    @RequestMapping("/ordersManage")
    public  String ordersMange(){
        return "orders";
    }

    //添加或修改订单
    @RequestMapping("/addOrUpdate")
    @ResponseBody
    public JsonResult addOrUpdate(Orders orders){
        if(orders.getOid() == null) return ordersService.add(orders);
            return ordersService.update(orders);
    }

    //点击修改按钮,加载订单表单
    @RequestMapping("/loadForm")
    @ResponseBody
    public Orders loadForm(Integer oid){
        return ordersService.findById(oid);
    }

    //显示所有的订单
    @RequestMapping("/showAll")
    @ResponseBody
    public Page<Orders> show(Integer page, Integer rows){
        return ordersService.findAllToPage(page,rows);
    }

    //删除订单
    @RequestMapping("/remove")
    @ResponseBody
    public JsonResult remove(Integer oid,Integer oBid,String oState){
        return ordersService.deleteById(oid,oBid,oState);
    }

}

    @RequestMapping("/placeManage")
    public String placeMange(){
        return "place";
    }

    //显示所有服务点
    @RequestMapping("/showAll")
    @ResponseBody
    public List<Place> showAll(){
        return placeService.findAll();
    }

    //添加或更新服务点 addOrUpdate
    @RequestMapping(value = "/addOrUpdate",method = RequestMethod.POST)
    @ResponseBody
    public JsonResult addOrUpdate(Place place){
        if(place == null) return new JsonResult(false, ResultEnum.SYSTEM_ERROR);
        if(place.getPid() == null ) return placeService.add(place);
        return placeService.update(place);
    }

    //删除服务点
    @RequestMapping(value = "/remove",method = RequestMethod.POST)
    @ResponseBody
    public JsonResult remove(Integer pid){
        return placeService.deleteById(pid);
    }

    //回显服务点的表单数据
    @RequestMapping("/loadForm")
    @ResponseBody
    public Place loadForm(Integer pid){
        return placeService.findById(pid);
    }

}

        return "没有此账号~";
    }

    @Override
    public boolean upDate(Admin admin) {
        AdminExample adminExample = new AdminExample();
        adminExample.createCriteria().andAUsernameEqualTo(admin.getaUsername());
        int i = adminMapper.updateByExampleSelective(admin, adminExample);
        return i > 0 ? true : false;
    }

    @Override
    public Admin findByUsername(String username) {
        AdminExample adminExample = new AdminExample();
        adminExample.createCriteria().andAUsernameEqualTo(username);
        List<Admin> admins = adminMapper.selectByExample(adminExample);
        if(admins != null && admins.size() > 0){
            Admin admin = admins.get(0);
            //pid不为空设置站点对象
            if(admin.getaPid() != null) {
                admin.setPlace(placeMapper.selectByPrimaryKey(admin.getaPid()));
            }
            return admin;
        }
        return null;
    }

    @Override
    public Page<Admin> findAllToPage(Integer page, Integer rows) {

        Page<Admin> aPage = new Page<>();
        List<Admin> lists = adminMapper.findToPage((page-1)*rows,rows);
        aPage.setRows(lists);
        aPage.setTotal(adminMapper.countByExample(new AdminExample()));
        return aPage;
    }

    @Override
    public JsonResult deleteById(Integer aid) {
        if (aid == null) return new JsonResult(false, ResultEnum.SYSTEM_ERROR);
        int i = adminMapper.deleteByPrimaryKey(aid);
        return i > 0 ? new JsonResult(true, ResultEnum.DELETE_SUCCESS)
                : new JsonResult(false, ResultEnum.DELETE_FAIL);
    }

    @Override
    public List<Place> loadPlace() {
        List<Place> places = placeMapper.selectByExample(new PlaceExample());
        return places;
    }
//            throw new RuntimeException(e);
            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
            return new JsonResult(false,ResultEnum.SYSTEM_ERROR);
        }
    }

    @Override
    public Bike findById(Integer bid) {
        return bikeMapper.selectByPrimaryKey(bid);
    }

}

/**
 */
@Service
public class AdminServiceImpl implements AdminService {

    @Autowired
    private AdminMapper adminMapper;

    @Autowired
    private PlaceMapper placeMapper;
        if(category.getCid() == null ) return categoryService.add(category);
        return categoryService.update(category);
    }

    //删除分类
    @RequestMapping(value = "/remove",method = RequestMethod.POST)
    @ResponseBody
    public JsonResult remove(Integer cid){
        return categoryService.deleteById(cid);
    }

    //回显分类的表单数据
    @RequestMapping("/loadForm")
    @ResponseBody
    public Category loadForm(Integer cid){
        return categoryService.findById(cid);
    }

}

/**
 */
@Controller
@RequestMapping("/place")
public class PlaceController {

    @Autowired
    private PlaceService placeService;

    //跳转到  place 页面
    @RequestMapping("/placeManage")
    public String placeMange(){
        return "place";
    }


    @Autowired
    private StudentMapper studentMapper;

    @Override
    public Student findBySno(String sno) {
        StudentExample studentExample = new StudentExample();
        studentExample.createCriteria().andSnoEqualTo(sno);
        List<Student> students = studentMapper.selectByExample(studentExample);
        if(students != null && students.size() > 0) return students.get(0);
        return null;
    }

    @Override
    public Page findAllToPage(Integer page, Integer rows) {
        Page<Student> sPage = new Page<>();
        List<Student> lists = studentMapper.findToPage((page-1)*rows,rows);
        sPage.setRows(lists);
        sPage.setTotal(studentMapper.countByExample(new StudentExample()));
        return sPage;
    }

    @Override
    public JsonResult add(MultipartFile studentIcon, Student student,HttpServletRequest request) {
        if(!studentIcon.isEmpty()){
            String path = FileUtil.uploadImage(studentIcon, "studentIcon", request);
            if(path == null) return new JsonResult(false, ResultEnum.UPLOAD_TYPE_ERROR);
            student.setsIcon(path);
        }

        student.setsCreateTime(new Date());
        student.setsUpdateTime(new Date());
        if(student.getsSex() == null) student.setsSex("男");
        try{
            int   i = studentMapper.insertSelective(student);
            return    i > 0 ?  new JsonResult(true, ResultEnum.ADD_SUCCESS)
                    : new JsonResult(false, ResultEnum.ADD_FAIL);
        }catch (Exception e){
            e.printStackTrace();
            return new JsonResult(false, ResultEnum.REPEAT_ERROR);
        }
    }

    @Override
    public JsonResult removeById(Integer sid) {
 */
@Controller
@RequestMapping("/student")
public class StudentController {

    @Autowired
    private StudentService studentService;

    //跳转到student管理 jsp页面
    @RequestMapping("/studentManage")
    public String studentManage(){
        return "student";
    }

    //添加或更新一个学生
    @RequestMapping(value = "/addOrUpdate",method = RequestMethod.POST)
    @ResponseBody
    public JsonResult add(MultipartFile studentIcon, Student student, HttpServletRequest request){
        if(student.getSid() == null || "".equals(student.getSid()))
        return studentService.add(studentIcon,student,request);
        return studentService.update(studentIcon,student,request);
    }

    //显示所有的学生
    @RequestMapping("/showAll")
    @ResponseBody
    public Page<Student> show(Integer page,Integer rows){
        return studentService.findAllToPage(page,rows);
    }

    //删除一个学生
    @RequestMapping(value = "/remove",method = RequestMethod.POST)
    @ResponseBody
    public JsonResult remove( Integer sid){
        return studentService.removeById(sid);
    }

    //回显 指定一个student数据到student页面的弹出框表单中
    @RequestMapping("/loadForm")
    @ResponseBody
    public Student loadForm(Integer sid){
        return studentService.findById(sid);
            e.printStackTrace();
            return new JsonResult(false, ResultEnum.REPEAT_ERROR);
        }
    }

    @Override
    public JsonResult update(MultipartFile adminIcon, Admin admin, HttpServletRequest request) {
        try{
            if(!adminIcon.isEmpty()){
                //更新首先要先删除原来的文件
                if(admin.getaIcon() != null){
                    File file = new File(request.getServletContext().getRealPath("/" + admin.getaIcon()));
               //     if(file != null) file.delete();
                }
                String path = FileUtil.uploadImage(adminIcon, "adminIcon", request);
                if(path == null) return new JsonResult(false, ResultEnum.UPLOAD_TYPE_ERROR);
                admin.setaIcon(path);
            }
            admin.setaUpdateTime(new Date());
            int i = adminMapper.updateByPrimaryKeySelective(admin);
            return i > 0 ? new JsonResult(false, ResultEnum.UPDATE_SUCCESS)
                    : new JsonResult(false, ResultEnum.UPDATE_FAIL);
        }catch (Exception e){
            e.printStackTrace();
            return new JsonResult(false, ResultEnum.SYSTEM_ERROR);
        }
    }

}

            return true;

        HttpSession session = httpServletRequest.getSession();
        if(session.getAttribute("admin") == null){
            httpServletResponse.sendRedirect(httpServletRequest.getContextPath()+"/login.jsp");
            return false;
        }
        return true;
    }

    @Override
    public void postHandle(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, ModelAndView modelAndView) throws Exception {

    }

    @Override
    public void afterCompletion(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) throws Exception {

    }
}

/**
 */
@Controller
@RequestMapping("/orders")
public class OrdersController {

    @Autowired
    OrdersService ordersService;

    //跳转到租赁管理页面
    @RequestMapping("/ordersManage")
    public  String ordersMange(){
        return "orders";
    }

    //添加或修改订单
    @RequestMapping("/addOrUpdate")

/**
 */
public class FileUtil {
    /**
     *
     * @param multipartFile 上传的文件
     * @param saveDir  在images文件夹下面的哪个文件夹
     * @param request
     * @return 返回一个文件路径 如果null则上传失败
     */
    public static String uploadImage(MultipartFile multipartFile,String saveDir, HttpServletRequest request){
            if(!multipartFile.getContentType().startsWith("image/"))
                return null;
            String filename = multipartFile.getOriginalFilename();
            String type = filename.substring(filename.lastIndexOf("."));
            String newFilename = UUIDUtil.getUUIDByTime()+type;
            String path = request.getServletContext().getRealPath("/images/"+saveDir)+"/"+newFilename;
            try{
                FileCopyUtils.copy(multipartFile.getInputStream(), new FileOutputStream(path));
                return "images/"+saveDir+"/"+newFilename;
            }catch (IOException e){
                e.printStackTrace();
                return null;
            }

    }
}

/**

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值