首页 > 数据库 >Java项目:小程序公交信息在线查询系统(java+SSM+Vue+ElementUI+mysql)

Java项目:小程序公交信息在线查询系统(java+SSM+Vue+ElementUI+mysql)

时间:2024-03-25 12:33:11浏览次数:31  
标签:map Vue return String ElementUI param Java public httpSession

源码获取:俺的博客首页 "资源" 里下载! 

项目介绍

基于SSM+Vue的小程序公交信息在线查询系统小程序

角色:管理员、用户两种角色,分为小程序端和后台管理两部分;

用户:用户通过小程序登录页面可以填写用户名和密码等信息进行登录操作,登录成功后,进入首页可以查看首页、线路信息、站点信息、周边信息、新闻公告、我的 等功能模块,进行相对应操作

管理员:管理员登录成功后进入到系统操作界面,可以对个人中心、用户管理、线路信息管理、站点分类管理、站点信息管理、周边分类管理、周边信息管理、系统管理等功能模块进行相对应操作。


环境需要

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


技术栈

后端:Spring+SpringMvc+Mybaits

前端:Vue


使用说明

后端运行:
1. 使用Navicat或者其它工具,在mysql中创建对应sql文件名称的数据库,并导入项目的sql文件;
2. 使用IDEA/Eclipse/MyEclipse导入后端项目ssm3957q,导入成功后请执行maven clean;maven install命令;
3. 将项目中application.yml配置文件中的数据库配置改为自己的配置;
4.运行项目,在浏览器中输入地址:
后台地址:http://localhost:8080/ssm3957q/admin/dist/index.html#/login
管理员:admin/123456
用户:用户1/123456
小程序端运行:
1.使用微信开发者工具导入小程序端源码mp-weixin;
2.运行项目,运行成功后输入用户名密码;
用户:用户1/12345shou

首页展示:

路线查询展示:

站点查询展示:

周边分类查询:

我的信息管理:

小程序角色登录展示:

后台管理展示:

用户信息管理展示:

线路信息展示:

站点分类展示:

个人中心Controller:

/**
 * 个人中心Controller
 */
@Controller
public class UserInforController {
	
    @Autowired
    private UserInforServiceImpl userInforService = null;

    /**
     * 修改密码操作
     * @param oldPassword
     * @param newPassword
     * @param rePassword
     * @param httpSession
     * @return
     */
    @RequestMapping("changePassword.do")
    @ResponseBody
    public Map<String, String> changePassword(String oldPassword, String newPassword,
                                              String rePassword, HttpSession httpSession){
        HashMap<String, String> map = new HashMap<String, String>();
        if (newPassword.equals(rePassword)){
            SystemManager admin = (SystemManager) httpSession.getAttribute("admin");
            String encodeByMD5 = MD5Utils.encodeByMD5(oldPassword);
            if (encodeByMD5.equals(admin.getSmPassword())){
                String newPasswords = MD5Utils.encodeByMD5(newPassword);
                admin.setSmPassword(newPasswords);
                userInforService.updateSystemManagePassword(admin.getSmId(),admin);
                map.put("type","success");
                map.put("msg","密码修改成功");
                return map;
            }else{
                map.put("type","error");
                map.put("msg","原密码错误");
                return map;
            }
        }else{
            map.put("type","error");
            map.put("msg","两次密码不一致");
            return map;
        }
    }
    
    /**
     * 员工修改个人密码
     * @param oldPassword
     * @param newPassword
     * @param rePassword
     * @param httpSession
     * @return
     */
    @RequestMapping("changeEmployeePassword.do")
    @ResponseBody
    public Map<String, String> changeEmployeePassword(String oldPassword, String newPassword,
                                              String rePassword, HttpSession httpSession){
        HashMap<String, String> map = new HashMap<String, String>();
        if (newPassword.equals(rePassword)){
            Integer eid = (Integer) httpSession.getAttribute("employeeId");
            try {
                userInforService.updateEmployeePassword(eid, oldPassword, newPassword);
                map.put("type","success");
                map.put("msg","密码修改成功");
                return map;
            } catch (CustomException e) {
                map.put("type","error");
                map.put("msg","原密码错误");
                return map;
            }
        }else{
            map.put("type","error");
            map.put("msg","两次密码不一致");
            return map;
        }
    }

    /**
     * 查看个人信息
     * @param httpSession
     * @return
     */
    @RequestMapping("inforEmployee.do")
    public @ResponseBody EmployeeCustomVo getInforEmployee(HttpSession httpSession){
        Integer id = (Integer) httpSession.getAttribute("employeeId");
        EmployeeCustomVo employeeCustomVo = userInforService.getInforEmployee(id);
        return employeeCustomVo;
    }

    /**
     * 修改个人信息
     * @param httpSession
     * @param employee
     * @return
     */
    @ResponseBody
    @RequestMapping("updateInforEmployee.do")
    public Message updateInforEmployee(HttpSession httpSession, Employee employee){
        Integer id = (Integer) httpSession.getAttribute("employeeId");
        employee.seteId(id);
        if(userInforService.updateEmploueeById(id,employee)<=0) {
        	return Message.error("修改信息失败");
        }
       return Message.success();
    }



    /**
     * 个人工资信息
     * @param pageNum
     * @param limit
     * @param year
     * @param httpSession
     * @return
     * @throws Exception
     */
    @RequestMapping("employeeSalaryList.do")
    @ResponseBody
    public EmployeeSalaryVO findSelective(
            @RequestParam(value="page", defaultValue="1")int pageNum,
            @RequestParam(value="limit", defaultValue="10") int limit,
            @RequestParam(value="year", defaultValue="1") String year,
            HttpSession httpSession) throws Exception {

        Integer eId = (Integer) httpSession.getAttribute("employeeId");
        //pageNum:起始页面  pageSize:每页的大小
        PageHelper.startPage(pageNum,limit);
        //查找条件,一定要紧跟在startPage后
        List<Salary> salaryList = userInforService.getEmployeeSalaryList(eId, year);

        PageInfo pageResult = new PageInfo(salaryList);

        //设置前台需要的数据
        EmployeeSalaryVO employeeSalaryVO = new EmployeeSalaryVO();
        employeeSalaryVO.setCode(0);
        employeeSalaryVO.setMsg("");
        employeeSalaryVO.setCount((int) pageResult.getTotal());
        employeeSalaryVO.setData(pageResult.getList());
        return employeeSalaryVO;
    }

}

管理员和员工登陆控制:

/**
 * @Author: admin
 * @Description: 管理员和员工登陆控制
 **/
@Controller
public class LoginController {
    @Autowired
    private LoginServiceImpl loginService = null;
    /**
     * @Author: admin
     * @Description: 验证码变更
     * @Date: 14:33 2021/10/5
     * @Param: [request, response]
     * @Return: void
     **/
    @RequestMapping(value = "/changeCode.do")
    @ResponseBody
    public void getIdentifyingCode(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException
    {
        // 验证码存储在session的identifyingCode,属性中
        CaptchaUtil.outputCaptcha(request, response);
    }

    // 获取员工登陆界面
    @RequestMapping("/")
    public String getLoginPage(){
        return "employee/login.html";
    }

    // 获取管理员登陆界面
    @RequestMapping("/admin.do")
    public String getAdminLoginPage(HttpServletRequest request){
    	String realPath = request.getServletContext().getRealPath("/");
    	request.getSession().setAttribute("realPath", realPath);
        return "admin/adminLogin.html";
    }
    
    
    /**
     * 员工登录操作
     * @param model
     * @param httpSession
     * @param username
     * @param password
     * @param identifyingcode
     * @return
     */
    @RequestMapping(value = "/employeeLogin.do")
    @ResponseBody
    public Message employeeLogin(HttpSession httpSession, String username,
                             String password, String identifyingcode)
    {
    	if(StringUtils.isEmpty(username)) {
    		return Message.error("请填写工号");
    	}
    	if(StringUtils.isEmpty(password)) {
    		return Message.error("请填写密码");
    	}
    	if(StringUtils.isEmpty(identifyingcode)) {
    		return Message.error("请填写验证码");
    	}
        String code = (String) httpSession.getAttribute("identifyingCode");
        if(!identifyingcode.equalsIgnoreCase(code)){
        	return Message.error("验证码错误");  
        }
        Employee employee = loginService.findEmployeeByIdAndPassword(username, password);
        if(employee==null) {
        	return Message.error("工号或密码错误");
        	
        } 
        httpSession.setAttribute("employeeId",employee.geteId());
       return Message.success("员工登录成功");
    }

    @RequestMapping(value = "/loginSuccess.do")
    public String loginSucceses(Model model) throws Exception
    {
        return "employee/index.html";
    }

    /**
     * 管理员登录操作
     * @param model
     * @param httpSession
     * @param username
     * @param password
     * @param identifyingcode
     * @return
     */
    @RequestMapping(value = "/adminLogin.do")
    @ResponseBody
    public Message adminLogin(HttpSession httpSession, String username,
                                            String password, String identifyingcode)
    {
        
    	if(StringUtils.isEmpty(username)) {
    		return Message.error("请填写账号");
    	}
    	if(StringUtils.isEmpty(password)) {
    		return Message.error("请填写密码");
    	}
    	if(StringUtils.isEmpty(identifyingcode)) {
    		return Message.error("请填写验证码");
    	}
        String code = (String) httpSession.getAttribute("identifyingCode");
        if(identifyingcode.equalsIgnoreCase(code)){
            SystemManager manager = loginService.findSystemManagerByIdAndPassword(username, password);
           if(manager==null) {
        	   return Message.error("账号或密码错误");
           }
            // 保存到session
            httpSession.setAttribute("admin",manager);
            return Message.success("登录成功");
        }else {
        	return Message.error("验证码错误");
        }
    }
    @RequestMapping(value = "/getAdminAccount.do")
    @ResponseBody
    public String getAdminAccount(HttpSession httpSession){
        SystemManager systemManager = (SystemManager) httpSession.getAttribute("admin");
//        SystemManager manager = loginService.findSystemManagerById(id);
        return systemManager.getSmAccount();
    }

    @RequestMapping(value = "/getEmployeeAccount.do")
    @ResponseBody
    public Map<String,String> getEmployeeAccount(HttpSession httpSession){
        Integer id = (Integer) httpSession.getAttribute("employeeId");
        Employee employee = loginService.findEmployeeById(id);
        HashMap<String, String> map = new HashMap<String, String>();
        map.put("account",employee.geteAccount());
        map.put("name",employee.geteName());
        return map;
    }
    @RequestMapping(value = "/logout.do")
    public String logout(HttpSession httpSession){
        httpSession.removeAttribute("employeeId");
        return "redirect:/";
    }

    @RequestMapping(value = "/logoutAdmin.do")
    public String logoutAdmin(HttpSession httpSession){
       httpSession.removeAttribute("admin");
       return "redirect:/admin.do";
    }
}

用户管理操作: 

/**
 * 用户管理操作
 */
@Controller
@RequestMapping("/user")
public class UserController {

    @Autowired
    private UserService userService;

    /**
     * 用户添加页面
     * @return
     */
    @GetMapping("/add")
    public String create() {
        return "user/add";
    }

    /**
     * 用户添加操作
     * @param user
     * @return
     */
    @PostMapping("/add")
    @ResponseBody
    public Map<String, Object> add(@RequestBody User user) {
        if(StringUtils.isEmpty(user.getUserName())){
            return MapControl.getInstance().error("请填写用户名").getMap();
        }
        if(StringUtils.isEmpty(user.getName())){
            return MapControl.getInstance().error("请填写名称").getMap();
        }
        if(StringUtils.isEmpty(user.getUserPwd())){
            return MapControl.getInstance().error("请填写密码").getMap();
        }
        int result = userService.create(user);
        if (result <= 0) {
            return MapControl.getInstance().error().getMap();
        }
        return MapControl.getInstance().success().getMap();
    }

    /**
     * 根据id删除
     * @param id
     * @return
     */
    @PostMapping("/delete/{id}")
    @ResponseBody
    public Map<String, Object> delete(@PathVariable("id") Integer id) {
        int result = userService.delete(id);
        if (result <= 0) {
            return MapControl.getInstance().error().getMap();
        }
        return MapControl.getInstance().success().getMap();
    }

    //批量删除
    @PostMapping("/delete")
    @ResponseBody
    public Map<String, Object> delete(String ids) {
        int result = userService.delete(ids);
        if (result <= 0) {
            return MapControl.getInstance().error().getMap();
        }
        return MapControl.getInstance().success().getMap();
    }

    /**
     * 编辑用户信息操作
     * @param user
     * @return
     */
    @PostMapping("/edit")
    @ResponseBody
    public Map<String, Object> edit(@RequestBody User user) {
        if(StringUtils.isEmpty(user.getUserName())){
            return MapControl.getInstance().error("请填写用户名").getMap();
        }
        if(StringUtils.isEmpty(user.getName())){
            return MapControl.getInstance().error("请填写名称").getMap();
        }
        if(StringUtils.isEmpty(user.getUserPwd())){
            return MapControl.getInstance().error("请填写密码").getMap();
        }
        int result = userService.update(user);
        if (result <= 0) {
            return MapControl.getInstance().error().getMap();
        }
        return MapControl.getInstance().success().getMap();
    }

    /**
     * 根据id查询,跳转修改页面
     * @param id
     * @param modelMap
     * @return
     */
    @GetMapping("/edit/{id}")
    public String edit(@PathVariable("id") Integer id, ModelMap modelMap) {
        User user = userService.detail(id);
        modelMap.addAttribute("user", user);
        return "user/edit";
    }

    //查询所有
    @PostMapping("/query")
    @ResponseBody
    public Map<String, Object> query(@RequestBody User user) {
        List<User> list = userService.query(user);
        Integer count = userService.count(user);
        return MapControl.getInstance().success().page(list, count).getMap();
    }

    //跳转列表页面
    @GetMapping("/list")
    public String list() {
        return "user/list";
    }

}

源码获取:俺的博客首页 "资源" 里下载!

标签:map,Vue,return,String,ElementUI,param,Java,public,httpSession
From: https://blog.csdn.net/m0_66863468/article/details/137009414

相关文章

  • Java项目:小程序公交信息在线查询系统(java+SSM+Vue+ElementUI+mysql)
    源码获取:俺的博客首页"资源"里下载! 项目介绍基于SSM+Vue的小程序公交信息在线查询系统小程序角色:管理员、用户两种角色,分为小程序端和后台管理两部分;用户:用户通过小程序登录页面可以填写用户名和密码等信息进行登录操作,登录成功后,进入首页可以查看首页、线路信息、站......
  • Java项目:汽车租赁管理系统(java+SpringBoot+Vue+ElementUI+Mybaits+mysql)
    源码获取:俺的博客首页"资源"里下载! 项目介绍基于SpringbootVue汽车租赁管理系统角色:管理员、用户、普通管理员三种角色,分为前后台;用户:用户通过用户登录页面可以填写用户名和密码等信息进行登录操作,登录成功后,进入首页可以查看首页、汽车信息、汽车资讯、汽车论坛、公......
  • 构建树形结构集合的方法-Java
    完整代码如下构建树形结构方法importjava.lang.reflect.Field;importjava.util.ArrayList;importjava.util.LinkedList;importjava.util.List;publicclassTableUtils<T>{/***集合构建成层级结构**ps:处于顶级的数据,上下级字段值必须为......
  • 为什么使用类型化数组来进行字节操作而不是普通的 javascript 数字数组
    1.javascript中的数字数据类型默认为64位(8字节),无论任何数字。这意味着可以在不损失精度的情况下表示-2⁵³+1到2⁵³–1范围内的数字。这意味着即使我们想存储10个,也会消耗8个字节的内存,而这是根本不需要的。当内存效率是一个问题时,特别是在处理大型整数数组或二进制数......
  • java毕业设计体育r品在线销售系统(Springboot+mysql+jdk1.8+maven3.39)
    本系统(程序+源码)带文档lw万字以上 文末可领取本课题的JAVA源码参考系统程序文件列表系统的选题背景和意义选题背景:随着互联网技术的飞速发展和电子商务的普及,人们的购物方式正逐渐从传统的实体店转向在线购物平台。体育用品市场作为一个具有庞大消费群体和持续增长潜力......
  • java毕业设计网上生鲜超市(Springboot+mysql+jdk1.8+maven3.39)
    本系统(程序+源码)带文档lw万字以上 文末可领取本课题的JAVA源码参考系统程序文件列表系统的选题背景和意义选题背景:随着互联网技术的不断进步和人们生活节奏的加快,传统的购物模式已经无法完全满足现代社会的需求。特别是在生鲜食品领域,消费者对新鲜、健康、快捷的要求越......
  • java se 基础
    javase基础前言:补一些java基础知识前置知识在写java的基础知识前,我们先来学习一下用vscode运行java项目的一些基础内容,首先,想要在vscode中运行java在下载插件后需要创建java项目,一个不用其余工具的java项目中有两个文件夹,一个是lib,用于存储引用的包,一个是src,用于存储源代......
  • ElementUI的Table控件,合并列
    x//计算需要合并的列for(letk=0;k<that.tableData.length;k++){//判断当前类型是否与下一个类型一致,一致则两个单元格合并。if((k+1)<that.tableData.length&&......
  • 一文让你读懂JavaScript原型对象与原型链的继承
    前言有些新手朋友可能听说过这么一句话,就是js中存在两个链条,它们分别为:作用域链和原型链它们彼此的区别在于作用域链是为了访问变量和数据而存在的一种链条访问机制而原型链是访问对象的属性或者方法而存在的一种机制!其中这里的原型链就是今天我要说的主题!我们学习js必须......
  • 如何快速上手Vue框架
    如何快速上手Vue框架Vue.js是一款流行的JavaScript框架,它以其轻量级和灵活性而闻名,适用于构建前端应用程序。本文将带你快速了解并上手Vue框架。环境准备在开始之前,确保你的开发环境中安装了Node.js。你可以通过运行node-v来检查是否已安装Node.js。安装完毕后,我......