基于javaweb的SSM小程序公交信息在线查询系统(java+ssm+vue+elementui+mysql)

运行环境

Java≥8、MySQL≥5.7、Tomcat≥8、Node.js≥14

开发工具

后端:eclipse/idea/myeclipse/sts等均可配置运行
前端:WebStorm/VSCode/HBuilderX等均可

❗没学过node.js的不要搞前后端分离项目

适用

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

功能说明

321524082608

341524082608

351524082608

361524082608

371524082608

381524082608

391524082608

401524082608

411524082608

421524082608

基于javaweb的SSM小程序公交信息在线查询系统(java+ssm+vue+elementui+mysql)

项目介绍

基于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 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 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”;


项目链接:
https://javayms.github.io?id=531524512608201nw
https://javayms.pages.dev?id=531524512608201nw