Ejemplo n.º 1
0
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))
Ejemplo n.º 2
0
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': '连接服务器失败'})
Ejemplo n.º 3
0
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': '连接服务器失败'})
Ejemplo n.º 4
0
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': '无法连接到服务器'
        })
Ejemplo n.º 5
0
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
Ejemplo n.º 6
0
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
Ejemplo n.º 7
0
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
Ejemplo n.º 8
0
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': '连接服务器失败'})
Ejemplo n.º 9
0
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': '无法连接到服务器'})
Ejemplo n.º 10
0
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': '连接服务器失败'})
Ejemplo n.º 11
0
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': '连接服务器失败'
        })
Ejemplo n.º 12
0
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': '连接服务器失败'
        })
Ejemplo n.º 13
0
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': '连接服务器失败'
        })
Ejemplo n.º 14
0
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
Ejemplo n.º 15
0
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': '连接服务器失败'})
Ejemplo n.º 16
0
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': '无法连接到服务器'})
Ejemplo n.º 17
0
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': '连接服务器失败'
        })
Ejemplo n.º 18
0
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': '连接服务器失败'
        })
Ejemplo n.º 19
0
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': '连接服务器失败'})
Ejemplo n.º 20
0
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': '连接服务器失败'})
Ejemplo n.º 21
0
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': '连接服务器失败'})
Ejemplo n.º 22
0
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': '无法连接到服务器'})
Ejemplo n.º 23
0
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': '连接服务器失败'})
Ejemplo n.º 24
0
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': '连接服务器失败'})
Ejemplo n.º 25
0
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': '连接服务器失败'})