大家好!我是岛上程序猿,感谢您阅读本文,欢迎一键三连哦。
💞当前专栏:Java毕业设计
精彩专栏推荐👇🏻👇🏻👇🏻
开发运行环境
- 框架:ssm
- JDK版本:JDK1.8
- 服务器:tomcat7
- 数据库:mysql 5.7
- 数据库工具:Navicat12
- 开发软件:eclipse/myeclipse/idea
- Maven包:Maven3.3.9
- 浏览器:谷歌浏览器
源码下载地址:
https://download.csdn.net/download/m0_46388260/89272319
论文目录
【如需全文请按文末获取联系】
一、项目简介
系统可以提供信息显示和相应服务,其管理员管理洗衣机,管理留言和公告,查看洗衣机预约信息,取消已预约洗衣机。用户查看洗衣机,预约洗衣机,取消预约的洗衣机,发布留言,查看公告。
二、系统设计
2.1软件功能模块设计
在前面分析的管理员功能的基础上,进行接下来的设计工作,最终展示设计的管理员结构图(见下图)。管理员管理洗衣机,管理留言和公告,查看洗衣机预约信息,取消已预约洗衣机。
在前面分析的用户功能的基础上,进行接下来的设计工作,最终展示设计的用户结构图(见下图)。用户查看洗衣机,预约洗衣机,取消预约的洗衣机,发布留言,查看公告。
2.2数据库设计
(1)下图是用户实体和其具备的属性。
(2)下图是已预约洗衣机实体和其具备的属性。
(3)下图是洗衣机实体和其具备的属性。
(5)下图为上述各实体间相互之间的关系。
三、系统项目部分截图
3.1管理员功能实现
洗衣机管理
管理员进入指定功能操作区之后可以管理洗衣机信息。其页面见下图。管理员增删改查洗衣机信息。
已预约洗衣机管理
管理员进入指定功能操作区之后可以管理已预约洗衣机。其页面见下图。用户预约洗衣机,管理员可以修改,也能取消预约。
留言管理
管理员进入指定功能操作区之后可以管理留言。其页面见下图。留言模块是管理员跟用户之间相互交流的渠道。
3.2用户功能实现
洗衣机信息
用户进入指定功能操作区之后可以查看洗衣机。其页面见下图。用户对右侧有预约按钮的洗衣机进行预约。
已预约洗衣机
用户进入指定功能操作区之后可以查看已预约洗衣机。其页面见下图。用户点击取消预约即可对预约的洗衣机进行取消。
四、部分核心代码
package com.controller;
import java.net.Inet4Address;
import java.text.SimpleDateFormat;
import java.util.*;
import javax.servlet.http.HttpServletRequest;
import com.entity.YiyuyuexiyijiEntity;
import com.entity.YonghuEntity;
import com.service.YiyuyuexiyijiService;
import com.service.YonghuService;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.entity.XiyijiEntity;
import com.service.XiyijiService;
import com.utils.PageUtils;
import com.utils.R;
/**
* 洗衣机
* 后端接口
* @author
* @email
* @date 2021-03-15
*/
@RestController
@Controller
@RequestMapping("/xiyiji")
public class XiyijiController {
private static final Logger logger = LoggerFactory.getLogger(XiyijiController.class);
@Autowired
private YonghuService yonghuService;
@Autowired
private XiyijiService xiyijiService;
@Autowired
private YiyuyuexiyijiService yiyuyuexiyijiService;
/**
* 后端列表
*/
@RequestMapping("/page")
public R page(@RequestParam Map<String, Object> params){
logger.debug("Controller:"+this.getClass().getName()+",page方法");
PageUtils page = xiyijiService.queryPage(params);
return R.ok().put("data", page);
}
/**
* 后端详情
*/
@RequestMapping("/info/{id}")
public R info(@PathVariable("id") Long id){
logger.debug("Controller:"+this.getClass().getName()+",info方法");
XiyijiEntity xiyiji = xiyijiService.selectById(id);
if(xiyiji!=null){
return R.ok().put("data", xiyiji);
}else {
return R.error(511,"查不到数据");
}
}
/**
* 后端保存
*/
@RequestMapping("/save")
public R save(@RequestBody XiyijiEntity xiyiji, HttpServletRequest request){
logger.debug("Controller:"+this.getClass().getName()+",save");
Wrapper<XiyijiEntity> queryWrapper = new EntityWrapper<XiyijiEntity>()
.eq("name", xiyiji.getName())
.eq("money", xiyiji.getMoney())
.eq("xyjzt_types", xiyiji.getXyjztTypes())
;
logger.info("sql语句:"+queryWrapper.getSqlSegment());
XiyijiEntity xiyijiEntity = xiyijiService.selectOne(queryWrapper);
if("".equals(xiyiji.getImPhoto()) || "null".equals(xiyiji.getImPhoto())){
xiyiji.setImPhoto(null);
}
if(xiyijiEntity==null){
xiyiji.setXyjztTypes(1);
xiyijiService.insert(xiyiji);
return R.ok();
}else {
return R.error(511,"表中有相同数据");
}
}
/**
* 修改
*/
@RequestMapping("/update")
public R update(@RequestBody XiyijiEntity xiyiji, HttpServletRequest request){
logger.debug("Controller:"+this.getClass().getName()+",update");
//根据字段查询是否有相同数据
Wrapper<XiyijiEntity> queryWrapper = new EntityWrapper<XiyijiEntity>()
.notIn("id",xiyiji.getId())
.eq("name", xiyiji.getName())
.eq("money", xiyiji.getMoney())
.eq("xyjzt_types", xiyiji.getXyjztTypes())
;
logger.info("sql语句:"+queryWrapper.getSqlSegment());
XiyijiEntity xiyijiEntity = xiyijiService.selectOne(queryWrapper);
if("".equals(xiyiji.getImPhoto()) || "null".equals(xiyiji.getImPhoto())){
xiyiji.setImPhoto(null);
}
if(xiyijiEntity==null){
xiyijiService.updateById(xiyiji);//根据id更新
return R.ok();
}else {
return R.error(511,"表中有相同数据");
}
}
/**
* 删除
*/
@RequestMapping("/delete")
public R delete(@RequestBody Long[] ids){
logger.debug("Controller:"+this.getClass().getName()+",delete");
xiyijiService.deleteBatchIds(Arrays.asList(ids));
return R.ok();
}
/**
* 删除
*/
@RequestMapping("/subscribe")
public R subscribe(Integer ids,Integer hour, HttpServletRequest request){
if(!request.getSession().getAttribute("role").equals("用户")){
return R.error("只有用户可以进行预约哦");
}
XiyijiEntity xiyiji = xiyijiService.selectById(ids);
if(xiyiji == null){
return R.error();
}
if(hour >= 10){
return R.error("使用时间不能大于10小时");
}
if(hour == null || hour < 1){
return R.error("使用时间不能为空或者小于1");
}
YiyuyuexiyijiEntity yiyuyuexiyiji = new YiyuyuexiyijiEntity();
yiyuyuexiyiji.setCreateTime(new Date());
yiyuyuexiyiji.setXyjTypes(xiyiji.getId());
YonghuEntity userId = yonghuService.selectById((Integer) request.getSession().getAttribute("userId"));
if(userId == null){
return R.error();
}
if(userId.getMoney() < hour*xiyiji.getMoney()){
return R.error("您余额不足,请充值");
}
userId.setMoney(userId.getMoney() - hour*xiyiji.getMoney());
yiyuyuexiyiji.setYhTypes((Integer) request.getSession().getAttribute("userId"));
yiyuyuexiyiji.setHour(hour);
yiyuyuexiyiji.setMoney(hour*xiyiji.getMoney());
Wrapper<YiyuyuexiyijiEntity> queryWrapper = new EntityWrapper<YiyuyuexiyijiEntity>()
.eq("xyj_types", yiyuyuexiyiji.getXyjTypes())
.eq("yh_types", yiyuyuexiyiji.getYhTypes())
;
logger.info("sql语句:"+queryWrapper.getSqlSegment());
YiyuyuexiyijiEntity yiyuyuexiyijiEntity = yiyuyuexiyijiService.selectOne(queryWrapper);
if(yiyuyuexiyijiEntity==null){
xiyiji.setXyjztTypes(2);
yonghuService.updateById(userId);
xiyijiService.updateById(xiyiji);
yiyuyuexiyijiService.insert(yiyuyuexiyiji);
return R.ok();
}else {
return R.error(511,"表中有相同数据");
}
}
}
获取源码或论文
如需对应的论文或源码,以及其他定制需求,也可以下方微信联系我。