예제 #1
0
    def infos(self, id="", name="", school_id="", school_name="", limit=100, offset=1):
        offset = (offset - 1) * limit if offset > 0 else 0
        filters = dict()
        if id:
            filters.update({"id": id})
        if name:
            filters.update({"name": name})
        if school_id or school_name:
            if not school_id:
                _school_list = db_api.school_list(name=school_name)
                if not _school_list:
                    return {"count": 0, "state": 0, "message": "query success", "data": []}
                school_id = _school_list[0].id
            filters.update({"school_id": school_id})

        grade_list = db_api.grade_list(offset=offset, limit=limit, **filters)
        #更新学生数和学校名称
        views_list = self.views(grade_list)
        for view in views_list:
            school_list = db_api.school_list(id=view.get("school_id"))
            if school_list:
                view.update({"school_name": school_list[0].name})

        grade_count = db_api.grade_count(**filters)
        return {"count": grade_count, "state": 0, "message": "query success", "data": views_list}
예제 #2
0
 def input(self, name="", cardcode="", describe=""):
     if not name or not cardcode:
         LOG.error("school name or cardcode is None")
         return
     if db_api.school_list(name=name):
         raise ParamExist(name=convert.bs2unicode(name))
     values = {"name": name, "cardcode": cardcode, "describe": describe}
     school_obj = db_api.school_create(values)
     #生成人脸库,获取faceset_token,并更新学校
     #faceset_token = face_util.create_face_tokenset(values)
     code, faceset_token = face_recognition_yyl.FaceSet_Create(
         name, school_obj.get("id"))
     if code != 200:
         LOG.error("create faceset token error")
         return
     self.update(school_obj.get("id"), faceset_token=faceset_token)
     return values
예제 #3
0
    def infos(self, id="", name="", cardcode="", limit=100, offset=0):
        offset = (offset - 1) * limit if offset > 0 else 0
        filters = dict()
        if id:
            filters.update({"id": id})
        if name:
            filters.update({"name": name})
        if cardcode:
            filters.update({"cardcode": cardcode})

        school_list = db_api.school_list(offset=offset, limit=limit, **filters)
        school_count = db_api.school_count(**filters)
        return {
            "count": school_count,
            "state": 0,
            "message": "query success",
            "data": self.views(school_list)
        }
예제 #4
0
    def infos(self, id="", name="",
              school_id="", school_name="",
              grade_id="", grade_name="",
              cardcode="", limit=100, offset=1):
        offset = (offset - 1) * limit if offset > 0 else 0
        filters = dict()
        if id:
            filters.update({"id": id})
        if name:
            filters.update({"name": name})
        if cardcode:
            filters.update({"cardcode": cardcode})
        if school_id or school_name:
            if not school_id:
                _school_list = db_api.school_list(name=school_name)
                if not _school_list:
                    return {"count": 0, "state": 0, "message": "query success", "data": []}
                school_id = [school_info.id for school_info in _school_list]
            filters.update({"school_id": school_id})

        if grade_id or grade_name:
            if not grade_id:
                _grade_list = db_api.grade_list(name=grade_name)
                if not _grade_list:
                    return
                grade_id = [grade_info.id for grade_info in _grade_list]
            filters.update({"grade_id": grade_id})

        class_list = db_api.class_list(offset=offset, limit=limit, **filters)
        #更新学生数和学校名称
        views_list = self.views(class_list)
        for view in views_list:
            school_info = db_api.school_get(id=view.get("school_id", ""))
            if school_info:
                view.update({"school_name": school_info.name})
            grade_info = db_api.grade_get(id=view.get("grade_id", ""))
            if grade_info:
                view.update({"grade_name": grade_info.name})
            student_count = db_api.student_count(class_id=view.get("id"))
            view.update({"reality_number": student_count})

        class_count = db_api.class_count(**filters)
        return {"count": class_count, "state": 0, "message": "query success", "data": views_list}
예제 #5
0
    def infos(self,
              id="",
              name="",
              school_id="",
              school_name="",
              grade_id="",
              grade_name="",
              class_id="",
              class_name="",
              phone="",
              status="",
              position=0,
              limit=100,
              offset=1):
        offset = (offset - 1) * limit if offset > 0 else 0
        filters = dict()
        if id:
            filters.update({"id": id})
        if name:
            filters.update({"name": name})
        if position in (1, 2):
            filters.update({"position": position})
        if status:
            filters.update({"status": status})
        if school_id or school_name:
            if not school_id:
                _school_list = db_api.school_list(name=school_name)
                if not _school_list:
                    return {
                        "count": 0,
                        "state": 0,
                        "message": "query success",
                        "data": []
                    }
                school_id = [school_info.id for school_info in _school_list]
            filters.update({"school_id": school_id})

        if grade_id or grade_name:
            if not grade_id:
                _grade_list = db_api.grade_list(name=grade_name)
                if not _grade_list:
                    return {
                        "count": 0,
                        "state": 0,
                        "message": "query success",
                        "data": []
                    }
                grade_id = [grade_info.id for grade_info in _grade_list]
            filters.update({"grade_id": grade_id})

        if class_id or class_name:
            if not class_id:
                _class_list = db_api.class_list(name=class_name)
                if not _class_list:
                    return {
                        "count": 0,
                        "state": 0,
                        "message": "query success",
                        "data": []
                    }
                class_id = [class_info.id for class_info in _class_list]
            filters.update({"class_id": class_id})
        if phone:
            filters.update({"phone": phone})

        #关联班级名和学校名
        teacher_list = db_api.teacher_list(offset=offset,
                                           limit=limit,
                                           **filters)
        views_list = self.views(teacher_list)
        for view in views_list:
            view.update({"school_name": ""})
            if view.get("school_id", ""):
                school_info = db_api.school_get(id=view.get("school_id"))
                if school_info:
                    view.update({"school_name": school_info.name})

            view.update({"grade_name": ""})
            if view.get("grade_id", ""):
                grade_info = view.get("grade_info", None)
                # grade_info = db_api.grade_get(id=view.get("grade_id"))
                if grade_info:
                    view.update({"grade_name": grade_info.get("name")})

            view.update({"class_name": ""})
            if view.get("class_id", ""):
                class_info = view.get("class_info", None)
                # class_info = db_api.class_get(id=view.get("class_id"))
                if class_info:
                    view.update({"class_info": self.views(class_info)})
                    view.update({"class_name": class_info.get("name")})
            """
            #history
            teacher_history_lilst = db_api.teacher_history_list(teacher_id=view.get("id"))
            if teacher_history_lilst:
                view.update({"status": teacher_history_lilst[0].status})
            """
        teacher_count = db_api.teacher_count(**filters)
        return {
            "count": teacher_count,
            "state": 0,
            "message": "query success",
            "data": views_list
        }
예제 #6
0
    def infos(self, id="", name="",
              school_id="", school_name="",
              grade_id="", grade_name="",
              class_id="", class_name="",
              relative_id="", relative_name="", phone="",
              limit=100, offset=1):
        offset = (offset - 1) * limit if offset > 0 else 0
        filters = dict()
        if id:
            filters.update({"id": id})
        if name:
            filters.update({"name": name})
        if school_id or school_name:
            if not school_id:
                _school_list = db_api.school_list(name=school_name)
                if not _school_list:
                    return {"count": 0, "state": 0, "message": "query success", "data": []}
                school_id = [school_info.id for school_info in _school_list]
            filters.update({"school_id": school_id})

        if grade_id or grade_name:
            if not grade_id:
                _grade_list = db_api.grade_list(name=grade_name)
                if not _grade_list:
                    return {"count": 0, "state": 0, "message": "query success", "data": []}
                grade_id = [grade_info.id for grade_info in _grade_list]
            filters.update({"grade_id": grade_id})

        if class_id or class_name:
            if not class_id:
                _class_list = db_api.class_list(name=class_name)
                if not _class_list:
                    return {"count": 0, "state": 0, "message": "query success", "data": []}
                class_id = [class_info.id for class_info in _class_list]
            filters.update({"class_id": class_id})

        if relative_id or relative_name or phone:
            _relation_list = self._get_relations_by_relative(relative_id, relative_name, phone)
            if _relation_list:
                _ids = [_relation.student_id for _relation in _relation_list]
                filters.update({"id": _ids})

        student_list = db_api.student_list(offset=offset, limit=limit, **filters)
        #关联学校和班级
        views_list = self.views(student_list)
        for view in views_list:
            school_info = db_api.school_get(id=view.get("school_id"))
            if school_info:
                view.update({"school_name": school_info.name})
            grade_info = view.get("grade_info", None)
            if grade_info:
                view.update({"grade_name": grade_info.get("name")})
            class_info = view.get("class_info", None)
            if class_info:
                view.update({"class_name": class_info.get("name")})
            relation_list = self._get_relations_by_student(view.get("id"))
            if relation_list:
                view.update({"relation_list": relation_list})

        student_count = db_api.student_count(**filters)
        return {"count": student_count, "state": 0, "message": "query success", "data": views_list}