• 计算机毕业设计 基于SpringBoot产业园区智慧公寓管理系统的设计与实现 Javaweb项目 Java实战项目 前后端分离 文档报告 代码讲解 安装调试


    🍊作者:计算机编程-吉哥
    🍊简介:专业从事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.数据库文件设计

    1. CREATE TABLE `config` (
    2. `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
    3. `name` varchar(100) DEFAULT NULL COMMENT '配置参数名称',
    4. `value` varchar(100) DEFAULT NULL COMMENT '配置参数值',
    5. PRIMARY KEY (`id`)
    6. ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COMMENT='配置文件';
    7. CREATE TABLE `dictionary` (
    8. `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
    9. `dic_code` varchar(200) DEFAULT NULL COMMENT '字段',
    10. `dic_name` varchar(200) DEFAULT NULL COMMENT '字段名',
    11. `code_index` int(11) DEFAULT NULL COMMENT '编码',
    12. `index_name` varchar(200) DEFAULT NULL COMMENT '编码名字 Search111 ',
    13. `super_id` int(11) DEFAULT NULL COMMENT '父字段id',
    14. `beizhu` varchar(200) DEFAULT NULL COMMENT '备注',
    15. `create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间',
    16. PRIMARY KEY (`id`)
    17. ) ENGINE=InnoDB AUTO_INCREMENT=38 DEFAULT CHARSET=utf8 COMMENT='字典';
    18. CREATE TABLE `fangwu` (
    19. `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键 ',
    20. `qiyeyonghu_id` int(11) DEFAULT NULL COMMENT '企业用户',
    21. `fangwu_name` varchar(200) DEFAULT NULL COMMENT '房屋名称 Search111 ',
    22. `fangwu_photo` varchar(200) DEFAULT NULL COMMENT '房屋照片',
    23. `zan_number` int(11) DEFAULT NULL COMMENT '赞',
    24. `cai_number` int(11) DEFAULT NULL COMMENT '踩',
    25. `fangwu_types` int(11) DEFAULT NULL COMMENT '房屋类型 Search111',
    26. `fangwu_clicknum` int(11) DEFAULT NULL COMMENT '房屋热度',
    27. `fangwu_new_money` decimal(10,2) DEFAULT NULL COMMENT '租金/月',
    28. `fangwu_content` longtext COMMENT '房屋介绍 ',
    29. `data_delete` int(11) DEFAULT NULL COMMENT '逻辑删除',
    30. `insert_time` timestamp NULL DEFAULT NULL COMMENT '录入时间',
    31. `create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间 show1 show2 photoShow',
    32. PRIMARY KEY (`id`)
    33. ) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=utf8 COMMENT='房屋信息';
    34. CREATE TABLE `fangwu_collection` (
    35. `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
    36. `fangwu_id` int(11) DEFAULT NULL COMMENT '房屋',
    37. `yonghu_id` int(11) DEFAULT NULL COMMENT '用户',
    38. `fangwu_collection_types` int(11) DEFAULT NULL COMMENT '类型',
    39. `insert_time` timestamp NULL DEFAULT NULL COMMENT '收藏时间',
    40. `create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间 show3 photoShow',
    41. PRIMARY KEY (`id`)
    42. ) ENGINE=InnoDB AUTO_INCREMENT=19 DEFAULT CHARSET=utf8 COMMENT='房屋收藏';
    43. CREATE TABLE `fangwu_liuyan` (
    44. `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
    45. `fangwu_id` int(11) DEFAULT NULL COMMENT '房屋',
    46. `yonghu_id` int(11) DEFAULT NULL COMMENT '用户',
    47. `fangwu_liuyan_text` longtext COMMENT '留言内容',
    48. `insert_time` timestamp NULL DEFAULT NULL COMMENT '留言时间',
    49. `reply_text` longtext COMMENT '回复内容',
    50. `update_time` timestamp NULL DEFAULT NULL COMMENT '回复时间',
    51. `create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间 show3 listShow',
    52. PRIMARY KEY (`id`)
    53. ) ENGINE=InnoDB AUTO_INCREMENT=18 DEFAULT CHARSET=utf8 COMMENT='房屋留言';
    54. CREATE TABLE `fangwu_order` (
    55. `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
    56. `fangwu_order_uuid_number` varchar(200) DEFAULT NULL COMMENT '订单编号 Search111 ',
    57. `fangwu_id` int(11) DEFAULT NULL COMMENT '房屋',
    58. `yonghu_id` int(11) DEFAULT NULL COMMENT '用户',
    59. `fangwu_order_time` timestamp NULL DEFAULT NULL COMMENT '预约日期',
    60. `fangwu_order_numb` int(11) DEFAULT NULL COMMENT '租期/月',
    61. `fangwu_order_true_price` decimal(10,2) DEFAULT NULL COMMENT '实付价格',
    62. `fangwu_order_types` int(11) DEFAULT NULL COMMENT '订单类型 Search111 ',
    63. `fangwu_order_payment_types` int(11) DEFAULT NULL COMMENT '支付类型',
    64. `insert_time` timestamp NULL DEFAULT NULL COMMENT '订单创建时间',
    65. `create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间 show3 listShow',
    66. PRIMARY KEY (`id`)
    67. ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COMMENT='房屋租赁订单';
    68. CREATE TABLE `forum` (
    69. `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
    70. `forum_name` varchar(200) DEFAULT NULL COMMENT '帖子标题 Search111 ',
    71. `qiyeyonghu_id` int(11) DEFAULT NULL COMMENT '企业用户',
    72. `yonghu_id` int(11) DEFAULT NULL COMMENT '用户',
    73. `users_id` int(11) DEFAULT NULL COMMENT '管理员',
    74. `forum_content` longtext COMMENT '发布内容',
    75. `super_ids` int(11) DEFAULT NULL COMMENT '父id',
    76. `forum_state_types` int(11) DEFAULT NULL COMMENT '帖子状态',
    77. `insert_time` timestamp NULL DEFAULT NULL COMMENT '发帖时间',
    78. `update_time` timestamp NULL DEFAULT NULL COMMENT '修改时间',
    79. `create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间 show2',
    80. PRIMARY KEY (`id`)
    81. ) ENGINE=InnoDB AUTO_INCREMENT=22 DEFAULT CHARSET=utf8 COMMENT='交流论坛';
    82. CREATE TABLE `jiaofei` (
    83. `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键 ',
    84. `jiaofei_uuid_number` varchar(200) DEFAULT NULL COMMENT '缴费编号',
    85. `yonghu_id` int(11) DEFAULT NULL COMMENT '用户',
    86. `jiaofei_name` varchar(200) DEFAULT NULL COMMENT '缴费标题 Search111 ',
    87. `jiaofei_types` int(11) DEFAULT NULL COMMENT '缴费类型 Search111',
    88. `jiaofei_new_money` decimal(10,2) DEFAULT NULL COMMENT '缴费金额',
    89. `zhuangtai_types` int(11) DEFAULT NULL COMMENT '缴费状态 Search111',
    90. `insert_time` timestamp NULL DEFAULT NULL COMMENT '录入时间',
    91. `create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间 show3 listShow',
    92. PRIMARY KEY (`id`)
    93. ) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=utf8 COMMENT='缴费';
    94. CREATE TABLE `news` (
    95. `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
    96. `news_name` varchar(200) DEFAULT NULL COMMENT '公告标题 Search111 ',
    97. `news_types` int(11) DEFAULT NULL COMMENT '公告类型 Search111 ',
    98. `news_photo` varchar(200) DEFAULT NULL COMMENT '公告图片',
    99. `insert_time` timestamp NULL DEFAULT NULL COMMENT '添加时间',
    100. `news_content` longtext COMMENT '公告详情',
    101. `create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间 show1 show2 nameShow',
    102. PRIMARY KEY (`id`)
    103. ) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=utf8 COMMENT='公告通知';
    104. CREATE TABLE `qiye` (
    105. `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键 ',
    106. `qiyeyonghu_id` int(11) DEFAULT NULL COMMENT '企业用户',
    107. `qiye_name` varchar(200) DEFAULT NULL COMMENT '企业名称 Search111 ',
    108. `qiye_types` int(11) DEFAULT NULL COMMENT '企业类型',
    109. `qiye_phone` varchar(200) DEFAULT NULL COMMENT '联系方式',
    110. `qiye_email` varchar(200) DEFAULT NULL COMMENT '邮箱',
    111. `qiye_photo` varchar(200) DEFAULT NULL COMMENT '企业封面',
    112. `qiye_content` longtext COMMENT '企业简介 ',
    113. `data_delete` int(11) DEFAULT NULL COMMENT '逻辑删除',
    114. `create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间 show1 show2 photoShow ',
    115. PRIMARY KEY (`id`)
    116. ) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=utf8 COMMENT='企业';
    117. CREATE TABLE `qiyeyonghu` (
    118. `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
    119. `username` varchar(200) DEFAULT NULL COMMENT '账户',
    120. `password` varchar(200) DEFAULT NULL COMMENT '密码',
    121. `qiyeyonghu_name` varchar(200) DEFAULT NULL COMMENT '企业用户名称 Search111 ',
    122. `qiyeyonghu_phone` varchar(200) DEFAULT NULL COMMENT '企业用户手机号',
    123. `qiyeyonghu_photo` varchar(200) DEFAULT NULL COMMENT '企业用户头像',
    124. `sex_types` int(11) DEFAULT NULL COMMENT '性别 Search111',
    125. `qiyeyonghu_email` varchar(200) DEFAULT NULL COMMENT '企业用户邮箱',
    126. `data_delete` int(11) DEFAULT NULL COMMENT '逻辑删除',
    127. `insert_time` timestamp NULL DEFAULT NULL COMMENT '添加时间',
    128. `create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间',
    129. PRIMARY KEY (`id`)
    130. ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COMMENT='企业用户';
    131. CREATE TABLE `sheshiyuyue` (
    132. `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
    133. `sheshiyuyue_uuid_number` varchar(200) DEFAULT NULL COMMENT '预约编号 Search111 ',
    134. `sheshiyuyue_name` varchar(200) DEFAULT NULL COMMENT '预约标题 Search111 ',
    135. `sheshiyuyue_sheshi` varchar(200) DEFAULT NULL COMMENT '设施名称 Search111 ',
    136. `sheshiyuyue_types` int(11) DEFAULT NULL COMMENT '设施类型 Search111 ',
    137. `yonghu_id` int(11) DEFAULT NULL COMMENT '用户',
    138. `sheshiyuyue_text` longtext COMMENT '预约理由',
    139. `insert_time` timestamp NULL DEFAULT NULL COMMENT '房屋预约时间',
    140. `sheshiyuyue_yesno_types` int(11) DEFAULT NULL COMMENT '预约状态 Search111 ',
    141. `sheshiyuyue_yesno_text` longtext COMMENT '审核回复',
    142. `create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间 show3 listShow',
    143. PRIMARY KEY (`id`)
    144. ) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=utf8 COMMENT='设施预约';
    145. CREATE TABLE `token` (
    146. `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
    147. `userid` bigint(20) NOT NULL COMMENT '管理id',
    148. `username` varchar(100) NOT NULL COMMENT '管理名',
    149. `tablename` varchar(100) DEFAULT NULL COMMENT '表名',
    150. `role` varchar(100) DEFAULT NULL COMMENT '角色',
    151. `token` varchar(200) NOT NULL COMMENT '密码',
    152. `addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '新增时间',
    153. `expiratedtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '过期时间',
    154. PRIMARY KEY (`id`)
    155. ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COMMENT='token表';
    156. CREATE TABLE `users` (
    157. `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
    158. `username` varchar(100) NOT NULL COMMENT '医院名',
    159. `password` varchar(100) NOT NULL COMMENT '密码',
    160. `role` varchar(100) DEFAULT '管理员' COMMENT '角色',
    161. `addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '新增时间',
    162. PRIMARY KEY (`id`)
    163. ) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8 COMMENT='管理员';
    164. CREATE TABLE `weixiubaobei` (
    165. `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
    166. `yonghu_id` int(11) DEFAULT NULL COMMENT '用户',
    167. `weixiubaobei_name` varchar(200) DEFAULT NULL COMMENT '报备标题 Search111 ',
    168. `weixiubaobei_text` longtext COMMENT '报备缘由',
    169. `weixiubaobei_types` int(11) DEFAULT NULL COMMENT '报备类型 Search111',
    170. `insert_time` timestamp NULL DEFAULT NULL COMMENT '申请时间',
    171. `weixiubaobei_time` timestamp NULL DEFAULT NULL COMMENT '报备时间',
    172. `weixiubaobei_yesno_types` int(11) DEFAULT NULL COMMENT '报备状态 Search111 ',
    173. `weixiubaobei_yesno_text` longtext COMMENT '处理结果',
    174. `weixiubaobei_shenhe_time` timestamp NULL DEFAULT NULL COMMENT '审核时间',
    175. `create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间 show3 listShow',
    176. PRIMARY KEY (`id`)
    177. ) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8 COMMENT='维修报备';
    178. CREATE TABLE `yonghu` (
    179. `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键',
    180. `username` varchar(200) DEFAULT NULL COMMENT '账户',
    181. `password` varchar(200) DEFAULT NULL COMMENT '密码',
    182. `yonghu_name` varchar(200) DEFAULT NULL COMMENT '用户名称 Search111 ',
    183. `yonghu_phone` varchar(200) DEFAULT NULL COMMENT '用户手机号',
    184. `yonghu_id_number` varchar(200) DEFAULT NULL COMMENT '用户身份证号',
    185. `yonghu_photo` varchar(200) DEFAULT NULL COMMENT '用户头像',
    186. `sex_types` int(11) DEFAULT NULL COMMENT '性别 Search111',
    187. `yonghu_email` varchar(200) DEFAULT NULL COMMENT '用户邮箱',
    188. `new_money` decimal(10,2) DEFAULT NULL COMMENT '现有余额',
    189. `data_delete` int(11) DEFAULT NULL COMMENT '逻辑删除',
    190. `insert_time` timestamp NULL DEFAULT NULL COMMENT '添加时间',
    191. `create_time` timestamp NULL DEFAULT NULL COMMENT '创建时间',
    192. PRIMARY KEY (`id`)
    193. ) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COMMENT='用户';

    7.核心代码 

    7.1 房屋租赁订单Controller

    1. package com.controller;
    2. /**
    3. * 房屋租赁订单
    4. * 后端接口
    5. * @author 计算机编程-吉哥
    6. * @email
    7. */
    8. @RestController
    9. @Controller
    10. @RequestMapping("/fangwuOrder")
    11. public class FangwuOrderController {
    12. private static final Logger logger = LoggerFactory.getLogger(FangwuOrderController.class);
    13. private static final String TABLE_NAME = "fangwuOrder";
    14. @Autowired
    15. private FangwuOrderService fangwuOrderService;
    16. @Autowired
    17. private TokenService tokenService;
    18. @Autowired
    19. private DictionaryService dictionaryService;//字典
    20. @Autowired
    21. private FangwuService fangwuService;//房屋信息
    22. @Autowired
    23. private FangwuCollectionService fangwuCollectionService;//房屋收藏
    24. @Autowired
    25. private FangwuLiuyanService fangwuLiuyanService;//房屋留言
    26. @Autowired
    27. private ForumService forumService;//交流论坛
    28. @Autowired
    29. private JiaofeiService jiaofeiService;//缴费
    30. @Autowired
    31. private NewsService newsService;//公告通知
    32. @Autowired
    33. private QiyeService qiyeService;//企业
    34. @Autowired
    35. private QiyeyonghuService qiyeyonghuService;//企业用户
    36. @Autowired
    37. private SheshiyuyueService sheshiyuyueService;//设施预约
    38. @Autowired
    39. private WeixiubaobeiService weixiubaobeiService;//维修报备
    40. @Autowired
    41. private YonghuService yonghuService;//用户
    42. @Autowired
    43. private UsersService usersService;//管理员
    44. /**
    45. * 后端列表
    46. */
    47. @RequestMapping("/page")
    48. public R page(@RequestParam Map params, HttpServletRequest request){
    49. logger.debug("page方法:,,Controller:{},,params:{}",this.getClass().getName(),JSONObject.toJSONString(params));
    50. String role = String.valueOf(request.getSession().getAttribute("role"));
    51. if(false)
    52. return R.error(511,"永不会进入");
    53. else if("用户".equals(role))
    54. params.put("yonghuId",request.getSession().getAttribute("userId"));
    55. else if("企业用户".equals(role))
    56. params.put("qiyeyonghuId",request.getSession().getAttribute("userId"));
    57. CommonUtil.checkMap(params);
    58. PageUtils page = fangwuOrderService.queryPage(params);
    59. //字典表数据转换
    60. List list =(List)page.getList();
    61. for(FangwuOrderView c:list){
    62. //修改对应字典表字段
    63. dictionaryService.dictionaryConvert(c, request);
    64. }
    65. return R.ok().put("data", page);
    66. }
    67. /**
    68. * 后端详情
    69. */
    70. @RequestMapping("/info/{id}")
    71. public R info(@PathVariable("id") Long id, HttpServletRequest request){
    72. logger.debug("info方法:,,Controller:{},,id:{}",this.getClass().getName(),id);
    73. FangwuOrderEntity fangwuOrder = fangwuOrderService.selectById(id);
    74. if(fangwuOrder !=null){
    75. //entity转view
    76. FangwuOrderView view = new FangwuOrderView();
    77. BeanUtils.copyProperties( fangwuOrder , view );//把实体数据重构到view中
    78. //级联表 房屋信息
    79. //级联表
    80. FangwuEntity fangwu = fangwuService.selectById(fangwuOrder.getFangwuId());
    81. if(fangwu != null){
    82. BeanUtils.copyProperties( fangwu , view ,new String[]{ "id", "createTime", "insertTime", "updateTime", "username", "password", "newMoney", "yonghuId"});//把级联的数据添加到view中,并排除id和创建时间字段,当前表的级联注册表
    83. view.setFangwuId(fangwu.getId());
    84. }
    85. //级联表 用户
    86. //级联表
    87. YonghuEntity yonghu = yonghuService.selectById(fangwuOrder.getYonghuId());
    88. if(yonghu != null){
    89. BeanUtils.copyProperties( yonghu , view ,new String[]{ "id", "createTime", "insertTime", "updateTime", "username", "password", "newMoney", "yonghuId"});//把级联的数据添加到view中,并排除id和创建时间字段,当前表的级联注册表
    90. view.setYonghuId(yonghu.getId());
    91. }
    92. //修改对应字典表字段
    93. dictionaryService.dictionaryConvert(view, request);
    94. return R.ok().put("data", view);
    95. }else {
    96. return R.error(511,"查不到数据");
    97. }
    98. }
    99. /**
    100. * 后端保存
    101. */
    102. @RequestMapping("/save")
    103. public R save(@RequestBody FangwuOrderEntity fangwuOrder, HttpServletRequest request){
    104. logger.debug("save方法:,,Controller:{},,fangwuOrder:{}",this.getClass().getName(),fangwuOrder.toString());
    105. String role = String.valueOf(request.getSession().getAttribute("role"));
    106. if(false)
    107. return R.error(511,"永远不会进入");
    108. else if("用户".equals(role))
    109. fangwuOrder.setYonghuId(Integer.valueOf(String.valueOf(request.getSession().getAttribute("userId"))));
    110. fangwuOrder.setCreateTime(new Date());
    111. fangwuOrder.setInsertTime(new Date());
    112. fangwuOrderService.insert(fangwuOrder);
    113. return R.ok();
    114. }
    115. /**
    116. * 后端修改
    117. */
    118. @RequestMapping("/update")
    119. public R update(@RequestBody FangwuOrderEntity fangwuOrder, HttpServletRequest request) throws NoSuchFieldException, ClassNotFoundException, IllegalAccessException, InstantiationException {
    120. logger.debug("update方法:,,Controller:{},,fangwuOrder:{}",this.getClass().getName(),fangwuOrder.toString());
    121. FangwuOrderEntity oldFangwuOrderEntity = fangwuOrderService.selectById(fangwuOrder.getId());//查询原先数据
    122. String role = String.valueOf(request.getSession().getAttribute("role"));
    123. fangwuOrder.setYonghuId(Integer.valueOf(String.valueOf(request.getSession().getAttribute("userId"))));
    124. fangwuOrderService.updateById(fangwuOrder);//根据id更新
    125. return R.ok();
    126. }
    127. /**
    128. * 删除
    129. */
    130. @RequestMapping("/delete")
    131. public R delete(@RequestBody Integer[] ids, HttpServletRequest request){
    132. logger.debug("delete:,,Controller:{},,ids:{}",this.getClass().getName(),ids.toString());
    133. List oldFangwuOrderList =fangwuOrderService.selectBatchIds(Arrays.asList(ids));//要删除的数据
    134. fangwuOrderService.deleteBatchIds(Arrays.asList(ids));
    135. return R.ok();
    136. }
    137. /**
    138. * 批量上传
    139. */
    140. @RequestMapping("/batchInsert")
    141. public R save( String fileName, HttpServletRequest request){
    142. logger.debug("batchInsert方法:,,Controller:{},,fileName:{}",this.getClass().getName(),fileName);
    143. Integer yonghuId = Integer.valueOf(String.valueOf(request.getSession().getAttribute("userId")));
    144. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
    145. //.eq("time", new SimpleDateFormat("yyyy-MM-dd").format(new Date()))
    146. try {
    147. List fangwuOrderList = new ArrayList<>();//上传的东西
    148. Map> seachFields= new HashMap<>();//要查询的字段
    149. Date date = new Date();
    150. int lastIndexOf = fileName.lastIndexOf(".");
    151. if(lastIndexOf == -1){
    152. return R.error(511,"该文件没有后缀");
    153. }else{
    154. String suffix = fileName.substring(lastIndexOf);
    155. if(!".xls".equals(suffix)){
    156. return R.error(511,"只支持后缀为xls的excel文件");
    157. }else{
    158. URL resource = this.getClass().getClassLoader().getResource("static/upload/" + fileName);//获取文件路径
    159. File file = new File(resource.getFile());
    160. if(!file.exists()){
    161. return R.error(511,"找不到上传文件,请联系管理员");
    162. }else{
    163. List> dataList = PoiUtil.poiImport(file.getPath());//读取xls文件
    164. dataList.remove(0);//删除第一行,因为第一行是提示
    165. for(List data:dataList){
    166. //循环
    167. FangwuOrderEntity fangwuOrderEntity = new FangwuOrderEntity();
    168. fangwuOrderList.add(fangwuOrderEntity);
    169. //把要查询是否重复的字段放入map中
    170. //订单编号
    171. if(seachFields.containsKey("fangwuOrderUuidNumber")){
    172. List fangwuOrderUuidNumber = seachFields.get("fangwuOrderUuidNumber");
    173. fangwuOrderUuidNumber.add(data.get(0));//要改的
    174. }else{
    175. List fangwuOrderUuidNumber = new ArrayList<>();
    176. fangwuOrderUuidNumber.add(data.get(0));//要改的
    177. seachFields.put("fangwuOrderUuidNumber",fangwuOrderUuidNumber);
    178. }
    179. }
    180. //查询是否重复
    181. //订单编号
    182. List fangwuOrderEntities_fangwuOrderUuidNumber = fangwuOrderService.selectList(new EntityWrapper().in("fangwu_order_uuid_number", seachFields.get("fangwuOrderUuidNumber")));
    183. if(fangwuOrderEntities_fangwuOrderUuidNumber.size() >0 ){
    184. ArrayList repeatFields = new ArrayList<>();
    185. for(FangwuOrderEntity s:fangwuOrderEntities_fangwuOrderUuidNumber){
    186. repeatFields.add(s.getFangwuOrderUuidNumber());
    187. }
    188. return R.error(511,"数据库的该表中的 [订单编号] 字段已经存在 存在数据为:"+repeatFields.toString());
    189. }
    190. fangwuOrderService.insertBatch(fangwuOrderList);
    191. return R.ok();
    192. }
    193. }
    194. }
    195. }catch (Exception e){
    196. e.printStackTrace();
    197. return R.error(511,"批量插入数据异常,请联系管理员");
    198. }
    199. }
    200. /**
    201. * 前端列表
    202. */
    203. @IgnoreAuth
    204. @RequestMapping("/list")
    205. public R list(@RequestParam Map params, HttpServletRequest request){
    206. logger.debug("list方法:,,Controller:{},,params:{}",this.getClass().getName(),JSONObject.toJSONString(params));
    207. CommonUtil.checkMap(params);
    208. PageUtils page = fangwuOrderService.queryPage(params);
    209. //字典表数据转换
    210. List list =(List)page.getList();
    211. for(FangwuOrderView c:list)
    212. dictionaryService.dictionaryConvert(c, request); //修改对应字典表字段
    213. return R.ok().put("data", page);
    214. }
    215. /**
    216. * 前端详情
    217. */
    218. @RequestMapping("/detail/{id}")
    219. public R detail(@PathVariable("id") Integer id, HttpServletRequest request){
    220. logger.debug("detail方法:,,Controller:{},,id:{}",this.getClass().getName(),id);
    221. FangwuOrderEntity fangwuOrder = fangwuOrderService.selectById(id);
    222. if(fangwuOrder !=null){
    223. //entity转view
    224. FangwuOrderView view = new FangwuOrderView();
    225. BeanUtils.copyProperties( fangwuOrder , view );//把实体数据重构到view中
    226. //级联表
    227. FangwuEntity fangwu = fangwuService.selectById(fangwuOrder.getFangwuId());
    228. if(fangwu != null){
    229. BeanUtils.copyProperties( fangwu , view ,new String[]{ "id", "createTime", "insertTime", "updateTime", "username", "password", "newMoney", "yonghuId"});//把级联的数据添加到view中,并排除id和创建时间字段
    230. view.setFangwuId(fangwu.getId());
    231. }
    232. //级联表
    233. YonghuEntity yonghu = yonghuService.selectById(fangwuOrder.getYonghuId());
    234. if(yonghu != null){
    235. BeanUtils.copyProperties( yonghu , view ,new String[]{ "id", "createTime", "insertTime", "updateTime", "username", "password", "newMoney", "yonghuId"});//把级联的数据添加到view中,并排除id和创建时间字段
    236. view.setYonghuId(yonghu.getId());
    237. }
    238. //修改对应字典表字段
    239. dictionaryService.dictionaryConvert(view, request);
    240. return R.ok().put("data", view);
    241. }else {
    242. return R.error(511,"查不到数据");
    243. }
    244. }
    245. /**
    246. * 前端保存
    247. */
    248. @RequestMapping("/add")
    249. public R add(@RequestBody FangwuOrderEntity fangwuOrder, HttpServletRequest request){
    250. logger.debug("add方法:,,Controller:{},,fangwuOrder:{}",this.getClass().getName(),fangwuOrder.toString());
    251. FangwuEntity fangwuEntity = fangwuService.selectById(fangwuOrder.getFangwuId());
    252. if(fangwuEntity == null){
    253. return R.error(511,"查不到该房屋信息");
    254. }
    255. // Double fangwuNewMoney = fangwuEntity.getFangwuNewMoney();
    256. if(false){
    257. }
    258. else if(fangwuEntity.getFangwuNewMoney() == null){
    259. return R.error(511,"租金/月不能为空");
    260. }
    261. //计算所获得积分
    262. Double buyJifen =0.0;
    263. Integer userId = (Integer) request.getSession().getAttribute("userId");
    264. YonghuEntity yonghuEntity = yonghuService.selectById(userId);
    265. if(yonghuEntity == null)
    266. return R.error(511,"用户不能为空");
    267. if(yonghuEntity.getNewMoney() == null)
    268. return R.error(511,"用户金额不能为空");
    269. double balance = yonghuEntity.getNewMoney() - fangwuEntity.getFangwuNewMoney()*fangwuOrder.getFangwuOrderNumb();//余额
    270. if(balance<0)
    271. return R.error(511,"余额不够支付");
    272. fangwuOrder.setFangwuOrderTypes(101); //设置订单状态为已支付
    273. fangwuOrder.setFangwuOrderTruePrice(fangwuEntity.getFangwuNewMoney()*fangwuOrder.getFangwuOrderNumb()); //设置实付价格
    274. fangwuOrder.setYonghuId(userId); //设置订单支付人id
    275. fangwuOrder.setFangwuOrderUuidNumber(String.valueOf(new Date().getTime()));
    276. fangwuOrder.setFangwuOrderPaymentTypes(1);
    277. fangwuOrder.setInsertTime(new Date());
    278. fangwuOrder.setCreateTime(new Date());
    279. fangwuOrderService.insert(fangwuOrder);//新增订单
    280. //更新第一注册表
    281. yonghuEntity.setNewMoney(balance);//设置金额
    282. yonghuService.updateById(yonghuEntity);
    283. return R.ok();
    284. }
    285. /**
    286. * 退房
    287. */
    288. @RequestMapping("/refund")
    289. public R refund(Integer id, HttpServletRequest request){
    290. logger.debug("refund方法:,,Controller:{},,id:{}",this.getClass().getName(),id);
    291. String role = String.valueOf(request.getSession().getAttribute("role"));
    292. FangwuOrderEntity fangwuOrder = fangwuOrderService.selectById(id);//当前表service
    293. Integer fangwuOrderPaymentTypes = fangwuOrder.getFangwuOrderPaymentTypes();
    294. Integer fangwuId = fangwuOrder.getFangwuId();
    295. if(fangwuId == null)
    296. return R.error(511,"查不到该房屋信息");
    297. FangwuEntity fangwuEntity = fangwuService.selectById(fangwuId);
    298. if(fangwuEntity == null)
    299. return R.error(511,"查不到该房屋信息");
    300. Double fangwuNewMoney = fangwuEntity.getFangwuNewMoney();
    301. if(fangwuNewMoney == null)
    302. return R.error(511,"房屋信息价格不能为空");
    303. Integer userId = (Integer) request.getSession().getAttribute("userId");
    304. YonghuEntity yonghuEntity = yonghuService.selectById(userId);
    305. if(yonghuEntity == null)
    306. return R.error(511,"用户不能为空");
    307. if(yonghuEntity.getNewMoney() == null)
    308. return R.error(511,"用户金额不能为空");
    309. Double zhekou = 1.0;
    310. //判断是什么支付方式 1代表余额 2代表积分
    311. if(fangwuOrderPaymentTypes == 1){//余额支付
    312. //计算金额
    313. Double money = fangwuEntity.getFangwuNewMoney() * fangwuOrder.getFangwuOrderNumb() * zhekou;
    314. //计算所获得积分
    315. Double buyJifen = 0.0;
    316. yonghuEntity.setNewMoney(yonghuEntity.getNewMoney() + money); //设置金额
    317. }
    318. fangwuOrder.setFangwuOrderTypes(102);//设置订单状态为已退房
    319. fangwuOrderService.updateAllColumnById(fangwuOrder);//根据id更新
    320. yonghuService.updateById(yonghuEntity);//更新用户信息
    321. fangwuService.updateById(fangwuEntity);//更新订单中房屋信息的信息
    322. return R.ok();
    323. }
    324. /**
    325. * 完成
    326. */
    327. @RequestMapping("/deliver")
    328. public R deliver(Integer id , HttpServletRequest request){
    329. logger.debug("refund:,,Controller:{},,ids:{}",this.getClass().getName(),id.toString());
    330. FangwuOrderEntity fangwuOrderEntity = fangwuOrderService.selectById(id);
    331. fangwuOrderEntity.setFangwuOrderTypes(103);//设置订单状态为已完成
    332. fangwuOrderService.updateById( fangwuOrderEntity);
    333. return R.ok();
    334. }
    335. }

    7.2 房屋租赁订单Service

    1. package com.service;
    2. import com.baomidou.mybatisplus.service.IService;
    3. import com.utils.PageUtils;
    4. import com.entity.FangwuOrderEntity;
    5. import java.util.Map;
    6. import javax.servlet.http.HttpServletRequest;
    7. import org.springframework.lang.Nullable;
    8. import java.util.List;
    9. /**
    10. * 房屋租赁订单 服务类
    11. */
    12. public interface FangwuOrderService extends IService {
    13. /**
    14. * @param params 查询参数
    15. * @return 带分页的查询出来的数据
    16. */
    17. PageUtils queryPage(Map params);
    18. }

     7.3 房屋租赁订单ServiceImpl

    1. package com.service.impl;
    2. /**
    3. * 房屋租赁订单 服务实现类
    4. */
    5. @Service("fangwuOrderService")
    6. @Transactional
    7. public class FangwuOrderServiceImpl extends ServiceImpl implements FangwuOrderService {
    8. @Override
    9. public PageUtils queryPage(Map params) {
    10. Page page =new Query(params).getPage();
    11. page.setRecords(baseMapper.selectListView(page,params));
    12. return new PageUtils(page);
    13. }
    14. }

     7.4 房屋租赁订单DAO

    1. package com.dao;
    2. import com.entity.FangwuOrderEntity;
    3. import com.baomidou.mybatisplus.mapper.BaseMapper;
    4. import java.util.List;
    5. import java.util.Map;
    6. import com.baomidou.mybatisplus.plugins.pagination.Pagination;
    7. import org.apache.ibatis.annotations.Param;
    8. import com.entity.view.FangwuOrderView;
    9. /**
    10. * 房屋租赁订单 Dao 接口
    11. *
    12. * @author
    13. */
    14. public interface FangwuOrderDao extends BaseMapper {
    15. List selectListView(Pagination page,@Param("params")Map params);
    16. }

    8.参考文档

    你可能还有感兴趣的项目👇🏻👇🏻👇🏻

    更多项目推荐:计算机毕业设计项目

    如果大家有任何疑虑,请在下方咨询或评论

  • 相关阅读:
    linux 增加交换区
    22:第三章:开发通行证服务:5:联调【发送短信,接口】,解决跨域问题;(使用CorsFilter过滤器,在Spring Boot上解决跨域访问问题;)
    RxJava 实例
    SpringCloudAlibaba【二】整合Nacos
    Python——函数
    云服务器ECS租用价格表报价——阿里云
    六大行数据治理现状盘点:治理架构、数据标准与数据中台(2022.04)
    【视觉高级篇】19 # 如何用着色器实现像素动画?
    margin塌陷和margin重合问题的解决方法总结
    公共管理学选择题(最终版)
  • 原文地址:https://blog.csdn.net/weixin_51966461/article/details/133882112