Java项目:ssm赛事打分系统

作者主页:源码空间站2022

 简介:Java领域优质创作者、Java项目、学习资料、技术互助

文末获取源码

项目介绍

赛事评分系统,SSM框架。该项目分管理员、裁判、选手三个用户角色。

管理员主要功能:
首页、选手管理、裁判管理、赛事管理
裁判主要功能:
首页、评分;
选手主要功能:
首页、报名赛事、查看成绩;

环境需要

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版本;
7.lombok插件 注:必须安装,否则会报错

技术栈

1. 后端:Spring SpringMVC MyBatis
2. 前端:Layui

使用说明

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

运行截图

相关代码 

JudgeController

package com.thunder.controller;

import com.alibaba.fastjson.JSONObject;
import com.thunder.pojo.Judge;
import com.thunder.pojo.Mark;
import com.thunder.pojo.Match;
import com.thunder.pojo.User;
import com.thunder.service.impl.JudgeServiceImpl;
import com.thunder.service.impl.LoginServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

import java.util.Date;
import java.util.Map;


@Controller
@RequestMapping("/judge")
public class JudgeController {

    @Autowired
    JudgeServiceImpl judgeService;
    @Autowired
    LoginServiceImpl loginService;

    /**
     * 跳转 裁判页面
     */
    @RequestMapping("/toJudgePage")
    public String toJudgePage() {
        return "/pages/judge";
    }

    /**
     * 跳转 评分
     */
    @RequestMapping("/toMark")
    public String toMark() {
        return "/pages/judgeMarkPlayer";
    }

    /**
     * 获取所有裁判
     */
    @RequestMapping(value = "/getAllJudge", produces = "application/json;charset=UTF-8")
    @ResponseBody
    public String getAllJudge() {
        //阿里巴巴的json数据格式交互
        JSONObject object = new JSONObject();
        object.put("code", 200);//原来是 code : 0
        object.put("msg", "");
        object.put("data", judgeService.getAllJudge());
        object.put("count", judgeService.getAllJudge().size());

        System.out.println("数据库数据:" + judgeService.getAllJudge().toString());
        return object.toJSONString();
    }

    /**
     * 根异步请求 删除裁判
     */
    @RequestMapping("/deleteJudgeById")
    @ResponseBody
    public String deleteJudgeById(@RequestParam Map map) {
        String currentJudge = (String) map.get("index");
        int result = judgeService.deleteJudgeById(currentJudge);
        if (result > 0) {
            return "1";
        } else {
            return "error";
        }
    }

    //添加 裁判
    @RequestMapping("/addJudgeAjax")
    @ResponseBody
    public String addJudgeAjax(@RequestParam Map map) {
        System.out.println(map);

        String jid = (String) map.get("jid");
        String jname = (String) map.get("jname");
        String jage = (String) map.get("jage");
        String jsex = (String) map.get("jsex");
        System.out.println(jid + " " + jname + " " + jage + " " + jsex);
       
        //判断裁判、选手 写入 user表
        if (jid.contains("P")) {
            System.out.println("注册选手");
            int registerPlayer = loginService.addUser(new User(jid, password));
            if (registerPlayer > 0) {
                System.out.println("注册选手成功!");
            }
        } else if (jid.contains("J")) {
            System.out.println("注册裁判");
            int registerPlayer = loginService.addUser(new User(jid, password));
            if (registerPlayer > 0) {
                System.out.println("注册裁判成功!");
            }
        } else if (jid.equals("admin")) {
            System.out.println("管理员");
        } else {

        }
        //添加 裁判
        int result = judgeService.addJudgeAjax(new Judge(jid, jname, jage, jsex));
        if (result > 0) {
            return "1";
        } else {
            return "error";
        }
    }

    //裁判打分
    @RequestMapping("/mark")
    @ResponseBody
    public String mark(@RequestParam Map map) {
        System.out.println("进入 后台 ==== 打分");
        String pid = (String) map.get("pid");
        String item = (String) map.get("mid");
        String jid = (String) map.get("jid");
        String score = (String) map.get("score");
        System.out.println("分数是:" + score + item + jid + pid);
        int result = judgeService.mark(new Mark(score, item, jid, pid));
        if (result > 0) {
            return "1";
        } else {
            return "error";
        }
    }


}

LoginController

package com.thunder.controller;

import com.thunder.pojo.User;
import com.thunder.service.impl.JudgeServiceImpl;
import com.thunder.service.impl.LoginServiceImpl;
import com.thunder.service.impl.PlayServiceImpl;
import com.thunder.util.CurrentUser;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpSession;
import java.util.Map;

@Controller
public class LoginController {

    @Autowired
    LoginServiceImpl loginService;
    @Autowired
    JudgeServiceImpl judgeService;
    @Autowired
    PlayServiceImpl playService;

    /**
     * 登录验证
     */
    @RequestMapping(value = "/login", produces = "application/json;charset=UTF-8")
    @ResponseBody
    public String Login(@RequestParam Map user, HttpSession session) {
        String account = (String) user.get("account");
        String password = (String) user.get("password");
        if (account.contains("P")) {
            System.out.println("选手登录");
            if (LoginRoute(account, password, session).equals("1")) {
                return "选手登录";
            } else {
                return "error";
            }
        } else if (account.contains("J")) {
            System.out.println("裁判登录");
            if (LoginRoute(account, password, session).equals("1")) {
                return "裁判登录";
            } else {
                return "error";
            }
        } else if (account.equals("admin")) {
            System.out.println("管理员登录");
            if (LoginRoute(account, password, session).equals("1")) {
                return "admin";
            } else {
                return "error";
            }
        } else {
            return "error";
        }
    }

    //判断用户
    public String LoginRoute(String account, String password, HttpSession session) {
        User loginUser = loginService.getUser(account);
        if (loginUser != null) {
            if (!loginUser.getPwd().equals(password)) {
                return "error";
            } else {
                session.setAttribute(CurrentUser.CURRENT_USER, loginUser);
                System.out.println("session放入" + loginUser.getAccount());
                return "1";
            }
        } else {
            return "error";
        }
    }

    /**
     * 注册用户
     */
    @RequestMapping("/register")
    @ResponseBody
    public String Register(@RequestParam Map user) {
        String loginuser = (String) user.get("user");
        String password = (String) user.get("pwd");

        System.out.println(user.get("user"));
        System.out.println(user.get("pwd"));



        User newUser = new User((String) user.get("user"), (String) user.get("pwd"));
        int result = loginService.addUser(newUser);
        //添加成功 返回 大于0
        if (result > 0) {
            return "1";
        } else {
            return "error";
        }
    }

    /**
     * 判断 注册用户 是否存在数据库中 ajax
     */
    @RequestMapping("/registerAccount")
    @ResponseBody
    public String registerAccount(@RequestParam Map user) {
        System.out.println("当前新增用户:" + user.get("user"));
        String newUser = (String) user.get("user");
        User userNewUser = loginService.getUser(newUser);
        if (userNewUser != null) {
            return "error";
        } else {
            return "1";
        }
    }

    /**
     * 去往主页面
     */
    @RequestMapping("/toMain")
    public String toMain() {
        return "pages/main";
    }

    /**
     * 退出登录
     */
    @RequestMapping("/exitLogin")
    public String exitLogin(HttpSession session) {
        session.removeAttribute(CurrentUser.CURRENT_USER);
        //session.invalidate();
        if (session == null) {
            System.out.println("当前用户:" + session.getAttribute(CurrentUser.CURRENT_USER));
            return "redirect:/login.jsp";
        } else {
            System.out.println("当前用户:" + session.getAttribute(CurrentUser.CURRENT_USER));
            return "redirect:/login.jsp";
        }

    }


}

MatchController

package com.thunder.controller;

import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.thunder.pojo.Match;
import com.thunder.pojo.SignUp;
import com.thunder.service.impl.MatchServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

import java.util.List;
import java.util.Map;

@Controller
@RequestMapping("/match")
public class MatchController {

    @Autowired
    MatchServiceImpl matchService;

    /**
     * 跳转到 赛事界面
     */
    @RequestMapping("/toMatchPage")
    public String toMatchPage() {
        return "/pages/match";
    }

    /**
     * 获取所有赛事 admin页面展示
     */
    @RequestMapping(value = "/getAllMatch", produces = "application/json;charset=UTF-8")
    @ResponseBody
    public String getAllMatch() {
        //阿里巴巴的json数据格式交互
        JSONObject object = new JSONObject();
        object.put("code", 200);//原来是 code : 0
        object.put("msg", "");
        object.put("data", matchService.getAllMatch());
        object.put("count", matchService.getAllMatch().size());

        System.out.println("数据库数据:" + matchService.getAllMatch().toString());
        return object.toJSONString();
    }

    /**
     * 获取赛事 ajax 下拉列表
     */
    @RequestMapping(value = "/getAllMatchAjax", produces = "application/json;charset=UTF-8")
    @ResponseBody
    public String getAllMatchAjax() {
        List<Match> allMatch = matchService.getAllMatch();
        JSONArray array = JSONArray.parseArray(JSON.toJSONString(allMatch));
        System.out.println(array.toJSONString());

        return array.toJSONString();
    }

    /**
     * 删除操作 异步请求
     */
    @RequestMapping("/deleteMatchById")
    @ResponseBody
    public String deleteMatchById(@RequestParam Map map) {
        int currentMatchId = Integer.parseInt((String) map.get("index"));
        int result = matchService.deleteMatchById(currentMatchId);
        if (result > 0) {
            return "1";
        } else {
            return "error";
        }
    }

    /**
     * 添加赛事
     */
    @RequestMapping(value = "/addMatchAjax", produces = "application/json;charset=UTF-8")
    @ResponseBody
    public String addMatchAjax(@RequestParam Map map) {
        //System.out.println(map);

        String mid = (String) map.get("mid");
        String mname = (String) map.get("mname");
        String mtime = (String) map.get("mtime");

        DateTime parseDate = DateUtil.parse(mtime, "yyyy-MM-dd");
        java.sql.Date mtimeDate = new java.sql.Date(parseDate.getTime());
        System.out.println("类型" + mtimeDate.getClass().getName());
        System.out.println("mid=" + mid + "mname=" + mname + "mtime=" + mtimeDate);
        int result = matchService.addMatchAjax(new Match(mid, mname, mtimeDate));
        if (result > 0) {
            return "1";
        } else {
            return "error";
        }


    }

    //选手报名赛事
    @RequestMapping(value = "/signInMatch", produces = "application/json;charset=UTF-8")
    @ResponseBody
    public String signInMatch(@RequestParam Map map) {
        System.out.println(map);
        String pid = (String) map.get("pid");
        String saishi = (String) map.get("saishi");
        String properties = (String) map.get("properties");
        System.out.println("pid " + pid + " saishi:" + saishi + "性质:" + properties);
        int result = matchService.signInMatch(new SignUp(pid, saishi, properties));
        if (result > 0) {
            return "1";
        } else {
            return "error";
        }
    }

    /***
     *查看已报名
     */
    @RequestMapping(value = "/alreadySignIn", produces = "application/json;charset=UTF-8")
    @ResponseBody
    public String alreadySignIn(@RequestParam Map map) {
        JSONObject object = new JSONObject();

        String pid = (String) map.get("pid");
        System.out.println("选手:" + pid + "选择的赛事");
        List<SignUp> signUpList = matchService.alreadySignIn(pid);
        object.put("code", 200);//原来是 code : 0
        object.put("msg", "");
        object.put("data", signUpList);
        object.put("count", signUpList.size());

        System.out.println("已报名:" + signUpList);
        return object.toJSONString();
    }
}

如果也想学习本系统,下面领取。关注并回复:034ssm 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
西南石油大学软件学院 软件科技月之 软件设计大赛决赛评分系统2.0 =============================================== 在第一版免费发布后,下载量已经过万。 QQ快要加爆了,很多网友提出了很有建设性的建议。在此感谢~~!。 旨在和大家交流技术的角度,我又做了第二版本。纯ASP+ACCESS,现在免费发布出来。供大家学习! 所有数据均摘自网络! =============================================== 2.0改进内容: 1.修改美工的BUG 2.动态生成评分标准、入库/出场项目排序 3.评分标准可以分手动打分和控件打分 4.过滤非法数据,防止****,利用帐户来判断打分情况,取消采用IP判断 5.管理员查看动态报表,监控评分过程 6.所有项目和标准后台添加、管理 7.修改入库计算分数的BUG 8.新加管理员报表系统,管理员可以在线及时查看比赛信息、日志。防止打分**** 9.完善了后台,修改了一些细节问题,这里就不一一列举了。 ================================================ 后台:admin/admin_login.asp 数据库:database/database.asp 前台:default.htm 登录帐户:pw1 登录密码:123456 ================================================ 特点: 1.全部数据动态添加、动态生成 2.过滤非法数据 3.防止打分用户**** 4.满足2NF ================================================ 后记:是否还要做下个版本,要看我是否还有时间了,马上工作了,而且现在ASP我觉得已经没有什么太多的技术含量了,在之前我还做过ASP+动态JS+DLL+MSSQL的我们院的网站。 下一版本我打算转到SUN这边用Struts框架来做,如果有时间的话,而且还会加入Ajax,哈哈,其实很简单的! ================================================ 个人主页:www.Jmaker.NET QQ:66457593 MSN:jeepctw@gmail.com ================================================ OOP那些东东,我都很熟悉~ 寻志同道合之士,如果你有Technology或idea~想自己闯出一片天地的话。 中国互联网未来是属于10年后的80一代-----我们!2007-7-25Jmaker

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值