Ejemplo n.º 1
0
    def _init_data(self, proxy):
        """根据 proxy 的返回值,初始化本地城池数据
        """
        self.union = UniqueData("unionunion", proxy.get_result("unionunion", self.id))
        self.member_list = DataSet("unionmember", proxy.get_all_result("unionmember"))
        self.application_list = DataSet("unionapplication",
                proxy.get_all_result("unionapplication"))
        self.aid_list = DataSet("unionaid", proxy.get_all_result("unionaid"))

        self.season = UniqueData("unionseason", proxy.get_result("unionseason", self.id))
        self.battle_list = DataSet("unionbattle", proxy.get_all_result("unionbattle"))
        self.battle_node_list = DataSet("unionbattle_node",
                proxy.get_all_result("unionbattle_node"))
        self.battle_record_list = DataSet("unionbattle_record",
                proxy.get_all_result("unionbattle_record"))

        self.donate_box_list = DataSet("uniondonatebox",
                proxy.get_all_result("uniondonatebox"))
        self.donate_record_list = DataSet("uniondonaterecord",
                proxy.get_all_result("uniondonaterecord"))

        self.union_boss_list = DataSet("unionboss", proxy.get_all_result("unionboss"))

        self.check_validation()
        assert self._valid
        return self
Ejemplo n.º 2
0
    def _create_data(self):
        """
        创建一份全新的数据
        """
        self.city = UniqueData("unitcity")
        self.position_list = DataSet("unitposition")

        self._valid = False
        return self
Ejemplo n.º 3
0
    def _init_data(self, proxy):
        """根据 proxy 的返回值,初始化本地城池数据
        """
        self.city = UniqueData("unitcity",
                               proxy.get_result("unitcity", self.id))
        self.position_list = DataSet("unitposition",
                                     proxy.get_all_result("unitposition"))

        self.check_validation()
        assert self._valid
        return self
Ejemplo n.º 4
0
    def _create_data(self):
        """
        创建一份全新的数据
        """
        self.console = UniqueData("commonconsole")
        self.broadcast_list = DataSet("commonbroadcast")
        self.anneal_record_list = DataSet("commonannealrecord")
        self.worldboss = UniqueData("commonworldboss")
        self.exchange = UniqueData("commonexchange")
        self.transfer_list = DataSet("commontransfer")
        self.country = UniqueData("commoncountry")
        self.cat_list = DataSet("commoncat")

        self._valid = False
        return self
Ejemplo n.º 5
0
    def _create_data(self):
        """
        创建一份全新的数据
        """
        self.union = UniqueData("unionunion")
        self.member_list = DataSet("unionmember")
        self.application_list = DataSet("unionapplication")
        self.aid_list = DataSet("unionaid")

        self.season = UniqueData("unionseason")
        self.battle_list = DataSet("unionbattle")
        self.battle_node_list = DataSet("unionbattle_node")
        self.battle_record_list = DataSet("unionbattle_record")

        self.donate_box_list = DataSet("uniondonatebox")
        self.donate_record_list = DataSet("uniondonaterecord")

        self.union_boss_list = DataSet("unionboss")

        self._valid = False
        return self
Ejemplo n.º 6
0
    def _create_data(self):
        """
        创建一份全新的数据
        """
        self.init = UniqueData("basicinit")
        self.activity_list = DataSet("basicactivity")
        self.activity_step_list = DataSet("basicactivitystep")
        self.activity_hero_reward_list = DataSet("basicactivityheroreward")
        self.worldboss_list = DataSet("basicworldboss")

        self._valid = False
        return self
Ejemplo n.º 7
0
 def _init_data(self, proxy):
     """根据 proxy 的返回值,初始化本地城池数据
     """
     self.console = UniqueData("commonconsole",
                               proxy.get_result("commonconsole", self.id))
     self.broadcast_list = DataSet("commonbroadcast",
                                   proxy.get_all_result("commonbroadcast"))
     self.anneal_record_list = DataSet(
         "commonannealrecord", proxy.get_all_result("commonannealrecord"))
     self.worldboss = UniqueData(
         "commonworldboss", proxy.get_result("commonworldboss", self.id))
     self.exchange = UniqueData("commonexchange",
                                proxy.get_result("commonexchange", self.id))
     self.transfer_list = DataSet("commontransfer",
                                  proxy.get_all_result("commontransfer"))
     self.country = UniqueData("commoncountry",
                               proxy.get_result("commoncountry", self.id))
     # self.cat = UniqueData("commoncat",
     #         proxy.get_result("commoncat", self.id))
     self.cat_list = DataSet("commoncat", proxy.get_all_result("commoncat"))
     self.check_validation()
     assert self._valid
     return self
Ejemplo n.º 8
0
    def _init_data(self, proxy):
        """根据 proxy 的返回值,初始化数据
        """
        self.init = UniqueData("basicinit",
                               proxy.get_result("basicinit", self.id))

        self.activity_list = DataSet("basicactivity",
                                     proxy.get_all_result("basicactivity"))
        self.activity_step_list = DataSet(
            "basicactivitystep", proxy.get_all_result("basicactivitystep"))
        self.activity_hero_reward_list = DataSet(
            "basicactivityheroreward",
            proxy.get_all_result("basicactivityheroreward"))

        self.worldboss_list = DataSet("basicworldboss",
                                      proxy.get_all_result("basicworldboss"))

        self.check_validation()
        assert self._valid
        return self
Ejemplo n.º 9
0
    def _create_data(self):
        """
        创建一份全新的数据
        """
        self.user = UniqueData("user")
        self.resource = UniqueData("resource")

        self.hero_list = DataSet("hero")
        self.team_list = DataSet("team")
        self.guard_list = DataSet("guard")
        self.item_list = DataSet("item")
        self.soldier_list = DataSet("soldier")
        self.technology_list = DataSet("technology")
        self.herostar_list = DataSet("herostar")

        self.city_list = DataSet("city")
        self.building_list = DataSet("building")
        self.conscript_list = DataSet("conscript")
        self.defense_list = DataSet("defense")

        self.map = UniqueData("map")
        self.energy = UniqueData("energy")
        self.node_list = DataSet("node")
        self.battle_list = DataSet("battle")
        self.rival_list = DataSet("rival")
        self.visit_list = DataSet("visit")
        self.question = UniqueData("question")
        self.dungeon = UniqueData("dungeon")
        self.arena = UniqueData("arena")
        self.arena_record_list = DataSet("arena_record")
        self.melee = UniqueData("melee")
        self.melee_record_list = DataSet("melee_record")
        self.exploitation = UniqueData("exploitation")
        self.transfer = UniqueData("transfer")
        self.transfer_record_list = DataSet("transfer_record")

        self.pray = UniqueData("pray")

        self.legendcity_list = DataSet("legendcity")
        self.legendcity_record_list = DataSet("legendcity_record")

        self.union = UniqueData("union")
        self.userdonatebox_list = DataSet("userdonatebox")
        self.unionboss_list = DataSet("userunionboss")

        self.draw = UniqueData("draw")
        self.pay = UniqueData("pay")
        self.pay_record_list = DataSet("pay_record")
        self.shop_list = DataSet("shop")
        self.activity_list = DataSet("activity")

        self.sign = UniqueData("sign")
        self.mission_list = DataSet("mission")
        self.postoffice = UniqueData("postoffice")
        self.mail_list = DataSet("mail")
        self.statistics = UniqueData("statistics")
        self.battle_score = UniqueData("battle_score")
        self.trainer = UniqueData("trainer")
        self.chest = UniqueData("chest")

        self.anneal = UniqueData("anneal")
        self.worldboss = UniqueData("worldboss")
        self.expand_dungeon_list = DataSet("expand_dungeon")

        self.plunder = UniqueData("plunder")
        self.plunder_record_list = DataSet("plunder_record")

        self.friend_list = DataSet("friend")
        self.message_list = DataSet("message")
        self._valid = False
        return self
Ejemplo n.º 10
0
class CityData(BaseView):
    """
    史实城的所有数据
    """

    __slots__ = [
        "city",
        "position_list",
    ]

    def load_from_cache(self, id):
        """从 cache 中载入城池数据
        Args:
            id[int]: 城池 id
        """
        self.id = id
        proxy = DataProxy()

        proxy.search("unitcity", id)
        proxy.search_by_index("unitposition", "city_id", id)

        defer = proxy.execute()
        defer.addCallback(self._post_load)
        return defer

    def _post_load(self, proxy):
        """从数据库读入数据之后的处理
        """
        if proxy.get_result("unitcity", self.id) is None:
            return self._create_data()
        else:
            return self._init_data(proxy)

    def _init_data(self, proxy):
        """根据 proxy 的返回值,初始化本地城池数据
        """
        self.city = UniqueData("unitcity",
                               proxy.get_result("unitcity", self.id))
        self.position_list = DataSet("unitposition",
                                     proxy.get_all_result("unitposition"))

        self.check_validation()
        assert self._valid
        return self

    def _create_data(self):
        """
        创建一份全新的数据
        """
        self.city = UniqueData("unitcity")
        self.position_list = DataSet("unitposition")

        self._valid = False
        return self

    def delete(self):
        """删除数据
        """
        self.city.delete()
        for position in self.position_list:
            position.delete()

        self._valid = False

    def check_validation(self):
        """检查数据是否合法
        """
        self._valid = True
        for field_name in self.__slots__:
            field = getattr(self, field_name)
            self._valid &= field.is_valid()
            if not self._valid:
                break

    def rollback(self, right):
        """回滚数据
        将自身的数据恢复到和 right 一致
        Args:
            right[UserData]: 正确的数据
        """
        for field_name in self.__slots__:
            lfield = getattr(self, field_name)
            rfield = getattr(right, field_name)
            lfield.rollback(rfield)

    def commit(self, right):
        """确认修改
        将自身的数据修改到和 right 一致,并同步到 DB 中
        """
        proxy = DataProxy()

        for field_name in self.__slots__:
            lfield = getattr(self, field_name)
            rfield = getattr(right, field_name)
            lfield.commit(rfield, proxy)

        defer = proxy.execute()
        defer.addCallback(self._check_commit)
        return defer

    def _check_commit(self, proxy):
        assert proxy.status == 0
        return self