项目编号: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
登陆:
文章图片
首页
新闻中心
文章图片
班级通讯录
文章图片
校友组织:
文章图片
校友论坛
文章图片
职业招聘
文章图片
校园服务
文章图片
个人后台管理中心
文章图片
我的班级
文章图片
我的论坛
文章图片
我的招聘
文章图片
系统管理员进入:
http://localhost:8080/ar-portal/index.action
sa/12345678
【java项目|基于SSM实现校友录管理平台】
后台管理主界面
文章图片
信息中心
文章图片
组织管理
文章图片
招聘管理
文章图片
用户管理
文章图片
权限管理
文章图片
数据字典管理
文章图片
本系统功能完整,全面,运行无误,结构清晰,使用SSM框架开发,适合做毕业设计使用。做毕业设计,可以找指南针毕业设计服务。
部分功能实现代码:
/**
* @Title: LoginServiceImpl.java
* @Package com.xzit.ar.manage.service.impl
* @Description: TODO
* @date 2021年11月2日 下午2:47:21
* @version V1.0
*/
package com.xzit.ar.manage.service.impl;
import java.util.Map;
import javax.annotation.Resource;
import com.xzit.ar.common.exception.ServiceException;
import com.xzit.ar.common.mapper.user.UserMapper;
import com.xzit.ar.common.util.CommonUtil;
import com.xzit.ar.manage.service.LoginService;
/**
* @ClassName: LoginServiceImpl
* @Description: TODO
* @date 2021年11月2日 下午2:47:21
* @version V1.0
*/
public class LoginServiceImpl implements LoginService {
@Resource
private UserMapper userMapper;
@Override
public Map validateUser(String account, String password) throws ServiceException {
Map user = null;
try {
// 关键参数校验
if (CommonUtil.isNotEmpty(account) && CommonUtil.isNotEmpty(password)) {
// 查找用户
user = userMapper.selectByAccount(account);
if (user != null) {
// 校验密码
if (password.equals(user.get("password"))) {
// 加载用户关联信息
//Integer userId = (Integer) (user.get("userId"));
} else {
user.put("userId", null);
user.put("password", null);
}
}
}
} catch (Exception e) {
throw new ServiceException("系统异常,登录失败");
}
return user;
}
}
package com.xzit.ar.manage.service.user.impl;
import com.xzit.ar.common.mapper.user.UserInfoMapper;
import com.xzit.ar.common.mapper.user.UserMapper;
import com.xzit.ar.common.page.Page;
import com.xzit.ar.common.po.user.User;
import com.xzit.ar.common.po.user.UserInfo;
import com.xzit.ar.manage.service.user.UserService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
import java.util.Map;
/**
* TODO ${TODO}
*
* @Date:2021/11/19 20:43.
*/
@Service("userService")
public class UserServiceImpl implements UserService{
@Resource
private UserMapper userMapper;
@Resource
private UserInfoMapper userInfoMapper;
/**
* TODO 查询用户列表
*
* @param page
* @return
*/
@Override
public List
/**
* @Title: RightServiceImpl.java
* @Package com.xzit.ar.manage.service.right.impl
* @Description: TODO
* @date 2021年11月2日 下午10:50:51
* @version V1.0
*/
package com.xzit.ar.manage.service.right.impl;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import com.xzit.ar.common.exception.ServiceException;
import com.xzit.ar.common.mapper.role.RightMapper;
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;
/**
* @author Mr.Black
* @version V1.0
* @ClassName: RightServiceImpl
* @Description: TODO
* @date 2021年1月2日 下午10:50:51
*/
@Service("rightService")
public class RightServiceImpl implements RightService {
@Resource
private RightMapper rightMapper;
@Override
public int saveRight(Right right) throws ServiceException {
int row = 0;
try {
// 为要存储的权限设置权限位、权限码
Integer rightPos = null;
Long rightCode = null;
// 获取数据库当前最高
Map topPosCode = rightMapper.selectTopPosCode();
Integer topPos = null;
Long topCode = null;
// 判断是否已获取权限位、权限码
if (topPosCode != null) {
topPos = (Integer) topPosCode.get("topPos");
topCode = (Long) topPosCode.get("topCode");
}
// 为要存储的权限计算权限位、权限码
if (topPos == null) {
rightPos = 0;
rightCode = 1L;
} else {
// 权限码是否达到最大值
if (topCode >= (1L << 60)) {
rightPos = topPos + 1;
rightCode = 1L;
} else {
rightPos = topPos;
rightCode = topCode << 1;
}
}
System.out.println(rightPos + " " + rightCode);
// 设置权限位、权限码
right.setRightPos(rightPos);
right.setRightCode(rightCode);
// 存储权限
row = rightMapper.save(right);
// 刷新权限列表
PrivilegeUtil.refreshAllRights();
} catch (Exception e) {
throw new ServiceException("操作异常");
}
return row;
}
@Override
public Right selectByRightUrl(String rightUrl) throws ServiceException {
Right right = null;
try {
right = rightMapper.selectByRightUrl(rightUrl);
if (right != null) {
System.out.println("权限 URL : " + rightUrl + " 已存在!");
}
} catch (Exception e) {
throw new ServiceException("系统异常!");
}
return right;
}
@Override
public ListqueryRights(Page page, String queryInput) throws ServiceException {
ListrightList = null;
try {
// 对关键参数的校验
if (queryInput == null) {
queryInput = "";
}
queryInput = "%" + queryInput + "%";
// 查询
rightList = rightMapper.queryRights(page, queryInput);
} catch (Exception e) {
throw new ServiceException("系统异常");
}
return rightList;
}
@Override
public Right selectById(Integer rightId) throws ServiceException {
try {
return rightMapper.selectById(rightId);
} catch (Exception e) {
throw new ServiceException("系统错误");
}
}
@Override
public int updateRight(Right right) throws ServiceException {
int row;
try {
row = rightMapper.update(right);
// 刷新权限列表
PrivilegeUtil.refreshAllRights();
} catch (Exception e) {
throw new ServiceException("系统错误,更改失败");
}
return row;
}
@Override
public ListgetIsNotPublicRights() throws ServiceException {
try {
return rightMapper.getIsNotPublicRights();
} catch (Exception e) {
throw new ServiceException("记载权限时发生错误");
}
}
}
推荐阅读
- java项目|基于Javaweb实现进销存管理系统
- java|pyTorch进阶-torch
- python|【pytorch】pytorch基础
- Java|一共878页,阿里最牛笔记曝光,不敢睁开眼睛
- java架构|看看别人后端API接口性能优化的11个方法,那叫一个优雅
- 【Java面试】如何中断一个正在运行的线程()
- 面试官(请谈谈 Java 中的 I/O 流)
- spring|eureka使用总结
- Java实战|Java SPI 和 API,傻傻分不清()