def add_hotel(self, HotelCode, RoomNo, HotelName, FolioCode, OperateTime): try: ResOjCheckIn = CheckIn().query2(CheckIn).filter(CheckIn.FolioCode == FolioCode). \ order_by(desc(CheckIn.CheckInID)).all() if ResOjCheckIn: objCheckIn = CheckIn() resHotel = Hotel().query.filter( Hotel.HotelCode == HotelCode).first() if resHotel: objCheckIn.HotelID = resHotel.HotelID else: print '--------------------------------------------------------------------' print 'Error !!' print 'Can not find this hotel info!' errorLog().errorLogging('RecoverCheckIn', 'Can not find this hotel info!') print '--------------------------------------------------------------------' return FuncResult(success=False, msg='Can not find this hotel info!') objCheckIn.RoomNo = RoomNo objCheckIn.RoomTypeCode = ResOjCheckIn[0].RoomTypeCode objCheckIn.RoomTypeName = ResOjCheckIn[0].RoomTypeName objCheckIn.LastModifyTime = datetime.datetime.now() objCheckIn.HotelLastModifyTime = to_datetime(OperateTime) objCheckIn.ArrivalTime = ResOjCheckIn[0].ArrivalTime objCheckIn.DepartTime = ResOjCheckIn[0].DepartTime objCheckIn.CheckInTime = ResOjCheckIn[0].CheckInTime objCheckIn.CheckOutTime = ResOjCheckIn[0].CheckOutTime objCheckIn.FolioCode = FolioCode objCheckIn.FolioState = ResOjCheckIn[0].FolioState objCheckIn.CheckInType = 5 objCheckIn.save(flush=True) lsRelaCheckIn = RelationCheckIn().query.filter( RelationCheckIn.CheckInID == ResOjCheckIn[0].CheckInID).all() for objRelaCheckIn in lsRelaCheckIn: NewObjRelaCheckIn = RelationCheckIn() NewObjRelaCheckIn.CheckInID = objCheckIn.CheckInID NewObjRelaCheckIn.HotelGuestID = objRelaCheckIn.HotelGuestID NewObjRelaCheckIn.GuestDocID = objRelaCheckIn.GuestDocID NewObjRelaCheckIn.CheckInType = 5 NewObjRelaCheckIn.CheckInTime = objRelaCheckIn.CheckInTime NewObjRelaCheckIn.CheckOutTime = objRelaCheckIn.CheckOutTime NewObjRelaCheckIn.GuestState = objRelaCheckIn.GuestState NewObjRelaCheckIn.LastModifyTime = datetime.datetime.now() NewObjRelaCheckIn.HotelLastModifyTime = to_datetime( OperateTime) NewObjRelaCheckIn.save() return FuncResult(success=True, msg='Do Success!') else: print '---------------------------------------------------------------' print 'Error !!' print 'Can not find this FolioCode!' print '---------------------------------------------------------------' errorLog().errorLogging('RecoverCheckIn', 'Can not find this FolioCode!') return FuncResult(success=False, msg='Have No This FolioCode!') except Exception, ce: return FuncResult(fail=ce)
def update_date(self, nUpdateType, nProvinceID=None, nCityID=None, nDistrictID=None, nFlag=None): try: if not nFlag: nFlag = 1 # 修改省状态 if nUpdateType == '1': objProvince = Province().query. \ filter(Province.ProvinceID == nProvinceID). \ first() objProvince.IsFlag = nFlag objProvince.save() # 修改市状态 if nUpdateType == '2': objCity = City().query. \ filter(City.CityID == nCityID). \ first() objCity.IsFlag = nFlag objCity.save() # 修改区状态 if nUpdateType == '3': objDistrict = District().query.\ filter(District.DistrictID == nDistrictID).\ first() objDistrict.IsFlag = nFlag objDistrict.save() return FuncResult(success=True, msg='操作成功!') except Exception, ce: return FuncResult(fail=ce)
def login(self, sUserCode, sPassword): '''查询数据''' objUser = User().query.filter(User.UserCode == sUserCode).first() # print User().Password.property.doc if not objUser: return FuncResult(msg='用户名错误!') # dictUser = obj_to_dict(objUser) # del dictUser['UserDataRoleList'], \ # dictUser['Password'], dictUser['CreateTime'] # dictUser['StateName'] = dict_to_name(dictUser['State'], 'user_state') # # # 保存用户信息到session # web.ctx.session.user = dictUser sUserPassword = objUser.Password # sUserPassword = aes_decrypt(objUser.Password) if sUserPassword == sPassword: dictUser = obj_to_dict(objUser) del dictUser['UserDataRoleList'], \ dictUser['Password'], dictUser['CreateTime'] dictUser['StateName'] = dict_to_name(dictUser['State'], 'user_state') # 保存用户信息到session web.ctx.session.user = dictUser web.ctx.session.login = True return FuncResult(success=True, msg='登录成功!', data=dictUser) else: return FuncResult(msg='密码错误!')
def data_handle(self): try: Param = web.input().get('Param') if Param == None: return FuncResult(fail='Have no Param!') logging = Log().logging('ChangeRoom', Param) jsonParam = json.loads(Param) print "---------------------------------------------------------------------------" print " get PMS params :" print jsonParam print "---------------------------------------------------------------------------" HotleCode = jsonParam['HotelCode'] HotelName = jsonParam['HotelName'] OldRoomNo = jsonParam['OldRoomNo'] OldRoomTypeCode = jsonParam['OldRoomTypeCode'] OldRoomTypeName = jsonParam['OldRoomTypeName'] NewRoomNo = jsonParam['NewRoomNo'] NewRoomTypeCode = jsonParam['NewRoomTypeCode'] NewRoomTypeName = jsonParam['NewRoomTypeName'] FolioCode = jsonParam['FolioCode'] OperateTime = jsonParam['OperateTime'] Remark = jsonParam['Remark'] except Exception, ce: # 异常处理 print '---------------------------------------------------------------' print 'Error !!' print '参数有误' print '---------------------------------------------------------------' errorLog().errorLogging('ChangeRoomAPI', '参数有误') return FuncResult(fail='参数有误!')
def wrapper(*args, **kwargs): try: #如果接口需要处理数据库则需要检查数据类连接对象是否存在 if kwarg and kwarg.get('db'): db_con = get_db() if not db_con: return FuncResult(fail='未能获取基本信息!') # 初始化数据库连接 init_db(db_con) if kwarg and kwarg.get('apiDesc'): web.ctx.apiDesc = kwarg.get('apiDesc') result = func(*args, **kwargs) # 如果请求成功 if result.success: write_operate_log() except Exception, ce: error = get_cur_except() exception_log(exception=error) result = FuncResult(fail='请求处理出错!' + str(ce.message)) if error: result = FuncResult(fail='请求处理出错!' + str(ce.message) + str(error[1]))
def get_data_from_sql(sSql, lsParams, dictParamsValue, objPage=None, sOrder='', sGroup=''): '''通过sql查询数据 Params: @sql:指定的sql @kargs:对应的参数值 ''' if len(lsParams) > 0: sSql += ' Where ' + ' And '.join(lsParams) if sGroup: sSql += ' Group By ' + sGroup if sOrder: sSql += ' Order By ' + sOrder if objPage: sSql += ' Limit %s, %s ' % ((objPage['nPageNo'] - 1) * objPage['nPageSize'], objPage['nPageSize']) lsQueryData = web.ctx.cur_dbconn.execute(text(sSql), **dictParamsValue).fetchall() lsData = [] nTotalCount = 0 if lsQueryData: if objPage: lsRowsCount = web.ctx.cur_dbconn.execute( text('SELECT FOUND_ROWS()')).fetchone() if lsRowsCount and len(lsRowsCount) > 0: nTotalCount = lsRowsCount[0] for d in lsQueryData: dictRow = dict(d) if dictRow.has_key('GuestName') and dictRow['GuestName']: dictRow['GuestName'] = ','.join( [des_decrypt(r) for r in dictRow['GuestName'].split(',')]) if dictRow.has_key('BookPerson'): dictRow['BookPerson'] = des_decrypt(dictRow['BookPerson']) if dictRow.has_key('ContactPerson'): dictRow['ContactPerson'] = des_decrypt( dictRow['ContactPerson']) if dictRow.has_key('ContactMobile'): dictRow['ContactMobile'] = des_decrypt( dictRow['ContactMobile']) if dictRow.has_key('Mobile'): dictRow['Mobile'] = des_decrypt(dictRow['Mobile']) lsData.append(obj_to_dict(dictRow)) if objPage: return FuncResult(success=True, data={ 'page_count': nTotalCount, 'data': lsData }) return FuncResult(success=True, data={'page_count': 0, 'data': lsData})
def data_handle(self): try: Param = web.input().get('Param') if Param == None: return FuncResult(fail='Have no Param!') Log().logging('CheckIn', Param) jsonParam = json.loads(Param) except Exception, ce: return FuncResult(fail='Param format error!')
def update_district(self, nDistrictID, sDistrict): try: objDistrict = District().query.\ filter(District.DistrictID == nDistrictID).\ first() objDistrict.District = sDistrict objDistrict.save() return FuncResult(success=True, msg='操作成功!') except Exception, ce: return FuncResult(fail=ce)
def reset_password(self, nUserID, sNewPassword): objUser = User().query.filter(User.UserID == nUserID)\ .first() if objUser: # 修改密码 objUser.Password = sNewPassword # 保存更改到数据库 objUser.save() return FuncResult(success=True, msg='密码修改成功!') else: return FuncResult(fail='该用户编号不存在!')
def remove_user(self, nUserID, sRemark): objUser = User().query.filter(User.UserID == nUserID)\ .first() if objUser: objUser.Remark = sRemark objUser.State = 3 # 保存更改到数据库 objUser.save() return FuncResult(success=True, msg='关闭账户成功!') else: return FuncResult(fail='该用户编号不存在!')
def get_checkin_log(self, nCheckInID): objLog = CheckIn().query.filter(CheckIn.CheckInID == nCheckInID, CheckIn.IsNew == 1).first() if not objLog: return FuncResult(msg='无查询结果!') dictData = obj_to_dict(objLog) del dictData['CheckInID'], dictData['HotelID'], dictData['FolioCode'],\ dictData['FolioState'], dictData['IsNew'], dictData['TableID'],\ dictData['ArrivalTime'], dictData['DepartTime'] return FuncResult(success=True, data=dictData)
def data_handle(self): objInput = web.input() try: if not objInput.get('nUpdateUserIDMust'): return FuncResult(fail='nUpdateUserIDMust为必传参数!') if not objInput.get('sUpdateUserNameMust'): return FuncResult(fail='sUpdateUserNameMust为必传参数!') # nUpdateType: 1:Province 2:City 3:District nUpdateType = objInput.get('nUpdateType') if not nUpdateType: return FuncResult(fail='nUpdateType为必传参数!') nProvinceID = objInput.get('nProvinceID') if not nProvinceID and nUpdateType == 1: return FuncResult(fail='nProvinceID为必传参数!') nCityID = objInput.get('nCityID') if not nCityID and nUpdateType == 2: return FuncResult(fail='nCityID为必传参数!') nDistrictID = objInput.get('nDistrictID') if not nDistrictID and nUpdateType == 3: return FuncResult(fail='nDistrictID为必传参数!') # Flag: 0:删除 1:启用 2:禁用 默认1 nFlag = objInput.get('nFlag') if not nFlag: return FuncResult(fail='nFlag为必传参数!') except Exception, ce: return FuncResult(fail=ce)
def data_handle(self): objInput = web.input() try: objCondition = json_to_obj(objInput.get('objCondition')) objPageInfo = json_to_obj(objInput.get('objPageInfo')) if is_null(objCondition['nSearchUserIDMust']): return FuncResult(fail='参数\'nSearchUserIDMust\'不能为空') elif is_null(objCondition['sSearchUserNameMust']): return FuncResult(fail='参数\'sSearchUserCodeMust\'不能为空') elif is_null(objCondition): return FuncResult(msg='参数\'objCondition\'不能为空') except Exception, ce: print ce return FuncResult(fail='参数有误!')
def update_password(self, nUserID, sNewPassword, sOldPassword): objUser = User().query.filter(User.UserID == nUserID)\ .first() if objUser: if objUser.Password == sOldPassword: # 修改密码 objUser.Password = sNewPassword # 保存更改到数据库 objUser.save() return FuncResult(success=True, msg='密码修改成功!') else: return FuncResult(msg='原密码不正确,请重新输入!') else: return FuncResult(fail='该用户编号不存在!')
def data_handle(self): objInput = web.input() try: if not objInput.get('nRemoveUserIDMust'): return FuncResult(fail='nRemoveUserIDMust为必传参数!') if not objInput.get('sRemoveUserNameMust'): return FuncResult(fail='sRemoveUserNameMust为必传参数!') nCodeID = objInput.get('nCodeID') if not nCodeID: return FuncResult(fail='nCodeID为必传参数!') except Exception, ce: return FuncResult(fail=ce)
def add_province(self, sDistrict, nCityID, nProvinceID=None): try: objDistrict = District() objDistrict.District = sDistrict objDistrict.CityID = nCityID objDistrict.IsFlag = 1 if nProvinceID: objDistrict.ProvinceID = nProvinceID objDistrict.save() nDistrictID = objDistrict.DistrictID return FuncResult(success=True, data={'DistrictID': nDistrictID}) except Exception, ce: return FuncResult(fail=ce)
def add_dict(self, nCodeType, sTypeName, sCodeName, nSort=None, sExtendInfo=None, nFlag=1, sCodeEnumName=None): try: # 获取该字典类型总条数 lsCode = Dictionary().query.\ filter(Dictionary.CodeType == nCodeType).\ all() # 获取该字典类型名的字段是否存在 lsTypeName = Dictionary().query.filter( Dictionary.TypeName == sTypeName).all() nCount = len(lsCode) objDict = Dictionary() objDict.CodeType = nCodeType if nFlag: objDict.Flag = nFlag else: objDict.Flag = 1 if not is_null(sCodeName): objDict.CodeName = sCodeName if not is_null(nSort): objDict.Sort = nSort if not is_null(sExtendInfo): objDict.ExtendInfo = sExtendInfo if not is_null(sCodeEnumName): objDict.CodeEnumName = sCodeEnumName if nCount: objDict.CodeNo = nCount + 1 objDict.TypeName = lsCode[0].TypeName else: objDict.CodeNo = 1 if not sTypeName: return FuncResult(fail='请输入类型名称sTypeName') if len(lsTypeName): return FuncResult(fail='类型名称' + sTypeName + '已存在!') objDict.TypeName = sTypeName # 保存更改到数据库 objDict.save() except Exception, ce: return FuncResult(fail=ce)
def data_handle(self): objInput = web.input() try: if not objInput.get('nSearchUserIDMust'): return FuncResult(fail='nSearchUserIDMust为必传参数!') if not objInput.get('sSearchUserNameMust'): return FuncResult(fail='sSearchUserNameMust为必传参数!') nHotelGuestID = objInput.get('nHotelGuestID') if not nHotelGuestID.strip(): return FuncResult(fail='参数nHotelGuestID值不能为空!') except Exception, ce: return FuncResult(fail=ce)
def data_handle(self): ''' 获取请求参数 ''' objInput = web.input() try: strUpdateUserIDMust = objInput.get('nUpdateUserIDMust') strUpdateUserNameMust = objInput.get('sUpdateUserNameMust') if not strUpdateUserIDMust: return FuncResult(fail='参数\'sUpdateUserIDMust\'不能为空') elif not strUpdateUserNameMust: return FuncResult(fail='参数\'sUpdateUserNameMust\'不能为空') except Exception, ce: # 异常处理 return FuncResult(fail='参数有误!')
def write_operate_log(): if web.ctx.get('LogInfo'): #记录业务日志 # for sLog in web.ctx.lsLog: write_log(web.ctx.LogInfo) return FuncResult(success=True)
def data_handle(self): objInput = web.input() try: objCondition = objInput.get('objCondition') objPageInfo = objInput.get('objPageInfo') dictCondition = json.loads(objCondition) dictPageInfo = json.loads(objPageInfo) if not dictCondition['nSearchUserIDMust'] or not dictCondition['sSearchUserNameMust']: return FuncResult(success=False, msg="Miss nSearchUserIDMust or sSearchUserNameMust!") if not dictCondition['sCheckInStartDate']: return FuncResult(success=False, msg="sCheckInStartDate!") if not dictCondition['sCheckInEndDate']: return FuncResult(success=False, msg="sCheckInEndDate!") except Exception, ce: return FuncResult(fail='参数有误!')
def search_hotel(self, dictCondition, dictPageInfo): try: listParams = [] if 'sHotelCode' in dictCondition and dictCondition['sHotelCode'] != '': listParams.append(Hotel.HotelCode == dictCondition['sHotelCode']) if 'sHotelName' in dictCondition and dictCondition['sHotelName'] != '': listParams.append(Hotel.HotelName == dictCondition['sHotelName']) if 'sResponPerson' in dictCondition and dictCondition['sResponPerson'] != '': listParams.append(Hotel.ResponPerson == dictCondition['sResponPerson']) if 'nProvinceID' in dictCondition and dictCondition['nProvinceID'] != '' and dictCondition['nProvinceID'] != None: listParams.append(Hotel.ProvinceID == dictCondition['nProvinceID']) if 'nDistrictID' in dictCondition and dictCondition['nDistrictID'] != '' and dictCondition['nDistrictID'] != None: listParams.append(Hotel.DistrictID == dictCondition['nDistrictID']) if 'nCityID' in dictCondition and dictCondition['nCityID'] != '' and dictCondition['nCityID'] != None: listParams.append(Hotel.CityID == dictCondition['nCityID']) if 'nRoomCountMax' in dictCondition and dictCondition['nRoomCountMax'] != '': listParams.append(Hotel.RoomCount <= dictCondition['RoomCountMax']) if 'nRoomCountMin' in dictCondition and dictCondition['nRoomCountMin'] != '': listParams.append(Hotel.RoomCount >= dictCondition['nRoomCountMin']) if 'nBedCountMax' in dictCondition and dictCondition['nBedCountMax'] != '': listParams.append(Hotel.BedCount <= dictCondition['nBedCountMax']) if 'nBedCountMin' in dictCondition and dictCondition['nBedCountMax'] != '': listParams.append(Hotel.BedCountMin >= dictCondition['nBedCountMin']) if 'sRegStartDate' in dictCondition and dictCondition['sRegStartDate'] != '': global sRegStartDate sRegStartDate = to_datetime(dictCondition['sRegStartDate']) listParams.append(Hotel.RegStartTime >= sRegStartDate) if 'sRegEndDate' in dictCondition and dictCondition['sRegEndDate'] != '': global sRegEndDate sRegEndDate = to_datetime(dictCondition['sRegEndDate']) listParams.append(Hotel.RegStartTime <= sRegEndDate) if 'sCreateUserNameLike' in dictCondition and dictCondition['sCreateUserNameLike'] != '': listParams.append(Hotel.CreateUserName.like("%" + dictCondition['sCreateUserNameLike']) + "%") sSql = Hotel().query2(Hotel).filter(*listParams) sSqlOrderBy = self.order_by(sSql, dictPageInfo['nSort']) nRowCount = Hotel().query2(func.count(Hotel.HotelID).label('RowCount')).filter(*listParams).all() dataSet = sSqlOrderBy.limit( dictPageInfo['nPageSize']).offset((dictPageInfo['nPageNo'] - 1) * dictPageInfo['nPageSize']).all() lsData = [] for objData in dataSet: lsData.append(objData.copy2()) if dictCondition['sCheckInStartDate'] and dictCondition['sCheckInEndDate']: dtDays = days_count(dictCondition['sCheckInStartDate'], dictCondition['sCheckInEndDate']) for index in range(len(lsData)): hotelID = lsData[index]['HotelID'] lsCheckAndGuestCount = self.search_hotel_checkin_log(hotelID, dictCondition, dictPageInfo) nCheckInCount = lsCheckAndGuestCount[0]['nCheckInCount'] nAvgCheckInCount = nCheckInCount / float(dtDays) lsData[index]['SumCheckInRoom'] = nCheckInCount lsData[index]['AvgCheckInRoom'] = nAvgCheckInCount nGuestCount = lsCheckAndGuestCount[0]['nGuestCount'] nAvgnGuestCount = nGuestCount / float(dtDays) lsData[index]['SumCheckInGuest'] = nGuestCount lsData[index]['AvgCheckInGuest'] = nAvgnGuestCount Data = result_data(dictPageInfo['nPageNo'], dictPageInfo['nPageSize'], nRowCount[0][0], lsData) except Exception, ce: print Exception, ce return FuncResult(success=False, msg='查询出错!!')
def update_user_state(self, nUserID, sRemark, nState): objUser = User().query.filter(User.UserID == nUserID)\ .first() if objUser: # 修改密码 objUser.State = nState # if not is_null(sRemark): # obj_user.Remark = sRemark # 保存更改到数据库 objUser.save() if nState == 1: return FuncResult(success=True, msg='恢复账户成功!') else: return FuncResult(success=True, msg='禁用账户成功!') else: return FuncResult(fail='该用户编号不存在!')
def data_handle(self): objInput = web.input() try: if not objInput.get('nSearchUserIDMust'): return FuncResult(fail='nSearchUserIDMust为必传参数!') if not objInput.get('sSearchUserNameMust'): return FuncResult(fail='sSearchUserNameMust为必传参数!') nCheckInID = objInput.get('nCheckInID') print 'nCheckInID=', nCheckInID if not nCheckInID.strip(): return FuncResult(fail='nCheckInID值不能为空!') except Exception, ce: return FuncResult(fail=ce)
def data_handle(self): objInput = web.input() try: sUserCode = objInput.get('sUserCode') sPassword = objInput.get('sPassword') sCode = objInput.get('sCode') except Exception, ce: return FuncResult(fail=ce)
def POST(self): try: # 生成一个UDP包, 将自己的IP放到UDP协议头中,然后从UDP包中获取本机IP s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) s.connect(('8.8.8.8', 80)) sIPAddr = s.getsockname()[0] except Exception, ce: return FuncResult(fail=ce)
class handler(object): @api_handle(db=True) def POST(self): try: sPrefix = 'static/' except Exception, ce: return FuncResult(fail=ce) return FuncResult(success=True, data=sPrefix)
def data_handle(self): objInput = web.input() try: if not objInput.get('nAddUserIDMust'): return FuncResult(fail='nAddUserIDMust为必传参数!') if not objInput.get('sAddUserNameMust'): return FuncResult(fail='sAddUserNameMust为必传参数!') sDistrict = objInput.get('sDistrict') if not sDistrict: return FuncResult(fail='sDistrict为必传参数!') nCityID = objInput.get('nCityID') if not nCityID: return FuncResult(fail='nCityID为必传参数!') nProvinceID = objInput.get('nProvinceID') except Exception, ce: return FuncResult(fail=ce)
def data_handle(self): objInput = web.input() try: if not objInput.get('nUpdateUserIDMust'): return FuncResult(fail='nUpdateUserIDMust为必传参数!') if not objInput.get('sUpdateUserNameMust'): return FuncResult(fail='sUpdateUserNameMust为必传参数!') nCodeID = objInput.get('nCodeID') # 0:删除 1:有效 2:无效 nFlag = objInput.get('nFlag') if not nCodeID: return FuncResult(fail='nCodeID为必传参数') nDictType = objInput.get('nDictType') sCodeName = objInput.get('sCodeName') except Exception, ce: return FuncResult(fail=ce)
def data_handle(self): objInput = web.input() try: if not objInput.get('nUpdateUserIDMust'): return FuncResult(fail='nUpdateUserIDMust为必传参数!') if not objInput.get('sUpdateUserNameMust'): return FuncResult(fail='sUpdateUserNameMust为必传参数!') nDistrictID = objInput.get('nDistrictID') if not nDistrictID: return FuncResult(fail='nDistrictID为必传参数!') sDistrict = objInput.get('sDistrict') if not sDistrict: return FuncResult(fail='sDistrict为必传参数!') except Exception, ce: return FuncResult(fail=ce)