基于javaweb+mysql的ssm+maven民宿管理系统(java+ssm+jsp+bootstrap+jquery+mysql)

运行环境

Java≥8、MySQL≥5.7、Tomcat≥8

开发工具

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

适用

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

功能说明

基于javaweb+mysql的SSM+Maven民宿管理系统(java+ssm+jsp+bootstrap+jquery+mysql)

项目介绍

游客功能:用户注册、登录、登录权限拦截、按名称搜索房间、支付流程、查看订单信息和状态、评论预定过的房间,并自动修改订单状态、查看统计剩余房间数量,数量为0时不可预定 管理员功能:房间分类管理、房间管理、订单管理

高级功能:各种列表清单的导出和打印功能、订单组合条件查询

功能清单

游客功能

  • 用户注册、登录 + 登录权限拦截 + 按名称搜索房间 + 支付流程 + 查看订单信息和状态 + 评论预定过的房间,并自动修改订单状态

  • 查看统计剩余房间数量,数量为0时不可预定

管理员功能

房间分类管理 + 类型的删除、修改、查询(准备添加增添功能,即图片上传功能) + 类型所含属性的增删改查 + 房间分类图片上传 > 房间管理 + 房间增删改导印统 + 查询已上传房间的所有照片 + 房间的配套设施属性设置 + 房间价格(原价、活动价)、名称、描述等属性设置 + 房间存量统计 > 订单管理 + 订单信息修改、删除 + 订单组合条件查询

  • 筛选出超时未评论的订单

高级功能 + 各种列表清单的导出和打印功能

  • 订单组合条件查询

环境需要

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.是否Maven项目: 是;查看源码目录中是否包含pom.xml;若包含,则为maven项目,否则为非maven项目 6.数据库:MySql 5.7版本;

技术栈

  1. 后端:Spring SpringMVC MyBatis

  2. 前端:JSP+bootstrap+jQuery

使用说明

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

  2. 运行项目,输入localhost:8080/ 登录

        ExportExcel.exportExcel(request,response,fileName, rowsName, dataList, "yyyy-MM-dd HH:mm:ss");
    }

    //查询所有属性
    @RequestMapping(value = "/admin_property_list",produces = "text/html;charset=UTF-8")
    @ResponseBody
    public ModelAndView listProperty(@RequestParam(value = "cid") Integer cid,HttpServletRequest request){
        request.getSession().setAttribute("cid",cid);
        List<Property> properties = productService.listProproty(cid);
        mav.addObject("ps",properties);
        mav.addObject("c",categoryService.getCategory(cid));
        mav.setViewName("/admin/listProperty");
        return mav;
    }

    //编辑属性名称页面
    @RequestMapping(value = "/admin_property_edit",produces = "text/html;charset=UTF-8")
    @ResponseBody
    public ModelAndView admin_property_edit(@RequestParam(value = "id") Integer id){
        Property property = productService.getProperty(id);
        mav.addObject("p",property);
        mav.setViewName("/admin/editProperty");
        return mav;
    }

    //提交编辑的属性名称
    @RequestMapping(value = "/admin_property_update",produces = "text/html;charset=UTF-8")
    @ResponseBody
    public ModelAndView admin_property_update(Property record){
        productService.updateProperty(record);
        List<Property> properties = productService.listProproty(record.getCid());
        mav.addObject("ps",properties);
        mav.setViewName("/admin/listProperty");
        return mav;
    }

    //删除属性名称
    @RequestMapping(value = "/admin_property_delete",produces = "text/html;charset=UTF-8")
    @ResponseBody
    public ModelAndView admin_property_delete(Integer id,HttpServletRequest request){
        try{
            productService.deleteProperty(id);
        }catch (Exception e){
            e.printStackTrace();
        }
        List<Property> properties = productService.listProproty((Integer)request.getSession().getAttribute("cid"));
        mav.addObject("ps",properties);
        mav.setViewName("/admin/listProperty");
        for (int colNum = 0; colNum < headers.length; colNum++) {
            int columnWidth = sheet.getColumnWidth(colNum) / 256;
            for (int rowNum = 0; rowNum < sheet.getLastRowNum(); rowNum++) {
                HSSFRow currentRow;
                // 当前行未被使用过  
                if (sheet.getRow(rowNum) == null) {
                    currentRow = sheet.createRow(rowNum);
                } else {
                    currentRow = sheet.getRow(rowNum);
                }
                if (currentRow.getCell(colNum) != null) {
                    HSSFCell currentCell = currentRow.getCell(colNum);
                    if (currentCell.getCellType() == HSSFCell.CELL_TYPE_STRING) {
                        int length = currentCell.getStringCellValue() != null
                                ? currentCell.getStringCellValue().getBytes().length : 10;
                        if (columnWidth < length) {
                            columnWidth = length;
                        }
                    }
                }
            }
            if (colNum == 0) {
                sheet.setColumnWidth(colNum, (columnWidth - 2) * 256);
            } else {
                sheet.setColumnWidth(colNum, (columnWidth + 4) * 256);
            }
        }
        try {
            if (createDir(docsPath)) {
                OutputStream out = new FileOutputStream(filePath);
                workbook.write(out);
                out.close();
                download(filePath, response);// 执行下载  
                cleanFile(filePath);// 删除已完成下载的文件  
            }
        }  catch (FileNotFoundException e) {
            e.printStackTrace();
        }catch (IOException e) {
            e.printStackTrace();
        }
        return workbook;
    }

    /**
     * 导出下载,弹出下载框 
     * @param path  文件下载路径 
     * @param response

@Controller
@RequestMapping("/admin")
public class AdminController {
    @Autowired
    private UserService userService;
    @Autowired
    private CategoryService categoryService;
    @Autowired
    private OrderItemService orderItemService;
    @Autowired
    private OrderService orderService;
    @Autowired
    private ProductService productService;

    private static Logger logger = Logger.getLogger(AdminController.class);
    private ModelAndView mav = new ModelAndView();

    // windows系统参考路径 注:此处必须为项目路径
    private static String imgPath = "C:\\Users\\51414\\Desktop\\ssm民宿管理系统\\project\\";

    private ModelAndView listProduct(Integer cid) {
        List<Product> products = productService.listProducts(cid);
        mav.addObject("ps",products);
        mav.addObject("c",categoryService.getCategory(cid));
        mav.setViewName("/admin/listProduct");
        return mav;
    }

    //查询所有房间分类
        modelAndView.addObject("u",request.getSession().getAttribute("user"));
        modelAndView.setViewName("review");
        return modelAndView;
    }

    /**
     * 评价;订单状态:reviewed
     * @param review
     * @param request
     * @return
     * @throws Exception
     */
    @RequestMapping(value = "/foredoreviewed", produces = "text/html; charset=UTF-8")
    @ResponseBody
    public ModelAndView reviewed(Review review, HttpServletRequest request)throws Exception{
        Date date = new Date();
        review.setCreateDate(date);
        reviewService.insert(review);
        Product product = productService.getProduct(review.getPid());
        product.setReviewCount(product.getReviewCount()+1);
        productService.update(product);
        Order order = orderService.getOrder(review.getOid());
        order.setStatus("reviewed");
        orderService.update(order);
        return review(review.getOid(),request);
    }
}
package controller;

@Controller
@RequestMapping("/order")

    //编辑属性名称页面
    @RequestMapping(value = "/admin_property_edit",produces = "text/html;charset=UTF-8")
    @ResponseBody
    public ModelAndView admin_property_edit(@RequestParam(value = "id") Integer id){
        Property property = productService.getProperty(id);
        mav.addObject("p",property);
        mav.setViewName("/admin/editProperty");
        return mav;
    }

    //提交编辑的属性名称
    @RequestMapping(value = "/admin_property_update",produces = "text/html;charset=UTF-8")
    @ResponseBody
    public ModelAndView admin_property_update(Property record){
        productService.updateProperty(record);
        List<Property> properties = productService.listProproty(record.getCid());
        mav.addObject("ps",properties);
        mav.setViewName("/admin/listProperty");
        return mav;
    }

    //删除属性名称
    @RequestMapping(value = "/admin_property_delete",produces = "text/html;charset=UTF-8")
    @ResponseBody
    public ModelAndView admin_property_delete(Integer id,HttpServletRequest request){
        try{
            productService.deleteProperty(id);
        }catch (Exception e){
            e.printStackTrace();
        }
        List<Property> properties = productService.listProproty((Integer)request.getSession().getAttribute("cid"));
        mav.addObject("ps",properties);
        mav.setViewName("/admin/listProperty");
        return mav;
    }

    //房间管理
    @RequestMapping(value = "/admin_product_list",produces = "text/html;charset=UTF-8")
    @ResponseBody
    public ModelAndView admin_product_list(Integer cid){
        return listProduct(cid);
    }

    //添加房间
    @RequestMapping(value = "/admin_product_add",produces = "text/html;charset=UTF-8")
    @ResponseBody
     * @param request
     * @param response
     * @param name:用户名
     * @param password:密码
     * @return
     * @throws Exception
     */
    @RequestMapping(value = "/forelogin",produces = "text/html;charset=UTF-8")
    @ResponseBody
    public ModelAndView logIn(HttpServletRequest request, HttpServletResponse response,String name, String password) throws Exception{
        User user = userService.getUser(name);
        if(user != null && user.getPassword().equals(password)){
            //登陆成功
            request.getSession(true).setAttribute("user",user);
            logger.info(request.getPathInfo());
            return home(request);
        }
        return null;
    }

    /**
     * 退出登录
     * @param request
     * @param response
     * @throws Exception
     */
    @RequestMapping(value = "/forelogout",produces = "text/html;charset=UTF-8")
    @ResponseBody
    public void logOut(HttpServletRequest request, HttpServletResponse response) throws Exception{
        request.getSession().invalidate();
        response.sendRedirect("home.jsp");
    }

    @RequestMapping(value = "/foresearch",produces = "text/html;charset=UTF-8")
    @ResponseBody
    public ModelAndView search(HttpServletRequest request, HttpServletResponse response, String keyword) throws Exception{
        List<Product> ps = productService.listProducts(keyword);

        modelAndView.addObject("ps",ps);
        modelAndView.setViewName("/searchResult");
    }
}
package controller;

@Controller
@RequestMapping("/order")
class OrderController {

    private static Logger logger = Logger.getLogger(OrderController.class);
    //获取所有订单
    @RequestMapping(value = "/list",produces = "text/html;charset=UTF-8")
    @ResponseBody
    public List<Order> listOrder(/* @RequestParam(value = "addressId") int addressId */) throws Exception{
        SqlSession sqlSession = MybatisSessionFactory.getSession();
        OrderMapper orderMapper = sqlSession.getMapper(OrderMapper.class);
        return orderMapper.selectAll();
    }

    @RequestMapping(value = "/deleteOne",produces = "text/html;charset=UTF-8")
    @ResponseBody
    public String deleteById(@RequestParam(value = "orderId") Integer orderId) throws Exception{
        SqlSession sqlSession = MybatisSessionFactory.getSession();
        OrderMapper orderMapper = sqlSession.getMapper(OrderMapper.class);
        try{
            orderMapper.deleteByPrimaryKey(orderId);
            return "删除成功";
        }catch (Exception e){
            e.printStackTrace();
            return e.getMessage();
        }
    }

    @RequestMapping(value = "/delete",produces = "text/html;charset=UTF-8")
    @ResponseBody
    public String deleteById(@RequestParam(value = "orderIds") List<Integer> orderIds) throws Exception{
/**
 * 利用开源组件POI3.13动态导出EXCEL文档 
 *
 * @version v1.0
 * @param
 *  */
public class ExportExcel {
    public static final String FILE_SEPARATOR = System.getProperties().getProperty("file.separator");

    /**
     * 这是一个通用的方法 
     * @param fileName 文件名 
     * @param headers  表格属性列名数组 
     * @param dataset  需要显示的数据集合 
     * @param pattern 如果有时间数据,设定输出格式。默认为"yyy-MM-dd"
     */
    @SuppressWarnings("deprecation")
    public static HSSFWorkbook exportExcel(HttpServletRequest request,HttpServletResponse response,String fileName, String[] headers, List<Object[]> dataset,  String pattern) {
        String docsPath = request.getSession().getServletContext().getRealPath("docs");//docs文件夹目录  
        String filePath = docsPath + FILE_SEPARATOR + fileName+"-任意名.xls";
        // 声明一个工作薄  
        HSSFWorkbook workbook = new HSSFWorkbook();
        // 生成一个表格  
        HSSFSheet sheet = workbook.createSheet("Excel");
        // 设置表格默认列宽度为15个字节  
        //sheet.setDefaultColumnWidth((short) 15);  
        // 生成一个表格标题行样式  
        HSSFCellStyle style = getColumnTopStyle(workbook);
        // 生成非标题样式  
        HSSFCellStyle style2 = getColumnStyle(workbook);
        // 产生表格标题行  
        HSSFRow row = sheet.createRow(0);
        for (short i = 0; i < headers.length; i++) {
            HSSFCell cell = row.createCell(i);
            cell.setCellStyle(style);
            HSSFRichTextString text = new HSSFRichTextString(headers[i]);
            cell.setCellValue(text);
        }
        // 遍历集合数据,产生数据行  
        Iterator<Object[]> it = dataset.iterator();
/**
 * 利用开源组件POI3.13动态导出EXCEL文档 
 *
 * @version v1.0
 * @param
 *  */
public class ExportExcel {
    public static final String FILE_SEPARATOR = System.getProperties().getProperty("file.separator");

    /**
     * 这是一个通用的方法 
     * @param fileName 文件名 
     * @param headers  表格属性列名数组 
     * @param dataset  需要显示的数据集合 
     * @param pattern 如果有时间数据,设定输出格式。默认为"yyy-MM-dd"
     */
    @SuppressWarnings("deprecation")
    public static HSSFWorkbook exportExcel(HttpServletRequest request,HttpServletResponse response,String fileName, String[] headers, List<Object[]> dataset,  String pattern) {
        String docsPath = request.getSession().getServletContext().getRealPath("docs");//docs文件夹目录  
        String filePath = docsPath + FILE_SEPARATOR + fileName+"-任意名.xls";
        // 声明一个工作薄  
        HSSFWorkbook workbook = new HSSFWorkbook();
        // 生成一个表格  
        HSSFSheet sheet = workbook.createSheet("Excel");
        // 设置表格默认列宽度为15个字节  
        //sheet.setDefaultColumnWidth((short) 15);  
        // 生成一个表格标题行样式  
        HSSFCellStyle style = getColumnTopStyle(workbook);
        // 生成非标题样式  
        HSSFCellStyle style2 = getColumnStyle(workbook);
        // 产生表格标题行  
        HSSFRow row = sheet.createRow(0);
        for (short i = 0; i < headers.length; i++) {
            HSSFCell cell = row.createCell(i);
            cell.setCellStyle(style);
            HSSFRichTextString text = new HSSFRichTextString(headers[i]);
            orderMapper.deleteByPrimaryKey(orderId);
            return "删除成功";
        }catch (Exception e){
            e.printStackTrace();
            return e.getMessage();
        }
    }

    @RequestMapping(value = "/delete",produces = "text/html;charset=UTF-8")
    @ResponseBody
    public String deleteById(@RequestParam(value = "orderIds") List<Integer> orderIds) throws Exception{
        SqlSession sqlSession = MybatisSessionFactory.getSession();
        //使用mapper批量删除
        OrderMapper orderMapper = sqlSession.getMapper(OrderMapper.class);
        OrderExample orderExample = new OrderExample();
        OrderExample.Criteria criteria = orderExample.createCriteria();
        criteria.andIdIn(orderIds);
        try{
            orderMapper.deleteByExample(orderExample);
            return "删除成功";
        }catch (Exception e){
            e.printStackTrace();
            return e.getMessage();
        }
    }
}
package controller;

        // 生成一个表格  
        HSSFSheet sheet = workbook.createSheet("Excel");
        // 设置表格默认列宽度为15个字节  
        //sheet.setDefaultColumnWidth((short) 15);  
        // 生成一个表格标题行样式  
        HSSFCellStyle style = getColumnTopStyle(workbook);
        // 生成非标题样式  
        HSSFCellStyle style2 = getColumnStyle(workbook);
        // 产生表格标题行  
        HSSFRow row = sheet.createRow(0);
        for (short i = 0; i < headers.length; i++) {
            HSSFCell cell = row.createCell(i);
            cell.setCellStyle(style);
            HSSFRichTextString text = new HSSFRichTextString(headers[i]);
            cell.setCellValue(text);
        }
        // 遍历集合数据,产生数据行  
        Iterator<Object[]> it = dataset.iterator();
        int index = 0;
        while (it.hasNext()) {
            index++;
            row = sheet.createRow(index);//从第1行开始创建  
            Object[] obj = (Object[]) it.next();
            for (short i = 0; i < obj.length; i++) {
                HSSFCell cell = row.createCell(i);
                cell.setCellStyle(style2);
                Object value = obj[i];
                String textValue = null;
                if (!"".equals(value) && value != null) {
                    if (value instanceof Integer) {
                        int intValue = (Integer) value;
                        cell.setCellValue(intValue);
                    } else if (value instanceof Float) {
                        float fValue = (Float) value;
                        cell.setCellValue(fValue);
                    } else if (value instanceof Double) {
                        double dValue = (Double) value;
                        cell.setCellValue(dValue);
                    } else if (value instanceof Long) {
                        long longValue = (Long) value;
                        cell.setCellValue(longValue);
                    } else if (value instanceof Date) {
                        Date date = (Date) value;
                        if(null==pattern||pattern.equals("")){
                            pattern="yyyy-MM-dd";
                out.close();
                download(filePath, response);// 执行下载  
                cleanFile(filePath);// 删除已完成下载的文件  
            }
        }  catch (FileNotFoundException e) {
            e.printStackTrace();
        }catch (IOException e) {
            e.printStackTrace();
        }
        return workbook;
    }

    /**
     * 导出下载,弹出下载框 
     * @param path  文件下载路径 
     * @param response
     */
    public static void download(String path, HttpServletResponse response) {
        try {
            // path是指欲下载的文件的路径。  
            File file = new File(path);
            // 取得文件名。  
            String filename = file.getName();
            // 以流的形式下载文件。  
            InputStream fis = new BufferedInputStream(new FileInputStream(path));
            byte[] buffer = new byte[fis.available()];
            fis.read(buffer);
            fis.close();
            // 清空response  
            response.reset();
            // 设置response的Header  
            response.addHeader("Content-Disposition", "attachment;filename="+ URLEncoder.encode(filename, "UTF-8"));
            response.addHeader("Content-Length", "" + file.length());
            OutputStream toClient = new BufferedOutputStream(response.getOutputStream());
            response.setContentType("application/vnd.ms-excel;charset=gb2312");
            toClient.write(buffer);
            toClient.flush();
            toClient.close();
        } catch (IOException ex) {
            ex.printStackTrace();
        }
    }
    /**

     * 清除文件

        return modelAndView;
    }

    /**
     * 创建订单;订单状态:waitPay
     * @param order
     * @param request
     * @return
     * @throws Exception
     */
    @RequestMapping(value = "/forecreateOrder",produces = "text/html;charset=UTF-8")
    @ResponseBody
    public ModelAndView buy(Order order, HttpServletRequest request) throws  Exception{
        /**确定支付**/
        Order origin_order = (Order)request.getSession().getAttribute("order");
        origin_order.setOrderCode(UUID.randomUUID().toString().replace("-", "").toLowerCase());
        origin_order.setReceiver(order.getReceiver());
        origin_order.setMobile(order.getMobile());
        origin_order.setUserMessage(order.getUserMessage());
        origin_order.setStatus("waitPay");
        origin_order.setPayDate(new Date());
        if(order.getReceiver()==null || order.getReceiver().equals("")){
            User user = (User)request.getSession().getAttribute("user");
            order.setReceiver(user.getName());
        }
        orderService.update(origin_order);
        modelAndView.addObject("o",origin_order);
        modelAndView.setViewName("/confirmPay");
        return modelAndView;
    }

    /**
     * 确认支付,订单状态:waitReview
     * @param oid
     * @return
     * @throws Exception
     */
    @RequestMapping(value = "/foreorderConfirmed", produces = "text/html; charset=UTF-8")
    @ResponseBody
    public ModelAndView confirm(Integer oid) throws Exception{
        Order order = orderService.getOrder(oid);
        order.setStatus("waitReview");
        orderService.update(order);
        modelAndView.setViewName("orderConfirmed");
        return modelAndView;
    }

    @RequestMapping(value = "/forebought", produces = "text/html; charset=UTF-8")
    @RequestMapping(value = "/admin_print_user_list",produces = "text/html;charset=UTF-8")
    @ResponseBody
    public ModelAndView printLlistUser(){
        List<User> users = userService.listAll();
        mav.addObject("us",users);
        mav.setViewName("/admin/printListUser");
        return mav;
    }

    //导出用户信息
    @RequestMapping(value = "/admin_export_user_list",produces = "text/html;charset=UTF-8")
    @ResponseBody
    public void exportUserList(HttpServletRequest request, HttpServletResponse response) throws Exception{
        List<User> users = userService.listAll();
        String []rowsName = new String[]{"id","name","password"};
        List<Object[]> dataList = new ArrayList<Object[]>();
        for(int i = 0;i < users.size();i++){
            Object[] objs = new Object[rowsName.length];
            User user = users.get(i);
            objs[0] = user.getId();
            objs[1] = user.getName();
            objs[2] = user.getPassword();
            dataList.add(objs);
        }
        String fileName = "exportUserExcel";
        //执行导出
        ExportExcel.exportExcel(request,response,fileName, rowsName, dataList, "yyyy-MM-dd HH:mm:ss");
    }

    //删除用户
    @RequestMapping(value = "/admin_user_delete",produces = "text/html;charset=UTF-8")
    @ResponseBody
    public ModelAndView admin_user_delete(Integer id, HttpServletRequest request){
        try{
            userService.deleteByPrimaryKey(id);
        }catch (Exception e){
            e.getMessage();
        }
        List<User> users = userService.listAll();
        mav.addObject("us",users);
        mav.setViewName("/admin/listUser");
        return mav;
    }

    //编辑用户信息页面
        origin_order.setUserMessage(order.getUserMessage());
        origin_order.setStatus("waitPay");
        origin_order.setPayDate(new Date());
        if(order.getReceiver()==null || order.getReceiver().equals("")){
            User user = (User)request.getSession().getAttribute("user");
            order.setReceiver(user.getName());
        }
        orderService.update(origin_order);
        modelAndView.addObject("o",origin_order);
        modelAndView.setViewName("/confirmPay");
        return modelAndView;
    }

    /**
     * 确认支付,订单状态:waitReview
     * @param oid
     * @return
     * @throws Exception
     */
    @RequestMapping(value = "/foreorderConfirmed", produces = "text/html; charset=UTF-8")
    @ResponseBody
    public ModelAndView confirm(Integer oid) throws Exception{
        Order order = orderService.getOrder(oid);
        order.setStatus("waitReview");
        orderService.update(order);
        modelAndView.setViewName("orderConfirmed");
        return modelAndView;
    }

    @RequestMapping(value = "/forebought", produces = "text/html; charset=UTF-8")
    @ResponseBody
    public ModelAndView bought(HttpServletRequest request) throws Exception{
        modelAndView.setViewName("bought");
        User user = (User) request.getSession().getAttribute("user");
        modelAndView.addObject("os", orderService.getOrders(user));
        return modelAndView;
    }

    @RequestMapping(value = "/deleteorder", produces = "text/html; charset=UTF-8")
    @ResponseBody
    public void deleteorder(HttpServletRequest request,HttpServletResponse response, Integer oid) throws Exception{
        }
        List<Order> orders = orderService.selectOrder(status,min,max);
        for(Order order:orders){
            order.setOrderItems(orderItemService.getOrderItem(order.getId()));
        }
        mav.addObject("os",orders);
        mav.setViewName("/admin/listOrder");
        return mav;
    }

    //提交修改订单信息
    @RequestMapping(value = "/admin_order_update",produces = "text/html;charset=UTF-8")
    @ResponseBody
    public ModelAndView admin_order_update(Order order){
        Order oldOrder = orderService.getOrder(order.getId());
        oldOrder.setReceiver(order.getReceiver());
        oldOrder.setTotal(order.getTotal());
        oldOrder.setStatus(order.getStatus());
        orderService.update(oldOrder);
        mav = listOrder();
        mav.setViewName("/admin/listOrder");
        return mav;
    }

    //超时三天未评论的订单
    @RequestMapping(value = "/outdate_order",produces = "text/html;charset=UTF-8")
    @ResponseBody
    public ModelAndView outdate_order(){
        List<Order> orders = orderService.outDateOrder();
        mav.addObject("os",orders);
        mav.setViewName("/admin/listOrder");
        return mav;
    }

    //添加订单
    @RequestMapping(value = "/admin_order_add",produces = "text/html;charset=UTF-8")
    @ResponseBody
    public ModelAndView admin_order_add(Order order,HttpServletRequest request){
        request.getSession().setAttribute("id",order.getId());
        orderService.insert(order);
        mav = listOrder();
        mav.setViewName("/admin/listOrder");
        return mav;
    }

    /**
     * 跳转到评价页面
     * @param oid:订单id
     * @param request
     * @return
     * @throws Exception
     */
    @RequestMapping(value = "/forereview", produces = "text/html; charset=UTF-8")
    @ResponseBody
    public ModelAndView review(int oid, HttpServletRequest request)throws Exception{
        Order order = orderService.getOrder(oid);
        Product product = productService.getProduct(orderItemService.getOrderItem(oid).get(0).getPid());
        List<Review> reviews = reviewService.listReview(product.getId());
        modelAndView.addObject("re", reviewService.getReviews(reviews));
        modelAndView.addObject("p",product);
        modelAndView.addObject("o",order);
        modelAndView.addObject("u",request.getSession().getAttribute("user"));
        modelAndView.setViewName("review");
        return modelAndView;
    }

    /**
     * 评价;订单状态:reviewed
     * @param review
     * @param request
     * @return
     * @throws Exception
     */
    @RequestMapping(value = "/foredoreviewed", produces = "text/html; charset=UTF-8")
    @ResponseBody
    public ModelAndView reviewed(Review review, HttpServletRequest request)throws Exception{
        Date date = new Date();
        review.setCreateDate(date);
        reviewService.insert(review);
        Product product = productService.getProduct(review.getPid());
        product.setReviewCount(product.getReviewCount()+1);
        productService.update(product);
        Order order = orderService.getOrder(review.getOid());
        order.setStatus("reviewed");
        orderService.update(order);
        return review(review.getOid(),request);
    }
}
package controller;

            categoryService.delete(id);
        } catch (Exception e) {
            e.getMessage();
        }
        return listCategory();
    }

    //添加属性
    @RequestMapping(value = "/admin_property_add",produces = "text/html;charset=UTF-8")
    @ResponseBody
    public ModelAndView admin_property_add(Property property) throws Exception {
        productService.newProperty(property);
        List<Property> properties = productService.listProproty(property.getCid());
        mav.addObject("ps",properties);
        mav.setViewName("/admin/listProperty");
        return mav;
    }

}
package util;

/**
 * 利用开源组件POI3.13动态导出EXCEL文档 
 *
 * @version v1.0
 * @param
        return "success";
    }

    //提交房间修改信息
    @RequestMapping(value = "/admin_product_update",produces = "text/html;charset=UTF-8")
    @ResponseBody
    public ModelAndView admin_product_update(Product product){
        productService.update(product);
        return admin_product_list(product.getCid());
    }

    //编辑房间信息页面
    @RequestMapping(value = "/admin_product_edit",produces = "text/html;charset=UTF-8")
    @ResponseBody
    public ModelAndView admin_product_edit(Integer id, HttpServletRequest request){
        Product product = productService.getProduct(id);
        mav.addObject("p",product);
        mav.setViewName("/admin/editProduct");
        return mav;
    }

    //编辑房间分类页面
    @RequestMapping(value = "/admin_category_edit",produces = "text/html;charset=UTF-8")
    @ResponseBody
    public ModelAndView admin_category_edit(Integer id, HttpServletRequest request){
        Category category = categoryService.getCategory(id);
        mav.addObject("c",category);
        mav.setViewName("/admin/editCategory");
        return mav;
    }

    //查询所有用户
    @RequestMapping(value = "/admin_user_list",produces = "text/html;charset=UTF-8")
    @ResponseBody
    public ModelAndView listUser(){
        List<User> users = userService.listAll();
        mav.addObject("us",users);
        mav.setViewName("/admin/listUser");
        return mav;
    }

    //打印用户信息
    @RequestMapping(value = "/admin_print_user_list",produces = "text/html;charset=UTF-8")
    @ResponseBody
    public ModelAndView printLlistUser(){
        List<User> users = userService.listAll();
        mav.addObject("us",users);
        mav.setViewName("/admin/printListUser");

@Controller
@RequestMapping("/user")
public class UserController {
    private static Logger logger = Logger.getLogger(OrderController.class);
    ModelAndView mav = new ModelAndView();
    @Autowired
    UserService userService;

    @RequestMapping(value = "/foreregister",produces = "text/html;charset=UTF-8")
    @ResponseBody
    public ModelAndView register(HttpServletRequest request, HttpServletResponse response,User user) throws Exception{
        GeneralController generalController = new GeneralController();
        try{
            userService.insert(user);
            request.getSession().setAttribute("user",user);
        }catch (Exception e){
            logger.info("用户名已存在");
            return generalController.home(request);
        }
        mav.setViewName("registerSuccess");
        return mav;
    }
}
package interceptor;

public class AdminInterceptor implements HandlerInterceptor {
    private static Logger logger = Logger.getLogger(AdminController.class);

    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws IOException {
        logger.info("执行spring拦截器");
    @ResponseBody
    public void deleteorder(HttpServletRequest request,HttpServletResponse response, Integer oid) throws Exception{
        orderService.deleteOrder(oid);
        response.sendRedirect("forebought");
    }

    @RequestMapping(value = "/forestory", produces = "text/html; charset=UTF-8")
    @ResponseBody
    public ModelAndView story()throws Exception{
        modelAndView.setViewName("story");
        return modelAndView;
    }

    /**
     * 跳转到确认支付
     * @return
     * @throws Exception
     */
    @RequestMapping(value = "/foreconfirmPay",produces = "text/html; charset=UTF-8")
    @ResponseBody
    public ModelAndView confirmPay(int oid) throws Exception{
        Order order = orderService.getOrder(oid);
        order.setOrderItems(orderItemService.getOrderItem(order.getId()));
        modelAndView.addObject("o",order);
        modelAndView.setViewName("confirmPay");
        return modelAndView;
    }

    /**
     * 跳转到支付页面
     * @return
     * @throws Exception
     */
    @RequestMapping(value = "/forealipay",produces = "text/html; charset=UTF-8")
    @ResponseBody
    public ModelAndView alipay() throws Exception{
        modelAndView.setViewName("alipay");
        return modelAndView;
    }

    /**
     * 跳转到评价页面
     * @param oid:订单id
     * @param request
     * @return
        mav.setViewName("/admin/listUser");
        return mav;
    }

    //修改订单信息页面
    @RequestMapping(value = "/admin_order_edit",produces = "text/html;charset=UTF-8")
    @ResponseBody
    public ModelAndView admin_order_edit(Integer id, HttpServletRequest request){
        Order order = orderService.getOrder(id);
        request.getSession().setAttribute("oid",id);
        mav.addObject("c",order);
        mav.setViewName("/admin/editOrder");
        return mav;
    }

    //条件查询订单
    @RequestMapping(value = "/select_order_list",produces = "text/html;charset=UTF-8")
    @ResponseBody
    public ModelAndView select_order_list(@RequestParam("status") String status, @RequestParam("min") Integer min, @RequestParam("max") Integer max){
        if(status==null || status.equals("")){
            status = "%";
        }
        if(min==null){
            min = -1;
        }
        if(max==null){
            max = Integer.MAX_VALUE;
        }
        List<Order> orders = orderService.selectOrder(status,min,max);
        for(Order order:orders){
            order.setOrderItems(orderItemService.getOrderItem(order.getId()));
        }
        mav.addObject("os",orders);
        mav.setViewName("/admin/listOrder");
        return mav;
    }

    //提交修改订单信息
    @RequestMapping(value = "/admin_order_update",produces = "text/html;charset=UTF-8")
    @ResponseBody
    public ModelAndView admin_order_update(Order order){
        Order oldOrder = orderService.getOrder(order.getId());
        oldOrder.setReceiver(order.getReceiver());
        oldOrder.setTotal(order.getTotal());
     * 列头单元格样式
     */
    public static HSSFCellStyle getColumnTopStyle(HSSFWorkbook workbook) {
        // 设置样式;  
        HSSFCellStyle style = workbook.createCellStyle();
        // 设置底边框;  
        style.setBorderBottom(HSSFCellStyle.BORDER_THIN);
        // 设置底边框颜色;  
        style.setBottomBorderColor(HSSFColor.BLACK.index);
        // 设置左边框;  
        style.setBorderLeft(HSSFCellStyle.BORDER_THIN);
        // 设置左边框颜色;  
        style.setLeftBorderColor(HSSFColor.BLACK.index);
        // 设置右边框;  
        style.setBorderRight(HSSFCellStyle.BORDER_THIN);
        // 设置右边框颜色;  
        style.setRightBorderColor(HSSFColor.BLACK.index);
        // 设置顶边框;  
        style.setBorderTop(HSSFCellStyle.BORDER_THIN);
        // 设置顶边框颜色;  
        style.setTopBorderColor(HSSFColor.BLACK.index);
        // 设置自动换行;  
        style.setWrapText(false);
        // 设置水平对齐的样式为居中对齐;  
        style.setAlignment(HSSFCellStyle.ALIGN_CENTER);
        // 设置垂直对齐的样式为居中对齐;  
        style.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);

        // 设置字体  
        HSSFFont font = workbook.createFont();
        // 设置字体颜色  
        font.setColor(HSSFColor.VIOLET.index);
        // 设置字体大小  
        font.setFontHeightInPoints((short) 12);
        // 字体加粗  
        font.setBoldweight(HSSFFont.BOLDWEIGHT_BOLD);
        // 设置字体名字  
        font.setFontName("Courier New");
        // 在样式用应用设置的字体;  
        style.setFont(font);

        return style;
    }

    /*
     * 列数据信息单元格样式
     */
    public static HSSFCellStyle getColumnStyle(HSSFWorkbook workbook) {
     * @return  true 存在目录  false 不存在目录 
     */
    public static boolean createDir(String destDirName) {
        File dir = new File(destDirName);
        if (dir.exists()) {
            return true;
        }
        if (!destDirName.endsWith(File.separator)) {
            destDirName = destDirName + File.separator;
        }
        // 创建目录  
        if (dir.mkdirs()) {
            System.out.println("创建目录" + destDirName + "成功!");
            return true;
        } else {
            System.out.println("创建目录" + destDirName + "失败!");
            return false;
        }
    }
}  
package controller;

@Controller
@RequestMapping("")
public class GeneralController {
    private static Logger logger = Logger.getLogger(OrderController.class);
    private ModelAndView modelAndView = new ModelAndView();

    @Autowired
    UserService userService;
    @Autowired
    CategoryService categoryService;
    @Autowired
    OrderItemService orderItemService;
    @Autowired
    OrderService orderService;
            Category category = categories.get(i);
            objs[0] = category.getId();
            System.out.println(objs[0]);
            objs[1] = category.getName();
            System.out.println(objs[1]);
            dataList.add(objs);
        }
        String fileName = "exportCategoriesExcel";
        //执行导出
        ExportExcel.exportExcel(request,response,fileName, rowsName, dataList, "yyyy-MM-dd HH:mm:ss");
    }

    //添加分类
    //特别注意,由于本操作涉及图片保存,更换运行环境时需要重新配置路径
    @RequestMapping(value = "/admin_category_add",produces = "text/html;charset=UTF-8")
    @ResponseBody
    public ModelAndView admin_category_add(@RequestParam("name") String name, @RequestParam("filepath") MultipartFile filepath) throws IOException {
        Category category = new Category();
        category.setName(name);
        Integer cid = categoryService.insert(category);
        // windows系统参考路径 注:此处必须为本地src及target下category的路径
        String path1 = imgPath+"src\\main\\webapp\\img\\category\\"+cid.toString()+".jpg";
        String path2 = imgPath+"target\\project-1.0-SNAPSHOT\\img\\category\\"+cid.toString()+".jpg";
        filepath.transferTo(new File(path1));
        FileUtils.copyFile(new File(path1),new File(path2));
        mav = listCategory();
        return mav;
    }

    //查询所有订单
    @RequestMapping(value = "/admin_order_list",produces = "text/html;charset=UTF-8")
    @ResponseBody
    public ModelAndView listOrder(){
        List<Order> orders = orderService.listAll();
        for(Order order:orders){
            order.setOrderItems(orderItemService.getOrderItem(order.getId()));
        }
        mav.addObject("os",orders);
        mav.setViewName("/admin/listOrder");
        return mav;
    }

    @RequestMapping(value = "/admin_print_order_list",produces = "text/html;charset=UTF-8")
    @ResponseBody
    public ModelAndView printListOrder(){
        mav = listOrder();
        mav.setViewName("/admin/printListOrder");
        return mav;
    public ModelAndView home(HttpServletRequest request) throws  Exception{
        List<Category> c = categoryService.listTwoCategory();
        for(Category cs: c){
            cs.setProducts(productService.listProducts(cs.getId()));
        }
        modelAndView.addObject("cs",c);
        modelAndView.setViewName("home");
        return modelAndView;
    }

    /**
     * 创建订单;订单状态:waitPay
     * @param order
     * @param request
     * @return
     * @throws Exception
     */
    @RequestMapping(value = "/forecreateOrder",produces = "text/html;charset=UTF-8")
    @ResponseBody
    public ModelAndView buy(Order order, HttpServletRequest request) throws  Exception{
        /**确定支付**/
        Order origin_order = (Order)request.getSession().getAttribute("order");
        origin_order.setOrderCode(UUID.randomUUID().toString().replace("-", "").toLowerCase());
        origin_order.setReceiver(order.getReceiver());
        origin_order.setMobile(order.getMobile());
        origin_order.setUserMessage(order.getUserMessage());
        origin_order.setStatus("waitPay");
        origin_order.setPayDate(new Date());
        if(order.getReceiver()==null || order.getReceiver().equals("")){
            User user = (User)request.getSession().getAttribute("user");
            order.setReceiver(user.getName());
        }
        orderService.update(origin_order);
        modelAndView.addObject("o",origin_order);
        modelAndView.setViewName("/confirmPay");
        return modelAndView;
    }

    /**
     * 确认支付,订单状态:waitReview
     * @param oid
     * @return
     * @throws Exception
     */
    @RequestMapping(value = "/foreorderConfirmed", produces = "text/html; charset=UTF-8")
    @ResponseBody
    public ModelAndView confirm(Integer oid) throws Exception{
        Order order = orderService.getOrder(oid);

请添加图片描述

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

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐