基于javaweb+mysql的springboot小区物业管理系统(java+springboot+ssm+mysql+maven+jsp)
运行环境
Java≥8、MySQL≥5.7
开发工具
eclipse/idea/myeclipse/sts等均可配置运行
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明
基于javaweb+mysql的SpringBoot小区物业管理系统(java+springboot+ssm+mysql+maven+jsp)
一、项目简述(+PPT演示文档)
本系统功能包括: 实现了资源管理、收费管理、支出管理、三表管理、投诉 建议、装修管理、车位管理、招商管理、物料管理、设备 管理、人事考勤、安保消防、报事报修、绿化管理、保洁 管理、权限管理等一些功能,还有一些细节功能没有实现需 要大家一起完善,提供给大家学习参考使用。
二、项目运行
环境配置: Jdk1.8 + Tomcat8.5 + Mysql + Eclispe (IntelliJ IDEA,Eclispe,MyEclispe,Sts 都支持)
项目技术: JSP +SpringBoot + MyBatis + Json+ Css + JavaScript + JQuery + Ajax + PageHelper+ Maven等等。
*/
@Controller
public class BillController {
@Autowired
private BillService billService;
@Autowired
private BillitemsService bitemService;
@Autowired
private OwnerService oService;
private SimpleDateFormat cx = new SimpleDateFormat("yyyy-MM-dd");
/**
* @category 跳转至业主未缴费展示页面
* @param model
* @return
*/
@RequestMapping("/unpay")
public String unpay(Model model) {
// SimpleDateFormat cx = new SimpleDateFormat("yyyy-MM-dd");
String stop = cx.format(new Date());
List<Owner> list = billService.findByOwner();
model.addAttribute("list", list);
model.addAttribute("start", start);
model.addAttribute("stop", stop);
model.addAttribute("inputname", "请输入姓名");
return "unpay";
}
/**
* @category 通过给定时间范围展示和业主模糊姓名联合查询缴费信息
* @param model
* @param request
* @return
* @throws ParseException
*/
@RequestMapping("/unpaytime")
public String unpayByTime(Model model, HttpServletRequest request, HttpSession session) throws ParseException {
// 获取分页参数设置每页展示的个数
int pageSize = (int) session.getAttribute("pageSize");
// 获取分页参数设置传进来的页码是多少
int pageNum = (int) session.getAttribute("pageNum");
// 将字符串转换为日期对象
Date start = cx.parse(request.getParameter("start"));
Date stop = cx.parse(request.getParameter("stop"));
// System.out.println(request.getParameter("start"));
String name = request.getParameter("username");
String a= "我的通知"+list.size();
String b="未读"+list.size();
List<String> list2=new ArrayList<>();
list2.add(a);
list2.add(b);
return list2;
}
/**
* @category 通知一键已读控制器
* @param request
* @param model
* @return
*/
@RequestMapping("/allread.action")
public String allread(HttpServletRequest request,Model model) {
HttpSession session = request.getSession();
Owner owner=(Owner)session.getAttribute("currentOwnerr");
messService.updateByOid(owner.getOid());
model.addAttribute("nomess", "暂无通知");
model.addAttribute("readlist", null);
return "messinfo";
}
/**
* @category 给业主发送催款通知
* @param oid
* @return
*/
@RequestMapping("/cuikuan.action")
public @ResponseBody int cuikuan(int oid) {
Message mess=new Message();
mess.setMessinfo("请您及时缴纳相关费用,详情请到我的账单查看");
mess.setOid(oid);
mess.setStatus("未阅读");
Date date=new Date();
String time=cx.format(date);
mess.setMesstime(time);
messService.insert(mess);
return oid;
}
@RequestMapping("/sendmess")
public @ResponseBody List<String> sendmess(HttpServletRequest request,String message,Integer oid){
//System.out.println(oid);
//System.out.println(message);
String oname=ownerService.findById(oid).getOname();
Date date=new Date();
@RequestMapping("/findCleanBymdate")
public String findCleanBymdate(Model model,String cltime) {
List<Clean>list2 = cleanService.findCleanBymdate(cltime);
model.addAttribute("clist", list2);
return "showclean";
}
/**
* 删除一个住户
*/
@RequestMapping("/deleteclen")
public String deleteone(int clid) {
cleanService.deleteByPrimaryKey(clid);
return "redirect:cleanact1.action";
}
/**
* 根据id 完成时间 提交时间 模糊查询
* @param model
* @param md
* @return
*/
@RequestMapping("/findclean1")
public String findclean(Model model,String cleanname) {
System.out.println("+++++++++++++");
System.out.println(cleanname);
List<Clean>list3 = cleanService.findMainClean(cleanname);
model.addAttribute("clist", list3);
return "showclean";
}
}
}
/**
* 根据id 完成时间 提交时间 模糊查询
* @param model
* @param md
* @return
*/
@RequestMapping("/findMain2")
public String findMain(Model model,String mds) {
System.out.println("+++++++++++++");
System.out.println(mds);
List<Owner>list3 = ownerService.findMain(mds);
model.addAttribute("list", list3);
return "list2";
}
}
*/
@RequestMapping("/signin")
public String signin() {
return "regist";
}
/**
*/
@RequestMapping("/ownermain")
public String ownermain() {
return "ownermain";
}
@RequestMapping("/savepingfen")
public boolean savepingfen(String ff) {
boolean f = sessionContentService.gorgeous(ff);
return f;
}
/**
* 添加住户信息
*/
@RequestMapping("/ownerbuycar")
public String ownerbuycar(Model model) {
Carport carport = new Carport();
List<Carport> list = carportService.findCarByState("未使用");
for (Carport carport2 : list) {
carport.setDuration(carport2.getDuration());
}
int count = list.size();
List<Carport> list1 = new ArrayList<Carport>();
list1 = carportService.findCarByArea("A");
model.addAttribute("A", list1);
list1 = carportService.findCarByArea("B");
model.addAttribute("B", list1);
list1 = carportService.findCarByArea("C");
model.addAttribute("C", list1);
list1 = carportService.findCarByArea("D");
model.addAttribute("D", list1);
model.addAttribute("count", count);
* @param model
* @param request
* @return
* @throws ParseException
*/
@RequestMapping("/unpaytime")
public String unpayByTime(Model model, HttpServletRequest request, HttpSession session) throws ParseException {
// 获取分页参数设置每页展示的个数
int pageSize = (int) session.getAttribute("pageSize");
// 获取分页参数设置传进来的页码是多少
int pageNum = (int) session.getAttribute("pageNum");
// 将字符串转换为日期对象
Date start = cx.parse(request.getParameter("start"));
Date stop = cx.parse(request.getParameter("stop"));
// System.out.println(request.getParameter("start"));
String name = request.getParameter("username");
// System.out.println(name);
// 账单的时间用于和stop和start比较
Date billdate;
// 开始时间戳
long startTime = start.getTime();
// 结束时间戳
long stopTime = stop.getTime();
long billtime;
// 用该list给owner对象的billlist设值
List<Bill> billlist = new ArrayList<>();
// 查找所有
List<Owner> list1 = billService.findByOwner();
List<Owner> list = new ArrayList<>();
// 生成要返回的list
for (int i = 0; i < list1.size(); i++) {
double total = 0;
// 循环遍历得到的所有owner对象
for (int j = 0; j < list1.get(i).getBill().size(); j++) {
//获得owner单个订单的时间戳
billdate = cx.parse(list1.get(i).getBill().get(j).getBilltime());
billtime = billdate.getTime();
//判断订单的时间戳是否在指定的范围内,并且该owner的姓名要包含指定的字符串
try {
if (billtime >= startTime && billtime <= stopTime && list1.get(i).getOname().contains(name)) {
// 如果满足上述条件,则将该条订单信息添加到billlist中
billlist.add(list1.get(i).getBill().get(j));
// 计算总价
total += list1.get(i).getBill().get(j).getBillitem().getBillitemmoney();
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
// 如果该业主有未缴纳的账单,给该业主对象设置未缴纳账单,并将该对象放入要传给前端的list中
if (billlist.size() > 0) {
}
/**
* @category ajax搜索
* @param name
* @return
*/
@RequestMapping("/showname")
public @ResponseBody List<Owner> showname(String name) {
System.out.println("进来了");
List<Owner> list1 = oService.selectByExample();
List<Owner> list = new ArrayList<>();
for (int i = 0; i < list1.size(); i++) {
if (list1.get(i).getOname().contains(name)) {
list.add(list1.get(i));
}
}
return list;
}
@SuppressWarnings("unchecked")
@RequestMapping("/unpayfy")
public String unpayfy(Model model, HttpSession session, int pageSize, int pageNum, String type,
HttpServletRequest request) {
System.out.println(pageNum);
String stop;
String start;
// SimpleDateFormat cx = new SimpleDateFormat("yyyy-MM-dd");
if (session.getAttribute("stop") != null) {
stop = (String) session.getAttribute("stop");
} else {
stop = cx.format(new Date());
}
if (session.getAttribute("start") != null) {
start = (String) session.getAttribute("start");
} else {
}
List<Owner> list1 = new ArrayList<>();
if (session.getAttribute("findList") != null) {
list1 = (List<Owner>) session.getAttribute("findList");
} else {
list1 = billService.findByOwner();
}
System.out.println(pageSize);
System.out.println(str);
if (str.equals("z")) {
++pageNum;
} else if (str.equals("j")) {
--pageNum;
}
session.setAttribute("pageSize", pageSize);
PageRequest pageQuery = new PageRequest();
pageQuery.setPageNum(pageNum);
pageQuery.setPageSize(pageSize);
PageResult pageResult = clerkService.findPage(pageQuery);
model.addAttribute("pageResult", pageResult);
return "clerklist";
}
// 分页模糊查询
@RequestMapping("/clerkselectlike")
public String ClerkSelectLike(String like, int pageSize, int pageNum, Model model, String str,
HttpSession session) {
System.out.println("进来了");
System.out.println(pageSize);
System.out.println(str);
System.out.println(like);
if (str.equals("z")) {
++pageNum;
} else if (str.equals("j")) {
--pageNum;
}
session.setAttribute("like",like);
session.setAttribute("pageSize", pageSize);
PageRequest pageQuery = new PageRequest();
pageQuery.setPageNum(pageNum);
pageQuery.setPageSize(pageSize);
PageResult pageResult = clerkService.findPageByLike(like, pageQuery);
model.addAttribute("pageResult", pageResult);
return "clerklist2";
}
@RequestMapping("/clerkselectlike1")
public String clerkselectlike1( String like,int pageSize, Model model, HttpSession session) {
System.out.println("进来了");
System.out.println(pageSize);
PageRequest pageQuery = new PageRequest();
pageQuery.setPageNum(1);
pageQuery.setPageSize(pageSize);
// 使用重定向,返回登录界面
return "redirect:afforestact1.action";
} else {
return "css";
}
}
/**
* 删除一个住户
*/
@RequestMapping("/deleteaff")
public String deleteone(int afid) {
afforestService.deleteByPrimaryKey(afid);
return "redirect:afforestact1.action";
}
/**
* 根据id 完成时间 提交时间 模糊查询
* @param model
* @param md
* @return
*/
@RequestMapping("/findaffor")
public String findclean(Model model,String affname) {
System.out.println("+++++++++++++");
System.out.println(affname);
List<Afforest>list3 = afforestService.findMainAfforest(affname);
model.addAttribute("aflist", list3);
return "showafforest";
}
}
/**
@RequestMapping("/jingbiao")
public String jingbiao(Model model) {
List<Bidding> list = biddingService.findAll();
model.addAttribute("biddinglist", list);
return "jingbiao";
}
@RequestMapping("/deletemyjingbiao")
public String deletemyjingbiao(int tid) {
System.out.println("deletemyjingbiao:" + tid);
tenderService.deleteTenderOne(tid);
return "redirect:jingbiao.action";
}
/**
* 通过audit字段查找list
*/
@RequestMapping("/auditingbyaudit")
public String auditingbyaudit(Model model, String audit) {
List<Tender> list = tenderService.findByAudit(audit);
model.addAttribute("adornShowList", list);
return "audit";
}
@RequestMapping("/auditingbyliftstate")
public String auditingbyliftstate(Model model, int liftstate) {
List<Tender> list = tenderService.findByLiftstate(liftstate);
model.addAttribute("adornShowList", list);
return "audit";
}
/**
* 拒绝竞标控制
*/
@RequestMapping("/refuse")
public String refuse(int tid, String remaker) {
System.out.println("refuse:" + remaker);
tenderService.refuse(tid, remaker);
return "redirect:biddinging.action";
}
/**
* 竞标通过
*
* response.getWriter().write(url); // 直接将完整的表单html输出到页面
* response.getWriter().flush(); response.getWriter().close();
*/
} catch (AlipayApiException e) {
e.printStackTrace();
}
response.setContentType("text/html;charset=" + AlipayConfig.charset);
response.getWriter().write(url);// 直接将完整的表单html输出到页面
response.getWriter().flush();
response.getWriter().close();
}
/**
* 同步跳转
*
* @param request
* @throws Exception
*/
@RequestMapping("/returnUrl")
public String returnUrl(HttpServletRequest request) throws Exception {
System.out.println("----------------------------------");
ModelAndView mav = new ModelAndView();
// 获取支付宝GET过来反馈信息(官方固定代码)
Map<String, String> params = new HashMap<String, String>();
Map<String, String[]> requestParams = request.getParameterMap();
for (Iterator<String> iter = requestParams.keySet().iterator(); iter.hasNext();) {
String name = (String) iter.next();
String[] values = (String[]) requestParams.get(name);
String valueStr = "";
for (int i = 0; i < values.length; i++) {
valueStr = (i == values.length - 1) ? valueStr + values[i] : valueStr + values[i] + ",";
}
params.put(name, valueStr);
}
boolean signVerified = AlipaySignature.rsaCheckV1(params, AlipayConfig.alipay_public_key, AlipayConfig.charset,
AlipayConfig.sign_type); // 调用SDK验证签名
// 返回界面
if (signVerified) {
System.out.println("前往支付成功页面");
mav.setViewName("gohome");
return "error";
}
}
/**
* 支付宝服务器异步通知
*
* @param request
* @throws Exception
*/
@ResponseBody
@RequestMapping("/notifyUrl")
public void notifyUrl(HttpServletRequest request) throws Exception {
// 获取支付宝GET过来反馈信息
Map<String, String> params = new HashMap<String, String>();
Map<String, String[]> requestParams = request.getParameterMap();
for (Iterator<String> iter = requestParams.keySet().iterator(); iter.hasNext();) {
String name = (String) iter.next();
String[] values = (String[]) requestParams.get(name);
String valueStr = "";
for (int i = 0; i < values.length; i++) {
valueStr = (i == values.length - 1) ? valueStr + values[i] : valueStr + values[i] + ",";
}
params.put(name, valueStr);
}
boolean signVerified = AlipaySignature.rsaCheckV1(params, AlipayConfig.alipay_public_key, AlipayConfig.charset,
AlipayConfig.sign_type); // 调用SDK验证签名
System.out.println(signVerified);
if (signVerified) { // 验证成功 更新订单信息
System.out.println("异步通知成功");
// 商户订单号
String out_trade_no = request.getParameter("out_trade_no");
// 交易状态
String trade_status = request.getParameter("trade_status");
System.out.println(trade_status);
// 修改订单的支付状态为已付款
billService.updateBillStatus(out_trade_no);
} else {
System.out.println("异步通知失败");
}
}
}
boolean flag = facilityService.delete(facilityids);
return "redirect:facilityselectall.action";
}
// 进入更新职员页面
@RequestMapping("/facilityupdate")
public String FacilityUpdate(int facilityid, Model model) {
System.out.println(facilityid + "我进来了!!!!!!");
Facility facility = facilityService.find(facilityid);
model.addAttribute("facility", facility);
return "updatefacility";
}
// 更新页面提交数据返回查找控制器
@RequestMapping("/facilityupdatesave")
public String ClerkUpdate(Facility facility) {
boolean flag = facilityService.update(facility);
return "redirect:facilityselectall.action";
}
}
@Controller
public class ComplainController {
@Autowired
ComplainService complainService;
ComplainExample complainExample = new ComplainExample() ;
@RequestMapping("/main")
public String test() {
return "main";
}
/**
* 全部投诉信息
*/
@RequestMapping("/complain")
public String complain(Model model) {
List<Complain> list =complainService.findAll();
model.addAttribute("complainlist", list);
HousenumberExample example=new HousenumberExample();
List<Housenumber> list=hService.selectByExample(example);
List<Housenumber> list1=new ArrayList<Housenumber>();
if(type.equals("a")) {
model.addAttribute("list", list);
model.addAttribute("can", "a");
return "house";
}
else if(type.equals("x")) {
for (int i = 0; i < list.size(); i++) {
if(list.get(i).getStatus().equals("闲置")) {
list1.add(list.get(i));
}
}
model.addAttribute("can", "x");
model.addAttribute("list", list1);
return "house";
}
else if(type.equals("y")) {
for (int i = 0; i < list.size(); i++) {
if(list.get(i).getStatus().equals("已出售")) {
list1.add(list.get(i));
}
}
model.addAttribute("can", "y");
model.addAttribute("list", list1);
return "house";
}
return "mian";
}
/**
* @category 跳转到更新房屋信息页面
* @param model
* @param homeid
* @return
*/
@RequestMapping("/updatehouse")
public String updatehouse(Model model,@RequestParam ("homeid") int homeid) {
Housenumber house=hService.selectByPrimaryKey(homeid);
model.addAttribute("house", house);
return "updatehouse";
@RequestMapping("/savejingbianman")
public String savejingbianman(int bid, Tender tender, Model model, HttpSession session) {
biddingService.updateOne(bid);
try {
Thread.sleep(1000);
tenderService.addOne(tender);
} catch (InterruptedException e) {
e.printStackTrace();
}
session.setAttribute("userTel", tender.getTel());
return "redirect:jingbiao.action";
}
@RequestMapping("/jingbiao")
public String jingbiao(Model model) {
List<Bidding> list = biddingService.findAll();
model.addAttribute("biddinglist", list);
return "jingbiao";
}
@RequestMapping("/deletemyjingbiao")
public String deletemyjingbiao(int tid) {
System.out.println("deletemyjingbiao:" + tid);
tenderService.deleteTenderOne(tid);
return "redirect:jingbiao.action";
}
/**
* 通过audit字段查找list
*/
@RequestMapping("/auditingbyaudit")
public String auditingbyaudit(Model model, String audit) {
List<Tender> list = tenderService.findByAudit(audit);
model.addAttribute("adornShowList", list);
return "audit";
}
@RequestMapping("/auditingbyliftstate")
public String auditingbyliftstate(Model model, int liftstate) {
List<Tender> list = tenderService.findByLiftstate(liftstate);
model.addAttribute("adornShowList", list);
return "audit";
}
@Controller
public class OwnerController {
@Autowired
OwnerService ownerService;
@Autowired
private MessageService messService;
@Autowired
CarportService carportService;
@Autowired
SessionContentService sessionContentService;
private BillService billService;
// 登录控制器
@RequestMapping("/login")
public String login() {
return "login";
}
// 登录判断控制器
@RequestMapping("/loginjudge")
public String loginjudge(@RequestParam("otel") String otel, @RequestParam("opass") String opass, Model model,
HttpServletRequest request, String captcha) {
String session1 = request.getSession().getAttribute("simpleCaptcha").toString();
if (captcha.equals(session1)) {
Owner owner = ownerService.findOwnerTel(otel, opass);
@Controller
public class ComplainController {
@Autowired
ComplainService complainService;
ComplainExample complainExample = new ComplainExample() ;
@RequestMapping("/main")
public String test() {
return "main";
}
/**
* 全部投诉信息
*/
@RequestMapping("/complain")
public String complain(Model model) {
List<Complain> list =complainService.findAll();
model.addAttribute("complainlist", list);
return "complain";
}
/**
* 业主跳转添加投诉页面
*/
@RequestMapping("/addcomplaint")
public String addcomplaint() {
return "addonecomplain";
}
/**
* 添加投诉到数据库
*/
@RequestMapping("/savecomplain")
public String savecomplain(Complain complain) {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH-mm-ss");
Date date = new Date();
String d = format.format(date);
complain.setStatedate(d);
complainService.addOne(complain);
return "addonecomplain";
}
/**
* 分类投诉信息
*/
@RequestMapping("/complainstate")
public String complainstate(Model model,String state) {
@RequestMapping("/findpage2")
public String findPage2(Model model, HttpSession session) {
System.out.println("进来了");
int pageSize = (int) session.getAttribute("pageSize");
System.out.println(pageSize);
PageRequest pageQuery = new PageRequest();
pageQuery.setPageNum(1);
pageQuery.setPageSize(pageSize);
session.setAttribute("pageSize", pageSize);
PageResult pageResult = clerkService.findPage(pageQuery);
model.addAttribute("pageResult", pageResult);
return "clerklist";
}
}
/**
* @category 商铺控制器
*
*/
@Controller
public class BiddingController {
@Autowired
BiddingService biddingService;
@Autowired
TenderService tenderService;
@RequestMapping("/savestorebid")
public String addOne(Model model, Bidding bidding, double price) {
double price1 = bidding.getArea() * price;
Timestamp d = new Timestamp(System.currentTimeMillis());