计算机毕业设计:python就业信息管理系统+招聘数据管理系统+岗位投递(源码+论文)

2023-12-05

博主介绍:✌全网粉丝10W+,前互联网大厂软件研发、集结硕博英豪成立工作室。专注于计算机相关专业 毕业设计 项目实战6年之久,选择我们就是选择放心、选择安心毕业✌

毕业设计:2023-2024年计算机专业毕业设计选题汇总(建议收藏)

毕业设计:2023-2024年最新最全计算机专业毕设选题推荐汇总

1、项目介绍

技术栈:
Python语言、MySQL数据库、Django框架、bootstrap框架+css+js+HTML

2、项目界面

(1)系统首页
在这里插入图片描述

(2)学院信息管理
在这里插入图片描述

(3)企业信息管理
在这里插入图片描述

(4)学生信息管理
在这里插入图片描述

(5)学生教育经历管理
在这里插入图片描述

(6)学生项目经历管理
在这里插入图片描述

(7)注册登录界面
在这里插入图片描述

(8)后台数据管理
在这里插入图片描述

3、项目说明

本项目实现学生信息、就业信息、岗位信息三方面的管理功能,其中学生信息作为系统基础信息一部分,其中包含学生基本信息、教育经历、项目经历等内容,这些信息是企业所关注的基本内容;就业信息功能中不仅仅需要记录下学生的就业情况,同时需要实现就业的统计信息,这样可以方便高校了解学生就业的情况;岗位信息功能中需要提供企业信息、岗位信息管理功能,将经学校筛选的企业和岗位提供给学生进行选择,避免学生选择到存在问题的企业,降低学生就业风险,项目功能架构图如下所示:

在这里插入图片描述

4、核心代码


import json
import time

from django.core.paginator import Paginator
from django.db import transaction
from django.db.models import Q
from django.http import HttpResponse, HttpResponseRedirect
from django.shortcuts import render
from django.views import View

from app import models

'''
基础处理类,其他处理继承这个类
'''
class BaseView(View):
    '''
    检查指定的参数是否存在
    存在返回 True
    不存在返回 False
    '''
    def isExit(param):

        if (param == None) or (param == ''):
            return False
        else:
            return True

    '''
    转换分页查询信息
    '''
    def parasePage(pageIndex, pageSize, pageTotal, count, data):

        return {'pageIndex': pageIndex, 'pageSize': pageSize, 'pageTotal': pageTotal, 'count': count, 'data': data}

    '''
    转换分页查询信息
    '''
    def parasePage(pageIndex, pageSize, pageTotal, count, data):
        return {'pageIndex': pageIndex, 'pageSize': pageSize, 'pageTotal': pageTotal, 'count': count, 'data': data}

    '''
    成功响应信息
    '''
    def success(msg='处理成功'):
        resl = {'code': 0, 'msg': msg}
        return HttpResponse(json.dumps(resl), content_type='application/json; charset=utf-8')

    '''
    成功响应信息, 携带数据
    '''
    def successData(data, msg='处理成功'):
        resl = {'code': 0, 'msg': msg, 'data': data}
        return HttpResponse(json.dumps(resl), content_type='application/json; charset=utf-8')

    '''
    系统警告信息
    '''
    def warn(msg='操作异常,请重试'):
        resl = {'code': 1, 'msg': msg}
        return HttpResponse(json.dumps(resl), content_type='application/json; charset=utf-8')

    '''
    系统异常信息
    '''
    def error(msg='系统异常'):
        resl = {'code': 2, 'msg': msg}
        return HttpResponse(json.dumps(resl), content_type='application/json; charset=utf-8')

'''
系统请求处理
'''
class SysView(BaseView):

    def get(self, request, module, *args, **kwargs):

        if module == 'login':
            return render(request, 'login.html')

        elif module == 'exit':

            del request.session["user"]
            del request.session["type"]

            return HttpResponseRedirect('/jobs/login')

        if module == 'info':

            return SysView.getSessionInfo(request)

        elif module == 'show':

            return render(request, 'index.html')

        elif module == 'sysNum':

            return SysView.getSysNums(request)

    def post(self, request, module, *args, **kwargs):

        if module == 'login':

            return SysView.login(request)

        if module == 'info':
            return SysView.updSessionInfo(request)

        if module == 'pwd':
            return SysView.updSessionPwd(request)

    def login(request):

        userName = request.POST.get('userName')
        passWord = request.POST.get('passWord')

        user = models.Users.objects.filter(userName=userName)

        if (user.exists()):

            user = user.first()
            if user.passWord == passWord:
                request.session["user"] = user.id
                request.session["type"] = user.type

                return SysView.success()
            else:
                return SysView.warn('用户密码输入错误')
        else:
            return SysView.warn('用户名输入错误')

    def getSessionInfo(request):

        user = request.session.get('user')

        data = models.Users.objects.filter(id=user)

        resl = {}
        for item in data:
            resl = {
                'id': item.id,
                'userName': item.userName,
                'passWord': item.passWord,
                'gender': item.gender,
                'name': item.name,
                'age': item.age,
                'phone': item.phone,
                'type': item.type,
            }

        return SysView.successData(resl)

    def getSysNums(request):

        resl = {
            'companiesTotal' : models.Companies.objects.all().count(),
            'jobTotal' : models.Jobs.objects.all().count(),
            'inStuTotal' : models.Students.objects.filter(status=0).count(),
            'outStuTotal' : models.Students.objects.filter(status=1).count()
        }

        return BaseView.successData(resl)

    def updSessionInfo(request):

        user = request.session.get('user')

        models.Users.objects.filter(id=user).update(
            userName=request.POST.get('userName'),
            name=request.POST.get('name'),
            age=request.POST.get('age'),
            gender=request.POST.get('gender'),
            phone=request.POST.get('phone'),
        )

        return SysView.success()

    def updSessionPwd(request):

        user = request.session.get('user')

        models.Users.objects.filter(id=user).update(
            passWord=request.POST.get('password'),
        )

        return SysView.success()

'''
学院信息管理
'''
class CollegesView(BaseView):

    def get(self, request, module, *args, **kwargs):

        if module == 'show':
            return render(request, 'colleges.html')
        elif module == 'info':
            return self.getInfo(request)
        elif module == 'page':
            return self.getPageInfo(request)
        else:
            return self.error()

    def post(self, request, module, *args, **kwargs):

        if module == 'add':
            return self.addInfo(request)
        elif module == 'upd':
            return self.updInfo(request)
        elif module == 'del':
            return self.delInfo(request)
        else:
            return self.error()

    def getInfo(self, request):

        data = models.Colleges.objects.filter(id=request.GET.get('id')).first()

        resl = {
            'id': data.id,
            'name': data.name,
            'createTime': data.createTime
        }

        return BaseView.successData(resl)

    def getPageInfo(self, request):

        pageIndex = request.GET.get('pageIndex', 1)
        pageSize = request.GET.get('pageSize', 10)
        name = request.GET.get('name')

        qruery = Q();

        if BaseView.isExit(name):
            qruery = qruery & Q(name__contains=name)

        data = models.Colleges.objects.filter(qruery)
        paginator = Paginator(data, pageSize)

        resl = []

        for item in list(paginator.page(pageIndex)):
            temp = {
                'id': item.id,
                'name': item.name,
                'createTime': item.createTime
            }
            resl.append(temp)

        pageData = BaseView.parasePage(pageIndex, pageSize,
                                   paginator.page(pageIndex).paginator.num_pages,
                                   paginator.count, resl)

        return BaseView.successData(pageData)

    def addInfo(self,request):

        models.Colleges.objects.create(name=request.POST.get('name'),
                                       createTime = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
                                      )

        return BaseView.success()

    def updInfo(self, request):

        models.Colleges.objects.filter(id=request.POST.get('id')) \
            .update(
            name=request.POST.get('name')
        )
        return BaseView.success()

    def delInfo(self, request):

        if models.Students.objects.filter(college__id=request.POST.get('id')).exists():

            return BaseView.warn('存在关联内容无法删除')
        else:
            models.Colleges.objects.filter(id=request.POST.get('id')).delete()
            return BaseView.success()

'''
专业信息管理
'''
class MajorsView(BaseView):

    def get(self, request, module, *args, **kwargs):

        if module == 'show':
            return render(request, 'majors.html')
        elif module == 'info':
            return self.getInfo(request)
        elif module == 'page':
            return self.getPageInfo(request)
        else:
            return self.error()

    def post(self, request, module, *args, **kwargs):
        if module == 'add':
            return self.addInfo(request)
        elif module == 'upd':
            return self.updInfo(request)
        elif module == 'del':
            return self.delInfo(request)
        else:
            return self.error()

    def getInfo(self, request):

        data = models.Majors.objects.filter(id=request.GET.get('id')).first()

        resl = {
            'id': data.id,
            'name': data.name,
            'createTime': data.createTime,
        }

        return BaseView.successData(resl)

    def getPageInfo(self, request):

        pageIndex = request.GET.get('pageIndex', 1)
        pageSize = request.GET.get('pageSize', 10)
        name = request.GET.get('name')

        qruery = Q();

        if BaseView.isExit(name):
            qruery = qruery & Q(name__contains=name)

        data = models.Majors.objects.filter(qruery)
        paginator = Paginator(data, pageSize)

        resl = []

        for item in list(paginator.page(pageIndex)):
            temp = {
                'id': item.id,
                'name': item.name,
                'createTime': item.createTime
            }
            resl.append(temp)

        pageData = BaseView.parasePage(pageIndex, pageSize,
                                   paginator.page(pageIndex).paginator.num_pages,
                                   paginator.count, resl)

        return BaseView.successData(pageData)

    def addInfo(self, request):

        models.Majors.objects.create(name=request.POST.get('name'),
                                       createTime=time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
                                       )

        return BaseView.success()

    def updInfo(self, request):

        models.Majors.objects.filter(id=request.POST.get('id')) \
            .update(
            name=request.POST.get('name')
        )
        return BaseView.success()

    def delInfo(self, request):

        if models.Students.objects.filter(major__id=request.POST.get('id')).exists():

            return BaseView.warn('存在关联内容无法删除')
        else:
            models.Majors.objects.filter(id=request.POST.get('id')).delete()
            return BaseView.success()

'''
企业信息管理
'''
class CompaniesView(BaseView):

    def get(self, request, module, *args, **kwargs):

        if module == 'show':
            return render(request, 'companies.html')
        elif module == 'info':
            return self.getInfo(request)
        elif module == 'page':
            return self.getPageInfo(request)
        else:
            return self.error()

    def post(self, request, module, *args, **kwargs):
        if module == 'add':
            return self.addInfo(request)
        elif module == 'upd':
            return self.updInfo(request)
        elif module == 'del':
            return self.delInfo(request)
        else:
            return self.error()

    def getInfo(self, request):

        data = models.Companies.objects.filter(id=request.GET.get('id')).first()

        resl = {
            'id': data.id,
            'name': data.name,
            'phone': data.phone,
            'address': data.address,
        }

        return BaseView.successData(resl)

    def getPageInfo(self, request):

        pageIndex = request.GET.get('pageIndex', 1)
        pageSize = request.GET.get('pageSize', 10)
        name = request.GET.get('name')

        qruery = Q();

        if BaseView.isExit(name):
            qruery = qruery & Q(name__contains=name)

        data = models.Companies.objects.filter(qruery)
        paginator = Paginator(data, pageSize)

        resl = []

        for item in list(paginator.page(pageIndex)):
            temp = {
                'id': item.id,
                'name': item.name,
                'phone': item.phone,
                'address': item.address,
            }
            resl.append(temp)

        pageData = BaseView.parasePage(pageIndex, pageSize,
                                   paginator.page(pageIndex).paginator.num_pages,
                                   paginator.count, resl)

        return BaseView.successData(pageData)

    def addInfo(self, request):

        models.Companies.objects.create(id=int(time.time()),
                                        name=request.POST.get('name'),
                                        phone=request.POST.get('phone'),
                                        address=request.POST.get('address')
                                        )
        return BaseView.success()

    def updInfo(self, request):

        models.Companies.objects.filter(id=request.POST.get('id')) \
            .update(
            name=request.POST.get('name'),
            phone=request.POST.get('phone'),
            address=request.POST.get('address')
        )
        return BaseView.success()

    def delInfo(self, request):

        if models.Jobs.objects.filter(company__id=request.POST.get('id')).exists():

            return BaseView.warn('存在关联内容无法删除')
        else:
            models.Companies.objects.filter(id=request.POST.get('id')).delete()
            return BaseView.success()

'''
岗位信息管理
'''
class JobsView(BaseView):

    def get(self, request, module, *args, **kwargs):

        if module == 'show':

            companies = models.Companies.objects.all().values()

            return render(request, 'jobs.html', {'companies': list(companies)})
        elif module == 'info':
            return self.getInfo(request)
        elif module == 'page':
            return self.getPageInfo(request)
        else:
            return self.error()

    def post(self, request, module, *args, **kwargs):
        if module == 'add':
            return self.addInfo(request)
        elif module == 'upd':
            return self.updInfo(request)
        elif module == 'del':
            return self.delInfo(request)
        else:
            return self.error()

    def getInfo(self, request):

        data = models.Jobs.objects.filter(id=request.GET.get('id')).first()

        resl = {
            'id': data.id,
            'name': data.name,
            'duty': data.duty,
            'ask': data.ask,
            'companyId': data.company.id,
        }

        return BaseView.successData(resl)

    def getPageInfo(self, request):

        pageIndex = request.GET.get('pageIndex', 1)
        pageSize = request.GET.get('pageSize', 10)
        name = request.GET.get('name')
        companyId = request.GET.get('companyId')

        qruery = Q();

        if BaseView.isExit(name):
            qruery = qruery & Q(name__contains=name)

        if BaseView.isExit(companyId):
            qruery = qruery & Q(company__id=companyId)

        data = models.Jobs.objects.filter(qruery)
        paginator = Paginator(data, pageSize)

        resl = []

        for item in list(paginator.page(pageIndex)):
            temp = {
                'id': item.id,
                'name': item.name,
                'duty': item.duty,
                'ask': item.ask,
                'companyId': item.company.id,
                'companyName': item.company.name
            }
            resl.append(temp)

        pageData = BaseView.parasePage(pageIndex, pageSize,
                                       paginator.page(pageIndex).paginator.num_pages,
                                       paginator.count, resl)

        return BaseView.successData(pageData)

    def addInfo(self, request):

        models.Jobs.objects.create(name=request.POST.get('name'),
                                    duty=request.POST.get('duty'),
                                    ask=request.POST.get('ask'),
                                    company=models.Companies.objects.get(id=request.POST.get('companyId'))
                                    )
        return BaseView.success()

    def updInfo(self, request):

        models.Jobs.objects.filter(id=request.POST.get('id')) \
            .update(
            name=request.POST.get('name'),
            duty=request.POST.get('duty'),
            ask=request.POST.get('ask'),
            company=models.Companies.objects.get(id=request.POST.get('companyId'))
        )
        return BaseView.success()

    def delInfo(self, request):

        if models.SendLogs.objects.filter(job__id=request.POST.get('id')).exists():

            return BaseView.warn('存在关联内容无法删除')
        else:
            models.Jobs.objects.filter(id=request.POST.get('id')).delete()
            return BaseView.success()

'''
用户信息管理
'''
class UsersView(BaseView):

    def get(self, request, module, *args, **kwargs):

        if module == 'show':
            return render(request, 'users.html')
        elif module == 'info':
            return self.getInfo(request)
        elif module == 'page':
            return self.getPageInfo(request)
        else:
            return self.error()

    def post(self, request, module, *args, **kwargs):
        if module == 'add':
            return self.addInfo(request)
        elif module == 'upd':
            return self.updInfo(request)
        elif module == 'del':
            return self.delInfo(request)
        else:
            return self.error()

    def getInfo(self, request):

        data = models.Users.objects.filter(id=request.GET.get('id')).first()

        resl = {
            'id': data.id,
            'userName': data.userName,
            'passWord': data.passWord,
            'name': data.name,
            'gender': data.gender,
            'age': data.age,
            'phone': data.phone,
            'type': data.type
        }

        return BaseView.successData(resl)

    def getPageInfo(self, request):

        pageIndex = request.GET.get('pageIndex', 1)
        pageSize = request.GET.get('pageSize', 10)
        userName = request.GET.get('userName')
        name = request.GET.get('name')
        phone = request.GET.get('phone')

        qruery = Q(type = 1);

        if BaseView.isExit(userName):
            qruery = qruery & Q(userName__contains=userName)

        if BaseView.isExit(name):
            qruery = qruery & Q(name__contains=name)

        if BaseView.isExit(phone):
            qruery = qruery & Q(phone__contains=phone)

        data = models.Users.objects.filter(qruery)
        paginator = Paginator(data, pageSize)

        resl = []

        for item in list(paginator.page(pageIndex)):
            temp = {
                'id': item.id,
                'userName': item.userName,
                'passWord': item.passWord,
                'name': item.name,
                'gender': item.gender,
                'age': item.age,
                'phone': item.phone,
                'type': item.type
            }
            resl.append(temp)

        pageData = BaseView.parasePage(pageIndex, pageSize,
                                   paginator.page(pageIndex).paginator.num_pages,
                                   paginator.count, resl)

        return BaseView.successData(pageData)

    def addInfo(self, request):

        models.Users.objects.create(
                                    userName=request.POST.get('userName'),
                                    passWord=request.POST.get('passWord'),
                                    name=request.POST.get('name'),
                                    gender=request.POST.get('gender'),
                                    age=request.POST.get('age'),
                                    phone=request.POST.get('phone'),
                                    type=request.POST.get('type'),
                                    )
        return BaseView.success()

    def updInfo(self, request):

        models.Users.objects.filter(id=request.POST.get('id')) \
            .update(
            userName=request.POST.get('userName'),
            passWord=request.POST.get('passWord'),
            name=request.POST.get('name'),
            gender=request.POST.get('gender'),
            age=request.POST.get('age'),
            phone=request.POST.get('phone'),
        )
        return BaseView.success()

    def delInfo(self, request):

        models.Users.objects.filter(id=request.POST.get('id')).delete()
        return BaseView.success()

'''
学生信息管理
'''
class StudentsView(BaseView):

    def get(self, request, module, *args, **kwargs):

        if module == 'show':

            colleges = models.Colleges.objects.all().values()
            majors = models.Majors.objects.all().values()

            return render(request, 'students.html', {'colleges': list(colleges), 'majors': list(majors)})
        elif module == 'info':
            return self.getInfo(request)
        elif module == 'page':
            return self.getPageInfo(request)
        else:
            return self.error()

    def post(self, request, module, *args, **kwargs):
        if module == 'add':
            return self.addInfo(request)
        elif module == 'upd':
            return self.updInfo(request)
        elif module == 'del':
            return self.delInfo(request)
        else:
            return self.error()

    def getInfo(self, request):

        data = models.Students.objects.filter(id=request.GET.get('id')).first()

        resl = {
            'id': data.id,
            'address': data.address,
            'birthday': data.birthday,
            'status': data.status,
            'collegeId': data.college.id,
            'majorId': data.major.id,
        }

        return BaseView.successData(resl)

    def getPageInfo(self, request):

        pageIndex = request.GET.get('pageIndex', 1)
        pageSize = request.GET.get('pageSize', 10)
        userName = request.GET.get('userName')
        name = request.GET.get('name')
        phone = request.GET.get('phone')
        collegeId = request.GET.get('collegeId')
        majorId = request.GET.get('majorId')

        qruery = Q();

        if BaseView.isExit(userName):
            qruery = qruery & Q(user__userName__contains=userName)

        if BaseView.isExit(name):
            qruery = qruery & Q(user__name__contains=name)

        if BaseView.isExit(phone):
            qruery = qruery & Q(user__phone__contains=phone)

        if BaseView.isExit(collegeId):
            qruery = qruery & Q(college__id=collegeId)

        if BaseView.isExit(majorId):
            qruery = qruery & Q(major__id=majorId)

        data = models.Students.objects.filter(qruery)
        paginator = Paginator(data, pageSize)

        resl = []

        for item in list(paginator.page(pageIndex)):

            temp = {
                'id': item.id,
                'address': item.address,
                'birthday': item.birthday,
                'status': item.status,
                'collegeId': item.college.id,
                'collegeName': item.college.name,
                'majorId': item.major.id,
                'majorName': item.major.name,
                'userName': item.user.userName,
                'name': item.user.name,
                'gender': item.user.gender,
                'age': item.user.age,
                'phone': item.user.phone,
            }
            resl.append(temp)

        pageData = BaseView.parasePage(pageIndex, pageSize,
                                   paginator.page(pageIndex).paginator.num_pages,
                                   paginator.count, resl)

        return BaseView.successData(pageData)

    def addInfo(self, request):

        user = models.Users.objects.create(
            userName=request.POST.get('userName'),
            passWord=request.POST.get('passWord'),
            name=request.POST.get('name'),
            gender=request.POST.get('gender'),
            age=request.POST.get('age'),
            phone=request.POST.get('phone'),
            type=request.POST.get('type')
        )

        models.Students.objects.create(
            id=request.POST.get('id'),
            address=request.POST.get('address'),
            birthday=request.POST.get('birthday'),
            status=request.POST.get('status'),
            college=models.Colleges.objects.get(id=request.POST.get('collegeId')),
            major=models.Majors.objects.get(id=request.POST.get('majorId')),
            user=user
        )

        return BaseView.success()

    def updInfo(self, request):

        models.Students.objects.filter(id=request.POST.get('id')) \
            .update(
            address=request.POST.get('address'),
            birthday=request.POST.get('birthday'),
            college=models.Colleges.objects.get(id=request.POST.get('collegeId')),
            major=models.Majors.objects.get(id=request.POST.get('majorId'))
        )

        return BaseView.success()

    def delInfo(self, request):

        student = models.Students.objects.filter(id=request.POST.get('id')).first()

        print(request.GET.get('id'), student);
        models.Users.objects.filter(id=student.user.id).delete()
        models.EducationLogs.objects.filter(student__id=student.id).delete()
        models.ProjectLogs.objects.filter(student__id=student.id).delete()
        models.SendLogs.objects.filter(student__id=student.id).delete()

        student.delete()

        return BaseView.success()

'''
教育经历管理
'''
class EducationLogsView(BaseView):

    def get(self, request, module, *args, **kwargs):

        if module == 'show':
            return render(request, 'educationLogs.html')
        elif module == 'info':
            return self.getInfo(request)
        elif module == 'page':
            return self.getPageInfo(request)
        else:
            return self.error()

    def post(self, request, module, *args, **kwargs):
        if module == 'add':
            return self.addInfo(request)
        elif module == 'upd':
            return self.updInfo(request)
        elif module == 'del':
            return self.delInfo( request)
        else:
            return self.error()

    def getInfo(self, request):

        data = models.EducationLogs.objects.filter(id=request.GET.get('id')).first()

        resl = {
            'id': data.id,
            'name': data.name,
            'startTime': data.startTime,
            'endTime': data.endTime,
            'studentId': data.student.id,
        }

        return BaseView.successData(resl)

    def getPageInfo(self, request):

        type = request.session.get('type')
        user = request.session.get('user')

        pageIndex = request.GET.get('pageIndex', 1)
        pageSize = request.GET.get('pageSize', 10)
        name = request.GET.get('name')
        studentName = request.GET.get('studentName')

        qruery = Q();

        if type == 2:
            student = models.Students.objects.filter(user__id=user).first()
            qruery = qruery & Q(student__id=student.id)

        if BaseView.isExit(name):
            qruery = qruery & Q(name__contains=name)

        if BaseView.isExit(studentName):
            qruery = qruery & Q(student__user__name__contains=studentName)

        if type == 2:
            data = models.EducationLogs.objects.filter(qruery).order_by("-startTime")
            paginator = Paginator(data, pageSize)
        else:
            data = models.EducationLogs.objects.filter(qruery).order_by("student_id")
            paginator = Paginator(data, pageSize)

        resl = []

        for item in list(paginator.page(pageIndex)):
            temp = {
                'id': item.id,
                'name': item.name,
                'startTime': item.startTime,
                'endTime': item.endTime,
                'studentId': item.student.id,
                'studentName': item.student.user.name,
            }
            resl.append(temp)

        pageData = BaseView.parasePage(pageIndex, pageSize,
                                   paginator.page(pageIndex).paginator.num_pages,
                                   paginator.count, resl)

        return BaseView.successData(pageData)

    def addInfo(self, request):

        user = request.session.get('user')

        models.EducationLogs.objects.create(name=request.POST.get('name'),
                                    startTime=request.POST.get('startTime'),
                                    endTime=request.POST.get('endTime'),
                                    student=models.Students.objects.filter(user__id=user).first()
                                    )
        return BaseView.success()

    def updInfo(self, request):

        models.EducationLogs.objects.filter(id=request.POST.get('id')) \
            .update(
            name=request.POST.get('name'),
            startTime=request.POST.get('startTime'),
            endTime=request.POST.get('endTime'),
        )
        return BaseView.success()

    def delInfo(self, request):

        models.EducationLogs.objects.filter(id=request.POST.get('id')).delete()
        return BaseView.success()

'''
项目经历管理
'''
class ProjectLogsView(BaseView):

    def get(self, request, module, *args, **kwargs):

        if module == 'show':
            return render(request, 'projectLogs.html')
        elif module == 'info':
            return self.getInfo(request)
        elif module == 'page':
            return self.getPageInfo(request)
        else:
            return self.error()

    def post(self, request, module, *args, **kwargs):
        if module == 'add':
            return self.addInfo( request)
        elif module == 'upd':
            return self.updInfo(request)
        elif module == 'del':
            return self.delInfo(request)
        else:
            return self.error()

    def getInfo(self, request):

        data = models.ProjectLogs.objects.filter(id=request.GET.get('id')).first()

        resl = {
            'id': data.id,
            'name': data.name,
            'duty': data.duty,
            'detail': data.detail,
            'studentId': data.student.id,
        }

        return BaseView.successData(resl)

    def getPageInfo(self, request):

        type = request.session.get('type')
        user = request.session.get('user')

        pageIndex = request.GET.get('pageIndex', 1)
        pageSize = request.GET.get('pageSize', 10)
        name = request.GET.get('name')
        studentName = request.GET.get('studentName')

        qruery = Q();

        if type == 2:
            student = models.Students.objects.filter(user__id=user).first()
            qruery = qruery & Q(student__id=student.id)

        if BaseView.isExit(name):
            qruery = qruery & Q(name__contains=name)

        if BaseView.isExit(studentName):
            qruery = qruery & Q(student__user__name__contains=studentName)

        data = models.ProjectLogs.objects.filter(qruery)

        paginator = Paginator(data, pageSize)

        resl = []

        for item in list(paginator.page(pageIndex)):
            temp = {
                'id': item.id,
                'name': item.name,
                'duty': item.duty,
                'detail': item.detail,
                'studentId': item.student.id,
                'studentName': item.student.user.name,
            }
            resl.append(temp)

        pageData = BaseView.parasePage(pageIndex, pageSize,
                                   paginator.page(pageIndex).paginator.num_pages,
                                   paginator.count, resl)

        return BaseView.successData(pageData)

    def addInfo(self, request):

        user = request.session.get('user')

        models.ProjectLogs.objects.create(name=request.POST.get('name'),
                                        duty=request.POST.get('duty'),
                                        detail=request.POST.get('detail'),
                                        student=models.Students.objects.filter(user__id=user).first()
                                        )
        return BaseView.success()

    def updInfo(self, request):

        models.ProjectLogs.objects.filter(id=request.POST.get('id')) \
            .update(
            name=request.POST.get('name'),
            duty=request.POST.get('duty'),
            detail=request.POST.get('detail'),
        )
        return BaseView.success()

    def delInfo(self, request):

        models.ProjectLogs.objects.filter(id=request.POST.get('id')).delete()
        return BaseView.success()

'''
投递记录管理
'''
class SendLogs(BaseView):

    def get(self, request, module, *args, **kwargs):

        if module == 'show':
            return render(request, 'sendLogs.html')
        elif module == 'info':
            return self.getInfo(request)
        elif module == 'page':
            return self.getPageInfo(request)
        else:
            return self.error()

    def post(self, request, module, *args, **kwargs):
        if module == 'add':
            return self.addInfo(request)
        elif module == 'upd':
            return self.updInfo(request)
        elif module == 'del':
            return self.delInfo(request)
        else:
            return self.error()

    def getInfo(self, request):

        data = models.SendLogs.objects.filter(id=request.GET.get('id')).first()

        resl = {
            'id': data.id,
            'snedTime': data.snedTime,
            'status': data.status,
            'jobId': data.job.id,
            'studentId': data.student.id,
        }

        return self.successData(resl)

    def getPageInfo(self, request):

        type = request.session.get('type')
        user = request.session.get('user')

        pageIndex = request.GET.get('pageIndex', 1)
        pageSize = request.GET.get('pageSize', 10)
        jobName = request.GET.get('jobName')
        studentName = request.GET.get('studentName')

        qruery = Q();

        if type == 2:
            student = models.Students.objects.filter(user__id=user).first()
            qruery = qruery & Q(student__id=student.id)

        if BaseView.isExit(jobName):
            qruery = qruery & Q(job__name__contains=jobName)

        if BaseView.isExit(studentName):
            qruery = qruery & Q(student__user__name__contains=studentName)

        data = models.SendLogs.objects.filter(qruery).order_by("-snedTime")
        paginator = Paginator(data, pageSize)

        resl = []

        for item in list(paginator.page(pageIndex)):
            temp = {
                'id': item.id,
                'snedTime': item.snedTime,
                'status': item.status,
                'jobId': item.job.id,
                'jobName': item.job.name,
                'jobDuty': item.job.duty,
                'companyName': item.job.company.name,
                'studentId': item.student.id,
                'studentName': item.student.user.name,
            }
            resl.append(temp)

        pageData = BaseView.parasePage(pageIndex, pageSize,
                                   paginator.page(pageIndex).paginator.num_pages,
                                   paginator.count, resl)

        return BaseView.successData(pageData)

    def addInfo(self, request):

        user = request.session.get('user')
        jobId = request.POST.get('jobId')
        student = models.Students.objects.filter(user__id=user).first()

        qruery = Q();

        qruery = qruery & Q(job__id=jobId)
        qruery = qruery & Q(student__id=student.id)

        if ((models.EducationLogs.objects.filter(student__id=student.id).exists()) &
                (models.ProjectLogs.objects.filter(student__id=student.id).exists())):

            if models.SendLogs.objects.filter(qruery).exists():

                return BaseView.warn('已投递,请勿重复')
            else:

                models.SendLogs.objects.create(status=request.POST.get('status'),
                                                  snedTime=time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()),
                                                  student=student,
                                                  job=models.Jobs.objects.filter(id=jobId).first()
                                                  )
                return BaseView.success()
        else:

            return BaseView.warn('完善个人项目和教育经历后才可投递简历')

    def updInfo(self, request):

        status = request.POST.get('status')

        if  int(status) == 1:

            sendLog =  models.SendLogs.objects.filter(id=request.POST.get('id')).first()

            student = models.Students.objects.filter(id=sendLog.student.id).first()

            if student.status == 0:

                models.SendLogs.objects.filter(id=request.POST.get('id')).update(
                    status=request.POST.get('status'),
                )

                models.Students.objects.filter(id=sendLog.student.id) \
                    .update(
                    status=1,
                )

                return BaseView.success()
            else:

                return BaseView.warn('学生已被录取')

        else:
            models.SendLogs.objects.filter(id=request.POST.get('id')) \
                .update(
                status=request.POST.get('status'),
            )
            return BaseView.success()

    def delInfo(self, request):

        models.SendLogs.objects.filter(id=request.POST.get('id')).delete()

        return BaseView.success()



????✌ 感兴趣的可以先收藏起来,点赞关注不迷路,想学习更多项目可以查看主页,大家在毕设选题,项目代码以及论文编写等相关问题都可以给我留言咨询,希望可以帮助同学们顺利毕业! ????✌

源码获取:

???? 由于篇幅限制,获取完整文章或源码、代做项目的,拉到文章底部即可看到个人联系方式。 ????

点赞、收藏、关注,不迷路, 下方查看 ???????? 获取联系方式 ????????

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

计算机毕业设计:python就业信息管理系统+招聘数据管理系统+岗位投递(源码+论文) 的相关文章

随机推荐