예제 #1
0
    def uploadByFile(file):
        config_upload = app.config['UPLOAD']
        ret = {"code": 200, "msg": "操作成功", "data": {}}
        filename = secure_filename(file.filename)
        ext = filename.rsplit(".", 1)[1]
        if ext not in config_upload['ext']:
            ret['code'] = -1
            ret['msg'] = "不允许的扩展类型未见"
            return ret

        root_path = app.root_path + config_upload['prefix_path']
        file_dir = get_current_time("%Y%m%d")
        save_dir = root_path + file_dir
        if not os.path.exists(save_dir):
            os.mkdir(save_dir)
            os.chmod(save_dir, stat.S_IRWXO | stat.S_IRWXG | stat.S_IRWXU)

        file_name = str(uuid.uuid4()).replace('-', '') + '.' + ext
        file.save("%s/%s" % (save_dir, file_name))

        model_image = Image()
        model_image.file_key = file_dir + '/' + file_name
        model_image.created_time = get_current_time()
        db.session.add(model_image)
        db.session.commit()

        ret['data'] = {'file_key': file_dir + "/" + file_name}
        return ret
예제 #2
0
def myAddressOps():
    resp = {'code': 200, 'msg': '操作成功~', 'data': {}}
    req = request.values
    id = int(req['id']) if 'id' in req else 0
    act = req['act'] if 'act' in req else ''
    member_info = g.member_info

    if id < 1 or not member_info:
        resp['code'] = -1
        resp['msg'] = "系统繁忙,请稍后再试~~"
        return jsonify(resp)

    address_info = MemberAddress.query.filter_by(
        id=id, member_id=member_info.id).first()
    if not address_info:
        resp['code'] = -1
        resp['msg'] = "系统繁忙,请稍后再试~~"
        return jsonify(resp)

    if act == "del":
        address_info.status = 0
        address_info.updated_time = get_current_time()
        db.session.add(address_info)
        db.session.commit()
    elif act == "default":
        MemberAddress.query.filter_by(member_id=member_info.id)\
            .update({'is_default': 0})
        address_info.is_default = 1
        address_info.updated_time = get_current_time()
        db.session.add(address_info)
        db.session.commit()
    return jsonify(resp)
예제 #3
0
def type1_set():
    if request.method == 'GET':
        val = request.values
        id = int(val['id']) if val.get('id', '') and val.get(
            'id', '').isdigit() else 0
        info = CategoryQuestion.query.filter_by(id=id).first()
        resp_data = {}
        if info:
            resp_data['info'] = info
        else:
            resp_data['info'] = None

        return ops_render('question/type1_set.html', resp_data)

    resp = {'code': 200, 'msg': '操作成功', "data": {}}
    req = request.values
    print(req)
    id = int(
        req['id']) if req.get('id', '') and req.get('id', '').isdigit() else 0
    app.logger.info(id)
    name = req['name'] if 'name' in req else ''
    price = req['price'] if 'price' in req else 0
    is_free = req['is_free'] if 'is_free' in req else 0
    is_hot = req['is_hot'] if 'is_hot' in req else 0
    type = req['type'] if 'type' in req else 1
    main_image = req['main_image'] if 'main_image' in req else ''

    if name is None or len(name) < 2:
        resp['code'] = -1
        resp['msg'] = '请输入2位以上的专业名称'
        return jsonify(resp)

    if price is None or not price.isdigit():
        resp['code'] = -1
        resp['msg'] = '价格需要纯数字'
        return jsonify(resp)

    category_info = CategoryQuestion.query.filter(
        CategoryQuestion.id != id, CategoryQuestion.name == name).first()
    if category_info:
        resp['code'] = -1
        resp['msg'] = '专业名已存在'
        return jsonify(resp)
    category_info = CategoryQuestion.query.filter(
        CategoryQuestion.id == id).first()
    if not category_info:
        category_info = CategoryQuestion()
        category_info.created_time = get_current_time()
    category_info.name = name
    category_info.type = int(type)
    category_info.category_type = 1
    category_info.is_hot = int(is_hot)
    category_info.is_free = int(is_free)
    category_info.price = price
    category_info.creat_time = get_current_time()
    category_info.main_image = main_image

    db.session.add(category_info)
    db.session.commit()
    return resp
예제 #4
0
    def get_history_from(member_history_info):
        history_list = []
        for i in range(member_history_info.count()):
            dict_history = {}
            get_current_time()
            dict_history['created_time'] = str(
                member_history_info[i].created_time)
            type3_id = member_history_info[i].type3_id
            type3 = CategoryQuestion.query.filter(
                CategoryQuestion.id == type3_id).first()
            type3_name = type3.name
            type2_name = type3.parent_category.name
            type1_name = type3.parent_category.parent_category.name
            finished_num = MemberProgres.query.filter(
                MemberProgres.member_id == g.member_info.id,
                MemberProgres.type3 == type3_id).first()
            dict_history[
                'finished_num'] = finished_num.count if finished_num else 0
            question_num = CategoryQuestion.query.filter(
                CategoryQuestion.id == type3_id).first()
            dict_history[
                'question_num'] = question_num.count if question_num else 0
            dict_history['path'] = "/".join(
                [type1_name, type2_name, type3_name])
            dict_history['type3_id'] = type3_id
            history_list.append(dict_history)

        return history_list
예제 #5
0
    def closeOrder(self, pay_order_id=0):
        if pay_order_id < 1:
            return False
        pay_order_info = PayOrder.query.filter_by(id=pay_order_id,
                                                  status=-8).first()
        if not pay_order_info:
            return False

        pay_order_items = PayOrderItem.query.filter_by(
            pay_order_id=pay_order_id).all()
        if pay_order_items:
            # 需要归还库存
            for item in pay_order_items:
                tmp_food_info = Food.query.filter_by(id=item.food_id).first()
                if tmp_food_info:
                    tmp_food_info.stock = tmp_food_info.stock + item.quantity
                    tmp_food_info.updated_time = get_current_time()
                    db.session.add(tmp_food_info)
                    db.session.commit()
                    FoodService.setStockChangeLog(item.food_id, item.quantity,
                                                  "订单取消")

        pay_order_info.status = 0
        pay_order_info.updated_time = get_current_time()
        db.session.add(pay_order_info)
        db.session.commit()
        return True
예제 #6
0
    def getAccessToken(self):
        token = None
        token_info = OauthAccessToken.query.filter(
            OauthAccessToken.expired_time >= get_current_time()).first()
        if token_info:
            token = token_info.access_token
            return token

        config_mina = app.config['MINA_APP']
        url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={0}&secret={1}"\
            .format(config_mina['appid'], config_mina['appkey'])

        r = requests.get(url=url)
        if r.status_code != 200 or not r.text:
            return token

        data = json.loads(r.text)
        now = datetime.datetime.now()
        date = now + datetime.timedelta(seconds=data['expires_in'] - 200)
        model_token = OauthAccessToken()
        model_token.access_token = data['access_token']
        model_token.expired_time = date.strftime("%Y-%m-%d %H:%M:%S")
        model_token.created_time = get_current_time()
        db.session.add(model_token)
        db.session.commit()

        return data['access_token']
예제 #7
0
def type2_set():
    if request.method == 'GET':
        val = request.values
        id = int(val['id']) if val.get('id', '') and val.get(
            'id', '').isdigit() else 0
        parent_id = int(val['parent_id']) if val.get(
            'parent_id', '') and val.get('parent_id', '').isdigit() else 1
        info = CategoryQuestion.query.filter_by(id=id).first()
        resp_data = {}
        if info:
            resp_data['info'] = info
            parent_id = info.parent_category_id
        else:
            resp_data['info'] = None
        resp_data['parent_id'] = parent_id
        return ops_render('question/type2_set.html', resp_data)

    resp = {'code': 200, 'msg': '操作成功', "data": {}}
    req = request.values
    id = int(
        req['id']) if req.get('id', '') and req.get('id', '').isdigit() else 0
    parent_id = int(req['parent_id']) if req.get('parent_id', '') and req.get(
        'parent_id', '').isdigit() else 1
    name = req['name'] if 'name' in req else ''
    price = req['price'] if 'price' in req else 0
    is_free = req['is_free'] if 'is_free' in req else 0
    is_hot = req['is_hot'] if 'is_hot' in req else 0
    if name is None or len(name) < 2:
        resp['code'] = -1
        resp['msg'] = '请输入2位及以上的章节名称'
        return jsonify(resp)
    query = CategoryQuestion.query.filter(
        CategoryQuestion.parent_category_id == parent_id)

    category_info = query.filter(CategoryQuestion.id != id,
                                 CategoryQuestion.name == name).first()
    if category_info:
        resp['code'] = -1
        resp['msg'] = '章节名已存在'
        return jsonify(resp)

    category_info = query.filter(CategoryQuestion.id == id).first()
    if not category_info:
        category_info = CategoryQuestion()
        category_info.created_time = get_current_time()

    category_info.name = name
    category_info.category_type = 2
    category_info.is_hot = int(is_hot)
    category_info.is_free = int(is_free)
    category_info.price = price
    category_info.creat_time = get_current_time()
    category_info.parent_category_id = parent_id
    db.session.add(category_info)
    db.session.commit()
    return resp
예제 #8
0
    def statSite(self, params):
        # site统计
        act = params['act']
        date = params['date']
        date_from = params['date_from']
        date_to = params['date_to']
        app.logger.info(
            "act:{0},from:{1},to:{2}".format(
                act, date_from, date_to))

        stat_pay = db.session.query(
            func.sum(
                PayOrder.total_price).label("total_pay_money")).filter(
            PayOrder.status == 1).filter(
                PayOrder.created_time >= date_from,
            PayOrder.created_time <= date_to).first()

        stat_member_count = Member.query.count()
        stat_new_member_count = Member.query.filter(
            Member.created_time >= date_from,
            Member.created_time <= date_to).count()

        stat_order_count = PayOrder.query.filter_by(
            status=1) .filter(
            PayOrder.created_time >= date_from,
            PayOrder.created_time <= date_to).count()

        stat_share_count = WxShareHistory.query.filter(
            WxShareHistory.created_time >= date_from,
            WxShareHistory.created_time <= date_to).count()

        tmp_stat_site = StatDailySite.query.filter_by(date=date).first()
        if tmp_stat_site:
            tmp_model_stat_site = tmp_stat_site
        else:
            tmp_model_stat_site = StatDailySite()
            tmp_model_stat_site.date = date
            tmp_model_stat_site.created_time = get_current_time()

        tmp_model_stat_site.total_pay_money = stat_pay[0] if stat_pay[0] else 0.00
        tmp_model_stat_site.total_new_member_count = stat_new_member_count
        tmp_model_stat_site.total_member_count = stat_member_count
        tmp_model_stat_site.total_order_count = stat_order_count
        tmp_model_stat_site.total_shared_count = stat_share_count
        tmp_model_stat_site.updated_time = get_current_time()

        # 为了测试效果模拟数据
        tmp_model_stat_site.total_pay_money = random.randint(1000, 1010)
        tmp_model_stat_site.total_new_member_count = random.randint(50, 100)
        tmp_model_stat_site.total_member_count += tmp_model_stat_site.total_new_member_count
        tmp_model_stat_site.total_order_count = random.randint(900, 1000)
        tmp_model_stat_site.total_shared_count = random.randint(1000, 2000)
        db.session.add(tmp_model_stat_site)
        db.session.commit()
예제 #9
0
    def statMember(self, params):
        # 会员统计
        act = params['act']
        date = params['date']
        date_from = params['date_from']
        date_to = params['date_to']
        app.logger.info(
            "act:{0},from:{1},to:{2}".format(
                act, date_from, date_to))

        member_list = Member.query.all()
        if not member_list:
            app.logger.info("no member list")
            return

        for member_info in member_list:
            tmp_stat_member = StatDailyMember.query.filter_by(
                date=date, member_id=member_info.id).first()
            if tmp_stat_member:
                tmp_model_stat_member = tmp_stat_member
            else:
                tmp_model_stat_member = StatDailyMember()
                tmp_model_stat_member.date = date
                tmp_model_stat_member.member_id = member_info.id
                tmp_model_stat_member.created_time = get_current_time()

            tmp_stat_pay = db.session.query(
                func.sum(
                    PayOrder.total_price).label("total_pay_money")).filter(
                PayOrder.member_id == member_info.id,
                PayOrder.status == 1).filter(
                PayOrder.created_time >= date_from,
                PayOrder.created_time <= date_to).first()
            tmp_stat_share_count = WxShareHistory.query.filter(
                WxShareHistory.member_id == member_info.id).filter(
                WxShareHistory.created_time >= date_from,
                WxShareHistory.created_time <= date_to).count()

            tmp_model_stat_member.total_shared_count = tmp_stat_share_count
            tmp_model_stat_member.total_pay_money = tmp_stat_pay[0] if tmp_stat_pay[0] else 0.00

            # 为了测试效果模拟数据
            tmp_model_stat_member.total_shared_count = random.randint(50, 100)
            tmp_model_stat_member.total_pay_money = random.randint(1000, 1010)
            tmp_model_stat_member.updated_time = get_current_time()
            db.session.add(tmp_model_stat_member)
            db.session.commit()

        return
예제 #10
0
def login():
    resp = {'code': 200, 'msg': '操作成功~', 'data': {}}
    req = request.values
    code = req['code'] if 'code' in req else ''
    if not code or len(code) < 1:
        resp['code'] = -1
        resp['msg'] = "需要code"
        return jsonify(resp)

    openid = MemberService.getWeChatOpenId(code)
    if openid is None:
        resp['code'] = -1
        resp['msg'] = "调用微信出错"
        return jsonify(resp)

    nickname = req['nickName'] if 'nickName' in req else ''
    sex = req['gender'] if 'gender' in req else 0
    avatar = req['avatarUrl'] if 'avatarUrl' in req else ''
    '''
        判断是否已经测试过,注册了直接返回一些信息
    '''
    bind_info = OauthMemberBind.query.filter_by(openid=openid, type=1).first()
    if not bind_info:
        model_member = Member()
        model_member.nickname = nickname
        model_member.sex = sex
        model_member.avatar = avatar
        model_member.salt = MemberService.geneSalt()
        model_member.updated_time = model_member.created_time = get_current_time(
        )
        db.session.add(model_member)
        db.session.commit()

        model_bind = OauthMemberBind()
        model_bind.member_id = model_member.id
        model_bind.type = 1
        model_bind.openid = openid
        model_bind.extra = ''
        model_bind.updated_time = model_bind.created_time = get_current_time()
        db.session.add(model_bind)
        db.session.commit()

        bind_info = model_bind

    member_info = Member.query.filter_by(id=bind_info.member_id).first()
    token = "%s#%s" % (MemberService.geneAuthCode(member_info), member_info.id)
    resp['data'] = {'token': token}
    return jsonify(resp)
예제 #11
0
    def statFood(self, params):
        # Food统计
        act = params['act']
        date = params['date']
        date_from = params['date_from']
        date_to = params['date_to']
        app.logger.info(
            "act:{0},from:{1},to:{2}".format(
                act, date_from, date_to))

        stat_food_list = db.session.query(
            FoodSaleChangeLog.food_id,
            func.sum(
                FoodSaleChangeLog.quantity).label("total_count"),
            func.sum(
                FoodSaleChangeLog.price).label("total_pay_money")).filter(
            FoodSaleChangeLog.created_time >= date_from,
            FoodSaleChangeLog.created_time <= date_to).group_by(
                    FoodSaleChangeLog.food_id).all()

        if not stat_food_list:
            app.logger.info("no data")
            return

        for item in stat_food_list:
            tmp_food_id = item[0]
            tmp_stat_food = StatDailyFood.query.filter_by(
                date=date, food_id=tmp_food_id).first()
            if tmp_stat_food:
                tmp_model_stat_food = tmp_stat_food
            else:
                tmp_model_stat_food = StatDailyFood()
                tmp_model_stat_food.date = date
                tmp_model_stat_food.food_id = tmp_food_id
                tmp_model_stat_food.created_time = get_current_time()

            tmp_model_stat_food.total_count = item[1]
            tmp_model_stat_food.total_pay_money = item[2]
            tmp_model_stat_food.updated_time = get_current_time()

            # 为了测试效果模拟数据
            tmp_model_stat_food.total_count = random.randint(50, 100)
            tmp_model_stat_food.total_pay_money = random.randint(1000, 1010)

            db.session.add(tmp_model_stat_food)
            db.session.commit()

        return
예제 #12
0
def catOps():
    resp = {'code': 200, 'msg': '操作成功~~', 'data': {}}
    req = request.values

    id = req['id'] if 'id' in req else 0
    act = req['act'] if 'act' in req else ''
    if not id:
        resp['code'] = -1
        resp['msg'] = "请选择要操作的分类~~"
        return jsonify(resp)

    if act not in ['remove', 'recover']:
        resp['code'] = -1
        resp['msg'] = "操作有误,请重试~~"
        return jsonify(resp)

    food_cat_info = FoodCat.query.filter_by(id=id).first()
    if not food_cat_info:
        resp['code'] = -1
        resp['msg'] = "指定分类不存在~~"
        return jsonify(resp)

    if act == "remove":
        food_cat_info.status = 0
    elif act == "recover":
        food_cat_info.status = 1

    food_cat_info.update_time = get_current_time()
    db.session.add(food_cat_info)
    db.session.commit()
    return jsonify(resp)
예제 #13
0
파일: FoodRoute.py 프로젝트: GodricLi/order
def cat_ops():
    """美食分类的删除恢复操作"""
    request_data = request.values
    res = {'code': 200, 'msg': "操作成功", 'data': {}}

    uid = request_data['id'] if 'id' in request_data else 0
    act = request_data['act'] if 'act' in request_data else ''
    if not uid:
        res['code'] = -1
        res['msg'] = '选择的账号不存在'
        return jsonify(res)
    if act not in ['remove', 'recover']:
        res['code'] = -1
        res['msg'] = '操作有误,请重试'
        return jsonify(res)

    food_info = FoodCat.query.filter_by(id=uid).first()
    if not food_info:
        res['code'] = -1
        res['msg'] = '分类不存在'
        return jsonify(res)

    if act == "remove":
        food_info.status = 0
    elif act == "recover":
        food_info.status = 1
        food_info.update_time = get_current_time()

    db.session.add(food_info)
    db.session.commit()
    return jsonify(res)
예제 #14
0
    def upload_file(file):
        config_upload = app.config['UPLOAD']
        res = {'code': 200, 'msg': '操作成功', 'data': {}}
        # 获取安全的文件名
        filename = secure_filename(file.filename)
        ext = filename.rsplit('.', 1)[1]
        if ext not in config_upload['ext']:
            res['code'] = -1
            res['msg'] = '不被允许的扩展类型'
            return res

        # 拼接文件目录
        root_path = app.root_path + config_upload['prefix_path']
        # 以当前时间创建目录,避免不兼容get_current_time
        file_dir = datetime.datetime.now().strftime('%Y%m%d')
        save_dir = root_path + file_dir
        if not os.path.exists(save_dir):
            os.mkdir(save_dir)
            # 赋予目录以及其他用户文件读写权限
            os.chmod(save_dir, stat.S_IRWXU | stat.S_IRGRP | stat.S_IRWXO)
        # 构造文件名及其扩展
        filename = str(uuid.uuid4()).replace('-', '') + '.' + ext
        # 直接保存文件
        file.save(f'{save_dir}/{filename}')

        # 将完整的文件路径加文件名存入数据库
        model_image = Image()
        model_image.file_key = file_dir + '/' + filename
        model_image.created_time = get_current_time()
        db.session.add(model_image)
        db.session.commit()

        res['data'] = {'file_key': model_image.file_key}
        return res
예제 #15
0
파일: Account.py 프로젝트: GodricLi/order
def ops():
    """
    后台账号的删除、恢复操作
    通过修改账号状态删除恢复账号
    """
    res = {'code': 200, 'msg': "操作成功", 'data': {}}
    request_data = request.values

    uid = request_data['id'] if 'id' in request_data else 0
    act = request_data['act'] if 'act' in request_data else ''
    if not uid:
        res['code'] = -1
        res['msg'] = '选择的账号不存在'
        return jsonify(res)
    if act not in ['remove', 'recover']:
        res['code'] = -1
        res['msg'] = '操作有误,请重试'
        return jsonify(res)

    user_info = User.query.filter_by(uid=uid).first()
    if not user_info:
        res['code'] = -1
        res['msg'] = '账号不存在'
        return jsonify(res)

    if act == "remove":
        user_info.status = 0
    elif act == "recover":
        user_info.status = 1

    user_info.update_time = get_current_time()
    db.session.add(user_info)
    db.session.commit()
    return jsonify(res)
예제 #16
0
def member_set():
    if request.method == 'GET':
        res = {}
        req_data = request.args
        member_id = int(req_data.get('id', 0))
        back_url = UrlManager.buildUrl('/member/index')
        if member_id < 1:
            return redirect(back_url)
        member_info = Member.query.filter_by(id=member_id).first()
        if not member_info:
            return redirect(back_url)
        if member_info.status != 1:
            return redirect(back_url)
        res['info'] = member_info
        res['current'] = 'index'
        return ops_render("member/set.html", res)
    res = {'code': 200, 'msg': '操作成功', 'data': {}}
    req_data = request.values
    member_id = req_data['id'] if 'id' in req_data else 0
    nickname = req_data['nickname'] if 'nickname' in req_data else ''
    if not nickname or len(nickname) < 1:
        res['code'] = -1
        res['msg'] = '用户名不规范'
        return jsonify(res)
    member_info = Member.query.filter_by(id=member_id).first()
    if not member_info:
        res['code'] = -1
        res['msg'] = '指定会员不存在'
        return jsonify(res)
    member_info.nickname = nickname
    member_info.update_time = get_current_time()
    db.session.add(member_info)
    db.session.commit()
    return jsonify(res)
예제 #17
0
def orderOps():
    resp = {'code': 200, 'msg': '操作成功~', 'data': {}}
    req = request.values
    member_info = g.member_info
    order_sn = req['order_sn'] if 'order_sn' in req else ''
    act = req['act'] if 'act' in req else ''
    pay_order_info = PayOrder.query.filter_by(
        order_sn=order_sn, member_id=member_info.id).first()
    if not pay_order_info:
        resp['code'] = -1
        resp['msg'] = "系统繁忙。请稍后再试~~"
        return jsonify(resp)

    if act == "cancel":
        target_pay = PayService()
        ret = target_pay.closeOrder(pay_order_id=pay_order_info.id)
        if not ret:
            resp['code'] = -1
            resp['msg'] = "系统繁忙。请稍后再试~~"
            return jsonify(resp)
    elif act == "confirm":
        pay_order_info.express_status = 1
        pay_order_info.updated_time = get_current_time()
        db.session.add(pay_order_info)
        db.session.commit()

    return jsonify(resp)
예제 #18
0
def ops():
    res = {'code': 200, 'msg': '操作成功', 'data': {}}
    req_data = request.values
    member_id = req_data['id'] if 'id' in req_data else 0
    act = req_data['act'] if 'act' in req_data else ''

    if not member_id:
        res['code'] = -1
        res['msg'] = '请选择账号'
        return jsonify(res)
    if act not in ['remove', 'recover']:
        res['code'] = -1
        res['msg'] = '操作有误'
        return jsonify(res)
    member_info = Member.query.filter_by(id=member_id).first()
    if not member_info:
        res['code'] = -1
        res['msg'] = '指定会员不存在'
        return jsonify(res)
    if act == 'remove':
        member_info.status = 0
    elif act == 'recover':
        member_info.status = 1

    member_info.update_time = get_current_time()
    db.session.add(member_info)
    db.session.commit()
    return jsonify(res)
예제 #19
0
def ops():
    resp = {'code': 200, 'msg': '操作成功~~', 'data': {}}
    req = request.values

    id = req['id'] if 'id' in req else 0
    act = req['act'] if 'act' in req else ''

    if not id:
        resp['code'] = -1
        resp['msg'] = "请选择要操作的账号~~"
        return jsonify(resp)

    if act not in ['remove', 'recover']:
        resp['code'] = -1
        resp['msg'] = "操作有误,请重试~~"
        return jsonify(resp)

    member_info = Member.query.filter_by(id=id).first()
    if not member_info:
        resp['code'] = -1
        resp['msg'] = "指定会员不存在~~"
        return jsonify(resp)

    if act == "remove":
        member_info.status = 0
    elif act == "recover":
        member_info.status = 1

    member_info.updated_time = get_current_time()
    db.session.add(member_info)
    db.session.commit()
    return jsonify(resp)
예제 #20
0
	def uploadByFile( file ):
		config_upload = app.config['UPLOAD']
		resp = { 'code':200,'msg':'操作成功~~','data':{} }
		filename = secure_filename( file.filename )
		ext = filename.rsplit(".",1)[1]
		if ext not in config_upload['ext']:
			resp['code'] = -1
			resp['msg'] = "不允许的扩展类型文件"
			return resp


		root_path = app.root_path + config_upload['prefix_path']
		#不使用getCurrentDate创建目录,为了保证其他写的可以用,这里改掉,服务器上好像对时间不兼容
		file_dir = datetime.datetime.now().strftime("%Y%m%d")
		save_dir = root_path + file_dir
		if not os.path.exists( save_dir ):
			os.mkdir( save_dir )
			os.chmod( save_dir,stat.S_IRWXU | stat.S_IRGRP |  stat.S_IRWXO )

		file_name = str( uuid.uuid4() ).replace("-","") + "." + ext
		file.save( "{0}/{1}".format( save_dir,file_name ) )

		model_image = Image()
		model_image.file_key = file_dir + "/" + file_name
		model_image.created_time = get_current_time()
		db.session.add( model_image)
		db.session.commit()

		resp['data'] = {
			'file_key': model_image.file_key
		}
		return resp
예제 #21
0
def login():
    ret = {'code': 200, 'msg': '操作成功~~', 'data': {}}
    req = request.values
    code = req['code'] if 'code' in req else ''
    if not code or len(code) < 1:
        ret['code'] = -1
        ret['msg'] = '非法传值'
        return jsonify(ret)

    openid = MemberService.getWeChatOpenId(code)
    if openid is None:
        ret['code'] = -1
        ret['msg'] = '调用微信出错'
        return jsonify(ret)

    # 判断是否已经绑定
    bind_info = OauthMemberBind.query.filter_by(openid=openid, type=1).first()
    if not bind_info:
        nickname = req['nickName'] if 'nickName' in req else ''
        sex = req['gender'] if 'gender' in req else 0
        avatar = req['avatarUrl'] if 'avatarUrl' in req else ''
        member_obj = Member()
        member_obj.nickname = nickname
        member_obj.sex = sex
        member_obj.avatar = avatar
        member_obj.salt = MemberService.geneSalt()
        member_obj.created_time = member_obj.updated_time = get_current_time()
        db.session.add(member_obj)
        db.session.commit()

        bind_obj = OauthMemberBind()
        bind_obj.member_id = member_obj.id
        bind_obj.type = 1
        bind_obj.openid = openid
        bind_obj.extra = ''
        bind_obj.created_time = bind_obj.updated_time = get_current_time()
        db.session.add(bind_obj)
        db.session.commit()

        bind_info = bind_obj

    member_info = Member.query.filter_by(id=bind_info.member_id).first()
    token = "%s#%s" % (MemberService.geneAuthCode(member_info), member_info.id)
    ret['data'] = {'token': token}
    return jsonify(ret)
예제 #22
0
    def set_item(member_id=0, food_id=0, number=0):
        if member_id < 1 or food_id < 1 or number < 1:
            return False
        cart_info = MemberCart.query.filter_by(food_id=food_id,
                                               member_id=member_id).first()
        if cart_info:
            model_cart = cart_info
        else:
            model_cart = MemberCart()
            model_cart.member_id = member_id
            model_cart.created_time = get_current_time()

        model_cart.food_id = food_id
        model_cart.quantity = number
        model_cart.updated_time = get_current_time()
        db.session.add(model_cart)
        db.session.commit()
        return True
예제 #23
0
 def addErrorLog(content):
     target = AppErrorLog()
     target.target_url = request.url
     target.referer_url = request.referrer
     target.query_params = json.dumps(request.values.to_dict())
     target.content = content
     target.created_time = get_current_time()
     db.session.add(target)
     db.session.commit()
     return True
예제 #24
0
def upload_the_execl_file():
    resp = {'code': 200, 'msg': '操作成功'}
    file = request.files['file']
    parent_id = request.values.get('parent_id', 1)
    type1_id = QuestionService.get_type1_id_from(parent_id)
    print(file.filename)  # 打印文件名
    if file.filename.split(".")[1] != 'xlsx':
        resp['msg'] = '文件格式错误'
        return resp
    f = file.read()  # 文件内容
    data = xlrd.open_workbook(file_contents=f)
    table = data.sheets()[0]
    names = data.sheet_names()  # 返回book中所有工作表的名字
    status = data.sheet_loaded(names[0])  # 检查sheet1是否导入完毕
    nrows = table.nrows  # 获取该sheet中的有效行数
    ncols = table.ncols  # 获取该sheet中的有效列数
    for i in range(2, nrows):
        q = Question()
        q.name = table.cell_value(i, 0)

        parent = CategoryQuestion.query.filter(
            CategoryQuestion.id == parent_id).first()
        parent.count += 1
        db.session.add(parent)
        parent = parent.parent_category
        parent.count += 1
        db.session.add(parent)
        parent = parent.parent_category
        parent.count += 1
        db.session.add(parent)

        if table.cell_value(i, 1) in ['单选题', '多选题']:
            q.type = 1 if table.cell_value(i, 1) == '单选题' else 2
            choices = []
            for j in range(2, 7):
                if table.cell_value(i, j):
                    choices.append(table.cell_value(i, j))
            q.choices = '#$'.join(choices) + '#$'
            q.answer = table.cell_value(i, 7)
        if table.cell_value(i, 1) == '判断题':
            q.type = 4
            q.answer = '1' if table.cell_value(i, 7) == '正确' else '0'
        if table.cell_value(i, 1) == '问答题':
            q.type = 3
            q.answer = table.cell_value(i, 7)
        if table.cell_value(i, 1) not in ['单选题', '多选题', '判断题', '问答题']:
            resp['msg'] = '不支持类型' + table.cell_value(i, 1)
            return resp
        q.parent_id = int(request.values['parent_id'])
        q.type1_id = type1_id
        q.explanation = table.cell_value(i, 8)
        q.created_time = get_current_time()
        db.session.add(q)
    db.session.commit()
    return resp
예제 #25
0
    def run(self, params):
        list = QueueList.query.filter_by(status=-1)\
            .order_by(QueueList.id.asc()).limit(1).all()
        for item in list:
            if item.queue_name == "pay":
                self.handlePay(item)

            item.status = 1
            item.updated_time = get_current_time()
            db.session.add(item)
            db.session.commit()
예제 #26
0
    def addQueue(queue_name, data=None):
        model_queue = QueueList()
        model_queue.queue_name = queue_name
        if data:
            model_queue.data = json.dumps(data)

        model_queue.created_time = model_queue.updated_time = get_current_time(
        )
        db.session.add(model_queue)
        db.session.commit()
        return True
예제 #27
0
def catSet():
    if request.method == "GET":
        resp_data = {}
        req = request.args
        id = int(req.get("id", 0))
        info = None
        if id:
            info = FoodCat.query.filter_by(id=id).first()
        resp_data['info'] = info
        resp_data['current'] = 'cat'
        return ops_render("food/cat_set.html", resp_data)

    resp = {'code': 200, 'msg': '操作成功~~', 'data': {}}
    req = request.values

    id = req['id'] if 'id' in req else 0
    name = req['name'] if 'name' in req else ''
    weight = int(
        req['weight']) if (
        'weight' in req and int(
            req['weight']) > 0) else 1

    if name is None or len(name) < 1:
        resp['code'] = -1
        resp['msg'] = "请输入符合规范的分类名称~~"
        return jsonify(resp)

    food_cat_info = FoodCat.query.filter_by(id=id).first()
    if food_cat_info:
        model_food_cat = food_cat_info
    else:
        model_food_cat = FoodCat()
        model_food_cat.created_time = get_current_time()

    model_food_cat.name = name
    model_food_cat.weight = weight
    model_food_cat.updated_time = get_current_time()
    db.session.add(model_food_cat)
    db.session.commit()
    return jsonify(resp)
예제 #28
0
def share():
    ret = {'code': 200, 'msg': '操作成功~~', 'data': {}}
    req = request.values
    url = req['url'] if 'url' in req else ''
    member_info = g.member_info
    model_share = WxShareHistory()
    if member_info:
        model_share.member_id = member_info.id
    model_share.share_url = url
    model_share.created_time = get_current_time()
    db.session.add(model_share)
    db.session.commit()
    return jsonify(ret)
예제 #29
0
 def addAccessLog():
     target = AppAccessLog()
     target.target_url = request.url
     target.referer_url = request.referrer
     target.ip = request.remote_addr
     target.query_params = json.dumps(request.values.to_dict())
     if 'current_user' in g and g.current_user is not None:
         target.uid = g.current_user.uid
     target.ua = request.headers.get('User-Agent')
     target.created_time = get_current_time()
     db.session.add(target)
     db.session.commit()
     return True
예제 #30
0
파일: Member.py 프로젝트: GodricLi/order
def login():
    res = {'code': 200, 'msg': '登录成功', 'data': {}}
    req_data = request.values
    code = req_data['code'] if 'code' in req_data else ''
    if not code or len(code) < 1:
        res['code'] = -1
        res['msg'] = '需要code'
        return jsonify(res)
    openid = MemberService.get_wechat_openid(code)
    nickname = req_data['nickName'] if 'nickName' in req_data else ''
    sex = req_data['gender'] if 'gender' in req_data else 0
    avatar = req_data['avatarUrl'] if 'avatarUrl' in req_data else ''

    # 根据openid查询用户是否已经绑定注册过
    bind_info = OauthMemberBind.query.filter_by(openid=openid, type=1).first()
    if not bind_info:
        model_member = Member()
        model_member.nickname = nickname
        model_member.sex = sex
        model_member.avatar = avatar
        model_member.updated_time = model_member.created_time = get_current_time()
        model_member.salt = MemberService.get_salt()
        db.session.add(model_member)
        db.session.commit()

        model_bind = OauthMemberBind()
        model_bind.member_id = model_member.id
        model_bind.type = 1
        model_bind.openid = openid
        model_bind.extra = ''
        model_bind.updated_time = model_bind.created_time = get_current_time()
        db.session.add(model_bind)
        db.session.commit()

        bind_info = model_bind
    # 登录成功后设置一个token返回
    member_info = Member.query.filter_by(id=bind_info.member_id).first()
    res['data']['token'] = f'{MemberService.get_member_code(member_info)}#{member_info.id}'
    return jsonify(res)