基于javaweb+mysql的springboot房屋租赁系统(java+springboot+maven+ssm+jsp+jquery+mysql)

基于javaweb+mysql的springboot房屋租赁系统(java+springboot+maven+ssm+jsp+jquery+mysql)

私信源码获取及调试交流

运行环境

Java≥8、MySQL≥5.7

开发工具

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

适用

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

功能说明

基于javaweb的SpringBoot房屋租赁系统(java+springboot+maven+ssm+jsp+jquery+mysql)

项目介绍

基于springboot房屋出租系统 有前台和后台

登陆角色:用户+房东+管理员

前台功能模块:登陆+注册+整租+合租+租房+新闻资讯+用户反馈+搜索+忘记密码+联系房东等

后台功能模块: 用户端:订单管理+个人信息+我的家+我的收藏+密码修改+我的反馈 管理员端:房子管理+订单管理+新闻资讯管理+反馈管理+用户管理+个人信息+我的收藏+密码修改 房东端:房子管理+订单管理+个人信息+我的收藏+密码修改+我的反馈

环境需要

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(Spring+SpringMVC+Mybatis)

前端: JSP、css、JavaScript、JQuery、Ajax

使用说明

项目运行: 1. 使用Navicat或者其它工具,在mysql中创建对应sql文件名称的数据库,并导入项目的sql文件; 2. 使用IDEA/Eclipse/MyEclipse导入项目,导入成功后请执行maven clean;maven install命令,然后运行; 3. 将项目中application.yml配置文件中的数据库配置改为自己的配置; 4. 运行项目,控制台提示运行成功后再去运行前端项目; 5. 管理员用户名密码:admin/admin 普通用户名密码:user/123456

文档介绍(课题背景与意义、系统实现功能、课题研究现状、系统相关技术、java技术、B/S架构、Mysql介绍、Mysql环境配置、Springboot框架、系统需求分析、系统功能、可行性研究、经济可行性、技术可行性、运行可行性、事件可行性、系统业务过程分析、系统业务过程分析、系统用例图、系统设计、数据库设计、系统整体设计、系统设计思想、系统流程图、系统详情设计、系统功能模块、系统功能模块、管理员功能模块):

房屋租赁系统-首页展示:

最新整租咨询展示:

租房列表展示:

旅游景点展示页面:

后台管理展示页:

后台订单管理展示页:


public class RandomValidateCodeUtil {

    public static final String RANDOMCODEKEY = "IRENTALSESSIONKEY";//放到session中的key
    private final String randString = "0123456789";//随机产生只有数字的字符串 private String
    //private String randString = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";//随机产生只有字母的字符串
    //private String randString = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";//随机产生数字与字母组合的字符串
    private final int width = 95;// 图片宽
    private final int height = 25;// 图片高
    private final int lineSize = 40;// 干扰线数量
    private final int stringNum = 4;// 随机产生字符数量

    private final Random random = new Random();

    /**
     * 获得字体
     */
    private Font getFont() {
        return new Font("Fixedsys", Font.CENTER_BASELINE, 18);
    }

    /**
     * 获得颜色
     */
    private Color getRandColor(int fc, int bc) {
        if (fc > 255)
            fc = 255;
        if (bc > 255)
            bc = 255;
        int r = fc + random.nextInt(bc - fc - 16);
        int g = fc + random.nextInt(bc - fc - 14);
        int b = fc + random.nextInt(bc - fc - 18);
        return new Color(r, g, b);
    }

    /**
     * 生成随机图片
     */
    public void getRandcode(HttpServletRequest request, HttpServletResponse response) {
        HttpSession session = request.getSession();
        // BufferedImage类是具有缓冲区的Image类,Image类是用于描述图像信息的类
        BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_BGR);
        Graphics g = image.getGraphics();// 产生Image对象的Graphics对象,改对象可以在图像上进行各种绘制操作
        g.fillRect(0, 0, width, height);//图片大小

/*
 * 百度富文本编辑器
 * */
@RestController
@RequestMapping("/api/ueditor")
public class UeditorController {
    /**
     * 获取Ueditor的配置文件
     *
     * @return
     */
    @GetMapping("/config")
    public String getConfig() {
        return "{\n" +
                "        \"imageActionName\": \"uploadimage\",\n" +
                "            \"imageFieldName\": \"file\",\n" +
                "            \"imageMaxSize\": 2048000,\n" +
                "            \"imageAllowFiles\": [\".png\", \".jpg\", \".jpeg\", \".gif\", \".bmp\"],\n" +
                "        \"imageCompressEnable\": true,\n" +
                "            \"imageCompressBorder\": 1600,\n" +
                "            \"imageInsertAlign\": \"none\",\n" +
                "            \"imageUrlPrefix\": \"\",\n" +
                "            \"imagePathFormat\": \"/ueditor/jsp/upload/image/{yyyy}{mm}{dd}/{time}{rand:6}\",\n" +
                "\n" +
                "        /* 上传文件配置 */\n" +
                "        \"fileActionName\": \"uploadfile\",\n" +
                "            \"fileFieldName\": \"file\",\n" +
                "            \"filePathFormat\": \"/ueditor/jsp/upload/file/{yyyy}{mm}{dd}/{time}{rand:6}\",\n" +
                "            \"fileUrlPrefix\": \"\",\n" +
                "            \"fileMaxSize\": 51200000,\n" +
                "            \"fileAllowFiles\": [\n" +
                "        \".png\", \".jpg\", \".jpeg\", \".gif\", \".bmp\",\n" +
                "                \".flv\", \".swf\", \".mkv\", \".avi\", \".rm\", \".rmvb\", \".mpeg\", \".mpg\",\n" +
                "                \".ogg\", \".ogv\", \".mov\", \".wmv\", \".mp4\", \".webm\", \".mp3\", \".wav\", \".mid\",\n" +
                "                \".rar\", \".zip\", \".tar\", \".gz\", \".7z\", \".bz2\", \".cab\", \".iso\",\n" +
                "                \".doc\", \".docx\", \".xls\", \".xlsx\", \".ppt\", \".pptx\", \".pdf\", \".txt\", \".md\", \".xml\"]\n" +
                "    }";
    }

    /*
     * 房屋列表
     * */
    @RequestMapping("/house")
    public String houseList(HouseSearchVO houseSearchVO, Model model) {
        Page page = PageUtil.initMpPage(houseSearchVO.getPage(), houseSearchVO.getSize());
        Page<House> housePage = houseService.getHousePage(houseSearchVO, page);
        model.addAttribute("pageInfo", housePage);
        model.addAttribute("houseSearchVO", houseSearchVO);
        model.addAttribute("pagePrefix", houseSearchVO.getPagePrefix());
        return "front/house-list";
    }
}

/*
 * 新闻资讯控制器
 * */
@Controller("backendNewsController")
@RequestMapping("/admin/news")
@CrossOrigin
public class NewsController extends BaseController {
    @Autowired
    private NewsService newsService;

    /*
     * 进入新闻管理页面
     * */
    @RequestMapping("")
    public String newsList(@RequestParam(value = "page", defaultValue = "1") Long pageNumber, @RequestParam(value = "size", defaultValue = "6") Long pageSize, Model model) {
        Page page = PageUtil.initMpPage(pageNumber, pageSize);
    @ResponseBody
    public JsonResult loginSubmit(User user, HttpSession session) {
        if (user == null) {
            return JsonResult.error("接收到非法操作,请重试!");
        }
        String random = (String) session.getAttribute("IRENTALSESSIONKEY");
        if (random == null) {
            return JsonResult.error("请输入验证码");
        }
        if (!random.equals(user.getCode())) {
            return JsonResult.error("验证码错误");
        }
        User user1 = userService.findByUserName(user.getUserName());
        if (user1 == null) {
            return JsonResult.error("您输入的用户不存在,请重试。");
        }
        //判断密码是否正确
        if (!user.getUserPass().equals(user1.getUserPass())) {
            return JsonResult.error("您输入的密码错误,请重试。");
        }
        if (UserStatusEnum.DISABLE.getValue().equals(user1.getStatus())) {
            return JsonResult.error("此账户已被系统锁定,请联系我们获取更多帮助。");
        }
        session.setAttribute(Constant.SESSION_USER_KEY, user1);
        return JsonResult.success("登录成功,欢迎回来!");
    }

    /*
     * 退出登录,返回首页
     * */
    @RequestMapping("/logout")
    public String logout(HttpSession session) {
        session.removeAttribute(Constant.SESSION_USER_KEY);
        session.invalidate();
        return "redirect:/";
    }

    /*
     * 用户密码 邮箱 找回
     * */
    @RequestMapping(value = "/resetPassword", method = RequestMethod.POST)
    @ResponseBody
        Date date = new Date();
        //进行兑换,将礼品卡设置为 status = -1已使用并且,将使用者设置为当前用户
        giftcardService.redeemGiftcard(series, GiftcardStatusEnum.USED.getValue(), date, user.getUserName());
        Double currentBalance = giftcardService.currentBalance(user.getUserName());
        String afterBalance = String.format("%.2f", redeem_value + currentBalance);
        giftcardService.addToUserBalance(afterBalance, user.getUserName());
        return JsonResult.success("兑换成功!礼品卡为您兑换了" + redeem_value + "元");
    }
}

//所有controller控制器的基类
@Controller
public class BaseController {
    @Autowired
    protected HttpServletRequest request;

    /*
     * 获取当前登录用户
     * */
    public User getLoginUser() {
        User user = (User) request.getSession().getAttribute(Constant.SESSION_USER_KEY);
        return user;
    }

    /*
     * 获取当前用户ID
     * */
    public Long getLoginUserId() {
        User user = getLoginUser();
        if (user == null) {
            return null;

    /*
     * 发布新闻资讯提交
     * */
    @RequestMapping(value = "/publish/submit", method = RequestMethod.POST)
    @ResponseBody
    public JsonResult publishSubmit(News news) {
        try {
            if (news.getId() == null) {  //如果新闻ID为空的话则新增ID;
                news.setCreateTime(new Date());
            } else {
                News queryNews = newsService.get(news.getId());
                if (queryNews == null) {
                    return JsonResult.error("发布失败,未找到此新闻资讯ID");
                }
            }
            //提取摘要
            int postSummary = 300;
            String summaryText = HtmlUtil.cleanHtmlTag(news.getContent());
            if (summaryText.length() > postSummary) {
                String summary = summaryText.substring(0, postSummary);
                news.setSummary(summary);
            } else {
                news.setSummary(summaryText);
            }

            newsService.insertOrUpdate(news);
        } catch (Exception e) {
            return JsonResult.error("发布失败,请将内容补充完整!");
        }

        return JsonResult.success("发布成功", news.getId());
    }

    /*
     * 删除新闻资讯
     * */
    @RequestMapping("/delete")
    @ResponseBody
    public JsonResult deleteNews(@RequestParam("id") Long id) {
        try {
            News news = newsService.get(id);
            if (news == null) {
                return JsonResult.error("删除失败,未找到新闻资讯ID。");
            }
            newsService.delete(id);
        } catch (Exception e) {
            return JsonResult.error("删除新闻资讯信息失败,请重试。");
        }
            condition.setUserId(getLoginUserId());
        }
        Page<Feedback> feedbackPage = feedbackService.findAll(page, condition);
        model.addAttribute("pageInfo", feedbackPage);
        model.addAttribute("pagePrefix", "/news?");
        model.addAttribute("tab", "feedback-list");
        model.addAttribute("isAdmin", loginUserIsAdmin());
        return "admin/feedback-list";
    }

    @RequestMapping(value = "/admin/feedback/reply/submit", method = RequestMethod.POST)
    @ResponseBody
    public JsonResult replySubmit(Feedback feedback) {
        feedbackService.update(feedback);
        return JsonResult.success("保存成功!");
    }

    /*
     * 删除反馈
     * */
    @RequestMapping("/admin/feedback/delete")
    @ResponseBody
    public JsonResult deleteFeedback(@RequestParam("id") Long id) {
        try {
            Feedback feedback = feedbackService.get(id);
            if (feedback == null) {
                return JsonResult.error("删除失败,未找到反馈ID。");
            }
            if (!loginUserIsAdmin() && !Objects.equals(feedback.getUserId(), getLoginUserId())) {
                return JsonResult.error("无权限操作!");
            }
            feedbackService.delete(id);
        } catch (Exception e) {
            return JsonResult.error("删除反馈信息失败,请重试。");
        }

        return JsonResult.success("删除成功!");
    }

}

/*
 * 用户控制器
 * */
@Controller
public class UserController extends BaseController {
    @Autowired
    private UserService userService;

    /*
     * 用户列表
     * */
    @RequestMapping("/admin/user")
    public String user(@RequestParam(value = "page", defaultValue = "1") Long pageNumber, @RequestParam(value = "size", defaultValue = "6") Long pageSize, Model model) {
        Page page = PageUtil.initMpPage(pageNumber, pageSize);
        User condition = new User();
        Page<User> userPage = userService.findAll(page, condition);
        model.addAttribute("pageInfo", userPage);
        model.addAttribute("pagePrefix", "/admin/user?");
        model.addAttribute("tab", "user-list");
        return "admin/user-list";
    }

    /*
     * 禁用用户
     * */
    @RequestMapping("/admin/user/disable")
    @ResponseBody
    public JsonResult disable(@RequestParam("id") Long id) {
        try {
            User user = userService.get(id);
            if (user == null) {
                return JsonResult.error("用户不存在");
            }
            user.setStatus(UserStatusEnum.DISABLE.getValue());
            userService.update(user);
        } catch (Exception e) {
            return JsonResult.error("禁用用户失败");
        }


/*
 * 登录相关的控制器
 * */
@Controller
@RequestMapping("/login")
public class LoginController {
    @Autowired
    private UserService userService;

    /*
     * 登录提交
     * */
    @RequestMapping(value = "/submit", method = RequestMethod.POST)
    @ResponseBody
    public JsonResult loginSubmit(User user, HttpSession session) {
        if (user == null) {
            return JsonResult.error("接收到非法操作,请重试!");
        }
        String random = (String) session.getAttribute("IRENTALSESSIONKEY");
        if (random == null) {
            return JsonResult.error("请输入验证码");
        }
        if (!random.equals(user.getCode())) {
            return JsonResult.error("验证码错误");
        }
        User user1 = userService.findByUserName(user.getUserName());
        if (user1 == null) {
            return JsonResult.error("您输入的用户不存在,请重试。");
        }
        //判断密码是否正确
        if (!user.getUserPass().equals(user1.getUserPass())) {
            return JsonResult.error("您输入的密码错误,请重试。");
        }
        if (UserStatusEnum.DISABLE.getValue().equals(user1.getStatus())) {
            return JsonResult.error("此账户已被系统锁定,请联系我们获取更多帮助。");
        }
        session.setAttribute(Constant.SESSION_USER_KEY, user1);
        return JsonResult.success("登录成功,欢迎回来!");
    }

    /*
     * 退出登录,返回首页
     * */

/*
 * 前端房屋信息控制器
 * */
@Controller("frontHouseController")
public class HouseController extends BaseController {
    @Autowired
    private HouseService houseService;

    @Autowired
    private OrderService orderService;

    @Autowired
    private UserService userService;

    /*
     * 房屋详情
     * */
    @RequestMapping("/house/detail/{id}")
    public String houseDetail(@PathVariable("id") Long id, Model model) {
        //根据ID查询房屋
        House house = houseService.get(id);
        if (house == null) {
            return renderNotFound();
        }
        //处理轮播图URL
        List<String> slideList = JSON.parseArray(house.getSlideUrl(), String.class); // to list
        house.setSlideImgList(slideList);

        //如果是合租房屋,查询合租房屋。
        List<House> shareHouseList = houseService.findByUserIdAndCertificateNoAndRentType(house.getUserId(), house.getCertificateNo(), HouseRentTypeEnum.SHARE.getValue());
        //从订单里查找到租户ID,把租户放到每个房子里
        if (shareHouseList != null && shareHouseList.size() > 0) {
        return JsonResult.success("发布成功", house.getId());
    }

    /*
     * 下架房屋提交
     * */
    @RequestMapping("/down")
    @ResponseBody
    public JsonResult downHouse(@RequestParam("id") Long id) {
        try {
            House house = houseService.get(id);
            if (house == null) {
                return JsonResult.error("下架失败,没有选择的房屋。");
            }
            //如果无管理员权限下架别人的房屋,跳转到403页面
            if (!loginUserIsAdmin() && Objects.equals(house.getUserId(), getLoginUserId())) {
                return JsonResult.error("下架失败,无法下架他人房屋信息。");
            }
            if (Objects.equals(house.getStatus(), HouseStatusEnum.HAS_RENT.getValue())) {
                return JsonResult.error("房屋正在租住中,不能下架");
            }
            house.setStatus(HouseStatusEnum.HAS_DOWN.getValue());
            houseService.update(house);
        } catch (Exception e) {
            return JsonResult.error("下架房屋失败,请重试。");
        }

        return JsonResult.success("下架成功!");
    }

    /*
     * 上架房屋提交
     * */
    @RequestMapping("/up")
    @ResponseBody
    public JsonResult upHouse(@RequestParam("id") Long id) {
        try {
            House house = houseService.get(id);
            if (house == null) {
                return JsonResult.error("上架失败,没有选择的房屋。");
            }
            //如果无管理员权限上架别人的房屋,跳转到403页面
            if (!loginUserIsAdmin() && Objects.equals(house.getUserId(), getLoginUserId())) {
                return JsonResult.error("上架失败,无法上架他人房屋信息。");
            }
            if (Objects.equals(house.getStatus(), HouseStatusEnum.HAS_RENT.getValue())) {
}

/*
 * 前端房屋信息控制器
 * */
@Controller("frontHouseController")
public class HouseController extends BaseController {
    @Autowired
    private HouseService houseService;

    @Autowired
    private OrderService orderService;

    @Autowired
    private UserService userService;

    /*
     * 房屋详情
     * */
    @RequestMapping("/house/detail/{id}")
    public String houseDetail(@PathVariable("id") Long id, Model model) {
        //根据ID查询房屋
        House house = houseService.get(id);
        if (house == null) {
            return renderNotFound();
        }
        try {
            if (house.getId() == null) {  //如果为空,新增;
                house.setCreateTime(new Date());
                house.setUserId(getLoginUserId());
            } else {  //修改
                House queryHouse = houseService.get(house.getId());
                if (queryHouse == null) {
                    return JsonResult.error("发布失败,未找到此房屋");
                }
                //如果无管理员权限编辑别人的房屋,跳转到403页面
                if (!loginUserIsAdmin() && Objects.equals(house.getUserId(), getLoginUserId())) {
                    return JsonResult.error("发布失败,无法编辑他人房屋信息。");
                }
            }
            house.setStatus(HouseStatusEnum.NOT_CHECK.getValue());
            //获取轮播图
            String sessionKey = Constant.SESSION_IMG_PREFIX + key;
            List<String> imgList = (List<String>) session.getAttribute(sessionKey);
            if (imgList != null && imgList.size() > 0) {
                //设置轮播图,转换成JSON格式存储
                house.setSlideUrl(JSON.toJSONString(imgList));
                //将第一个图放到缩略图中
                house.setThumbnailUrl(imgList.get(0));
            }
            houseService.insertOrUpdate(house);
        } catch (Exception e) {
            return JsonResult.error("发布失败,请填写完整信息");
        }
        return JsonResult.success("发布成功", house.getId());
    }

    /*
     * 下架房屋提交
     * */
    @RequestMapping("/down")
    @ResponseBody
    public JsonResult downHouse(@RequestParam("id") Long id) {
        try {
            House house = houseService.get(id);
            if (house == null) {
                return JsonResult.error("下架失败,没有选择的房屋。");
            }

/*
 * 用户控制器
 * */
@Controller
public class UserController extends BaseController {
    @Autowired
    private UserService userService;

    /*
     * 用户列表
     * */
    @RequestMapping("/admin/user")
    public String user(@RequestParam(value = "page", defaultValue = "1") Long pageNumber, @RequestParam(value = "size", defaultValue = "6") Long pageSize, Model model) {
        Page page = PageUtil.initMpPage(pageNumber, pageSize);
        User condition = new User();
        Page<User> userPage = userService.findAll(page, condition);
        model.addAttribute("pageInfo", userPage);
        model.addAttribute("pagePrefix", "/admin/user?");
        model.addAttribute("tab", "user-list");
        return "admin/user-list";
    }

    /*
     * 禁用用户
     * */
    @RequestMapping("/admin/user/disable")
    @ResponseBody
    public JsonResult disable(@RequestParam("id") Long id) {
        try {
            User user = userService.get(id);
            if (user == null) {
                return JsonResult.error("用户不存在");
            }
            user.setStatus(UserStatusEnum.DISABLE.getValue());
 * */
@Controller
@RequestMapping("/login")
public class LoginController {
    @Autowired
    private UserService userService;

    /*
     * 登录提交
     * */
    @RequestMapping(value = "/submit", method = RequestMethod.POST)
    @ResponseBody
    public JsonResult loginSubmit(User user, HttpSession session) {
        if (user == null) {
            return JsonResult.error("接收到非法操作,请重试!");
        }
        String random = (String) session.getAttribute("IRENTALSESSIONKEY");
        if (random == null) {
            return JsonResult.error("请输入验证码");
        }
        if (!random.equals(user.getCode())) {
            return JsonResult.error("验证码错误");
        }
        User user1 = userService.findByUserName(user.getUserName());
        if (user1 == null) {
            return JsonResult.error("您输入的用户不存在,请重试。");
        }
        //判断密码是否正确
        if (!user.getUserPass().equals(user1.getUserPass())) {
            return JsonResult.error("您输入的密码错误,请重试。");
        }
        if (UserStatusEnum.DISABLE.getValue().equals(user1.getStatus())) {
            return JsonResult.error("此账户已被系统锁定,请联系我们获取更多帮助。");
        }
        session.setAttribute(Constant.SESSION_USER_KEY, user1);
        return JsonResult.success("登录成功,欢迎回来!");
    }

    /*
     * 退出登录,返回首页
     * */
    @RequestMapping("/logout")
    public String logout(HttpSession session) {
        session.removeAttribute(Constant.SESSION_USER_KEY);
        session.invalidate();
        return "redirect:/";
    }

    /*
     * 用户密码 邮箱 找回
     * */
    @RequestMapping(value = "/resetPassword", method = RequestMethod.POST)
    @ResponseBody
    public JsonResult resetPassword(User user, HttpSession session) throws Exception {
    public String upload(@RequestParam("file") MultipartFile file) {
        String result = "";
        if (!file.isEmpty()) {
            String originalFileName = file.getOriginalFilename();

            // 这里写你的文件上传逻辑
            // String imgPath = fileUtil.uploadImg(file);

            String imgPath = null;
            try {
                imgPath = FileUtil.upload(file).get("filePath");
            } catch (Exception e) {
                e.printStackTrace();
            }
            result = "{\n" +
                    "    \"state\": \"SUCCESS\",\n" +
                    "    \"url\": \"" + imgPath + "\",\n" +
                    "    \"title\": \"" + originalFileName + "\",\n" +
                    "    \"original\": \"" + originalFileName + "\"\n" +
                    "}";
        }
        return result;
    }

}

            }
        } else if (payMethod.equals("1")) {
            /*用于测试环境下的模拟订单支付成功环境*/
            order.setStatus(OrderStatusEnum.NORMAL.getValue());
            orderService.update(order);
            house.setStatus(HouseStatusEnum.HAS_RENT.getValue());
            house.setLastOrderStartTime(order.getStartDate());
            house.setLastOrderEndTime(order.getEndDate());
            houseService.update(house);
            return JsonResult.success("模拟支付成功,联系房东入住吧。");
        } else if (payMethod.equals("2")) {
            /*用于测试环境下的模拟订单支付成功环境*/
            order.setStatus(OrderStatusEnum.NORMAL.getValue());
            orderService.update(order);
            house.setStatus(HouseStatusEnum.HAS_RENT.getValue());
            house.setLastOrderStartTime(order.getStartDate());
            house.setLastOrderEndTime(order.getEndDate());
            houseService.update(house);
            return JsonResult.success("模拟支付成功,联系房东入住吧。");
        } else if (payMethod.equals("8888")) {
            /*用于测试环境下的模拟订单支付成功环境*/
            order.setStatus(OrderStatusEnum.NORMAL.getValue());
            orderService.update(order);
            house.setStatus(HouseStatusEnum.HAS_RENT.getValue());
            house.setLastOrderStartTime(order.getStartDate());
            house.setLastOrderEndTime(order.getEndDate());
            houseService.update(house);
            return JsonResult.success("模拟支付成功,联系房东入住吧。");
        } else {
            return JsonResult.error("未知支付功能参数,请勿修改支付参数!您的IP已被记录。");
        }

    }

    /*
     * 联系房东
     * */
    @RequestMapping("/house/contact")
    @ResponseBody
    public JsonResult contact(@RequestParam("houseId") Long houseId, @RequestParam("name") String name,
                              @RequestParam("phone") String phone, @RequestParam("email") String email,
                              @RequestParam("content") String content) {
        if (getLoginUser() == null) {
            return JsonResult.error("用户未登录");
        }
        House house = houseService.get(houseId);
        if (house == null) {
            return JsonResult.error("房屋信息不存在");
        }
        User owner = userService.get(house.getUserId());
        if (owner == null) {
            return JsonResult.error("房东不存在");
        }

/*
 * 个人信息管理控制器
 * */
@Controller
@RequestMapping("/admin/")
public class AdminController extends BaseController {
    @Autowired
    private UserService userService;

    @Autowired
    private HouseService houseService;

    @Autowired
    private OrderService orderService;

    @Autowired
    private FeedbackService feedbackService;

    @Autowired
    private NewsService newsService;

    /*
     * 个人信息页面
     * */
    @RequestMapping("/control")
    public String index(@RequestParam(value = "page", defaultValue = "1") Long pageNumber, @RequestParam(value = "size", defaultValue = "3") Long pageSize, Model model) {
        /*后台控制面板的*/
        User user = getLoginUser();
        model.addAttribute("user", user);
        model.addAttribute("tab", "admin-control");

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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

java毕业

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

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

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

打赏作者

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

抵扣说明:

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

余额充值