def record_browse(data): res = public_api.jsonParse( models.objects.TBrowseRec.filter(user=public_api.jsonParse( models.TUser.objects.filter( open_id=data['user_id']).values())[0]['user_id'], task=data['task_id']).values('count')) if res: models.objects.TBrowseRec.create(browse_id=str(uuid4(), user=data['user_id'], task=data['task_id'], count=res[0]['count'] + 1)) else: models.objects.TBrowseRec.create(browse_id=str( uuid4(), user=data['user_id'], task=data['task_id'], count=1))
def get_use_loc(request): try: today = datetime.date.today() user_city = list( map( format_use_rec_map, public_api.jsonParse( models.TUseRec.objects.filter( use_time__gte=today, use_time__lte=(today + datetime.timedelta(days=1))).values( 'use_id', 'user_id')))) city_name = set(map(lambda x: x[1], user_city)) geo_map = {} for item in city_name: res = requests.get(settings.MAP_API + item).text[27:-1] lng_lat = json.loads(res).get('result').get('location') geo_map[item] = [lng_lat.get('lng'), lng_lat.get('lat')] name_value = dict( collections.Counter(list(map(lambda x: x[1], user_city)))) count_data = [] for key, value in name_value.items(): count_data.append({'name': key, 'value': value}) return json.dumps({ 'code': 0, 'data': { 'geo_map': geo_map, 'count_data': count_data, 'max': max(list(name_value.values())) * 2 } }) except Exception as e: print(e) return json.dumps({'code': 1, 'data': '连接服务器失败'})
def get_regist_rec(request): try: today = datetime.datetime.today() end_date = datetime.datetime(today.year, today.month, today.day, 0, 0, 0) - datetime.timedelta(days=1) start_date = end_date - datetime.timedelta(days=6) date = get_date(start_date, end_date) regist_rec = list( map( fotmat_regist_rec, public_api.jsonParse( models.TUser.objects.filter( sign_up_time__gte=start_date, sign_up_time__lte=end_date).values( 'user_id', 'sign_up_time')))) num = [0 for i in range(7)] for item in regist_rec: # 如果当前日期不存在访问数据 if item in date: num[date.index(item)] += 1 return json.dumps({ 'code': 0, 'data': { 'date': date, 'data': num, 'max': max(num) * 2 } }) except Exception as e: print(e) return json.dumps({'code': 1, 'data': '连接服务器失败'})
def login(request): try: user_email = request.POST.get('user_email', '') user_passwd = request.POST.get('user_passwd', '') print(user_email, user_passwd) user_info = models.TUser.objects.filter( user_email=user_email, user_passwd=user_passwd) if user_info.count() == 1: user_info = list(map(format_user_info, public_api.jsonParse(user_info.values( 'user_id', 'user_email', 'user_name', 'user_gender', 'user_avatar_url', 'user_birth', 'user_location', 'user_introduce')))) request.session['user_id'] = user_info[0].get('user_id') return json.dumps({ 'code': 0, 'data': user_info }) else: return json.dumps({ 'code': 1, 'data': '登录失败,用户名或密码错误' }) except Exception as e: print(e) return json.dumps({ 'code': 1, 'data': '无法连接到服务器' })
def format_task_detail(item, browse_user_id): item['is_collected'] = [] print(browse_user_id) if browse_user_id: item['is_collected'] = public_api.jsonParse( models.TCollection.objects.filter( user=browse_user_id, task_id=item['task_id']).values('user_id')) item['deliver_info'] = public_api.jsonParse( models.TDeliverRec.objects.filter(user=browse_user_id, task=item['task_id']).values()) item['deliver_info'] = list(map(format_deliver_info, item['deliver_info'])) item['task_price'] = item['task_price'].to_eng_string() item['release_time'] = item['release_time'].strftime("%Y-%m-%d") item['end_time'] = item['end_time'].strftime("%Y-%m-%d") print(item) return item
def format_deliver_info(item): item['deliver_money'] = item['deliver_money'].to_eng_string() item['city_name'] = public_api.jsonParse( models.TCity.objects.filter( city_id=item['city_id']).values('city_name'))[0]['city_name'] del item['deliver_time'] del item['user_id'] return item
def format_news_comment(item): data = public_api.jsonParse( models.TUser.objects.filter(user_id=item['user_id']).values( 'user_id', 'user_name', 'user_avatar_url'))[0] data['comment_id'] = item['comment_id'] data['comment_time'] = item['comment_time'].strftime("%Y-%m-%d %H:%M:%S") data['comment_text'] = item['comment_text'] return data
def search_task(request): try: sort = json.loads(bytes.decode(request.body)).get('sort') res = public_api.jsonParse(models.TTask.objects.filter().values()) return json.dumps({'code': 0, 'data': res}) except Exception as e: print(e) return json.dumps({'code': 1, 'msg': '连接服务器失败'})
def get_news_comment(request): try: news_id = int(request.GET.get('_id')) page = int(request.GET.get('page', 0)) data = public_api.jsonParse( models.TComment.objects.filter( news_id=news_id)[page * 10:(page + 1) * 10].values()) data = list(map(format_news_comment, data)) return json.dumps({'code': 0, 'data': data}) except Exception as e: print(e) return json.dumps({'code': 1, 'data': '无法连接到服务器'})
def get_deliver_task(request): try: user_id = json.loads(bytes.decode(request.body)).get('user_id') print(user_id) deliver_ids = public_api.jsonParse( models.TDeliverRec.objects.filter(user=models.TUser.objects.get( open_id=user_id)).values('task', 'status')) print(deliver_ids) task_list = public_api.jsonParse( task_user_view.TaskUserView.objects.filter(task_id__in=list( map(lambda x: x['task'], deliver_ids))).values( 'task_id', 'task_title', 'task_price', 'post_num')) print(task_list) return json.dumps({ 'code': 0, 'data': list(map(format_deliver_task, task_list, deliver_ids)) }) except Exception as e: print(e) return json.dumps({'code': 1, 'msg': '连接服务器失败'})
def get_clerk_list(request): try: sort = res = public_api.jsonParse( models.TUserResume.objects.filter().values()) return json.dumps({ 'code': 0, 'data': res}) except: return json.dumps({ 'code': 1, 'msg': '连接服务器失败' })
def get_clerk_detail(request): try: clerk_id = json.loads(bytes.decode(request.body)).get('clerk_id') res = public_api.jsonParse( models.TUserResume.objects.filter(user=clerk_id).values()) return json.dumps({ 'code': 0, 'data': res}) except: return json.dumps({ 'code': 1, 'msg': '连接服务器失败' })
def get_resume_info(request): try: user_id = json.loads(bytes.decode( request.body)).get('user_id') flag = json.loads(bytes.decode( request.body)).get('flag') print(user_id, len(user_id) != 36) if len(user_id) != 28: user_resume_info = public_api.jsonParse(user_resume_view.UserResumeView.objects.filter( user_id=user_id).values()) else: user_resume_info = public_api.jsonParse(user_resume_view.UserResumeView.objects.filter( user_id=models.TUser.objects.filter(open_id=user_id).values('user_id')[0]['user_id']).values()) data = list(map(format_resume_info, user_resume_info, [flag])) print(data) return json.dumps({ 'code': 0, 'data': data}) except Exception as e: print(e) return json.dumps({ 'code': 1, 'msg': '连接服务器失败' })
def format_hot_news(item): mycol = settings.DB_CON['news'] data = public_api.jsonParse( mycol.find({'_id': item[0]}, { 'title': 1, 'from': 1, 'tag': 1, 'timestamp': 1 }))[0] data['title'] = '<a href="/news/' + \ str(item[0]) + '" target="tab">' + data['title'] + '</a>' data['read_num'] = item[1] data['time'] = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(data.get('timestamp'))) return data
def get_my_task(request): try: user_id = json.loads(bytes.decode(request.body)).get('user_id') print(user_id) task_list = public_api.jsonParse( task_user_view.TaskUserView.objects.filter( user_id=models.TUser.objects.filter( open_id=user_id).values('user_id')[0]['user_id']).values( 'task_id', 'task_title', 'task_price', 'post_num')) print(task_list) return json.dumps({ 'code': 0, 'data': list(map(format_my_task, task_list)) }) except Exception as e: print(e) return json.dumps({'code': 1, 'msg': '连接服务器失败'})
def get_comment(request): try: user_id = request.GET.get('user_id') page = int(request.GET.get('page', 0)) obj = models.TComment.objects data = public_api.jsonParse( obj.filter(user=models.TUser.objects.get( user_id=user_id))[page * 10:(page + 1) * 10].values()) return json.dumps({ 'code': 0, 'data': list(filter(None, list(map(format_comment_rec, data)))) }) except Exception as e: print(e) return json.dumps({'code': 1, 'data': '无法连接到服务器'})
def get_my_collection(request): try: user_id = models.TUser.objects.filter(open_id=json.loads(bytes.decode( request.body)).get('user_id')).values('user_id')[0]['user_id'] print(user_id) collect_info = public_api.jsonParse(user_collection_view.UserCollectionView.objects.filter( user_id=user_id).values()) print(collect_info) return json.dumps({ 'code': 0, 'data': list(map(format_collection_info, collect_info))}) except Exception as e: print(e) return json.dumps({ 'code': 1, 'msg': '连接服务器失败' })
def get_info(request): try: user_id = json.loads(bytes.decode(request.body)).get('user_id') res = public_api.jsonParse( models.TUser.objects.filter(open_id=user_id).values()) if res: return json.dumps({ 'code': 0, 'data': res}) else: return json.dumps({ 'code': 0, 'data': []}) except Exception as e: print(e) return json.dumps({ 'code': 1, 'msg': '连接服务器失败' })
def get_task_detail(request): try: task_id = json.loads(bytes.decode(request.body)).get('task_id') user_id = json.loads(bytes.decode(request.body)).get('user_id') if user_id != '': user_id = models.TUser.objects.get(open_id=user_id) models.TBrowseRec.objects.create( user=user_id, task=models.TTask.objects.get(task_id=task_id)) res = public_api.jsonParse( task_user_view.TaskUserView.objects.filter( task_id=task_id).values()) return json.dumps({ 'code': 0, 'data': list(map(format_task_detail, res, [user_id]))[0] }) except Exception as e: print(e) return json.dumps({'code': 1, 'msg': '连接服务器失败'})
def get_recommend_task(request): try: now = datetime.datetime.now() page = json.loads(bytes.decode(request.body)).get('page') city_id = json.loads(bytes.decode(request.body)).get('city_id') print(page) if city_id == 0: res = task_user_view.TaskUserView.objects.filter( end_time__gte=now)[page * 10:(page + 1) * 10] else: res = task_user_view.TaskUserView.objects.filter( city_id=city_id, end_time__gte=now)[page * 10:(page + 1) * 10] return json.dumps({ 'code': 0, 'data': list(map(format_task_list, public_api.jsonParse(res.values()))) }) except Exception as e: print(e) return json.dumps({'code': 1, 'msg': '连接服务器失败'})
def get_use_rec(request): try: start_date = datetime.datetime.strptime(request.POST.get('start_date'), '%Y-%m-%d') end_date = datetime.datetime.strptime(request.POST.get('end_date'), '%Y-%m-%d') if (end_date - start_date).days > 0 and (end_date - start_date).days < 32: date = get_date(start_date, end_date) use_rec = list( map( format_use_rec, public_api.jsonParse( models.TUseRec.objects.filter( use_time__gte=start_date, use_time__lte=end_date).values( 'use_id', 'use_time')))) num = [0 for i in range(len(date))] for item in use_rec: # 如果当前日期不存在访问数据 if item in date: num[date.index(item)] += 1 return json.dumps({ 'code': 0, 'data': { 'date': date, 'data': num, 'max': max(num) * 2 } }) elif (end_date - start_date).days > 31: return json.dumps({'code': 1, 'data': '时间段最多不能超过一个月'}) else: return json.dumps({'code': 1, 'data': '起始日期不能大于结束日期'}) except Exception as e: print(e) return json.dumps({'code': 1, 'data': '连接服务器失败'})
def get_recommend_list(request): try: user_id = request.GET.get('user_id') page = int(request.GET.get('page')) MYCOL = settings.DB_CON['news'] if user_id != '-1' and user_id: obj = models.TRecommend.objects obj = obj.order_by("-time") obj = obj.order_by("-rating") new_ids = list( map( lambda x: x['product'], public_api.jsonParse( obj.filter(user=models.TUser.objects.get( user_id=user_id))[page * 10:(page + 1) * 10].values('product')))) if not new_ids: return json.dumps({ 'code': 0, 'data': list( MYCOL.aggregate([{ '$project': { 'title': 1, 'imageurls': 1, 'tag': 1, 'timestamp': 1, 'from': 1 } }, { '$sort': { 'timestamp': -1 } }, { '$sample': { 'size': 10 } }])) }) else: res = [] for new_id in new_ids: news = list( MYCOL.aggregate([{ '$match': { '_id': new_id } }, { '$project': { 'title': 1, 'imageurls': 1, 'tag': 1, 'timestamp': 1, 'from': 1 } }, { '$sort': { 'timestamp': -1 } }, { '$sample': { 'size': 10 } }])) if not news: delete_news(new_id) else: res.extend(news) return json.dumps({'code': 0, 'data': res}) else: return json.dumps({ 'code': 0, 'data': list( MYCOL.aggregate([{ '$project': { 'title': 1, 'imageurls': 1, 'tag': 1, 'timestamp': 1, 'from': 1 } }, { '$sort': { 'timestamp': -1 } }, { '$sample': { 'size': 10 } }])) }) except Exception as e: print(e) return json.dumps({'code': 1, 'data': '无法连接到服务器'})
def get_language_list(request): try: res = public_api.jsonParse(models.TLanguage.objects.filter().values()) return json.dumps({'code': 0, 'data': res}) except: return json.dumps({'code': 1, 'msg': '连接服务器失败'})
def get_resume_list(request): try: city_id = json.loads(bytes.decode(request.body)).get('city_id') sort = json.loads(bytes.decode(request.body)).get('sort') print(sort, city_id, sort['skill_id']) obj = user_resume_view.UserResumeView.objects # 最新发布 if sort['sort_id'] == 1: obj = obj.order_by("expect_salary") elif sort['sort_id'] == 2: obj = obj.order_by("-expect_salary") elif sort['sort_id'] == 3: obj = obj.order_by("work_years") elif sort['sort_id'] == 4: obj = obj.order_by("-work_years") if sort['skill_id'] == -1: if city_id == 0: res = obj.filter( Q(skill_des__icontains=sort['keyword']) | Q(occupation__icontains=sort['keyword']) | Q(experience_des__icontains=sort['keyword']) | Q(user_nickname__icontains=sort['keyword']) )[sort['page'] * 10:(sort['page'] + 1) * 10] else: res = obj.filter( Q(skill_des__icontains=sort['keyword']) | Q(occupation__icontains=sort['keyword']) | Q(experience_des__icontains=sort['keyword']) | Q(user_nickname__icontains=sort['keyword'])).filter( city_id=city_id)[sort['page'] * 10:(sort['page'] + 1) * 10] else: if city_id == 0: res = obj.filter( Q(skill_des__icontains=sort['keyword']) | Q(occupation__icontains=sort['keyword']) | Q(experience_des__icontains=sort['keyword']) | Q(user_nickname__icontains=sort['keyword'])).filter( Q(skill_lables__icontains=str( sort['skill_id'])))[sort['page'] * 10:(sort['page'] + 1) * 10] else: res = obj.filter( Q(skill_des__icontains=sort['keyword']) | Q(skill_lables=str(sort['skill_id'])) | Q(occupation__icontains=sort['keyword']) | Q(experience_des__icontains=sort['keyword']) | Q(user_nickname__icontains=sort['keyword'])).filter( Q(skill_lables__icontains=str(sort['skill_id'])) ).filter(city_id=city_id)[sort['page'] * 10:(sort['page'] + 1) * 10] return json.dumps({ 'code': 0, 'data': list( map( format_resume_list, public_api.jsonParse( res.values('user_id', 'user_avatar', 'occupation', 'user_nickname', 'expect_salary', 'work_years', 'city_name')))) }) except Exception as e: print(e) return json.dumps({'code': 1, 'msg': '连接服务器失败'})
def get_task_list(request): try: now = datetime.datetime.now() user_id = models.TUser.objects.get( open_id=json.loads(bytes.decode(request.body)).get('user_id')) city_id = json.loads(bytes.decode(request.body)).get('city_id') sort = json.loads(bytes.decode(request.body)).get('sort') print(sort, user_id) if sort['keyword']: models.TSearchRec.objects.create(user=user_id, keyword=sort['keyword']) obj = task_user_view.TaskUserView.objects # 最新发布 if sort['sort_id'] == 1: obj = obj.order_by("-release_time") elif sort['sort_id'] == 2: obj = obj.order_by("-task_price") elif sort['sort_id'] == 3: obj = obj.order_by("task_price") elif sort['sort_id'] == 4: obj = obj.order_by("-post_num") if sort['skill_id'] == -1 and sort['language_id'] == 0: if city_id == 0: res = obj.filter( end_time__gte=now, task_title__icontains=sort['keyword'])[sort['page'] * 10:(sort['page'] + 1) * 10] else: res = obj.filter( city_id=city_id, end_time__gte=now, task_title__icontains=sort['keyword'])[sort['page'] * 10:(sort['page'] + 1) * 10] elif sort['skill_id'] != -1 and sort['language_id'] == 0: if city_id == 0: res = obj.filter( skill_id=sort['skill_id'], end_time__gte=now, task_title__icontains=sort['keyword'])[sort['page'] * 10:(sort['page'] + 1) * 10] else: res = obj.filter( city_id=city_id, end_time__gte=now, skill_id=sort['skill_id'], task_title__icontains=sort['keyword'])[sort['page'] * 10:(sort['page'] + 1) * 10] elif sort['skill_id'] == -1 and sort['language_id'] != 0: if city_id == 0: res = obj.filter( language_id=sort['language_id'], end_time__gte=now, task_title__icontains=sort['keyword'])[sort['page'] * 10:(sort['page'] + 1) * 10] else: res = obj.filter( city_id=city_id, end_time__gte=now, language_id=sort['language_id'], task_title__icontains=sort['keyword'])[sort['page'] * 10:(sort['page'] + 1) * 10] elif sort['skill_id'] != -1 and sort['language_id'] != 0: if city_id == 0: res = obj.filter( skill_id=sort['skill_id'], end_time__gte=now, language_id=sort['language_id'], task_title__icontains=sort['keyword'])[sort['page'] * 10:(sort['page'] + 1) * 10] else: res = obj.filter( city_id=city_id, end_time__gte=now, skill_id=sort['skill_id'], language_id=sort['language_id'], task_title__icontains=sort['keyword'])[sort['page'] * 10:(sort['page'] + 1) * 10] return json.dumps({ 'code': 0, 'data': list(map(format_task_list, public_api.jsonParse(res.values()))) }) except Exception as e: print(e) return json.dumps({'code': 1, 'msg': '连接服务器失败'})