基于javaweb+mysql的springboot家政服务系统(java+springboot+html+echarts+maven+mysql)

基于javaweb+mysql的springboot家政服务系统(java+springboot+html+echarts+maven+mysql)

私信源码获取及调试交流

运行环境

Java≥8、MySQL≥5.7

开发工具

eclipse/idea/myeclipse/sts等均可配置运行

适用

课程设计,大作业,毕业设计,项目练习,学习演示等

功能说明

基于javaweb+mysql的SpringBoot家政服务系统(java+springboot+html+echarts+maven+mysql)

项目介绍

本项目为后管系统,主要功能包括: 1. 用户的注册、登录、退出系统 2. 用户的搜索功能 3. 家政人员上传资料、身份认证和资格认证 4. 消费者发布预约、查看预约、确认预约、评价订单、删除订单、修改个人资料 5. 家政人员修改个人资料、申请预约、接受订单、取消订单、完成订单 6. 管理员对用户管理、认证管理和系统的量化查看

环境需要

1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。 2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA; 3.tomcat环境:Tomcat 7.x,8.x,9.x版本均可 4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS; 5.数据库:MySql 8.0版本;

6.是否Maven项目:是;

技术栈

前端 1. UI界面:Bootstrap 2. 弹窗:Sweetalert 3. Js事件:jQuery/ajax 4. 可视化报表:ECharts 5. 下拉框:Bootstrap-Select 后端 1. 服务层:SpringBoot 2. 持久层:Mybatis 3. 分页:Pagehelper 4. 连接池:c3p0

  1. 实体类:Lombok

使用说明

  1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;

  2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;

若为maven项目,导入成功后请执行maven clean;maven install命令,然后运行;

  1. 将项目中application.yml配置文件中的数据库配置改为自己的配置; 4. 运行项目,在浏览器中输入http://localhost:8081/ 登录 消费者登录账号/密码:18796283605/123456 家政人员登录账号/密码:18860425033/123456 管理员账号/密码:18796283601/123456
            @RequestParam("id") String id
    ) {
        ResponseResult<Company> result = new ResponseResult<>();
        Company company = adminService.getCompanyByID(Integer.parseInt(id));
        result.setData(company);
        return result;
    }

    @PostMapping("/cancelCustomerByID")
    @ResponseBody
    public ResponseResult<Void> cancelCustomerByID (
            @RequestParam("id") String id
    ) {
        adminService.updateCustomerStatusByID(Integer.parseInt(id), 2);
        return new ResponseResult<>();
    }

    @PostMapping("/certifyCustomerByID")
    @ResponseBody
    public ResponseResult<Void> certifyCustomerByID (
            @RequestParam("id") String id
    ) {
        adminService.updateCustomerStatusByID(Integer.parseInt(id), 1);
        return new ResponseResult<>();
    }

    @PostMapping("/cancelHousekeeperByID")
    @ResponseBody
    public ResponseResult<Void> cancelHousekeeperByID (
            @RequestParam("id") String id
    ) {
        adminService.updateHousekeeperStatusByID(Integer.parseInt(id), 2);
        return new ResponseResult<>();
    }

    @PostMapping("/certifyHousekeeperByID")
    @ResponseBody
    public ResponseResult<Void> certifyHousekeeperByID (
            @RequestParam("id") String id
    ) {
        adminService.updateHousekeeperStatusByID(Integer.parseInt(id), 1);
/**
 * Created by IntelliJ IDEA 2020.1.
 * Project: house
 * Description:
 */
@Service
public class MessageServiceImpl implements MessageService {
    @Autowired
    private MessageMapper messageMapper;
    @Autowired
    private UserMapper userMapper;
    @Autowired
    private HKPersonMapper hkPersonMapper;

    /**
     * unreadStatus 表示未读状态
     */
    private final int unreadStatus = 0;
    /**
     * readStatus 表示已读
     */
    private final int readStatus = 1;

    @Override
    public List<Message> getMessageByToID(HttpSession session) {
        String phone = (String)session.getAttribute("username");
        if (StringUtils.isEmpty(phone)) {
            throw new UserNoLoginException("用户未登录!");
        } else {
            int id = userMapper.selectHKIDByPhone(phone);
            return messageMapper.getMessageByToID(id);
        }
    }

    @Override
    public Integer insertMessage(String msgContent, HttpSession session, int toID) throws UserNoLoginException, NoMessagePermission {
        String phone = (String)session.getAttribute("username");
        String toPhone = hkPersonMapper.getHousekeeperByID(toID).getHkPhone();
        if (StringUtils.isEmpty(phone)) {
            username = session.getAttribute("username").toString();
            String tempPwd = userMapper.getPasswordByUsername(username);
            if (!tempPwd.equals(oldPassword)) {
                throw new PasswordIsErrorException("原始密码填写错误!");
            } else {
                userMapper.updatePassword(username, newPassword);
                result = personMapper.updatePassword(username, newPassword);
            }
        }
        return result;
    }

    @Override
    public Customer selectCertifyCustomer(HttpSession session) {
        Customer customer = new Customer();
        if (session == null) {
            throw new UserNoLoginException("用户未登录!");
        } else {
            String username = session.getAttribute("username").toString();
            customer = personMapper.selectCertifyCustomer(username);
        }
        return customer;
    }

    @Override
    public Integer certifyCustomer(HttpSession session, Customer customer) throws UserNoLoginException {
        int result = 0;
        String username = new String();
        if (session == null) {
            throw new UserNoLoginException("用户未登录");
        } else {
            username = session.getAttribute("username").toString();
            result = personMapper.certifyCustomer(customer.getCmName(), customer.getCmCardID(), customer.getCmCardPhoto(), customer.getCmStatus(), username);
        }
        return result;
    }

    @Override
    public Integer getCertifyStatus(HttpSession session) {
        int result = 0;
        String username = (String)session.getAttribute("username");
        if (StringUtils.isEmpty(username)) {
            throw new UserNoLoginException("用户未登录");
        } else {
            result = personMapper.getCertifyStatus(username);
        }
        return result;
    }

    @Override
    public List<Message> getAllMessage() {
        return personMapper.getAllMessage();
    }


    @Autowired
    private IndexMapper indexMapper;
    @Autowired
    private TypeMapper typeMapper;
    @Autowired
    private OrderMapper orderMapper;
    @Autowired
    private HKPersonMapper hkPersonMapper;
    @Autowired
    private UserMapper userMapper;

    @Override
    public List<Type> getAllType() {
        List<Type> list = new ArrayList<Type>();
        list = indexMapper.getAllType();
        return list;
    }

    @Override
    public List<Type> getAllSmallType(Integer type_id) {
        return indexMapper.getAllSmallType(type_id);
    }

    @Override
    public List<HouseKeeper> getTopHousekeeper(int type) {
        List<Integer> hkIDList = orderMapper.getTopOrderByTypeID(type);
        List<HouseKeeper> list = new ArrayList<>();
        for (int i : hkIDList) {
            HouseKeeper houseKeeper =  hkPersonMapper.getHousekeeperByID(i);
            list.add(houseKeeper);
        }
        for (HouseKeeper hk : list) {
            String hkName = indexMapper.getCompanyNameByID(hk.getCompanyID());
            hk.setCompanyName(hkName);
        }
        return list;
    }

    @Override
    public Integer getTypeID(String param) {
        return typeMapper.getTypeIDByName(param);
    }

/**
 * Created by IntelliJ IDEA 2020.1.
 * Project: house
 * Description:
 */
@Service
public class HKPersonServiceImpl implements HKPersonService {

    @Autowired
    private HKPersonMapper hkPersonMapper;
    @Autowired
    private IndexMapper indexMapper;

    @Override
    public HouseKeeper selectHKByPhone(HttpSession session) {
        String phone = (String)session.getAttribute("username");
        if (StringUtils.isEmpty(phone)) {
            throw new UserNoLoginException("用户未登录");
        } else {
            return hkPersonMapper.selectHKByPhone(phone);
        }
    }

    @Override
    public Integer updateHKPerson(HouseKeeper houseKeeper) {
        return hkPersonMapper.updateHK(houseKeeper);
    }

    @Override
    public Integer certifyHK(HouseKeeper houseKeeper) {
        return hkPersonMapper.certifyHK(houseKeeper);
    }

    @Override
    }

    @Override
    public Integer insertCustomer(Customer customer) throws UsernameConflictException {
        Integer result = 0;
        String phone = customer.getCmPhone();
        if (userMapper.getUserByUsername(phone) != null) {
            throw new UsernameConflictException("用户已经存在!");
        } else {
            String password = customer.getCmPassword();
            int role = 1;
            int status = 1;
            User user = new User();
            user.setUsername(phone);
            user.setPassword(password);
            user.setRole(role);
            user.setStatus(status);
            result = adminMapper.insertCustomer(customer);
            userMapper.insert(user);
        }
        return result;
    }

    @Override
    public Integer updateLoginStatus(String username) {
        Integer result = 0;
        result = adminMapper.updateStatusLogin(username);
        return result;
    }

    @Override
    public Integer insertHouseKeeper(HouseKeeper houseKeeper) {

        return null;
    }

    @Override
    public List<EchartsData> getOrderData() {
        return adminMapper.getOrderData();
    }

    @Override
    public List<EchartsData> getAppoimentData() {
    /**
     * 跳转至消息页面
     * @return 消息页面
     */
    @GetMapping("/toMessageHk")
    public String toMessageHk() {
        return "hk-person/message-hk";
    }

    /**
     * 跳转至商家认证页面
     * @return 商家认证页面
     */
    @GetMapping("/toCertifyHk")
    public String toCertifyHk() {
        return "hk-person/certify-hk";
    }

    /**
     * 跳转至公司认证页面
     * @return 公司认证页面
     */
    @GetMapping("/toCertifyCompany")
    public String toCertifyCompany() {
        return "hk-person/certify-company";
    }

    @PostMapping("/getHKPerson")
    @ResponseBody
    public ResponseResult<HouseKeeper> getHKPerson (
            HttpSession session
    ) {
        ResponseResult<HouseKeeper> result = new ResponseResult<>();
        HouseKeeper hk = hkPersonService.selectHKByPhone(session);
        result.setData(hk);
        return result;
    }

    @PostMapping("/updateHousekeeperInfo")
    @ResponseBody
    public ResponseResult<Void> updateHousekeeperInfo (
        } else {
            filePath = "/upload/list-head.png";
        }
        company.setBusLicPhoto(filePath);
        companyService.certifyCompany(company);
        return new ResponseResult<>();
    }

    @PostMapping("/loadContent")
    @ResponseBody
    public ResponseResult<HouseKeeper> loadContent (
            @RequestParam("param") String param
    ) {
        Integer paramInt = Integer.parseInt(param);
        ResponseResult<HouseKeeper> result = new ResponseResult<>();
        HouseKeeper hk = hkPersonService.getHousekeeperByID(paramInt);
        result.setData(hk);
        return result;
    }

    @PostMapping("/loadComment")
    @ResponseBody
    public ResponseResult<List<Comment>> loadComment (
            @RequestParam("param") String param
    ) {
        Integer paramInt = Integer.parseInt(param);
        ResponseResult<List<Comment>> result = new ResponseResult<>();
        List<Comment> list = commentService.getCommentListByID(paramInt);
        result.setData(list);
        return result;
    }

}


    @PostMapping("/getOrderData")
    @ResponseBody
    public ResponseResult<List<EchartsData>> getOrderData(){
        ResponseResult<List<EchartsData>> response = new ResponseResult<>();
        List<EchartsData> echartsData = adminService.getOrderData();
        response.setData(echartsData);
        return response;
    }

    @PostMapping("/getAppoimentData")
    @ResponseBody
    public ResponseResult<List<EchartsData>> getAppoimentData(){
        ResponseResult<List<EchartsData>> response = new ResponseResult<>();
        List<EchartsData> echartsData = adminService.getAppoimentData();
        response.setData(echartsData);
        return response;
    }

    @PostMapping("/updateUserInfo")
    @ResponseBody
    public ResponseResult<Void> updateUserInfo (
            @RequestParam("id") String id,
            @RequestParam("password") String password,
            @RequestParam("role") String role,
            @RequestParam("status") String status
    ) {
        adminService.updateUserInfo(Integer.parseInt(id), password, Integer.parseInt(role), Integer.parseInt(status));
        return new ResponseResult<>();
    }

    @PostMapping("/getAllCustomerCertify")
    @ResponseBody
    public ResponseResult<List<Customer>> getAllCustomerCertify () {
        ResponseResult<List<Customer>> result = new ResponseResult<>();
        List<Customer> list = adminService.getAllCustomerCertify();
        result.setData(list);
        return result;
    }

    @PostMapping("/getAllHousekeeperCertify")
    @ResponseBody
    public ResponseResult<List<HouseKeeper>> getAllHousekeeperCertify () {
        ResponseResult<List<HouseKeeper>> result = new ResponseResult<>();
        List<HouseKeeper> list = adminService.getAllHousekeeperCertify();
        result.setData(list);
        return result;
    }

    @PostMapping("/getAllCompanyCertify")
     */
    @PostMapping("/loginSuccess")
    @ResponseBody
    public ResponseResult<Void> loginSuccess (
            HttpSession session
    ) throws UserNoLoginException {
        String username = (String) session.getAttribute("username");
        ResponseResult<Void> result = new ResponseResult<>();
        if (StringUtils.isEmpty(username)) {
            throw new UserNoLoginException("用户未登录");
        } else {
            if (session.getAttribute("username").toString() != null) {
                result.setState(200);
            }
        }
        return result;
    }
}

/**
 * Created by IntelliJ IDEA 2020.1.
 * Project: house
 * Description:
 */
@Service
public class OrderServiceImpl implements OrderService {

/**
 * Created by IntelliJ IDEA 2020.1.
 * Project: house
 * Description:
 */
@Service
public class OrderServiceImpl implements OrderService {

    private static int PAGESIZE = 10;

    @Autowired
    private OrderMapper orderMapper;
    @Autowired
    private UserMapper userMapper;
    @Autowired
    private TypeMapper typeMapper;
    @Autowired
    private AppointmentMapper appointmentMapper;

    @Override
    public PageInfo<Order> getAllOrder(HttpSession session, int currentPage) {
        String username = session.getAttribute("username").toString();
        if (StringUtils.isEmpty(username)) {
            throw new UserNoLoginException("用户未登录...");
        } else {
            int cmID = userMapper.selectCmIDByPhone(username);
            if (currentPage <= 0) {
                currentPage = 1;
            }
            PageHelper.startPage(currentPage, PAGESIZE);
            List<Order> list = orderMapper.getAllOrder(cmID);
            PageInfo<Order> pageInfo = new PageInfo<>(list);
            for (Order order : list) {
                String hkName = userMapper.selectHKNameByHkID(order.getHkID());
                order.setHkName(hkName);
                int days = CalcDate.calcDays(order.getOrderBeginTime(), order.getOrderEndTime());
                order.setOrderDur(days);
            }
            return pageInfo;
        }
    }

    @Override
    public Order getOrderByID(int id) {
 * Created by IntelliJ IDEA 2020.1.
 * Project: house
 * Description:首页Service实现类
 */
@Service
public class IndexServiceImpl implements IndexService {

    @Autowired
    private IndexMapper indexMapper;
    @Autowired
    private TypeMapper typeMapper;
    @Autowired
    private OrderMapper orderMapper;
    @Autowired
    private HKPersonMapper hkPersonMapper;
    @Autowired
    private UserMapper userMapper;

    @Override
    public List<Type> getAllType() {
        List<Type> list = new ArrayList<Type>();
        list = indexMapper.getAllType();
        return list;
    }

    @Override
    public List<Type> getAllSmallType(Integer type_id) {
        return indexMapper.getAllSmallType(type_id);
    }

    @Override
    public List<HouseKeeper> getTopHousekeeper(int type) {
        List<Integer> hkIDList = orderMapper.getTopOrderByTypeID(type);
        List<HouseKeeper> list = new ArrayList<>();
        for (int i : hkIDList) {
            HouseKeeper houseKeeper =  hkPersonMapper.getHousekeeperByID(i);
            list.add(houseKeeper);
        }
        for (HouseKeeper hk : list) {
            String hkName = indexMapper.getCompanyNameByID(hk.getCompanyID());
            hk.setCompanyName(hkName);
        }
        return list;
    @Autowired
    private TypeMapper typeMapper;
    @Autowired
    private HKPersonMapper hkPersonMapper;

    @Override
    public Integer insertAppointment(Appointment appointment, String username) throws AppointFailedException, UserNoLoginException {
        Integer cmID = appMapper.getCustomerIDByUsername(username);
        if (cmID == null) {
            throw new UserNoLoginException("用户未登录!");
        }
        appointment.setCmID(cmID);
        Integer result = appMapper.insertAppointment(appointment);
        if (result > 0) {
            return result;
        } else {
            throw new AppointFailedException("预约失败!");
        }
    }

    @Override
    public List<Appointment> getStatusApp(HttpSession session, int status) throws UserNoLoginException {
        int hkID = 0;
        if (session == null) {
            throw new UserNoLoginException("用户未登录");
        } else {
            String username = session.getAttribute("username").toString();
            hkID = userMapper.selectHKIDByPhone(username);
        }
        List<Appointment> list = appMapper.getStatusApp(status);
        for (Appointment app : list) {
            List<Integer> applyList = JsonUtil.json2List(app.getApplyJson(), Integer.class);
            app.setApplyList(applyList);
            app.setHkID(hkID);
        }
        return list;
    }

    @Override
    public PageInfo<Appointment> getStatusApp(HttpSession session, int status,int currentPage) throws UserNoLoginException {
        int hkID = 0;
        if (session == null) {

    @RequestMapping("/getTopRepair")
    @ResponseBody
    public ResponseResult<List<HouseKeeper>> getTopRepair () {
        ResponseResult<List<HouseKeeper>> result = new ResponseResult<>();
        List<HouseKeeper> list = indexService.getTopHousekeeper(9);
        result.setData(list);
        return result;
    }

    @RequestMapping("/getTopMove")
    @ResponseBody
    public ResponseResult<List<HouseKeeper>> getTopMove () {
        ResponseResult<List<HouseKeeper>> result = new ResponseResult<>();
        List<HouseKeeper> list = indexService.getTopHousekeeper(13);
        result.setData(list);
        return result;
    }

    @RequestMapping("/getRecommend")
    @ResponseBody
    public ResponseResult<List<HouseKeeper>> getRecommend (
            HttpSession session
    ) {
        ResponseResult<List<HouseKeeper>> result = new ResponseResult<>();
        List<HouseKeeper> list = indexService.getRecommend(session);
        result.setData(list);
        return result;
    }

    @PostMapping("/getTypeID")
    @ResponseBody
    public ResponseResult<Integer> getTypeID (
            @RequestParam("param") String param
    ) {
        ResponseResult<Integer> result = new ResponseResult<>();
        int id = indexService.getTypeID(param);
        result.setData(id);
        return result;
    }

}


    @Override
    public Integer updatePassword(HttpSession session, String oldPassword, String newPassword) throws UserNoLoginException, PasswordIsErrorException {
        Integer result = 0;
        String username = new String();
        if (session == null) {
            throw new UserNoLoginException("用户未登录");
        } else {
            username = session.getAttribute("username").toString();
            String tempPwd = userMapper.getPasswordByUsername(username);
            if (!tempPwd.equals(oldPassword)) {
                throw new PasswordIsErrorException("原始密码填写错误!");
            } else {
                userMapper.updatePassword(username, newPassword);
                result = adminMapper.updatePassword(username, newPassword);
            }
        }
        return result;
    }

}

/**
 * Created by IntelliJ IDEA 2020.1.
 * Project: house
 * Description:预约Controller
 */
@Controller()
@RequestMapping("/app")
public class AppointmentController extends BaseController{

    @Autowired
    private AppointmentService appService;

    /**
     * 跳转我的预约页面
    public ResponseResult<Integer> userLogin(
            @RequestParam("username") String username,
            @RequestParam("password") String password,
            @RequestParam("vertifyCode") String vertifyCode,
            HttpSession session
    ) {
        System.out.println("前台输入验证码:" + vertifyCode);

        ResponseResult<Integer> response = new ResponseResult<>();

        // 从session中获取之前保存的验证码跟前台传来的验证码进行匹配
        Object kaptcha = session.getAttribute(RANDOMCODEKEY);

        if(!vertifyCode.equals(kaptcha)){
            response.setState(502);
        }

        Boolean result = userService.login(username, password);

        if (result) {
            System.out.println("用户存在,登录成功");
            response.setData(userService.getLoginRole(username));
        }

        session.setAttribute("username", username);
        session.setAttribute("role", userService.getLoginRole(username));

        return response;
    }

    /**
     * 退出登录
     * @param session
     * @return
     */
    @GetMapping("/logout")
    public String userLogout (HttpSession session) {
        session.removeAttribute("username");
        session.invalidate();
        return "login";
    }

    /**
     * 登录成功
     * @param session
     * @return
     * @throws UserNoLoginException
     */
    @PostMapping("/loginSuccess")
    @ResponseBody
    public ResponseResult<Void> loginSuccess (
            HttpSession session
    ) throws UserNoLoginException {
        String username = (String) session.getAttribute("username");
    public String getSingleMessage(Integer id) {
        return personMapper.getSingleMessage(id);
    }

    @Override
    public Integer deleteSingleMessage(Integer id) {
        return personMapper.deleteSingleMessage(id);
    }
}

/**
 * Created by IntelliJ IDEA 2020.1.
 * Project: house
 * Description:订单控制类
 */
@Controller
@RequestMapping("/order")
public class OrderController extends BaseController {

    @Autowired
    private OrderService orderService;
    @Autowired
    private CommentService commentService;

    /**
     * 跳转至我的订单页面
     * @return 我的订单页面
        int cmID = 0;
        String username = (String) session.getAttribute("username");
        if (StringUtils.isEmpty(username)) {
            throw new UserNoLoginException("用户未登录");
        } else {
            cmID = userMapper.selectCmIDByPhone(username);
        }
        List<Appointment> list = appMapper.selectAppListByCmID(cmID);
        for (Appointment app : list) {
            List<Integer> applyList = JsonUtil.json2List(app.getApplyJson(), Integer.class);
            app.setApplyList(applyList);
        }
        return list;
    }

    @Override
    public PageInfo<Appointment> getAllAppCustomer(HttpSession session, int currentPage) {
        int cmID = 0;
        String username = (String) session.getAttribute("username");
        if (StringUtils.isEmpty(username)) {
            throw new UserNoLoginException("用户未登录");
        } else {
            cmID = userMapper.selectCmIDByPhone(username);
            if (currentPage <= 0) {
                currentPage = 1;
            }
            PageHelper.startPage(currentPage, PAGESIZE);
            List<Appointment> list = appMapper.selectAppListByCmID(cmID);
            PageInfo<Appointment> pageInfo = new PageInfo<>(list);
            for (Appointment app : list) {
                List<Integer> applyList = JsonUtil.json2List(app.getApplyJson(), Integer.class);
                app.setApplyList(applyList);
            }
            return pageInfo;
        }
    }

    /**
     * 家政人员获得预约列表
     * @param session
     * @return
     */
    @Override
    public PageInfo<Appointment> getAllApp(HttpSession session, int currentPage) {
        int hkID = 0;
        String username = (String)session.getAttribute("username");
        if (StringUtils.isEmpty(username)) {
            throw new UserNoLoginException("用户未登录");
        } else {
            hkID = userMapper.selectHKIDByPhone(username);

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值