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