def merge_task_record(data): task_id = data.get("task_id") page_current = data.get("page_current") if data.get("page_current") else 1 ret = {} task_record = models.TaskRecord.objects.filter(task_id=task_id).order_by("-id") ret["page"] = public.paging_algorithm(len(task_record), page_current) if ret["page"]: task_record = task_record[ret["page"]["start"]:ret["page"]["end"]] ret["task"] = [] for record in task_record: tmp_task = model_to_dict(record) tmp_task["name"] = json.loads(tmp_task["options"]).get("name") tmp_task["params"] = json.loads(tmp_task["params"]) if tmp_task["params"] else {} task_record_id = record.id tmp_task["sub_task"] = [] sub_record = models.SubTaskRecord.objects.filter(task_record_id=task_record_id).order_by("id") for sub in sub_record: tmp_sub = model_to_dict(sub, exclude=["createTime", "runStartTime", "runEndTime"]) tmp_sub["name"] = json.loads(tmp_sub["options"]).get("name") del tmp_sub["options"] job_record = models.JobRecord.objects.filter(task_record_id=task_record_id, subtask_record_id=sub.id).order_by("id") tmp_sub["job"] = [] for job in job_record: tmp_job = model_to_dict(job, exclude=["createTime", "runStartTime", "runEndTime"]) tmp_job["options"] = json.loads(tmp_job["options"]) tmp_job["name"] = tmp_job["options"].get("name") tmp_sub["job"].append(tmp_job) tmp_task["sub_task"].append(tmp_sub) ret["task"].append(tmp_task) return ret
def get_user_info(data): work_id = data.get("work_id") flag = data.get("flag") q = data.get("q") ret = {} if not work_id: return ret if q: qset = Q(mail__icontains=q) | Q(name__icontains=q) | Q( depart__icontains=q) user = models.UserInfo.objects.filter(qset) else: user = models.UserInfo.objects.all() if work_id: work_id = int(work_id) user_list = [] admin_list = [] for u in user: tmp = model_to_dict(u) del tmp["options"] auth, created = models.Authorization.objects.get_or_create( user_id=u.id, work_id=work_id) tmp["admin"] = auth.admin tmp["write"] = auth.write if flag == public.SUPER_FLAG: if tmp["auth"]: admin_list.append(tmp) elif tmp["admin"]: user_list.insert(0, tmp) else: user_list.append(tmp) else: if tmp["admin"]: admin_list.append(tmp) elif tmp["write"]: user_list.insert(0, tmp) else: user_list.append(tmp) if admin_list: user_list = admin_list + user_list page_current = data.get("page_current", 1) if not page_current: page_current = 1 else: page_current = int(page_current) page = public.paging_algorithm(len(user_list), page_current, 50) ret["page"] = page ret["user_list"] = user_list if page: ret["user_list"] = user_list[page["start"]:page["end"]] return ret
def get_user_info(data): work_id = data.get("work_id") flag = data.get("flag") q = data.get("q") ret = {} if not work_id: return ret if q: qset = Q(mail__icontains=q) | Q(name__icontains=q) | Q(depart__icontains=q) user = models.UserInfo.objects.filter(qset) else: user = models.UserInfo.objects.all() if work_id: work_id = int(work_id) user_list = [] admin_list = [] for u in user: tmp = model_to_dict(u) del tmp["options"] auth, created = models.Authorization.objects.get_or_create(user_id=u.id, work_id=work_id) tmp["admin"] = auth.admin tmp["write"] = auth.write if flag == public.SUPER_FLAG: if tmp["auth"]: admin_list.append(tmp) elif tmp["admin"]: user_list.insert(0, tmp) else: user_list.append(tmp) else: if tmp["admin"]: admin_list.append(tmp) elif tmp["write"]: user_list.insert(0, tmp) else: user_list.append(tmp) if admin_list: user_list = admin_list + user_list page_current = data.get("page_current", 1) if not page_current: page_current = 1 else: page_current = int(page_current) page = public.paging_algorithm(len(user_list), page_current, 50) ret["page"] = page ret["user_list"] = user_list if page: ret["user_list"] = user_list[page["start"]:page["end"]] return ret
def get_user_info(data): work_id = data.get("work_id") flag = data.get("flag") q = data.get("q") if q: qset = Q(mail__icontains=q) | Q(name__icontains=q) | Q( depart__icontains=q) user = models.UserInfo.objects.filter(qset) else: user = models.UserInfo.objects.all() ret = [] if work_id: work_id = int(work_id) for u in user: tmp = {} tmp["id"] = u.id tmp["mail"] = u.mail tmp["name"] = u.name tmp["depart"] = u.depart tmp["super"] = u.super auth, created = models.Authorization.objects.get_or_create( user_id=u.id, work_id=work_id) tmp["admin"] = auth.admin tmp["write"] = auth.write if flag == 1: if tmp["admin"] or tmp["super"]: ret.insert(0, tmp) else: ret.append(tmp) else: if tmp["admin"] or tmp["write"]: ret.insert(0, tmp) else: ret.append(tmp) page_current = data.get("page_current", 1) if not page_current: page_current = 1 else: page_current = int(page_current) data["page"] = public.paging_algorithm(len(ret), page_current) if data["page"]: ret = ret[data["page"]["start"]:data["page"]["end"]] data["user_list"] = ret return data
def get_user_info(data): work_id = data.get("work_id") flag = data.get("flag") q = data.get("q") if q: qset = Q(mail__icontains=q) | Q(name__icontains=q) | Q(depart__icontains=q) user = models.UserInfo.objects.filter(qset) else: user = models.UserInfo.objects.all() ret = [] if work_id: work_id = int(work_id) for u in user: tmp = {} tmp["id"] = u.id tmp["mail"] = u.mail tmp["name"] = u.name tmp["depart"] = u.depart tmp["super"] = u.super auth, created = models.Authorization.objects.get_or_create(user_id=u.id, work_id=work_id) tmp["admin"] = auth.admin tmp["write"] = auth.write if flag == 1: if tmp["admin"] or tmp["super"]: ret.insert(0, tmp) else: ret.append(tmp) else: if tmp["admin"] or tmp["write"]: ret.insert(0, tmp) else: ret.append(tmp) page_current = data.get("page_current", 1) if not page_current: page_current = 1 else: page_current = int(page_current) data["page"] = public.paging_algorithm(len(ret), page_current) if data["page"]: ret = ret[data["page"]["start"]:data["page"]["end"]] data["user_list"] = ret return data
def merge_task_record(data): task_id = data.get("task_id") page_current = data.get("page_current") if data.get("page_current") else 1 ret = {} task_record = models.TaskRecord.objects.filter( task_id=task_id).order_by("-id") ret["page"] = public.paging_algorithm(len(task_record), page_current) if ret["page"]: task_record = task_record[ret["page"]["start"]:ret["page"]["end"]] ret["task"] = [] for record in task_record: tmp_task = model_to_dict(record) tmp_task["name"] = json.loads(tmp_task["options"]).get("name") tmp_task["params"] = json.loads( tmp_task["params"]) if tmp_task["params"] else {} task_record_id = record.id tmp_task["sub_task"] = [] sub_record = models.SubTaskRecord.objects.filter( task_record_id=task_record_id).order_by("id") for sub in sub_record: tmp_sub = model_to_dict( sub, exclude=["createTime", "runStartTime", "runEndTime"]) tmp_sub["name"] = json.loads(tmp_sub["options"]).get("name") del tmp_sub["options"] job_record = models.JobRecord.objects.filter( task_record_id=task_record_id, subtask_record_id=sub.id).order_by("id") tmp_sub["job"] = [] for job in job_record: tmp_job = model_to_dict( job, exclude=["createTime", "runStartTime", "runEndTime"]) tmp_job["options"] = json.loads(tmp_job["options"]) tmp_job["name"] = tmp_job["options"].get("name") tmp_sub["job"].append(tmp_job) tmp_task["sub_task"].append(tmp_sub) ret["task"].append(tmp_task) return ret
def get_api_list(request): ''' 获取所有接口信息 :param request: :return: ''' q = request.GET.get("q", "") if q.startswith("/"): q1 = q[1:] else: q1 = "/" + q in_q = request.GET.get("in_q", "") if in_q.startswith("/"): in_q1 = in_q[1:] else: in_q1 = "/" + in_q work_id = request.GET.get("work_id", "") group_id = request.GET.get("group_id", "") page_current = request.GET.get("page_current") days = request.GET.get("days") o = request.GET.get("o") user = request.session.get("django_mail") if not page_current: page_current = 1 else: page_current = int(page_current) qset = None if q: qset = Q(name__icontains=q) | Q(url_param__icontains=q) | Q(url_param__icontains=q1) | Q(user__icontains=q) elif in_q: qset = Q(name__icontains=in_q) | Q(url_param__icontains=in_q) | Q(url_param__icontains=in_q1) | Q( user__icontains=in_q) if qset: api = models.Api.objects.filter(qset) else: api = models.Api.objects.all() group_list = [] if work_id: group = models.ApiGroup.objects.filter(work_id=work_id) else: group = models.ApiGroup.objects.all() for g in group: group_list.append(g.id) if group_list: if not group_id: api = api.filter(group_id__in=group_list) elif int(group_id) in group_list: api = api.filter(group_id=group_id) else: api = [] else: api = [] if days: days = int(days) now = datetime.datetime.now() days = now - datetime.timedelta(days=days) if api: api = api.filter(modify__gte=days) if api: if o: api = api.order_by(o) else: api = api.order_by("-id") data = {} data["page"] = public.paging_algorithm(len(api), page_current) if data["page"]: api = api[data["page"]["start"]:data["page"]["end"]] data["api_list"] = [] collection = models.ApiCollection.objects.filter(user=user) for a in api: tmp = {} tmp["id"] = a.id tmp["collection"] = collection.filter(api_id=tmp["id"]) tmp["group_id"] = a.group_id tmp["group"] = get_api_group_dict(tmp["group_id"]) tmp["work"] = get_api_work_dict(tmp["group"]["work_id"]) tmp["name"] = a.name tmp["url"] = a.url tmp["url_param"] = a.url_param tmp["status"] = int(a.status) tmp["request_type"] = int(a.request_type) tmp["is_show"] = a.is_show tmp["version"] = a.version tmp["user"] = a.user tmp["badge"] = a.badge if tmp["user"]: tmp["user_name"] = a.user.split("@")[0] else: tmp["user_name"] = "" data["api_list"].append(tmp) return data