Example #1
0
    def decodeFromDict(self, d):
        self.inspector = TYTaskInspectorRegister.decodeFromDict(d['inspector'])
        self.segment_id = d["segmentId"]
        reward_content = d.get('rewardContent')
        reward_multi_rate = d.get("multiReward", {}).get("rewardMultiRate", 0)
        if not isinstance(reward_multi_rate, (int, float)):
            raise TYBizConfException(d, 'task.rewardMultiRate must be number')
        self.totalLimit = d.get('total', 0)
        if not isinstance(self.totalLimit, int):
            raise TYBizConfException(d, 'task.totalLimit must be int')
        if reward_content:
            multi_reward_content = copy.deepcopy(reward_content)
            if reward_multi_rate > 0:
                for item in multi_reward_content.get("items", []):
                    if "count" not in item:
                        continue
                    item["count"] += int(item["count"] * reward_multi_rate)
            self.reward_content = TYContentRegister.decodeFromDict(
                reward_content)
            self.multi_reward_content = TYContentRegister.decodeFromDict(
                multi_reward_content)
            self.reward_mail = d.get('rewardMail', '')

            if not isstring(self.reward_mail):
                raise TYBizConfException(d, 'task.rewardMail must be string')
        return self
    def decodeFromDict(self, d):
        self.kindId = d.get('kindId')
        if not isinstance(self.kindId, int):
            raise TYBizConfException(d, 'RPTaskKind.kindId must be int')

        self.name = d.get('name')
        if not isstring(self.name):
            raise TYBizConfException(d, 'RPTaskKind.name must be string')

        self.count = d.get('count')
        if not isinstance(self.count, int):
            raise TYBizConfException(d, 'RPTaskKind.count must be int')

        self.desc = d.get('desc', '')
        if not isstring(self.desc):
            raise TYBizConfException(d, 'RPTaskKind.desc must be string')

        self.pic = d.get('pic', '')
        if not isstring(self.pic):
            raise TYBizConfException(d, 'RPTaskKind.pic must be string')

        inviterReward = d.get('inviterReward', 0)
        if not isinstance(inviterReward, int) or inviterReward < 0:
            raise TYBizConfException(
                d, 'RPTaskKind.inviterReward must be int >= 0')
        self.inviterReward = inviterReward

        rewardContent = d.get('rewardContent')
        if rewardContent:
            self.rewardContent = TYContentRegister.decodeFromDict(
                rewardContent)
            self.rewardMail = d.get('rewardMail', '')
            if not isstring(self.rewardMail):
                raise TYBizConfException(
                    d, 'RPTaskKind.rewardMail must be string')

        self.inspector = TYTaskInspectorRegister.decodeFromDict(
            d.get('inspector'))
        todotask = d.get('todotask')
        if todotask:
            self.todotaskFac = hallpopwnd.decodeTodotaskFactoryByDict(todotask)
        self._decodeFromDictImpl(d)
        return self