Ejemplo n.º 1
0
def update_class():
    # print(request.json)
    id = request.json.get('id', None)
    name = request.json.get('name', None)
    info = request.json.get('info', None)
    sort = request.json.get('sort', None)
    methord = request.json.get('methord', None) #update,add,delete
    print(methord)
    if methord not in ['update','delete','add']:
        return 'Missing data 1', 400
    # 调用smtp函数发送邮件
    try:
        if methord == 'update':
            if not all([id,name,info,sort]):
                return 'Missing data', 400
            ProdCag.query.filter_by(id = id).update({'name':name,'info':info,'sort':sort})
        elif methord == 'delete':
            if not id:
                return 'Missing data', 400
            ProdCag.query.filter_by(id = id).delete()
        else:
            if not name or not info or not sort:
                return 'Missing data 2', 400
            new_cag = ProdCag(name,info,sort)
            db.session.add(new_cag)
        db.session.commit()
    except Exception as e:
        log(e)
        return '数据库异常', 500        

    # 重定向登录界面
    return '修改成功', 200
Ejemplo n.º 2
0
def get_smtp():
    try:
        smtp = Notice.query.filter_by(id=1).first()
        return jsonify(smtp.to_json())
    except Exception as e:
        log(e)
        return '数据库异常', 500
Ejemplo n.º 3
0
def detail(shop_id):
    try:
        prod = ProdInfo.query.filter_by(
            id=shop_id).first_or_404('Product not exist')
    except Exception as e:
        log(e)
        return '数据库异常', 503
    res = prod.detail_json()
    try:
        if len(res['price_wholesale']) > 5:
            price = res['price_wholesale'].split('#')[1]
            num = res['price_wholesale'].split('#')[0]
            prices = price.split(',')
            # 处理数量列表
            nums = []
            temp = num.split(',')
            s = len(temp)
            if s == 1:
                nums.append('1~' + temp[0])
                nums.append(str(int(temp[0]) + 1) + '~')
            elif s == 2:
                nums.append('1~' + temp[0])
                nums.append(str(int(temp[0]) + 1) + '~' + temp[1])
                nums.append(str(int(temp[1]) + 1) + '~')
            elif s == 3:
                nums.append('1~' + temp[0])
                nums.append(str(int(temp[0]) + 1) + '~' + temp[1])
                nums.append(str(int(temp[1]) + 1) + '~' + temp[2])
                nums.append(str(int(temp[2]) + 1) + '~')
            else:
                pass
            res['pifa'] = {'nums': nums, 'prices': prices, 'slice': temp}
    except:
        pass
    return jsonify(res)
Ejemplo n.º 4
0
def login():
    try:
        # start_t = time.time()
        email = request.json.get('email', None)
        password = request.json.get('password', None)
        if not email:
            return '邮箱参数丢失', 400
        if not password:
            return '密码参数丢失', 400
        user = AdminUser.query.filter_by(email=email).first()
        if not user:
            return '账号不存在或密码不正确', 404
        # 已知道mysql模式下使用utf8
        #if bcrypt.checkpw(password.encode('utf-8'), user.hash.encode('utf-8')):
        # sqlite模式下,起步没问题,后续需要移除hash的encode,因此采用下面的转换,可兼容mysql和sqlite
        try:
            user_defin = user.hash.encode('utf-8')
        except:
            user_defin = user.hash

        # print(time.time() - start_t)
        if bcrypt.checkpw(password.encode('utf-8'), user_defin):
            # executor.submit(login_record) # 当前问题是此处的request.remote_addr为空,执行无效
            # print(time.time() - start_t)
            access_token = create_access_token(identity={"email": email})
            # print(time.time() - start_t)
            return {"access_token": access_token}, 200
        else:
            return '账号不存在或密码不正确2', 400
    except AttributeError as e:
        log(e)
        return 'Provide an Email and Password in JSON format in the request body', 400
Ejemplo n.º 5
0
def get_notice():
    try:
        notices = Notice.query.filter().all()
    except Exception as e:
        log(e)
        return '数据库异常', 500
    return jsonify([x.to_json() for x in notices])
Ejemplo n.º 6
0
def get_card():
    try:
        cards = Card.query.filter().all()
    except Exception as e:
        log(e)
        return '数据库异常', 500
    return jsonify([x.to_json() for x in cards])
Ejemplo n.º 7
0
def get_shop():
    try:
        prod_shops = ProdInfo.query.filter().all()
    except Exception as e:
        log(e)
        return '数据库异常', 500
    return jsonify([x.admin_json() for x in prod_shops])
Ejemplo n.º 8
0
def update_card():
    # print(request.json)
    id = request.json.get('id', None)
    prod_name = request.json.get('prod_name', None)
    card = request.json.get('card', None)
    isused = request.json.get('isused', None)
    reuse = request.json.get('reuse', None)
    methord = request.json.get('methord', None) #update,add,delete
    if methord not in ['update','delete','add','add_all']:
        return 'Missing methord', 400
    # 调用smtp函数发送邮件
    try:
        if methord == 'update':
            if not all([id,prod_name,card]):
                return 'Missing data 1', 400
            Card.query.filter_by(id = id).update({'prod_name':prod_name,'card':card,'isused':isused,'reuse':reuse})
        elif methord == 'delete':
            if not id:
                return 'Missing data', 400
            Card.query.filter_by(id = id).delete()
        # elif methord == 'add':
        else:
            if not all([prod_name,card]):
                return 'Missing data', 400
            # print(card.split('\n'))
            tmp_cards = list(filter(None,card.split('\n')))
            if len(tmp_cards) >1:
                reuse = False
            db.session.add_all([Card(prod_name,card=x,isused=0,reuse=reuse) for x in tmp_cards])
        db.session.commit()
        # 重定向登录界面
        return '修改成功', 200          
    except Exception as e:
        log(e)
        return '数据库异常', 500       
Ejemplo n.º 9
0
def update_notice():
    data = request.json.get('data', None)
    if not data:
        return 'Missing Data', 400
    #数组数据更新--->两字典判断是否相等,不相等则更新
    try:
        old_data = [x.to_json() for x in Notice.query.filter().all()]
        for (i, index) in enumerate(data):
            if old_data[i] == index:
                pass  #数据未更新
            else:
                Notice.query.filter_by(id=index['id']).update({
                    'config':
                    str(index['config']),
                    'admin_account':
                    index['admin_account'],
                    'admin_switch':
                    index['admin_switch'],
                    'user_switch':
                    index['user_switch']
                })
        db.session.commit()
    except Exception as e:
        log(e)
        return '数据库异常', 500

    return '修改成功', 200
Ejemplo n.º 10
0
def get_sms():
    try:
        sms = Notice.query.filter_by(name='短信通知').first()
        return jsonify(sms.to_json())
    except Exception as e:
        log(e)
        return '数据库异常', 500
Ejemplo n.º 11
0
def theme_list():
    info = {}
    # 系统信息
    try:
        prods = ProdInfo.query.filter_by(isactive=True).order_by(
            ProdInfo.sort).all()
        cags = ProdCag.query.filter().order_by(ProdCag.sort).all()
    except Exception as e:
        log(e)
        return '数据库异常', 503
    prod_list = [x.to_json() for x in prods]
    cag_list = [x.to_json()['name'] for x in cags]
    tmp_cags = []
    for x in prod_list:
        if {'cag_name': x['cag_name'], 'shops': []} not in tmp_cags:
            tmp_cags.append({'cag_name': x['cag_name'], 'shops': []})
    sub_num = {}
    for index, i in enumerate(tmp_cags):
        sub_num[i['cag_name']] = index
    for i in prod_list:
        tmp_cags[sub_num[i['cag_name']]]['shops'].append(i)
    new_cags = []
    for i in cag_list:
        for x in tmp_cags:
            if x['cag_name'] == i:
                new_cags.append(x)
    info['shops'] = new_cags
    info['shops2'] = prod_list
    # 主题
    res = Config.query.filter_by(name='theme').first()
    info['theme'] = res.to_json()['info']
    return jsonify(info)
Ejemplo n.º 12
0
def local_backup():
    # types = request.json.get('types', None)   #备份类型;支付邮箱等系统配置;商品分类及卡密备份;历史订单备份
    # print(request.args)
    types = request.args.get('types', None)
    # print(type(types))
    try:
        types = int(types)
    except:
        return '需要int参数', 400
    if not types or types not in [1, 2, 3]:
        return '参数丢失', 400
    try:
        if types == 1:
            # 支付邮箱系统配置
            msg = loc_sys_back()
        elif types == 2:
            # 卡密备份
            msg = loc_shop_back()
        else:
            # 历史订单备份
            msg = loc_order_back()
        res = make_response(msg)
        filename = '4545'  #失效
        res.headers[
            "Content-Disposition"] = f"p_w_upload; filename={filename}.txt"
        return res
    except Exception as e:
        log(e)
        return '导出失败', 400
Ejemplo n.º 13
0
def get_orders():
    try:
        orders = Order.query.filter().all()
    except Exception as e:
        log(e)
        return '数据库异常', 500
    return jsonify([x.admin_json() for x in orders])
Ejemplo n.º 14
0
def get_pays():
    try:
        pays = Payment.query.filter().all()
    except Exception as e:
        log(e)
        return '数据库异常', 500
    return jsonify([x.all_json() for x in pays])
Ejemplo n.º 15
0
def update_pays():
    try:
        if request.method == 'GET':
            pay_id = request.args.get('id')
            return jsonify(
                Payment.query.filter_by(id=pay_id).first().all_json())
        else:
            # print(request.json)
            data = request.json.get('data', None)
            if not data:
                return 'Missing Data', 400
            # print(type(data['config']))
            Payment.query.filter_by(id=data['id']).update({
                'icon':
                data['icon'],
                'config':
                str(data['config']),
                'isactive':
                data['isactive']
            })
            db.session.commit()
            return '修改成功', 200
    except Exception as e:
        log(e)
        return '数据库异常', 500
Ejemplo n.º 16
0
def detail(shop_id):
    try:
        prod = ProdInfo.query.filter_by(id = shop_id).first_or_404('Product not exist')
    except Exception as e:
        log(e)
        return '数据库异常', 500       
    return jsonify(prod.detail_json())
Ejemplo n.º 17
0
def theme_list():
    info= {}
    # 系统信息
    # from service.database.models import Config
    # # 商品列表
    # 商品列表:【f按分类排除结果】
    # from service.database.models import ProdInfo
    try:
        prods = ProdInfo.query.filter_by(isactive = 1).all()
    except Exception as e:
        log(e)
        return '数据库异常', 500    
    prod_list =[x.to_json() for x in prods]
    tmp_cags = []
    num_list = []
    num = -1
    for x in prod_list:
        if x['cag_name'] not in tmp_cags:
            tmp_cags.append(x['cag_name'])
            num +=1
        num_list.append(num)    
    shop_list = []
    for x,i in enumerate(tmp_cags):
        goods = {}
        goods['cag_name'] = i    #大分类
        shops = []
        for y,n in enumerate(num_list): #y为位置,n为值
            if x == n:
                shops.append(prod_list[y])
        goods['shops'] = shops
        shop_list.append(goods)
    info['shops'] = shop_list   
    return jsonify(info)
Ejemplo n.º 18
0
def get_class():
    try:
        prod_cags = ProdCag.query.filter().all()
    except Exception as e:
        log(e)
        return '数据库异常', 500

    return jsonify([x.to_json() for x in prod_cags])
Ejemplo n.º 19
0
def get_pay_list():
    try:
        pays =  Payment.query.filter_by(isactive = True).all()
    except Exception as e:
        log(e)
        return '数据库异常', 500        
    
    # return jsonify({'pays':['支付宝当面付','码支付微信','PAYJS支付宝'],'icons':['支付宝当面付','码支付微信','PAYJS支付宝']})
    return jsonify([x.enable_json() for x in pays])
Ejemplo n.º 20
0
def home():
    # 系统信息
    # 前端需求:logo地址;footer信息,顶部公告;全局弹窗公告;加载公告
    try:
        infos = Config.query.filter().all()
    except Exception as e:
        log(e)
        return '数据库异常', 500
    return jsonify([x.to_json() for x in infos])
Ejemplo n.º 21
0
def update_shop():

    id = request.json.get('id', None)
    cag_name = request.json.get('cag_name', None)
    name = request.json.get('name', None)
    info = request.json.get('info', None)
    img_url = request.json.get('img_url', None)
    sort = request.json.get('sort', None)
    discription = request.json.get('discription', None)
    price = request.json.get('price', None)
    price_wholesale = request.json.get('price_wholesale', None)
    auto = request.json.get('auto', None)
    sales = request.json.get('sales', None)
    tag = request.json.get('tag', None)
    isactive = request.json.get('isactive', None)
    methord = request.json.get('methord', None)  #update,add,delete
    if methord not in ['update', 'delete', 'add']:
        return 'Missing data1', 400
    # 调用smtp函数发送邮件
    try:
        with db.auto_commit_db():
            if methord == 'update':
                if not all([
                        id, cag_name, name, img_url, sort, discription, price,
                        tag
                ]):  #因修改时auto和isactive报错缺失,移除
                    return 'Missing data2', 400
                ProdInfo.query.filter_by(id=id).update({
                    'cag_name': cag_name,
                    'name': name,
                    'info': info,
                    'img_url': img_url,
                    'sort': sort,
                    'discription': discription,
                    'price': price,
                    'price_wholesale': price_wholesale,
                    'auto': auto,
                    'tag': tag,
                    'isactive': isactive
                })
            elif methord == 'delete':
                if not id:
                    return 'Missing data', 400
                ProdInfo.query.filter_by(id=id).delete()
            else:
                if not all([name, info, sort]):
                    return 'Missing data', 400
                new_prod = ProdInfo(cag_name, name, info, img_url, sort,
                                    discription, price, price_wholesale, auto,
                                    sales, tag, isactive)
                db.session.add(new_prod)
    except Exception as e:
        log(e)
        return '数据库异常', 500

    #
    return '修改成功', 200
Ejemplo n.º 22
0
def get_orders():
    page = request.json.get('page',None)
    if not page:
        return 'Missing data1', 400
    try:
        orders = Order.query.filter().offset((int(page)-1)*20).limit(20).all()
    except Exception as e:
        log(e)
        return '数据库异常', 500      
    return jsonify([x.admin_json() for x in orders])   
Ejemplo n.º 23
0
def get_order():
    contact = request.json.get('contact',None)
    if not contact:
        return '参数丢失', 404
    try:
        orders = Order.query.filter_by(contact = contact).all()
    except Exception as e:
        log(e)
        return '数据库异常', 500          
    return jsonify([x.admin_json() for x in orders])   
Ejemplo n.º 24
0
def get_tmp_orders():
    page = request.json.get('page',None)
    if not page:
        return 'Missing data1', 400
    try:
        # orders = TempOrder.query.filter().offset((int(page)-1)*20).limit(20).all()
        orders = TempOrder.query.order_by(TempOrder.id.desc()).offset((int(page)-1)*20).limit(20).all()
    except Exception as e:
        log(e)
        return '数据库异常', 500      
    return jsonify([x.to_json2() for x in orders])   
Ejemplo n.º 25
0
def get_card():
    out_order_id = request.json.get('out_order_id',None)
    if not out_order_id:
        return '参数丢失', 404
    try:
        card = Order.query.filter_by(out_order_id = out_order_id).first_or_404()
    except Exception as e:
        log(e)            
        return '虎皮椒请求错误', 502        
    
    return jsonify(card.only_card())    #返回卡密和订单时间
Ejemplo n.º 26
0
def remove_order():
    id = request.json.get('id', None)
    if not id:
        return 'Missing Data', 400
    try:
        Order.query.filter_by(id=id).delete()
        db.session.commit()
        return '删除成功', 200
    except Exception as e:
        log(e)
        return '数据库异常', 500
Ejemplo n.º 27
0
def get_orders_pages():
    try:
        nums = Order.query.filter().count()
        temp = nums // 20
        if nums % 20:
            pages = temp + 1
        else:
            pages = temp  #整除
    except Exception as e:
        log(e)
        return '数据库异常', 500
    return str(pages), 200
Ejemplo n.º 28
0
def get_card():
    # print(request.json)
    page = request.json.get('page',None)
    if not page:
        return 'Missing data1', 400
    try:
        cards = Card.query.filter().offset((int(page)-1)*20).limit(20).all()
        
    except Exception as e:
        log(e)
        return '数据库异常', 500      
    return jsonify([x.to_json() for x in cards])   
Ejemplo n.º 29
0
def update_smtp():
    data = request.json.get('data', None)
    if not data:
        return 'Missing data', 400
    # 密码加密存储
    try:
        Notice.query.filter_by(id=1).update({'config': str(data['config'])})
        db.session.commit()
    except Exception as e:
        log(e)
        return '数据库异常', 500
    # 重定向登录界面
    return '邮箱更新成功', 200
Ejemplo n.º 30
0
def get_card():
    out_order_id = request.json.get('out_order_id',None)
    if not out_order_id:
        return '参数丢失', 404
    try:
        card = Order.query.filter_by(out_order_id = out_order_id).first()
    except Exception as e:
        log(e)

        # time.sleep()      
        return '订单创建失败', 400        
    
    return jsonify(card.only_card())    #返回卡密和订单时间