def ClassHandle(request): #登录用户才能操作 #获取Token token = get_token(request) if not IsLogin(token): return JsonResponse(GlobalVar.RspFail,GlobalVar.UserNotLogin) #获取登录用户 lUser = GetUserFromToken(token) #【1】如果方法是Post,则开启新建 if request.method == 'POST': try: pClass = JsonRequest(request.body) pClassNumber = pClass.get('ClassNumber','') pClassName = pClass.get('ClassName','') pGenerateYear = pClass.get('GenerateYear','') pType = pClass.get('Type','') pidSchool = pClass.get('idSchool','') y,m,d = strptime(pGenerateYear,"%Y-%m-%d")[0:3] curClass = Class( ClassNumber = pClassNumber, ClassName = pClassName, GenerateYear = datetime(y,m,d), Type = pType) #保存班级信息,并返回id result,detail,idClass = curClass.save(token,int(pidSchool)) #数据保存失败 if(not result): return JsonResponse(GlobalVar.RspFail,detail) return JsonResponse(GlobalVar.RspSuccess,str(idClass)) except: return JsonResponse(GlobalVar.RspFail,"发生了未知错误!") elif request.method == 'GET': try: #过滤出自己所属的班级 pTypePara = request.GET.get('TypePara','') if pTypePara == 'my': return JsonResponse(Class.objects.filter(fkClassUser2Class__idUser=lUser)) else: pass #获取学校名字查询关键字 pName = request.GET.get('Name','') #按照学校方式查询 pSchool = request.GET.get('idSchool','') if pSchool != '': return JsonResponse(Class.objects.filter(idSchool=pSchool)) #返回查询结果 return JsonResponse(Class.objects.filter(Name__contains=pName)) except: return JsonResponse(GlobalVar.RspFail,"查询班级信息出错") #【2】除了POST和GET,其他方法不处理 else: return JsonResponse(GlobalVar.RspInValidRequest)
def BlogHandle(request): if not IsLogin(get_token(request)): return JsonResponse(GlobalVar.RspFail,GlobalVar.UserNotLogin) #【1】如果方法是Post,则开启注册,这是和客户端交互的第二步 if request.method == 'POST': pBlog = JsonRequest(request.body) token = get_token(request) pidAtClass = pBlog.get('idAtClass','') pidAtStudent = pBlog.get('idAtStudent','') pContent = pBlog.get('Content','') pLink = pBlog.get('Link','') ulToken = '' filename = '' #当终端传过来的Link为空时,则表示没有附件上传 if not '' == pLink: ulToken,filename = func_yun.GetQiniuUlToken(GlobalVar.FileBlog) try: lBlog = Blog( Content = pContent, Link = filename) lBlog.save(token,pidAtClass,pidAtStudent) except: temp = copy(GlobalVar.RspFail) temp['UserMsg'] = u'发表日志异常' return JsonResponse(temp) temp = copy(GlobalVar.RspSuccess) #将上传凭证和服务器生成的文件名称返回给客户端 temp['UlToken'] = ulToken temp['FileName'] = filename return JsonResponse(temp,u'发表成功') elif request.method == 'GET': try: #获取日志查询关键字 pContent = request.GET.get('Content','') #返回查询结果 return JsonResponse(Blog.objects.filter(Content__contains=pContent)) except: return JsonResponse(GlobalVar.RspFail,u"刷新日志失败") #【2】除了POST和GET,其他方法不处理 else: return JsonResponse(GlobalVar.RspInValidRequest,u'只能使用Post或者GET方法')
def SchoolHandle(request): if not IsLogin(get_token(request)): return JsonResponse(GlobalVar.RspFail,GlobalVar.UserNotLogin) #【1】如果方法是Post,则添加学校 if request.method == 'POST': #APP使用Json方式传送数据 if 'application/json' in request.META.get('CONTENT_TYPE',''): pSchool = JsonRequest(request.body) #需要联合查询 pName = pSchool.get('Name','') try: lSchool = School.objects.get(Name=pName) #删除或者修改 if pSchool.get('requestType','') is "delete" or\ pSchool.get('requestType','') is "update": result,infor = lSchool.update(lSchool,get_token(request)) if result: return JsonResponse(GlobalVar.RspSuccess,'学校信息更新成功') else: return JsonResponse(GlobalVar.RspFail,'学校信息更新失败' + infor) #既不是删除学校,也不是更新学校,则是添加学校 else: return JsonResponse(GlobalVar.RspFail,'该学校的名字已经注册,请使用其他名字') except School.DoesNotExist: #添加学校 if pSchool.get('requestType','') is not "add": return JsonResponse(GlobalVar.RspFail,'学校已经不存在,不能进行除添加以外的其他操作') curSchool = School( Name = pName, Provence = pSchool.get('Provence',''), City = pSchool.get('City',''), Address=pSchool.get('Address',''), Phone = pSchool.get('Phone',''), Principal = GetUserFromId(pSchool.get('Principal','')) ) result,detail = curSchool.save(token = get_token(request)) if not result: return JsonResponse(GlobalVar.RspFail,'学校创建失败' + detail) return JsonResponse(GlobalVar.RspSuccess,'学校创建成功') #返回多个,理论上不应该存在,重复键值 except School.MultipleObjectsReturned: pass #form数据解析失败 return JsonResponse(GlobalVar.RspFail,'保存失败') #预留网页接口 else: return JsonResponse(GlobalVar.RspWebReserve) elif request.method == 'GET': try: #获取学校名字查询关键字 #pSchool = simplejson.loads(request.body) #pName = pSchool.get('Name','') lProvence = request.GET.get('Provence','') lCity = request.GET.get('City','') lModifyTime = request.GET.get('ModifyTime','') if lModifyTime is '': lModifyTime = '1900-01-01 00:00:00' else: pass querySet = None #lUpdate = Str2DateTime(lModifyTime) if lProvence is not '': if lCity is not '': querySet = School.objects.filter(Provence=lProvence).filter(City=lCity).filter(ModifyTime__gt=Str2DateTime(lModifyTime)) else: querySet = School.objects.filter(Provence=lProvence).filter(ModifyTime__gt=Str2DateTime(lModifyTime)) else: if lCity is not '': querySet = School.objects.filter(City=lCity).filter(ModifyTime__gt=Str2DateTime(lModifyTime)) else: querySet = School.objects.filter(ModifyTime__gt=Str2DateTime(lModifyTime)) #返回查询结果 #querySet = School.objects.filter(Name__contains=lName) return JsonResponse(querySet) except: return JsonResponse(GlobalVar.RspFail,Detail='查询异常') #【2】除了POST和GET,其他方法不处理 else: return JsonResponse(GlobalVar.RspInValidRequest)