博主主页:一季春秋
博主简介:专注Java技术领域和毕业设计项目实战、Java、微信小程序、安卓等技术开发,远程调试部署、代码讲解、文档指导、ppt制作等技术指导。
主要内容:SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Python、小程序、安卓app、大数据等设计与开发🍅文末获取联系🍅
目录
一、项目介绍
该系统采用了Mysql数据库,Java语言,Spring Boot框架等技术进行编程实现。
大学生在线租房平台管理系统按照操作主体分为管理员和用户。管理员的功能包括报修管理、报修评价管理、字典管理、房东管理、房屋管理、房屋收藏管理、房屋留言管理、房屋租赁管理、租房论坛管理、公告信息管理、留言板管理、用户管理、管理员管理。用户的功能等。
二、项目主要技术
开发语言:Java
使用框架:spring boot
前端技术:Vue 、css、element-ui、js
开发工具:IDEA/MyEclipse/Eclipse、Visual Studio Code
数据库:MySQL 5.7/8.0
数据库管理工具:phpstudy/Navicat
JDK版本:jdk1.8
Maven: apache-maven 3.8.1-bin
三、功能结构设计
下图即为设计的管理员功能结构,管理员权限操作的功能包括管理公告,管理大学生在线租房平台信息,包括房屋管理,培训管理,报修管理,薪资管理等,可以管理公告。
四、系统实现
4.1 房屋管理
4.2 报修管理
4.3 房屋管理
4.4 房屋
4.5 报修
4.6 房屋租赁
五、实现代码
/**
* 房屋租赁
* 后端接口
* @author
* @email
*/
@RestController
@Controller
@RequestMapping("/fangwuYuyue")
public class FangwuYuyueController {
private static final Logger logger = LoggerFactory.getLogger(FangwuYuyueController.class);
private static final String TABLE_NAME = "fangwuYuyue";
@Autowired
private FangwuYuyueService fangwuYuyueService;
@Autowired
private TokenService tokenService;
@Autowired
private BaoxiuService baoxiuService;//报修
@Autowired
private BaoxiuCommentbackService baoxiuCommentbackService;//报修评价
@Autowired
private DictionaryService dictionaryService;//字典
@Autowired
private FangdongService fangdongService;//房东
@Autowired
private FangwuService fangwuService;//房屋
@Autowired
private FangwuCollectionService fangwuCollectionService;//房屋收藏
@Autowired
private FangwuLiuyanService fangwuLiuyanService;//房屋留言
@Autowired
private ForumService forumService;//租房论坛
@Autowired
private GonggaoService gonggaoService;//公告信息
@Autowired
private LiuyanService liuyanService;//留言板
@Autowired
private YonghuService yonghuService;//用户
@Autowired
private UsersService usersService;//管理员
/**
* 后端列表
*/
@RequestMapping("/page")
public R page(@RequestParam Map<String, Object> params, HttpServletRequest request){
logger.debug("page方法:,,Controller:{},,params:{}",this.getClass().getName(),JSONObject.toJSONString(params));
String role = String.valueOf(request.getSession().getAttribute("role"));
if(false)
return R.error(511,"永不会进入");
else if("用户".equals(role))
params.put("yonghuId",request.getSession().getAttribute("userId"));
else if("房东".equals(role))
params.put("fangdongId",request.getSession().getAttribute("userId"));
CommonUtil.checkMap(params);
PageUtils page = fangwuYuyueService.queryPage(params);
//字典表数据转换
List<FangwuYuyueView> list =(List<FangwuYuyueView>)page.getList();
for(FangwuYuyueView c:list){
//修改对应字典表字段
dictionaryService.dictionaryConvert(c, request);
}
return R.ok().put("data", page);
}
/**
* 后端详情
*/
@RequestMapping("/info/{id}")
public R info(@PathVariable("id") Long id, HttpServletRequest request){
logger.debug("info方法:,,Controller:{},,id:{}",this.getClass().getName(),id);
FangwuYuyueEntity fangwuYuyue = fangwuYuyueService.selectById(id);
if(fangwuYuyue !=null){
//entity转view
FangwuYuyueView view = new FangwuYuyueView();
BeanUtils.copyProperties( fangwuYuyue , view );//把实体数据重构到view中
//级联表 房屋
//级联表
FangwuEntity fangwu = fangwuService.selectById(fangwuYuyue.getFangwuId());
if(fangwu != null){
BeanUtils.copyProperties( fangwu , view ,new String[]{ "id", "createTime", "insertTime", "updateTime", "username", "password", "newMoney", "yonghuId"});//把级联的数据添加到view中,并排除id和创建时间字段,当前表的级联注册表
view.setFangwuId(fangwu.getId());
}
//级联表 用户
//级联表
YonghuEntity yonghu = yonghuService.selectById(fangwuYuyue.getYonghuId());
if(yonghu != null){
BeanUtils.copyProperties( yonghu , view ,new String[]{ "id", "createTime", "insertTime", "updateTime", "username", "password", "newMoney", "yonghuId"});//把级联的数据添加到view中,并排除id和创建时间字段,当前表的级联注册表
view.setYonghuId(yonghu.getId());
}
//修改对应字典表字段
dictionaryService.dictionaryConvert(view, request);
return R.ok().put("data", view);
}else {
return R.error(511,"查不到数据");
}
}
/**
* 后端保存
*/
@RequestMapping("/save")
public R save(@RequestBody FangwuYuyueEntity fangwuYuyue, HttpServletRequest request){
logger.debug("save方法:,,Controller:{},,fangwuYuyue:{}",this.getClass().getName(),fangwuYuyue.toString());
String role = String.valueOf(request.getSession().getAttribute("role"));
if(false)
return R.error(511,"永远不会进入");
else if("用户".equals(role))
fangwuYuyue.setYonghuId(Integer.valueOf(String.valueOf(request.getSession().getAttribute("userId"))));
Wrapper<FangwuYuyueEntity> queryWrapper = new EntityWrapper<FangwuYuyueEntity>()
.eq("fangwu_id", fangwuYuyue.getFangwuId())
.eq("yonghu_id", fangwuYuyue.getYonghuId())
.in("fangwu_yuyue_yesno_types", new Integer[]{1,2})
;
logger.info("sql语句:"+queryWrapper.getSqlSegment());
FangwuYuyueEntity fangwuYuyueEntity = fangwuYuyueService.selectOne(queryWrapper);
// if(fangwuYuyueEntity==null){
fangwuYuyue.setInsertTime(new Date());
fangwuYuyue.setFangwuYuyueYesnoTypes(1);
fangwuYuyue.setCreateTime(new Date());
fangwuYuyueService.insert(fangwuYuyue);
return R.ok();
// }else {
// if(fangwuYuyueEntity.getFangwuYuyueYesnoTypes()==1)
// return R.error(511,"有相同的待审核的数据");
// else if(fangwuYuyueEntity.getFangwuYuyueYesnoTypes()==2)
// return R.error(511,"有相同的审核通过的数据");
// else
// return R.error(511,"表中有相同数据");
// }
}
/**
* 后端修改
*/
@RequestMapping("/update")
public R update(@RequestBody FangwuYuyueEntity fangwuYuyue, HttpServletRequest request) throws NoSuchFieldException, ClassNotFoundException, IllegalAccessException, InstantiationException {
logger.debug("update方法:,,Controller:{},,fangwuYuyue:{}",this.getClass().getName(),fangwuYuyue.toString());
FangwuYuyueEntity oldFangwuYuyueEntity = fangwuYuyueService.selectById(fangwuYuyue.getId());//查询原先数据
String role = String.valueOf(request.getSession().getAttribute("role"));
// if(false)
// return R.error(511,"永远不会进入");
// else if("用户".equals(role))
// fangwuYuyue.setYonghuId(Integer.valueOf(String.valueOf(request.getSession().getAttribute("userId"))));
if("".equals(fangwuYuyue.getFangwuYuyueText()) || "null".equals(fangwuYuyue.getFangwuYuyueText())){
fangwuYuyue.setFangwuYuyueText(null);
}
if("".equals(fangwuYuyue.getFangwuYuyueFile()) || "null".equals(fangwuYuyue.getFangwuYuyueFile())){
fangwuYuyue.setFangwuYuyueFile(null);
}
if("".equals(fangwuYuyue.getFangwuYuyueYesnoText()) || "null".equals(fangwuYuyue.getFangwuYuyueYesnoText())){
fangwuYuyue.setFangwuYuyueYesnoText(null);
}
fangwuYuyueService.updateById(fangwuYuyue);//根据id更新
return R.ok();
}