示例#1
0
 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
示例#3
0
    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
示例#7
0
 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!")
示例#8
0
    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)))
示例#9
0
    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
示例#10
0
 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)
示例#11
0
 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!")
示例#12
0
    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!")
示例#13
0
    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
示例#15
0
 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
示例#16
0
    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
示例#17
0
 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
示例#19
0
 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")
示例#21
0
 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
示例#22
0
    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
示例#23
0
 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
示例#24
0
 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
示例#25
0
 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
示例#27
0
 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")
示例#29
0
 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()
示例#30
0
 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