def idcardProvince(self): """idcardProvince 申请人身份证号省份""" hit = "" result1 = self.mysql.queryall_by_customer_id( db='customer_center', sql= "select identity_card from customer_identiy_%s where customer_id='%s' and delete_flag=0" % (self.info.customer_id % 20, self.info.customer_id)) if not result1: return self.SET_DEFAULT_VALUE_INT_9999999 else: idCard = factor_decrypt_identity(result1[0].get('identity_card')) proList = ["省", "市", "特别行政区", "壮族自治区", "回族自治区", "维吾尔自治区", "自治区"] idCard = str(idCard)[:6] result = self.mysql.queryall_by_customer_id( db='skynet', sql="select province from dict_idcard_location where code = %s" % (idCard)) if not result: return self.SET_DEFAULT_VALUE_INT_9999999 else: province = result[0].get('province') province = province.encode('utf-8') for i in proList: if i in province: hit = i break proLen = len(hit) if proLen == 0: return province else: return str(province)[:-proLen]
def phoneHitOverdueContactsCertIdCnt(self): """phoneHitOverdueContactsCertIdCnt 申请人手机号命中逾期客户联系人手机号个数 产品:全产品""" cn_list = [] mysql = "select * from rota_overdue where relative_phone='{0}' or friend_phone='{0}' or colleague_phone='{0}' and is_deleted=0".format( self.info.phone) result = self.mysql.queryall_by_customer_id(db='skynet_rota', sql=mysql) for row in result: cn_list.append(factor_decrypt_identity(row.get('cert_id'))) return len(list(set(cn_list)))
def phoneHitFraudPhoneCnt(self): """phoneHitFraudPhoneCnt 申请人手机号命中欺诈客户手机号个数""" phoneList = [] sql = "select * from rota_fraud where phone='%s' and is_deleted=0" % self.info.phone rota_result = self.mysql.queryall_by_customer_id('skynet_rota', sql) if rota_result: for fra in rota_result: phoneList.append(factor_decrypt_identity(fra.get('cert_id'))) return len(list(set(phoneList))) return self.SET_DEFAULT_VALUE_INT_0
def phoneHitFrozenCertIdCnt(self): """phoneHitFrozenCertIdCnt 申请人手机号命中冻结客户手机号个数""" sql = "select * from rota_freeze where is_deleted=0 and encryption_phone='%s'" % factor_encrypt_identity(self.info.phone) rota_result = self.mysql.queryall_by_customer_id('skynet_rota', sql) if not rota_result: return self.SET_DEFAULT_VALUE_INT_0 cardIds = [] for card in rota_result: if card.get('cert_id'): cardIds.append(factor_decrypt_identity(card.get('cert_id'))) return len(list(set(cardIds)))
def identityDigit(self): """identityDigit 身份证号位数""" result1 = self.mysql.queryall_by_customer_id( db='customer_center', sql= "select identity_card from customer_identiy_%s where customer_id='%s' and delete_flag=0" % (self.info.customer_id % 20, self.info.customer_id)) if not result1: return self.SET_DEFAULT_VALUE_INT_9999999 else: idCard = factor_decrypt_identity(result1[0].get('identity_card')) return len(idCard)
def idcardCity(self): """idcardCity 申请人身份证号市""" result1 = self.mysql.queryall_by_customer_id( db='customer_center', sql= "select identity_card from customer_identiy_%s where customer_id='%s' and delete_flag=0" % (self.info.customer_id % 20, self.info.customer_id)) if not result1: return self.SET_DEFAULT_VALUE_INT_9999999 else: idCard = factor_decrypt_identity(result1[0].get('identity_card')) proList = [ "地区", "市", "回族自治州", "彝族自治州", "藏族自治州", "土家族苗族自治州", "哈尼族彝族自治州", "傣族自治州", "藏族羌族自治州", "苗族侗族自治州", "布依族苗族自治州", "哈萨克自治州", "柯尔克孜自治州", "朝鲜族自治州", "蒙古族藏族自治州", "蒙古自治州", "白族自治州", "傣族景颇族自治州", "傈僳族自治州", "壮族苗族自治州" ] idCard = str(idCard)[:6] result = self.mysql.queryall_by_customer_id( db='skynet', sql="select city from dict_idcard_location where code = %s" % (idCard)) if not result: return self.SET_DEFAULT_VALUE_INT_9999999 else: city = result[0].get('city') city = city.encode('utf-8') hit = '' for i in proList: if i in city: hit = i break proLen = len(hit) if proLen == 0: cityResult = city else: cityResult = str(city)[:-proLen] if cityResult == "滁县": cityResult = "滁州" elif cityResult == "乌兰察布": cityResult = "乌兰察布市" elif cityResult == "宿县": cityResult = "宿州" return cityResult
def devicenoHitOverdueMaxCertIdCnt(self): """devicenoHitOverdueMaxCertIdCnt 申请人的设备号命中逾期客户设备号的个数 产品:全产品""" result = self.mongo.query_all_by_userId_inXdays(db='lake', collection='s_user_mobile_device_info_{0}'.format( int(self.info.user_id) % 4), find={'user_id': self.info.user_id}, serial_no=self.serial_no, start_days=1, end_days=0) if not result: return self.SET_DEFAULT_VALUE_INT_9999999 devices = [] for data in result[:20]: if data.get('device_no') and data.get('device_no') not in devices: devices.append(data.get('device_no')) if len(devices) > 5: return self.SET_DEFAULT_VALUE_INT_9999997 count = [] for device_no in devices: cardId = [] device_mysql = "select cert_id from rota_overdue where device_no='{0}' and is_deleted=0".format(device_no) result = self.mysql.queryall_by_customer_id(db='skynet_rota', sql=device_mysql) for card in result: cardId.append(factor_decrypt_identity(card.get('cert_id'))) count.append(len(cardId)) return max(count)