使用SSM开发一个校友联络的平台系统

简介: 使用SSM开发一个校友联络的平台系统

项目编号:BS-PT-019


后台开发技术:SSM框架


前端开发技术:Bootstrap+Jquery+Ajax


开发工具:IDEA / ECLIPSE


基于MAVEN开发


数据库:MYSQL5.7


JDK:1.8


本项目基于SSM实现的校友录平台,功能完整:主要包含校友通讯录模块,论坛模块,新闻模块,招聘模块,校内各组织管理模块,班级管理模块等,功能还是比较完整的,运行无误。数据库采用MYSQL,开发工具为IDEA或Eclipse.


下面展示一下系统的部分功能;


访问http://localhost:8080/ar-portal/index.action


输入密码: black  /  12345678


登陆:

image.png

首页

20201028155952125.png

新闻中心

image.png

班级通讯录

image.png

校友组织:

image.png

校友论坛

image.png

职业招聘

image.png

校园服务

image.png

个人后台管理中心

image.png

我的班级

image.png

我的论坛

image.png

我的招聘

image.png

系统管理员进入:

http://localhost:8080/ar-portal/index.action

sa  /  12345678

后台管理主界面

image.png

信息中心

image.png

组织管理

image.png

招聘管理

image.png

用户管理

image.png

权限管理

image.png

数据字典管理

image.png

本系统功能完整,全面,运行无误,结构清晰,使用SSM框架开发,适合做毕业设计使用。

部分核心实现代码:

package com.xzit.ar.manage.controller.user;
import com.xzit.ar.common.base.BaseController;
import com.xzit.ar.common.exception.UtilException;
import com.xzit.ar.common.page.Page;
import com.xzit.ar.common.po.user.User;
import com.xzit.ar.common.util.CommonUtil;
import com.xzit.ar.manage.service.user.UserService;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import javax.annotation.Resource;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
/**
 * TODO ${TODO}
 *
 * @author znz 
 * @Date:2021/5/19 17:16.
 */
@Controller
@RequestMapping("/user")
public class UserController extends BaseController {
    @Resource
    private UserService userService;
    /**
     * TODO 加载用户管理界面
     * @return
     */
    @RequestMapping("")
    public String index() {
        return "user/user-index";
    }
    /**
     * TODO 查询用户列表
     * @param model
     * @param query
     * @param state
     * @return
     */
    @RequestMapping("/queryUser")
    public String queryUser(Model model, String query, String state, String isAdmin) {
        // 分页类
        Page<Map<String, Object>> page = new Page<>(getPageIndex(), getPageSize());
        Map<String, Object> user = new HashMap<>();
        // 参数校验
        if (CommonUtil.isNotEmpty(query)) {
            user.put("query", "%" + query + "%");
        }
        if (CommonUtil.isNotEmpty(state)) {
            user.put("state", state);
        }
        if (CommonUtil.isNotEmpty(isAdmin)) {
            user.put("isAdmin", isAdmin);
        }
        page.setQueryMap(user);
        // 查询用户
        userService.queryUser(page);
        // 数据返回
        model.addAttribute("page", page);
        model.addAttribute("query", query);
        model.addAttribute("state", state);
        model.addAttribute("isAdmin", isAdmin);
        return "user/user-query";
    }
    @RequestMapping("/add")
    public String userAddPage(Model model) {
        model.addAttribute("sex", false);
        return "user/user-add";
    }
    @RequestMapping(value = "/add/submit", method = RequestMethod.POST)
    public String userAddSubmit(Model model,
                                @RequestParam("account") String account,
                                @RequestParam("trueName") String trueName,
                                @RequestParam("isAdmin") String isAdmin,
                                @RequestParam("email") String email,
                                @RequestParam("introduce") String introduce) throws UtilException {
        if (CommonUtil.isNotEmpty(account)) {
            Map<String, Object> _user = userService.getUserByAccount(account);
            if (_user != null) {
                setMessage(account + " 已存在");
                System.out.println(account + " 已存在");
                return "redirect:/user.action";
            } else {
                User user = new User();
                user.setAccount(account);
                user.setTrueName(trueName);
                user.setEmail(email);
                user.setIsAdmin(isAdmin);
                user.setIntroduce(introduce);
                user.setState("A");
                user.setPassword(CommonUtil.md5("12345678"));
                user.setImageId(1);
                user.setStateTime(new Date());
                user.setCreateTime(new Date());
                userService.addUser(user);
            }
        }
        return "redirect:/user.action";
    }
}
/**
 * TODO ${TODO}
 *
 * @author znz 
 * @Date:2021/5/19 17:16.
 */
package com.xzit.ar.manage.controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import com.xzit.ar.common.base.BaseController;
import com.xzit.ar.common.constant.WebConstant;
/**
 * TODO ${TODO}
 *
 * @author znz 
 * @Date:2021/5/19 17:16.
 */
@Controller
@RequestMapping("")
public class ManageController extends BaseController {
  /**
   * @Description: TODO 空请求跳转<br>
   * @author znz <br>
   * @date 2021年12月23日 下午12:36:56 <br>
   */
  @RequestMapping(value = "/manage", method = RequestMethod.GET)
  public String index(ModelMap map) throws Exception {
    return "main/index";
  }
  /**
   * @Description: TODO 加载 欢迎界面 <br>
   * @author znz <br>
   * @date 2016年1月3日 下午4:23:41 <br>
   */
  @RequestMapping("/manage/welcome")
  public String welcomeManage(Model model) {
    return "main/welcome";
  }
  /**
   * @Description: TODO 错误请求跳转<br>
   * @author znz <br>
   * @date 2021年12月23日 上午11:46:19 <br>
   */
  @RequestMapping(method = RequestMethod.GET, value = "/error/{errCode}")
  public String error(@PathVariable("errCode") String errCode) {
    return "404".equals(errCode) ? WebConstant.PAGE_ERROR_404 : WebConstant.PAGE_ERROR_500;
  }
}
/**
 * @Title: ControllerReflect.java <br>
 * @Package com.xzit.ar.manage.controller <br>
 * @Description: TODO <br>
 * @author znz <br>
 * @date 2021年1月3日 上午10:25:46 <br>
 * @version V1.0 <br>
 */
package com.xzit.ar.manage.controller.right;
import java.util.List;
import javax.annotation.Resource;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import com.xzit.ar.common.base.BaseController;
import com.xzit.ar.common.exception.ServiceException;
import com.xzit.ar.common.page.Page;
import com.xzit.ar.common.po.role.Right;
import com.xzit.ar.common.util.privilege.PrivilegeUtil;
import com.xzit.ar.manage.service.right.RightService;
/**
 * @ClassName: ControllerReflect <br>
 * @Description: TODO <br>
 * @author znz <br>
 * @date 2021年1月3日 上午10:25:46 <br>
 * @version V1.0 <br>
 */
@Controller
@RequestMapping("/right")
public class RightController extends BaseController {
    @Resource
    private RightService rightService;
    /**
     * @Description: TODO 加载权限管理索引界面<br>
     * @author znz <br>
     * @date 2021年1月4日 上午11:39:33 <br>
     */
    @RequestMapping("/indexRight")
    public String indexRight() {
        return "authority/right/right-index";
    }
    @RequestMapping("/queryRights")
    public String queryRights(Model model, String queryInput) throws ServiceException {
        Page<Right> page = new Page<Right>();
        page.setPageIndex(getPageIndex());
        page.setPageSize(getPageSize());
        rightService.queryRights(page, queryInput);
        model.addAttribute("page", page);
        model.addAttribute("queryInput", queryInput);
        return "authority/right/right-query";
    }
    /**
     * @Title: addRight
     * @Description: TODO addRight
     */
    @RequestMapping("/addRight")
    public String addRight() {
        return null;
    }
    @RequestMapping("/updateRight")
    public String updateRight(Model model, @RequestParam("rightId") Integer rightId) throws ServiceException {
        Right right = rightService.selectById(rightId);
        model.addAttribute("right", right);
        setMessage(model, "只能改变权限名、是否公开");
        return "authority/right/right-update";
    }
    @RequestMapping("/updateRightSubmit")
    public String updateRightSubmit(Model model, Right right) throws ServiceException {
        int row = 0;
        if (right != null) {
            // 更新操作
            row = rightService.updateRight(right);
        }
        // 结果判断
        if (row < 1) {
            setMessage(model, "修改失败!");
        } else {
            setMessage(model, "修改成功!");
        }
        return "forward:queryRights.action";
    }
    /**
     * @Title: scanAddRights
     * @Description: TODO 扫描并添加未被添加的权限
     */
    @RequestMapping("/scanAddRights")
    public String scanAddRights(Model model) throws ServiceException {
        int newRights = 0;
        // 索引当前所有权限url
        List<String> rightUrlList = PrivilegeUtil.detectAllRightURL();
        for (String rightUrl : rightUrlList) {
            // 判断是否存在
            if (rightService.selectByRightUrl(rightUrl) == null) {
                // 生成默认格式right
                Right right = PrivilegeUtil.makeDefaultRight(rightUrl);
                // 持久化right
                if (rightService.saveRight(right) > 0) {
                    newRights++;
                }
            }
        }
        if (newRights > 0) {
            setMessage(model, "新增权限" + newRights + "条权限");
        } else {
            setMessage(model, "没有新增权限");
        }
        return "forward:queryRights.action";
    }
}
/**
 * @Title: RoleController.java
 * @Package com.xzit.uscdl.manage.controller.right
 * @Description: TODO
 * @author znz
 * @date 2021年3月15日 下午7:05:25
 * @version V1.0
 */
package com.xzit.ar.manage.controller.right;
import java.util.ArrayList;
import java.util.List;
import javax.annotation.Resource;
import com.xzit.ar.common.base.BaseController;
import com.xzit.ar.common.exception.ServiceException;
import com.xzit.ar.common.page.Page;
import com.xzit.ar.common.po.role.Right;
import com.xzit.ar.common.po.role.Role;
import com.xzit.ar.common.util.CommonUtil;
import com.xzit.ar.manage.service.right.RightService;
import com.xzit.ar.manage.service.right.RoleService;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
/**
 * @author znz
 * @ClassName: RoleController
 * @Description: TODO
 * @date 2021年3月15日 下午7:05:25
 */
@Controller
@RequestMapping("/role")
public class RoleController extends BaseController {
    @Resource
    private RoleService roleService;
    @Resource
    private RightService rightService;
    @RequestMapping("")
    public String index() {
        return "authority/role/role-index";
    }
    @RequestMapping("/queryRole")
    public String queryRole(Model model) throws ServiceException {
        Page<Role> page = new Page<>(getPageIndex(), getPageSize());
        // 传递数据
        model.addAttribute("page", roleService.queryRole(page));
        return "authority/role/role-query";
    }
    @RequestMapping("/edit")
    public String edit(Model model) {
        return "";
    }
    @RequestMapping("/editSubmit")
    public String editSubmit() {
        return "";
    }
    @RequestMapping("/add")
    public String add() {
        return "";
    }
    @RequestMapping("/addSubmit")
    public String addSubmit() {
        return "";
    }
    @RequestMapping("/allot")
    public String allot(Model model, Integer roleId) throws ServiceException {
        // 传递数据
        model.addAttribute("role", roleService.getRoleById(roleId));
        // 所有权限
        model.addAttribute("rightList", rightService.getIsNotPublicRights());
        // 角色已分配的权限
        List<Right> roleRights = roleService.getRightsByRole(roleId);
        List<Integer> rightIds = new ArrayList<>();
        for (Right right : roleRights) {
            rightIds.add(right.getRightId());
        }
        model.addAttribute("roleRights", roleRights);
        model.addAttribute("rightIds", rightIds);
        return "authority/role/role-allot";
    }
    @RequestMapping("/allotSubmit")
    public String allotSubmit(Model model, String rightIds, Integer roleId) throws ServiceException {
        List<Integer> idList = CommonUtil.splitIds(rightIds);
        if (roleService.updateRoleRights(roleId, idList) > 0) {
            setMessage(model, "更新成功");
        } else {
            setMessage(model, "更新失败");
        }
        return "forward:queryRole.action";
    }
}
相关文章
|
3月前
|
Java 数据库连接 Maven
手把手教你如何搭建SSM框架、图书商城系统案例
这篇文章是关于如何搭建SSM框架以及实现一个图书商城系统的详细教程,包括了项目的配置文件整合、依赖管理、项目结构和运行效果展示,并提供了GitHub源码链接。
手把手教你如何搭建SSM框架、图书商城系统案例
|
18天前
|
前端开发 Oracle 关系型数据库
关于使用SSM+JSP开发时setter、getter隐式调用问题的小结
本文主要分享了在使用SSM+JSP进行网站开发时,因忽视setter、getter的隐式调用问题而导致的常见bug及其解决方法。详细介绍了setter和getter的隐式调用时机,并给出了具体示例,帮助开发者避免类似问题。
42 11
|
2月前
|
Java 应用服务中间件 数据库连接
ssm项目整合,简单的用户管理系统
文章介绍了一个使用SSM框架(Spring、SpringMVC、MyBatis)构建的简单用户管理系统的整合过程,包括项目搭建、数据库配置、各层代码实现以及视图展示。
ssm项目整合,简单的用户管理系统
|
2月前
|
XML Java 数据库连接
如何搭建SSM框架、图书商城系统
这是一份详尽的《Spring + SpringMVC + Mybatis 整合指南》,作者耗时良久整理出约五万字的内容,现已经全部笔记公开。此文档详细地介绍了如何搭建与整合SSM框架,具体步骤包括创建Maven项目、添加web骨架、配置pom文件以及整合Spring、SpringMVC和Mybatis等。无论是对初学者还是有一定基础的开发者来说,都是很好的学习资源。此外,作者还提供了项目源码的GitHub链接,方便读者实践。虽然当前主流推荐学习SpringBoot,但了解SSM框架仍然是不可或缺的基础。
36 0
|
3月前
|
SQL Java 应用服务中间件
使用SSM搭建图书商城管理系统(完整过程介绍、售后服务哈哈哈)
这篇文章是关于如何使用SSM框架搭建图书商城管理系统的教程,包括完整过程介绍、常见问题解答和售后服务,提供了项目地址、运行环境配置、效果图展示以及运行代码的步骤。
使用SSM搭建图书商城管理系统(完整过程介绍、售后服务哈哈哈)
|
4月前
|
存储 关系型数据库 测试技术
基于ssm+vue的校园驿站管理系统+(源码+部署说明+演示视频+源码介绍)(2)
基于ssm+vue的校园驿站管理系统+(源码+部署说明+演示视频+源码介绍)
71 1
|
4月前
|
安全 数据挖掘 测试技术
基于SSM+Vue的家居商城系统(源码+部署说明+演示视频)(2)
基于SSM+Vue的家居商城系统(源码+部署说明+演示视频)
72 0
|
4月前
|
Java 关系型数据库 MySQL
基于SSM+Vue的家居商城系统(源码+部署说明+演示视频)(1)
基于SSM+Vue的家居商城系统(源码+部署说明+演示视频)
65 0
|
5月前
|
搜索推荐 JavaScript Java
计算机Java项目|基于SSM的个性化商铺系统
计算机Java项目|基于SSM的个性化商铺系统
|
5月前
|
前端开发 JavaScript Java
计算机Java项目|SSM智能仓储系统
计算机Java项目|SSM智能仓储系统
下一篇
无影云桌面