safesite/safesite/edu/views.py

147 lines
6.0 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 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 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/video', 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','watchnum')
return HttpResponse(transjson(total,a),content_type="application/json")
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).order_by('id')#无deletemark
total = a.count()
startnum,endnum=fenye(req)
a = a[startnum:endnum].values('id','num','title','user__name','desciption','submittime','type','cate__name','url','watchnum')
return HttpResponse(transjson(total,a),content_type="application/json")
#视频
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='ZXJY'+time.strftime('%Y%m%d%H%M%S')
obj.submittime=data['submittime']
obj.desciption=data['desciption']
obj.type=data['type']
obj.deletemark=1
obj.modifytime= datetime.now()
obj.url=data['url']
obj.watchnum=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')
obj.submittime=data['submittime']
obj.desciption=data['desciption']
obj.type=1
obj.deletemark=1
obj.modifytime= datetime.now()
obj.url=data['url']
obj.watchnum=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']
a = Edulesson.objects.get(id=id)
if User.objects.get(userid = userid).issuper == 1:
a.deletemark=0
a.save()
return JsonResponse({"code":1})
else:
return JsonResponse({"code":0})
#点击阅读
elif a=='readnumber':
id =req.GET.get('id')
userid = req.session['userid']
a = Edulesson.objects.get(id=id)
a.watchnum=a.watchnum+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('eduid')
a = EdulessonWatch.objects.filter(edulesson=id).values('id','user__name','submittime')
total = a.count()
return HttpResponse(transjson(total,a),content_type="application/json")