diff --git a/Utils/ObjUtil.py b/Utils/ObjUtil.py index f352d56..5c072df 100644 --- a/Utils/ObjUtil.py +++ b/Utils/ObjUtil.py @@ -1,4 +1,5 @@ + class SpecObject(object): """自定义类""" @@ -52,8 +53,24 @@ class SpecObject(object): return _dict_ - # def dict_to_post(self, **kwargs): - # if kwargs.__contains__('data'): - # fields_map = dict([v, k] for k, v in self.fields_map.items()) - # for field in list(kwargs['data'].keys()): - # self.__setattr__(fields_map[field], kwargs['data'][field]) + @staticmethod + def dict_to_set(**kwargs): + """实例设值""" + instance = kwargs['instance']() + fields_map = dict([v, k] for k, v in instance.fields_map.items()) + for field in list(kwargs['data'].keys()): + instance.__setattr__(fields_map[field], kwargs['data'][field]) + return instance + + @staticmethod + def instance_list_to_set(**kwargs): + """实例数组设值""" + list_ = list() + for item in list(kwargs['data']): + instance = kwargs['instance']() + fields_map = dict([v, k] for k, v in instance.fields_map.items()) + for field in list(item.keys()): + instance.__setattr__(fields_map[field], item[field]) + list_.append(instance) + + return list_ diff --git a/Utils/ValidateUtil.py b/Utils/ValidateUtil.py index c81ca43..32ed1ed 100644 --- a/Utils/ValidateUtil.py +++ b/Utils/ValidateUtil.py @@ -20,6 +20,20 @@ class Validate(object): case = (len(param) >= 8) and (re.match(regex, param) is not None) return True if case else False + @staticmethod + def date_format(param): + """yyyy-mm-dd""" + regex = "\d{4}-\d{1,2}-\d{1,2}" + case = re.match(regex, param) is not None + return True if case else False + + @staticmethod + def time_format(param): + """yyyy-mm-dd hh:mm:ss""" + regex = "\d{4}-\d{1,2}-\d{1,2} \d{1,2}:\d{1,2}:\d{1,2}" + case = re.match(regex, param) is not None + return True if case else False + @staticmethod def image(param): """""" @@ -51,8 +65,12 @@ class ValidateAttr(object): if 'type' in self.kwargs: """检查实例的属性类型""" - if not isinstance(value, self.kwargs['type']): - raise ReturnConditionCheckFailed(self.error_info, self.error_code) + if type(self.kwargs['type']) is list: + if type(value) not in self.kwargs['type']: + raise ReturnConditionCheckFailed(self.error_info, self.error_code) + else: + if not isinstance(value, self.kwargs['type']): + raise ReturnConditionCheckFailed(self.error_info, self.error_code) if 'length' in self.kwargs: """检查实例的属性值长度(一般是str类型)"""