700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > Java项目:调查问卷管理系统(java+SpringBoot+Vue+ElementUI+Maven+mysql)

Java项目:调查问卷管理系统(java+SpringBoot+Vue+ElementUI+Maven+mysql)

时间:2019-04-23 08:41:41

相关推荐

Java项目:调查问卷管理系统(java+SpringBoot+Vue+ElementUI+Maven+mysql)

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

项目介绍

> * 本项目的在线问卷调查调查系统是基于SpringBoot开发的,采用了前后端分离模式来开发。

> * 前端开发使用了Vue、Element UI,后端的开发则是使用了SpringBoot、MyBatis技术。

项目配置

> * 下载项目压缩包,在IDEA或者Eclipse软件中打开,并修改**application.yml**文件中数据库的用户和密码

> * 在本地的MySQL数据库中导入项目的**sql文件**

> * 在编译器中运行该项目:此为SpringBoot框架,启动主类Main方法

> * 在浏览器中输入**localhost:8181**后按回车键进入系统

用户管理控制器:

/*** 用户管理控制器*/@RequestMapping("/user/")@Controllerpublic class UserController {@Autowiredprivate IUserService userService;@Autowiredprivate IRoleService roleService;@Resourceprivate ProcessEngineConfiguration configuration;@Resourceprivate ProcessEngine engine;@GetMapping("/index")@ApiOperation("跳转用户页接口")@PreAuthorize("hasRole('管理员')")public String index(String menuid,Model model){List<Role> roles = queryAllRole();model.addAttribute("roles",roles);model.addAttribute("menuid",menuid);//用户首页return "views/user/user_list";}@GetMapping("/listpage")@ApiOperation("查询用户分页数据接口")@ApiImplicitParams({@ApiImplicitParam(name = "UserQuery", value = "用户查询对象", defaultValue = "userQuery对象")})@ResponseBody@PreAuthorize("hasRole('管理员')")public PageList listpage(UserQuery userQuery){return userService.listpage(userQuery);}//添加用户@PostMapping("/addUser")@ApiOperation("添加用户接口")@ResponseBodypublic Map<String,Object> addUser(User user){Map<String, Object> ret = new HashMap<>();ret.put("code",-1);if(StringUtils.isEmpty(user.getUsername())){ret.put("msg","请填写用户名");return ret;}if(StringUtils.isEmpty(user.getPassword())){ret.put("msg","请填写密码");return ret;}if(StringUtils.isEmpty(user.getEmail())){ret.put("msg","请填写邮箱");return ret;}if(StringUtils.isEmpty(user.getTel())){ret.put("msg","请填写手机号");return ret;}if(StringUtils.isEmpty(user.getHeadImg())){ret.put("msg","请上传头像");return ret;}if(userService.addUser(user)<=0) {ret.put("msg", "添加用户失败");return ret;}ret.put("code",0);ret.put("msg","添加用户成功");return ret;}/*** 修改用户信息操作* @param user* @return*/@PostMapping("/editSaveUser")@ApiOperation("修改用户接口")@PreAuthorize("hasRole('管理员')")@ResponseBodypublic Message editSaveUser(User user){if(StringUtils.isEmpty(user.getUsername())){return Message.error("请填写用户名");}if(StringUtils.isEmpty(user.getEmail())){return Message.error("请填写邮箱");}if(StringUtils.isEmpty(user.getTel())){return Message.error("请填写手机号");}try {userService.editSaveUser(user);return Message.success();} catch (Exception e) {e.printStackTrace();return Message.error("修改用户信息失败");}}//添加用户@GetMapping("/deleteUser")@ApiOperation("删除用户接口")@ApiImplicitParams({@ApiImplicitParam(name = "id", value = "如:88",required = true)})@PreAuthorize("hasRole('管理员')")@ResponseBodypublic AjaxResult deleteUser(@RequestParam(required = true) Long id){AjaxResult ajaxResult = new AjaxResult();try {userService.deleteUser(id);} catch (Exception e) {e.printStackTrace();return new AjaxResult("删除失败");}return ajaxResult;}@PostMapping(value="/deleteBatchUser")@ApiOperation("批量删除用户接口")@PreAuthorize("hasRole('管理员')")@ResponseBodypublic AjaxResult deleteBatchUser(String ids){String[] idsArr = ids.split(",");List list = new ArrayList();for(int i=0;i<idsArr.length;i++){list.add(idsArr[i]);}try{userService.batchRemove(list);return new AjaxResult();}catch(Exception e){return new AjaxResult("批量删除失败");}}//查询所有角色public List<Role> queryAllRole(){return roleService.queryAll();}//添加用户的角色@PostMapping("/addUserRole")@ApiOperation("添加用户角色接口")@ApiImplicitParams({@ApiImplicitParam(name = "paramMap", value = "如:{userId:1,[1,2,3,4]]}")})@ResponseBodypublic AjaxResult addUserRole(@RequestBody Map paramMap){AjaxResult ajaxResult = new AjaxResult();String userId = (String)paramMap.get("userId");List roleIds = (List) paramMap.get("roleIds");try {//添加用户对应的角色roleService.addUserRole(userId,roleIds);return ajaxResult;}catch (Exception e){e.printStackTrace();return new AjaxResult("保存角色失败");}}//添加用户@RequestMapping("/regSaveUser")@ResponseBodypublic Long addTeacher(User user){System.out.println("保存用户...."+user);userService.addUser(user);//保存工作流程操作IdentityService is = engine.getIdentityService();// 添加用户组org.activiti.engine.identity.User userInfo = userService.saveUser(is, user.getUsername());// 添加用户对应的组关系Group stuGroup = new GroupEntityImpl();stuGroup.setId("stuGroup");Group tGroup = new GroupEntityImpl();tGroup.setId("tGroup");if(user.getType() == 2) {//保存老师组userService.saveRel(is, userInfo, tGroup);}if(user.getType() == 3) {//保存学生组userService.saveRel(is, userInfo, stuGroup);}Long userId = user.getId();return userId;}/*** 修改密码页面* @return*/@RequestMapping(value="/update_pwd",method=RequestMethod.GET)public String updatePwd(){return "views/user/update_pwd";}/*** 修改密码操作* @param oldPwd* @param newPwd* @return*/@ResponseBody@PostMapping("/update_pwd")public Message updatePassword(@RequestParam(name="oldPwd",required=true)String oldPwd,@RequestParam(name="newPwd",required=true)String newPwd){String username = CommonUtils.getLoginUser().getUsername();User userByUserName = userService.findUserByUserName(username);if(userByUserName!=null){String password = userByUserName.getPassword();BCryptPasswordEncoder bCryptPasswordEncoder = new BCryptPasswordEncoder();boolean matches = bCryptPasswordEncoder.matches(oldPwd, password);if(!matches){return Message.error("旧密码不正确");//true}userByUserName.setPassword(bCryptPasswordEncoder.encode(newPwd));if(userService.editUserPassword(userByUserName)<=0){return Message.error("密码修改失败");}}return Message.success();}/*** 清除缓存* @param request* @param response* @return*/@ResponseBody@PostMapping("/clear_cache")public Message clearCache(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {response.setHeader("Cache-Control","no-store");response.setHeader("Pragrma","no-cache");response.setDateHeader("Expires",0);return Message.success();}}

登录管理控制层:

@Controllerpublic class LonginController {private final static Logger LOGGER = LoggerFactory.getLogger(LonginController.class);public final static String LOGIN_TYPE = "loginType";@Autowired@Qualifier("captchaProducer")DefaultKaptcha captchaProducer;@AutowiredUserService userService;@AutowiredMenuService menuService;public enum LoginTypeEnum {PAGE,ADMIN;}// @RequestMapping(value = "")// public String welcome() {// return "redirect:admin";// }@RequestMapping(value = {"admin","admin/index"})public String adminIndex(RedirectAttributes attributes, ModelMap map) {Subject s = SecurityUtils.getSubject();attributes.addFlashAttribute(LOGIN_TYPE, LoginTypeEnum.ADMIN);if(s.isAuthenticated()) {return "redirect:index";}return "redirect:toLogin";}@RequestMapping(value = "toLogin")public String adminToLogin(HttpSession session, @ModelAttribute(LOGIN_TYPE) String loginType) {if(StringUtils.isBlank(loginType)) {LoginTypeEnum attribute = (LoginTypeEnum) session.getAttribute(LOGIN_TYPE);loginType = attribute == null ? loginType : attribute.name();}if(LoginTypeEnum.ADMIN.name().equals(loginType)) {session.setAttribute(LOGIN_TYPE,LoginTypeEnum.ADMIN);return "admin/login";}else {session.setAttribute(LOGIN_TYPE,LoginTypeEnum.PAGE);return "login";}}@RequestMapping(value = "index")public String index(HttpSession session, @ModelAttribute(LOGIN_TYPE) String loginType) {if(StringUtils.isBlank(loginType)) {LoginTypeEnum attribute = (LoginTypeEnum) session.getAttribute(LOGIN_TYPE);loginType = attribute == null ? loginType : attribute.name();}if(LoginTypeEnum.ADMIN.name().equals(loginType)) {AuthRealm.ShiroUser principal = (AuthRealm.ShiroUser) SecurityUtils.getSubject().getPrincipal();session.setAttribute("icon",StringUtils.isBlank(principal.getIcon()) ? "/static/admin/img/face.jpg" : principal.getIcon());return "admin/index";}else {AuthRealm.ShiroUser principal = (AuthRealm.ShiroUser) SecurityUtils.getSubject().getPrincipal();return "admin/index";}}@RequestMapping("/getCaptcha")public void getCaptcha(HttpServletRequest request, HttpServletResponse response) throws IOException {//设置页面不缓存response.setHeader("Pragma", "no-cache");response.setHeader("Cache-Control", "no-cache");response.setDateHeader("Expires", 0);String verifyCode = captchaProducer.createText();//将验证码放到HttpSession里面request.getSession().setAttribute(Constants.VALIDATE_CODE, verifyCode);LOGGER.info("本次生成的验证码为[" + verifyCode + "],已存放到HttpSession中");//设置输出的内容的类型为JPEG图像response.setContentType("image/jpeg");BufferedImage bufferedImage = captchaProducer.createImage(verifyCode);//写给浏览器ImageIO.write(bufferedImage, "JPEG", response.getOutputStream());}@PostMapping("admin/login")@SysLog("用户登录")@ResponseBodypublic ResponseEntity adminLogin(HttpServletRequest request) {String username = request.getParameter("username");String password = request.getParameter("password");String rememberMe = request.getParameter("rememberMe");String code = request.getParameter("code");String driver = request.getParameter("driver");String errorMsg = null;//判断登陆设备if(StringUtils.isBlank(driver)){//电脑登录if(StringUtils.isBlank(username) || StringUtils.isBlank(password)){return ResponseEntity.failure("用户名或者密码不能为空");}else if(StringUtils.isBlank(code)){return ResponseEntity.failure("验证码不能为空");}HttpSession session = request.getSession();if(session == null){return ResponseEntity.failure("session超时");}String trueCode = (String)session.getAttribute(Constants.VALIDATE_CODE);if(StringUtils.isBlank(trueCode)){return ResponseEntity.failure("验证码超时");}if(StringUtils.isBlank(code) || !trueCode.toLowerCase().equals(code.toLowerCase())){return ResponseEntity.failure("验证码错误");}else {Subject user = SecurityUtils.getSubject();UsernamePasswordToken token = new UsernamePasswordToken(username,password,Boolean.valueOf(rememberMe));try {user.login(token);}catch (IncorrectCredentialsException e) {errorMsg = "用户名密码错误!";}catch (UnknownAccountException e) {errorMsg = "账户不存在!";}catch (LockedAccountException e) {errorMsg = "账户已被锁定!";}catch (UserTypeAccountException e) {errorMsg = "账户不是管理用户!";}if(StringUtils.isBlank(errorMsg)) {ResponseEntity responseEntity = new ResponseEntity();responseEntity.setSuccess(Boolean.TRUE);responseEntity.setAny("url","index");return responseEntity;}else {return ResponseEntity.failure(errorMsg);}}}else{//小程序或APP登录if(StringUtils.isBlank(username) || StringUtils.isBlank(password)){return ResponseEntity.failure("用户名或者密码不能为空");}Subject user = SecurityUtils.getSubject();UsernamePasswordToken token = new UsernamePasswordToken(username,password,Boolean.valueOf(rememberMe));try {user.login(token);}catch (IncorrectCredentialsException e) {errorMsg = "用户名或密码错误!";}catch (UnknownAccountException e) {errorMsg = "账户不存在!";}catch (LockedAccountException e) {errorMsg = "账户已被锁定!";}catch (UserTypeAccountException e) {errorMsg = "账户不是管理用户!";}if(StringUtils.isBlank(errorMsg)) {ResponseEntity responseEntity = new ResponseEntity();responseEntity.setSuccess(Boolean.TRUE);responseEntity.setAny("url","index");return responseEntity;}else {return ResponseEntity.failure(errorMsg);}}}@RequestMapping("admin/main")public String main(ModelMap map){return "admin/main";}/**** 获得用户所拥有的菜单列表* @return*/@RequestMapping("/admin/user/getUserMenu")@ResponseBodypublic List<ShowMenuVo> getUserMenu(){String userId = MySysUser.id();List<ShowMenuVo> list = menuService.getShowMenuByUser(userId);return list;}@RequestMapping("systemLogout")@SysLog("退出系统")public String logOut(){SecurityUtils.getSubject().logout();return "redirect:home";}}

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。