基于java+ssm+vue的大学生就业平台微信小程序

项目介绍

随着计算机技术的成熟,互联网的建立,如今,PC平台上有许多关于大学生就业方面的程序,但由于使用时间和地点上的限制,用户在使用上存在着种种不方便,而开发一款大学生就业平台微信小程序,能够有效地解决这个问题。

本文主要介绍了大学生就业平台微信小程序的开发过程,对开发环境、系统设计、系统实现、系统测试方面进行分析。在设计时对微信客户端进行了充分的了解,掌握微信平台通过的接口,同时系统采用MYSQL数据库进行数据的储存,充分的保证了系统的稳定性、安全性。通过本系统满足了不同权限用户的功能需求,包括学生、企业以及管理员。

“操作简单,功能实用”这是本软件设计的核心理念,本系统力求创造最好的用户体验。
在这里插入图片描述

开发环境

编程语言:Java
数据库 :Mysql
系统架构:B/S
后端框架:SSM
编译工具:idea或者eclipse,微信开发者工具,jdk1.8,maven
支持定做:java/php/python/android/小程序vue/爬虫/c#/asp.net

系统实现

5.1微信端功能模块的实现
5.1.1微信端登录界面
学生和企业均可进入微信端登录界面输入账号和密码,选择登录类型,进行登录操作,微信端登录界面展示如图5.1所示。
在这里插入图片描述

图5.1 微信端登录界面

5.1.2首页界面
学生和企业登录后可进入首页查看相关信息,首页界面展示如图5.2所示。
在这里插入图片描述

图5.2首页界面

5.1.3招聘详情界面
学生登录后可选择招聘查看详情信息,并可进行求职,招聘详情界面展示如图5.3所示。
在这里插入图片描述

图5.3 招聘详情界面

5.1.4简历界面
学生登录后可管理个人简历信息,企业登录后可查看学生简历,简历界面展示如图5.4所示。
在这里插入图片描述

图5.4 简历界面

5.1.5用户反馈界面
学生和企业均可进入用户反馈界面进行添加用户反馈,用户反馈界面展示如图5.5所示。
在这里插入图片描述

图5.5 用户反馈界面

5.1.6留言板界面
学生和企业均可进入留言板界面进行发布留言,留言板界面展示如图5.6所示。
在这里插入图片描述

图5.6 留言板界面

5.2服务端功能模块的实现
5.2.1服务端登录界面
管理员和企业要想进入对应角色后台进行管理操作,必须进行登录,服务端登录界面展示如图5.7所示。
在这里插入图片描述

图5.7服务端登录界面

5.2.2学生管理界面
管理员可进行学生管理操作,可增删改查学生信息,学生管理界面如图5.8所示。
在这里插入图片描述

图5.8 用户管理界面

5.2.3企业管理界面
管理员在企业管理界面可查看所有企业信息,对已有企业信息可进行编辑和删除操作,同时也可添加企业信息,企业管理界面如图5.9所示。
在这里插入图片描述

图5.9 企业管理界面

5.2.4企业类型管理界面
管理员能添加、修改和删除企业类型,企业类型管理界面展示如图5.10所示。
在这里插入图片描述

图5.10 企业类型管理界面

5.2.5留言板管理界面
管理员可查看学生和企业留言信息,并可对其进行回复和删除操作,留言板管理界面展示如图5.11所示。
在这里插入图片描述

图5.11 留言板管理界面

5.2.6面试邀请管理界面
企业可进行面试邀请管理操作,面试邀请管理界面展示如图5.12所示。
在这里插入图片描述

图5.12 面试邀请管理界面

核心代码

package com.controller;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Map;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Date;
import java.util.List;
import javax.servlet.http.HttpServletRequest;

import com.utils.ValidatorUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.annotation.IgnoreAuth;

import com.entity.QiuzhixinxiEntity;
import com.entity.view.QiuzhixinxiView;

import com.service.QiuzhixinxiService;
import com.service.TokenService;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.MD5Util;
import com.utils.MPUtil;
import com.utils.CommonUtil;


/**
 * 求职信息
 * 后端接口
 * @author 
 * @email 
 * @date 
 */
@RestController
@RequestMapping("/qiuzhixinxi")
public class QiuzhixinxiController {
    @Autowired
    private QiuzhixinxiService qiuzhixinxiService;
    


    /**
     * 后端列表
     */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params,QiuzhixinxiEntity qiuzhixinxi, 
		HttpServletRequest request){

		String tableName = request.getSession().getAttribute("tableName").toString();
		if(tableName.equals("xuesheng")) {
			qiuzhixinxi.setXueshengzhanghao((String)request.getSession().getAttribute("username"));
		}
		if(tableName.equals("qiye")) {
			qiuzhixinxi.setZhanghao((String)request.getSession().getAttribute("username"));
		}
        EntityWrapper<QiuzhixinxiEntity> ew = new EntityWrapper<QiuzhixinxiEntity>();
		PageUtils page = qiuzhixinxiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, qiuzhixinxi), params), params));
        return R.ok().put("data", page);
    }
    
    /**
     * 前端列表
     */
    @RequestMapping("/list")
    public R list(@RequestParam Map<String, Object> params,QiuzhixinxiEntity qiuzhixinxi, HttpServletRequest request){

		String tableName = request.getSession().getAttribute("tableName").toString();
		if(tableName.equals("xuesheng")) {
			qiuzhixinxi.setXueshengzhanghao((String)request.getSession().getAttribute("username"));
		}
		if(tableName.equals("qiye")) {
			qiuzhixinxi.setZhanghao((String)request.getSession().getAttribute("username"));
		}
        EntityWrapper<QiuzhixinxiEntity> ew = new EntityWrapper<QiuzhixinxiEntity>();
		PageUtils page = qiuzhixinxiService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, qiuzhixinxi), params), params));
        return R.ok().put("data", page);
    }

	/**
     * 列表
     */
    @RequestMapping("/lists")
    public R list( QiuzhixinxiEntity qiuzhixinxi){
       	EntityWrapper<QiuzhixinxiEntity> ew = new EntityWrapper<QiuzhixinxiEntity>();
      	ew.allEq(MPUtil.allEQMapPre( qiuzhixinxi, "qiuzhixinxi")); 
        return R.ok().put("data", qiuzhixinxiService.selectListView(ew));
    }

	 /**
     * 查询
     */
    @RequestMapping("/query")
    public R query(QiuzhixinxiEntity qiuzhixinxi){
        EntityWrapper< QiuzhixinxiEntity> ew = new EntityWrapper< QiuzhixinxiEntity>();
 		ew.allEq(MPUtil.allEQMapPre( qiuzhixinxi, "qiuzhixinxi")); 
		QiuzhixinxiView qiuzhixinxiView =  qiuzhixinxiService.selectView(ew);
		return R.ok("查询求职信息成功").put("data", qiuzhixinxiView);
    }
	
    /**
     * 后端详情
     */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") Long id){
        QiuzhixinxiEntity qiuzhixinxi = qiuzhixinxiService.selectById(id);
        return R.ok().put("data", qiuzhixinxi);
    }

    /**
     * 前端详情
     */
    @RequestMapping("/detail/{id}")
    public R detail(@PathVariable("id") Long id){
        QiuzhixinxiEntity qiuzhixinxi = qiuzhixinxiService.selectById(id);
        return R.ok().put("data", qiuzhixinxi);
    }
    



    /**
     * 后端保存
     */
    @RequestMapping("/save")
    public R save(@RequestBody QiuzhixinxiEntity qiuzhixinxi, HttpServletRequest request){
    	qiuzhixinxi.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    	//ValidatorUtils.validateEntity(qiuzhixinxi);

        qiuzhixinxiService.insert(qiuzhixinxi);
        return R.ok();
    }
    
    /**
     * 前端保存
     */
    @RequestMapping("/add")
    public R add(@RequestBody QiuzhixinxiEntity qiuzhixinxi, HttpServletRequest request){
    	qiuzhixinxi.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());
    	//ValidatorUtils.validateEntity(qiuzhixinxi);
    	qiuzhixinxi.setUserid((Long)request.getSession().getAttribute("userId"));

        qiuzhixinxiService.insert(qiuzhixinxi);
        return R.ok();
    }

    /**
     * 修改
     */
    @RequestMapping("/update")
    public R update(@RequestBody QiuzhixinxiEntity qiuzhixinxi, HttpServletRequest request){
        //ValidatorUtils.validateEntity(qiuzhixinxi);
        qiuzhixinxiService.updateById(qiuzhixinxi);//全部更新
        return R.ok();
    }
    

    /**
     * 删除
     */
    @RequestMapping("/delete")
    public R delete(@RequestBody Long[] ids){
        qiuzhixinxiService.deleteBatchIds(Arrays.asList(ids));
        return R.ok();
    }
    
    /**
     * 提醒接口
     */
	@RequestMapping("/remind/{columnName}/{type}")
	public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request, 
						 @PathVariable("type") String type,@RequestParam Map<String, Object> map) {
		map.put("column", columnName);
		map.put("type", type);
		
		if(type.equals("2")) {
			SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
			Calendar c = Calendar.getInstance();
			Date remindStartDate = null;
			Date remindEndDate = null;
			if(map.get("remindstart")!=null) {
				Integer remindStart = Integer.parseInt(map.get("remindstart").toString());
				c.setTime(new Date()); 
				c.add(Calendar.DAY_OF_MONTH,remindStart);
				remindStartDate = c.getTime();
				map.put("remindstart", sdf.format(remindStartDate));
			}
			if(map.get("remindend")!=null) {
				Integer remindEnd = Integer.parseInt(map.get("remindend").toString());
				c.setTime(new Date());
				c.add(Calendar.DAY_OF_MONTH,remindEnd);
				remindEndDate = c.getTime();
				map.put("remindend", sdf.format(remindEndDate));
			}
		}
		
		Wrapper<QiuzhixinxiEntity> wrapper = new EntityWrapper<QiuzhixinxiEntity>();
		if(map.get("remindstart")!=null) {
			wrapper.ge(columnName, map.get("remindstart"));
		}
		if(map.get("remindend")!=null) {
			wrapper.le(columnName, map.get("remindend"));
		}

		String tableName = request.getSession().getAttribute("tableName").toString();
		if(tableName.equals("xuesheng")) {
			wrapper.eq("xueshengzhanghao", (String)request.getSession().getAttribute("username"));
		}
		if(tableName.equals("qiye")) {
			wrapper.eq("zhanghao", (String)request.getSession().getAttribute("username"));
		}

		int count = qiuzhixinxiService.selectCount(wrapper);
		return R.ok().put("count", count);
	}
	


}

论文参考

在这里插入图片描述

目 录
摘 要 I
Abstract II
目 录 III
第1章 绪论 1
1.1研究背景 1
1.2设计原则 1
1.3研究内容 1
第2章 关键技术简介 3
2.1 微信小程序 3
2.2微信Web开发者工具 3
2.3微信小程序API接口 3
2.4 MYSQL数据库 3
2.5 Java简介 4
第3章 系统分析 5
3.1 可行性分析 5
3.1.1技术可行性 5
3.1.2 经济可行性 5
3.1.3 操作可行性 5
3.1.4法律可行性 5
3.2 系统性能分析 6
3.3 系统功能分析 6
3.4 系统流程分析 8
3.4.1登录流程 8
3.4.2添加信息流程 8
3.4.3注册流程 9
3.4.4修改密码流程 10
第4章 系统设计 11
4.1系统设计要求 11
4.2系统开发流程设计 11
4.3系统结构设计 11
4.4系统数据库设计 12
4.4.1 数据库E-R图设计 12
4.4.2 数据库表设计 14
第5章 系统的实现 17
5.1微信端功能模块的实现 17
5.1.1微信端登录界面 17
5.1.2首页界面 17
5.1.3招聘详情界面 18
5.1.4简历界面 19
5.1.5用户反馈界面 19
5.1.6留言板界面 20
5.2服务端功能模块的实现 21
5.2.1服务端登录界面 21
5.2.2学生管理界面 21
5.2.3企业管理界面 22
5.2.4企业类型管理界面 22
5.2.5留言板管理界面 22
5.2.6面试邀请管理界面 23
第6章 系统测试 24
6.1 测试目的 24
6.2 测试整体步骤 24
6.3 测试方法 25
6.4测试分析 25
第7章 总结 26
致 谢 27
参考文献 28

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值