예제 #1
0
    def post(self):
        data = copy.deepcopy(dataInit)
        myFile = request.files.get("file", None)
        index = force_int(request.values.get('index', 0))
        type = force_int(request.values.get("type", 0))
        if not myFile:
            data["meta"]["message"] = "请上传图片文件"
            data["meta"]["status_code"] = 400
            return data
        if myFile.mimetype not in ["image/jpeg", "image/png", "image/jpg"]:
            data["meta"]["message"] = "上传图片文件的格式有误"
            data["meta"]["status_code"] = 400
            return data
        if type not in list(map(lambda x: x["id"], intelligent_category())):
            data["meta"]["message"] = "请选择正确的设计类型"
            data["meta"]["status_code"] = 400
            return data
        from app.lib.cyclegan.intelligent import intelligent

        res, base64_str = intelligent(image=myFile, index=index, type=type)
        if not res:
            data["meta"]["message"] = base64_str
            data["meta"]["status_code"] = 500
            return data
        else:
            data["data"] = {
                'img': base64_str,
                'index': index,
                'all_index': [0, 1, 2, 3, 4, 5]
            }
        return jsonify(**data)
예제 #2
0
    def post(self):
        data = copy.deepcopy(dataInit)
        i = force_int(request.values.get("i", 0))
        d = force_int(request.values.get('d', 0))
        seed = force_int(request.values.get("seed", 0))

        img_data, seed = py_sample("l", seed, i=i, d=d)
        data["data"] = {
            'img': img_data,
            'seed': seed,
        }
        return jsonify(**data)
예제 #3
0
def design_conf_list():
    meta = {
        'title': '设计公司配置管理',
        'css_nav_sub_design_conf': 'active',
        'css_nav_design': 'active'
    }
    query = {}
    page = force_int(request.args.get('page', 1))
    per_page = force_int(request.args.get('per_page', 100))
    status = force_int(request.args.get('status', 0))
    deleted = force_int(request.args.get('deleted', 0))

    t = force_int(request.args.get('t', 1), 1)
    q = request.args.get('q', '')

    if q:
        if t == 1:
            query['mark'] = q.strip()
        if t == 2:
            query['name'] = {"$regex": q.strip()}

    if status == -1:
        meta['css_disable'] = 'active'
        query['status'] = 0
    if status == 1:
        query['status'] = 1
        meta['css_enable'] = 'active'
    else:
        meta['css_all'] = 'active'

    query['deleted'] = deleted

    page_url = url_for('admin.design_conf_list',
                       page="#p#",
                       q=q,
                       t=t,
                       status=status)

    data = DesignConf.objects(**query).order_by('-created_at').paginate(
        page=page, per_page=per_page)
    total_count = DesignConf.objects(**query).count()

    # 过滤数据
    for i, d in enumerate(data.items):
        pass

    meta['data'] = data.items

    pager = Pager(page, per_page, total_count, page_url)
    meta['pager'] = pager.render_view()

    return render_template('admin/design_conf/list.html', meta=meta)
예제 #4
0
def product_fetch_count():

    query = {}
    site_from = request.values.get('site_from', 0)
    if site_from != 0:
        query['site_from'] = force_int(site_from)

    count = Product.objects(**query).count()
    return jsonify(code=0, message='success!', data={ 'count': count })
예제 #5
0
def brand_list():
    meta = metaInit.copy()
    query = {}
    page = force_int(request.args.get('page', 1))
    per_page = force_int(request.args.get('per_page', 100))
    status = force_int(request.args.get('status', 0))
    deleted = force_int(request.args.get('deleted', 0))
    kind = force_int(request.args.get('kind', 0))

    t = force_int(request.args.get('t', 1), 1)
    q = request.args.get('q', '')

    if q:
        if t==1:
            query['_id'] = force_int(q)
        if t==2:
            query['name'] = {"$regex": q.strip()}

    if status == -1:
        meta['css_disable'] = 'active'
        query['status'] = 0
    if status == 1:
        query['status'] = 1
        meta['css_enable'] = 'active'
    else:
        pass

    if deleted == 1:
        query['deleted'] = 1
        meta['css_deleted'] = 'active'
    else:
        query['deleted'] = 0

    if not status and not deleted:
        meta['css_all'] = 'active'
    else:
        meta['css_all'] = ''

    page_url = url_for('admin.brand_list', page="#p#", q=q, t=t, kind=kind, status=status)

    data = Brand.objects(**query).order_by('-created_at').paginate(page=page, per_page=per_page)
    total_count = Brand.objects(**query).count()

    # 过滤数据
    for i, d in enumerate(data.items):
        data.items[i].cover = d.cover()
        data.items[i].user = d.user()

    meta['data'] = data.items
    meta['total_count'] = total_count

    pager = Pager(page, per_page, total_count, page_url)
    meta['pager'] = pager.render_view()

    return render_template('admin/brand/list.html', meta=meta)
예제 #6
0
def design_company_view():
    number = force_int(request.args.get('number', None))
    if not number:
        return jsonify(code=3001, message='编号不存在!')

    design_company = DesignCompany.objects(number=number).first()
    if not design_company:
        return jsonify(code=3002, message='公司不存在!')

    design_company._id = str(design_company._id)
    design_company.tags_label = ','.join(design_company.tags)

    return jsonify(code=0, message='success!', data=design_company)
예제 #7
0
 def post(self):
     data = copy.deepcopy(dataInit)
     myFile = request.files.get("file", None)
     type = force_int(request.values.get("type", 1))
     index = force_int(request.values.get('index', 0))
     img = request.form.get('image_base64', '')
     img = img.replace("data:image/jpeg;base64,",
                       "").replace("data:image/png;base64,", "")
     if not myFile and not img:
         data["meta"]["message"] = "图片参数错误"
         data["meta"]["status_code"] = 400
         return data
     if myFile and myFile.mimetype not in [
             "image/jpeg", "image/png", "image/jpg"
     ]:
         data["meta"]["message"] = "上传图片文件的格式有误"
         data["meta"]["status_code"] = 400
         return data
     if type not in list(map(lambda x: x["id"], draw_generate_category())):
         data["meta"]["message"] = "请选择正确的生成类型"
         data["meta"]["status_code"] = 400
         return data
     from app.lib.cyclegan.draw_generate import draw_generate
     res, base64_str = draw_generate(base64_data=img,
                                     image=myFile,
                                     index=index,
                                     type=type)
     if not res:
         data["meta"]["message"] = base64_str
         data["meta"]["status_code"] = 500
         return data
     else:
         data["data"] = {
             'img': base64_str,
             'index': index,
             'all_index': [0, 1, 2, 3]
         }
     return jsonify(**data)
예제 #8
0
def user_list():
    meta = {
        'title': '用户管理',
        'css_nav_sub_user': '******',
        'css_nav_system': 'active'
    }

    query = {}
    page = int(request.args.get('page', 1))
    per_page = int(request.args.get('per_page', 100))
    status = int(request.args.get('status', 0))

    t = int(request.args.get('t', 1))
    q = request.args.get('q', '')

    if q:
        if t == 1:
            query['_id'] = force_int(q.strip(), 0)
        if t == 2:
            query['account'] = {"$regex": q.strip()}
        if t == 3:
            query['phone'] = q.strip()
        if t == 4:
            query['email'] = q.strip()

    if status == -1:
        meta['css_disable'] = 'active'
        query['status'] = 0
    elif status == 1:
        query['status'] = 1
        meta['css_verify'] = 'active'
    elif status == 5:
        query['status'] = 5
        meta['css_success'] = 'active'
    else:
        meta['css_all'] = 'active'

    page_url = url_for('admin.user_list', page="#p#", q=q, t=t, status=status)
    data = User.objects(**query).order_by('-created_at').paginate(
        page=page, per_page=per_page)
    total_count = User.objects(**query).count()
    meta['data'] = data.items
    meta['total_count'] = total_count
    pager = Pager(page, per_page, total_count, page_url)
    meta['pager'] = pager.render_view()

    return render_template('admin/user/list.html', meta=meta)
예제 #9
0
def brand_submit():
    meta = metaInit.copy()
    id = force_int(request.args.get('id', None))
    meta['data'] = None
    meta['is_edit'] = False
    if id:
        item = Brand.objects(_id=id).first()
        if not item:
            return jsonify(success=False, message='内容不存在!')
        meta['data'] = item
        meta['is_edit'] = True

    form = SaveForm()

    meta['referer_url'] = request.environ.get('HTTP_REFERER') if request.environ.get('HTTP_REFERER') else ''
    
    return render_template('admin/brand/submit.html', meta=meta, form=form)
예제 #10
0
 def post(self):
     data = copy.deepcopy(dataInit)
     type = force_int(request.values.get("type", 1))
     img_1 = request.values.get('image_1_base64', '')
     img_2 = request.values.get('image_2_base64', '')
     img_1 = img_1.replace("data:image/jpeg;base64,",
                           "").replace("data:image/png;base64,", "")
     img_2 = img_2.replace("data:image/jpeg;base64,",
                           "").replace("data:image/png;base64,", "")
     file_name1 = request.values.get('file_name1', '')
     file_name2 = request.values.get('file_name2', '')
     if not img_1 and not img_2:
         data["meta"]["message"] = "图片参数错误"
         data["meta"]["status_code"] = 400
         return data
     if not file_name1.endswith('_origin.jpg') or not file_name2.endswith(
             '_origin.jpg'):
         if type == 2:
             try:
                 from app.lib.stylegan_pytorch.projector import run_projection
                 image_base64_1, image_base64_2, image_base64_3, image_base64_4 = run_projection(
                     img_1, img_2, type)
                 data["data"] = [
                     image_base64_1, image_base64_2, image_base64_3,
                     image_base64_4
                 ]
             except Exception as e:
                 data["meta"]["message"] = str(e)
                 data["meta"]["status_code"] = 500
     else:
         type = file_name1.split('_')[0]
         group = file_name1.split('_')[1]
         try:
             for i in range(1, 5):
                 img = pil_to_base64(
                     'static/image/result/{}/{}_{}_result.jpg'.format(
                         type, group, i))
                 data["data"].append(img)
         except:
             data["data"] = []
     return jsonify(**data)
예제 #11
0
def design_case_list():
    meta = {
        'title': '设计作品管理',
        'css_nav_sub_design_case': 'active',
        'css_nav_design': 'active'
    }
    query = {}
    page = force_int(request.args.get('page', 1))
    per_page = force_int(request.args.get('per_page', 100))
    status = force_int(request.args.get('status', 0))
    deleted = force_int(request.args.get('deleted', 0))
    prize_label = request.args.get('prize_label', '')
    t = force_int(request.args.get('t', 1), 1)
    q = request.args.get('q', '')

    if q:
        if t == 1:
            try:
                query['_id'] = ObjectId(q.strip())
            except (Exception) as e:
                query['_id'] = ''
        if t == 2:
            query['title'] = {"$regex": q.strip()}
        if t == 3:
            query['target_id'] = q.strip()

    if prize_label:
        query['prize_label'] = prize_label

    if status == -1:
        meta['css_disable'] = 'active'
        query['status'] = 0
    if status == 1:
        query['status'] = 1
        meta['css_enable'] = 'active'
    else:
        meta['css_all'] = 'active'

    query['deleted'] = deleted

    page_url = url_for('admin.design_case_list',
                       page="#p#",
                       q=q,
                       t=t,
                       prize_label=prize_label,
                       status=status)

    data = DesignCase.objects(**query).order_by('-created_at').paginate(
        page=page, per_page=per_page)
    total_count = DesignCase.objects(**query).count()

    # 过滤数据
    for i, d in enumerate(data.items):
        pass

    meta['data'] = data.items
    meta['total_count'] = total_count

    pager = Pager(page, per_page, total_count, page_url)
    meta['pager'] = pager.render_view()

    return render_template('admin/design_case/list.html', meta=meta)
예제 #12
0
def column_zone_list():
    meta = metaInit.copy()
    query = {}
    page = force_int(request.args.get('page', 1))
    per_page = force_int(request.args.get('per_page', 100))
    status = force_int(request.args.get('status', 0))
    deleted = force_int(request.args.get('deleted', 0))
    kind = force_int(request.args.get('kind', 0))

    t = force_int(request.args.get('t', 1), 1)
    q = request.args.get('q', '')

    if q:
        if t == 1:
            query['_id'] = ObjectId(q.strip())
        if t == 2:
            query['title'] = q.strip()
        if t == 3:
            query['column_zone_id'] = force_int(q.strip())
    if kind:
        if kind == 1:
            meta['css_industry'] = 'active'
        elif kind == 2:
            meta['css_plane'] = 'active'
        meta['css_all'] = ''
        query['kind'] = kind

    if status == -1:
        meta['css_disable'] = 'active'
        query['status'] = 0
    if status == 1:
        query['status'] = 1
        meta['css_enable'] = 'active'
    else:
        pass

    if deleted == 1:
        query['deleted'] = 1
        meta['css_deleted'] = 'active'
    else:
        query['deleted'] = 0

    if not status and not deleted:
        meta['css_all'] = 'active'
    else:
        meta['css_all'] = ''

    page_url = url_for('admin.column_zone_list',
                       page="#p#",
                       q=q,
                       t=t,
                       kind=kind,
                       status=status,
                       deleted=deleted)
    data = ColumnZone.objects(**query).order_by('-created_at').paginate(
        page=page, per_page=per_page)

    total_count = ColumnZone.objects(**query).count()

    meta['data'] = data.items
    meta['total_count'] = total_count

    pager = Pager(page, per_page, total_count, page_url)
    meta['pager'] = pager.render_view()

    return render_template('admin/column_zone/list.html', meta=meta)
예제 #13
0
def design_record_list():

    query = {}
    meta = {}
    ids = request.args.get('ids', '')
    d3in_id = request.args.get('d3in_id', '')
    page = int(request.args.get('page', 1))
    per_page = int(request.args.get('per_page', 10))
    status = int(request.args.get('status', 1))
    deleted = force_int(request.args.get('deleted', 0))
    sort = force_int(request.args.get('sort', 0))
    mark = request.args.get('mark', '')
    no = int(request.args.get('no', 0))

    if ids:
        # query['_id__in'] = list(map(lambda x: ObjectId(x), ids.split(',')))
        isArr = []
        for d in ids.split(','):
            try:
                id = ObjectId(d)
                isArr.append(id)
            except (Exception) as e:
                pass
        query['_id__in'] = isArr
    else:
        number = ''
        if d3in_id:
            designCompany = DesignCompany.objects(
                d3ing_id=int(d3in_id)).first()
            if designCompany:
                number = str(designCompany['number'])
            if not number:
                return jsonify(code=0,
                               message='success',
                               data={
                                   'rows': [],
                                   'total_count': 0,
                                   'page': 0,
                                   'per_page': 0
                               })
            query['number'] = number

        if status == -1:
            query['status'] = 0
        if status == 1:
            query['status'] = 1
        else:
            pass

        if not mark or not no:
            return jsonify(code=3001, message='缺少请求参数!')

        query['mark'] = mark
        query['no'] = no

    query['deleted'] = deleted

    #current_app.logger.debug(query)

    # 排序
    sortVal = '-ave_score'
    nSortVal = '-ave_score'
    if sort:
        if sort == 1:
            sortVal = '-base_average'
        elif sort == 2:
            sortVal = '-business_average'
        elif sort == 3:
            sortVal = '-innovate_average'
        elif sort == 4:
            sortVal = '-design_average'
        elif sort == 5:
            sortVal = '-effect_average'
        elif sort == 6:
            sortVal = '-credit_average'

    if sortVal == nSortVal:
        nSortVal = '-base_average'

    try:
        fields = [
            '_id', 'mark', 'no', 'ave_score', 'base_average',
            'business_average', 'credit_average', 'design_average',
            'effect_average', 'innovate_average', 'ave_score', 'type',
            'number', 'rank', 'deleted', 'status'
        ]
        cFields = [
            '_id', 'name', 'logo_url', 'd3ing_id', 'province', 'city',
            'description', 'scope_business'
        ]
        data = DesignRecord.objects(**query).order_by(
            sortVal, nSortVal).paginate(page=page, per_page=per_page)
        total_count = DesignRecord.objects(**query).count()

        # 过滤数据
        rows = []
        for i, d in enumerate(data.items):
            row = filter_key(fields, d)
            row['_id'] = str(row['_id'])
            row['design_company'] = {}
            row['evaluates'] = []
            designCompany = DesignCompany.objects(number=int(d.number)).first()
            if designCompany:
                # 系统自动生成评价
                row['evaluates'] = auto_evaluate(d, designCompany)
                designCompany['_id'] = str(designCompany['_id'])
                newCompany = filter_key(cFields, designCompany)
                row['design_company'] = newCompany
            rows.append(row)

        meta['rows'] = rows
    except (Exception) as e:
        current_app.logger.debug(str(e))
        meta['rows'] = []
        total_count = 0

    meta['total_count'] = total_count
    meta['page'] = page
    meta['per_page'] = per_page

    return jsonify(code=0, message='success!', data=meta)
예제 #14
0
def push_product(**kwargs):

    data = {}
    growth_data = {}
    url = kwargs.get('url', None)
    if not url:
        return {'success': False, 'message': '抓取链接不存在!'}

    site_from = force_int(kwargs.get('site_from',
                                     0))  # 站点来源(从站点配置获取) eg. 1.京东;2.淘宝;3.一条;
    site_type = force_int(kwargs.get('site_type',
                                     0))  # 站点模式(从站点配置获取) eg. 1.销售;2.众筹;3.--
    title = kwargs.get('title', None)  # 名称

    if not site_from:
        return {'success': False, 'message': '站点来源不能为空!'}
    if not site_type:
        return {'success': False, 'message': '站点模式不能为空!'}
    if not title:
        return {'success': False, 'message': '产品名称不能为空!'}

    data['url'] = url
    data['site_from'] = growth_data['site_from'] = site_from
    data['site_type'] = growth_data['site_type'] = site_type
    data['title'] = title

    sub_title = kwargs.get('sub_title', None)  # 副名称
    if sub_title:
        data['sub_title'] = sub_title

    out_number = kwargs.get('out_number', None)  # 站外编号(skuID)
    if out_number:
        data['out_number'] = out_number

    resume = kwargs.get('resume', None)
    if resume:
        data['resume'] = resume

    content = kwargs.get('content', None)
    if content:
        data['content'] = content

    tags = kwargs.get('tags', None)  # 标签(多个用,分隔)
    if tags:
        data['tags'] = tags

    cover_url = kwargs.get('cover_url', None)  # 封面图
    if cover_url:
        data['cover_url'] = cover_url

    o_cover_url = kwargs.get('o_cover_url', None)  # 原封面图地址
    if o_cover_url:
        data['o_cover_url'] = o_cover_url

    brand = {}
    brand_name = kwargs.get('brand_name', None)  # 品牌名称
    if brand_name:
        brand['name'] = brand_name

    brand_contact = kwargs.get('brand_contact', None)  # 品牌联系方式

    if brand_contact:
        brand['contact'] = brand_contact

    brand_address = kwargs.get('brand_address', None)  # 品牌地址
    if brand_address:
        brand['address'] = brand_address

    if brand:
        data['brand'] = brand

    category_tags = kwargs.get('category_tags', None)  # 分类(多个用,分隔)
    if category_tags:
        data['category_tags'] = category_tags

    info = {}
    info_name = kwargs.get('info_name', None)  # 众筹发起人
    if info_name:
        info['name'] = info_name

    info_demand = kwargs.get('info_demand', None)  # 众筹标准
    if info_demand:
        info['demand'] = info_demand

    info_rate = force_float_2(kwargs.get('info_rate', 0))  # 众筹进度(百分比/100)
    if info_rate:
        info['rate'] = info_rate

    info_address = kwargs.get('info_address', None)  # 众筹公司地址
    if info_address:
        info['address'] = info_address

    info_contact = kwargs.get('info_contact', None)  # 众筹公司联系方式
    if info_contact:
        info['contact'] = info_contact

    info_time = kwargs.get('info_time', None)  # 众筹公司工作时间
    if info_time:
        info['time'] = info_time

    info_last_time = kwargs.get('info_last_time', None)  # 众筹公司工作时间
    if info_last_time:
        info['last_time'] = info_last_time

    if info:
        data['info'] = info

    rate = force_float_2(kwargs.get('rate', 0))  # 产品评分
    if rate:
        data['rate'] = growth_data['rate'] = rate

    cost_price = force_float_2(kwargs.get('cost_price', 0))  # 成本价
    if cost_price:
        data['cost_price'] = growth_data['cost_price'] = cost_price

    sale_price = force_float_2(kwargs.get('sale_price', 0))  # 销售价格
    if sale_price:
        data['sale_price'] = growth_data['sale_price'] = sale_price

    total_price = force_float_2(kwargs.get('total_price', 0))  # 品牌地址
    if total_price:
        data['total_price'] = growth_data['total_price'] = total_price

    love_count = force_int(kwargs.get('love_count', 0))  # 喜欢/点赞数
    if love_count:
        data['love_count'] = growth_data['love_count'] = love_count

    favorite_count = force_int(kwargs.get('favorite_count', 0))  # 收藏/订阅数
    if favorite_count:
        data['favorite_count'] = growth_data['favorite_count'] = favorite_count

    comment_count = force_int(kwargs.get('comment_count', 0))  # 评论数量
    if comment_count:
        data['comment_count'] = growth_data['comment_count'] = comment_count

    sale_count = force_int(kwargs.get('sale_count', 0))  # 销售数量
    if sale_count:
        data['sale_count'] = growth_data['sale_count'] = sale_count

    view_count = force_int(kwargs.get('view_count', 0))  # 浏览数量
    if view_count:
        data['view_count'] = growth_data['view_count'] = view_count

    support_count = force_int(kwargs.get('support_count', 0))  # 支持数量
    if support_count:
        data['support_count'] = growth_data['support_count'] = support_count

    try:
        data['last_grab_at'] = datetime.datetime.now()

        product = Product.objects(url=url).first()
        if not product:
            product = Product(**data)
            ok = product.save()
            if not ok:
                current_app.logger.error('爬取产品保存失败!')
                return {'success': False, 'message': '保存失败!'}
        else:
            data['inc__grab_count'] = 1  # 自增
            ok = product.update(**data)
            if not ok:
                current_app.logger.error('爬取产品更新失败!')
                return {'success': False, 'message': '更新失败!'}

    except (Exception) as e:
        current_app.logger.error('爬取产品异常: %s' % str(e))
        return {'success': False, 'message': '爬取产品异常: %s' % str(e)}

    try:

        target_id = product._id
        day = int(datetime.datetime.now().strftime("%Y%m%d"))

        growth_data['day'] = day
        growth_data['target_id'] = target_id
        growth_record = GrowthRecord.objects(day=day,
                                             target_id=target_id).first()
        if not growth_record:
            growth_record = GrowthRecord(**growth_data)
            ok = growth_record.save()
            if not ok:
                current_app.logger.error('爬取产品增长记录保存失败!')
                return {'success': False, 'message': '增长记录保存失败!'}
        else:
            growth_data['inc__grab_count'] = 1  # 自增
            ok = growth_record.update(**growth_data)
            if not ok:
                current_app.logger.error('爬取产品增长数记录更新失败!')
                return {'success': False, 'message': '增长数据更新失败!'}
    except (Exception) as e:
        current_app.logger.error('记录产品增长值异常: %s' % str(e))
        return {'success': False, 'message': '记录增长值异常: %s' % str(e)}

    return {'success': True, 'message': 'success!', 'data': ''}
예제 #15
0
def handle_file(f, **param):
    result = {'success': 0, 'message': ''}
    if not f:
        result['message'] = '文件不存在!'
        return result

    bucket_name = current_app.config['QN_BUCKET_NAME']
    # 文件名
    fname = f.filename
    # 获取文件后缀
    ext = fname.rsplit('.', 1)[1]

    mime = f.mimetype

    size = f.content_length

    blob = f.read()
    size = len(blob)

    user_id = force_int(param['user_id'], 0)
    target_id = param['target_id']
    asset_type = force_int(param['asset_type'], 1)
    evt = param['evt']
    #上传到七牛后保存的文件名
    asset_name = gen_asset_name(asset_type)

    # 文件路径
    path = "%s/%s/%s/%s" % (bucket_name, asset_name, time.strftime("%y%m%d"),
                            gen_mongo_id())

    # 上传至七牛
    qnResult = up_qiniu(blob, path)

    if not qnResult['success']:
        result['message'] = qnResult['message']
        return result

    row = {
        'name': fname,
        'mime': mime,
        'ext': ext,
        'size': size,
        'path': path,
        'asset_type': asset_type,
        'domain': asset_name,
        'target_id': target_id,
        'user_id': user_id
    }

    if evt == 1:
        # 保存至asset表
        try:
            asset = Asset(**row)
            ok = asset.save()
            if not ok:
                result['message'] = '保存附件失败'
                return result

            row['_id'] = str(asset._id)

        except (Exception) as e:
            result['message'] = str(e)
            return result

    result['success'] = 1
    result['data'] = row
    return result
예제 #16
0
def produce_list():
    meta = metaInit.copy()
    query = {}
    page = force_int(request.args.get('page', 1))
    per_page = force_int(request.args.get('per_page', 100))
    status = force_int(request.args.get('status', 0))
    deleted = force_int(request.args.get('deleted', 0))
    kind = force_int(request.args.get('kind', 0))
    prize_id = force_int(request.args.get('prize_id', 0))
    editor_level = force_int(request.args.get('editor_level', 0))
    site_mark = request.args.get('site_mark', '')

    t = force_int(request.args.get('t', 1), 1)
    q = request.args.get('q', '')

    if q:
        if t == 1:
            query['_id'] = ObjectId(q.strip())
        if t == 2:
            query['channel'] = q.strip()
        if t == 3:
            query['evt'] = force_int(q.strip())

    if prize_id:
        query['prize'] = {'$elemMatch': {'id': int(prize_id)}}

    if kind:
        if kind == 1:
            meta['css_design'] = 'active'
        elif kind == 5:
            meta['css_fashion'] = 'active'
        meta['css_all'] = ''
        query['kind'] = kind

    if editor_level:
        if editor_level == -1:
            query['editor_level'] = 0
        else:
            query['editor_level'] = editor_level

    if status == -1:
        query['status'] = 0
    if status == 1:
        query['status'] = 1
    else:
        pass

    if deleted == 1:
        query['deleted'] = 1
        meta['css_deleted'] = 'active'
    else:
        query['deleted'] = 0
    if site_mark:
        query['channel'] = site_mark
    if not kind and not deleted:
        meta['css_all'] = 'active'
    else:
        meta['css_all'] = ''

    page_url = url_for('admin.produce_list', page="#p#", q=q, t=t, prize_id=prize_id, site_mark=site_mark, editor_level=editor_level, kind=kind,
                       status=status, deleted=deleted)

    data = Produce.objects(**query).order_by('-created_at').paginate(page=page, per_page=per_page)
    total_count = Produce.objects(**query).count()
    site_list = Site.objects(kind=1, status=1, deleted=0)
    # 过滤数据
    rows = t_admin_produce_list(data)
    meta['data'] = rows
    meta['total_count'] = total_count
    meta['prize_options'] = prize_options()
    meta['site_list'] = site_list
    pager = Pager(page, per_page, total_count, page_url)
    meta['pager'] = pager.render_view()

    return render_template('admin/produce/list.html', meta=meta)
예제 #17
0
def design_record_list():
    meta = {
        'title': '设计公司统计管理',
        'css_nav_sub_design_record': 'active',
        'css_nav_design': 'active'
    }
    query = {}
    page = force_int(request.args.get('page', 1))
    per_page = force_int(request.args.get('per_page', 100))
    status = force_int(request.args.get('status', 0))
    deleted = force_int(request.args.get('deleted', 0))
    sort = force_int(request.args.get('sort', 0))
    is_d3in = force_int(request.args.get('is_d3in', 0))
    mark = request.args.get('mark', '')
    number = request.args.get('number', '')
    no = request.args.get('no', '')

    if mark:
        query['mark'] = mark
    if no:
        query['no'] = no
    if number:
        query['number'] = number

    if is_d3in:
        if is_d3in == -1:
            query['is_d3in'] = 0
        elif is_d3in == 1:
            query['is_d3in'] = 1

    if status == -1:
        meta['css_disable'] = 'active'
        query['status'] = 0
    if status == 1:
        query['status'] = 1
        meta['css_enable'] = 'active'
    else:
        meta['css_all'] = 'active'

    query['deleted'] = deleted

    # 排序
    sortVal = '-created_at'
    nSortVal = '-base_average'
    if sort:
        if sort == 1:
            sortVal = '-ave_score'
        elif sort == 2:
            sortVal = '-base_average'
        elif sort == 3:
            sortVal = '-business_average'
        elif sort == 4:
            sortVal = '-innovate_average'
        elif sort == 5:
            sortVal = '-design_average'
        elif sort == 6:
            sortVal = '-effect_average'
        elif sort == 7:
            sortVal = '-credit_average'

    if sortVal == nSortVal:
        nSortVal = '-base_average'

    page_url = url_for('admin.design_record_list',
                       page="#p#",
                       mark=mark,
                       no=no,
                       number=number,
                       sort=sort,
                       is_d3in=is_d3in,
                       status=status)

    data = DesignRecord.objects(**query).order_by(sortVal, nSortVal).paginate(
        page=page, per_page=per_page)
    total_count = DesignRecord.objects(**query).count()

    # 过滤数据
    for i, d in enumerate(data.items):
        data.items[i].design_company = {}
        designCompany = DesignCompany.objects(number=int(d.number)).fields(
            ['_id', 'name', 'logo_url', 'd3ing_id']).first()
        if designCompany:
            data.items[i].design_company = designCompany

    meta['data'] = data.items

    # 获取配置列表
    confArr = DesignConf.objects(status=1).fields(['mark', 'name'])
    meta['design_conf'] = confArr

    pager = Pager(page, per_page, total_count, page_url)
    meta['pager'] = pager.render_view()
    meta['total_count'] = total_count
    meta['design_dimension_options'] = design_dimension_options()
    meta['design_fields_label_options'] = design_fields_label_options()
    #current_app.logger.debug('aaaa')

    return render_template('admin/design_record/list.html', meta=meta)
예제 #18
0
def design_company_list():
    meta = {
        'title': '设计公司管理',
        'css_nav_sub_design_company': 'active',
        'css_nav_design': 'active',
        'css_all': 'active'
    }
    query = {}
    page = force_int(request.args.get('page', 1))
    per_page = force_int(request.args.get('per_page', 100))
    status = force_int(request.args.get('status', 0))
    craw_user_id = force_int(request.args.get('craw_user_id'), 0)
    deleted = force_int(request.args.get('deleted', 0))
    kind = force_int(request.args.get('kind', 0))

    t = force_int(request.args.get('t', 1), 1)
    q = request.args.get('q', '')

    if q:
        if t == 1:
            query['number'] = force_int(q.strip())
        if t == 2:
            query['name'] = {"$regex": q.strip()}

    if craw_user_id:
        if craw_user_id == -1:
            query['craw_user_id'] = 0
        else:
            query['craw_user_id'] = craw_user_id

    if kind:
        if kind == 1:
            meta['css_industry'] = 'active'
        elif kind == 2:
            meta['css_plane'] = 'active'
        meta['css_all'] = ''
        query['kind'] = kind

    if status == -1:
        meta['css_disable'] = 'active'
        query['status'] = 0
    if status == 1:
        query['status'] = 1
        meta['css_enable'] = 'active'
    else:
        pass

    query['deleted'] = deleted

    page_url = url_for('admin.design_company_list',
                       page="#p#",
                       q=q,
                       t=t,
                       kind=kind,
                       status=status,
                       craw_user_id=craw_user_id)

    data = DesignCompany.objects(**query).order_by('-created_at').paginate(
        page=page, per_page=per_page)
    total_count = DesignCompany.objects(**query).count()

    # 过滤数据
    for i, d in enumerate(data.items):
        if data.items[i].kind == 1:
            kind_label = '工业设计'
        elif data.items[i].kind == 2:
            kind_label = '平台设计'
        else:
            kind_label = '--'
        data.items[i].kind_label = kind_label

    meta['data'] = data.items

    pager = Pager(page, per_page, total_count, page_url)
    meta['pager'] = pager.render_view()

    return render_template('admin/design_company/list.html', meta=meta)
예제 #19
0
def produce_list():
    meta = metaInit.copy()
    query = {}
    page = force_int(request.args.get('page', 1))
    per_page = force_int(request.args.get('per_page', 20))
    status = force_int(request.args.get('status', 1))
    deleted = force_int(request.args.get('deleted', 0))
    kind = force_int(request.args.get('kind', 1))
    prize_id = force_int(request.args.get('prize_id', 0))
    category_id = force_int(request.args.get('category_id', 0))
    tag = request.args.get('tag', '')

    t = force_int(request.args.get('t', 1), 1)
    q = request.args.get('q', '')

    if q:
        if t == 1:
            query['title'] = {"$regex": q.strip()}
        if t == 2:
            query['channel'] = q.strip()
        if t == 3:
            query['evt'] = force_int(q.strip())

    if prize_id:
        query['prize'] = {'$elemMatch': {'id': int(prize_id)}}

    if category_id:
        query['category_id'] = category_id

    if tag:
        query['total_tags'] = tag

    if kind:
        if kind == 1:
            meta['css_industry'] = 'active'
        elif kind == 2:
            meta['css_plane'] = 'active'
        meta['css_all'] = ''
        query['kind'] = kind

    if status == -1:
        meta['css_disable'] = 'active'
        query['status'] = 0
    if status == 1:
        query['status'] = 1
        meta['css_enable'] = 'active'
    else:
        pass

    if deleted == 1:
        query['deleted'] = 1
        meta['css_deleted'] = 'active'
    else:
        query['deleted'] = 0

    if not status and not deleted:
        meta['css_all'] = 'active'
    else:
        meta['css_all'] = ''

    page_url = url_for('main.produce_list', page="#p#", q=q, t=t, tag=tag, prize_id=prize_id, category_id=category_id, kind=kind, status=status,
                       deleted=deleted)

    data = Produce.objects(**query).order_by('-edit_on', '-editor_level').paginate(page=page, per_page=per_page)
    total_count = Produce.objects(**query).count()

    # 过滤数据
    rows = t_produce_list(data)

    meta['data'] = rows
    meta['total_count'] = total_count
    meta['prize_options'] = prize_options()

    categories = Category.objects(kind=2, status=1, deleted=0)[:30]
    meta['categories'] = categories

    pager = Pager(page, per_page, total_count, page_url)
    meta['pager'] = pager.render_view()
    return render_template('produce/list.html', meta=meta)
예제 #20
0
def image_list():
    meta = metaInit.copy()
    query = {}
    page = force_int(request.args.get('page', 1))
    per_page = force_int(request.args.get('per_page', 20))
    status = force_int(request.args.get('status', 1))
    deleted = force_int(request.args.get('deleted', 0))
    kind = force_int(request.args.get('kind', 1))
    prize_id = force_int(request.args.get('prize_id', 0))
    tag = request.args.get('tag', '')

    t = force_int(request.args.get('t', 1), 1)
    q = request.args.get('q', '')

    if q:
        if t == 1:
            query['_id'] = ObjectId(q.strip())
        if t == 2:
            query['channel'] = q.strip()
        if t == 3:
            query['evt'] = force_int(q.strip())

    if tag:
        query['total_tags'] = tag

    if prize_id:
        query['prize_id'] = prize_id

    if kind:
        if kind == 1:
            meta['css_industry'] = 'active'
        elif kind == 2:
            meta['css_plane'] = 'active'
        meta['css_all'] = ''
        query['kind'] = kind

    if status == -1:
        meta['css_disable'] = 'active'
        query['status'] = 0
    if status == 1:
        query['status'] = 1
        meta['css_enable'] = 'active'
    else:
        pass

    if deleted == 1:
        query['deleted'] = 1
        meta['css_deleted'] = 'active'
    else:
        query['deleted'] = 0

    if not status and not deleted:
        meta['css_all'] = 'active'
    else:
        meta['css_all'] = ''

    page_url = url_for('main.image_list',
                       page="#p#",
                       q=q,
                       t=t,
                       tag=tag,
                       prize_id=prize_id,
                       kind=kind,
                       status=status,
                       deleted=deleted)

    data = Image.objects(**query).order_by('random').paginate(
        page=page, per_page=per_page)
    total_count = Image.objects(**query).count()

    # 过滤数据
    for i, d in enumerate(data.items):
        prize_label = ''
        brand = None
        data.items[i]._id = str(d._id)
        data.items[i].thumb = d.get_thumb_path()
        if d.prize_id:
            prize_label = prize_options(d.prize_id)['name']
        if d.brand_id:
            brand = Brand.objects(_id=d.brand_id).first()

        data.items[i].prize_label = prize_label
        data.items[i].brand = brand

    # 过滤数据
    rows = t_image_list(data)

    meta['data'] = rows
    meta['total_count'] = total_count
    meta['prize_options'] = prize_options()

    pager = Pager(page, per_page, total_count, page_url)
    meta['pager'] = pager.render_view()
    return render_template('image/list.html', meta=meta)
예제 #21
0
파일: image.py 프로젝트: purpen/opalus
def image_list():
    meta = metaInit.copy()
    query = {}
    page = force_int(request.args.get('page', 1))
    per_page = force_int(request.args.get('per_page', 100))
    status = force_int(request.args.get('status', 0))
    deleted = force_int(request.args.get('deleted', 0))
    kind = force_int(request.args.get('kind', 0))

    t = force_int(request.args.get('t', 1), 1)
    q = request.args.get('q', '')

    if q:
        if t == 1:
            query['id'] = force_int(q.strip())
        if t == 2:
            query['name'] = {"$regex": q.strip()}

    if kind:
        if kind == 1:
            meta['css_industry'] = 'active'
        elif kind == 2:
            meta['css_plane'] = 'active'
        meta['css_all'] = ''
        query['kind'] = kind

    if status == -1:
        meta['css_disable'] = 'active'
        query['status'] = 0
    if status == 1:
        query['status'] = 1
        meta['css_enable'] = 'active'
    else:
        pass

    if deleted == 1:
        query['deleted'] = 1
        meta['css_deleted'] = 'active'
    else:
        query['deleted'] = 0

    if not status and not deleted:
        meta['css_all'] = 'active'
    else:
        meta['css_all'] = ''

    page_url = url_for('admin.image_list',
                       page="#p#",
                       q=q,
                       t=t,
                       kind=kind,
                       status=status,
                       deleted=deleted)

    data = Image.objects(**query).order_by('-created_at').paginate(
        page=page, per_page=per_page)
    total_count = Image.objects(**query).count()

    # 过滤数据
    for i, d in enumerate(data.items):
        data.items[i]._id = str(d._id)
        data.items[i].thumb = d.get_thumb_path()
        if d.tags:
            data.items[i].tags_s = ','.join(d.tags)

    meta['data'] = data.items

    pager = Pager(page, per_page, total_count, page_url)
    meta['pager'] = pager.render_view()

    return render_template('admin/image/list.html', meta=meta)
예제 #22
0
def design_company_update():
    # 检测接口是否打开
    conf = get_block_content('design_grap_switch')
    if not conf:
        return jsonify(code=3002, message='接口已关闭!')

    conf_arr = conf.strip().strip('|').split('|')

    current_app.logger.debug(conf_arr)
    if len(conf_arr) == 0:
        return jsonify(code=3002, message='接口已关闭!!')
    if int(conf_arr[0]) != 1:
        return jsonify(code=3002, message='接口已关闭!!!')

    form = SaveForm(request.values)
    if not form.validate_on_submit():
        return jsonify(code=3004, message=str(form.errors))

    number = request.values.get('number', None)
    data = request.values.to_dict()

    for key in request.values:
        data[key] = data[key].strip()
        if not request.values.get(key):
            data.pop(key)

    if not number:
        return jsonify(code=3001, message='编号不存在!')

    try:
        design_company = DesignCompany.objects(number=number).first()
        if not design_company:
            return jsonify(code=3002, message='内容不存在!')

        if 'number' in data:
            data.pop('number')
        if 'perfect_degree' in data:
            data.pop('perfect_degree')

        if not data:
            return jsonify(code=3003, message='至少传入一个参数!')

        # 公司数量整理
        if 'company_count' in data:
            if ',' in data['company_count']:
                company_count_arr = data['company_count'].split(',')
                company_count = 0
                for n in company_count_arr:
                    company_count += force_int(n)
                data['company_count'] = str(company_count)

        # 如果已入驻铟果,一些字段忽略存储
        if design_company.d3ing_id:
            ignore_field = [
                'short_name', 'branch', 'english_name', 'scale_label',
                'description', 'url', 'logo_url', 'province', 'city',
                'address', 'contact_name', 'contact_phone', 'contact_email'
            ]
            for ig in ignore_field:
                if ig in data:
                    data.pop(ig)

        data['inc__craw_count'] = 1  # 自增
        data['last_on'] = datetime.datetime.now()
        design_company.update(**data)

        if design_company:
            return jsonify(code=0, message='success!', data=data)
        else:
            return jsonify(code=3010, message='更新失败!')

    except (Exception) as e:
        return jsonify(success=False, message=str(e))
예제 #23
0
def company_stat_core(**options):
    result = {'success': False, 'message': ''}
    d = options['company']
    conf = options['conf']
    mark = options['mark']
    no = options['no']
    ## 是否入驻铟果
    is_d3in = 0
    ## 基本信息统计
    baseConf = {
        'in_d3ing': 0,
        'key_personnel_count': 0,
        'chage_record_count': 0,
        'affiliated_agency_count': 0,
        'financing_count': 0,
        'core_team_count': 0,
        'enterprise_business_count': 0,
        'competitor_count': 0,
        'bid_count': 0,
    }
    # 入驻铟果
    if d.d3ing_id:
        is_d3in = 1
        baseConf['in_d3ing'] = conf['in_d3ing']
    # 主要成员
    if d.key_personnel_count:
        baseConf['key_personnel_count'] = d.key_personnel_count * conf[
            'key_personnel_count']
    # 股东信息
    if d.shareholder_count:
        baseConf['shareholder_count'] = d.shareholder_count * conf[
            'shareholder_count']
    # 变更信息
    if d.chage_record_count:
        baseConf['chage_record_count'] = d.chage_record_count * conf[
            'chage_record_count']
    # 分支机构
    if d.affiliated_agency_count:
        baseConf['affiliated_agency_count'] = d.affiliated_agency_count * conf[
            'affiliated_agency_count']
    # 融资
    if d.financing_count:
        baseConf[
            'financing_count'] = d.financing_count * conf['financing_count']
    # 核心团队
    if d.core_team_count:
        baseConf[
            'core_team_count'] = d.core_team_count * conf['core_team_count']
    # 企业业务
    if d.enterprise_business_count:
        baseConf[
            'enterprise_business_count'] = d.enterprise_business_count * conf[
                'enterprise_business_count']
    # 竞品信息
    if d.competitor_count:
        baseConf[
            'competitor_count'] = d.competitor_count * conf['competitor_count']
    # 招投标
    if d.bid_count:
        baseConf['bid_count'] = d.bid_count * conf['bid_count']

    ## 统计基本信息分值
    baseScore = 0
    for k, v in baseConf.items():
        baseScore += v

    ## 商业力指数
    businessConf = {
        'scale': 0,
        'registered_capital_format': 0,
        'investment_abroad_count': 0,
        'annual_return_count': 0,
        'branch': 0,
        'company_count': 0,
    }

    # 公司规则
    if d.scale:
        if d.scale == 1:
            businessConf['scale'] = conf['scale_a']
        elif d.scale == 2:
            businessConf['scale'] = conf['scale_b']
        elif d.scale == 3:
            businessConf['scale'] = conf['scale_c']
        elif d.scale == 4:
            businessConf['scale'] = conf['scale_d']
        elif d.scale == 5:
            businessConf['scale'] = conf['scale_e']

    # 注册资金
    if d.registered_capital_format:
        if d.registered_capital_format == 1:
            businessConf['registered_capital_format'] = conf[
                'registered_capital_format_a']
        elif d.registered_capital_format == 2:
            businessConf['registered_capital_format'] = conf[
                'registered_capital_format_b']
        elif d.registered_capital_format == 3:
            businessConf['registered_capital_format'] = conf[
                'registered_capital_format_c']
        elif d.registered_capital_format == 4:
            businessConf['registered_capital_format'] = conf[
                'registered_capital_format_d']
        elif d.registered_capital_format == 5:
            businessConf['registered_capital_format'] = conf[
                'registered_capital_format_e']

    # 对外投资
    if d.investment_abroad_count:
        businessConf[
            'investment_abroad_count'] = d.investment_abroad_count * conf[
                'investment_abroad_count']
    # 公司年报
    if d.annual_return_count:
        businessConf['annual_return_count'] = d.annual_return_count * conf[
            'annual_return_count']
    # 分公司数
    if d.branch:
        businessConf['branch'] = force_int(d.branch) * conf['branch']
    # 法人公司数
    if d.company_count:
        businessConf['company_count'] = force_int(
            d.company_count) * conf['company_count']

    ## 统计商业力指数分值
    businessScore = 0
    for k, v in businessConf.items():
        businessScore += v

    ## 创新力指数
    innovateConf = {
        'trademark_count': 0,
        'patent_count': 0,
        'software_copyright_count': 0,
        'works_copyright_count': 0,
        'icp_count': 0,
    }

    # 商标
    if d.trademark_count:
        if d.trademark_count < 5:
            innovateConf['trademark_count'] = conf['trademark_count_a']
        elif d.trademark_count >= 5 and d.trademark_count < 10:
            innovateConf['trademark_count'] = conf['trademark_count_b']
        elif d.trademark_count >= 10 and d.trademark_count < 50:
            innovateConf['trademark_count'] = conf['trademark_count_c']
        elif d.trademark_count >= 50 and d.trademark_count < 100:
            innovateConf['trademark_count'] = conf['trademark_count_d']
        elif d.trademark_count >= 100 and d.trademark_count < 500:
            innovateConf['trademark_count'] = conf['trademark_count_e']
        elif d.trademark_count >= 500:
            innovateConf['trademark_count'] = conf['trademark_count_f']

    # 专利
    if d.patent_count:
        if d.patent_count < 5:
            innovateConf['patent_count'] = conf['patent_count_a']
        elif d.patent_count >= 5 and d.patent_count < 10:
            innovateConf['patent_count'] = conf['patent_count_b']
        elif d.patent_count >= 10 and d.patent_count < 50:
            innovateConf['patent_count'] = conf['patent_count_c']
        elif d.patent_count >= 50 and d.patent_count < 100:
            innovateConf['patent_count'] = conf['patent_count_d']
        elif d.patent_count >= 100 and d.patent_count < 500:
            innovateConf['patent_count'] = conf['patent_count_e']
        elif d.patent_count >= 500:
            innovateConf['patent_count'] = conf['patent_count_f']
    # 软件著作权
    if d.software_copyright_count:
        if d.software_copyright_count < 5:
            innovateConf['software_copyright_count'] = conf[
                'software_copyright_count_a']
        elif d.software_copyright_count >= 5 and d.software_copyright_count < 10:
            innovateConf['software_copyright_count'] = conf[
                'software_copyright_count_b']
        elif d.software_copyright_count >= 10 and d.software_copyright_count < 50:
            innovateConf['software_copyright_count'] = conf[
                'software_copyright_count_c']
        elif d.software_copyright_count >= 50 and d.software_copyright_count < 100:
            innovateConf['software_copyright_count'] = conf[
                'software_copyright_count_d']
        elif d.software_copyright_count >= 100 and d.software_copyright_count < 500:
            innovateConf['software_copyright_count'] = conf[
                'software_copyright_count_e']
        elif d.software_copyright_count >= 500:
            innovateConf['software_copyright_count'] = conf[
                'software_copyright_count_f']

    # 作品著作权
    if d.works_copyright_count:
        if d.works_copyright_count < 5:
            innovateConf['works_copyright_count'] = conf[
                'works_copyright_count_a']
        elif d.works_copyright_count >= 5 and d.works_copyright_count < 10:
            innovateConf['works_copyright_count'] = conf[
                'works_copyright_count_b']
        elif d.works_copyright_count >= 10 and d.works_copyright_count < 50:
            innovateConf['works_copyright_count'] = conf[
                'works_copyright_count_c']
        elif d.works_copyright_count >= 50 and d.works_copyright_count < 100:
            innovateConf['works_copyright_count'] = conf[
                'works_copyright_count_d']
        elif d.works_copyright_count >= 100 and d.works_copyright_count < 500:
            innovateConf['works_copyright_count'] = conf[
                'works_copyright_count_e']
        elif d.works_copyright_count >= 500:
            innovateConf['works_copyright_count'] = conf[
                'works_copyright_count_f']
    # 网站备案
    if d.icp_count:
        innovateConf['icp_count'] = d.icp_count * conf['icp_count']

    ## 统计创新力指数分值
    innovateScore = 0
    for k, v in innovateConf.items():
        innovateScore += v

    ## 设计力指数
    designConf = {
        'design_center': 0,
        'design_case_count': 0,
        'd3in_case_count': 0,
        'red_star_award_count': 0,
        'innovative_design_award_count': 0,
        'china_design_award_count': 0,
        'dia_award_count': 0,
        'if_award_count': 0,
        'red_dot_award_count': 0,
        'idea_award_count': 0,
        'gmark_award_count': 0,
    }

    # 设计中心--省级/国家级
    if d.is_design_center:
        if d.is_design_center == 1:
            designConf['design_center'] = conf['design_center_province']
        elif d.is_design_center == 2:
            designConf['design_center'] = conf['design_center_county']

    # 抓取作品数
    if d.design_case_count:
        designConf['design_case_count'] = d.design_case_count * conf[
            'design_case_count']
    # 铟果作品数
    if d.d3in_case_count:
        #designConf['d3in_case_count'] = d.d3in_case_count * conf['d3in_case_count']
        if d.d3in_case_count <= 5:
            designConf['d3in_case_count'] = conf['d3in_case_count_a']
        elif d.d3in_case_count > 5 and d.d3in_case_count <= 20:
            designConf['d3in_case_count'] = conf['d3in_case_count_b']
        elif d.d3in_case_count > 20 and d.d3in_case_count <= 50:
            designConf['d3in_case_count'] = conf['d3in_case_count_c']
        elif d.d3in_case_count > 50 and d.d3in_case_count <= 100:
            designConf['d3in_case_count'] = conf['d3in_case_count_d']
        elif d.d3in_case_count > 100 and d.d3in_case_count <= 500:
            designConf['d3in_case_count'] = conf['d3in_case_count_e']
        elif d.d3in_case_count > 500:
            designConf['d3in_case_count'] = conf['d3in_case_count_f']

    # 红星奖
    if d.red_star_award_count:
        designConf['red_star_award_count'] = d.red_star_award_count * conf[
            'red_star_award_count']
    # 红棉奖
    if d.innovative_design_award_count:
        designConf[
            'innovative_design_award_count'] = d.innovative_design_award_count * conf[
                'innovative_design_award_count']
    # 中国好设计奖
    if d.china_design_award_count:
        designConf[
            'china_design_award_count'] = d.china_design_award_count * conf[
                'china_design_award_count']
    # 中国设计智造大奖
    if d.dia_award_count:
        designConf[
            'dia_award_count'] = d.dia_award_count * conf['dia_award_count']
    # if奖
    if d.if_award_count:
        designConf[
            'if_award_count'] = d.if_award_count * conf['if_award_count']
    # 红点奖
    if d.red_dot_award_count:
        designConf['red_dot_award_count'] = d.red_dot_award_count * conf[
            'red_dot_award_count']
    # IDEA工业设计奖
    if d.idea_award_count:
        designConf[
            'idea_award_count'] = d.idea_award_count * conf['idea_award_count']
    # G-Mark设计奖
    if d.gmark_award_count:
        designConf['gmark_award_count'] = d.gmark_award_count * conf[
            'gmark_award_count']

    ## 统计设计力指数分值
    designScore = 0
    for k, v in designConf.items():
        designScore += v

    ## 影响力指数
    effectConf = {
        'is_high_tech': 0,
        'ty_score': 0,
        'ty_view_count': 0,
        'bd_hot_count': 0,
        'certification_count': 0,
        'cida_credit_rating': 0,
        'wx_public_count': 0,
    }

    # 高新企业
    if d.is_high_tech:
        effectConf['is_high_tech'] = conf['is_high_tech']
    # 天眼查分数
    if d.ty_score:
        effectConf['ty_score'] = d.ty_score * conf['ty_score']
    # 天眼查浏览数
    if d.ty_view_count:
        if d.ty_view_count < 100:
            effectConf['ty_view_count'] = conf['ty_view_count_a']
        elif d.ty_view_count >= 100 and d.ty_view_count < 500:
            effectConf['ty_view_count'] = conf['ty_view_count_b']
        elif d.ty_view_count >= 500 and d.ty_view_count < 2000:
            effectConf['ty_view_count'] = conf['ty_view_count_c']
        elif d.ty_view_count >= 2000 and d.ty_view_count < 5000:
            effectConf['ty_view_count'] = conf['ty_view_count_d']
        elif d.ty_view_count >= 5000 and d.ty_view_count < 10000:
            effectConf['ty_view_count'] = conf['ty_view_count_e']
        elif d.ty_view_count >= 10000:
            effectConf['ty_view_count'] = conf['ty_view_count_f']

    # 百度关键词热度(品牌名或简称)
    if d.baidu_brand_hot:
        if d.baidu_brand_hot < 10000:
            effectConf['bd_hot_count'] = conf['bd_hot_count_a']
        elif d.baidu_brand_hot >= 10000 and d.baidu_brand_hot < 100000:
            effectConf['bd_hot_count'] = conf['bd_hot_count_b']
        elif d.baidu_brand_hot >= 100000 and d.baidu_brand_hot < 500000:
            effectConf['bd_hot_count'] = conf['bd_hot_count_c']
        elif d.baidu_brand_hot >= 500000 and d.baidu_brand_hot < 1000000:
            effectConf['bd_hot_count'] = conf['bd_hot_count_d']
        elif d.baidu_brand_hot >= 1000000 and d.baidu_brand_hot < 5000000:
            effectConf['bd_hot_count'] = conf['bd_hot_count_e']
        elif d.baidu_brand_hot >= 5000000:
            effectConf['bd_hot_count'] = conf['bd_hot_count_f']
    # 公司全称
    elif d.baidu_hot:
        if d.baidu_hot < 10000:
            effectConf['bd_hot_count'] = conf['bd_hot_count_a']
        elif d.baidu_hot >= 10000 and d.baidu_hot < 200000:
            effectConf['bd_hot_count'] = conf['bd_hot_count_b']
        elif d.baidu_hot >= 200000 and d.baidu_hot < 1000000:
            effectConf['bd_hot_count'] = conf['bd_hot_count_c']
        elif d.baidu_hot >= 1000000 and d.baidu_hot < 5000000:
            effectConf['bd_hot_count'] = conf['bd_hot_count_d']
        elif d.baidu_hot >= 5000000 and d.baidu_hot < 10000000:
            effectConf['bd_hot_count'] = conf['bd_hot_count_e']
        elif d.baidu_hot >= 10000000:
            effectConf['bd_hot_count'] = conf['bd_hot_count_f']

    # 资质证书
    if d.certification_count:
        effectConf['certification_count'] = d.certification_count * conf[
            'certification_count']

    # 工会认证
    if d.cida_credit_rating:
        if d.cida_credit_rating == 1:
            designConf['cida_credit_rating'] = conf['cida_credit_rating_a']
        elif d.cida_credit_rating == 2:
            designConf['cida_credit_rating'] = conf['cida_credit_rating_b']
        elif d.cida_credit_rating == 3:
            designConf['cida_credit_rating'] = conf['cida_credit_rating_c']

    # 公号
    if d.wx_public_count:
        designConf[
            'wx_public_count'] = d.wx_public_count * conf['wx_public_count']

    ## 统计影响力指数分值
    effectScore = 0
    for k, v in effectConf.items():
        effectScore += v

    ## 社会信誉
    creditConf = {
        'action_at_law_count': 0,
        'court_announcement_count': 0,
        'dishonest_person_count': 0,
        'person_subject_count': 0,
        'announcement_court_count': 0,
        'abnormal_operation_count': 0,
        'administrative_penalty_count': 0,
        'break_law_count': 0,
        'equity_pledged_count': 0,
        'chattel_mortgage_count': 0,
        'tax_notice_count': 0,
        'judicial_sale_count': 0,
        'tax_rating_count': 0,
        'credit_enter_extra': 0,
    }

    # 法律诉讼
    if d.action_at_law_count:
        creditConf['action_at_law_count'] = d.action_at_law_count * conf[
            'action_at_law_count']
    # 法院公告
    if d.court_announcement_count:
        creditConf[
            'court_announcement_count'] = d.court_announcement_count * conf[
                'court_announcement_count']
    # 失信人
    if d.dishonest_person_count:
        creditConf['dishonest_person_count'] = d.dishonest_person_count * conf[
            'dishonest_person_count']
    # 被执行人
    if d.person_subject_count:
        creditConf['person_subject_count'] = d.person_subject_count * conf[
            'person_subject_count']
    # 开庭公告
    if d.announcement_court_count:
        creditConf[
            'announcement_court_count'] = d.announcement_court_count * conf[
                'announcement_court_count']
    # 经营异常
    if d.abnormal_operation_count:
        creditConf[
            'abnormal_operation_count'] = d.abnormal_operation_count * conf[
                'abnormal_operation_count']
    # 行政处罚
    if d.administrative_penalty_count:
        creditConf[
            'administrative_penalty_count'] = d.administrative_penalty_count * conf[
                'administrative_penalty_count']
    # 严重违法
    if d.break_law_count:
        creditConf[
            'break_law_count'] = d.break_law_count * conf['break_law_count']
    # 股权出质
    if d.equity_pledged_count:
        creditConf['equity_pledged_count'] = d.equity_pledged_count * conf[
            'equity_pledged_count']
    # 动产抵押
    if d.chattel_mortgage_count:
        creditConf['chattel_mortgage_count'] = d.chattel_mortgage_count * conf[
            'chattel_mortgage_count']
    # 欠税公告
    if d.tax_notice_count:
        creditConf[
            'tax_notice_count'] = d.tax_notice_count * conf['tax_notice_count']
    # 司法拍卖
    if d.judicial_sale_count:
        creditConf['judicial_sale_count'] = d.judicial_sale_count * conf[
            'judicial_sale_count']
    # 税务评级
    if d.tax_rating_count:
        creditConf[
            'tax_rating_count'] = d.tax_rating_count * conf['tax_rating_count']
    # 入驻加分
    if is_d3in:
        creditConf['credit_enter_extra'] = conf['credit_enter_extra']

    ## 统计社会信誉分值
    creditScore = 100
    for k, v in creditConf.items():
        creditScore += v

    ## 统计总分数
    # baseConf  businessConf  innovateConf  designConf  effectConf  creditConf
    totalScore = baseScore + businessScore + innovateScore + designScore + effectScore + creditScore

    row = {
        'mark': mark,
        'no': no,
        'number': str(d.number),
        'is_d3in': is_d3in,
        'base_score': baseScore,
        'base_group': baseConf,
        'business_score': businessScore,
        'business_group': businessConf,
        'innovate_score': innovateScore,
        'innovate_group': innovateConf,
        'design_score': designScore,
        'design_group': designConf,
        'effect_score': effectScore,
        'effect_group': effectConf,
        'credit_score': creditScore,
        'credit_group': creditConf,
        'total_score': totalScore,
    }

    recordQuery = {
        'mark': mark,
        'no': no,
        'number': str(d.number),
    }
    try:
        item = DesignRecord.objects(**recordQuery).first()
        if item:
            if item.deleted == 1:
                row['deleted'] = 0
            ok = item.update(**row)
        else:
            item = DesignRecord(**row)
            ok = item.save()

        if not ok:
            print("数据保存失败: %s" % str(ok))
            result['message'] = "数据保存失败: %s" % str(ok)
            return result
    except (Exception) as e:
        print("数据保存异常: %s" % str(e))
        result['message'] = "数据保存异常: %s" % str(e)
        return result

    print("stat success: %s" % d.number)
    print("------------------\n")
    result['data'] = item
    result['success'] = True
    return result
예제 #24
0
def column_list():
    meta = metaInit.copy()
    query = {}
    page = force_int(request.args.get('page', 1))
    per_page = force_int(request.args.get('per_page', 100))
    status = force_int(request.args.get('status', 0))
    deleted = force_int(request.args.get('deleted', 0))
    kind = force_int(request.args.get('kind', 0))
    column_zone_id = request.args.get('column_zone_id', 0)
    t = force_int(request.args.get('t', 1), 1)
    q = request.args.get('q', '')

    if q:
        if t == 1:
            query['_id'] = ObjectId(q.strip())
        if t == 2:
            query['title'] = q.strip()

    if column_zone_id:
        query['column_zone_id'] = column_zone_id

    if kind:
        if kind == 1:
            meta['css_industry'] = 'active'
        elif kind == 2:
            meta['css_plane'] = 'active'
        meta['css_all'] = ''
        query['kind'] = kind

    if status == -1:
        meta['css_disable'] = 'active'
        query['status'] = 0
    if status == 1:
        query['status'] = 1
        meta['css_enable'] = 'active'
    else:
        pass

    if deleted == 1:
        query['deleted'] = 1
        meta['css_deleted'] = 'active'
    else:
        query['deleted'] = 0

    if not status and not deleted:
        meta['css_all'] = 'active'
    else:
        meta['css_all'] = ''

    page_url = url_for('admin.column_list', page="#p#", q=q, t=t, kind=kind, status=status,
                       deleted=deleted)
    data = Column.objects(**query).order_by('-created_at').paginate(page=page, per_page=per_page)

    total_count = Column.objects(**query).count()

    for i, d in enumerate(data.items):
        data.items[i].cover = d.cover()
        zone = ''
        if d.column_zone_id:
            zone = ColumnZone.objects(_id=ObjectId(d.column_zone_id)).first()
        data.items[i].zone = zone
    column_zones = ColumnZone.objects.all()
    for i in column_zones:
        i.id = str(i._id)

    meta['data'] = data.items
    meta['total_count'] = total_count
    meta['column_zone_options'] = column_zones

    pager = Pager(page, per_page, total_count, page_url)
    meta['pager'] = pager.render_view()

    return render_template('admin/column/list.html', meta=meta)