def upload_file_accessories(request): """ 上传附件 :param request: :return: """ file_name = request.FILES.get('file') project_id = request.session['apply_project_id'] accessories_id = uuid.uuid1() if not file_name: # error return render_json(error_return(u'文件不存在')) else: print type(file_name.name) destination = open( os.path.join( "static/upload", str(accessories_id) + '.' + file_name.name.encode('utf-8').split('.')[-1]), 'wb+') for chunk in file_name.chunks(): destination.write(chunk) destination.close() accessories_url = str(accessories_id) + '.' + file_name.name.encode( 'utf-8').split('.')[-1] res = AccessoriesInterface.insert_accessories( project_id=project_id, accessories_id=accessories_id, accessories_name=file_name.name, accessories_url=accessories_url) return render_json(res)
def user_login(cls, username, password): """ 用户登陆验证 :param username: 用户名称 :param password: 用户密码 :return: json 0 验证成功 1 验证失败 """ query_result = UserLogin.objects.filter(user_name=username) if query_result is None: return error_return(u'用户名不存在') else: query_dict = model_to_dict(query_result[0]) query_password = query_dict['user_password'] if query_password == password: return success_return(u'登录成功', query_dict) else: return error_return(u'密码错误')
def update_science_type(cls, type_id, type_name): """ 修改科研类型 :param type_id: :param type_name: :return: """ try: with transaction.atomic(): count = ScienceType.objects.filter(type_name=type_name).count() if count == 0: ScienceType.objects.filter(type_id=type_id).update( type_name=type_name) return success_return(u'修改科研类型成功', None) else: return error_return(u'修改科研类型名称已存在') except Exception as e: return error_return(u'修改科研类型异常')
def insert_science_type(cls, type_name): """ 新增科研类型 :param type_name: :return: """ type_id = uuid.uuid1() try: with transaction.atomic(): count = ScienceType.objects.filter(type_name=type_name).count() if count == 0: ScienceType.objects.create(type_id=type_id, type_name=type_name) return success_return(u'新增科研类型成功', None) else: return error_return(u'科研类型名称已存在') except Exception as e: return error_return(u'新增科研类型失败')
def get_user_login_by_id(cls, user_id): """ 通过用户ID获取用户信息 :param user_id: :return: """ try: query_result = UserLogin.objects.values().get(user_id=user_id) return success_return(u'获取用户登录信息成功', query_result) except Exception as e: return error_return(u'获取用户登录信息失败')
def delete_review(cls, review_id): """ 删除评审信息 :param review_id: :return: """ try: with transaction.atomic(): Review.objects.get(review_id=review_id).delete() return success_return(u'删除成功', None) except Exception as e: return error_return(u'删除失败')
def get_username_by_session(request): """ 通过session获取用户名 :param request: :return: """ try: username = request.session.get('user')['username'] res = success_return(u'获取用户名成功', {'username': username}) except Exception as e: res = error_return(u'获取用户名失败') return render_json(res)
def get_user_all_info(request): """ 获取所有用户信息 :param request: :return: """ user_login = UserLoinInterface.get_user_login_list(page=0, page_size=0) try: res = UserInfoInterface.get_user_detail_list_by_user_login( user_login_list=user_login.get('results')) return render_json(success_return(u'获取用户列表成功', res)) except Exception as e: return render_json(error_return(u'获取用户列表失败' + str(e)))
def delete_accessories_by_accessories_id(cls, accessories_id): """ 通过附件ID删除附件 :param accessories_id: :return: """ try: exit_temp = Accessories.objects.filter( accessories_id=accessories_id) print exit_temp if len(exit_temp) != 0: temp = Accessories.objects.filter( accessories_id=accessories_id).delete() return success_return(u'删除成功', None) else: return error_return(u'附件不存在删除失败') # if temp is not None: # return success_return(u'删除成功', None) # else: # return error_return(u'附件不存在删除失败') except Exception as e: return error_return(u'删除失败' + str(e))
def change_project_status(cls, project_id, project_status): """ 更改项目状态 :param project_id: :param project_status: :return: """ try: with transaction.atomic(): Project.objects.filter(project_id=project_id).update( project_status=project_status) return success_return(u'修改状态成功', None) except Exception as e: return error_return(u'修改项目状态失败')
def get_notice_by_id(cls, notification_id): """ 通过通知ID获取通知信息 :param notification_id: :return: """ try: notice = Notification.objects.values().get( notification_id=notification_id) notice['create_time'] = notice['create_time'].strftime( "%Y-%m-%d %H:%M:%S") return success_return(u'获取通知成功', notice) except Exception as e: return error_return(u'获取通知失败')
def get_active_user_info(request): """ 获取当前用户信息 :param request: :return: """ user_id = request.session['user_id'] user_login = UserLoinInterface.get_user_login_by_id(user_id=user_id) user_login_list = [] user_login_list.append(user_login.get('results')) try: res = UserInfoInterface.get_user_detail_list_by_user_login( user_login_list=user_login_list) return render_json(success_return(u'获取用户列表成功', res)) except Exception as e: return render_json(error_return(u'获取用户列表失败' + str(e)))
def update_review(cls, review_id, review_message, review_status): """ 更新评审信息 :param review_id: :param review_message: :param review_status: :return: """ try: with transaction.atomic(): Review.objects.filter(review_id=review_id).update( review_status=review_status, review_message=review_message, review_time=datetime.datetime.now()) return success_return(u'修改评审信息成功', None) except Exception as e: return error_return(u'修改评审信息失败')
def insert_accessories(cls, project_id, accessories_id, accessories_name, accessories_url): """ 新增项目附件 :param project_id: :param accessories_id: :param accessories_name: :param accessories_url: :return: """ try: with transaction.atomic(): Accessories.objects.create(project_id=project_id, accessories_id=accessories_id, accessories_name=accessories_name, accessories_url=accessories_url) return success_return(u'新增附件成功', None) except Exception as e: return error_return(u'新增附件失败' + str(e))
def init_review(cls, review_id, project_id, review_user_id, review_user_name): """ 初始化项目评审信息 :param review_id: :param project_id: :param review_user_id: :param review_user_name: :return: """ try: # review_status: 0未审批 1审批通过 2审批完成 with transaction.atomic(): Review.objects.create(review_id=review_id, project_id=project_id, review_user_id=review_user_id, review_status=0, review_user_name=review_user_name) return success_return(u'新增评审信息成功', None) except Exception as e: return error_return(u'新增评审信息失败')
def insert_notice(cls, notification_title, notification_content, create_user_id): """ :param notification_title: :param notification_content: :param create_user_id: :return: """ notification_id = uuid.uuid1() try: # 添加事物控制防止异常时事物不回滚,这里事物必须放在try...catch里面 # 否则事物被try...catch捕获了就不起作用了 with transaction.atomic(): Notification.objects.create( notification_id=notification_id, notification_title=notification_title, notification_content=notification_content, create_user_id=create_user_id) return success_return(u'发布通知成功', []) except Exception as e: return error_return(u'新增通知失败')
def insert_project(cls, project_name, project_time, apply_user_name, apply_user_id, research_content, technology_new, expected_goal, participator, start_time, stop_time, science_type_id): """ 新增项目信息 :param project_name: :param project_time: :param apply_user_name: :param apply_user_id: :param research_content: :param technology_new: :param expected_goal: :param participator: :param start_time: :param stop_time: :param science_type_id: :return: """ project_id = uuid.uuid1() try: with transaction.atomic(): Project.objects.create(project_id=project_id, project_name=project_name, project_time=project_time, apply_user_name=apply_user_name, apply_user_id=apply_user_id, research_content=research_content, technology_new=technology_new, expected_goal=expected_goal, participator=participator, start_time=start_time, stop_time=stop_time, project_status=0, science_type_id=science_type_id) return success_return(u'新增项目成功', {'project_id': str(project_id)}) except Exception as e: return error_return(u'新增项目失败' + str(e))
def add_user_info( cls, user_id, user_name, user_password, user_type, user_email, user_address, user_phone, science_type_id, ): """ 新增用户信息 :param user_id: :param user_name: :param user_password: :param user_type: :param user_email: :param user_address: :param user_phone: :param science_type_id: :return: """ try: with transaction.atomic(): UserLogin.objects.create(user_password=user_password, user_type=user_type, user_name=user_name, science_type_id=science_type_id, user_id=user_id) with transaction.atomic(): UserInfo.objects.create(user_id=user_id, user_email=user_email, user_address=user_address, user_phone=user_phone) return success_return(u'新增用户信息成功', None) except Exception as e: return error_return(u'新增用户信息失败' + str(e))