🍊作者:计算机编程-吉哥
🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。
🍊心愿:点赞 👍 收藏 ⭐评论 📝
🍅 文末获取源码联系👇🏻 精彩专栏推荐订阅 👇🏻 不然下次找不到哟~
Java毕业设计项目~热门选题推荐《1000套》
目录
1.技术选型
2.数据库表结构
3.开发工具
4.功能
4.1【角色】
4.2【前台功能模块】
4.3【后台功能模块】
5.项目演示截图
5.1 首页
5.2 房屋信息
5.3 交流论坛
5.4 公告通知
5.5 企业
5.6 个人中心
5.7 房屋信息管理
5.8 缴费管理
5.9 维修报备管理
5.10 管理员所有功能
6.数据库文件设计
7.核心代码
7.1 房屋租赁订单Controller
7.2 房屋租赁订单Service
7.3 房屋租赁订单ServiceImpl
7.4 房屋租赁订单DAO
8.参考文档
1.技术选型
springboot、mybatisplus、vue、elementui、html、css、js、mysql、jdk1.8
2.数据库表结构
16张
3.开发工具
idea、navicat
4.功能
4.1【角色】
管理员、企业、用户
4.2【前台功能模块】
- 登录注册
- 首页
- 房屋信息
- 交流论坛
- 公告通知
- 企业
- 个人中心
- 后台管理
4.3【后台功能模块】
- 登录
- 首页
- 个人中心
- 管理员管理
- 用户管理
- 企业用户管理
- 企业管理
- 房屋信息管理
- 缴费管理
- 设施预约管理
- 维修报备管理
- 基础数据管理
- 交流论坛管理
- 公告通知管理
- 轮播图信息
5.项目演示截图
5.1 首页
5.2 房屋信息
5.3 交流论坛
5.4 公告通知
5.5 企业
5.6 个人中心
5.7 房屋信息管理
5.8 缴费管理
5.9 维修报备管理
5.10 管理员所有功能
6.数据库文件设计
CREATE TABLE `config` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`name` varchar(100) DEFAULT NULL COMMENT '配置参数名称',
`value` varchar(100) DEFAULT NULL COMMENT '配置参数值',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COMMENT='配置文件';
CREATE TABLE `dictionary` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`dic_code` varchar(200) DEFAULT NULL COMMENT '字段',
`dic_name` varchar(200) DEFAULT NULL COMMENT '字段名',
`code_index` int(11) DEFAULT NULL COMMENT '编码',
`index_name` varchar(200) DEFAULT NULL COMMENT '编码名字 Search111 ',
`super_id` int(11) DEFAULT NULL COMMENT '父字段id',
`beizhu` varchar(200) DEFAULT NULL COMMENT '备注',
`create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=38 DEFAULT CHARSET=utf8 COMMENT='字典';
CREATE TABLE `fangwu` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键 ',
`qiyeyonghu_id` int(11) DEFAULT NULL COMMENT '企业用户',
`fangwu_name` varchar(200) DEFAULT NULL COMMENT '房屋名称 Search111 ',
`fangwu_photo` varchar(200) DEFAULT NULL COMMENT '房屋照片',
`zan_number` int(11) DEFAULT NULL COMMENT '赞',
`cai_number` int(11) DEFAULT NULL COMMENT '踩',
`fangwu_types` int(11) DEFAULT NULL COMMENT '房屋类型 Search111',
`fangwu_clicknum` int(11) DEFAULT NULL COMMENT '房屋热度',
`fangwu_new_money` decimal(10,2) DEFAULT NULL COMMENT '租金/月',
`fangwu_content` longtext COMMENT '房屋介绍 ',
`data_delete` int(11) DEFAULT NULL COMMENT '逻辑删除',
`insert_time` timestamp NULL DEFAULT NULL COMMENT '录入时间',
`create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间 show1 show2 photoShow',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=utf8 COMMENT='房屋信息';
CREATE TABLE `fangwu_collection` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
`fangwu_id` int(11) DEFAULT NULL COMMENT '房屋',
`yonghu_id` int(11) DEFAULT NULL COMMENT '用户',
`fangwu_collection_types` int(11) DEFAULT NULL COMMENT '类型',
`insert_time` timestamp NULL DEFAULT NULL COMMENT '收藏时间',
`create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间 show3 photoShow',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=utf8 COMMENT='房屋收藏';
CREATE TABLE `fangwu_liuyan` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
`fangwu_id` int(11) DEFAULT NULL COMMENT '房屋',
`yonghu_id` int(11) DEFAULT NULL COMMENT '用户',
`fangwu_liuyan_text` longtext COMMENT '留言内容',
`insert_time` timestamp NULL DEFAULT NULL COMMENT '留言时间',
`reply_text` longtext COMMENT '回复内容',
`update_time` timestamp NULL DEFAULT NULL COMMENT '回复时间',
`create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间 show3 listShow',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=18 DEFAULT CHARSET=utf8 COMMENT='房屋留言';
CREATE TABLE `fangwu_order` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
`fangwu_order_uuid_number` varchar(200) DEFAULT NULL COMMENT '订单编号 Search111 ',
`fangwu_id` int(11) DEFAULT NULL COMMENT '房屋',
`yonghu_id` int(11) DEFAULT NULL COMMENT '用户',
`fangwu_order_time` timestamp NULL DEFAULT NULL COMMENT '预约日期',
`fangwu_order_numb` int(11) DEFAULT NULL COMMENT '租期/月',
`fangwu_order_true_price` decimal(10,2) DEFAULT NULL COMMENT '实付价格',
`fangwu_order_types` int(11) DEFAULT NULL COMMENT '订单类型 Search111 ',
`fangwu_order_payment_types` int(11) DEFAULT NULL COMMENT '支付类型',
`insert_time` timestamp NULL DEFAULT NULL COMMENT '订单创建时间',
`create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间 show3 listShow',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COMMENT='房屋租赁订单';
CREATE TABLE `forum` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
`forum_name` varchar(200) DEFAULT NULL COMMENT '帖子标题 Search111 ',
`qiyeyonghu_id` int(11) DEFAULT NULL COMMENT '企业用户',
`yonghu_id` int(11) DEFAULT NULL COMMENT '用户',
`users_id` int(11) DEFAULT NULL COMMENT '管理员',
`forum_content` longtext COMMENT '发布内容',
`super_ids` int(11) DEFAULT NULL COMMENT '父id',
`forum_state_types` int(11) DEFAULT NULL COMMENT '帖子状态',
`insert_time` timestamp NULL DEFAULT NULL COMMENT '发帖时间',
`update_time` timestamp NULL DEFAULT NULL COMMENT '修改时间',
`create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间 show2',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=22 DEFAULT CHARSET=utf8 COMMENT='交流论坛';
CREATE TABLE `jiaofei` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键 ',
`jiaofei_uuid_number` varchar(200) DEFAULT NULL COMMENT '缴费编号',
`yonghu_id` int(11) DEFAULT NULL COMMENT '用户',
`jiaofei_name` varchar(200) DEFAULT NULL COMMENT '缴费标题 Search111 ',
`jiaofei_types` int(11) DEFAULT NULL COMMENT '缴费类型 Search111',
`jiaofei_new_money` decimal(10,2) DEFAULT NULL COMMENT '缴费金额',
`zhuangtai_types` int(11) DEFAULT NULL COMMENT '缴费状态 Search111',
`insert_time` timestamp NULL DEFAULT NULL COMMENT '录入时间',
`create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间 show3 listShow',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=utf8 COMMENT='缴费';
CREATE TABLE `news` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
`news_name` varchar(200) DEFAULT NULL COMMENT '公告标题 Search111 ',
`news_types` int(11) DEFAULT NULL COMMENT '公告类型 Search111 ',
`news_photo` varchar(200) DEFAULT NULL COMMENT '公告图片',
`insert_time` timestamp NULL DEFAULT NULL COMMENT '添加时间',
`news_content` longtext COMMENT '公告详情',
`create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间 show1 show2 nameShow',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=utf8 COMMENT='公告通知';
CREATE TABLE `qiye` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键 ',
`qiyeyonghu_id` int(11) DEFAULT NULL COMMENT '企业用户',
`qiye_name` varchar(200) DEFAULT NULL COMMENT '企业名称 Search111 ',
`qiye_types` int(11) DEFAULT NULL COMMENT '企业类型',
`qiye_phone` varchar(200) DEFAULT NULL COMMENT '联系方式',
`qiye_email` varchar(200) DEFAULT NULL COMMENT '邮箱',
`qiye_photo` varchar(200) DEFAULT NULL COMMENT '企业封面',
`qiye_content` longtext COMMENT '企业简介 ',
`data_delete` int(11) DEFAULT NULL COMMENT '逻辑删除',
`create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间 show1 show2 photoShow ',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=utf8 COMMENT='企业';
CREATE TABLE `qiyeyonghu` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
`username` varchar(200) DEFAULT NULL COMMENT '账户',
`password` varchar(200) DEFAULT NULL COMMENT '密码',
`qiyeyonghu_name` varchar(200) DEFAULT NULL COMMENT '企业用户名称 Search111 ',
`qiyeyonghu_phone` varchar(200) DEFAULT NULL COMMENT '企业用户手机号',
`qiyeyonghu_photo` varchar(200) DEFAULT NULL COMMENT '企业用户头像',
`sex_types` int(11) DEFAULT NULL COMMENT '性别 Search111',
`qiyeyonghu_email` varchar(200) DEFAULT NULL COMMENT '企业用户邮箱',
`data_delete` int(11) DEFAULT NULL COMMENT '逻辑删除',
`insert_time` timestamp NULL DEFAULT NULL COMMENT '添加时间',
`create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COMMENT='企业用户';
CREATE TABLE `sheshiyuyue` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
`sheshiyuyue_uuid_number` varchar(200) DEFAULT NULL COMMENT '预约编号 Search111 ',
`sheshiyuyue_name` varchar(200) DEFAULT NULL COMMENT '预约标题 Search111 ',
`sheshiyuyue_sheshi` varchar(200) DEFAULT NULL COMMENT '设施名称 Search111 ',
`sheshiyuyue_types` int(11) DEFAULT NULL COMMENT '设施类型 Search111 ',
`yonghu_id` int(11) DEFAULT NULL COMMENT '用户',
`sheshiyuyue_text` longtext COMMENT '预约理由',
`insert_time` timestamp NULL DEFAULT NULL COMMENT '房屋预约时间',
`sheshiyuyue_yesno_types` int(11) DEFAULT NULL COMMENT '预约状态 Search111 ',
`sheshiyuyue_yesno_text` longtext COMMENT '审核回复',
`create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间 show3 listShow',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=utf8 COMMENT='设施预约';
CREATE TABLE `token` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`userid` bigint(20) NOT NULL COMMENT '管理id',
`username` varchar(100) NOT NULL COMMENT '管理名',
`tablename` varchar(100) DEFAULT NULL COMMENT '表名',
`role` varchar(100) DEFAULT NULL COMMENT '角色',
`token` varchar(200) NOT NULL COMMENT '密码',
`addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '新增时间',
`expiratedtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '过期时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COMMENT='token表';
CREATE TABLE `users` (
`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
`username` varchar(100) NOT NULL COMMENT '医院名',
`password` varchar(100) NOT NULL COMMENT '密码',
`role` varchar(100) DEFAULT '管理员' COMMENT '角色',
`addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '新增时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COMMENT='管理员';
CREATE TABLE `weixiubaobei` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
`yonghu_id` int(11) DEFAULT NULL COMMENT '用户',
`weixiubaobei_name` varchar(200) DEFAULT NULL COMMENT '报备标题 Search111 ',
`weixiubaobei_text` longtext COMMENT '报备缘由',
`weixiubaobei_types` int(11) DEFAULT NULL COMMENT '报备类型 Search111',
`insert_time` timestamp NULL DEFAULT NULL COMMENT '申请时间',
`weixiubaobei_time` timestamp NULL DEFAULT NULL COMMENT '报备时间',
`weixiubaobei_yesno_types` int(11) DEFAULT NULL COMMENT '报备状态 Search111 ',
`weixiubaobei_yesno_text` longtext COMMENT '处理结果',
`weixiubaobei_shenhe_time` timestamp NULL DEFAULT NULL COMMENT '审核时间',
`create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间 show3 listShow',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8 COMMENT='维修报备';
CREATE TABLE `yonghu` (
`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
`username` varchar(200) DEFAULT NULL COMMENT '账户',
`password` varchar(200) DEFAULT NULL COMMENT '密码',
`yonghu_name` varchar(200) DEFAULT NULL COMMENT '用户名称 Search111 ',
`yonghu_phone` varchar(200) DEFAULT NULL COMMENT '用户手机号',
`yonghu_id_number` varchar(200) DEFAULT NULL COMMENT '用户身份证号',
`yonghu_photo` varchar(200) DEFAULT NULL COMMENT '用户头像',
`sex_types` int(11) DEFAULT NULL COMMENT '性别 Search111',
`yonghu_email` varchar(200) DEFAULT NULL COMMENT '用户邮箱',
`new_money` decimal(10,2) DEFAULT NULL COMMENT '现有余额',
`data_delete` int(11) DEFAULT NULL COMMENT '逻辑删除',
`insert_time` timestamp NULL DEFAULT NULL COMMENT '添加时间',
`create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COMMENT='用户';
7.核心代码
7.1 房屋租赁订单Controller
package com.controller;
/**
* 房屋租赁订单
* 后端接口
* @author 计算机编程-吉哥
* @email
*/
@RestController
@Controller
@RequestMapping("/fangwuOrder")
public class FangwuOrderController {
private static final Logger logger = LoggerFactory.getLogger(FangwuOrderController.class);
private static final String TABLE_NAME = "fangwuOrder";
@Autowired
private FangwuOrderService fangwuOrderService;
@Autowired
private TokenService tokenService;
@Autowired
private DictionaryService dictionaryService;//字典
@Autowired
private FangwuService fangwuService;//房屋信息
@Autowired
private FangwuCollectionService fangwuCollectionService;//房屋收藏
@Autowired
private FangwuLiuyanService fangwuLiuyanService;//房屋留言
@Autowired
private ForumService forumService;//交流论坛
@Autowired
private JiaofeiService jiaofeiService;//缴费
@Autowired
private NewsService newsService;//公告通知
@Autowired
private QiyeService qiyeService;//企业
@Autowired
private QiyeyonghuService qiyeyonghuService;//企业用户
@Autowired
private SheshiyuyueService sheshiyuyueService;//设施预约
@Autowired
private WeixiubaobeiService weixiubaobeiService;//维修报备
@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("qiyeyonghuId",request.getSession().getAttribute("userId"));
CommonUtil.checkMap(params);
PageUtils page = fangwuOrderService.queryPage(params);
//字典表数据转换
List<FangwuOrderView> list =(List<FangwuOrderView>)page.getList();
for(FangwuOrderView 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);
FangwuOrderEntity fangwuOrder = fangwuOrderService.selectById(id);
if(fangwuOrder !=null){
//entity转view
FangwuOrderView view = new FangwuOrderView();
BeanUtils.copyProperties( fangwuOrder , view );//把实体数据重构到view中
//级联表 房屋信息
//级联表
FangwuEntity fangwu = fangwuService.selectById(fangwuOrder.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(fangwuOrder.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 FangwuOrderEntity fangwuOrder, HttpServletRequest request){
logger.debug("save方法:,,Controller:{},,fangwuOrder:{}",this.getClass().getName(),fangwuOrder.toString());
String role = String.valueOf(request.getSession().getAttribute("role"));
if(false)
return R.error(511,"永远不会进入");
else if("用户".equals(role))
fangwuOrder.setYonghuId(Integer.valueOf(String.valueOf(request.getSession().getAttribute("userId"))));
fangwuOrder.setCreateTime(new Date());
fangwuOrder.setInsertTime(new Date());
fangwuOrderService.insert(fangwuOrder);
return R.ok();
}
/**
* 后端修改
*/
@RequestMapping("/update")
public R update(@RequestBody FangwuOrderEntity fangwuOrder, HttpServletRequest request) throws NoSuchFieldException, ClassNotFoundException, IllegalAccessException, InstantiationException {
logger.debug("update方法:,,Controller:{},,fangwuOrder:{}",this.getClass().getName(),fangwuOrder.toString());
FangwuOrderEntity oldFangwuOrderEntity = fangwuOrderService.selectById(fangwuOrder.getId());//查询原先数据
String role = String.valueOf(request.getSession().getAttribute("role"));
fangwuOrder.setYonghuId(Integer.valueOf(String.valueOf(request.getSession().getAttribute("userId"))));
fangwuOrderService.updateById(fangwuOrder);//根据id更新
return R.ok();
}
/**
* 删除
*/
@RequestMapping("/delete")
public R delete(@RequestBody Integer[] ids, HttpServletRequest request){
logger.debug("delete:,,Controller:{},,ids:{}",this.getClass().getName(),ids.toString());
List<FangwuOrderEntity> oldFangwuOrderList =fangwuOrderService.selectBatchIds(Arrays.asList(ids));//要删除的数据
fangwuOrderService.deleteBatchIds(Arrays.asList(ids));
return R.ok();
}
/**
* 批量上传
*/
@RequestMapping("/batchInsert")
public R save( String fileName, HttpServletRequest request){
logger.debug("batchInsert方法:,,Controller:{},,fileName:{}",this.getClass().getName(),fileName);
Integer yonghuId = Integer.valueOf(String.valueOf(request.getSession().getAttribute("userId")));
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//.eq("time", new SimpleDateFormat("yyyy-MM-dd").format(new Date()))
try {
List<FangwuOrderEntity> fangwuOrderList = new ArrayList<>();//上传的东西
Map<String, List<String>> seachFields= new HashMap<>();//要查询的字段
Date date = new Date();
int lastIndexOf = fileName.lastIndexOf(".");
if(lastIndexOf == -1){
return R.error(511,"该文件没有后缀");
}else{
String suffix = fileName.substring(lastIndexOf);
if(!".xls".equals(suffix)){
return R.error(511,"只支持后缀为xls的excel文件");
}else{
URL resource = this.getClass().getClassLoader().getResource("static/upload/" + fileName);//获取文件路径
File file = new File(resource.getFile());
if(!file.exists()){
return R.error(511,"找不到上传文件,请联系管理员");
}else{
List<List<String>> dataList = PoiUtil.poiImport(file.getPath());//读取xls文件
dataList.remove(0);//删除第一行,因为第一行是提示
for(List<String> data:dataList){
//循环
FangwuOrderEntity fangwuOrderEntity = new FangwuOrderEntity();
fangwuOrderList.add(fangwuOrderEntity);
//把要查询是否重复的字段放入map中
//订单编号
if(seachFields.containsKey("fangwuOrderUuidNumber")){
List<String> fangwuOrderUuidNumber = seachFields.get("fangwuOrderUuidNumber");
fangwuOrderUuidNumber.add(data.get(0));//要改的
}else{
List<String> fangwuOrderUuidNumber = new ArrayList<>();
fangwuOrderUuidNumber.add(data.get(0));//要改的
seachFields.put("fangwuOrderUuidNumber",fangwuOrderUuidNumber);
}
}
//查询是否重复
//订单编号
List<FangwuOrderEntity> fangwuOrderEntities_fangwuOrderUuidNumber = fangwuOrderService.selectList(new EntityWrapper<FangwuOrderEntity>().in("fangwu_order_uuid_number", seachFields.get("fangwuOrderUuidNumber")));
if(fangwuOrderEntities_fangwuOrderUuidNumber.size() >0 ){
ArrayList<String> repeatFields = new ArrayList<>();
for(FangwuOrderEntity s:fangwuOrderEntities_fangwuOrderUuidNumber){
repeatFields.add(s.getFangwuOrderUuidNumber());
}
return R.error(511,"数据库的该表中的 [订单编号] 字段已经存在 存在数据为:"+repeatFields.toString());
}
fangwuOrderService.insertBatch(fangwuOrderList);
return R.ok();
}
}
}
}catch (Exception e){
e.printStackTrace();
return R.error(511,"批量插入数据异常,请联系管理员");
}
}
/**
* 前端列表
*/
@IgnoreAuth
@RequestMapping("/list")
public R list(@RequestParam Map<String, Object> params, HttpServletRequest request){
logger.debug("list方法:,,Controller:{},,params:{}",this.getClass().getName(),JSONObject.toJSONString(params));
CommonUtil.checkMap(params);
PageUtils page = fangwuOrderService.queryPage(params);
//字典表数据转换
List<FangwuOrderView> list =(List<FangwuOrderView>)page.getList();
for(FangwuOrderView c:list)
dictionaryService.dictionaryConvert(c, request); //修改对应字典表字段
return R.ok().put("data", page);
}
/**
* 前端详情
*/
@RequestMapping("/detail/{id}")
public R detail(@PathVariable("id") Integer id, HttpServletRequest request){
logger.debug("detail方法:,,Controller:{},,id:{}",this.getClass().getName(),id);
FangwuOrderEntity fangwuOrder = fangwuOrderService.selectById(id);
if(fangwuOrder !=null){
//entity转view
FangwuOrderView view = new FangwuOrderView();
BeanUtils.copyProperties( fangwuOrder , view );//把实体数据重构到view中
//级联表
FangwuEntity fangwu = fangwuService.selectById(fangwuOrder.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(fangwuOrder.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("/add")
public R add(@RequestBody FangwuOrderEntity fangwuOrder, HttpServletRequest request){
logger.debug("add方法:,,Controller:{},,fangwuOrder:{}",this.getClass().getName(),fangwuOrder.toString());
FangwuEntity fangwuEntity = fangwuService.selectById(fangwuOrder.getFangwuId());
if(fangwuEntity == null){
return R.error(511,"查不到该房屋信息");
}
// Double fangwuNewMoney = fangwuEntity.getFangwuNewMoney();
if(false){
}
else if(fangwuEntity.getFangwuNewMoney() == null){
return R.error(511,"租金/月不能为空");
}
//计算所获得积分
Double buyJifen =0.0;
Integer userId = (Integer) request.getSession().getAttribute("userId");
YonghuEntity yonghuEntity = yonghuService.selectById(userId);
if(yonghuEntity == null)
return R.error(511,"用户不能为空");
if(yonghuEntity.getNewMoney() == null)
return R.error(511,"用户金额不能为空");
double balance = yonghuEntity.getNewMoney() - fangwuEntity.getFangwuNewMoney()*fangwuOrder.getFangwuOrderNumb();//余额
if(balance<0)
return R.error(511,"余额不够支付");
fangwuOrder.setFangwuOrderTypes(101); //设置订单状态为已支付
fangwuOrder.setFangwuOrderTruePrice(fangwuEntity.getFangwuNewMoney()*fangwuOrder.getFangwuOrderNumb()); //设置实付价格
fangwuOrder.setYonghuId(userId); //设置订单支付人id
fangwuOrder.setFangwuOrderUuidNumber(String.valueOf(new Date().getTime()));
fangwuOrder.setFangwuOrderPaymentTypes(1);
fangwuOrder.setInsertTime(new Date());
fangwuOrder.setCreateTime(new Date());
fangwuOrderService.insert(fangwuOrder);//新增订单
//更新第一注册表
yonghuEntity.setNewMoney(balance);//设置金额
yonghuService.updateById(yonghuEntity);
return R.ok();
}
/**
* 退房
*/
@RequestMapping("/refund")
public R refund(Integer id, HttpServletRequest request){
logger.debug("refund方法:,,Controller:{},,id:{}",this.getClass().getName(),id);
String role = String.valueOf(request.getSession().getAttribute("role"));
FangwuOrderEntity fangwuOrder = fangwuOrderService.selectById(id);//当前表service
Integer fangwuOrderPaymentTypes = fangwuOrder.getFangwuOrderPaymentTypes();
Integer fangwuId = fangwuOrder.getFangwuId();
if(fangwuId == null)
return R.error(511,"查不到该房屋信息");
FangwuEntity fangwuEntity = fangwuService.selectById(fangwuId);
if(fangwuEntity == null)
return R.error(511,"查不到该房屋信息");
Double fangwuNewMoney = fangwuEntity.getFangwuNewMoney();
if(fangwuNewMoney == null)
return R.error(511,"房屋信息价格不能为空");
Integer userId = (Integer) request.getSession().getAttribute("userId");
YonghuEntity yonghuEntity = yonghuService.selectById(userId);
if(yonghuEntity == null)
return R.error(511,"用户不能为空");
if(yonghuEntity.getNewMoney() == null)
return R.error(511,"用户金额不能为空");
Double zhekou = 1.0;
//判断是什么支付方式 1代表余额 2代表积分
if(fangwuOrderPaymentTypes == 1){//余额支付
//计算金额
Double money = fangwuEntity.getFangwuNewMoney() * fangwuOrder.getFangwuOrderNumb() * zhekou;
//计算所获得积分
Double buyJifen = 0.0;
yonghuEntity.setNewMoney(yonghuEntity.getNewMoney() + money); //设置金额
}
fangwuOrder.setFangwuOrderTypes(102);//设置订单状态为已退房
fangwuOrderService.updateAllColumnById(fangwuOrder);//根据id更新
yonghuService.updateById(yonghuEntity);//更新用户信息
fangwuService.updateById(fangwuEntity);//更新订单中房屋信息的信息
return R.ok();
}
/**
* 完成
*/
@RequestMapping("/deliver")
public R deliver(Integer id , HttpServletRequest request){
logger.debug("refund:,,Controller:{},,ids:{}",this.getClass().getName(),id.toString());
FangwuOrderEntity fangwuOrderEntity = fangwuOrderService.selectById(id);
fangwuOrderEntity.setFangwuOrderTypes(103);//设置订单状态为已完成
fangwuOrderService.updateById( fangwuOrderEntity);
return R.ok();
}
}
7.2 房屋租赁订单Service
package com.service;
import com.baomidou.mybatisplus.service.IService;
import com.utils.PageUtils;
import com.entity.FangwuOrderEntity;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import org.springframework.lang.Nullable;
import java.util.List;
/**
* 房屋租赁订单 服务类
*/
public interface FangwuOrderService extends IService<FangwuOrderEntity> {
/**
* @param params 查询参数
* @return 带分页的查询出来的数据
*/
PageUtils queryPage(Map<String, Object> params);
}
7.3 房屋租赁订单ServiceImpl
package com.service.impl;
/**
* 房屋租赁订单 服务实现类
*/
@Service("fangwuOrderService")
@Transactional
public class FangwuOrderServiceImpl extends ServiceImpl<FangwuOrderDao, FangwuOrderEntity> implements FangwuOrderService {
@Override
public PageUtils queryPage(Map<String,Object> params) {
Page<FangwuOrderView> page =new Query<FangwuOrderView>(params).getPage();
page.setRecords(baseMapper.selectListView(page,params));
return new PageUtils(page);
}
}
7.4 房屋租赁订单DAO
package com.dao;
import com.entity.FangwuOrderEntity;
import com.baomidou.mybatisplus.mapper.BaseMapper;
import java.util.List;
import java.util.Map;
import com.baomidou.mybatisplus.plugins.pagination.Pagination;
import org.apache.ibatis.annotations.Param;
import com.entity.view.FangwuOrderView;
/**
* 房屋租赁订单 Dao 接口
*
* @author
*/
public interface FangwuOrderDao extends BaseMapper<FangwuOrderEntity> {
List<FangwuOrderView> selectListView(Pagination page,@Param("params")Map<String,Object> params);
}
8.参考文档
你可能还有感兴趣的项目👇🏻👇🏻👇🏻
更多项目推荐:计算机毕业设计项目
如果大家有任何疑虑,请在下方咨询或评论