safesite/safesite/edu/views.py

174 lines
7.3 KiB
Python

from django.shortcuts import render,redirect,render_to_response
from django.http import HttpResponse, HttpResponseRedirect,JsonResponse
from ..models import User,Trouble,Dickey,Partment,Dicclass,Train,Drill,TroubleAccess,Group,Yjyc,Trainuser,Drilluser,Yjsetup,Menu,Observe,Observeto,Unsafes,Miss,Socertificate,Userprofile,Suggest,Notice,Noticeto,Operation,Operzyry,Fxcs,Operationspjd,Operspxq,Question,ExamPaper,ExamTest,ExamPaperDetail,ExamTestDetail,Questioncat,Safecert,Map,Area,Missto,Suggestflow,Questioncat,Equipment,Inspect,Risk,RiskAct,Edulesson,EdulessonWatch
from django.template import RequestContext
from django.views.decorators.csrf import csrf_exempt
from django.core import serializers
import json
from uuid import UUID
import os
import time
from datetime import datetime,date,timedelta
from django.db.models import F,Count,Sum
import requests
from ..tasks import send_wechatmsgs,send_wechatmsg,yjjs,gettime,yjjs_px,yjjs_yl,updateTzzs,updateAqzs
from ..export import exportdoc,exportxlsx,exportyjdoc,exportsimplexlsx,exportdoc2
from ..daoru import drusers,drequipments,drrisks
from django.forms.models import model_to_dict
from ..safespider import getTzzs,getAqzs
#from duibiao import calsim
from django.db.models import Q
from django.core.serializers.json import DjangoJSONEncoder
from io import StringIO
import operator
import jwt
from ..views import apicheck_login, getcompany,fenye,transjson,upfile
def index(req):
return render(req,'edulessonindex.html')
def showvideo(req):
return render(req,'eduvideoshow.html')
def add(req):
return render(req,'edulessonadd.html')
def addwj(req):
return render(req,'edulessonaddwj.html')
#观看历史
def edulessondetail(req,jyid):
return render(req,'edulessondetail.html',{'jyid':jyid})
def edulessonedit(req,id):
return render(req,'edulessonedit.html',{'id':id})
#上传视频,文件,返回地址和名称
def upload(req):
username = User.objects.get(userid=req.session['userid']).username
file_name = time.strftime('%Y%m%d%H%M%S')+ '_' + req.FILES['mf'].name
user_upload_folder = os.path.join('media/', username)
if not os.path.exists(user_upload_folder):
os.mkdir(user_upload_folder)
filepath = os.path.join(user_upload_folder, file_name)
filepath = filepath.replace('\\','/')
with open( filepath, 'wb') as f:
f.write(req.FILES['mf'].read())
return JsonResponse({"code":1,"filename":file_name,"filepath":filepath})
#查询
def selectDate(req):
a = req.GET.get('a')
userid = req.session['userid']
userobj = User.objects.get(userid=userid)
companyid = getcompany(userid)
a = Edulesson.objects.filter(usecomp=Partment.objects.get(partid=companyid),deletemark=1)
if req.GET.get('type',None):
a = a.filter(type=req.GET.get('type'))
total = a.count()
startnum,endnum=fenye(req)
a = a.order_by('-submittime')[startnum:endnum].values('id','num','title','user__name','desciption','submittime','type','cate__name','url','downnum')
return HttpResponse(transjson(total,a),content_type="application/json")
@apicheck_login
def api(req):
a = req.GET.get('a')
#首页列表
if a=='listall':
userid = req.session['userid']
companyid = getcompany(userid)
startnum,endnum=fenye(req)
a = Edulesson.objects.filter(usecomp__partid__in= [1,Partment.objects.get(partid=companyid).partid] ,deletemark=1)#无deletemark
if req.GET.get('search',None):
search = req.GET.get('search')
a = a.filter(Q(title__contains=search)|Q(desciption__contains=search)|Q(cate__name__contains=search))
total = a.count()
startnum,endnum=fenye(req)
a = a.order_by('-downnum','-modifytime')[startnum:endnum].values('id','num','title','user__name','user__ubelongpart__partname','desciption','submittime','type','cate__name','url','downnum','modifytime')
return HttpResponse(transjson(total,a),content_type="application/json")
elif a == 'detail':
id = req.GET.get('id')
obj = Edulesson.objects.filter(id=id).values('id','num','title','user__name','user__ubelongpart__partname','desciption','submittime','type','cate__name','url','downnum','modifytime')
return JsonResponse(list(obj)[0])
#视频
elif a=='add':
userid = req.session['userid']#用户ID
companyid = getcompany(userid)#公司ID
obj = Edulesson()
data = json.loads(req.body.decode('utf-8'))
obj.title = data['title']
obj.num='XXZL'+time.strftime('%Y%m%d%H%M%S')
if 'submittime' in data and data['submittime']:
obj.submittime=data['submittime']
else:
obj.submittime=datetime.now()
obj.desciption=data['desciption']
obj.type=1
obj.deletemark=1
obj.url=data['url']
obj.downnum=0
obj.cate= Questioncat.objects.get(id=data['cate'])
obj.usecomp=Partment.objects.get(partid=companyid)
obj.user=User.objects.get(userid=userid)
obj.save()
return JsonResponse({"code":1})
#文件
elif a=='addwj':
userid = req.session['userid']#用户ID
companyid = getcompany(userid)#公司ID
obj = Edulesson()
data = json.loads(req.body.decode('utf-8'))
obj.title = data['title']
obj.num='ZXJY'+time.strftime('%Y%m%d%H%M%S')
if 'submittime' in data and data['submittime']:
obj.submittime=data['submittime']
else:
obj.submittime=datetime.now()
obj.desciption=data['desciption']
obj.deletemark=1
obj.url=data['url']
fileurl = data['url']
if fileurl.endswith('.mp4'):
obj.type = 1
elif fileurl.endswith('.doc') or fileurl.endswith('.docx'):
obj.type = 2
elif fileurl.endswith('.ppt') or fileurl.endswith('.pptx'):
obj.type = 3
elif fileurl.endswith('.pdf'):
obj.type = 4
elif fileurl.endswith('.xls') or fileurl.endswith('.xlsx'):
obj.type = 5
elif fileurl.endswith('.zip') or fileurl.endswith('.rar'):
obj.type = 6
else:
obj.type = 7 #其他
obj.downnum=0
obj.cate= Questioncat.objects.get(id=data['cate'])
obj.usecomp=Partment.objects.get(partid=companyid)
obj.user=User.objects.get(userid=userid)
obj.save()
return JsonResponse({"code":1})
#删除
elif a == 'del':
id =req.GET.get('id')
userid = req.session['userid']
companyid = getcompany(userid)#公司ID
a = Edulesson.objects.get(id=id)
if a.usecomp==Partment.objects.get(partid=companyid):
a.deletemark=0
a.save()
return JsonResponse({"code":1})
else:
return JsonResponse({"code":0})
#点击下载
elif a=='downfile':
id =req.GET.get('id')
userid = req.session['userid']
a = Edulesson.objects.get(id=id)
a.downnum=a.downnum+1
a.save()
obj = EdulessonWatch()
obj.edulesson=a
obj.user=User.objects.get(userid=userid)
obj.save()
return JsonResponse({"code":1,"url": a.url})
#观看详情
elif a=='detail':
id=req.GET.get('zrid')
a = EdulessonWatch.objects.filter(edulesson=id).values('id','user__name','submittime')
total = a.count()
return HttpResponse(transjson(total,a),content_type="application/json")