基于javaweb+mysql的ssm+maven维修报修管理系统(管理员、维修人员、普通用户)(java+jsp+ssm+maven+mysql)

基于javaweb+mysql的ssm+maven维修报修管理系统(管理员、维修人员、普通用户)(java+jsp+ssm+maven+mysql)

运行环境

Java≥8、MySQL≥5.7、Tomcat≥8

开发工具

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

适用

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

功能说明

管理员:登录、平台管理、用户管理、报修受理与维修人员分配

普通用户:登录、注册、报修查询、报修、报修结果确认及评价

维修人员:登录、报修确认

普通用户:

管理员:

维修人员:

技术框架

JavaBean MVC JSP SSM(Spring SpringMVC MyBatis) Maven MySQL jQuery JavaScript CSS

基于javaweb+mysql的SSM+Maven维修报修管理系统(管理员、维修人员、普通用户)(java+jsp+ssm+maven+mysql)

			Long userId = userService.getUser(request, response).getUsrId();
			res=userInfoService.updateUserInfo(userId,trueName,phone,address);
		} catch (ServiceException e) {
			e.printStackTrace();
			res.addError(Res.MESSAGE_NAME_ERROR, e.getMessage());
		}
		return res.toView(response);
	}
}

@Controller
@RequestMapping("/placard")
public class PlacardController {
	@Autowired
	private PlacardService placardService;

	/**
	 * 添加通知
	 * 
	 * @param title
	 * @param content
	 * @param request
	 * @param response
	 * @return
	 */
	@ResponseBody

@Service
public class UserService {
	@Autowired
	UserManager userManager;
	@Autowired
	UserInfoManager userInfoManager;

	/**
	 * 登录
	 * 
	 * @param userName
	 * @param password
	 * @param rememberMe
	 * @param request
	 * @param response
	 * @return
	 */
	@Transactional(propagation = Propagation.REQUIRED)
	public Res login(String userName, String password, String rememberMe, HttpServletRequest request,
			HttpServletResponse response) {
		Res res = new Res();
		try {
			if (ValidateUtils.isNull(userName)) {
				throw new SerialException("用户名不能为空");
			}
			if (ValidateUtils.isNull(password)) {
				throw new SerialException("密码不能为空");
			}

			User user = userManager.getUser(userName, password);
			if (user == null) {
				request.getSession().setAttribute("sessionBean", null);
				throw new ServiceException("用户名或者密码错误");
			} else {
				user.setIsOnline(1);
				user.setLoginIp(request.getRemoteAddr());

/**
 * 封装返回json数据
 * 
 *
 */
public class Res {
	public static final String MESSAGE_NAME_ERROR = "error";
	// public static final String MESSAGE_NAME_EXCEPTION="exception";

	private int code;
	private Map<String, Object> response;
	private Map<String, Object> message;

	public Res() {
		code = 200;
		response = new HashMap<String, Object>();
		message = new HashMap<String, Object>();
	}

	public ModelAndView toView(HttpServletResponse response2) {
		
		ModelAndView mav = new ModelAndView();
		MappingJacksonJsonView jsonView = new MappingJacksonJsonView();

		Map<String, Object> attributes = new HashMap<String, Object>();
		if (code == 200) {
			attributes.put("code", code);
			attributes.put("response", response);
		} else {
			attributes.put("code", code);
			attributes.put("message", message);
		}
		jsonView.setAttributesMap(attributes);
		mav.setView(jsonView);
		response2.addHeader("Access-Control-Allow-Origin", "*");
		return mav;

	}

	
	public ModelAndView toView2(HttpServletResponse response2) {
		
		Map<String, Object> attributes = new HashMap<String, Object>();
			@RequestParam(value = "directPage", required = false) String directPage, 
			HttpServletRequest request,HttpServletResponse response) {
		Res res = new Res();
		try {
			User user = userService.getUser(request, response);
			if(user==null){
				throw new ServiceException("未登录");
			}
			res.addRespose("isLogin", 1);
			res.addRespose("groupId", user.getGroupId());
		} catch (ServiceException e) {
		    e.printStackTrace();
		    res.addError(Res.MESSAGE_NAME_ERROR, e.getMessage());
		}
		return res.toView(response);
	}
	@ResponseBody
	@RequestMapping("/logout")
	public ModelAndView logout(
			@RequestParam(value = "directPage", required = false) String directPage, 
			HttpServletRequest request,HttpServletResponse response) {
		Res res = new Res();
		try {
			
			res = userService.logout(request, response);
		} catch (ServiceException e) {
		    e.printStackTrace();
		    res.addError(Res.MESSAGE_NAME_ERROR, e.getMessage());
		}
		return res.toView(response);
	}
	/**
	 * 用户注册接口
	 * @param userName
	 * @param password
	 * @param password2
	 * @param request
	 * @param response
	 * @return
	 */
	@ResponseBody
	@RequestMapping("/singIn")
	public ModelAndView singIn(
			@RequestParam(value = "userName", required = false) String userName,
			@RequestParam(value = "password", required = false) String password,
			@RequestParam(value = "password2", required = false) String password2,
							String sessionKey = cookie.getValue();
							user = userManager.getBySessionKey(sessionKey);
							if (user != null && user.getIsOnline() == 1) {
								isOnline = true;
								request.getSession().setAttribute("sessionKey", user.getSessionKey());
							}
						}
					}
				}
			}
			if (!isOnline) {
				Res res = new Res();
				res.addNoPermission("未登录");
				res.toView(response);
			}
			return isOnline;
		} catch (ServiceException e) {
			throw e;
		} catch (Exception e) {
			throw new ServiceException(e.getMessage(), e);
		}
	}

	/**
	 * 在业务处理器处理请求执行完成后,生成视图之前执行的动作 可在modelAndView中加入数据,比如当前时间
	 */
	@Override
	public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
			ModelAndView modelAndView) throws Exception {
	}

	/**
	 * 在DispatcherServlet完全处理完请求后被调用,可用于清理资源等
	 * 
	 * 当有拦截器抛出异常时,会从当前拦截器往回执行所有的拦截器的afterCompletion()
	 */
	@Override
	public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)
			throws Exception {
	}

	public String[] getPublicUrls() {
		return publicUrls;
	}

	public void setPublicUrls(String[] publicUrls) {
		this.publicUrls = publicUrls;
	}


@Controller
@RequestMapping("/user")
public class UserController {
	@Autowired
	private UserService userService;

	/**
	 * 用户登录接口
	 * 
	 * @param userName
	 * @param password
	 * @param request
	 * @param response
	 * @return
	 */
	@ResponseBody
	@RequestMapping("/login")
	public ModelAndView login(@RequestParam(value = "userName", required = false) String userName,
			@RequestParam(value = "password", required = false) String password,
			@RequestParam(value = "rememberMe", required = false) String rememberMe,
			@RequestParam(value = "directPage", required = false) String directPage, 
			HttpServletRequest request,HttpServletResponse response) {
		Res res = new Res();
		try {
			res = userService.login(userName, password, rememberMe, request, response);
		} catch (ServiceException e) {
		    e.printStackTrace();
		    res.addError(Res.MESSAGE_NAME_ERROR, e.getMessage());
		}
		return res.toView(response);
	}
	/**
	 * 判断是否登录
	 * @param directPage
	 * @param request
	 * @param response
	 * @return
	 */
	@ResponseBody
	@RequestMapping("/checkLogin")
	public ModelAndView isLogin(
			@RequestParam(value = "directPage", required = false) String directPage, 
			HttpServletRequest request,HttpServletResponse response) {
		Res res = new Res();
		try {
			User user = userService.getUser(request, response);
				throw new ServiceException("用户类型错误");
			} else {
				int gid = Integer.parseInt(groupId);
				if (gid != 1 && gid != 2 && gid != 3) {
					throw new ServiceException("分用户类型错误");
				}
			}
			//用户注册信息
			user.setUsrAccount(userName);
			user.setUsrPassword(password);
			user.setUsrMobile(usrMobile);
			user.setGroupId(Integer.parseInt(groupId));
			user.setRegisterTime(new Date());
			userManager.insert(user);
			//用户基本信息
			UserInfo userInfo = new UserInfo();
			userInfo.setUsrId(user.getUsrId());
			userInfo.setPhone(usrMobile);
			userInfo.setAddress(address);
			userInfo.setTrueName(userName);
			userInfo.setUpdateTime(new Date());
			userInfo.setCreateTime(new Date());
			userInfoManager.insert(userInfo);
		} catch (ServiceException e) {
			throw e;
		} catch (Exception e) {
			throw new ServiceException(e.getMessage(), e);
		}
		return res;
	}

	public Res removeUser(String userId) {
		Res res = new Res();
		try {
		if(!ValidateUtils.isLong(userId)){
			throw new ServiceException("用户id错误");
		}
		if("1".equals(userId)){
			throw new ServiceException("不能删除系统管理员admin");
		}
		userManager.removeUser(Long.parseLong(userId));
		} catch (ServiceException e) {
			throw e;
		} catch (Exception e) {
			throw new ServiceException(e.getMessage(), e);
		}
		return res;
	}

}
			response.getWriter().write("<h1>Hello " + name + "</h1>");
		} catch (IOException e) {
		}
		return null;
	}

}

@Controller
@RequestMapping("/user")
public class UserController {
	@Autowired
	private UserService userService;

	/**
	 * 用户登录接口
	 * 
	 * @param userName
	 * @param password
	 * @param request
	 * @param response
	 * @return
	 */
	@ResponseBody
	@RequestMapping("/login")
	public ModelAndView login(@RequestParam(value = "userName", required = false) String userName,
			@RequestParam(value = "password", required = false) String password,
			@RequestParam(value = "rememberMe", required = false) String rememberMe,
		}
		return res.toView(response);
	}
}

@Controller
@RequestMapping("/repairAllocation")
public class RepairAllocationController {
	@Autowired
	private RepairAllocationService repairAllocationService;
	@Autowired
	private UserService userService;

	@ResponseBody
	@RequestMapping("/allotRepairOrder")
	public ModelAndView allotRepairOrder(
			@RequestParam(value = "orderId", required = false, defaultValue = "") String orderId,
			@RequestParam(value = "userId", required = false, defaultValue = "") String userId,
			HttpServletRequest request, HttpServletResponse response) {
		Res res = new Res();
		try {
			User user = userService.getUser(request, response);
			res = repairAllocationService.allotRepairOrder(orderId, userId,user.getUsrId());
		} catch (ServiceException e) {
			e.printStackTrace();
			res.addError(Res.MESSAGE_NAME_ERROR, e.getMessage());
		}
		return res.toView(response);
	}
}

							String sessionKey = cookie.getValue();
							user = userManager.getBySessionKey(sessionKey);
							if (user != null && user.getIsOnline() == 1) {
								isOnline = true;
								request.getSession().setAttribute("sessionKey", user.getSessionKey());
							}
						}
					}
				}
			}
			if (!isOnline) {
				Res res = new Res();
				res.addNoPermission("未登录");
				res.toView(response);
			}
			return isOnline;
		} catch (ServiceException e) {
			throw e;
		} catch (Exception e) {
			throw new ServiceException(e.getMessage(), e);
		}
	}

	/**
	 * 在业务处理器处理请求执行完成后,生成视图之前执行的动作 可在modelAndView中加入数据,比如当前时间
	 */
	@Override
	public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
			ModelAndView modelAndView) throws Exception {
	}

	/**
	 * 在DispatcherServlet完全处理完请求后被调用,可用于清理资源等
	 * 
	 * 当有拦截器抛出异常时,会从当前拦截器往回执行所有的拦截器的afterCompletion()
	 */
	@Override
	public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)
			throws Exception {
	}

	public String[] getPublicUrls() {
		return publicUrls;
	}

	public void setPublicUrls(String[] publicUrls) {
		this.publicUrls = publicUrls;
	}

}
			user.setRegisterIp(request.getRemoteAddr());

			user.setRegUserAgent(request.getHeader("User-Agent"));
			user.setIsOnline(0);
			user.setStatus(1);
			userManager.insert(user);
		} catch (ServiceException e) {
			throw e;
		} catch (Exception e) {
			throw new ServiceException(e.getMessage(), e);
		}
		return res;

	}

	// 获取登录用户id
	@Transactional
	public User getUser(HttpServletRequest request, HttpServletResponse response) {
		boolean isOnline = false;
		try {
			User user = null;

			String sessionKey = (String) request.getSession().getAttribute("sessionKey");
			if (sessionKey != null) {
				user = userManager.getBySessionKey(sessionKey);
				if (user != null && user.getIsOnline() == 1) {
					isOnline = true;
				}
			}

			if (isOnline) {
				return user;
			} else {
				throw new ServiceException("未登录");
			}
		} catch (ServiceException e) {
			throw e;
		} catch (Exception e) {
			throw new ServiceException(e.getMessage(), e);
		}
	}

	@Transactional
	public Res changePassword(Long userId, String password, String password2) {

		Res res = new Res();
		try {
			if (ValidateUtils.isNull(password) || ValidateUtils.isNull(password2)) {
				throw new ServiceException("密码不能为空");
			}
			User user = userManager.getUser(userId);
			if (!user.getUsrPassword().equals(password)) {
				throw new ServiceException("原密码错误");
			}

				userManager.update(user);

				SessionBean sessionBean = new SessionBean();
				sessionBean.setGroupId(user.getGroupId());
				sessionBean.setMobile(user.getUsrMobile());
				sessionBean.setNickName(user.getUsrNickName());
				sessionBean.setSessionKey(user.getSessionKey());
				sessionBean.setUserAccount(user.getUsrAccount());
				sessionBean.setUserId(user.getUsrId());
				request.getSession().setAttribute("sessionBean", sessionBean);
				if (ValidateUtils.isInt(rememberMe) && Integer.parseInt(rememberMe) == 1) {
					Cookie cookie = new Cookie("sessionKey", user.getSessionKey());
					cookie.setMaxAge(7 * 24 * 60 * 60);
					cookie.setPath("/");
					response.addCookie(cookie);
				} else {
					Cookie cookie = new Cookie("sessionKey", user.getSessionKey());
					cookie.setMaxAge(10 * 60);
					cookie.setPath("/");
		    		response.addCookie(cookie);
				}

				res.addRespose("user", user);
			}
		} catch (ServiceException e) {
			throw e;
		} catch (Exception e) {
			throw new ServiceException(e.getMessage(), e);
		}
		return res;
	}

	@Transactional
	public Res singIn(String userName, String password, String password2, HttpServletRequest request,
			HttpServletResponse response) {

		Res res = new Res();
		try {
			if (ValidateUtils.isNull(userName)) {
				throw new ServiceException("用户名不能为空");
			}
			if (ValidateUtils.isNull(password) || ValidateUtils.isNull(password2)) {
				throw new ServiceException("密码不能为空");
			}
			if (userName.length() < 3) {
				throw new ServiceException("用户名不能小于3个字符");
			}
	private RepairAllocationService repairAllocationService;
	@Autowired
	private UserService userService;

	@ResponseBody
	@RequestMapping("/allotRepairOrder")
	public ModelAndView allotRepairOrder(
			@RequestParam(value = "orderId", required = false, defaultValue = "") String orderId,
			@RequestParam(value = "userId", required = false, defaultValue = "") String userId,
			HttpServletRequest request, HttpServletResponse response) {
		Res res = new Res();
		try {
			User user = userService.getUser(request, response);
			res = repairAllocationService.allotRepairOrder(orderId, userId,user.getUsrId());
		} catch (ServiceException e) {
			e.printStackTrace();
			res.addError(Res.MESSAGE_NAME_ERROR, e.getMessage());
		}
		return res.toView(response);
	}
}

@Controller
@RequestMapping("/index")
		} catch (ServiceException e) {
			throw e;
		} catch (Exception e) {
			throw new ServiceException(e.getMessage(), e);
		}
		return res;

	}

	// 获取登录用户id
	@Transactional
	public User getUser(HttpServletRequest request, HttpServletResponse response) {
		boolean isOnline = false;
		try {
			User user = null;

			String sessionKey = (String) request.getSession().getAttribute("sessionKey");
			if (sessionKey != null) {
				user = userManager.getBySessionKey(sessionKey);
				if (user != null && user.getIsOnline() == 1) {
					isOnline = true;
				}
			}

			if (isOnline) {
				return user;
			} else {
				throw new ServiceException("未登录");
			}
		} catch (ServiceException e) {
			throw e;
		} catch (Exception e) {
			throw new ServiceException(e.getMessage(), e);
		}
	}

	@Transactional
	public Res changePassword(Long userId, String password, String password2) {

		Res res = new Res();
		try {
			if (ValidateUtils.isNull(password) || ValidateUtils.isNull(password2)) {
				throw new ServiceException("密码不能为空");
			}
			User user = userManager.getUser(userId);
			if (!user.getUsrPassword().equals(password)) {
				throw new ServiceException("原密码错误");
			}
		Res res = new Res();
		try {
			User user = userService.getUser(request, response);
			res = repairOrderService.getMyRepairOrderList(user);
		} catch (ServiceException e) {
			e.printStackTrace();
			res.addError(Res.MESSAGE_NAME_ERROR, e.getMessage());
		}
		return res.toView(response);
	}
	/**
	 * 获取我维修的订单
	 * @param request
	 * @param response
	 * @return
	 */
	@ResponseBody
	@RequestMapping("/getMyTaskOrder")
	public ModelAndView getMyTaskOrder(HttpServletRequest request, HttpServletResponse response) {
		Res res = new Res();
		try {
			User user = userService.getUser(request, response);
			res = repairOrderService.getMyTaskOrder(user);
		} catch (ServiceException e) {
			e.printStackTrace();
			res.addError(Res.MESSAGE_NAME_ERROR, e.getMessage());
		}
		return res.toView(response);
	}
	/**
	 * 评价订单
	 * @param orderId
	 * @param star
	 * @param comment
	 * @param request
	 * @param response
	 * @return
	 */
	@ResponseBody
	@RequestMapping("/commentOrder")
	public ModelAndView commentOrder(
			@RequestParam(value = "orderId", required = false, defaultValue = "") String orderId,
			@RequestParam(value = "star", required = false, defaultValue = "") String star,
			@RequestParam(value = "comment", required = false, defaultValue = "") String comment,
			HttpServletRequest request, HttpServletResponse response) {
		Res res = new Res();
		} catch (ServiceException e) {
			e.printStackTrace();
			res.addError(Res.MESSAGE_NAME_ERROR, e.getMessage());
		}
		return res.toView(response);
	}
	/**
	 * 获取我维修的订单
	 * @param request
	 * @param response
	 * @return
	 */
	@ResponseBody
	@RequestMapping("/getMyTaskOrder")
	public ModelAndView getMyTaskOrder(HttpServletRequest request, HttpServletResponse response) {
		Res res = new Res();
		try {
			User user = userService.getUser(request, response);
			res = repairOrderService.getMyTaskOrder(user);
		} catch (ServiceException e) {
			e.printStackTrace();
			res.addError(Res.MESSAGE_NAME_ERROR, e.getMessage());
		}
		return res.toView(response);
	}
	/**
	 * 评价订单
	 * @param orderId
	 * @param star
	 * @param comment
	 * @param request
	 * @param response
	 * @return
	 */
	@ResponseBody
	@RequestMapping("/commentOrder")
	public ModelAndView commentOrder(
			@RequestParam(value = "orderId", required = false, defaultValue = "") String orderId,
			@RequestParam(value = "star", required = false, defaultValue = "") String star,
			@RequestParam(value = "comment", required = false, defaultValue = "") String comment,
			HttpServletRequest request, HttpServletResponse response) {
		Res res = new Res();
		try {
			User user = userService.getUser(request, response);
			res = repairOrderService.commentOrder(orderId,star,comment,user);
		} catch (ServiceException e) {
			e.printStackTrace();
			res.addError(Res.MESSAGE_NAME_ERROR, e.getMessage());
		}
		return res.toView(response);
	}

	public ModelAndView addPlacard(@RequestParam(value = "title", required = false, defaultValue = "") String title,
			@RequestParam(value = "content", required = false, defaultValue = "") String content,
			HttpServletRequest request, HttpServletResponse response) {
		Res res = new Res();
		try {
			res = placardService.addPlacard(title, content);
		} catch (ServiceException e) {
			e.printStackTrace();
			res.addError(Res.MESSAGE_NAME_ERROR, e.getMessage());
		}
		return res.toView(response);
	}

	/**
	 * 获取最新通知
	 * 
	 * @param request
	 * @param response
	 * @return
	 */
	@ResponseBody
	@RequestMapping("/getLastedPlacard")
	public ModelAndView getLastedPlacard(HttpServletRequest request, HttpServletResponse response) {
		Res res = new Res();
		try {
			res = placardService.getLastedPlacard();
		} catch (ServiceException e) {
			e.printStackTrace();
			res.addError(Res.MESSAGE_NAME_ERROR, e.getMessage());
		}
		return res.toView(response);
	}
}

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值