コード例 #1
0
 def add_bedroom(self):
     """添加卧室, 以及卧室入住信息"""
     if not is_admin():
         raise TOKEN_ERROR(u'请使用管理员登录')
     data = parameter_required(('roid', 'bbrnum'),
                               forbidden=('bbrid', 'bbrstatus'))
     room = self.sroom.get_room_by_roid(data.get('roid'))
     mod = {}
     data['bbrid'] = str(uuid.uuid4())
     mod['BedroomBehindRoom'] = data
     if not room:
         raise NOT_FOUND(u'不存在的房源id')
     if 'bbrshowprice' in data:
         # 卧室未租出
         data['BBRstatus'] = 2
     elif 'usgender' in data:
         # 已经租出
         data['BBRstatus'] = 5
         mod['UserBedroomBehindRoom'] = {
             'UBBRid': str(uuid.uuid4()),
             'BBRid': data['bbrid'],
             'USgender': data.get('usgender')
         }
     else:
         raise PARAMS_ERROR(u'缺少必要的参数')
     self.sroom.add_models(mod)
     cache.delete('room_detail::{}'.format(data.get('roid')))
     return Success(u'添加成功', {'bbrid': data['bbrid']})
コード例 #2
0
 def add_homestay_banner(self):
     """添加民宿页的轮播图"""
     if not is_admin():
         raise TOKEN_ERROR(u'请使用管理员登录')
     data = parameter_required(('hsbimage', 'hsbsort'), others='ignore')
     data['hsbid'] = str(uuid.uuid4())
     model_bean = self.sroom.add_model('HomeStayBanner', data)
     cache.delete('home_stay_banner')
     return Success(u'添加成功', {'hsbid': data['hsbid']})
コード例 #3
0
 def delete_room_show_by_roid(self):
     if not is_admin():
         raise AUTHORITY_ERROR('请使用管理员登录')
     data = parameter_required(('roid', ))
     room_index_show = self.sindex.delete_room_show_by_roid(data.get('roid'))
     cache.delete("get_index_room_list_data")  # 删除缓存
     message = u'取消成功' if room_index_show else u'要取消的房源不在首页'
     return Success(message, {
         'roid': data.get('roid')
     })
コード例 #4
0
 def delete_homestay_banner(self):
     """删除民宿页的轮播图"""
     if not is_admin():
         raise TOKEN_ERROR(u'请使用管理员登录')
     data = parameter_required(('hsbid', ))
     hsbid = data.get('hsbid')
     homestaybanner = self.sroom.delete_homestay_banner(hsbid)
     cache.delete('home_stay_banner')
     msg = u'删除成功' if homestaybanner else u'要删除的对象不存在'
     return Success(msg, {'hsbid': hsbid})
コード例 #5
0
 def delete_room_show(self):
     """删除首页显示的整租或合租房源"""
     if not is_admin():
         raise AUTHORITY_ERROR('请使用管理员登录')
     data = parameter_required(('risid', ))
     room_index_show = self.sindex.delete_room_show_by_risid(data.get('risid'))
     cache.delete("get_index_room_list_data")  # 删除缓存
     message = u'删除成功' if room_index_show else u'要删除的对象不存在'
     return Success(message, {
         'risid': data.get('risid')
     })
コード例 #6
0
 def add_room_show(self):
     """新建首页显示的合租整租公寓民宿, 必要的参数 房源id, type, 和顺序: """
     if not is_admin():
         raise AUTHORITY_ERROR('请使用管理员登录')
     data = parameter_required(('roid', 'rotype', 'rosort'), others='ignore')
     data['RISid'] = str(uuid.uuid4())
     self.sindex.add_model('RoomIndexShow', data)
     cache.delete("get_index_room_list_data")  # 删除缓存
     return Success(u'添加成功', {
         'risid': data['RISid']
     })
コード例 #7
0
 def delete_room(self):
     """删除房源"""
     if not is_admin():
         raise TOKEN_ERROR(u'请使用管理员登录')
     data = parameter_required(('roid', ))
     roid = data.get('roid')
     deleted = self.sroom.delete_room_by_roid(roid)
     # 同时取消在首页的显示
     self.sindex.delete_room_show_by_roid(roid)
     cache.delete('room_detail::{}'.format(roid))
     cache.delete("get_index_room_list_data")  # 删除缓存
     msg = u'删除成功' if deleted else u'无此记录'
     return Success(msg, {'roid': roid})
コード例 #8
0
 def update_bedroom(self):
     """更新卧室信息, 比如改为已租出, 或者价格之类"""
     if not is_admin():
         raise TOKEN_ERROR(u'请使用管理员登录')
     data = parameter_required(('bbrid', ))
     bbrid = data.pop('bbrid')
     bedroom = self.sroom.get_bedroom_by_bbrid(bbrid)
     if not bedroom:
         raise NOT_FOUND(u'此卧室不存在')
     roid = bedroom.ROid
     if 'bbrshowprice' in data:
         # 需要改为未租出的状态
         self.sroom.update_bedroom_by_bbrid(
             bbrid, {
                 'BBRshowprice': data.get('bbrshowprice'),
                 'BBRshowpriceunit': data.get('bbrshowpriceunit', 'month'),
                 'BBRstatus': 2
             })
         userbedroom = self.sroom.update_roomates_info_by_bbrid(
             bbrid, {'UBBRstatus': 1})  # 同时需要更新卧室住户的状态
         msg = u'改为未入住成功'
     elif 'usgender' in data:
         # 需要改为入住状态
         self.sroom.update_bedroom_by_bbrid(bbrid, {"BBRstatus": 5})
         # 同时需要添加入住信息, 修改以往的入住信息为已搬(如果有)
         self.sroom.update_roomates_info_by_bbrid(bbrid, {'UBBRstatus': 1})
         model_dict = dict(UBBRid=str(uuid.uuid4()),
                           BBRid=bbrid,
                           USgender=data.get('usgender'))
         mod = dict(UserBedroomBehindRoom=model_dict)
         self.sroom.add_models(mod)
         msg = u'改为已入住成功'
     else:
         raise PARAMS_ERROR(u'缺少必要的参数')
     cache.delete('room_detail::{}'.format(roid))
     return Success(msg, {'bbrid': bbrid})
コード例 #9
0
 def update_room(self):
     """更新房源信息"""
     if not is_admin():
         raise TOKEN_ERROR(u'请使用管理员登录')
     data = parameter_required(('roid', ))
     roid = data.get('roid')
     # 房源主体的参数
     # house信息
     # medias信息
     # tags
     # roomequi设备
     # 公寓信息
     house = data.pop('house', None)
     medias = data.pop('medias', [])
     tags = data.pop('tags', [])
     roomrequirment = data.pop('roomrequirment', None)
     room = self.sroom.get_room_by_roid(roid)
     if not room:
         raise NOT_FOUND(u'无此房源')
     room_data = {
         'ROname': data.get('roname'),
         'ROimage': data.get('roimage'),
         'ROareanum': data.get('roareanum'),
         'ROface': data.get('roface'),
         'ROarea': data.get('roarea'),
         'ROshowpriceunit': data.get('roshowpriceunit'),
         'ROrenttype': data.get('rorenttype'),
         'ROdecorationstyle': data.get('rodecorationstyle'),
         'ROshowprice': data.get('roshowprice'),
         'ROcitynum': data.get('rocitynum'),
         'ROsubwayaround': data.get('rosubwayaround'),
         'STFid': data.get('stfid')
     }
     room_data = {k: v for k, v in room_data.items() if v is not None}
     if not room_data:
         raise PARAMS_ERROR('修改room需要的参数缺失')
     room_updated = self.sroom.update_room_by_roid(roid, room_data)
     print('更新了room')
     if house:
         hoid = room.ROid
         houseinfo_required = ('hofloor', 'hototalfloor', 'hobedroomcount',
                               'hoparlorcount')
         parameter_required(houseinfo_required, datafrom=house)
         house_data = {
             'HOfloor': house.get('hofloor'),
             'HOtotalfloor': house.get('hototalfloor'),
             'HObedroomcount': house.get('hobedroomcount'),
             'HOparlorcount': house.get('hoparlorcount'),
         }
         house_updated = self.sroom.update_house_by_hoid(hoid, house_data)
     if medias:
         # 此处接受到的media数据是没有删除的和信添加的, 删除的将不会在传过来
         # 此处有点罗嗦, 只需删除原来的数据, 再重新添加即可
         deleted = self.sroom.delete_room_media_by_roid(roid)
         for new_media in medias:
             new_media['reid'] = str(uuid.uuid4())
             new_media['roid'] = roid
             self.sroom.add_model('RoomMedia', new_media)
             print('添加多媒体')
     if tags:
         # 删除原来的tag
         self.sroom.delete_tag_by_roid(roid)
         print('删除了原来的tag')
         mod = {}
         mod['RoomTag'] = []
         for tag in tags:
             tag['roid'] = roid
             tag['rtid'] = str(uuid.uuid4())
             mod['RoomTag'].append(tag)
         self.sroom.add_models(mod)
         print('添加tag')
     if roomrequirment:
         self.sroom.delete_room_equirment_by_roid(roid)
         print('删除了原来的设备')
         roomrequirment['roid'] = roid
         roomrequirment['reid'] = str(uuid.uuid4())
         self.sroom.add_model('RoomEquirment', roomrequirment)
         print('修改设备')
     if 'villegeid' in data:
         hoid = room.HOid
         # house = self.sroom.get_house_by_hoid(hoid)
         villege = self.sroom.get_villege_info_by_id(data.get('villegeid'))
         if not villege:
             raise PARAMS_ERROR(u'villege id有误')
         self.sroom.update_house_by_hoid(hoid,
                                         {'VIid': data.get('villegeid')})
     cache.delete('room_detail::{}'.format(roid))
     cache.delete("get_index_room_list_data")  # 删除缓存
     return Success(u'修改成功', {'roid': roid})