基于javaweb+mysql的springboot学生会管理系统(java+springboot+thymeleaf+html+layui+bootstrap+maven+mysql)
私信源码获取及调试交流
运行环境
Java≥8、MySQL≥5.7
开发工具
eclipse/idea/myeclipse/sts等均可配置运行
适用
课程设计,大作业,毕业设计,项目练习,学习演示等
功能说明
基于javaweb的SpringBoot学生会管理系统(java+springboot+thymeleaf+html+layui+bootstrap+maven+mysql)
项目介绍
学生会管理系统.主要功能包括:
后台首页:最新活动展示、最新公告、学生会部门职能介绍; 财务管理:资金报销登记、赞助商管理; 物资管理:物资借还管理、全部物资;添加、编辑、删除; 日常事务管理:工作计划管理、活动管理、文件管理; 申请请假:添加、修改、删除、查看;
我的待办;
环境需要
1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。
2.IDE环境:IDEA,Eclipse,Myeclipse都可以。推荐IDEA;
3.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS;
4.数据库:MySql 5.7版本;
技术栈
-
后端:SpringBoot
-
前端:Thymeleaf+html+layui+jQuery+bootstrap
使用说明
运行项目,输入localhost:8085 登录
if(page.getRecords().isEmpty()){
return new Dataobj(null,a);
}else {
return new Dataobj(page.getRecords(),page.getTotal());
}
}
@RequestMapping(value = "/LoadAllProgres",method = RequestMethod.GET)
public ModelAndView loadAllRecord() {
QueryWrapper<records> q=new QueryWrapper<>();
List<records> list=recordsService.list(q);
return new ModelAndView("system/myverify/LeaveManagers","records",list);
}
/*添加请假单*/
@RequestMapping("addLeave")
public resultreturn addLeave(LeaveV leaveV,HttpSession session){
try {
User user= (User) session.getAttribute("user");
if(user.getRemark().equals("主席")){
return resultreturn.Qing_ERROR;
}else {
QueryWrapper<leaver> queryWrapper=new QueryWrapper<>();
queryWrapper.eq("leaver",user.getName()).eq("status",2);
QueryWrapper<leaver> q=new QueryWrapper<>();
q.eq("leaver",user.getName()).eq("status",0);
leaver leaver=leaverService.getOne(queryWrapper);
leaver leaver1=leaverService.getOne(q);
if(leaver!=null||leaver1!=null){
return resultreturn.jia_ERROR;
}else if(leaver1==null&&leaver==null){
leaveV.setLeaver(user.getName());
leaveV.setStatus(0);
leaverService.save(leaveV);
}
return resultreturn.ADD_SUCCESS;
}
} catch (Exception e) {
e.printStackTrace();
return resultreturn.ADD_ERROR;
}
}
@RestController
@RequestMapping("/role")
public class JiaoseController {
@Autowired
private IjiaoseService roleService;
@Autowired
private IquanxianService permissionService;
/**
* 查询所有角色
* @param jiaosev
* @return
*/
@RequestMapping("loadAllRole")
public Dataobj loadAllRole(jiaosev jiaosev){
IPage<role> page = new Page<role>(jiaosev.getPage(), jiaosev.getLimit());
QueryWrapper<role> queryWrapper = new QueryWrapper<role>();
queryWrapper.like(StringUtils.isNotBlank(jiaosev.getName()),"name", jiaosev.getName());
queryWrapper.like(StringUtils.isNotBlank(jiaosev.getRemark()),"remark", jiaosev.getRemark());
queryWrapper.eq(jiaosev.getAvailable()!=null,"available", jiaosev.getAvailable());
queryWrapper.orderByAsc("id");
if (allgoods.getGoodsnum() > 0 && num < allgoods.getGoodsnum()) {
if (brrownum>=0) {
brrownum += num;
allgoods.setBorrownum(brrownum);
allgoods.setGoodsnum(goodssum - num);
AllgoodsService.updateById(allgoods);goodsService.save(goodsVo);
}else {
goodsService.save(goodsVo);
}
return Resultreturn.ADD_SUCCESS;
}else { return Resultreturn.ADD_ERRORs; }
} catch (Exception e) {
e.printStackTrace();
return Resultreturn.ADD_ERROR;
}
}
/*修改物资*/
@RequestMapping("updateGoods")
public Resultreturn updateGoods(GoodsVo goodsVo){
try {
Integer gid=goodsVo.getGid();
Allgoods allgoods=AllgoodsService.getById(gid);
Integer goodssum1=allgoods.getGoodsnum();
Integer brrownum1=allgoods.getBorrownum();
Integer num=goodsVo.getCountnum();
Integer num1=goodsVo.getGoodsnum();
if(goodsVo.getStatus()==1){
allgoods.setGoodsnum(goodssum1+num1);
allgoods.setBorrownum(brrownum1-num1);
AllgoodsService.updateById(allgoods);
goodsService.updateById(goodsVo);
return Resultreturn.UPDATE_SUCCESS;
}
else {
if (allgoods.getGoodsnum() > 0 && num < allgoods.getGoodsnum()) {
if (num>0) {
brrownum1 = num + brrownum1;
allgoods.setBorrownum(brrownum1);
allgoods.setGoodsnum(goodssum1 - num);
AllgoodsService.updateById(allgoods);
goodsService.updateById(goodsVo);
} else if (0 == num) {
goodsService.updateById(goodsVo);
} else {
brrownum1 = brrownum1 +num;
allgoods.setBorrownum(brrownum1);
allgoods.setGoodsnum(goodssum1-num);
AllgoodsService.updateById(allgoods);
goodsService.updateById(goodsVo);
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) {
//写操作
OutputStream os= null;
SimpleDateFormat simpleDateFormat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
try {
os= socket.getOutputStream();
BufferedOutputStream bufferedOutputStream=new BufferedOutputStream(os);
message+="\n"+" "+"我:"+simpleDateFormat.format(new Date())+"\n"+" "+tf;
bufferedOutputStream.write((tf).getBytes());
bufferedOutputStream.flush();
} catch (IOException e) {
e.printStackTrace();
}
// try {
// os.close();
// } catch (IOException e) {
// e.printStackTrace();
// }
}
@Override
public void run() {
try{
boolean flag=true;
AuthenticationToken token = new UsernamePasswordToken(userv.getLoginname(), userv.getPassword());
Subject subject = SecurityUtils.getSubject();
try {
//对用户进行认证登陆
subject.login(token);
//通过subject获取以认证活动的user
UserRenZheng userRenZheng = (UserRenZheng) subject.getPrincipal();
//单一登录操作设置
ServletContext application = session.getServletContext();
Map<Integer, Object> loginMap = (Map<Integer, Object>)application.getAttribute("loginMap");
if (loginMap == null) {
loginMap = new HashMap<Integer, Object>();
}
boolean flag=false;
boolean flag1=false;
for (Integer key : loginMap.keySet()) {
if (userRenZheng.getUser().getId().intValue() == key.intValue()) {
if (session.getId().equals(loginMap.get(key))) {
flag=true;
} else {
flag1=true;
}
}
}
loginMap.put(userRenZheng.getUser().getId(),session.getId());
application.setAttribute("loginMap", loginMap);
// session 销毁时间
session.setMaxInactiveInterval(60*60); //40min失效, -1永不过期
// 将用户保存在session当中
session.setAttribute("sysUserInfo", userRenZheng.getUser());
if(flag){
return resultreturn.LOGIN_ERROR_er;
}else if (flag1){
return resultreturn.LOGIN_ERROR_err;
}
else {
/** 生成加密密码*/
// SimpleHash hash = new SimpleHash("md5",userv.getPassword(), "Love",2);
// System.out.println(hash.toString());
login login=new login();
login.setLoginname(userv.getLoginname());
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);
@RestController
@RequestMapping("/leave")
public class LeaveController {
//获取默认的流程引擎
private ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
//实例流程id,用来记录流程,以便获取当前任务
private String processInstanceId;
private String progressid;
@Autowired
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);
long num=list.size();
if(list.isEmpty()){
return new Dataobj(null,num);
}else {
//返回DataGridView
return new Dataobj(page.getRecords(), page.getTotal());
}
}
@RequestMapping("loadAllfilesForSelect")
public Dataobj loadAllProviderForSelect(){
QueryWrapper<file> q = new QueryWrapper();
List<file> list = filesService.list(q);
return new Dataobj(list);
}
/**
* 添加文件
* @param
* @return
*/
@RequestMapping("addfiles")
public Resultreturn addfile(FileVo fileVo){
try {
filesService.save(fileVo);
return Resultreturn.ADD_SUCCESS;
} catch (Exception e) {
e.printStackTrace();
return Resultreturn.ADD_ERROR;
}
}
/**
* 修改文件
* @param fileVo
* @return
*/
@RequestMapping("updatefiles")
public Resultreturn updatefiles(FileVo fileVo){
try {
filesService.updateById(fileVo);
return Resultreturn.UPDATE_SUCCESS;
} catch (Exception e) {
e.printStackTrace();
return Resultreturn.UPDATE_ERROR;
@RestController
@RequestMapping("/logininfo")
public class Loginmessgage {
@Autowired
private LoginService loginService;
@RequestMapping("loadAlllogininfo")
public Dataobj loadAllNotice(loginV loginV){
IPage<login> page = new Page<>(loginV.getPage(),loginV.getLimit());
QueryWrapper<login> q = new QueryWrapper<>();
//进行模糊查询
q.like(StringUtils.isNotBlank(loginV.getLoginname()),"loginname",loginV.getLoginname());
q.orderByAsc("id");
loginService.page(page,q);
List list =loginService.list(q);
long num=list.size();
if(list.isEmpty()){
return new Dataobj(null,num);
}else {
//返回DataGridView
return new Dataobj(page.getRecords(), page.getTotal());
}
}
@RestController
@RequestMapping("/activitys")
public class HuodonController {
@Autowired
private ActivitysService activitysService;
/**
* 查询活动
* @param
* @return
*/
@RequestMapping("loadAllactivitys")
public Dataobj loadAllGoods1(huodonv huodonv){
IPage<activitys> page = new Page<>(huodonv.getPage(), huodonv.getLimit());
QueryWrapper<activitys> q = new QueryWrapper<>();
q.like(StringUtils.isNotBlank(huodonv.getActivityname()),"activityname", huodonv.getActivityname());
q.like(StringUtils.isNotBlank(huodonv.getUndertakedepart()),"undertakedepart", huodonv.getUndertakedepart());
q.orderByAsc("aid");
activitysService.page(page,q);
List list =activitysService.list(q);
long num=list.size();
* 修改物资
* @param goodsVo
* @return
*/
@RequestMapping("updateGoods1")
public Resultreturn updateGoods1(GoodsVo1 goodsVo){
try {
AllgoodsService.updateById(goodsVo);
return Resultreturn.UPDATE_SUCCESS;
} catch (Exception e) {
e.printStackTrace();
return Resultreturn.UPDATE_ERROR;
}
}
//删除物资
@RequestMapping("deleteGoods1")
public Resultreturn deleteGoods1(Integer id){
try {
AllgoodsService.removeById(id);
return Resultreturn.DELETE_SUCCESS;
} catch (Exception e) {
e.printStackTrace();
return Resultreturn.DELETE_ERROR;
}
}
/**
* 批量删除
* @param goodsVo1 选中的
* @return
*/
@RequestMapping("batchDeleteGoods1")
public Resultreturn batchDeletefiles(GoodsVo1 goodsVo1){
try {
Collection<Serializable> idList = new ArrayList<Serializable>();
for (Integer id : goodsVo1.getIds()) {
idList.add(id);
}
AllgoodsService.removeByIds(idList);
return Resultreturn.DELETE_SUCCESS;
} catch (Exception e) {
e.printStackTrace();
return Resultreturn.DELETE_ERROR;
}
}
}
if (list.size()>0){
map.put("value",true);
}else {
map.put("value",false);
}
return map;
}
/**
* 删除权限
* @param quanxianv
* @return
*/
@RequestMapping("deletePermission")
public resultreturn deletePermission(quanxianv quanxianv){
try {
permissionService.removeById(quanxianv.getId());
return resultreturn.DELETE_SUCCESS;
} catch (Exception e) {
e.printStackTrace();
return resultreturn.DELETE_ERROR;
}
}
}
@RestController
}
/**
* 跳转到用户管理
*
* @return
*/
@RequestMapping("toUserManager")
public String toUserManager() {
return "system/user/userManager";
}
/**
* 跳转到请假
*
* @return
*/
@RequestMapping("toLeaveManager")
public String toLeaveManager() {
return "system/leave/LeaveManager";
}
/**
* 跳转到代办
*
* @return
*/
@RequestMapping("toMyVerifyManager")
public String toRecordManager() {
return "system/myverify/MyVerifyManager";
}
/**
* 跳转到审核记录
*
* @return
*/
@RequestMapping("toRecordsManager")
public String toRecordsManager() {
return "system/myverify/RecordsManager";
}
/**
* 跳转到请假单管理
*
* @return
*/
*/
@RequestMapping("addDept")
public resultreturn addDept(bumenv deptVo){
try {
deptService.save(deptVo);
return resultreturn.ADD_SUCCESS;
} catch (Exception e) {
e.printStackTrace();
return resultreturn.ADD_ERROR;
}
}
/**
* 更新部门
* @param deptVo
* @return
*/
@RequestMapping("updateDept")
public resultreturn updateDept(bumenv deptVo){
try {
deptService.updateById(deptVo);
return resultreturn.UPDATE_SUCCESS;
} catch (Exception e) {
e.printStackTrace();
return resultreturn.UPDATE_ERROR;
}
}
/**
* 删除部门
* @param deptVo
* @return
*/
@RequestMapping("deleteDept")
public resultreturn deleteDept(bumenv deptVo){
try {
deptService.removeById(deptVo.getDid());
return resultreturn.DELETE_SUCCESS;
} catch (Exception e) {
e.printStackTrace();
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);
long num=list.size();
sponsorService.save(sponsorVo);
return Resultreturn.ADD_SUCCESS;
} catch (Exception e) {
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);
}
public static void main(String[] args) throws IOException {
}
}
@RestController
@RequestMapping("/plans")
public class PlansController {
@Autowired
private PlansService plansService;
/**
* 查询计划
* @param
* @return
*/
@RequestMapping("loadAllplans")
public Dataobj loadAllGoods1(PlansVo plansVo){
IPage<plans> page = new Page<>(plansVo.getPage(),plansVo.getLimit());
QueryWrapper<plans> q = new QueryWrapper<>();
q.like(StringUtils.isNotBlank(plansVo.getPlanname()),"planname",plansVo.getPlanname());
q.like(StringUtils.isNotBlank(plansVo.getSumitdepart()),"sumitdepart",plansVo.getSumitdepart());
q.like(StringUtils.isNotBlank(plansVo.getSumitor()),"sumitor",plansVo.getSumitor());
q.orderByAsc("pid");
plansService.page(page,q);
List list =plansService.list(q);
long num=list.size();
if(list.isEmpty()){
return new Dataobj(null,num);
}
}
/**
* 删除部门
* @param deptVo
* @return
*/
@RequestMapping("deleteDept")
public resultreturn deleteDept(bumenv deptVo){
try {
deptService.removeById(deptVo.getDid());
return resultreturn.DELETE_SUCCESS;
} catch (Exception e) {
e.printStackTrace();
return resultreturn.DELETE_ERROR;
}
}
}
@RestController
@RequestMapping("/logininfo")
public class Loginmessgage {
@Autowired
private LoginService loginService;
@RequestMapping("loadAlllogininfo")
public Dataobj loadAllNotice(loginV loginV){
IPage<login> page = new Page<>(loginV.getPage(),loginV.getLimit());
QueryWrapper<login> q = new QueryWrapper<>();