基于javaweb的大学生创新项目管理系统(java+ssm+bootstrap+jsp+mysql)

基于javaweb的大学生创新项目管理系统(java+ssm+bootstrap+jsp+mysql)

运行环境

Java≥8、MySQL≥5.7、Tomcat≥8

开发工具

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

适用

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

功能说明

20220819204405

20220819204406

20220819204407

20220819204408

20220819204409

20220819204410

基于javaweb+mysql的大学生创新项目管理系统(java+SSM+Bootstrap+JSP+mysql)

项目介绍

本项目包含管理员、学生、专家三种角色; 管理员角色包含以下功能: 管理员登录,学院管理,专业管理,班级管理,用户管理,创新计划查看,查看项目申请,项目申请审核等功能。

学生角色包含以下功能: 学生登录,查看创新计划,申请和查看我的项目,创新创业计划书填写等功能。

专家角色包含以下功能: 专家登录,查看创新计划,申请项目,学生项目列表,管理预算记录等功能。

环境需要

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

技术栈

  1. 后端:Spring+SpringMVC+Mybatis 2. 前端:JSP+CSS+JavaScript+jQuery+bootstrap

使用说明

  1. 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件; 2. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven; 若为maven项目,导入成功后请执行maven clean;maven install命令,然后运行; 3. 将项目中jdbc.properties配置文件中的数据库配置改为自己的配置; 4. 运行项目,在浏览器中输入http://localhost:8080/ssm_schoolproject_sys 登录

用户信息管理控制层:

/**

  • 用户信息

*/

@Controller

@RequestMapping(“/system/user”)

public class SysUserController extends BaseController

private String prefix = “system/user”;

@Autowired

private ISysUserService userService;

@Autowired

private ISysRoleService roleService;

@Autowired

private ISysPostService postService;

@Autowired

private SysPasswordService passwordService;

@RequiresPermissions(“system:user:view”)

@GetMapping()

public String user()

return prefix + “/user”;

@RequiresPermissions(“system:user:list”)

@PostMapping(“/list”)

@ResponseBody

public TableDataInfo list(SysUser user)

startPage();

List list = userService.selectUserList(user);

return getDataTable(list);

@Log(title = “用户管理”, businessType = BusinessType.EXPORT)

@RequiresPermissions(“system:user:export”)

@PostMapping(“/export”)

@ResponseBody

public AjaxResult export(SysUser user)

List list = userService.selectUserList(user);

ExcelUtil util = new ExcelUtil(SysUser.class);

return util.exportExcel(list, “用户数据”);

@Log(title = “用户管理”, businessType = BusinessType.IMPORT)

@RequiresPermissions(“system:user:import”)

@PostMapping(“/importData”)

@ResponseBody

public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception

ExcelUtil util = new ExcelUtil(SysUser.class);

List userList = util.importExcel(file.getInputStream());

String operName = ShiroUtils.getSysUser().getLoginName();

String message = userService.importUser(userList, updateSupport, operName);

return AjaxResult.success(message);

@RequiresPermissions(“system:user:view”)

@GetMapping(“/importTemplate”)

@ResponseBody

public AjaxResult importTemplate()

ExcelUtil util = new ExcelUtil(SysUser.class);

return util.importTemplateExcel(“用户数据”);

/**

  • 新增用户

*/

@GetMapping(“/add”)

public String add(ModelMap mmap)

mmap.put(“roles”, roleService.selectRoleAll());

mmap.put(“posts”, postService.selectPostAll());

return prefix + “/add”;

/**

  • 新增保存用户

*/

@RequiresPermissions(“system:user:add”)

@Log(title = “用户管理”, businessType = BusinessType.INSERT)

@PostMapping(“/add”)

@ResponseBody

public AjaxResult addSave(@Validated SysUser user)

if (UserConstants.USER_NAME_NOT_UNIQUE.equals(userService.checkLoginNameUnique(user.getLoginName())))

return error(“新增用户’” + user.getLoginName() + “'失败,登录账号已存在”);

else if (UserConstants.USER_PHONE_NOT_UNIQUE.equals(userService.checkPhoneUnique(user)))

return error(“新增用户’” + user.getLoginName() + “'失败,手机号码已存在”);

else if (UserConstants.USER_EMAIL_NOT_UNIQUE.equals(userService.checkEmailUnique(user)))

return error(“新增用户’” + user.getLoginName() + “'失败,邮箱账号已存在”);

user.setSalt(ShiroUtils.randomSalt());

user.setPassword(passwordService.encryptPassword(user.getLoginName(), user.getPassword(), user.getSalt()));

user.setCreateBy(ShiroUtils.getLoginName());

return toAjax(userService.insertUser(user));

/**

  • 修改用户

*/

@GetMapping(“/edit/{userId}”)

public String edit(@PathVariable(“userId”) Long userId, ModelMap mmap)

mmap.put(“user”, userService.selectUserById(userId));

mmap.put(“roles”, roleService.selectRolesByUserId(userId));

mmap.put(“posts”, postService.selectPostsByUserId(userId));

return prefix + “/edit”;

/**

  • 修改保存用户

*/

@RequiresPermissions(“system:user:edit”)

@Log(title = “用户管理”, businessType = BusinessType.UPDATE)

@PostMapping(“/edit”)

@ResponseBody

public AjaxResult editSave(@Validated SysUser user)

userService.checkUserAllowed(user);

if (UserConstants.USER_PHONE_NOT_UNIQUE.equals(userService.checkPhoneUnique(user)))

return error(“修改用户’” + user.getLoginName() + “'失败,手机号码已存在”);

else if (UserConstants.USER_EMAIL_NOT_UNIQUE.equals(userService.checkEmailUnique(user)))

return error(“修改用户’” + user.getLoginName() + “'失败,邮箱账号已存在”);

user.setUpdateBy(ShiroUtils.getLoginName());

return toAjax(userService.updateUser(user));

@RequiresPermissions(“system:user:resetPwd”)

@Log(title = “重置密码”, businessType = BusinessType.UPDATE)

@GetMapping(“/resetPwd/{userId}”)

public String resetPwd(@PathVariable(“userId”) Long userId, ModelMap mmap)

mmap.put(“user”, userService.selectUserById(userId));

return prefix + “/resetPwd”;

@RequiresPermissions(“system:user:resetPwd”)

@Log(title = “重置密码”, businessType = BusinessType.UPDATE)

@PostMapping(“/resetPwd”)

@ResponseBody

public AjaxResult resetPwdSave(SysUser user)

userService.checkUserAllowed(user);

user.setSalt(ShiroUtils.randomSalt());

user.setPassword(passwordService.encryptPassword(user.getLoginName(), user.getPassword(), user.getSalt()));

if (userService.resetUserPwd(user) > 0)

if (ShiroUtils.getUserId() == user.getUserId())

ShiroUtils.setSysUser(userService.selectUserById(user.getUserId()));

return success();

return error();

@RequiresPermissions(“system:user:remove”)

@Log(title = “用户管理”, businessType = BusinessType.DELETE)

@PostMapping(“/remove”)

@ResponseBody

public AjaxResult remove(String ids)

try

return toAjax(userService.deleteUserByIds(ids));

catch (Exception e)

return error(e.getMessage());

/**

  • 校验用户名

*/

@PostMapping(“/checkLoginNameUnique”)

@ResponseBody

public String checkLoginNameUnique(SysUser user)

return userService.checkLoginNameUnique(user.getLoginName());

/**

  • 校验手机号码

*/

@PostMapping(“/checkPhoneUnique”)

@ResponseBody

public String checkPhoneUnique(SysUser user)

return userService.checkPhoneUnique(user);

/**

  • 校验email邮箱

*/

@PostMapping(“/checkEmailUnique”)

@ResponseBody

public String checkEmailUnique(SysUser user)

return userService.checkEmailUnique(user);

/**

  • 用户状态修改

*/

@Log(title = “用户管理”, businessType = BusinessType.UPDATE)

@RequiresPermissions(“system:user:edit”)

@PostMapping(“/changeStatus”)

@ResponseBody

public AjaxResult changeStatus(SysUser user)

userService.checkUserAllowed(user);

return toAjax(userService.changeStatus(user));

角色信息管理控制层:

/**

  • 角色信息

*/

@Controller

@RequestMapping(“/system/role”)

public class SysRoleController extends BaseController

private String prefix = “system/role”;

@Autowired

private ISysRoleService roleService;

@Autowired

private ISysUserService userService;

@RequiresPermissions(“system:role:view”)

@GetMapping()

public String role()

return prefix + “/role”;

@RequiresPermissions(“system:role:list”)

@PostMapping(“/list”)

@ResponseBody

public TableDataInfo list(SysRole role)

startPage();

List list = roleService.selectRoleList(role);

return getDataTable(list);

@Log(title = “角色管理”, businessType = BusinessType.EXPORT)

@RequiresPermissions(“system:role:export”)

@PostMapping(“/export”)

@ResponseBody

public AjaxResult export(SysRole role)

List list = roleService.selectRoleList(role);

ExcelUtil util = new ExcelUtil(SysRole.class);

return util.exportExcel(list, “角色数据”);

/**

  • 新增角色

*/

@GetMapping(“/add”)

public String add()

return prefix + “/add”;

/**

  • 新增保存角色

*/

@RequiresPermissions(“system:role:add”)

@Log(title = “角色管理”, businessType = BusinessType.INSERT)

@PostMapping(“/add”)

@ResponseBody

public AjaxResult addSave(@Validated SysRole role)

if (UserConstants.ROLE_NAME_NOT_UNIQUE.equals(roleService.checkRoleNameUnique(role)))

return error(“新增角色’” + role.getRoleName() + “'失败,角色名称已存在”);

else if (UserConstants.ROLE_KEY_NOT_UNIQUE.equals(roleService.checkRoleKeyUnique(role)))

return error(“新增角色’” + role.getRoleName() + “'失败,角色权限已存在”);

role.setCreateBy(ShiroUtils.getLoginName());

ShiroUtils.clearCachedAuthorizationInfo();

return toAjax(roleService.insertRole(role));

/**

  • 修改角色

*/

@GetMapping(“/edit/{roleId}”)

public String edit(@PathVariable(“roleId”) Long roleId, ModelMap mmap)

mmap.put(“role”, roleService.selectRoleById(roleId));

return prefix + “/edit”;

/**

  • 修改保存角色

*/

@RequiresPermissions(“system:role:edit”)

@Log(title = “角色管理”, businessType = BusinessType.UPDATE)

@PostMapping(“/edit”)

@ResponseBody

public AjaxResult editSave(@Validated SysRole role)

roleService.checkRoleAllowed(role);

if (UserConstants.ROLE_NAME_NOT_UNIQUE.equals(roleService.checkRoleNameUnique(role)))

return error(“修改角色’” + role.getRoleName() + “'失败,角色名称已存在”);

else if (UserConstants.ROLE_KEY_NOT_UNIQUE.equals(roleService.checkRoleKeyUnique(role)))

return error(“修改角色’” + role.getRoleName() + “'失败,角色权限已存在”);

role.setUpdateBy(ShiroUtils.getLoginName());

ShiroUtils.clearCachedAuthorizationInfo();

return toAjax(roleService.updateRole(role));

/**

  • 角色分配数据权限

*/

@GetMapping(“/authDataScope/{roleId}”)

public String authDataScope(@PathVariable(“roleId”) Long roleId, ModelMap mmap)

mmap.put(“role”, roleService.selectRoleById(roleId));

return prefix + “/dataScope”;

/**

  • 保存角色分配数据权限

*/

@RequiresPermissions(“system:role:edit”)

@Log(title = “角色管理”, businessType = BusinessType.UPDATE)

@PostMapping(“/authDataScope”)

@ResponseBody

public AjaxResult authDataScopeSave(SysRole role)

roleService.checkRoleAllowed(role);

role.setUpdateBy(ShiroUtils.getLoginName());

if (roleService.authDataScope(role) > 0)

ShiroUtils.setSysUser(userService.selectUserById(ShiroUtils.getSysUser().getUserId()));

return success();

return error();

@RequiresPermissions(“system:role:remove”)

@Log(title = “角色管理”, businessType = BusinessType.DELETE)

@PostMapping(“/remove”)

@ResponseBody

public AjaxResult remove(String ids)

try

return toAjax(roleService.deleteRoleByIds(ids));

catch (Exception e)

return error(e.getMessage());

/**

  • 校验角色名称

*/

@PostMapping(“/checkRoleNameUnique”)

@ResponseBody

public String checkRoleNameUnique(SysRole role)

return roleService.checkRoleNameUnique(role);

/**

  • 校验角色权限

*/

@PostMapping(“/checkRoleKeyUnique”)

@ResponseBody

public String checkRoleKeyUnique(SysRole role)

return roleService.checkRoleKeyUnique(role);

/**

  • 选择菜单树

*/

@GetMapping(“/selectMenuTree”)

public String selectMenuTree()

return prefix + “/tree”;

/**

  • 角色状态修改

*/

@Log(title = “角色管理”, businessType = BusinessType.UPDATE)

@RequiresPermissions(“system:role:edit”)

@PostMapping(“/changeStatus”)

@ResponseBody

public AjaxResult changeStatus(SysRole role)

roleService.checkRoleAllowed(role);

return toAjax(roleService.changeStatus(role));

/**

  • 分配用户

*/

@RequiresPermissions(“system:role:edit”)

@GetMapping(“/authUser/{roleId}”)

public String authUser(@PathVariable(“roleId”) Long roleId, ModelMap mmap)

mmap.put(“role”, roleService.selectRoleById(roleId));

return prefix + “/authUser”;

/**

  • 查询已分配用户角色列表

*/

@RequiresPermissions(“system:role:list”)

@PostMapping(“/authUser/allocatedList”)

@ResponseBody

public TableDataInfo allocatedList(SysUser user)

startPage();

List list = userService.selectAllocatedList(user);

return getDataTable(list);

/**

  • 取消授权

*/

@Log(title = “角色管理”, businessType = BusinessType.GRANT)

@PostMapping(“/authUser/cancel”)

@ResponseBody

public AjaxResult cancelAuthUser(SysUserRole userRole)

return toAjax(roleService.deleteAuthUser(userRole));

/**

  • 批量取消授权

*/

@Log(title = “角色管理”, businessType = BusinessType.GRANT)

@PostMapping(“/authUser/cancelAll”)

@ResponseBody

public AjaxResult cancelAuthUserAll(Long roleId, String userIds)

return toAjax(roleService.deleteAuthUsers(roleId, userIds));

/**

  • 选择用户

*/

@GetMapping(“/authUser/selectUser/{roleId}”)

public String selectUser(@PathVariable(“roleId”) Long roleId, ModelMap mmap)

mmap.put(“role”, roleService.selectRoleById(roleId));

return prefix + “/selectUser”;

/**

  • 查询未分配用户角色列表

*/

@RequiresPermissions(“system:role:list”)

@PostMapping(“/authUser/unallocatedList”)

@ResponseBody

public TableDataInfo unallocatedList(SysUser user)

startPage();

List list = userService.selectUnallocatedList(user);

return getDataTable(list);

/**

  • 批量选择用户授权

*/

@Log(title = “角色管理”, businessType = BusinessType.GRANT)

@PostMapping(“/authUser/selectAll”)

@ResponseBody

public AjaxResult selectAuthUserAll(Long roleId, String userIds)

return toAjax(roleService.insertAuthUsers(roleId, userIds));

登录验证管理控制层:

/**

  • 登录验证

*/

@Controller

public class SysLoginController extends BaseController

@GetMapping(“/login”)

public String login(HttpServletRequest request, HttpServletResponse response)

// 如果是Ajax请求,返回Json字符串。

if (ServletUtils.isAjaxRequest(request))

return ServletUtils.renderString(response, “{“code”:“1”,“msg”:“未登录或登录超时。请重新登录”}”);

return “login”;

@PostMapping(“/login”)

@ResponseBody

public AjaxResult ajaxLogin(String username, String password, Boolean rememberMe)

UsernamePasswordToken token = new UsernamePasswordToken(username, password, rememberMe);

Subject subject = SecurityUtils.getSubject();

try

subject.login(token);

return success();

catch (AuthenticationException e)

String msg = “用户或密码错误”;

if (StringUtils.isNotEmpty(e.getMessage()))

msg = e.getMessage();

return error(msg);

@GetMapping(“/unauth”)

public String unauth()

return “error/unauth”;


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值