基于javaweb+mysql的springboot学生会管理系统(java+springboot+thymeleaf+html+layui+bootstrap+maven+mysql)
运行环境
Java≥8、MySQL≥5.7
开发工具
eclipse/idea/myeclipse/sts等均可配置运行
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明
基于javaweb+mysql的SpringBoot学生会管理系统(java+springboot+thymeleaf+html+layui+bootstrap+maven+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.是否Maven项目: 是;查看源码目录中是否包含pom.xml;若包含,则为maven项目,否则为非maven项目
6.数据库:MySql 5.7版本;
技术栈
-
后端:SpringBoot
-
前端:Thymeleaf+html+layui+jQuery+bootstrap
使用说明
- 使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件; 2. 将项目中application.yml及activiti.cfg.xml配置文件中的数据库配置改为自己的配置; 3. 使用IDEA/Eclipse/MyEclipse导入项目,Eclipse/MyEclipse导入时,若为maven项目请选择maven;若为maven项目,导入成功后请执行maven clean;maven install命令,配置tomcat,然后运行; 4. 运行项目,输入localhost:8085 登录
@Autowired
private IquanxianService permissionService;
/**
* 查询所有权限数据
* @param quanxianv
* @return
*/
@RequestMapping("loadAllPermission")
public Dataobj loadAllPermission(quanxianv quanxianv){
IPage<permisson> page = new Page<>(quanxianv.getPage(), quanxianv.getLimit());
//进行模糊查询
QueryWrapper<permisson> q = new QueryWrapper<>();
//只能查询权限
q.eq("type", Changliang.TYPE_PERMISSION);
q.like(StringUtils.isNotBlank(quanxianv.getTitle()),"title", quanxianv.getTitle());
q.like(StringUtils.isNotBlank(quanxianv.getPercode()),"percode", quanxianv.getPercode());
q.eq(quanxianv.getId()!=null,"pid", quanxianv.getId());
q.orderByAsc("id");
//进行查询
permissionService.page(page,q);
//返回DataGridView
List list =permissionService.list(q);
long num=list.size();
if(list.isEmpty()){
return new Dataobj(null,num);
}else {
//返回DataGridView
return new Dataobj(page.getRecords(), page.getTotal());
}
}
/**
* 添加权限
* @param quanxianv
* @return
*/
@RequestMapping("addPermission")
public resultreturn addPermission(quanxianv quanxianv){
try {
//设置添加类型为 permission
quanxianv.setType(Changliang.TYPE_PERMISSION);
permissionService.save(quanxianv);
return resultreturn.ADD_SUCCESS;
} catch (Exception e) {
e.printStackTrace();
return resultreturn.ADD_ERROR;
}
* @return
*/
@RequestMapping("batchDeletesponsors")
public Resultreturn batchDeletefiles(SponsorVo sponsorVo){
try {
Collection<Serializable> idList = new ArrayList<Serializable>();
for (Integer id : sponsorVo.getIds()) {
idList.add(id);
}
sponsorService.removeByIds(idList);
return Resultreturn.DELETE_SUCCESS;
} catch (Exception e) {
e.printStackTrace();
return Resultreturn.DELETE_ERROR;
}
}
}
@RestController
@RequestMapping("/activitys")
public class HuodonController {
@Autowired
private ActivitysService activitysService;
/**
* 查询活动
* @param
* @return
*/
@RequestMapping("loadAllactivitys")
public Dataobj loadAllGoods1(huodonv huodonv){
login.setLoginip(request.getRemoteAddr());
login.setLogintime(new Date());
loginService.save(login);
// User user = userRenZheng.getUser();
// Client client= new Client();
// client.connectton(user);
// Thread thread=new Thread(client);
// thread.start();
// map.put(user.getName(),client);
//将user存储到session中
session.setAttribute("user", userRenZheng.getUser());
return resultreturn.LOGIN_SUCCESS;
}
} catch (UnknownAccountException e) {
return resultreturn.LOGIN_ERROR_PASS;
}catch (IncorrectCredentialsException e){
return resultreturn.LOGIN_ERROR_PASS;
}
}else {
return resultreturn.LOGIN_ERROR_CODE;
}
}
//查询当前用户信息
@RequestMapping("getNowUser")
public User getNowUser(HttpSession session) {
//1.获取当前session中的user
User user1 = (User) session.getAttribute("user");
return user1;
}
//
// @RequestMapping("readMessage")
// public String readMessage(HttpSession session){
// User user= (User) session.getAttribute("user");
// Client client = null;
// String message="";
// for (String s:map.keySet()){
//
// if (s==user.getName()){
// client=map.get(s);
// message=client.returnMessage();
// }
// }
} catch (Exception e) {
e.printStackTrace();
return Resultreturn.UPDATE_ERROR;
}
}
//删除赞助商
@RequestMapping("deletesponsors")
public Resultreturn deletesponsors(Integer id){
try {
sponsorService.removeById(id);
return Resultreturn.DELETE_SUCCESS;
} catch (Exception e) {
e.printStackTrace();
return Resultreturn.DELETE_ERROR;
}
}
/**
* 批量删除
* @param sponsorVo 选中的
* @return
*/
@RequestMapping("batchDeletesponsors")
public Resultreturn batchDeletefiles(SponsorVo sponsorVo){
try {
Collection<Serializable> idList = new ArrayList<Serializable>();
for (Integer id : sponsorVo.getIds()) {
idList.add(id);
}
sponsorService.removeByIds(idList);
return Resultreturn.DELETE_SUCCESS;
} catch (Exception e) {
e.printStackTrace();
return Resultreturn.DELETE_ERROR;
}
}
}
} catch (Exception e) {
e.printStackTrace();
return Resultreturn.DELETE_ERROR;
}
}
/**
* 批量删除
* @param plansVo 选中的
* @return
*/
@RequestMapping("batchDeleteplans")
public Resultreturn batchDeletefiles(PlansVo plansVo){
try {
Collection<Serializable> idList = new ArrayList<Serializable>();
for (Integer id : plansVo.getIds()) {
idList.add(id);
}
plansService.removeByIds(idList);
return Resultreturn.DELETE_SUCCESS;
} catch (Exception e) {
e.printStackTrace();
return Resultreturn.DELETE_ERROR;
}
}
}
e.printStackTrace();
return Resultreturn.ADD_ERROR;
}
}
/** 修改赞助商*/
@RequestMapping("updatesponsors")
public Resultreturn updatesponsors(SponsorVo sponsorVo){
try {
sponsorService.updateById(sponsorVo);
return Resultreturn.UPDATE_SUCCESS;
} catch (Exception e) {
e.printStackTrace();
return Resultreturn.UPDATE_ERROR;
}
}
//删除赞助商
@RequestMapping("deletesponsors")
public Resultreturn deletesponsors(Integer id){
try {
sponsorService.removeById(id);
return Resultreturn.DELETE_SUCCESS;
} catch (Exception e) {
e.printStackTrace();
return Resultreturn.DELETE_ERROR;
}
}
/**
* 批量删除
* @param sponsorVo 选中的
* @return
*/
@RequestMapping("batchDeletesponsors")
public Resultreturn batchDeletefiles(SponsorVo sponsorVo){
try {
Collection<Serializable> idList = new ArrayList<Serializable>();
for (Integer id : sponsorVo.getIds()) {
idList.add(id);
}
sponsorService.removeByIds(idList);
return Resultreturn.DELETE_SUCCESS;
} catch (Exception e) {
e.printStackTrace();
return Resultreturn.DELETE_ERROR;
}
}
try {
records records = new records();//实例化审核记录实体类
com.ywj.system.model.leaver useleaver=new leaver();//实例化请假实体类
Map<String, Object> variables = new HashMap<String, Object>();//实例化map集合
User user = (User) session.getAttribute("user");//通过session获取当前用户信息
if(user.getRemark().equals("干事")) {//判断当前用户身份
QueryWrapper<leaver> queryWrapper = new QueryWrapper<>();
//查询请假人和请假状态为审核中的请假单
queryWrapper.eq("leaver", task.getLeaver()).eq("status", 2);
List<leaver> leaver= leaverService.list(queryWrapper);
QueryWrapper<leaver> qu = new QueryWrapper<>();
//查询请假人和请假状态为被驳回的请假单
qu.eq("leaver", task.getLeaver()).eq("status", 3);
List<leaver> lea= leaverService.list(qu);
if(lea.isEmpty()){//如果为空表示当前任务为初次办理
//循环遍历查询出来的请假状态为审核中的请假单
for (com.ywj.system.model.leaver item:leaver) {
//设置流程变量以便传入流程中
variables.put("请假人", item.getLeaver());
variables.put("请假id", item.getId());
variables.put("请假类型", item.getStyle());
variables.put("请假原因", item.getLeavereson());
variables.put("备注", item.getRemark());
variables.put("请假时间", new Date());
variables.put("请假流程", 0);
records.setLeaverid(item.getId());
}
}else {//否则表示当前任务为二次办理
//遍历请假状态为被驳回的请假单
for (com.ywj.system.model.leaver leaver1:lea) {
//设置流程变量以便传入流程中
variables.put("请假人", leaver1.getLeaver());
variables.put("请假id", leaver1.getId());
variables.put("请假类型", leaver1.getStyle());
variables.put("请假原因", leaver1.getLeavereson());
variables.put("备注", leaver1.getRemark());
records.setLeaverid(leaver1.getId());
}
}
//设置流程变量
variables.put("请假时间", new Date());
variables.put("干事批注", task.getGanpi());
//审核记录
records.setId(task.getId());
records.setName(task.getName());
records.setPizhu(task.getGanpi());
records.setRecordtime(new Date());
records.setStatu(1);
variables.put("dapartment", user.getLogintype().toString());
return resultreturn.DELETE_ERROR;
}
}
}
@RestController
@RequestMapping("/files")
public class FilesControler {
@Autowired
private FilesService filesService;
/**
* 查询文件
* @param
* @return
*/
@RequestMapping("loadAllfiles")
public Dataobj loadAllfiles(FileVo fileVo){
IPage<file> page = new Page<>(fileVo.getPage(),fileVo.getLimit());
QueryWrapper<file> q = new QueryWrapper<>();
q.like(StringUtils.isNotBlank(fileVo.getFilename()),"filename",fileVo.getFilename());
q.like(StringUtils.isNotBlank(fileVo.getDept()),"dept",fileVo.getDept());
q.like(StringUtils.isNotBlank(fileVo.getPersoncharge()),"personcharge",fileVo.getPersoncharge());
q.orderByAsc("fileid");
filesService.page(page,q);
List list =filesService.list(q);
this.processEngine.getTaskService().complete(task.getId().toString(), variables);
} else if(user.getRemark().equals("部长")) {
if(task.getLeaver().equals(user.getName())){//如果成立表示部长请假
QueryWrapper<leaver> queryWrapper = new QueryWrapper<>();
//查询请假状态为初始化的请假单
queryWrapper.eq("leaver", task.getLeaver()).eq("status", 2);
List<leaver> leaver= leaverService.list(queryWrapper);
QueryWrapper<leaver> qu = new QueryWrapper<>();
//查询请假状态为被驳回的请假单
qu.eq("leaver", task.getLeaver()).eq("status", 3);
List<leaver> lea= leaverService.list(qu);
if(lea.isEmpty()){//如果为空表示初次办理任务
//循环遍历请假状态为初始化的请假单
for (com.ywj.system.model.leaver item:leaver) {
//将信息加入map,以便传入流程中
variables.put("请假人", item.getLeaver());
variables.put("请假id", item.getId());
variables.put("请假类型", item.getStyle());
variables.put("请假原因", item.getLeavereson());
variables.put("备注", item.getRemark());
variables.put("请假时间", new Date());
records.setLeaverid(item.getId());
}
}else {//循环遍历请假状态为被驳回的请假单
for (com.ywj.system.model.leaver leaver1:lea) {
//将信息加入map,以便传入流程中
variables.put("请假人", leaver1.getLeaver());
variables.put("请假id", leaver1.getId());
variables.put("请假类型", leaver1.getStyle());
variables.put("请假原因", leaver1.getLeavereson());
variables.put("备注", leaver1.getRemark());
records.setLeaverid(leaver1.getId());
}
}
//设置流程变量,确保流程正常运行
variables.put("部长批注", task.getPi());
variables.put("请假时间", new Date());
//设置审核记录
records.setId(task.getId());
records.setName(task.getName());
records.setPizhu(task.getPi());
records.setRecordtime(new Date());
records.setStatu(1);
//添加审核记录
recordsService.save(records);
}else {//表示干事请假
//将信息加入map,以便传入流程
variables.put("result", task.getResult());
* @param userv
* @return
*/
@RequestMapping("updateUser")
public resultreturn updateUser(userv userv){
try {
userService.updateById(userv);
return resultreturn.UPDATE_SUCCESS;
} catch (Exception e) {
e.printStackTrace();
return resultreturn.UPDATE_ERROR;
}
}
/**
* 删除用户
* @param id
* @return
*/
@RequestMapping("deleteUser/{id}")
public resultreturn deleteUser(@PathVariable("id") Integer id){
try {
userService.removeById(id);
return resultreturn.DELETE_SUCCESS;
} catch (Exception e) {
e.printStackTrace();
return resultreturn.DELETE_ERROR;
}
}
/**
* 根据用户id查询角色并选中已拥有的角色
* @param id 用户id
* @return
*/
@RequestMapping("initRoleByUserId")
public Dataobj initRoleByUserId(Integer id){
//1.查询所有可用的角色
QueryWrapper<role> q = new QueryWrapper<>();
queryWrapper.orderByAsc("id");
roleService.page(page,queryWrapper);
List list =roleService.list(queryWrapper);
long num=list.size();
if(list.isEmpty()){
return new Dataobj(null,num);
}else {
//返回DataGridView
return new Dataobj(page.getRecords(), page.getTotal());
}
}
/**
* 添加角色
* @param jiaosev
* @return
*/
@RequestMapping("addRole")
public resultreturn addRole(jiaosev jiaosev){
try {
roleService.save(jiaosev);
return resultreturn.ADD_SUCCESS;
} catch (Exception e) {
e.printStackTrace();
return resultreturn.ADD_ERROR;
}
}
/**
* 修改角色
* @param jiaosev
* @return
*/
@RequestMapping("updateRole")
public resultreturn updateRole(jiaosev jiaosev){
try {
roleService.updateById(jiaosev);
return resultreturn.UPDATE_SUCCESS;
} catch (Exception e) {
e.printStackTrace();
return resultreturn.UPDATE_ERROR;
}
}
/**
* 删除角色
}
else {
return Resultreturn.DELETE_ERRORss;
}
} catch (Exception e) {
e.printStackTrace();
return Resultreturn.DELETE_ERROR;
}
}
}
public class ServerSocket implements Runnable {
String message="";
public String getMessage() {
return this.message;
}
public void setMessage(String message) {
this.message = message;
}
java.net.ServerSocket server = null;
Socket socket = null;
public List<Socket> sockets=new ArrayList<Socket>();
public static int socketNum=0;
HttpSession session;
public ServerSocket(int port) throws IOException {
server=new java.net.ServerSocket(port);
}
public void sendmsg(String tf,Socket socket) {
//写操作
long num=list.size();
if(list.isEmpty()){
return new Dataobj(null,num);
}else {
//返回DataGridView
return new Dataobj(page.getRecords(), page.getTotal());
}
}
/**
* 删除登陆容器
* @return
*/
@RequestMapping("deleteLogin")
public resultreturn deleteLogin(Integer id){
try {
loginService.removeById(id);
return resultreturn.DELETE_SUCCESS;
} catch (Exception e) {
e.printStackTrace();
return resultreturn.DELETE_ERROR;
}
}
/**
* 批量删除
* @param
* @return
*/
@RequestMapping("batchDeletelogin")
public resultreturn batchDeletelogin(loginV loginV){
try {
Collection<Serializable> idList = new ArrayList<>();
for (Integer id : loginV.getIds()) {
idList.add(id);
}
loginService.removeByIds(idList);
return resultreturn.DELETE_SUCCESS;
} catch (Exception e) {
e.printStackTrace();
return resultreturn.DELETE_ERROR;
}
}
}
List<org.activiti.engine.task.Task> list =this.processEngine.getTaskService()
.createTaskQuery()
.taskAssignee(username)//个人任务的查询
.list();
List<task> list1=new ArrayList<task>();
if(list!=null && list.size()>0){
for (org.activiti.engine.task.Task task1:list) {
task tak=new task();
Integer procressId = (Integer) taskService.getVariable(task1.getId(), "请假流程");
tak.setProcressId(procressId);
tak.setId(Integer.parseInt(task1.getId()));
tak.setName(task1.getName());
tak.setAssignee(task1.getAssignee());
tak.setProcessInstanceId(task1.getProcessInstanceId());
tak.setCreateTime(task1.getCreateTime());
tak.setLeaver(leaver.getLeaver());
tak.setReason(leaver.getLeavereson());
tak.setLeaverId(leaver.getId());
tak.setRemart(leaver.getRemark());
tak.setTime(new Date());
tak.setStyle(leaver.getStyle());
list1.add(tak);
}
}
return list1;
}
@RequestMapping("loadAllTask")
public Dataobj loadAllTask(HttpSession session) {
User userName = (User) session.getAttribute("user");
QueryWrapper<leaver> queryWrapper=new QueryWrapper<>();
queryWrapper.eq("leaver",userName.getName()).eq("status",3);
List<leaver> leave=leaverService.list(queryWrapper);
QueryWrapper<leaver> query=new QueryWrapper<>();
query.eq("leaver",userName.getName()).eq("status",2);
leaver leave1=leaverService.getOne(query);
List<task> list1 = null;
if (userName.getRemark().equals("干事")&&leave.isEmpty()) {
list1 = findPersonalTask(userName.getName());
}else {
list1 = findPersonalTaskList(userName.getName());
}
long num = list1.size();
if (list1.size() == 0) {
}
}
/**
* 批量删除
* @param goodsVo 选中
* @return
*/
@RequestMapping("batchDeleteGoods")
public Resultreturn batchDeletefiles(GoodsVo goodsVo){
try {
Collection<Serializable> idList = new ArrayList<Serializable>();
for (Integer id : goodsVo.getIds()) {
idList.add(id);
}
goodsService.removeByIds(idList);
return Resultreturn.DELETE_SUCCESS;
} catch (Exception e) {
e.printStackTrace();
return Resultreturn.DELETE_ERROR;
}
}
//删除物资
@RequestMapping("deleteGoods")
public Resultreturn deleteGoods(Integer id, Integer status){
try {
if (status==1)
{
goodsService.removeById(id);
return Resultreturn.DELETE_SUCCESS;
}
else {
return Resultreturn.DELETE_ERRORs;
}
@RequestMapping("updateLeave")
public resultreturn updateLeave(LeaveV leaveV){
try {
leaverService.updateById(leaveV);
return resultreturn.UPDATE_SUCCESS;
} catch (Exception e) {
e.printStackTrace();
return resultreturn.UPDATE_ERROR;
}
}
/**
* 批量删除
*/
@RequestMapping("batchDeleterleaves")
public Resultreturn batchDeleterleaves(LeaveV leaveV){
try {
Collection<Serializable> idList = new ArrayList<Serializable>();
for (Integer id1 : leaveV.getIds()) {
idList.add(id1);
}
leaverService.removeByIds(idList);
return Resultreturn.DELETE_SUCCESS;
} catch (Exception e) {
e.printStackTrace();
return Resultreturn.DELETE_ERROR;
}
}
/**
* 删除请假单
* @param id
* @return
*/
@RequestMapping("deleteLeave")
public resultreturn deleteLeave(Integer id){
try {
leaverService.removeById(id);
return resultreturn.DELETE_SUCCESS;
} catch (Exception e) {
} catch (Exception e) {
e.printStackTrace();
return resultreturn.UPDATE_ERROR;
}
}
/**
* 删除角色
* @param id
* @return
*/
@RequestMapping("deleteRole")
public resultreturn deleteRole(Integer id){
try {
this.roleService.removeById(id);
return resultreturn.DELETE_SUCCESS;
} catch (Exception e) {
e.printStackTrace();
return resultreturn.DELETE_ERROR;
}
}
/**
* 根据用户id查询角色并选中已拥有的角色
* @param id 用户id
* @return
*/
@RequestMapping("initPermissionByRoleId")
public Dataobj initPermissionByRoleId(Integer id){
//1.查询所有可用的权限
QueryWrapper<permisson> q = new QueryWrapper<>();
q.eq("available", changliang.AVAILABLE_TRUE);
List<Map<String, Object>> listMaps = permissionService.listMaps(q);
//2.查询当前角色拥有的PID集合
List<Integer> currentUserRoleIds = roleService.queryRolePermissionIdsByRid(id);
for (Map<String, Object> map : listMaps) {
Boolean LAY_CHECKED=false;
Integer perssionId = (Integer) map.get("pid");
for (Integer pid : currentUserRoleIds) {
//如果当前角色已有该权限,则让LAY_CHECKED为true。LAY_CHECKED为true时,复选框选中
if (pid.equals(perssionId)){
LAY_CHECKED=true;
break;
}
}
map.put("LAY_CHECKED",LAY_CHECKED);
}