作者主页:夜未央5788
简介:Java领域优质创作者、Java项目、学习资料、技术互助
文末获取源码
本项目分为前后台,共有管理员与普通用户两种角色;
管理员角色包含以下功能:
管理员登录,修改基本信息,用户管理,租房管理,售房管理,举报用户管理,举报房源管理等功能。
用户角色包含以下功能:
用户角色,修改个人信息,发布租房信息,发布售房信息,查找房源,查看消息通知,查看被举报记录,租房管理,售房管理等功能。
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+CSS+JavaScript+Bootstrap+jQuery
1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;
2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;
若为maven项目,导入成功后请执行maven clean;maven install命令,然后运行;
3. 将项目中datasource.properties配置文件中的数据库配置改为自己的配置;
4. 运行项目,http://localhost:8080/
用户账号/密码:user/123456
管理员账号/密码:admin/admin
- package com.houserss.controller;
-
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpSession;
-
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Controller;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RequestMethod;
- import org.springframework.web.bind.annotation.RequestParam;
- import org.springframework.web.bind.annotation.ResponseBody;
- import org.springframework.web.multipart.MultipartFile;
-
- import com.houserss.common.Const;
- import com.houserss.common.Const.Role;
- import com.houserss.common.ServerResponse;
- import com.houserss.dao.HouseMapper;
- import com.houserss.pojo.House;
- import com.houserss.pojo.User;
- import com.houserss.service.IHouseService;
- import com.houserss.vo.HouseVo;
- import com.houserss.vo.PageInfoVo;
-
- @Controller
- @RequestMapping("/house/")
- public class HouseController {
-
- @Autowired
- private IHouseService iHouseService;
-
-
- @Autowired
- private HouseMapper houseMapper;
-
- @RequestMapping(value="publish.do",method = RequestMethod.POST)
- @ResponseBody
- public ServerResponse
publish(House house, @RequestParam(value = "images", required = false)MultipartFile images[], String[] deletes, HttpSession session,HttpServletRequest request){ - User currentUser = (User)session.getAttribute(Const.CURRENT_USER);
- String path = request.getSession().getServletContext().getRealPath("upload");
- if(currentUser == null){
- return ServerResponse.createByErrorMessage("用户未登录,请登录后在编辑");
- }
- return iHouseService.publish(currentUser,house, images, deletes,path);
- }
-
- @RequestMapping(value="delete.do",method = RequestMethod.POST)
- @ResponseBody
- public ServerResponse
delete(int houseId, HttpSession session){ - User currentUser = (User)session.getAttribute(Const.CURRENT_USER);
- if(currentUser == null){
- return ServerResponse.createByErrorMessage("用户未登录,请登录后在删除");
- }
- return iHouseService.delete(currentUser,houseId);
- }
-
- @RequestMapping(value="houseList.do",method = RequestMethod.POST)
- @ResponseBody
- public ServerResponse
> houseList( - @RequestParam(value = "pageNum",defaultValue = "1")int pageNum,
- @RequestParam(value = "pageSize",defaultValue = "10") int pageSize,
- @RequestParam(value = "sellType",required = false)String sellType,
- @RequestParam(value = "zone",required = false)String zone,
- @RequestParam(value = "houseType",required = false)String houseType,
- @RequestParam(value = "minPrice",required = false)String minPrice,
- @RequestParam(value = "maxPrice",required = false)String maxPrice,
- @RequestParam(value = "orientation",required = false)String orientation,
- @RequestParam(value = "decorateType",required = false)Integer decorateType,
- @RequestParam(value = "minArea",required = false)String minArea,
- @RequestParam(value = "maxArea",required = false)String maxArea,
- @RequestParam(value = "address",required = false)String address,
- @RequestParam(value = "isSelf",defaultValue = "false")boolean isSelf,
- @RequestParam(value = "orderType",defaultValue = "0")int orderType,
- @RequestParam(value = "status",required=false)Integer status,
- @RequestParam(value = "isHide",required=false)Integer isHide,
- HttpSession session){
- int userId = 0;
- User currentUser = (User)session.getAttribute(Const.CURRENT_USER);
- if(currentUser != null && currentUser.getRoleType() == Role.ROLE_ADMIN) {
- return iHouseService.houseList(pageNum,pageSize,sellType,zone,houseType,minPrice,maxPrice,orientation,minArea,maxArea,address,decorateType,userId,orderType,status,isHide);
- }
- if(currentUser != null && isSelf) {
- userId = currentUser.getId();
- }
- return iHouseService.houseList(pageNum,pageSize,sellType,zone,houseType,minPrice,maxPrice,orientation,minArea,maxArea,address,decorateType,userId,orderType,status,isHide);
- }
-
- @RequestMapping(value="detailHouse.do",method = RequestMethod.POST)
- @ResponseBody
- public ServerResponse
detailHouse(int houseId, HttpSession session){ - return iHouseService.detailHouse(houseId);
- }
-
- @RequestMapping(value="updateHouse.do",method = RequestMethod.POST)
- @ResponseBody
- public ServerResponse
updateHouse(House house,HttpSession session){ - User currentUser = (User)session.getAttribute(Const.CURRENT_USER);
- if(currentUser == null){
- return ServerResponse.createByErrorMessage("用户未登录");
- }
- House tempHouse = houseMapper.selectById(house.getId());
- if(tempHouse == null) {
- return ServerResponse.createByErrorMessage("未找到要修改房源信息");
- }
- return iHouseService.againPublishHouse(house);
- }
-
- @RequestMapping(value="setHideStatus.do",method = RequestMethod.POST)
- @ResponseBody
- public ServerResponse
setHideStatus(@RequestParam(required=true)int houseId, - @RequestParam(required=true)int isHide,HttpSession session){
- User currentUser = (User)session.getAttribute(Const.CURRENT_USER);
- if(currentUser == null){
- return ServerResponse.createByErrorMessage("用户未登录");
- }
- House tempHouse = houseMapper.selectById(houseId);
- if(tempHouse == null) {
- return ServerResponse.createByErrorMessage("未找到要修改房源信息");
- }
- if(currentUser.getRoleType() == Role.ROLE_ADMIN){
- return iHouseService.setHideStatus(houseId,isHide);
- }else{
- if(tempHouse.getUserId() == currentUser.getId()){
- return iHouseService.setHideStatus(houseId,isHide);
- }
- }
- return ServerResponse.createByErrorMessage("设置房源状态异常");
- }
- // backend
-
- /**
- * 审核房源
- * @param session
- * @return
- */
- @RequestMapping(value="verified.do",method = RequestMethod.POST)
- @ResponseBody
- public ServerResponse
verified(@RequestParam(required=true)int houseId, - @RequestParam(required=true)int status,@RequestParam(defaultValue="",required=false)String reason,
- HttpSession session){
- User currentUser = (User)session.getAttribute(Const.CURRENT_USER);
- if(currentUser == null){
- return ServerResponse.createByErrorMessage("用户未登录");
- }
- if(currentUser.getRoleType() != Role.ROLE_ADMIN) {
- return ServerResponse.createByErrorMessage("该用户无权限访问");
- }
- return iHouseService.verified(houseId,status,reason);
- }
-
- }
- package com.houserss.controller;
-
- import javax.servlet.http.HttpSession;
-
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Controller;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RequestMethod;
- import org.springframework.web.bind.annotation.RequestParam;
- import org.springframework.web.bind.annotation.ResponseBody;
-
- import com.houserss.common.Const;
- import com.houserss.common.Const.Role;
- import com.houserss.common.ServerResponse;
- import com.houserss.pojo.ReportInfo;
- import com.houserss.pojo.User;
- import com.houserss.service.IReportService;
- import com.houserss.vo.PageInfoVo;
- import com.houserss.vo.ReportInfoVo;
-
- @Controller
- @RequestMapping("/reportInfo/")
- public class ReportInfoController {
- @Autowired
- private IReportService iReportService;
-
- /**
- * 投诉user或房源0用户 1房源
- * @param reportInfo
- * @param session
- * @return
- */
- @RequestMapping(value="report.do",method = RequestMethod.POST)
- @ResponseBody
- public ServerResponse
reportHouse(ReportInfo reportInfo, HttpSession session){ - User currentUser = (User)session.getAttribute(Const.CURRENT_USER);
- if(currentUser == null){
- return ServerResponse.createByErrorMessage("用户未登录,请登录后在举报");
- }
- reportInfo.setReporterId(currentUser.getId());
- return iReportService.report(reportInfo);
- }
-
- /**
- * 查看被成功投诉房源列表
- * @param type (1房子)
- * @param session
- * @return
- */
- @RequestMapping(value="selectHouseReportInfo.do",method = RequestMethod.POST)
- @ResponseBody
- public ServerResponse
> selectHouseReportInfo( - @RequestParam(value = "pageNum",defaultValue = "1")int pageNum,
- @RequestParam(value = "pageSize",defaultValue = "10") int pageSize,
- @RequestParam(value = "type",required = true) int type,
- HttpSession session){
- User currentUser = (User)session.getAttribute(Const.CURRENT_USER);
- if(currentUser == null){
- return ServerResponse.createByErrorMessage("用户未登录,请登录后在查看");
- }
- return iReportService.selectHouseReportInfo(pageNum,pageSize,type,currentUser);
- }
-
- // backend
-
-
- /**
- * 查看投诉列表
- * @param type (0用户 1房子)
- * @param session
- * @return
- */
- @RequestMapping(value="selectReportInfo.do",method = RequestMethod.POST)
- @ResponseBody
- public ServerResponse
> selectReportInfo( - @RequestParam(value = "pageNum",defaultValue = "1")int pageNum,
- @RequestParam(value = "pageSize",defaultValue = "10") int pageSize,
- @RequestParam(value = "type",required = true) int type,
- @RequestParam(value = "status",defaultValue = "0") int status,
- HttpSession session){
- User currentUser = (User)session.getAttribute(Const.CURRENT_USER);
- if(currentUser == null){
- return ServerResponse.createByErrorMessage("用户未登录,请登录后在查看");
- }
- if(currentUser.getRoleType() == Role.ROLE_ADMIN){
- return iReportService.selectReportInfo(pageNum,pageSize,type,status,null);
- }else{
- return iReportService.selectReportInfo(pageNum,pageSize,type,status,currentUser);
- }
- }
-
-
- /**
- * @param id
- * @param status 1(封禁、删除),2(不处理)
- * @param session
- * @return
- */
- @RequestMapping(value="dealReport.do",method = RequestMethod.POST)
- @ResponseBody
- public ServerResponse
dealReport(int id,int status,HttpSession session){ - User currentUser = (User)session.getAttribute(Const.CURRENT_USER);
- if(currentUser == null){
- return ServerResponse.createByErrorMessage("用户未登录,请登录后在处理");
- }
- if(currentUser.getRoleType() != Role.ROLE_ADMIN){
- return ServerResponse.createByErrorMessage("该用户无权限处理");
- }
- return iReportService.dealReport(id,status);
- }
-
- }
- package com.houserss.controller;
-
- import javax.servlet.http.HttpSession;
-
- import org.apache.commons.lang3.StringUtils;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Controller;
- import org.springframework.web.bind.annotation.RequestMapping;
- import org.springframework.web.bind.annotation.RequestMethod;
- import org.springframework.web.bind.annotation.RequestParam;
- import org.springframework.web.bind.annotation.ResponseBody;
-
- import com.houserss.common.Const;
- import com.houserss.common.Const.Role;
- import com.houserss.common.ServerResponse;
- import com.houserss.pojo.User;
- import com.houserss.service.IUserService;
- import com.houserss.service.impl.UserServiceImpl;
- import com.houserss.util.MD5Util;
- import com.houserss.util.TimeUtils;
- import com.houserss.vo.DeleteHouseVo;
- import com.houserss.vo.PageInfoVo;
-
- /**
- * Created by admin
- */
- @Controller
- @RequestMapping("/user/")
- public class UserController {
- @Autowired
- private IUserService iUserService;
-
- /**
- * 用户登录
- * @param username
- * @param password
- * @param session
- * @return
- */
- @RequestMapping(value = "login.do",method = RequestMethod.POST)
- @ResponseBody
- public ServerResponse
login(User user,String uvcode, HttpSession session){ - String code = (String)session.getAttribute("validationCode");
- if(StringUtils.isNotBlank(code)) {
- if(!code.equalsIgnoreCase(uvcode)) {
- return ServerResponse.createByErrorMessage("验证码不正确");
- }
- }
- ServerResponse
response = iUserService.login(user.getUsername(),user.getPassword()); - if(response.isSuccess()){
- session.setAttribute(Const.CURRENT_USER,response.getData());
- }
- return response;
- }
-
- @RequestMapping(value = "logout.do",method = RequestMethod.POST)
- @ResponseBody
- public ServerResponse
logout(HttpSession session){ - session.removeAttribute(Const.CURRENT_USER);
- return ServerResponse.createBySuccess();
- }
-
- // admin 8D223A2A35C5A05467F1FF10537C7915
-
- @RequestMapping(value = "register.do",method = RequestMethod.POST)
- @ResponseBody
- public ServerResponse
register(User user,HttpSession session){ - return iUserService.register(user);
- }
-
- @RequestMapping(value = "check_valid.do",method = RequestMethod.POST)
- @ResponseBody
- public ServerResponse
checkValid(String str,String type){ - return iUserService.checkValid(str,type);
- }
-
- @RequestMapping(value = "reset_password.do",method = RequestMethod.POST)
- @ResponseBody
- public ServerResponse
resetPassword(HttpSession session,String passwordOld,String passwordNew){ - User user = (User)session.getAttribute(Const.CURRENT_USER);
- if(user == null){
- return ServerResponse.createByErrorMessage("用户未登录");
- }
- return iUserService.resetPassword(passwordOld,passwordNew,user);
- }
-
- @RequestMapping(value = "update_information.do",method = RequestMethod.POST)
- @ResponseBody
- public ServerResponse
update_information(HttpSession session,User user){ - User currentUser = (User)session.getAttribute(Const.CURRENT_USER);
- if(currentUser == null){
- return ServerResponse.createByErrorMessage("用户未登录");
- }
- user.setId(currentUser.getId());
- return iUserService.updateInformation(currentUser, user);
- }
-
- @RequestMapping(value = "userList.do",method = RequestMethod.POST)
- @ResponseBody
- public ServerResponse
> get_AllUser( - @RequestParam(value = "pageNum",defaultValue = "1")int pageNum,
- @RequestParam(value = "pageSize",defaultValue = "10") int pageSize,
- HttpSession session){
- User currentUser = (User)session.getAttribute(Const.CURRENT_USER);
- if(currentUser == null){
- return ServerResponse.createByErrorMessage("用户未登录");
- }
- if(currentUser.getRoleType() != Role.ROLE_ADMIN) {
- return ServerResponse.createByErrorMessage("该用户无权限访问");
- }
- return iUserService.getAllUser(pageNum,pageSize);
- }
-
- @RequestMapping(value = "sendResetPwdMail.do",method = RequestMethod.POST)
- @ResponseBody
- public ServerResponse
sendResetPwdMail(@RequestParam(required=true)String username, - @RequestParam(required=true)String email,@RequestParam(required=true)String code,HttpSession session){
- String validationCode = (String)session.getAttribute("validationCode");
- if(StringUtils.isNotBlank(validationCode)) {
- if(!validationCode.equalsIgnoreCase(code)) {
- return ServerResponse.createByErrorMessage("验证码不正确");
- }
- }
- return iUserService.sendResetPwdMail(username,email);
- }
-
- @RequestMapping(value = "resetpassword.do",method = RequestMethod.POST)
- @ResponseBody
- public ServerResponse
resetPasswdByEmail(@RequestParam(required=true)String password, - @RequestParam(required=true)String sign,@RequestParam(required=true)String userId,@RequestParam(required=true)String time){
- // 判断时间
- if((TimeUtils.currentSecond() - Integer.valueOf(time)) > TimeUtils.DAY_SECONDS*2 ){
- return ServerResponse.createByErrorMessage("链接超时,请重新发邮件获取链接");
- }
- String signMD5 = MD5Util.MD5EncodeUtf8(""+userId + time + UserServiceImpl.key);
- if(!signMD5.equals(sign)){
- return ServerResponse.createByErrorMessage("sign错误。");
- }
- User user = new User();
- user.setId(Integer.valueOf(userId));
- user.setPassword(MD5Util.MD5EncodeUtf8(password));
-
- return iUserService.resetPasswd(user);
- }
-
- @RequestMapping(value = "getDeleteHouseMessge.do",method = RequestMethod.POST)
- @ResponseBody
- public ServerResponse
> getDeleteHouseMessge( - @RequestParam(value = "pageNum",defaultValue = "1")int pageNum,
- @RequestParam(value = "pageSize",defaultValue = "10") int pageSize,
- HttpSession session){
- User currentUser = (User)session.getAttribute(Const.CURRENT_USER);
- if(currentUser == null){
- return ServerResponse.createByErrorMessage("用户未登录,请登录后在处理");
- }
- return iUserService.getDeleteHouseMessge(pageNum,pageSize,currentUser);
- }
-
- @RequestMapping(value = "deleteMessage.do",method = RequestMethod.POST)
- @ResponseBody
- public ServerResponse
deleteMessage(int id, - HttpSession session){
- User currentUser = (User)session.getAttribute(Const.CURRENT_USER);
- if(currentUser == null){
- return ServerResponse.createByErrorMessage("用户未登录,请登录后在处理");
- }
- return iUserService.deleteMessage(id,currentUser);
- }
-
-
- // backend
-
- /**
- * @param userId
- * @param status 0正常 1封禁
- * @param session
- * @return
- */
- @RequestMapping(value = "changeUserStatus.do",method = RequestMethod.POST)
- @ResponseBody
- public ServerResponse
ban(int userId,int status,HttpSession session){ - User currentUser = (User)session.getAttribute(Const.CURRENT_USER);
- if(currentUser == null){
- return ServerResponse.createByErrorMessage("用户未登录,请登录后在处理");
- }
- if(currentUser.getRoleType() != Role.ROLE_ADMIN){
- return ServerResponse.createByErrorMessage("该用户无权限处理");
- }
- return iUserService.changeUserStatus(userId,status);
- }
-
-
-
-
-
- }
- package com.houserss.service;
-
- import org.springframework.web.multipart.MultipartFile;
-
- import com.houserss.common.ServerResponse;
- import com.houserss.pojo.DeleteHouse;
- import com.houserss.pojo.House;
- import com.houserss.pojo.User;
- import com.houserss.vo.HouseVo;
- import com.houserss.vo.PageInfoVo;
-
- public interface IHouseService {
- ServerResponse
publish(User user,House house,MultipartFile[] images,String[] deletes,String path); -
- ServerResponse
> houseList(int pageNum,int pageSize,String sellType,String zone,String houseType,String minPrice,String maxPrice, - String orientation,String minArea,String maxArea,String address,Integer decorateType,int userId,int orderType,Integer status,Integer isHide);
-
- ServerResponse
delete(User user,int houseId); -
- ServerResponse
detailHouse(int houseId); -
- ServerResponse
verified(int houseId,int status,String reason); -
- ServerResponse
againPublishHouse(House houes); -
- ServerResponse
setHideStatus(int houesId,int isHide); -
- }
如果也想学习本系统,下面领取。回复:195ssm