def addCardTrack(): resp = {"code": 200, "msg": "success"} # IP认证 ip = request.remote_addr # resp['msg']=ip if ip not in app.config["ALLOWED_IP"]: resp['code'] = -1 resp['msg'] = "无权限" return jsonify(resp) try: # token认证 reqData = json.loads(request.get_data(as_text=True)) if "token" not in reqData or reqData['token'] != app.config["TOKEN"]: resp['code'] = -1 resp['msg'] = "无权限" return jsonify(resp) # 在数据库中添加相应的用户和场所以及关系 for track in reqData['data']['item']: TrackService.addCardTrack(track['user'], track['venue'], track['time'], track['source']) except Exception as e: resp['code'] = -1 resp['msg'] = "fail" print(e) return jsonify(resp)
def getStaffTrackByNo(): resp_data = {"code": 200, "msg": "操作成功", "data": {}} # 权限判断 if g.current_user.super != 1: #超级管理员权限 resp_data["code"] = -1 resp_data["msg"] = "无权限" return jsonify(resp_data) req = request.values no = req["no"] if 'no' in req else '' page = int(req["p"]) if ("p" in req and req["p"]) else 1 # 轨迹列表 totalCount, trackList = TrackService.getTrackByNo(3, no, page, app.config["PAGE_SIZE"]) page_params = { "total": totalCount, "page_size": app.config["PAGE_SIZE"], "page_num": page, "display": app.config["PAGE_DISPLAY"], } pages = iPagination(page_params) resp_data["list"] = trackList resp_data["pages"] = pages return jsonify(resp_data)
def getScanRecord(): resp = {"code": 200, "msg": "success"} # IP认证 ip = request.remote_addr # resp['msg']=ip if ip not in app.config["ALLOWED_IP"]: resp['code'] = -1 resp['msg'] = "无权限" return jsonify(resp) try: # token认证 #req = request.values reqData = json.loads(request.get_data(as_text=True)) if "token" not in reqData or reqData['token'] != app.config["TOKEN"]: resp['code'] = -1 resp['msg'] = "无权限" return jsonify(resp) page_num = int(reqData['data']['page_num']) if ( "page_num" in reqData['data'] and reqData['data']['page_num']) else 1 page_size = int(reqData['data']['page_size']) if ("page_size" in reqData['data'] and reqData['data']['page_size']) \ else app.config['PAGE_SIZE'] type = int(reqData['data']["type"]) if ( "type" in reqData['data'] and reqData['data']["type"]) else 0 venue = reqData['data']["venue"] if ("venue" in reqData['data']) else "" no = reqData['data']["no"] if ("no" in reqData['data']) else "" name = reqData['data']["name"] if ("name" in reqData['data']) else "" begintime = reqData['data']['begintime'] if ( 'begintime' in reqData['data'] and reqData['data']["begintime"]) else '0000-00-00 00:00:00' endtime = reqData['data']['endtime'] if ( 'endtime' in reqData['data'] and reqData['data']["endtime"]) else '9999-99-99 23:59:59' totalCount, trackList = TrackService.search("", type, venue, no, name, begintime, endtime, page_num, page_size) page_params = { "total": totalCount, "page_size": page_size, "page_num": page_num, "display": app.config["PAGE_DISPLAY"], } pages = iPaginationForAPI(page_params) resp["data"] = trackList resp["pages"] = pages except Exception as e: resp['code'] = -1 resp['msg'] = "请求失败" print(e) return jsonify(resp)
def getAllTrackList(): ''' 获取全部轨迹数据 :param: global变量 req :return: track list ''' if not req: return [] resp_data = {} page = int(req["p"]) if ("p" in req and req["p"]) else 1 type = int(req["type"]) if ("type" in req and req["type"]) else 0 venue = req["venue"] if ("venue" in req) else "" no = req["no"] if ("no" in req) else "" name = req["name"] if ("name" in req) else "" begintime = req['begintime'] if ( 'begintime' in req and req["begintime"]) else '0000-00-00' endtime = req['endtime'] if ('endtime' in req and req["endtime"]) else '9999-99-99' endtime = endtime + " 23:59:59" # 权限判断 if g.current_user.super == 1: # 超级管理员 totalCount, trackList = TrackService.searchAll( "", type, venue, no, name, begintime, endtime) else: # 场所管理员 totalCount, trackList = TrackService.searchAll( g.current_user.no, type, venue, no, name, begintime, endtime) page_params = { "total": totalCount, "page_size": app.config["PAGE_SIZE"], "page_num": page, "display": app.config["PAGE_DISPLAY"], } pages = iPagination(page_params) resp_data["list"] = trackList resp_data["pages"] = pages return resp_data['list']
def getTrackList(): resp_data = {} req = request.values page = int(req["p"]) if ("p" in req and req["p"]) else 1 type = int(req["type"]) if ("type" in req and req["type"]) else 0 venue = req["venue"] if ("venue" in req) else "" no = req["no"] if ("no" in req) else "" name = req["name"] if ("name" in req) else "" begintime = req['begintime'] if ('begintime' in req and req["begintime"]) else '0000-00-00' endtime = req['endtime'] if ('endtime' in req and req["endtime"]) else '9999-99-99' endtime = endtime + " 23:59:59" # 权限判断 if g.current_user.super == 1: #超级管理员 totalCount, trackList = TrackService.search("", type, venue, no, name, begintime, endtime, page, app.config["PAGE_SIZE"]) else: #场所管理员 totalCount, trackList = TrackService.search(g.current_user.no, type, venue, no, name, begintime, endtime, page, app.config["PAGE_SIZE"]) page_params = { "total": totalCount, "page_size": app.config["PAGE_SIZE"], "page_num": page, "display": app.config["PAGE_DISPLAY"], } pages = iPagination(page_params) resp_data["list"] = trackList resp_data["pages"] = pages return jsonify(resp_data)
def getMyTrack(): req = request.values pageNum = int(req["pageNum"]) if ("pageNum" in req and req["pageNum"]) else 1 pageSize = int(req["pageSize"]) if ( "pageSize" in req and req["pageSize"]) else app.config["PAGE_SIZE"] member_info = g.member_info resp_data = {"code": 200, "msg": "success", "data": {}} trackList = TrackService.getMyTrackByNo(member_info.no, pageNum, pageSize) resp_data['data'] = trackList return jsonify(resp_data)
def addTrackByAdmin(): resp = {"code": 1000, "msg": "venue_name", "data": {}} req = request.values venueid = req["venueid"] if "venueid" in req else None if not venueid: resp["code"] = -1 resp["msg"] = "需要场所id" return jsonify(resp) userid = req["userid"] if "userid" in req else None if not userid: resp["code"] = -1 resp["msg"] = "需要用户id" return jsonify(resp) venue_info = VenueService.getByID(venueid) if not venue_info: resp["code"] = -1 resp["msg"] = "场所不存在" return jsonify(resp) if venue_info.status == -1: resp["code"] = -1 resp["msg"] = "场所已删除" return jsonify(resp) #通过userid获取User member_info = UserService.getByUserid(userid) if not member_info: resp["code"] = -1 resp["msg"] = "用户不存在" return jsonify(resp) if member_info.leader == None: #不是领导 resp['data'] = { "userdept": member_info.dept, "username": member_info.name, } else: #是领导 resp['data'] = { "userdept": "", "username": "******", } now = datetime.datetime.now() str_now = getFormatDate(date=now) # now = datetime.datetime.now() # expiretime = now + datetime.timedelta(days=+10) # str_now = getFormatDate(date=expiretime) currentUser = g.member_info # -1直接红码 if member_info.state == -1: # print("红码") resp["code"] = 2000 resp["msg"] = venue_info.name #获取场所名称返回 放在msg里 return jsonify(resp) # 1直接绿码 if member_info.state == 1: # print("超级用户绿码") # 添加轨迹 TrackService.createByAdmin(currentUser.no, member_info.no, venueid, str_now, 1) #type=1 绿码 2黄码 resp["code"] = 1001 #1001绿码 1002黄码 #2000红码 resp["msg"] = venue_info.name #绿码 return jsonify(resp) # 判断是否有提交过审批 需要审批通过且时间合法 result2 = UserService.hasLegalApply(member_info.no, venueid, str_now) if result2 == True: TrackService.create(member_info.no, venueid, str_now, 1) #绿码 resp["code"] = 1001 #1001绿码 1002黄码 #2000红码 resp["msg"] = venue_info.name return jsonify(resp) permissionType = venue_info.permissionType if permissionType == 2: #对全体教职工开放 if "TEACHER" in member_info.labels: #教职工 # print("绿码") TrackService.createByAdmin(currentUser.no, member_info.no, venueid, str_now, 1) #type=1 绿码 2黄码 resp["code"] = 1001 #1001绿码 1002黄码 #2000红码 resp["msg"] = venue_info.name #绿码 return jsonify(resp) else: # print("黄码") TrackService.createByAdmin(currentUser.no, member_info.no, venueid, str_now, 2) #type=1 绿码 2黄码 resp["code"] = 1002 #1001绿码 1002黄码 #2000红码 resp["msg"] = venue_info.name #绿码 return jsonify(resp) elif permissionType == 3: #对全体学生开放 if "STUDENT" in member_info.labels: #学生 # print("绿码") TrackService.createByAdmin(currentUser.no, member_info.no, venueid, str_now, 1) #type=1 绿码 2黄码 resp["code"] = 1001 #1001绿码 1002黄码 #2000红码 resp["msg"] = venue_info.name #绿码 return jsonify(resp) else: # print("黄码") TrackService.createByAdmin(currentUser.no, member_info.no, venueid, str_now, 2) #type=1 绿码 2黄码 resp["code"] = 1002 #1001绿码 1002黄码 #2000红码 resp["msg"] = venue_info.name #绿码 return jsonify(resp) elif permissionType == 4: #对所有人开放 # print("绿码") TrackService.createByAdmin(currentUser.no, member_info.no, venueid, str_now, 1) #type=1 绿码 2黄码 resp["code"] = 1001 #1001绿码 1002黄码 #2000红码 resp["msg"] = venue_info.name #绿码 return jsonify(resp) else: #permissionType==1 #根据白名单授权 if member_info.state == None: #没有赋值过state状态,暂且当做黄码处理 # 添加轨迹 TrackService.createByAdmin(currentUser.no, member_info.no, venueid, str_now, 2) #type=1 绿码 2黄码 resp["code"] = 1002 #1001绿码 1002黄码 #2000红码 resp["msg"] = venue_info.name #绿码 return jsonify(resp) if member_info.state == 0: # print("需要进一步判断") result = TrackService.hasPermission(member_info.no, venueid) if result == True: # print("有权限") type = 1 resp["code"] = 1001 #1001绿码 1002黄码 #2000红码 else: type = 2 resp["code"] = 1002 #1001绿码 1002黄码 #2000红码 # 添加轨迹 TrackService.createByAdmin(currentUser.no, member_info.no, venueid, str_now, type) #绿码 resp["msg"] = venue_info.name return jsonify(resp)
def getTrace(): resp_data = {"code": 200, "msg": "操作成功", "data": {}} req = request.values no = req["no"] if ("no" in req) else "" begintime = req['begintime'] if ('begintime' in req and req["begintime"]) else '0000-00-00' endtime = req['endtime'] if ('endtime' in req and req["endtime"]) else '9999-00-00' endtime = endtime+" 23:59:59" minute=3600000 try: minute = int(req["minute"]) if ("minute" in req and req["minute"]) else 3600000 except Exception as ex: resp_data["code"] = -1 resp_data["msg"] = "请输入整数型的分钟数" return jsonify(resp_data) # time = req['time'] if ('time' in req and req["time"]) else '0000-00-00' # time = time+" 23:59:59" # date_array=time.split("-") # date_from=datetime.date(int(date_array[0]),int(date_array[1]),int(date_array[2])) # date_from = date_from + datetime.timedelta(days=-3) # date_from = getFormatDate(date=date_from) # date_to=time # 权限判断 if g.current_user.super!=1:#超级管理员权限 resp_data["code"] = -1 resp_data["msg"] = "无权限" return jsonify(resp_data) # jsonData={"results":[{"data":[{"graph":{"nodes":[],"relationships":[]}}]}]}; # print(date_from) # print(date_to) # venueList = TrackService.searchByNoTime(no,date_from,date_to) venueList = TrackService.searchByNoTime(no,begintime,endtime) relationshipList=[] nodesList=[] nodesList.append({ "id": no, "labels": ["目标人员"], # "properties":{"姓名":"姓名","学工号":no}, "properties":{"学工号":no}, }) for venue in venueList: nodesList.append({ # "id": venue['venueid'], "id": venue['id'], "labels": ["场所"], "properties":{"名称":venue['venuename']}, }) if venue['id']=='1': relationshipList.append({ "type": "去过", "startNode": no, "endNode": venue['id'], "properties": { "时间": venue['time'] } }) else: relationshipList.append({ "type": "接着去了", "startNode": str(int(venue['id'])-1), "endNode": venue['id'], "properties": { "时间": venue['time'] } }) tmp_date=datetime.datetime.strptime(venue['time'],'%Y-%m-%d %H:%M:%S') tmp_date_from=tmp_date + datetime.timedelta(minutes=-minute)#minute分钟前 tmp_date_to=tmp_date + datetime.timedelta(minutes=+minute)#minute分钟后 tmp_date_from = getFormatDate(date=tmp_date_from) tmp_date_to = getFormatDate(date=tmp_date_to) # userList = TrackService.searchByVenueTime(venue['id'],date_from_venue,date_to_venue,no) userList = TrackService.searchByVenueTime(venue['venueid'],tmp_date_from,tmp_date_to,no) for user in userList: nodesList.append({ # "id": venue['venueid'], "id": user['no'], "labels": ["人员"], "properties":{"学工号":user['no'],"姓名":user['name']}, }) relationshipList.append({ "type": "去过", "startNode": user['no'], "endNode": venue['id'], "properties": { "时间": user['time'] } }) # jsonData["results"]["data"]["graph"]["nodes"]=nodesList jsonData={"results":[{"data":[{"graph":{"nodes":nodesList,"relationships":relationshipList}}]}]}; # print(venue['venueid']+'==='+venue['venuename']+'==='+venue['time']) # jsonData={"results":[]}; resp_data["data"] = jsonData return jsonify(resp_data)