def check_verify_code(request): try: #utils.logger.debug('check verification body %s', request) utils.logger.debug('check verification body: %s', request.body) utils.logger.debug('check verification post body: %s', request.POST) post_data = json.loads(request.body.decode('utf-8')) phone_num = post_data['mobile'] recv_code = post_data['code'] send_code = phone_verify_code.get(phone_num) data = {} data['has_investment'] = 0 utils.logger.debug('phone number: %s, code: %s', phone_num, recv_code) if send_code is not None and send_code == int(recv_code): if User.objects.filter(mobile=phone_num).exists() is False: # create a new user object for current phone number new_uobj = User.objects.create() new_uobj.mobile = phone_num new_uobj.save() else: uobj = User.objects.get(mobile=phone_num) uobj.save() # just for update active time if uobj.investment_set.count() > 0: data['has_investment'] = 1 return utils.return_success(data) else: return utils.return_error(403) #return HttpResponse(403) except Exception as e: utils.logger.debug('check verification fail: %s', str(e)) return utils.return_error(400)
def get_list(request): try: page_size = 10 page_id = request.GET.get('page') if page_id is None or int(page_id) < 0: page_id = 1 all_data = [] total_count = Project.objects.count() start = (int(page_id) - 1) * page_size end = start + page_size #projects = Project.objects.all()[start:end] projects = Project.objects.order_by('-is_top')[start:end] for p in projects: data = collect_project_info(p) if data['is_show'] == 1: # already ordered by is_top value all_data.append(data) return utils.return_success(all_data, total_count) except Exception as e: utils.logger.debug('get project list fail: %s', str(e)) return utils.return_error(400)
def get_detail(request): try: post_data = json.loads(request.body.decode('utf-8')) project_id = post_data['id'] response = {} response['follow'] = 0 if 'mobile' in post_data: phone_num = post_data['mobile'] uobj = User.objects.get(mobile=phone_num) if uobj.follow_projects.filter(id=project_id).exists(): response['follow'] = 1 p = Project.objects.get(id=project_id) #response = HttpResponse() desc = p.project_detail.content new_content = desc.replace( "src=\"/upload/upload/", "src=\"http://img.fang88.com/ng_server_upload/") #response.write(new_content) response['data'] = new_content return utils.return_success(response) except Exception as e: utils.logger.debug('get project detail fail: %s', str(e)) return utils.return_error(400)
def send_proposal(request): try: # send_mail的参数分别是 邮件标题,邮件内容,发件箱(settings.py中设置过的那个),收件箱列表(可以发送给多个人),失败静默(若发送失败,报错提示我们) send_mail('Subject here', 'Here is the message.', '*****@*****.**', ['*****@*****.**'], fail_silently=False) return utils.return_success({}) except Exception as e: utils.logger.debug('send proposal fail: %s', str(e)) return utils.return_error(400)
def get_user_projects_info(request): try: #page_id = request.POST.get('page') #phone_num = request.POST.get('mobile') post_data = json.loads(request.body.decode('utf-8')) phone_num = post_data['mobile'] page_id = post_data['page'] utils.logger.debug('user[%s] request projects info', phone_num) uobj = User.objects.get(mobile=phone_num) #followed_projects = uobj.follow_projects.all() total_count = uobj.follow_projects.count() # 10 projects for one page page_size = 10 if page_id is None or int(page_id) < 0: page_id = 1 full_info = {} # get followed projects projects_data = [] start = (int(page_id) - 1) * page_size end = start + page_size #projects = followed_projects[start:end] # execute raw sql to get ordered follow projects sql = 'select project_id from user_follow_projects where user_id=%s order by id desc limit %s, %s' cursor = connection.cursor() cursor.execute(sql, [uobj.id, start, page_size]) res = cursor.fetchone() utils.logger.debug('fetch user follow projects result %s', res) while res is not None: pid = res[0] p = Project.objects.get(id=pid) data = collect_project_info(p) data['follow'] = 1 projects_data.append(data) res = cursor.fetchone() full_info['projects'] = projects_data return utils.return_success(full_info, total_count) except Exception as e: utils.logger.debug('get user projects info fail: %s', str(e)) return utils.return_error(400)
def send_verify_code(request): try: phoneNumber = request.GET.get('mobile') # check phone, cn or us type = 'cn' # TODO if front-end not verify the phone number, back-end will verify again if len(phoneNumber) == 11: type = 'cn' elif len(phoneNumber) == 10: type = 'us' else: type = 'unknown' utils.logger.debug('type is %s', type) if type == 'unknown': return utils.return_error(400) # send msg send(type, phoneNumber) # return http response return utils.return_success({}) except Exception as e: utils.logger.debug("send verify code fail: %s", str(e)) return utils.return_error(400)
def send_email(data): try: message = '所属行业: ' + data['field'] + '\n' message += '融资情况: ' + data['invest'] + '\n' message += '公司注册情况: ' + data['register'] + '\n' message += '所需工位数量: ' + data['cubes'] + '\n' message += '联系电话: ' + data['mobile'] + '\n' message += 'BP链接: ' + data['oss_url'] + '\n' send_mail('入驻申请', message, '*****@*****.**', ['*****@*****.**'], fail_silently=False) return utils.return_success({}) except Exception as e: utils.logger.debug('send email fail: %s', str(e)) return utils.return_error(400)
def unfollow(request): try: #phone_num = request.POST.get('mobile') #pid = request.POST.get('project_id') post_data = json.loads(request.body.decode('utf-8')) phone_num = post_data['mobile'] pid = post_data['project_id'] utils.logger.debug('user[%s] unfollows project[id: %s]', phone_num, pid) uobj = User.objects.get(mobile=phone_num) pobj = Project.objects.get(id=pid) # add relation ship uobj.follow_projects.remove(pobj) return utils.return_success({}) except Exception as e: utils.logger.debug('unfollow fail: %s', str(e)) return utils.return_error(400)
def get_user_investments_info(request): try: #page_id = request.POST.get('page') #phone_num = request.POST.get('mobile') post_data = json.loads(request.body.decode('utf-8')) phone_num = post_data['mobile'] page_id = post_data['page'] utils.logger.debug('user[%s] request projects info', phone_num) uobj = User.objects.get(mobile=phone_num) total_count = uobj.investment_set.count() # 10 projects for one page page_size = 10 if page_id is None or int(page_id) < 0: page_id = 1 start = (int(page_id) - 1) * page_size end = start + page_size all_invests = uobj.investment_set.all()[start:end] full_info = {} invests_data = [] for invest in all_invests: data = {} data['estimate_yearly_return'] = get_yearly_return(invest.project)['yearly_return'] data['project_id'] = invest.project.id data['project_name'] = invest.project.project_name data['principal'] = invest.principal data['interest'] = invest.interest data['unit'] = invest.unit invests_data.append(data) full_info['investments'] = invests_data return utils.return_success(full_info, total_count) except Exception as e: utils.logger.debug('get user investments info fail: %s', str(e)) return utils.return_error(400)
def receive_proposal(request): try: utils.logger.debug('request is : %s', request.POST.get('data')) utils.logger.debug('request files is : %s', request.FILES) request_data = json.loads(request.POST.get('data')) utils.logger.debug('jsonfy request data is %s', request_data) data = {} data['field'] = request_data['field'] data['invest'] = request_data['invest'] data['register'] = request_data['register'] data['cubes'] = request_data['cubes'] data['mobile'] = request_data['mobile'] bp_name = request_data['bp_name'] utils.logger.debug('receive data is: %s', data) #bp_content = request.POST.get('bp_content') bp_content = request.FILES.get('files') utils.logger.debug('bp content is %s', bp_content) save_path = os.path.join(settings.MEDIA_ROOT, 'upload', bp_name) path = default_storage.save(save_path, ContentFile(bp_content.read())) utils.logger.debug('file saved to path: %s', path) # upload to oss cn target = 'grock_upload/' + oss2util.md5(path) + '.' + bp_name.split( '.')[-1] oss2util.uploadFileCN(path, target) # send email oss_url = 'http://img.fang88.com/' + target data['oss_url'] = oss_url return send_email(data) #return utils.return_success({}) except Exception as e: utils.logger.debug('receive proposal fail: %s', str(e)) return utils.return_error(400)