async def post(self): r_dict = {'code': 0} subject_dimension_id = None try: code = self.get_argument('code', None) title = self.get_argument('title', None) category = self.get_argument('category', None) status = self.get_argument('status', None) # 状态 ordered = self.get_argument('ordered', None) comment = self.get_argument('comment', None) if code and title and category and ordered: c_count = await SubjectDimension.count( dict(code=code, parent_cid={'$in': [None, '']})) t_count = await SubjectDimension.count( dict(title=title, parent_cid={'$in': [None, '']})) r_count = await SubjectDimension.count( dict(ordered=int(ordered), parent_cid={'$in': [None, '']})) if c_count > 0: r_dict['code'] = -7 elif t_count > 0: r_dict['code'] = -6 elif r_count > 0: r_dict['code'] = -5 else: if status == 'on': status = STATUS_SUBJECT_DIMENSION_ACTIVE else: status = STATUS_SUBJECT_DIMENSION_INACTIVE subject_dimension = SubjectDimension( code=code, title=title, category=int(category), ordered=int(ordered)) subject_dimension.status = status subject_dimension.comment = comment if comment else None subject_dimension.created_id = self.current_user.oid subject_dimension.updated_id = self.current_user.oid subject_dimension_id = await subject_dimension.save() r_dict['code'] = 1 else: if not title: r_dict['code'] = -1 if not category: r_dict['code'] = -2 if not ordered: r_dict['code'] = -4 except RuntimeError: if subject_dimension_id: await SubjectDimension.delete_by_ids(subject_dimension_id) logger.error(traceback.format_exc()) return r_dict
async def post(self, dimension_id): p_subject_dimension = await SubjectDimension.find_one( {'_id': ObjectId(dimension_id)}) r_dict = {'code': 0} sub_dimension_id = None try: title = self.get_argument('title', None) status = self.get_argument('status', None) # 状态 ordered = self.get_argument('ordered', None) code = self.get_argument('code', None) comment = self.get_argument('comment', None) if title and ordered and p_subject_dimension and code: t_count = await SubjectDimension.count( dict(title=title, parent_cid=p_subject_dimension.cid)) r_count = await SubjectDimension.count( dict(ordered=int(ordered), parent_cid=p_subject_dimension.cid)) c_count = await SubjectDimension.count( dict(code=code, parent_cid=p_subject_dimension.cid)) if c_count > 0: r_dict['code'] = -2 elif t_count > 0: r_dict['code'] = -6 elif r_count > 0: r_dict['code'] = -5 else: if status == 'on': status = STATUS_SUBJECT_DIMENSION_ACTIVE else: status = STATUS_SUBJECT_DIMENSION_INACTIVE subject_dimension = SubjectDimension(title=title, ordered=int(ordered), code=code) subject_dimension.status = status subject_dimension.comment = comment if comment else None subject_dimension.created_id = self.current_user.oid subject_dimension.updated_id = self.current_user.oid subject_dimension.parent_cid = p_subject_dimension.cid sub_dimension_id = await subject_dimension.save() await do_subject_dimension(p_subject_dimension.cid) r_dict['code'] = 1 else: if not title: r_dict['code'] = -1 if not ordered: r_dict['code'] = -4 except RuntimeError: if sub_dimension_id: await SubjectDimension.delete_by_ids(sub_dimension_id) logger.error(traceback.format_exc()) return r_dict