基于javaweb+mysql的springboot送水公司管理系统(java+springboot+html+mybatis+mysql)

基于javaweb+mysql的springboot送水公司管理系统(java+springboot+html+mybatis+mysql)

私信源码获取及调试交流

运行环境

Java≥8、MySQL≥5.7

开发工具

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

适用

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

功能说明

基于javaweb的SpringBoot送水公司管理系统(java+springboot+html+mybatis+mysql)

项目介绍

这个项目是一个基于SpringBoot+MyBatis的送水公司管理系统

管理员权限包括: 客户管理 送水工管理 送水历史管理 计算工资 统计送水数量

环境需要

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

技术栈

1.后端:SpringBoot+Mybatis+Mysql 2.前端:html+css+javascript

使用说明

  1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件; 2. 使用IDEA/Eclipse/MyEclipse导入项目,导入成功后请执行maven clean;maven install命令,然后运行; 3. 将项目中application.yml配置文件中的数据库配置改为自己的配置; 4. 运行项目,在浏览器中输入http://localhost:8091/ 注意:端口不要修改,否则会有异常 管理员账户:admin/admin
     * 用户在页面上点击“修改”按钮,完成数据回显
     * 步骤:
     * 1 根据ID查询对应的客户信息
     * 2 将客户信息渲染到“修改客户”页面
     * 3 返回“修改客户”页面
     * @param cid 客户id
     * @param model
     * @return 修改客户
     */
    @RequestMapping("/preUpdateCust/{cid}")
    public String preUpdateCustomer(@PathVariable("cid") Integer cid,Model model) {
        log.info("pre update customer cid = "+cid);
        Customer customer = customerService.getCustomerById(cid);
        model.addAttribute("customer",customer);
        return "customerUpdate";
    }

    /**
     * 在“修改客户”页面点击“提交”按钮,处理“修改客户”的请求
     * 修改成功重新执行查询客户列表,显示修改之后的客户信息
     * @param customer “修改客户”页面采集的客户信息
     * @return 客户列表
     */
    @RequestMapping(value="/updateCust",method = RequestMethod.POST)
    public String updateCustomer(Customer customer) {
        log.info("update Customer "+customer);
        int rows = customerService.updateCustomer(customer);
        log.info("update customer rows = "+rows);
        return "redirect:/cust/listCust";
    }
}

     * @return “添加送水工”页面
     */
    @RequestMapping("/preSaveWorker")
    public String preSaveWorker() {
        return "workerSave";
    }

    /**
     * 在“添加送水工”页面点击“提交”按钮,添加送水工信息
     * 步骤:
     * 1 上传送水工照片
     * 1.1 获取上传文件的名称
     * 1.2 获取上传文件后缀的索引
     * 1.3 根据索引获取上传的文件名后缀,例如:.png
     * 1.4 获取上传文件的前缀,例如:15456435635。注意前缀命名使用1970-01-01距离现在的毫秒数
     * 1.5 判断上传路径是否存在,如果不存在创建改路径。例如: D:/upLoad/picture/
     * 1.6 拼接上传文件的前缀和后缀名称。例如:15456435635.png。然后创建对应的File对象
     * 1.7 上传文件
     * 1.8 将凭借的上传文件名称设置到Worker对象中
     * 2 调用WorkerService对象的saveWorker方法,将送水工信息保存到数据库中
     * 3 重定向到客户列表,显示新添加的送水工信息
     * @param worker 表单采集的新送水工信息
     * @param file 封装了浏览器上传的图片数据
     * @return 重定向到客户列表,显示新添加的送水工信息
     */
    @RequestMapping(value="/saveWorker",method = RequestMethod.POST)
    public String saveWorker(Worker worker, MultipartFile file) {
        uploadFile(worker, file);
        // 将送水工信息持久化到数据库
        workerService.saveWorker(worker);
        return "redirect:/worker/workerList";
    }

    private void uploadFile(Worker worker, MultipartFile file) {
        // 条件成立:表示客户上传了文件
        if (null != file) {
            // 获取上传文件名称。例如:WeChart.png
            String fileName = file.getOriginalFilename();
            // 获取上传文件的后缀索引号
            int suffixIndex = fileName.lastIndexOf(".");
            // 根据索引获取后缀。例如:.png
            String suffix = StringUtils.substring(fileName, suffixIndex);
            // 获取文件前缀(使用当前系统时间的纳秒)
            long prefix = System.nanoTime();
    /**
     * 自动装配送水历史管理业务逻辑对象HistoryService
     */
    @Autowired
    private HistoryService historyService;
    /**
     * 送水历史需要用到客户信息,自动装配客户业务逻辑
     */
    @Autowired
    private CustomerService customerService;
    /**
     * 送水历史需要用到客户信息,自动装配送水工业务逻辑
     */
    @Autowired
    private WorkerService workerService;

    /**
     * 点击“添加”按钮,跳转到“添加送水历史”页面,在送水历史新页面上显示所有的送水工信息和客户信息
     * @param model
     * @return “添加送水历史”页面
     */
    @RequestMapping("/preSaveHis")
    public String preSaveHistory(Model model) {
        // 查询所有的送水工和客户信息
        List<Worker> workerList = workerService.listWorker();
        List<Customer> custList = customerService.listCustomer();
        // 将送水工信息和客户信息渲染到前端页面上
        model.addAttribute("custList",custList);
        model.addAttribute("workerList",workerList);
        return "historySave";
    }

    /**
     * 在“添加送水历史页面”点击“提交”按钮,将送水历史信息持久化(insert插入)到数据库中,然后返回“送水历史列表”,重新
     * 查询送水历史列表显示新添加的数据
     * 步骤:
     * 1 将客户ID和送水工ID注入到History对象
     * 2 调用HistoryService对象的saveHistory方法将表单采集的数据持久化到数据库
     * 3 重新“查询送水历史信息”,显示新添加的数据
     * @param  workerId 表单采集的送水工编号
     * @param  custId 表单采集的客户编号
     * @param history 表单采集的送水历史信息
     * @return 重定向到送水历史列表路径
    private SalaryService salaryService;

    /**
     * 点击“计算工资”按钮,查询所有送水工的工资,然后将工资渲染到前端页面,并返回
     * @param model
     * @return 计算工资列表页面
     */
    @RequestMapping("/calcSalary")
    public String calcWorkerSalary(Model model) {
        List<Salary> salaryList = salaryService.listCalcSalary();
        log.info("calc worker salary list size = "+salaryList.size());
        model.addAttribute("salaryList",salaryList);
        return "salaryList";
    }

    /**
     * 在“计算工资”页面表单输入开始时间和结束时间统计工资
     * @param startDate 开始时间
     * @param endDate 结束时间
     * @param model
     * @return
     */
    @RequestMapping("/searchCalcSalay")
    public String searchWorkerCalcSalary(String startDate,String endDate,Model model) {
        log.info("start date = "+startDate);
        log.info("end date = "+endDate);
        List<Salary> salaryList = salaryService.listCalcSalaryByCondition(startDate, endDate);
        log.info("search calc list size = "+salaryList.size());
        model.addAttribute("salaryList",salaryList);
        // 修复BUG,将搜索条件传入到前端页面
        model.addAttribute("startDate",startDate);
        model.addAttribute("endDate",endDate);
        return "salaryList";
    }

}

     * 该方法用来处理前端浏览器的登录请求,登录成功跳转到"送水工管理系统"主页面,登录失败返回index.html页面
     * 步骤:
     * 1 调用业务逻辑对象(AccountService)的login方法判断登录是否成功
     * 2 登录成功跳转到"送水工管理系统"主页面
     * 3 登录失败返回index.html页面,并给出提示"用户名或者密码错误"
     * @param userName 浏览器表单采集的用户名
     * @param userPwd  浏览器表单采集的密码
     * @param model 用来在视图层和控制层之间传递数据的对象
     * @return 登录成功跳转到"送水工管理系统"主页面,登录失败返回index.html页面
     */
    @RequestMapping(value="/login",method = RequestMethod.POST)
    public String login(String userName, String userPwd, Model model, HttpSession session) {
        boolean result = accountService.login(userName, userPwd);
        // 条件成立:登录成功,否则登录失败
        if(result) {
            //登陆成功,将表单输入的用户名传递到前端页面
            session.setAttribute("currentUser",userName);
            // 登录成功跳转到主页面
            return "waterMainMenu";
        } else {
            model.addAttribute("loginFail","用户名或者密码错误");
            return "index";
        }
    }

    /***
     * 退出系统
     * @return
     */
    @RequestMapping("/logout")
    public String logout() {
        return "index";
    }

    /***
     * 跳转到修改密码页面
     * @return
     */
    @RequestMapping("/changePwd")
    public String changePwd() {
        return "changePwd";
    }

    /**
     * 修改密码
     * @param
     * @return
     */
    @RequestMapping(value="/updatePassword",method = RequestMethod.POST)
    public String updatePassword(String oldPassword,String confirmPassword, Model model, HttpSession session) {
        String username = (String) session.getAttribute("currentUser");

        boolean checkOldPwd = accountService.checkOldPassword(username,oldPassword);
            return "changePwd";
        }
        // 将新密码信息持久化到数据库
        int count = accountService.updateAccount(username,confirmPassword);
        if (count>0){
            model.addAttribute("changePwdMsg","密码修改成功");
            return "changePwd";
        }else {
            model.addAttribute("changePwdMsg","密码修改失败");
            return "changePwd";
        }
    }
}

/**
 * TODO:计算工资的控制器,处理计算工资的请求
 * @version 1.0
 */
@RequestMapping("/salary")
@Controller
@Slf4j
public class SalaryController {

    /**
     * 自动装配计算工资业务逻辑
     */
    @Autowired
    private SalaryService salaryService;

    /**
     * 点击“计算工资”按钮,查询所有送水工的工资,然后将工资渲染到前端页面,并返回
     * @param model
     * @return 计算工资列表页面
        Worker worker = workerService.getWorkerById(wid);
        model.addAttribute("worker",worker);
        return "workerUpdate";
    }

    @RequestMapping(value="/updateWorker",method = RequestMethod.POST)
    public String updateWorker(Worker worker, MultipartFile file) {
        // 条件成立:表示客户上传了文件
        uploadFile(worker, file);
        // 将送水工信息持久化到数据库
        workerService.updateWorker(worker);
        return "redirect:/worker/workerList";
    }

    @RequestMapping(value="/adjustSalary",method = RequestMethod.POST)
    @ResponseBody
    public String adjustWorkerSalary(Integer wid,Integer workerSalary) {
        log.info("adjustWorkerSalary wid = "+wid);
        log.info("adjustWorkerSalary workerSalary = "+wid);
        int rows = workerService.adjustSalary(wid, workerSalary);
        log.info("adjustWorkerSalary rows = "+rows);
        if (rows > 0) {
            return "OK";
        } else {
            return "Fail";
        }
    }
}

     */
    @Value("${location}")
    private String location;

    /**
     * 用户点击侧边栏的“客户管理”,处理该请求,将所有的客户信息渲染到“客户列表”页面,最后返回“客户列表”页面
     * @param model
     * @return 返回“客户列表”页面
     */
    @RequestMapping("/workerList")
    public String listWorker(Model model) {
        List<Worker> workerList = workerService.listWorker();
        model.addAttribute("workerList",workerList);
        return "workerList";
    }

    /**
     * 点击“添加”按钮,跳转到“添加送水工”页面
     * @return “添加送水工”页面
     */
    @RequestMapping("/preSaveWorker")
    public String preSaveWorker() {
        return "workerSave";
    }

    /**
     * 在“添加送水工”页面点击“提交”按钮,添加送水工信息
     * 步骤:
     * 1 上传送水工照片
     * 1.1 获取上传文件的名称
     * 1.2 获取上传文件后缀的索引
     * 1.3 根据索引获取上传的文件名后缀,例如:.png
     * 1.4 获取上传文件的前缀,例如:15456435635。注意前缀命名使用1970-01-01距离现在的毫秒数
     * 1.5 判断上传路径是否存在,如果不存在创建改路径。例如: D:/upLoad/picture/
     * 1.6 拼接上传文件的前缀和后缀名称。例如:15456435635.png。然后创建对应的File对象
     * 1.7 上传文件
     * 1.8 将凭借的上传文件名称设置到Worker对象中
     * 2 调用WorkerService对象的saveWorker方法,将送水工信息保存到数据库中
     * 3 重定向到客户列表,显示新添加的送水工信息
     * @param worker 表单采集的新送水工信息
     * @param file 封装了浏览器上传的图片数据
     * @return 重定向到客户列表,显示新添加的送水工信息
     */
    @RequestMapping(value="/saveWorker",method = RequestMethod.POST)
    public String saveWorker(Worker worker, MultipartFile file) {
        uploadFile(worker, file);
     * 2 调用HistoryService对象的saveHistory方法将表单采集的数据持久化到数据库
     * 3 重新“查询送水历史信息”,显示新添加的数据
     * @param  workerId 表单采集的送水工编号
     * @param  custId 表单采集的客户编号
     * @param history 表单采集的送水历史信息
     * @return 重定向到送水历史列表路径
     */
    @RequestMapping(value = "/saveHis",method = RequestMethod.POST)
    public String saveHistory(Integer workerId,Integer custId,History history) {
        log.info("workerId = "+workerId);
        log.info("custId = "+custId);
        log.info("history = "+history);
        Worker worker = new Worker();
        worker.setWid(workerId);

        Customer customer = new Customer();
        customer.setCid(custId);
        // History注入送水功和客户信息
        history.setWorker(worker);
        history.setCustomer(customer);
        // 持久化History对象
        // rows 返回执行insert 语句受影响行数
        int rows = historyService.saveHistory(history);
        log.info("save History rows = "+rows);
        return "redirect:/history/listHis";
    }

    /**
     * 点击“送水历史管理”查询所有的送水历史信息
     * 返回“送水历史列表”页面
     * @param model
     */
    @RequestMapping("/listHis")
    public String listHistory(Model model) {
        List<History> hisList = historyService.listHistory();
        model.addAttribute("hisList",hisList);
        log.info("history size "+hisList.size());
        return "historyList";
    }

    /**
     * 在“送水历史列表”页面,点击“修改”按钮,根据ID查询对应的“送水历史”信息,然后将信息渲染到前端页面
     * 步骤:

/**
 * TODO:计算工资的控制器,处理计算工资的请求
 * @version 1.0
 */
@RequestMapping("/salary")
@Controller
@Slf4j
public class SalaryController {

    /**
     * 自动装配计算工资业务逻辑
     */
    @Autowired
    private SalaryService salaryService;

    /**
     * 点击“计算工资”按钮,查询所有送水工的工资,然后将工资渲染到前端页面,并返回
     * @param model
     * @return 计算工资列表页面
     */
    @RequestMapping("/calcSalary")
    public String calcWorkerSalary(Model model) {
        List<Salary> salaryList = salaryService.listCalcSalary();
        log.info("calc worker salary list size = "+salaryList.size());
        model.addAttribute("salaryList",salaryList);
        return "salaryList";
    }

    /**
     * 在“计算工资”页面表单输入开始时间和结束时间统计工资
     * @param startDate 开始时间
     * @param endDate 结束时间
     * @param model
     * @return
     */
    @RequestMapping("/searchCalcSalay")
    public String searchWorkerCalcSalary(String startDate,String endDate,Model model) {
        log.info("start date = "+startDate);
        log.info("end date = "+endDate);
        List<Salary> salaryList = salaryService.listCalcSalaryByCondition(startDate, endDate);
        log.info("search calc list size = "+salaryList.size());
     */
    @RequestMapping("/logout")
    public String logout() {
        return "index";
    }

    /***
     * 跳转到修改密码页面
     * @return
     */
    @RequestMapping("/changePwd")
    public String changePwd() {
        return "changePwd";
    }

    /**
     * 修改密码
     * @param
     * @return
     */
    @RequestMapping(value="/updatePassword",method = RequestMethod.POST)
    public String updatePassword(String oldPassword,String confirmPassword, Model model, HttpSession session) {
        String username = (String) session.getAttribute("currentUser");

        boolean checkOldPwd = accountService.checkOldPassword(username,oldPassword);
        if (!checkOldPwd){
            model.addAttribute("changePwdMsg","原密码错误");
            return "changePwd";
        }
        // 将新密码信息持久化到数据库
        int count = accountService.updateAccount(username,confirmPassword);
        if (count>0){
            model.addAttribute("changePwdMsg","密码修改成功");
            return "changePwd";
        }else {
            model.addAttribute("changePwdMsg","密码修改失败");
            return "changePwd";
        }
    }
}

    /**
     * 处理删除请求
     * 步骤:
     * 1 调用CustomerService对象的deleteCustomerById方法根据客户ID删除客户信息
     * 2 打印受影响行数
     * 3 返回客户列表路径,重新执行查询客户列表方法listCustomer,显示删除之后的数据
     * @param cid 前端传入的客户id
     * @return 返回客户列表路径,重新执行查询客户列表方法listCustomer,显示删除之后的数据
     */
    @RequestMapping("/delCust/{cid}")
    public String deleteCustomer(@PathVariable("cid") Integer cid) {
        log.info("delete Customer cid = "+cid);
        int rows = customerService.deleteCustomerById(cid);
        log.info("delte customer rows = "+rows);
        return "redirect:/cust/listCust";
    }

    /**
     * 用户在页面上点击“修改”按钮,完成数据回显
     * 步骤:
     * 1 根据ID查询对应的客户信息
     * 2 将客户信息渲染到“修改客户”页面
     * 3 返回“修改客户”页面
     * @param cid 客户id
     * @param model
     * @return 修改客户
     */
    @RequestMapping("/preUpdateCust/{cid}")
    public String preUpdateCustomer(@PathVariable("cid") Integer cid,Model model) {
        log.info("pre update customer cid = "+cid);
        Customer customer = customerService.getCustomerById(cid);
        model.addAttribute("customer",customer);
        return "customerUpdate";
    }

    /**
     * 在“修改客户”页面点击“提交”按钮,处理“修改客户”的请求
     * 修改成功重新执行查询客户列表,显示修改之后的客户信息
     * @param customer “修改客户”页面采集的客户信息
     * @return 客户列表
     */
    @RequestMapping(value="/updateCust",method = RequestMethod.POST)
 */
@RequestMapping("/salary")
@Controller
@Slf4j
public class SalaryController {

    /**
     * 自动装配计算工资业务逻辑
     */
    @Autowired
    private SalaryService salaryService;

    /**
     * 点击“计算工资”按钮,查询所有送水工的工资,然后将工资渲染到前端页面,并返回
     * @param model
     * @return 计算工资列表页面
     */
    @RequestMapping("/calcSalary")
    public String calcWorkerSalary(Model model) {
        List<Salary> salaryList = salaryService.listCalcSalary();
        log.info("calc worker salary list size = "+salaryList.size());
        model.addAttribute("salaryList",salaryList);
        return "salaryList";
    }

    /**
     * 在“计算工资”页面表单输入开始时间和结束时间统计工资
     * @param startDate 开始时间
     * @param endDate 结束时间
     * @param model
     * @return
     */
    @RequestMapping("/searchCalcSalay")
    public String searchWorkerCalcSalary(String startDate,String endDate,Model model) {
        log.info("start date = "+startDate);
        log.info("end date = "+endDate);
        List<Salary> salaryList = salaryService.listCalcSalaryByCondition(startDate, endDate);
        log.info("search calc list size = "+salaryList.size());
        model.addAttribute("salaryList",salaryList);
     * @param custName 客户名称
     * @param model
     * @return 客户列表页面
     */
    @RequestMapping("/searchCust")
    public String searchCustomer(String custName, Model model) {
        log.info("searchCustomer custName = "+custName);
        List<Customer> custList = customerService.searchCustomer(custName);
        model.addAttribute("custList",custList);
        // 把搜索条件回传到前端页面
        model.addAttribute("searchName",custName);
        return "customerList";
    }

    /**
     * 处理删除请求
     * 步骤:
     * 1 调用CustomerService对象的deleteCustomerById方法根据客户ID删除客户信息
     * 2 打印受影响行数
     * 3 返回客户列表路径,重新执行查询客户列表方法listCustomer,显示删除之后的数据
     * @param cid 前端传入的客户id
     * @return 返回客户列表路径,重新执行查询客户列表方法listCustomer,显示删除之后的数据
     */
    @RequestMapping("/delCust/{cid}")
    public String deleteCustomer(@PathVariable("cid") Integer cid) {
        log.info("delete Customer cid = "+cid);
        int rows = customerService.deleteCustomerById(cid);
        log.info("delte customer rows = "+rows);
        return "redirect:/cust/listCust";
    }

    /**
     * 用户在页面上点击“修改”按钮,完成数据回显
     * 步骤:
     * 1 根据ID查询对应的客户信息
     * 2 将客户信息渲染到“修改客户”页面
     * 3 返回“修改客户”页面
     * @param cid 客户id
     * @param model
     * @return 修改客户
     */
    @RequestMapping("/preUpdateCust/{cid}")
    public String preUpdateCustomer(@PathVariable("cid") Integer cid,Model model) {
        log.info("pre update customer cid = "+cid);
        Customer customer = customerService.getCustomerById(cid);
        model.addAttribute("customer",customer);
        return "customerUpdate";
    }

    /**
    /**
     * 在“添加送水工”页面点击“提交”按钮,添加送水工信息
     * 步骤:
     * 1 上传送水工照片
     * 1.1 获取上传文件的名称
     * 1.2 获取上传文件后缀的索引
     * 1.3 根据索引获取上传的文件名后缀,例如:.png
     * 1.4 获取上传文件的前缀,例如:15456435635。注意前缀命名使用1970-01-01距离现在的毫秒数
     * 1.5 判断上传路径是否存在,如果不存在创建改路径。例如: D:/upLoad/picture/
     * 1.6 拼接上传文件的前缀和后缀名称。例如:15456435635.png。然后创建对应的File对象
     * 1.7 上传文件
     * 1.8 将凭借的上传文件名称设置到Worker对象中
     * 2 调用WorkerService对象的saveWorker方法,将送水工信息保存到数据库中
     * 3 重定向到客户列表,显示新添加的送水工信息
     * @param worker 表单采集的新送水工信息
     * @param file 封装了浏览器上传的图片数据
     * @return 重定向到客户列表,显示新添加的送水工信息
     */
    @RequestMapping(value="/saveWorker",method = RequestMethod.POST)
    public String saveWorker(Worker worker, MultipartFile file) {
        uploadFile(worker, file);
        // 将送水工信息持久化到数据库
        workerService.saveWorker(worker);
        return "redirect:/worker/workerList";
    }

    private void uploadFile(Worker worker, MultipartFile file) {
        // 条件成立:表示客户上传了文件
        if (null != file) {
            // 获取上传文件名称。例如:WeChart.png
            String fileName = file.getOriginalFilename();
            // 获取上传文件的后缀索引号
            int suffixIndex = fileName.lastIndexOf(".");
            // 根据索引获取后缀。例如:.png
            String suffix = StringUtils.substring(fileName, suffixIndex);
            // 获取文件前缀(使用当前系统时间的纳秒)
            long prefix = System.nanoTime();
            // 创建服务器上传路径的File对象
            File serverPath = new File(location);
            // 条件成立:表示服务器存储上传文件的路径不存在,需要创建
            if (!serverPath.exists()) {
                serverPath.mkdirs();
            }
            // 拼接上传的文件。前缀(15456435635)+后缀(.png) 15456435635.png
            String uploadFile = prefix + suffix;
            // 创建上传的文件在服务器磁盘的真实路径
            // 参数1:父路径。例如:D:/upLoad/picture/
            // 参数2:上传的文件名。例如: 15456435635.png
            File uploadFilePath = new File(serverPath, uploadFile);
            // 上传文件
            try {
                file.transferTo(uploadFilePath);
            } catch (IOException e) {
                e.printStackTrace();
     * 2 将客户信息渲染到“修改客户”页面
     * 3 返回“修改客户”页面
     * @param cid 客户id
     * @param model
     * @return 修改客户
     */
    @RequestMapping("/preUpdateCust/{cid}")
    public String preUpdateCustomer(@PathVariable("cid") Integer cid,Model model) {
        log.info("pre update customer cid = "+cid);
        Customer customer = customerService.getCustomerById(cid);
        model.addAttribute("customer",customer);
        return "customerUpdate";
    }

    /**
     * 在“修改客户”页面点击“提交”按钮,处理“修改客户”的请求
     * 修改成功重新执行查询客户列表,显示修改之后的客户信息
     * @param customer “修改客户”页面采集的客户信息
     * @return 客户列表
     */
    @RequestMapping(value="/updateCust",method = RequestMethod.POST)
    public String updateCustomer(Customer customer) {
        log.info("update Customer "+customer);
        int rows = customerService.updateCustomer(customer);
        log.info("update customer rows = "+rows);
        return "redirect:/cust/listCust";
    }
}

/**
 * TODO
 *
    public String deleteCustomer(@PathVariable("cid") Integer cid) {
        log.info("delete Customer cid = "+cid);
        int rows = customerService.deleteCustomerById(cid);
        log.info("delte customer rows = "+rows);
        return "redirect:/cust/listCust";
    }

    /**
     * 用户在页面上点击“修改”按钮,完成数据回显
     * 步骤:
     * 1 根据ID查询对应的客户信息
     * 2 将客户信息渲染到“修改客户”页面
     * 3 返回“修改客户”页面
     * @param cid 客户id
     * @param model
     * @return 修改客户
     */
    @RequestMapping("/preUpdateCust/{cid}")
    public String preUpdateCustomer(@PathVariable("cid") Integer cid,Model model) {
        log.info("pre update customer cid = "+cid);
        Customer customer = customerService.getCustomerById(cid);
        model.addAttribute("customer",customer);
        return "customerUpdate";
    }

    /**
     * 在“修改客户”页面点击“提交”按钮,处理“修改客户”的请求
     * 修改成功重新执行查询客户列表,显示修改之后的客户信息
     * @param customer “修改客户”页面采集的客户信息
     * @return 客户列表
     */
    @RequestMapping(value="/updateCust",method = RequestMethod.POST)
    public String updateCustomer(Customer customer) {
        log.info("update Customer "+customer);
        int rows = customerService.updateCustomer(customer);
        log.info("update customer rows = "+rows);
        return "redirect:/cust/listCust";
    }
}


/**
 * TODO
 *
 * @version 1.0
 */
@Controller
@RequestMapping("/worker")
@Slf4j
public class WorkerController {

    @Autowired
    private WorkerService workerService;

    /**
     * 读取yml配置文件的路径
     */
    @Value("${location}")
    private String location;

    /**
     * 用户点击侧边栏的“客户管理”,处理该请求,将所有的客户信息渲染到“客户列表”页面,最后返回“客户列表”页面
     * @param model
     * @return 返回“客户列表”页面
     */
    @RequestMapping("/workerList")
    public String listWorker(Model model) {
        List<Worker> workerList = workerService.listWorker();
        model.addAttribute("workerList",workerList);
        return "workerList";
    }

    /**
     * 点击“添加”按钮,跳转到“添加送水工”页面
     * @return “添加送水工”页面

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

  • 9
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值