Пример #1
0
    def solve_room_card_a(self, entity):
        room = entity['room'][0]
        room_name = room
        if room.find("_") != -1:
            room_name = room.split("_")[2]

        res = Neo4jPrepare.get_property(room)
        ans = "\n"
        if res['card'] != '':
            ans += "进" + room_name + "需要满足的条件为:\n"
            if res['card'].find(",") != -1:
                card_arr = res['card'].split(",")
                for c in card_arr:

                    #print("==============================c",c)
                    c_res = Neo4jPrepare.get_property(c)
                    ans += "年龄" + c_res['age'] + "的读者可以持" + c_res[
                        'office_name'] + "进入" + room_name + "\n"
            else:
                c_res = Neo4jPrepare.get_property(res['card'])
                ans += "年龄" + c_res['age'] + "的读者可以持" + c_res[
                    'office_name'] + "进入" + room_name + "\n"
        else:
            ans += "进入该馆室无需证件\n"
        return ans
Пример #2
0
    def solve_restype_describe(self, entity):
        restype = entity['restype'][0]

        res = Neo4jPrepare.get_reverse_relation(restype, '资源')
        res_arr = []
        yes_room = []
        no_room = []
        describe = []
        ans = "\n"
        for r in res:
            #print(r)

            sub_res = Neo4jPrepare.get_property(r['office_name'])
            res_arr.append(sub_res['office_name'])

            if sub_res['describe'] != '':
                yes_room.append(sub_res['office_name'])
                describe.append(sub_res['describe'])

            else:
                no_room.append(sub_res['office_name'])
        ans += restype + "包括"
        for r in res_arr[:-1]:
            ans += r + ","
        ans += res_arr[-1]
        #ans+=res_arr[-1]+"\n很抱歉,没有"

        for y in range(len(yes_room)):
            ans += yes_room[y] + ":" + describe[y] + "\n"

        return ans
Пример #3
0
 def solve_res_floor(self, entity):
     resource = entity['res'][0]
     floor = entity['floor'][0]
     res = Neo4jPrepare.get_relation(resource,'馆室')
     room_name = res[0]['office_name']
     if room_name.find("_")!=-1:
         room_name = res[0]['office_name'].split("_")[2]
     des_floor = Neo4jPrepare.get_relation(res[0]['office_name'],'楼层')
     ans = "\n"
     if floor == des_floor[0]['office_name']:
         ans += resource+"存放在"+floor
     else:
         ans += resource+"不存放在"+floor+"\n"+resource+"存放在"+des_floor[0]['office_name']+"的"+room_name
     return ans
Пример #4
0
 def solve_count_floor(self, entity):
     area = entity['area'][0]
     res = Neo4jPrepare.get_reverse_relation(area,'楼层')
     #print(res)
     l = len(res)
     ans = "\n"+area+"一共有"+str(l)+"层\n"
     return ans
Пример #5
0
    def solve_library_describe(self):
        res = Neo4jPrepare.get_entity("国家图书馆")
        #print(res)

        ans = "\n" + res[0]['describe']

        return ans
Пример #6
0
 def solve_service_describe(self, entity):
     service = entity['service'][0]
     #print(service)
     res = Neo4jPrepare.get_property(service)
     #print(res.keys())
     ans = ''
     if res['discribe'] != '':
         ans = "\n" + service + "指" + res['discribe']
     else:
         room_res = Neo4jPrepare.get_relation(service, '馆室')
         for r in room_res:
             if r['describe'] != '':
                 ans += "\n" + r['office_name'] + r['describe']
     if ans == '':
         ans = "很抱歉,暂时没有" + service + "的描述信息\n"
     return ans
Пример #7
0
    def solve_room_res_a(self, entity):
        room = entity['room'][0]
        room_name = room
        if room.find("_")!=-1:
            room_name = room.split("_")[2]
        res = Neo4jPrepare.get_reverse_relation(room,'资源')
        res_dict = {}
        for r in res:
            res_dict[r['belong']]=[]
        res_type = list(res_dict.keys())
        #print(res_type)
        if res_type == []:
            return room_name+"不存放任何资源\n"
        ans = "\n"
        ans += room_name + "存放的资源类型包括:"
        for t in res_type[:-1]:
            ans += t+","
        ans += res_type[-1]+"\n"

        for r in res:
            res_dict[r['belong']].append(r['office_name'])
        for t in res_type:
            ans += t+":"
            for r in res_dict[t][:-1]:
                ans += r+","
            ans += res_dict[t][-1] +"\n"
        return ans
Пример #8
0
 def solve_res_time(self, entity):
     resource = entity['res'][0]
     #print(Neo4jPrepare.get_property(resource))
     room = Neo4jPrepare.get_property(resource)['room']
     res = Neo4jPrepare.get_property(room)
     workday_time = res['monday_borrow']
     weekend_time = res['sunday_borrow']
     if workday_time == '' and weekend_time == '':
         return "很抱歉," + room + "的资源材料不提供借阅\n"
     #ans = "\n" + resource + "的借阅时间为:\n工作日:" + workday_time + "\n周未:" + weekend_time + "\n"
     ans = "\n" + resource + "存放在" + room + ","
     ans += room + "的借阅时间为:"
     if workday_time != '':
         ans += "\n工作日:" + workday_time
     if weekend_time != '':
         ans += "\n周未:" + weekend_time
     return ans + "\n"
Пример #9
0
 def solve_floor_count_room(self, entity):
     #print("<<<")
     floor = entity['floor'][0]
     res = Neo4jPrepare.get_reverse_relation(floor, '馆室')
     # print(res)
     l = len(res)
     ans = "\n" + floor + "一共有" + str(l) + "间馆室\n"
     return ans
Пример #10
0
 def solve_library_area(self):
     res = Neo4jPrepare.get_relation("国家图书馆","馆区")
     print(res)
     ans = "\n国家图书馆包括"
     for r in res[:-1]:
         ans += r['office_name']+","
     ans += res[-1]['office_name']+"\n"
     return ans
Пример #11
0
 def solve_res_res_a(self, entity):
     restype = entity['restype'][0]
     res = Neo4jPrepare.get_reverse_relation(restype,'资源')
     ans = "\n"+restype+"包含的资源有:\n"
     for r in res[:-1]:
         ans += r['office_name']+","
     ans += res[-1]['office_name'] + "\n"
     return ans
Пример #12
0
 def solve_count_res(self, entity):
     resource = entity['res'][0]
     res = Neo4jPrepare.get_property(resource)
     ans = "\n"
     if res['count']!='':
         ans += resource+"的数量是:"+str(res['count'])+"本(份)\n"
     else:
         ans += "很抱歉,"+resource+"暂时没有数据信息\n"
     return ans
Пример #13
0
    def solve_res_floor_a(self, entity):

        floor = entity['floor'][0]
        res = Neo4jPrepare.get_reverse_relation(floor,'馆室')
        resource_arr = []
        for r in res:
            res_arr = Neo4jPrepare.get_reverse_relation(r['office_name'],'资源')
            for sub_r in res_arr:
                resource_arr.append(sub_r['belong'])

        resource_arr = np.unique(resource_arr)

        ans = "\n"
        ans += floor+"存放有"
        for sub_r in resource_arr[:-1]:
            ans += sub_r+","
        ans += resource_arr[-1]+"等类型的资源\n"
        return ans
Пример #14
0
    def solve_card_describe(self):

        res = Neo4jPrepare.get_entity("证件")
        #print(res)
        ans = "\n"
        num = len(res)
        ans += "一共有" + str(num - 1) + "种读者卡\n"
        for r in res:
            if r['office_name'] == '第二代身份证':
                continue
            ans += '年龄' + r['age'] + '可以办理和使用' + r['office_name'] + "\n"

        return ans
Пример #15
0
    def solve_count_restype(self, entity):
        restype = entity['restype'][0]
        #res = Neo4jPrepare.get_property(restype)
        ans = "\n"
        describe = ""
        num = 0

        type = Neo4jPrepare.get_reverse_relation(restype,'资源类型')
        #print(type)
        for t in type:
            type_num = 0
            res_r = Neo4jPrepare.get_reverse_relation(t['office_name'],'资源')
            for r in res_r:
                if r['count'] =='':
                    continue
                type_num += int(r['count'])
                num += int(r['count'])
            if type_num != 0:
                describe = "其中包括:\n"+t['office_name'] + str(type_num) + "份\n"

        res_res = Neo4jPrepare.get_reverse_relation(restype, '资源')
        #print(res_res)
        other_num = 0
        for r in res_res:
            if r['count'] == '':
                continue
            num += int(r['count'])
            other_num += int(r['count'])
        if other_num != 0 and describe != '':
            describe += "以及其他" + restype + str(other_num) + "份\n"

        # print(num)
        if num!=0:
            ans += restype+"的数量是:"+str(num)+"本(份)\n"
            ans += describe
        else:
            ans += "很抱歉,"+restype+"暂时没有数据信息\n"
        return ans
Пример #16
0
    def solve_room_phone(self, entity):
        room = entity['room'][0]
        room_name = room
        if room.find("_") != -1:
            room_name = room.split("_")[2]

        res = Neo4jPrepare.get_property(room)
        #print(res)
        ans = "\n"
        if res['phone'] != '':
            ans += room_name + "的联系电话为:" + res['phone'] + "\n"
        else:
            ans += "很抱歉," + room_name + "暂无联系电话\n"
        return ans
Пример #17
0
    def solve_res_res_h(self, entity):
        restype = entity['restype'][0]
        resource = entity['res'][0]
        res_arr = []
        res = Neo4jPrepare.get_reverse_relation(restype,'资源')
        ans = "\n"
        for r in res[:-1]:
            res_arr.append(r['office_name'])
        if resource in res_arr:

            ans += "是的,"+resource + "属于"+restype+"\n"
        else:
            ans += "很抱歉," + resource + "不属于" + restype + "\n"
        return ans
Пример #18
0
    def solve_room_describe(self, entity):
        room = entity['room'][0]
        room_name = room
        if room.find("_") != -1:
            room_name = room.split("_")[2]

        res = Neo4jPrepare.get_property(room)
        #print(res)
        ans = "\n"
        if res['describe'] != '':
            ans += room_name + ":" + res['describe']
        else:
            ans += "对不起,暂时没有" + room_name + "的描述信息\n"

        return ans
Пример #19
0
 def solve_room_floor(self,entity):
     floor = entity['floor'][0]
     room = entity['room'][0]
     res = Neo4jPrepare.get_relation(room,'楼层')
     ans = "\n"
     room_name = room
     if room.find("_")!=-1:
         room_name = room.split("_")[2]
     #print(res['office_name'])
     #print(res[0]['office_name'],floor)
     if res[0]['office_name'] == floor:
         ans += room_name+"在"+floor
     else:
         ans += room_name+"不在"+floor+"\n"+room_name+"在"+res[0]['office_name']+"\n"
     return ans
Пример #20
0
    def solve_room_time(self, entity):
        room = entity['room'][0]
        res = Neo4jPrepare.get_property(room)
        #print(res)
        open_day = res['open_date']
        ans = "\n" + room + "开放日为:" + open_day + "\n"
        workday_time = res['monday_open']
        weekend_time = res['sunday_open']
        if workday_time != '':

            ans += "工作日开放时间为:" + workday_time + "\n"
        if weekend_time != '':
            ans += "周末开放时间为:" + weekend_time + "\n"

        return ans
Пример #21
0
 def solve_floor_room_a(self,entity):
     floor = entity['floor'][0]
     res = Neo4jPrepare.get_reverse_relation(floor,'馆室')
     ans = "\n"+floor+"有馆室"
     for r in res[:-1]:
         room_name = r['office_name']
         if room_name.find("_")!=-1:
             room_name = room_name.split("_")[2]
         ans += room_name+","
     room_name = res[-1]['office_name']
     if room_name.find("_") != -1:
         room_name = room_name.split("_")[2]
         ans += room_name + "\n"
     #print(ans)
     return ans
Пример #22
0
 def solve_room_res_time(self, entity):
     room = entity['room'][0]
     #print(entity)
     res = Neo4jPrepare.get_property(room)
     #print("================================",res)
     workday_time = res['monday_borrow']
     weekend_time = res['sunday_borrow']
     if workday_time == '' and weekend_time == '':
         return "很抱歉," + room + "的资源材料不提供借阅\n"
     ans = "\n" + room + "的书籍材料借阅时间为:"
     if workday_time != '':
         ans += "\n工作日:" + workday_time
     if weekend_time != '':
         ans += "\n周未:" + weekend_time
     return ans + "\n"