Пример #1
0
 def create(self, request, *args, **kwargs):
     data = request.data
     lang = request.GET.get('lang')
     data['createuser'] = request.user.id
     data['datasource'] = request.user.datasource.id
     try:
         with transaction.atomic():
             scheduleserializer = ScheduleCreateSerializer(data=data)
             if scheduleserializer.is_valid():
                 scheduleserializer.save()
             else:
                 raise InvestError(code=20071,
                                   msg='data有误_%s\n%s' %
                                   (scheduleserializer.error_messages,
                                    scheduleserializer.errors))
             return JSONResponse(
                 SuccessResponse(
                     returnDictChangeToLanguage(scheduleserializer.data,
                                                lang)))
     except InvestError as err:
         return JSONResponse(InvestErrorResponse(err))
     except Exception:
         catchexcption(request)
         return JSONResponse(
             ExceptionResponse(traceback.format_exc().split('\n')[-2]))
Пример #2
0
 def update(self, request, *args, **kwargs):
     try:
         lang = request.GET.get('lang')
         instance = self.get_object()
         if request.user.has_perm('msg.admin_manageSchedule'):
             pass
         elif request.user == instance.createuser:
             pass
         else:
             raise InvestError(code=2009)
         data = request.data
         data['lastmodifyuser'] = request.user.id
         data['lastmodifytime'] = datetime.datetime.now()
         data.pop('scheduledtime')  #客户端不能修改日程时间
         with transaction.atomic():
             serializer = ScheduleCreateSerializer(instance, data=data)
             if serializer.is_valid():
                 newinstance = serializer.save()
             else:
                 raise InvestError(code=20071,
                                   msg='data有误_%s' % serializer.errors)
             return JSONResponse(
                 SuccessResponse(
                     returnDictChangeToLanguage(
                         ScheduleSerializer(newinstance).data, lang)))
     except InvestError as err:
         return JSONResponse(InvestErrorResponse(err))
     except Exception:
         catchexcption(request)
         return JSONResponse(
             ExceptionResponse(traceback.format_exc().split('\n')[-2]))
Пример #3
0
 def update(self, request, *args, **kwargs):
     try:
         id = request.GET.get('id')
         instance = self.queryset.get(id=ObjectId(id))
         if instance.createuser_id == request.user.id:
             pass
         else:
             raise InvestError(2009, msg='修改项目公司备注信息失败')
         data = request.data
         data.pop('createuser_id', None)
         data.pop('datasource', None)
         serializer = self.serializer_class(instance, data=data)
         if serializer.is_valid():
             serializer.save()
         else:
             raise InvestError(4014,
                               msg='修改项目公司备注信息失败',
                               detail=serializer.error_messages)
         return JSONResponse(SuccessResponse(serializer.data))
     except InvestError as err:
         return JSONResponse(InvestErrorResponse(err))
     except Exception:
         catchexcption(request)
         return JSONResponse(
             ExceptionResponse(traceback.format_exc().split('\n')[-2]))
Пример #4
0
 def deleteAttachment(self, request, *args, **kwargs):
     try:
         lang = request.GET.get('lang')
         instance = self.get_object()
         if request.user.has_perm('BD.manageMeetBD'):
             pass
         elif request.user.has_perm('BD.user_manageMeetBD', instance):
             pass
         elif request.user in [
                 instance.proj.takeUser, instance.proj.makeUser
         ]:
             pass
         else:
             raise InvestError(2009)
         with transaction.atomic():
             bucket = instance.attachmentbucket
             key = instance.attachment
             deleteqiniufile(bucket, key)
             instance.attachmentbucket = None
             instance.attachment = None
             instance.save()
             return JSONResponse(
                 SuccessResponse(
                     returnDictChangeToLanguage(
                         MeetingBDSerializer(instance).data, lang)))
     except InvestError as err:
         return JSONResponse(InvestErrorResponse(err))
     except Exception:
         catchexcption(request)
         return JSONResponse(
             ExceptionResponse(traceback.format_exc().split('\n')[-2]))
Пример #5
0
def getcurrencyreat(request):
    try:
        checkrequesttoken(request)
        tcur = request.GET.get('tcur', None)
        scur = request.GET.get('scur', None)
        if not tcur or not scur:
            raise InvestError(20072)
        response = requests.get(
            'https://sapi.k780.com/?app=finance.rate&scur=%s&tcur=%s&appkey=18220&sign=9b97118c7cf61df11c736c79ce94dcf9'
            % (scur, tcur)).content
        response = json.loads(response)
        if isinstance(response, dict):
            success = response.get('success', False)
            if success in ['1', True]:
                result = response.get('result', {})
            else:
                raise InvestError(code=2007, msg=response.get('msg', None))
        else:
            raise InvestError(code=2007, msg=response)
        return JSONResponse(SuccessResponse(result))
    except InvestError as err:
        return JSONResponse(InvestErrorResponse(err))
    except Exception:
        catchexcption(request)
        return JSONResponse(
            ExceptionResponse(traceback.format_exc().split('\n')[-2]))
Пример #6
0
 def update(self, request, *args, **kwargs):
     try:
         orgremark = self.get_object()
         lang = request.GET.get('lang')
         if request.user.has_perm('org.admin_changeorgremark'):
             pass
         elif request.user.has_perm('org.user_changeorgremark', orgremark):
             pass
         else:
             raise InvestError(code=2009)
         data = request.data
         data['lastmodifyuser'] = request.user.id
         data['lastmodifytime'] = datetime.datetime.now()
         data['datasource'] = request.user.datasource.id
         with transaction.atomic():
             orgserializer = OrgRemarkDetailSerializer(orgremark, data=data)
             if orgserializer.is_valid():
                 org = orgserializer.save()
             else:
                 raise InvestError(code=20071,
                                   msg='data有误_%s' % orgserializer.errors)
             return JSONResponse(
                 SuccessResponse(
                     returnDictChangeToLanguage(
                         OrgRemarkDetailSerializer(org).data, lang)))
     except InvestError as err:
         return JSONResponse(InvestErrorResponse(err))
     except Exception:
         catchexcption(request)
         return JSONResponse(
             ExceptionResponse(traceback.format_exc().split('\n')[-2]))
Пример #7
0
 def list(self, request, *args, **kwargs):
     try:
         page_size = request.GET.get('page_size')
         page_index = request.GET.get('page_index')
         if not page_size:
             page_size = 10
         if not page_index:
             page_index = 1
         queryset = self.filter_queryset(self.get_queryset())
         count = queryset.count()
         try:
             queryset = Paginator(queryset, page_size)
             queryset = queryset.page(page_index)
         except EmptyPage:
             return JSONResponse(SuccessResponse({'count': 0, 'data': []}))
         serializer = self.serializer_class(queryset, many=True)
         return JSONResponse(
             SuccessResponse({
                 'count': count,
                 'data': serializer.data
             }))
     except InvestError as err:
         return JSONResponse(InvestErrorResponse(err))
     except Exception:
         catchexcption(request)
         return JSONResponse(
             ExceptionResponse(traceback.format_exc().split('\n')[-2]))
Пример #8
0
 def destroy(self, request, *args, **kwargs):
     try:
         timelineidlist = request.data.get('timelines')
         timelinelist = []
         lang = request.GET.get('lang')
         if not timelineidlist or not  isinstance(timelineidlist,list):
             raise InvestError(code=20071, msg='except a not null list')
         with transaction.atomic():
             for timelineid in timelineidlist:
                 instance = self.get_object(timelineid)
                 if not (request.user.has_perm('timeline.admin_deleteline') or request.user.has_perm(
                         'timeline.user_deleteline', instance)):
                     raise InvestError(2009, msg='没有相应权限')
                 for link in ['timeline_transationStatus','timeline_remarks']:
                     if link in []:
                         manager = getattr(instance, link, None)
                         if not manager:
                             continue
                         # one to one
                         if isinstance(manager, models.Model):
                             if hasattr(manager, 'is_deleted') and not manager.is_deleted:
                                 raise InvestError(code=2010,msg=u'{} 上有关联数据'.format(link))
                         else:
                             try:
                                 manager.model._meta.get_field('is_deleted')
                                 if manager.all().filter(is_deleted=False).count():
                                     raise InvestError(code=2010,msg=u'{} 上有关联数据'.format(link))
                             except FieldDoesNotExist:
                                 if manager.all().count():
                                     raise InvestError(code=2010,msg=u'{} 上有关联数据'.format(link))
                     else:
                         manager = getattr(instance, link, None)
                         if not manager:
                             continue
                         # one to one
                         if isinstance(manager, models.Model):
                             if hasattr(manager, 'is_deleted') and not manager.is_deleted:
                                 manager.is_deleted = True
                                 manager.save()
                         else:
                             try:
                                 manager.model._meta.get_field('is_deleted')
                                 if manager.all().filter(is_deleted=False).count():
                                     manager.all().update(is_deleted=True)
                             except FieldDoesNotExist:
                                 pass
                 instance.is_deleted = True
                 instance.deleteduser = request.user
                 instance.deletedtime = datetime.datetime.now()
                 instance.save()
                 instance.timeline_transationStatus.all().update(is_deleted=True)
                 instance.timeline_remarks.all().update(is_deleted=True)
                 cache_delete_key(self.redis_key + '_%s' % instance.id)
                 timelinelist.append(TimeLineSerializer(instance).data)
             return JSONResponse(SuccessResponse(returnListChangeToLanguage(timelinelist, lang)))
     except InvestError as err:
         return JSONResponse(InvestErrorResponse(err))
     except Exception:
         catchexcption(request)
         return JSONResponse(ExceptionResponse(traceback.format_exc().split('\n')[-2]))
Пример #9
0
 def audioFileTranslateToWord(self, request, *args, **kwargs):
     try:
         speaker_number = request.data.get('speaker_number', 0)
         uploaddata = request.FILES.get('file')
         dirpath = APILOG_PATH['audioTranslateFile']
         file_key = request.data.get('key')
         if not file_key:
             filetype = str(uploaddata.name).split('.')[-1]
             randomPrefix = datetime.datetime.now().strftime(
                 '%Y%m%d%H%M%S') + ''.join(
                     random.sample(string.ascii_lowercase, 6))
             file_key = randomPrefix + '.' + filetype
         if not os.path.exists(dirpath):
             os.makedirs(dirpath)
         file_Path = os.path.join(dirpath, file_key)
         with open(file_Path, 'wb+') as destination:
             for chunk in uploaddata.chunks():
                 destination.write(chunk)
         api = TransferRequestApi(upload_file_path=file_Path,
                                  speaker_number=speaker_number)
         task_id = api.all_api_request()
         instance = AudioTranslateTaskRecord(task_id=task_id,
                                             file_key=file_key,
                                             file_name=uploaddata.name,
                                             speaker_number=speaker_number,
                                             cretateUserId=request.user.id)
         instance.save()
         return JSONResponse(
             SuccessResponse(self.serializer_class(instance).data))
     except InvestError as err:
         return JSONResponse(InvestErrorResponse(err))
     except Exception:
         catchexcption(request)
         return JSONResponse(
             ExceptionResponse(traceback.format_exc().split('\n')[-2]))
Пример #10
0
 def destroy(self, request, *args, **kwargs):
     try:
         data = request.data
         traderid = data.get('trader', None)
         investorid = data.get('investor', None)
         projid = data.get('proj', None)
         if not data or not traderid or not investorid:
             raise InvestError(code=20071)
         dataroomquery = self.get_queryset().filter(isPublic=False, proj_id=projid, investor_id=investorid, trader_id=traderid)
         if not dataroomquery.exists():
             raise InvestError(code=6002)
         if request.user.has_perm('dataroom.admin_deletedataroom'):
             pass
         elif request.user.has_perm('dataroom.user_deletedataroom',dataroomquery.get(investor_id=investorid)):
             pass
         else:
             raise InvestError(code=2009)
         with transaction.atomic():
             for instance in dataroomquery:
                 instance.dataroom_directories.all().update(is_deleted=True,deletedtime=datetime.datetime.now())
                 for fileOrDirectory in instance.dataroom_directories.all():
                     if fileOrDirectory.isFile and fileOrDirectory.key:
                         deleteqiniufile(fileOrDirectory.bucket, fileOrDirectory.key)
                 instance.is_deleted = True
                 instance.deleteduser = request.user
                 instance.deletedtime = datetime.datetime.now()
                 instance.save()
             return JSONResponse(SuccessResponse(returnListChangeToLanguage(DataroomSerializer(dataroomquery,many=True).data)))
     except InvestError as err:
         return JSONResponse(InvestErrorResponse(err))
     except Exception:
         catchexcption(request)
         return JSONResponse(ExceptionResponse(traceback.format_exc().split('\n')[-2]))
Пример #11
0
 def update(self, request, *args, **kwargs):
     try:
         remark = self.get_object()
         lang = request.GET.get('lang')
         if request.user.has_perm('timeline.admin_changelineremark'):
             pass
         elif request.user.has_perm('timeline.user_changelineremark',
                                    remark):
             pass
         else:
             raise InvestError(code=2009)
         data = request.data
         data['lastmodifyuser'] = request.user.id
         data['lastmodifytime'] = datetime.datetime.now()
         with transaction.atomic():
             serializer = TimeLineRemarkSerializer(remark, data=data)
             if serializer.is_valid():
                 newremark = serializer.save()
             else:
                 raise InvestError(
                     code=20071,
                     msg='data有误_%s\n%s' %
                     (serializer.error_messages, serializer.errors))
             return JSONResponse(
                 SuccessResponse(
                     returnDictChangeToLanguage(
                         TimeLineRemarkSerializer(newremark).data, lang)))
     except InvestError as err:
         return JSONResponse(InvestErrorResponse(err))
     except Exception:
         catchexcption(request)
         return JSONResponse(
             ExceptionResponse(traceback.format_exc().split('\n')[-2]))
Пример #12
0
 def list(self, request, *args, **kwargs):
     try:
         lang = request.GET.get('lang',None)
         dataroomid = request.GET.get('dataroom',None)
         queryset = self.filter_queryset(self.get_queryset())
         if dataroomid and isinstance(dataroomid,(int,str,unicode)):
             dataroomobj = self.get_dataroom(dataroomid)
             if dataroomobj.isPublic:
                 pass
             elif request.user.has_perm('dataroom.admin_getdataroom'):
                 pass
             elif request.user.has_perm('dataroom.user_getdataroom', dataroomobj):
                 pass
             else:
                 raise InvestError(code=2009)
         else:
             raise InvestError(code=20072,msg='dataroom 不能空')
         count = queryset.count()
         serializer = DataroomdirectoryorfileSerializer(queryset, many=True)
         return JSONResponse(SuccessResponse({'count':count,'data':returnListChangeToLanguage(serializer.data,lang)}))
     except InvestError as err:
         return JSONResponse(InvestErrorResponse(err))
     except Exception:
         catchexcption(request)
         return JSONResponse(ExceptionResponse(traceback.format_exc().split('\n')[-2]))
Пример #13
0
 def list(self, request, *args, **kwargs):
     try:
         page_size = request.GET.get('page_size')
         page_index = request.GET.get('page_index')  # 从第一页开始
         if not page_size:
             page_size = 10
         if not page_index:
             page_index = 1
         queryset = self.filterqueryset(request, self.queryset)
         if request.user.has_perm('usersys.admin_getmongoprojremark'):
             queryset = queryset(datasource=request.user.datasource_id)
         else:
             queryset = queryset(createuser_id=request.user.id)
         try:
             count = queryset.count()
             queryset = Paginator(queryset, page_size)
             queryset = queryset.page(page_index)
         except EmptyPage:
             return JSONResponse(SuccessResponse({'count': 0, 'data': []}))
         serializer = self.serializer_class(queryset, many=True)
         return JSONResponse(
             SuccessResponse({
                 'count': count,
                 'data': serializer.data
             }))
     except InvestError as err:
         return JSONResponse(InvestErrorResponse(err))
     except Exception:
         catchexcption(request)
         return JSONResponse(
             ExceptionResponse(traceback.format_exc().split('\n')[-2]))
Пример #14
0
def getMobilePhoneAddress(request):
    try:
        tokenkey = request.META.get('HTTP_TOKEN')
        checkrequesttoken(tokenkey)
        mobile = request.GET.get('mobile', None)
        if not mobile:
            raise InvestError(20072, msg='手机号码不能为空')
        response = requests.get(
            'http://apis.juhe.cn/mobile/get?phone={}&dtype=&key=f439062c59bb86db8156446aa9737c72'
            .format(mobile)).content
        response = json.loads(response.decode())
        if isinstance(response, dict):
            error_code = response.get('error_code')
            if error_code == 0:
                result = response.get('result', {})
            else:
                raise InvestError(20071, msg=response.get('reason', None))
        else:
            raise InvestError(20071, msg=response)
        return JSONResponse(SuccessResponse(result))
    except InvestError as err:
        return JSONResponse(InvestErrorResponse(err))
    except Exception:
        catchexcption(request)
        return JSONResponse(
            ExceptionResponse(traceback.format_exc().split('\n')[-2]))
Пример #15
0
    def destroy(self, request, *args, **kwargs):
        try:
            lang = request.GET.get('lang')
            instance = self.get_object()

            if request.user.has_perm('timeline.admin_deletelineremark'):
                pass
            elif request.user.has_perm('timeline.user_deletelineremark',
                                       instance):
                pass
            else:
                raise InvestError(code=2009, msg='没有权限')
            with transaction.atomic():
                instance.is_deleted = True
                instance.deleteduser = request.user
                instance.deletedtime = datetime.datetime.now()
                instance.save()
                return JSONResponse(
                    SuccessResponse(
                        returnDictChangeToLanguage(
                            TimeLineRemarkSerializer(instance).data, lang)))
        except InvestError as err:
            return JSONResponse(InvestErrorResponse(err))
        except Exception:
            catchexcption(request)
            return JSONResponse(
                ExceptionResponse(traceback.format_exc().split('\n')[-2]))
Пример #16
0
 def create(self, request, *args, **kwargs):
     try:
         data = request.data
         com_qs = ProjectData.objects.filter(com_id=data['com_id'])
         if com_qs.count() > 0:
             com_name = data.get('com_name', None)
             if com_name and (u'...' in com_name or u'403' in com_name
                              or u'www.itjuzi.com' in com_name):
                 data.pop('com_name', None)
             serializer = self.serializer_class(com_qs.first(), data=data)
         else:
             serializer = self.serializer_class(data=data)
         if serializer.is_valid():
             proj = serializer.save()
             event_qs = MergeFinanceData.objects.filter(com_id=proj.com_id)
             if event_qs.count():
                 event_qs.update(com_cat_name=proj.com_cat_name)
                 event_qs.update(com_sub_cat_name=proj.com_sub_cat_name)
                 event_qs.update(com_addr=proj.com_addr)
         else:
             raise InvestError(4012,
                               msg='新增全库项目失败',
                               detail=serializer.error_messages)
         return JSONResponse(SuccessResponse(serializer.data))
     except InvestError as err:
         return JSONResponse(InvestErrorResponse(err))
     except Exception:
         catchexcption(request)
         return JSONResponse(
             ExceptionResponse(traceback.format_exc().split('\n')[-2]))
Пример #17
0
 def create(self, request, *args, **kwargs):
     try:
         data = request.data
         lang = request.GET.get('lang')
         dataroomid = data.get('dataroom', None)
         if dataroomid:
             dataroomobj = self.get_dataroom(dataroomid)
             if dataroomobj.isClose:
                 raise InvestError(7012)
             elif request.user.has_perm('dataroom.admin_adddataroom'):
                 pass
             elif request.user.has_perm('dataroom.user_adddataroomfile', dataroomobj):
                 pass
             else:
                 raise InvestError(code=2009)
         else:
             raise InvestError(code=20072)
         data['createuser'] = request.user.id
         # createdtime = data.pop('createdtime', None)
         # if createdtime not in ['None', None, u'None', 'none']:
         #     data['createdtime'] = datetime.datetime.strptime(createdtime.encode('utf-8')[0:19], "%Y-%m-%d %H:%M:%S")
         # else:
         #     data['createdtime'] = datetime.datetime.now()
         # lastmodifytime = data.pop('lastmodifytime', None)
         # if lastmodifytime not in ['None', None, u'None', 'none']:
         #     data['lastmodifytime'] = datetime.datetime.strptime(lastmodifytime.encode('utf-8')[0:19], "%Y-%m-%d %H:%M:%S")
         data['datasource'] = request.user.datasource.id
         if data.get('parent', None):
             parentfile = self.get_object(data['parent'])
             if parentfile.isFile:
                 raise InvestError(7007, msg='非文件夹类型')
             if self.checkDirectoryIsShadow(parentfile):
                 raise InvestError(7009, msg='不能把文件f复制到复制体文件夹内')
             if parentfile.dataroom_id != dataroomid:
                 raise InvestError(7011, msg='dataroom下没有该目录')
         if data.get('isShadow', None):
             if data['shadowdirectory'] is None:
                 raise InvestError(2007,msg='\"shadowdirectory\" 不能为空')
             shadowdirectory = self.get_object(data['shadowdirectory'])
             if shadowdirectory.isShadow:
                 raise InvestError(7009,msg='影子目录不能复制')
             if shadowdirectory.dataroom_id == dataroomid:
                 raise InvestError(7011,msg='文件复制不能再同一个dataroom下')
         with transaction.atomic():
             directoryorfileserializer = DataroomdirectoryorfileCreateSerializer(data=data)
             if directoryorfileserializer.is_valid():
                 directoryorfile = directoryorfileserializer.save()
             else:
                 raise InvestError(code=20071, msg='data有误_%s' % directoryorfileserializer.errors)
             if directoryorfile.parent is not None:
                 destquery = directoryorfile.parent.asparent_directories.exclude(pk=directoryorfile.pk).filter(is_deleted=False,orderNO__gte=directoryorfile.orderNO)
                 if destquery.exists():
                     destquery.update(orderNO = F('orderNO') + 1)
             sendmessage_dataroomfileupdate(directoryorfile,directoryorfile.dataroom.investor,['sms','email','webmsg','app'],sender=request.user)
             return JSONResponse(SuccessResponse(returnDictChangeToLanguage(directoryorfileserializer.data, lang)))
     except InvestError as err:
         return JSONResponse(InvestErrorResponse(err))
     except Exception:
         catchexcption(request)
         return JSONResponse(ExceptionResponse(traceback.format_exc().split('\n')[-2]))
Пример #18
0
 def retrieve(self, request, *args, **kwargs):
     try:
         lang = request.GET.get('lang')
         instance = self.get_object()
         if request.user.has_perm('BD.manageMeetBD'):
             pass
         elif request.user.has_perm('BD.user_manageMeetBD', instance):
             pass
         elif request.user.has_perm('BD.user_getMeetBD'):
             if request.user not in [
                     instance.proj.takeUser, instance.proj.makeUser
             ]:
                 raise InvestError(2009)
         else:
             raise InvestError(2009)
         serializer = self.serializer_class(instance)
         return JSONResponse(
             SuccessResponse(
                 returnDictChangeToLanguage(serializer.data, lang)))
     except InvestError as err:
         return JSONResponse(InvestErrorResponse(err))
     except Exception:
         catchexcption(request)
         return JSONResponse(
             ExceptionResponse(traceback.format_exc().split('\n')[-2]))
Пример #19
0
 def list(self, request, *args, **kwargs):
     try:
         page_size = request.GET.get('page_size')
         page_index = request.GET.get('page_index')  # 从第一页开始
         if not page_size:
             page_size = 10
         if not page_index:
             page_index = 1
         queryset = self.filterqueryset(request, self.queryset)
         sort = request.GET.get('sort')
         if sort not in [
                 'True', 'true', True, 1, 'Yes', 'yes', 'YES', 'TRUE'
         ]:
             queryset = queryset.order_by('-date', )
         else:
             queryset = queryset.order_by('date', )
         try:
             count = queryset.count()
             queryset = Paginator(queryset, page_size)
             queryset = queryset.page(page_index)
         except EmptyPage:
             return JSONResponse(SuccessResponse({'count': 0, 'data': []}))
         serializer = self.serializer_class(queryset, many=True)
         return JSONResponse(
             SuccessResponse({
                 'count': count,
                 'data': serializer.data
             }))
     except InvestError as err:
         return JSONResponse(InvestErrorResponse(err))
     except Exception:
         catchexcption(request)
         return JSONResponse(
             ExceptionResponse(traceback.format_exc().split('\n')[-2]))
Пример #20
0
 def create(self, request, *args, **kwargs):
     try:
         data = request.data
         bdinstance = OrgBD.objects.get(id=int(data['orgBD']))
         if request.user.has_perm('BD.manageOrgBD'):
             pass
         elif request.user.has_perm('BD.user_manageOrgBD', bdinstance):
             pass
         else:
             raise InvestError(2009)
         lang = request.GET.get('lang')
         data['createuser'] = request.user.id
         data['datasource'] = request.user.datasource.id
         with transaction.atomic():
             commentinstance = OrgBDCommentsCreateSerializer(data=data)
             if commentinstance.is_valid():
                 newcommentinstance = commentinstance.save()
             else:
                 raise InvestError(5004,
                                   msg='创建机构BDcomments失败--%s' %
                                   commentinstance.error_messages)
             return JSONResponse(
                 SuccessResponse(
                     returnDictChangeToLanguage(
                         OrgBDCommentsSerializer(newcommentinstance).data,
                         lang)))
     except InvestError as err:
         return JSONResponse(InvestErrorResponse(err))
     except Exception:
         catchexcption(request)
         return JSONResponse(
             ExceptionResponse(traceback.format_exc().split('\n')[-2]))
Пример #21
0
 def create(self, request, *args, **kwargs):
     try:
         with transaction.atomic():
             data = request.data
             data['datasource'] = request.user.datasource_id
             if not data.get('nameC') and data.get('nameE'):
                 data['nameC'] = data['nameE']
             elif not data.get('nameE') and data.get('nameC'):
                 data['nameE'] = data['nameC']
             elif not data.get('nameC') and not data.get('nameE'):
                 raise InvestError(20071,
                                   msg='新建标签失败,名称不能为空',
                                   detail='新建标签名称不能为空')
             serializer = self.serializer_class(data=data)
             if serializer.is_valid():
                 instance = serializer.save()
             else:
                 raise InvestError(20071,
                                   msg='%s' % serializer.error_messages)
             return JSONResponse(
                 SuccessResponse(self.serializer_class(instance).data))
     except InvestError as err:
         return JSONResponse(InvestErrorResponse(err))
     except Exception:
         catchexcption(request)
         return JSONResponse(
             ExceptionResponse(traceback.format_exc().split('\n')[-2]))
Пример #22
0
 def create(self, request, *args, **kwargs):
     try:
         data = request.data
         lang = request.GET.get('lang')
         comments = data.get('comments', None)
         data['createuser'] = request.user.id
         data['datasource'] = request.user.datasource.id
         if request.user.has_perm('BD.manageOrgBD'):
             pass
         else:
             proj = data.get('proj', None)
             if proj:
                 projinstance = project.objects.get(
                     id=proj,
                     is_deleted=False,
                     datasource=request.user.datasource)
                 if request.user.has_perm('BD.user_addOrgBD'):
                     pass
                 elif request.user in [
                         projinstance.takeUser, projinstance.makeUser
                 ]:
                     pass
                 else:
                     raise InvestError(2009)
             else:
                 raise InvestError(2009)
         with transaction.atomic():
             orgBD = OrgBDCreateSerializer(data=data)
             if orgBD.is_valid():
                 neworgBD = orgBD.save()
                 if neworgBD.manager:
                     add_perm('BD.user_manageOrgBD', neworgBD.manager,
                              neworgBD)
             else:
                 raise InvestError(5004,
                                   msg='机构BD创建失败——%s' %
                                   orgBD.error_messages)
             if comments:
                 data['orgBD'] = neworgBD.id
                 commentinstance = OrgBDCommentsCreateSerializer(data=data)
                 if commentinstance.is_valid():
                     commentinstance.save()
             if request.user != neworgBD.manager:
                 sendmessage_orgBDMessage(neworgBD,
                                          receiver=neworgBD.manager,
                                          types=['app', 'webmsg', 'sms'],
                                          sender=request.user)
             return JSONResponse(
                 SuccessResponse(
                     returnDictChangeToLanguage(
                         OrgBDSerializer(neworgBD).data, lang)))
     except InvestError as err:
         return JSONResponse(InvestErrorResponse(err))
     except Exception:
         catchexcption(request)
         return JSONResponse(
             ExceptionResponse(traceback.format_exc().split('\n')[-2]))
Пример #23
0
 def list(self, request, *args, **kwargs):
     try:
         page_size = request.GET.get('page_size', 10)
         page_index = request.GET.get('page_index', 1)  # 从第一页开始
         queryset = self.filterqueryset(request, self.queryset)
         com_addr = request.GET.get('com_addr')
         finance_date = request.GET.get('finance_date')
         if finance_date:
             finance_date_list = finance_date.split(',')
             filters = Q(date__startswith=finance_date)
             for finance_date in finance_date_list:
                 filters = filters | Q(date__startswith=finance_date)
             comid_QS = MergeFinanceData.objects.all().filter(
                 filters).values_list('com_id').distinct('com_id')
             queryset = queryset.filter(com_id__in=comid_QS)
         if com_addr:
             com_addr = com_addr.split(',')
             if '其他' in com_addr:
                 queryset = queryset.filter(
                     Q(com_addr__nin=ChinaList) | Q(com_addr__in=com_addr))
             else:
                 queryset = queryset(Q(com_addr__in=com_addr))
         sortfield = request.GET.get('sort')
         if sortfield:
             queryset = queryset.order_by(sortfield)
         else:
             queryset = queryset.order_by('-id')
         count = queryset.count()
         if count == 0:
             if request.GET.get('com_name', None):
                 searchuser_id = None
                 if not request.user.is_anonymous:
                     searchuser_id = request.user.id
                 saveCompanySearchName(request.GET.get('com_name'),
                                       searchuser_id)
         try:
             queryset = Paginator(queryset, page_size)
             queryset = queryset.page(page_index)
         except EmptyPage:
             return JSONResponse(SuccessResponse({'count': 0, 'data': []}))
         serializer = self.serializer_class(queryset, many=True)
         return JSONResponse(
             SuccessResponse({
                 'count': count,
                 'data': serializer.data
             }))
     except InvestError as err:
         return JSONResponse(InvestErrorResponse(err))
     except Exception:
         catchexcption(request)
         return JSONResponse(
             ExceptionResponse(traceback.format_exc().split('\n')[-2]))
Пример #24
0
 def update(self, request, *args, **kwargs):
     try:
         id = request.GET.get('id')
         instance = self.queryset.get(id=ObjectId(id))
         proj = ProjectData.objects(com_id=instance.com_id).first()
         instance.update(com_cat_name=proj.com_cat_name)
         instance.update(com_sub_cat_name=proj.com_sub_cat_name)
         instance.update(com_addr=proj.com_addr)
         return JSONResponse(SuccessResponse(True))
     except InvestError as err:
         return JSONResponse(InvestErrorResponse(err))
     except Exception:
         catchexcption(request)
         return JSONResponse(
             ExceptionResponse(traceback.format_exc().split('\n')[-2]))
Пример #25
0
 def create(self, request, *args, **kwargs):
     try:
         data = request.data
         serializer = self.serializer_class(data=data)
         if serializer.is_valid():
             serializer.save()
         else:
             raise InvestError(2001, msg=serializer.error_messages)
         return JSONResponse(SuccessResponse(serializer.data))
     except InvestError as err:
         return JSONResponse(InvestErrorResponse(err))
     except Exception:
         catchexcption(request)
         return JSONResponse(
             ExceptionResponse(traceback.format_exc().split('\n')[-2]))
Пример #26
0
def sendSmscode(request):
    try :
        source = request.META['HTTP_SOURCE']
        if 'HTTP_X_FORWARDED_FOR' in request.META:
            ip = request.META['HTTP_X_FORWARDED_FOR']
        else:
            ip = request.META['REMOTE_ADDR']
        if ip:
            if not checkIPAddressCanPass(ip):
                raise InvestError(code=3004,msg='单位时间内只能获取三次验证码')
        else:
            raise InvestError(code=3003)
        destination = request.data.get('mobile')
        areacode = request.data.get('areacode')
        now = datetime.datetime.now()
        start = now - datetime.timedelta(minutes=1)
        if MobileAuthCode.objects.filter(createTime__gt=start).filter(mobile=destination,is_deleted=False).exists():
            raise InvestError(code=3004)
        mobilecode = MobileAuthCode(mobile=destination)
        mobilecode.save()
        try:
            datasource = DataSource.objects.get(id=source)
        except DataSource.DoesNotExist:
            raise InvestError(8888, msg='未知来源码,请联系工作人员', detail='datasource不合法')
        varsdict = {'code': mobilecode.code, 'time': '30'}
        if areacode in [u'86', '86', 86, None]:
            projectsign = SMSCODE_projectsign.get(str(source), {}).get('in')
            if projectsign:
                response = xsendSms(destination, projectsign, varsdict)
            else:
                raise InvestError(30011, msg='短信发送失败', detail='没有建立相应短信模板')
        else:
            projectsign = SMSCODE_projectsign.get(str(source), {}).get('out')
            if projectsign:
                response = xsendInternationalsms('+%s'%areacode + destination, projectsign, varsdict)
            else:
                raise InvestError(30012, msg='短信发送失败', detail='没有建立相应短信模板')
        success = response.get('status',None)
        if success:
            response['smstoken'] = mobilecode.token
        else:
            raise InvestError(code=30011,msg='短信发送失败', detail=response)
        return JSONResponse(SuccessResponse(response))
    except InvestError as err:
        return JSONResponse(InvestErrorResponse(err))
    except Exception:
        catchexcption(request)
        return JSONResponse(ExceptionResponse(traceback.format_exc().split('\n')[-2]))
Пример #27
0
 def update(self, request, *args, **kwargs):
     try:
         data = request.data
         lang = request.GET.get('lang')
         instance = self.get_object()
         oldmanager = instance.manager
         data.pop('createuser', None)
         data.pop('datasource', None)
         if request.user.has_perm('BD.manageOrgBD'):
             pass
         elif request.user.has_perm('BD.user_manageOrgBD', instance):
             data = {
                 'bd_status':
                 data.get('bd_status', instance.bd_status_id),
                 'isimportant':
                 bool(data.get('isimportant', instance.isimportant))
             }
         else:
             raise InvestError(2009)
         with transaction.atomic():
             orgBD = OrgBDCreateSerializer(instance, data=data)
             if orgBD.is_valid():
                 neworgBD = orgBD.save()
                 oldmanager_id = data.get('manager', None)
                 if oldmanager_id and oldmanager_id != oldmanager.id:
                     add_perm('BD.user_manageOrgBD', neworgBD.manager,
                              neworgBD)
                     rem_perm('BD.user_manageOrgBD', oldmanager, neworgBD)
                     if request.user != neworgBD.manager:
                         sendmessage_orgBDMessage(
                             neworgBD,
                             receiver=neworgBD.manager,
                             types=['app', 'wenmsg', 'sms'],
                             sender=request.user)
             else:
                 raise InvestError(5004,
                                   msg='机构BD修改失败——%s' %
                                   orgBD.error_messages)
             return JSONResponse(
                 SuccessResponse(
                     returnDictChangeToLanguage(
                         OrgBDSerializer(neworgBD).data, lang)))
     except InvestError as err:
         return JSONResponse(InvestErrorResponse(err))
     except Exception:
         catchexcption(request)
         return JSONResponse(
             ExceptionResponse(traceback.format_exc().split('\n')[-2]))
Пример #28
0
 def create(self, request, *args, **kwargs):
     try:
         data = request.data
         lang = request.GET.get('lang')
         data['createuser'] = request.user.id
         data['datasource'] = request.user.datasource.id
         if request.user.has_perm('BD.manageMeetBD'):
             pass
         else:
             proj = data.get('proj', None)
             if proj:
                 projinstance = project.objects.get(
                     id=proj,
                     is_deleted=False,
                     datasource=request.user.datasource)
                 if request.user.has_perm('BD.user_addMeetBD'):
                     pass
                 elif request.user in [
                         projinstance.takeUser, projinstance.makeUser
                 ]:
                     pass
                 else:
                     raise InvestError(2009)
             else:
                 raise InvestError(2009)
         with transaction.atomic():
             meetBD = MeetingBDCreateSerializer(data=data)
             if meetBD.is_valid():
                 newMeetBD = meetBD.save()
                 if newMeetBD.manager:
                     add_perm('BD.user_manageMeetBD', newMeetBD.manager,
                              newMeetBD)
             else:
                 raise InvestError(5005,
                                   msg='会议BD创建失败——%s' %
                                   meetBD.error_messages)
             return JSONResponse(
                 SuccessResponse(
                     returnDictChangeToLanguage(
                         MeetingBDSerializer(newMeetBD).data, lang)))
     except InvestError as err:
         return JSONResponse(InvestErrorResponse(err))
     except Exception:
         catchexcption(request)
         return JSONResponse(
             ExceptionResponse(traceback.format_exc().split('\n')[-2]))
Пример #29
0
 def create(self, request, *args, **kwargs):
     data = request.data
     lang = request.GET.get('lang')
     timelineid = data.get('timeline', None)
     if timelineid:
         line = self.get_timeline(timelineid)
         if request.user.has_perm('timeline.admin_addlineremark'):
             pass
         elif request.user.has_perm(
                 'timeline.user_getline', line) or request.user in [
                     line.proj.takeUser, line.proj.makeUser
                 ]:
             pass
         else:
             raise InvestError(code=2009)
     else:
         raise InvestError(code=20072)
     data['createuser'] = request.user.id
     data['datasource'] = request.user.datasource.id
     try:
         with transaction.atomic():
             timeLineremarkserializer = TimeLineRemarkSerializer(data=data)
             if timeLineremarkserializer.is_valid():
                 timeLineremark = timeLineremarkserializer.save()
             else:
                 raise InvestError(code=20071,
                                   msg='data有误_%s\n%s' %
                                   (timeLineremarkserializer.error_messages,
                                    timeLineremarkserializer.errors))
             if timeLineremark.createuser:
                 add_perm('timeline.user_getlineremark',
                          timeLineremark.createuser, timeLineremark)
                 add_perm('timeline.user_changelineremark',
                          timeLineremark.createuser, timeLineremark)
                 add_perm('timeline.user_deletelineremark',
                          timeLineremark.createuser, timeLineremark)
             return JSONResponse(
                 SuccessResponse(
                     returnDictChangeToLanguage(
                         timeLineremarkserializer.data, lang)))
     except InvestError as err:
         return JSONResponse(InvestErrorResponse(err))
     except Exception:
         catchexcption(request)
         return JSONResponse(
             ExceptionResponse(traceback.format_exc().split('\n')[-2]))
Пример #30
0
 def retrieve(self, request, *args, **kwargs):
     try:
         lang = request.GET.get('lang')
         instance = self.get_object()
         if request.user.has_perm('dataroom.admin_getdataroom'):
             serializerclass = DataroomSerializer
         elif request.user.has_perm('dataroom.user_getdataroom', instance):
             serializerclass = DataroomSerializer
         else:
             raise InvestError(code=2009)
         serializer = serializerclass(instance)
         return JSONResponse(SuccessResponse(returnDictChangeToLanguage(serializer.data, lang)))
     except InvestError as err:
         return JSONResponse(InvestErrorResponse(err))
     except Exception:
         catchexcption(request)
         return JSONResponse(ExceptionResponse(traceback.format_exc().split('\n')[-2]))