基于SSM的校园交友网站mysql数据源

JavaWeb项目:基于SSM的校园交友网站mysql数据源
前台代码;代码已经上传到github上 下载地址  Github 
一、项目概况1.2开发工具
  Eclipse或者Myeclipse,Java,MySQL,Redis,Html,CSS,JS。
二、详细设计2.1网站结构

系统介绍:

模块一:用户体验系统

1.研究的主要内容

(1)用户管理模块

如果是本网站的会员可以直接登陆账号,会员登录账号时有用户名的验证和密码验证,都验证成功后才可以进入网站。如果不是会员必须注册账号填写个人完整的基本信息后,才能登录进入网站。

(2)积分模块

本网站给会员提供了积分**。会员可以通过在自己的相册中上传照片,每上传一张照片可以增加相应的积分,并且在网站中发说说、给自己的账号充值、给网站提出自己的建议等操作都可以得到对应的积分。同时也可以对积分的规则进行录入、修改、删除等处理。

(3)用户相册信息模块

普通会员可以对自己的相册进行编辑,包括上传照片、删除照片等功能。上传的照片可以显示在自己的照片墙中。会员可以对自己的私密相册进行访问权限设置。其他会员可以在浏览照片的过程中对照片进行评论。//去掉权限

(4)等级模块

为了提高会员的积极性,网站中设置了提高会员等级的功能。根据会员得到的积分情况可以提高自己的账号等级,可以更改等级规则。

(5)说说模块

本网站的会员可以发表说说,会员编辑完说说后即可发布到平台,可供好友查看,好友可以对看到的说说发表评论,说说的发表者可以对评论者进行回复,会员可以在稍后对自己的说说进行删除处理。

2.实施方案与创新点

(1)用户可以通过条件筛选留言,避免了垃圾信息的骚扰,查看满足自己条件的好友留言。能让用户体验更加人性化。//只需要根据分组

(2)由于用户上传相册比较耗费服务器资源,后台可以规定满足一定积分的用户才能上传一定的照片数量。

(3)用户可以给自己喜欢的会员进行点赞。//去掉

(4)适用BootStrap响应式的jQuery框架,减少了Javascri-pt代码量,丰富页面的展示效果。

模块二:管理员系 统

1. 研究的主要内容

(1)新闻展示模块//增删改都有

本网站的首页的左上方设计显示时下的新闻,包括政治、军事、娱乐多个方面,每天显示10条新闻,会员可以手动点击下一页进行查看,管理员每日都会对其进行更新。

(2)意见箱公告板模块

本网站的首页将设有意见箱公告板,会员可以提出对网站的改进意见,管理员将在这些意见中搜寻出有价值的5条意见,使得会员名连同其意见,彩色发光,并滚动显示在首页,供更多会员点击查看。

(3)男女小主模块

管理员可以查看到所有会员上传的相册,以及其照片的点赞数量,列出点赞数量前10名,将其照片设计成规模多样的照片墙形式显示在网站首页的最中间,此照片墙将由管理员三天更新一次,会员可以点击照片墙中的照片进入到该会员的详细资料页面。//系统自动选择

(4)用户信息查看模块

管理员可操作网站的所有功能,除此之外,管理员登陆后还可以查看会员上传的相册信息、积分信息、等级信息。如果有会员上传不雅照片,管理员将对其发送站内消息进行警告并将其照片删除。若此会员多次上传此类照片,管理员将会把其拉入黑名单。

(5)绩效统计归纳模块

管理员每隔一个月统计一次注册本网站的用户量,会员照片的上传量,会员充值的数量,计算出与上个月相比的涨幅,制成报表,这引起数据可被相关人员查询。

2.实施方案与创新点

(1)报表统计功能使用 UIeditor,实现柱状或者曲线图形。

模块三:好友管理系统:

1.研究的主要内容

(1)充值模块:

用户在平台内的活动需要收费,无论是发短信还是晋升会员都需要充值。充值时可以通过支付宝、银行卡等方式支付。(只需模拟实现,无需第三方)

(2)信息存储与查询模块:

用户可以根据自己的需求选择好友发信息,好友也可进行回复,但是信息超出三条需要充值才能继续聊天。可以将本网站用户之间相应的信息记录保存下来,并且可以按日期查询到他们的信息记录。//没钱不能聊

(3)分组管理模块:

用户可以根据自己的需求添加并命名分组,分组设定好之后,用户可以选择不同的好友添加到相应的分组中。//固定分组

(4)好友管理模块:

用户可以根据自己的需求添加、删除好友,也可以对好友的备注进行修改。另外,用户还可以根据自己的分组对好友进行查询。//点开分组查看好友

(5)推荐好友功能模块://改成只用随机匹配 按照地址来

用户在注册会员、填写个人资料的时候会有年龄、性别、兴趣爱好、居住地等栏,可以根据他们填写的年龄、性别、兴趣爱好和城市户分成几组推荐栏目,然后用户在搜索好友时可以弹出推荐好友栏目,用户可以选择栏目进行添加,也可以自行搜索好友。

2.实施方案与创新点

    点击设置好的随机按钮可以进行好友之间随机匹配。筛选用户信息,对有相同爱好、相同城市等类型的用户进行好友推荐。

package com.tc.controller;

import com.sun.org.apache.xpath.internal.SourceTree;
import com.tc.constants.FieldConstants;
import com.tc.constants.MsgConstants;
import com.tc.constants.NumberConstants;
import com.tc.entity.ExamPlan;
import com.tc.entity.ExamResult;
import com.tc.entity.Resp;
import com.tc.entity.User;
import com.tc.service.ExamPlanService;
import com.tc.utils.DatetimeUtil;
import net.sf.json.JSON;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
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.ResponseBody;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import java.util.*;

/**
 * Created by htc on 2017/5/16.
 */
@Controller
@RequestMapping("ExamPlan")
public class ExamPlanController {
    @Autowired
    private ExamPlanService examPlanService;
    @RequestMapping("insertExamPlan")
    @ResponseBody
    public Resp insertExamPlan(HttpServletRequest request, HttpServletResponse response){
        Resp resp=new Resp();
        String param="";
        try {
            Enumeration enumeration=request.getParameterNames();
            while(enumeration.hasMoreElements()){
                param=(String)enumeration.nextElement();
            }
            Map paramMap = (Map)JSONObject.fromObject(param);
            paramMap.put("createDt", DatetimeUtil.getLocalDatetime());
            int flag=examPlanService.insertExamPlan(paramMap);
            if(flag!=NumberConstants.STATUS_OK){
                resp.setStatus(NumberConstants.STATUS_ERROR);
                resp.setMsg(MsgConstants.EXCUTE_ERROR);
                return resp;
            }
            resp.setStatus(NumberConstants.STATUS_OK);
            resp.setMsg(MsgConstants.EXCUTE_SUCCESS);
        } catch (Exception e) {
            e.printStackTrace();
            resp.setStatus(NumberConstants.STATUS_ERROR);
            resp.setMsg(MsgConstants.SYSTEM_ERROR);
        }
        return resp;
    }

    @RequestMapping("getAllExamNotSet")
    @ResponseBody
    public Resp getAllExamNotSet(HttpServletResponse response, HttpServletRequest request, HttpSession session){
        Resp resp=new Resp();
        try {
            String account=((User)session.getAttribute(FieldConstants.ONLINE_USER)).getAccount();
            List examPlanList=examPlanService.getAllExamNotSet(Integer.parseInt(account));
            if (examPlanList.size()==0){
                examPlanList=new ArrayList();
            }
            resp.setData(examPlanList);
            resp.setStatus(NumberConstants.STATUS_OK);
        } catch (NumberFormatException e) {
            e.printStackTrace();
            resp.setStatus(NumberConstants.STATUS_ERROR);
            resp.setData(MsgConstants.SYSTEM_ERROR);
        }
        return resp;
    }

    @RequestMapping("getExamInfoById")
    @ResponseBody
    public Resp getExamInfoById(HttpServletRequest request,HttpServletResponse response ,String examid){
        Resp resp=new Resp();
        try {
            ExamPlan examPlan=examPlanService.getExamInfoById(Integer.parseInt(examid));
            if(examPlan== null){
                examPlan=new ExamPlan();
            }
            resp.setStatus(NumberConstants.STATUS_OK);
            resp.setData(examPlan);
        } catch (Exception e) {
            e.printStackTrace();
            resp.setStatus(NumberConstants.STATUS_ERROR);
            resp.setMsg(MsgConstants.SYSTEM_ERROR);
        }
        return resp;
    }

    /**
     * 添加考试题型和分数
     * @param request
     * @param response
     * @return
     */
    @RequestMapping("updatePaperById")
    @ResponseBody
    public Resp updatePaperById(HttpServletRequest request,HttpServletResponse response){
        Resp resp=new Resp();
        String param="";
        try {
            Enumeration enumeration= request.getParameterNames();
            while (enumeration.hasMoreElements()){
                param=(String)enumeration.nextElement();
            }
            System.out.println(param);
            Map map=JSONObject.fromObject(param);
            int flag=examPlanService.updatePaperById(map);
            if(flag==0){
                resp.setStatus(NumberConstants.STATUS_ERROR);
                resp.setMsg(MsgConstants.EXCUTE_ERROR);
                return resp;
            }
            resp.setMsg(MsgConstants.EXCUTE_SUCCESS);
            resp.setStatus(NumberConstants.STATUS_OK);
        } catch (Exception e) {
            e.printStackTrace();
            resp.setStatus(NumberConstants.STATUS_ERROR);
            resp.setMsg(MsgConstants.SYSTEM_ERROR);
        }
        return resp;
    }

    /**
     * 开始考试,获取试卷
     * @param request
     * @param response
     * @param examId
     * @return
     */
    @RequestMapping("getPaper")
    @ResponseBody
    public Resp getPaper(HttpServletRequest request,HttpServletResponse response ,String examId){
        Resp resp=new Resp();
        try {
            String projectRealPath=request.getSession().getServletContext().getRealPath("");
            String projectRootRealPath=projectRealPath.substring(0,projectRealPath.indexOf("target"));
            String filePath=projectRootRealPath+"\\src\\main\\webapp\\file\\questionLibrary";
            resp=examPlanService.getPaper(Integer.parseInt(examId),filePath);
            resp.setStatus(NumberConstants.STATUS_OK);
        } catch (Exception e) {
            e.printStackTrace();
            resp.setStatus(NumberConstants.STATUS_ERROR);
            resp.setMsg(MsgConstants.SYSTEM_ERROR);
        }
        return resp;
    }

    /**
     * 提交试卷
     * @param request
     * @param response
     * @param session
     * @return
     */
    @RequestMapping("putPaper")
    @ResponseBody
    public Resp putPaper(HttpServletRequest request,HttpServletResponse response ,HttpSession session){
        Resp resp=new Resp();

        try {
            Enumeration enumeration=request.getParameterNames();
            String param=null;
            while (enumeration.hasMoreElements()){
                 param= (String) enumeration.nextElement();
            }
            param="["+param+"]";
            System.out.println(param);
            JSONArray jsonArray=JSONArray.fromObject(param);
            List> mapList=(List)jsonArray;

            String projectRealPath=request.getSession().getServletContext().getRealPath("");
            String projectRootRealPath=projectRealPath.substring(0,projectRealPath.indexOf("target"));
            String filePath=projectRootRealPath+"\\src\\main\\webapp\\file\\questionLibrary";

            String account=((User)session.getAttribute(FieldConstants.ONLINE_USER)).getAccount();
            examPlanService.putPaper(mapList,filePath,account);
//        for (int i = 0; i < mapList.size(); i++) {
//            Map obj=mapList.get(i);
//
//            for(Map.Entry entry : obj.entrySet()){
//                String strkey1 = entry.getKey();
//                Object strval1 = entry.getValue();
//                System.out.println("KEY:"+strkey1+"  -->  Value:"+strval1+"\n");
//            }
//        }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return resp;
    }

    /**
     * 添加考试记录
     * @param request
     * @param response
     * @return
     */
    @RequestMapping("insertExamRecord")
    @ResponseBody
    public Resp insertExamRecord(HttpServletRequest request,HttpServletResponse response,HttpSession session,String examId){
        Resp resp=new Resp();
        try {
            Map map=new HashMap();
            map.put("paper_id",Integer.parseInt(examId));
            map.put("student_id",Integer.parseInt(((User)session.getAttribute(FieldConstants.ONLINE_USER)).getAccount()));
            //该记录已存在
            ExamResult examResult=examPlanService.getExamRecordByStudentIdAndPaperId(map);
            if(examResult!=null){
                resp.setMsg(MsgConstants.DATA_EXIST);
                resp.setStatus(NumberConstants.STATUS_ERROR);
                return resp;
            }
            map.put("id",examPlanService.gerExamCount()+1);
            Integer flag=examPlanService.insertExamRecord(map);
        } catch (NumberFormatException e) {
            e.printStackTrace();
        }
        return resp;
    }


}


package com.tc.controller;

import com.tc.constants.FieldConstants;
import com.tc.constants.MsgConstants;
import com.tc.constants.UrlConstants;
import com.tc.entity.Teacher;
import com.tc.entity.User;
import com.tc.service.TeacherService;
import com.tc.service.UserService;
import com.tc.utils.ChkUtil;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

/**
 * Created by htc on 2017/4/19.
 */
@Controller
public class LoginController {
    @Autowired
    private UserService userService;

    @Autowired
    private TeacherService teacherService;

    /**
     * 登陆
     *
     * @param request
     * @param response
     * @param session
     * @param userParam
     * @return
     */
    @RequestMapping("login")
    public ModelAndView login(HttpServletRequest request, HttpServletResponse response, HttpSession session, User userParam) {
        try {
            //判断参数
            if (userParam == null || ChkUtil.isEmpty(userParam.getAccount()) || ChkUtil.isEmpty(userParam.getPwd())) {
                return new ModelAndView(UrlConstants.LOGIN, FieldConstants.ERR, MsgConstants.LESS_PARAM);
            }

            //验证账号
            int i = userService.getUserNum(userParam);
            if (i == 0) {
                return new ModelAndView(UrlConstants.LOGIN, FieldConstants.ERR, MsgConstants.ACCOUNT_NOT_EXIST);
            }
            String password = ChkUtil.MD5(userParam.getPwd());
            userParam.setPwd(password);

            //验证密码
            User user = userService.getUserInfoByAccount(userParam);
            if (user == null) {
                return new ModelAndView(UrlConstants.LOGIN, FieldConstants.ERR, MsgConstants.PASSWORD_ERROR);
            }

            //放入session
            session.setAttribute(FieldConstants.ONLINE_USER, user);

            ServletContext application = session.getServletContext();
            application.setAttribute(FieldConstants.NEW_SESSION_ID, session.getId());
            application.setAttribute(FieldConstants.SESSION_ID, session.getId());
            application.setAttribute(session.getId(), session);

            //验证权限
            //Teacher teacher = teacherService.getTeacherInfoByID(Integer.parseInt(userParam.getAccount()));
            if (userParam.getAccount().length() >4 ) {
                /**
                 * 学生账号为学号
                 */
                //返回主页面
                return new ModelAndView(UrlConstants.REDIRECT_STUDENT_INDEX_JSP);
            }else {
                /**
                 *  账号为教师工号
                 */
                //返回教师首页
                return new ModelAndView(UrlConstants.REDIRECT_TEACHER_INDEX_JSP);
            }
        } catch (Exception e) {
            e.printStackTrace();
            return new ModelAndView(UrlConstants.LOGIN, FieldConstants.ERR, MsgConstants.LOGIN_FAIL);
        }
    }

    /**
     * 退出登陆
     *
     * @param request
     * @param response
     * @param session
     * @return
     */
    @RequestMapping("exit")
    public ModelAndView exit(HttpServletRequest request, HttpServletResponse response, HttpSession session) {
        try {
            session.invalidate();
            return new ModelAndView(UrlConstants.REDIRECT_LOGIN_JSP);
        } catch (Exception e) {
            e.printStackTrace();
            return new ModelAndView(UrlConstants.LOGIN, FieldConstants.ERR, MsgConstants.EXIT_FAIL);
        }
    }

}
 


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部