def refuse_friend(self, user_id, friend_user_id): """ 拒绝添加好友 用户已经申请,并且你们不是朋友/黑名单关系,可以拒绝 :param user_id: 用户ID :param friend_user_id: 另一用户ID :return: """ if self.friend.has_valid_apply(friend_user_id, user_id): apply = self.friend.get_apply_by_user_and_friend( friend_user_id, user_id) if apply: success = self.friend.add_refuse(apply.id, user_id) if success: log_string = "%d refuse %d to be friend" % (user_id, friend_user_id) OHHOLog.print_log(log_string) self.im_friend.refuse_friend(user_id, friend_user_id, "") return Result.result_success() else: return Result.result_failed() else: return Result.result_failed("no valid friend apply!") else: return Result.result_failed("no valid friend apply!")
def rebind_cellphone(self, cellphone_key, cellphone_number, code, base_url, cellphone_dict, country_code): the_cellphone = country_code + cellphone_number check = Code.check_code(the_cellphone, code) if check: country_code_object = self.user.country_code.get_by_country_code(country_code) country_code_id = country_code_object.id if country_code_object else 0 # self.user.get_by_country_code_and_cellphone(country_code, cellphone_number) # user = self.user.get(cellphone_number) user = self.user.get_by_country_code_and_cellphone(country_code_id, cellphone_number) self.cellphone.set_key(cellphone_key) cellphone = self.cellphone.get() if not cellphone: success = self.cellphone.add_cellphone(cellphone_dict) if success: cellphone = self.cellphone.get() else: cellphone = None if cellphone: if not user: OHHOLog.print_log(country_code) OHHOLog.print_log(cellphone_number) result = Result.result_failed("user doest not exist") else: result = self.cellphone.bind_cellphone(cellphone.id, user.id) data = self.user.get_user_information(user.id, base_url) result["data"] = data else: result = Result.result_failed("cellphone does not exist!") else: result = Result.result_failed("code is incorrect!") return result
def add_friend(self, user_id, friend_user_id, apply_id): friend = self.get_friend_by_user_and_friend(user_id, friend_user_id) if friend: success1 = True else: data = dict() data["account_id"] = user_id data["friend_account_id"] = friend_user_id data["apply_id"] = apply_id success1 = self.friend.add(data) friend = self.get_friend_by_user_and_friend(friend_user_id, user_id) if friend: success2 = True else: data = dict() data["account_id"] = friend_user_id data["friend_account_id"] = user_id data["apply_id"] = apply_id success2 = self.friend.add(data) if success1 and success2: return Result.result_success() else: return Result.result_failed()
def add(self, user_id, another_user_id, map_information, base_url, timestamp=None): if timestamp: map_information["timestamp"] = timestamp map_information["user_id"] = user_id map_information["another_user_id"] = another_user_id success = self.map.add(map_information) if success: result = Result.result_success() else: result = Result.result_failed() # return result map_instance = self.map.get_by_user_id(another_user_id) result["data"] = dict() if map_instance: OHHOLog.print_log("has map") OHHOLog.print_log(map_instance) OHHOLog.print_log(self.map.get_information(map_instance, base_url)) result["data"]["information"] = self.map.get_information( map_instance, base_url) else: OHHOLog.print_log("not has map") result["data"]["information"] = dict() return result
def unbind_device(self, cellphone, code, identity, mac_address, country_code): # OHHOLog.print_log(cellphone) # OHHOLog.print_log(identity) # OHHOLog.print_log(mac_address) if country_code and cellphone: the_cellphone = country_code + cellphone else: return Result.result_parameters_are_invalid( "country_code or cellphone is empty!") success = Code.check_code(the_cellphone, code) if success: country_code_object = self.user.get_country_code(country_code) country_code_id = country_code_object.id if country_code_object else 0 user = self.user.get_by_country_code_and_cellphone( country_code_id, cellphone) if user: self.device.set_mac_address(mac_address) self.device.set_identity(identity) device = self.device.get_by_identity() if device: # OHHOLog.print_log("before delete imei") self.imei.delete_by_user_and_device(user.id, device.id) # OHHOLog.print_log("after delete imei") # query = self.imei.get_by_user_and_device(user.id, device.id) # self.imei.delete_some(query) return self.device.unbind_device(user.id) else: return Result.result_not_exist(USER_NOT_EXIST) else: return Result.result_failed(PASSWORD_IS_INCORRECT)
def get(self, identity_list): data = list() relation_list = list() for identity in identity_list: self.device.set_identity(identity) relation = self.device.get_relation_by_device() if relation: temp = dict() temp["identity"] = identity temp["relation"] = relation relation_list.append(temp) for item in relation_list: temp = item relation = item["relation"] user = self.user.get_by_id(relation.user_id) if user: temp["username"] = user.username del temp["relation"] data.append(temp) if data: result = Result.get_result(True, 1, 1, "OK!") else: result = Result.get_result(False, -1, -1, "no data!") result["data"] = data return result
def agree_friend(self, user_id, friend_user_id): """ 同意添加好友 用户已经申请,并且你们不是朋友/黑名单关系,可以同意 :param user_id: 用户ID :param friend_user_id: 另一用户ID :return: """ # if self.friend.has_valid_apply(friend_user_id, user_id): apply = self.friend.get_apply_by_user_and_friend( friend_user_id, user_id) if apply: if not self.friend.is_friend_or_black(user_id, friend_user_id): result = self.friend.add_friend(user_id, friend_user_id, apply.id) success = self.friend.add_agree(apply.id) if success: log_string = "%d agree %d to be friend" % (user_id, friend_user_id) OHHOLog.print_log(log_string) self.im_friend.agree_friend(user_id, friend_user_id, "") return result else: return Result.result_failed() else: return Result.result_failed("no valid friend apply!")
def meet_end(self, user_id, friend_user_id, apply_id, base_url): apply_id = int(apply_id) if apply_id: the_map = self.map.get_by_user(user_id) if the_map: address = the_map.address else: address = "" self.meet.add_meet_end(apply_id, user_id, address) type = PUSH_STATE_TYPE_END_MEET is_meet_end = self.meet.is_meet_end(apply_id, friend_user_id) if not is_meet_end: self.push_information(friend_user_id, user_id, apply_id, type, base_url) # information = dict() # information["function"] = "meet end" # self.user.push_user_information(friend_user_id, PUSH_STATE_TYPE_END_MEET, information) # self.delete_map(user_id) # self.delete_map(friend_user_id) # self.delete_sensor(user_id) # self.delete_sensor(friend_user_id) self.delete_meeting(apply_id, user_id) # self.delete_meeting(apply_id, friend_user_id) return Result.result_success() else: return Result.result_failed("apply_is is %d" % (int(apply_id)))
def _authenticate(self): method = self.request.method token_instance = Token() if method == "POST": the_post = Post() the_header = Headers() user_id = the_post.get_user_id(self) user_id = user_id if user_id else the_header.get_user_id(self) token = the_post.get_token(self) token = token if token else the_header.get_token(self) token_from_db = token_instance.get(user_id) if token_from_db and token_from_db.token == token: result = func(self) else: return self.write( OHHOOperation.dict2json(Result.result_not_login())) elif method == "GET": the_get = Get() the_header = Headers() user_id = the_get.get_user_id(self) user_id = user_id if user_id else the_header.get_user_id(self) token = the_get.get_token(self) token = token if token else the_header.get_token(self) token_from_db = token_instance.get(user_id) if token_from_db and token_from_db.token == token: result = func(self) else: return self.write( OHHOOperation.dict2json(Result.result_not_login())) else: result = func(self) return result
def refuse_meet(self, user_id, friend_user_id, apply_id, base_url): """ 拒绝见面 只要对方有申请见面,就可以拒绝见面 :param user_id: 用户ID :param friend_user_id: 另一用户ID :param meet_state: 见面状态 0未见,1见面,2 请求相见,3同意相见,4不同意相见,5 取消见面,默认为0 :return: """ # 向对方发送拒绝的推送 try: if user_id and friend_user_id and apply_id: type = PUSH_STATE_TYPE_REFUSE_MEET if not self.meet.is_meet_end(apply_id, friend_user_id): result = self.push_information(friend_user_id, user_id, apply_id, type, base_url) OHHOLog.print_log(result) # information = self.user.get_push_user_information(user_id, apply_id, base_url) # information["function"] = "refuse meet" # self.user.push_user_information(friend_user_id, PUSH_STATE_TYPE_REFUSE_MEET, information) self.meet.add_exclude(user_id, friend_user_id) self.meet.add_refuse(apply_id, user_id) return Result.result_success() else: OHHOLog.print_log( "user_id:%s, friend_user_id:%s, apply_id:%s" % (str(user_id), str(friend_user_id), str(apply_id))) return Result.result_failed("there is some id is 0") except Exception as ex: OHHOLog.print_log(ex) return Result.result_failed(ex)
def set_device_use(self, user_id, identity_id, data_dict): user_id = int(user_id) # OHHOLog.print_log(user_id) # OHHOLog.print_log(identity_id) # OHHOLog.print_log(data_dict) self.device.set_identity(identity_id) relation = self.device.get_relation_by_device() # OHHOLog.print_log(relation.user_id) if relation and relation.user_id == user_id: type = data_dict.get("type", 0) type = int(type) OHHOLog.print_log(type) if type == 1: primary = self.device.get_primary_relation_by_user(user_id) if primary: for p in primary: OHHOLog.print_log("reset") result = self.device.relation_update(p, {"type": 0}) OHHOLog.print_log(result) success = self.device.relation_update(relation, data_dict) if success: return Result.result_success() else: return Result.result_failed() elif relation: return Result.result_device_used_by_other() else: return Result.result_failed("this is not your device!")
def apply_meet(self, user_id, friend_user_id, match_condition_id, base_url): """ 申请见面 见过面的不能申请 :param user_id: 用户ID :param friend_user_id: 另一用户ID :param match_condition_id: 配对条件ID :return: """ result = dict() if self.meet.has_valid_apply(user_id, friend_user_id): return Result.result_has_valid_meet_apply() if self.meet.is_meet(user_id, friend_user_id): return Result.result_is_meet() condition = self.condition.get_by_id(match_condition_id) if condition: success = self.meet.add_apply(user_id, friend_user_id, match_condition_id) if success: log_string = "%d apply %d to meet" % (user_id, friend_user_id) OHHOLog.print_log(log_string) message = self.user.get_user_basic_information(user_id, base_url) self.user.push(log_string, friend_user_id, DEFAULT_IM_USER_ID) return Result.result_success() else: return Result.result_failed() else: return Result.result_failed("no such condition!")
def add_feedback(self, user_id, friend_user_id, apply_id, reason, content, category): data = dict() data["user_id"] = user_id data["another_user_id"] = friend_user_id data["apply_id"] = apply_id data["reason"] = reason data["message"] = content if self.apply.get_by_id(apply_id): success = self.feedback.add(data) category_list = OHHOOperation.json2list(category) impression_instance = DBOHHOUserImpression() for c in category_list: if c: temp = dict() temp["type"] = 1 temp["content_id"] = int(c) temp["apply_id"] = apply_id temp["user_id"] = user_id temp["another_user_id"] = friend_user_id impression_instance.add(temp) if success: result = Result.result_success() else: result = Result.result_failed() else: result = Result.result_failed("no valid apply!") return result
def add(self, user_id, name, match_condition_id): """ 用户ID,名称唯一确定一条值,match_condition可以更改 :param data: name, user_id, match_condition_id :return: """ if user_id: relation = self.get_nearest_match_relation_by_user(user_id) if relation: result = Result.result_exist(USER_AND_MATCH_CONDITION_EXIST) result["data"] = relation else: data = dict() data["user_id"] = user_id data["match_condition_id"] = match_condition_id if name: data["name"] = name success = self.relation.add(data) if success: result = Result.result_success() relation = self.get_nearest_match_relation_by_user(user_id) result["data"] = relation else: result = Result.result_failed() result["data"] = None else: result = Result.result_failed(PARAMETERS_ARE_INVALID) result["data"] = None return result
def bind_cellphone(self, cellphone_id, user_id): result = dict() result["success"] = False relation = self.relation.get_by_cellphone_and_user( cellphone_id, user_id) if relation and self.relation.is_valid(relation, has_state=True): result = Result.result_success(CELLPHONE_EXIST) # else: # self.delete_relations(user_id) # restore = self.relation.restore(relation) # if restore: # result = Result.result_success(RESTORE_SUCCESS) # else: # result = Result.result_failed(RESTORE_FAILED) else: self.delete_relations(user_id) data_dict = dict() data_dict["user_id"] = user_id data_dict["cellphone_id"] = cellphone_id temp = self.relation.add(data_dict) if temp: result = Result.result_success() else: result = Result.result_failed() return result
def add_black(self, user_id, friend_user_id): relation = self.friend.get_friend_by_user_and_friend( user_id, friend_user_id) black_relation = self.friend.get_black_by_user_and_friend( user_id, friend_user_id) if relation or black_relation: relation = relation if relation else black_relation success = self.friend.add_black(relation) if success: result = Result.result_success() else: result = Result.result_failed() else: data = dict() data["account_id"] = user_id data["friend_account_id"] = friend_user_id data["type"] = 2 success = self.friend.friend.add(data) if success: result = Result.result_success("add black successfully!") else: result = Result.result_failed("add black failed!") return result
def get(self, user_id, base_url=None): user = self.user.get_by_id(user_id) if user: result = Result.result_success() result["data"] = self.user.get_user_information(user_id, base_url) else: result = Result.result_failed("no such user!") return result
def add(self, name): data = dict() data["name"] = name success = self.work_domain.add(data) if success: result = Result.result_success() else: result = Result.result_failed() return result
def basic_meet(self, relation, meet_state): if relation: success = self.relation.update_meet_state(relation, meet_state) if success: result = Result.result_success() else: result = Result.result_failed() else: result = Result.result_not_exist("no relation!") return result
def add(self, data): data_list = self.parse_parameters(data) if data_list: success = self.bulk_add(data_list) if success: return Result.result_success() else: return Result.result_failed("failed!") else: return Result.result_failed("no data")
def add(self, name): data = dict() data["name"] = name drink = self.drink success = drink.add(data) if success: result = Result.result_success() else: result = Result.result_failed() return result
def reset_password(self, cellphone_number, password, code, country_code, cellphone_dict=dict(), base_url=None): country_code_obj = self.user.get_country_code(country_code) if country_code_obj: user = self.user.user.get_by_country_code_and_cellphone(country_code_obj.id, cellphone_number) if user: cellphone_number_check = country_code + cellphone_number if self.user.check_threemonth_isvalid(user): if Code.check_code(cellphone_number_check, code): result = self.user.reset_password(cellphone_number, password, country_code) if Result.is_success(result): if not self.bind_cellphone(cellphone_dict, user.id): return Result.result_failed("bind cellphone failed") self.user.set_username(user.username) if not Result.is_success(self.user.add_token()): result = Result.result_failed("login failed!") else: information = self.user.get_user_information(user.id, base_url) result["data"] = information else: result = Result.result_failed("change password failed!") else: result = Result.result_failed("verification code is incorrect!") else: result = Result.result_update_beyond_three_month() else: result = Result.result_failed("user not exist!") else: result = Result.result_failed("country_code not exist") return result
def add_feedback(self, user_id, feedback_type, content): data = dict() data["user_id"] = user_id data["feedback_type"] = feedback_type data["content"] = OHHOOperation.to_bytes(content) success = self.feedback.add(data) if success: result = Result.result_success() else: result = Result.result_failed() return result
def basic_friend(self, relation, friend_state): if relation: print(relation) success = self.relation.update_friend_state(relation, friend_state) if success: result = Result.result_success() else: result = Result.result_failed() else: result = Result.result_not_exist() return result
def add_report(self, user_id, reported_user_id, report_type, content): data = dict() data["user_id"] = user_id data["reported_user_id"] = reported_user_id data["report_type"] = report_type data["content"] = OHHOOperation.to_bytes(content) success = self.report.add(data) if success: result = Result.result_success() else: result = Result.result_failed() return result
def add_exclude(self, user_id, exclude_user_id, match_condition_id): data = dict() data["user_id"] = user_id data["exclude_user_id"] = exclude_user_id data["match_condition_id"] = match_condition_id success = self.exclude.add(data) if success: result = Result.result_success() else: result = Result.result_failed() return result
def get_version_information(self): query = self.version.get_query() query = self.version.order_by_id_desc(query) version_object = self.version.first(query) data = dict() if version_object: data = self.version.get_information(version_object) result = Result.result_success() else: result = Result.result_failed() result["data"] = data return result
def exist(self, country_code, cellphone): OHHOLog.print_log(country_code) OHHOLog.print_log(cellphone) country_code_object = self.country_code.get_by_country_code(country_code) if country_code_object: success = self.user.get_by_country_code_and_cellphone(country_code_object.id, cellphone) if success: return Result.result_success() else: return Result.result_failed("no such cellphone") else: return Result.result_failed("country code is invalid")
def add_version(self, version, name, url): instance = self.version.get_by_version(version) if instance: return Result.result_failed("version exist!") data = dict() data["version"] = version data["name"] = name data["url"] = url success = self.version.add(data) if success: return Result.result_success() else: return Result.result_failed()
def add_new_user(password, cellphone, country_code="+86"): username = OHHOUUID.get_uuid1_string() user = User() user.set_username(username) OHHOLog.print_log(user.add_user(password, cellphone, country_code)) the_user = user.get_by_username(username) if the_user: result = Result.result_success() result["user_id"] = the_user.id else: result = Result.result_failed() result["user_id"] = 0 return result