Esempio n. 1
0
def add_goods():
    # 获取用户输入信息
    title = request.form.get('title')
    img = request.files.get('img')
    price = request.form.get('price')
    detail = request.form.get('detail')

    if not title:
        return jsonify({'code': '601', 'msg': '商品名称不能为空!'})
    if not price:
        return jsonify({'code': '602', 'msg': '请输入商品价格!'})
    # 保存图片
    if img:
        # 获取项目根路径
        BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
        # 获取媒体文件路径
        MEDIA_DIR = os.path.join(BASE_DIR, 'static/media')
        # 随机生成图片名称
        filename = str(uuid.uuid4())
        i = img.mimetype.split('/')[-1]
        image = filename + '.' + i
        # 拼接图片地址
        path = os.path.join(MEDIA_DIR, image)
        img.save(path)
        img_url = '/static/media/' + image
    else:
        img_url = ''

    # 存储到数据库
    goods = Goods()
    goods.title = title
    goods.img_url = img_url
    goods.price = price
    goods.detail = detail
    db.session.add(goods)
    db.session.commit()

    return jsonify({'code': 200, 'msg': '添加成功'})
Esempio n. 2
0
def goods_update():
    try:
        res = request.get_json()
        goods_id = res.get('goods_id')
        name = res.get('name')
        price = res.get('price')
        ku_num = res.get('ku_num')
        detail = res.get('detail')
        # {'image_data':[{'img_url':'http:xxx','is_min':1},{'img_url':'http:xxx','is_min':0}]}
        image_data = res.get('image_data')
        # img_url = res.get('img_url')
        postage = res.get('postage')
        admin_id = g.user_id

        Logging.logger.info('request_args:{0}'.format(res))
        if not all([name, price, ku_num, image_data, postage]):
            return jsonify(errno=-1, errmsg='参数不完整')

        try:
            price = int(price)
            ku_num = int(ku_num)
            postage = int(postage)
        except Exception as e:
            Logging.logger.error('errmsg:{0}'.format(e))
            return jsonify(errno=-1, errmsg='参数错误')

        if goods_id:
            # 修改
            try:
                goods_id = int(goods_id)
            except Exception as e:
                Logging.logger.error('errmsg:{0}'.format(e))
                return jsonify(errno=-1, errmsg='参数错误')

            goods_obj = Goods.query.get(goods_id)
            if not goods_obj:
                return jsonify(errno=-1, errmsg='当前商品不存在')

            goods_obj.name = name
            goods_obj.price = price
            now_available_num = ku_num - (goods_obj.ku_num -
                                          goods_obj.available_num)

            if now_available_num < 0:
                return jsonify(errno=-1, errmsg='商品库存数量不能小于原已兑换数量')

            goods_obj.available_num = now_available_num
            goods_obj.ku_num = ku_num
            goods_obj.detail = detail
            goods_obj.postage = postage
            goods_obj.admin_id = admin_id
            # goods_obj.img_url = img_url

            if image_data:
                # 删除原有的商品轮播图片
                goods_img = GoodsImage.query.filter(
                    GoodsImage.goods_id == goods_id).all()
                for img in goods_img:
                    db.session.delete(img)

                # 添加新的图片
                for image in image_data:
                    image_obj = GoodsImage()
                    image_obj.goods_id = goods_id
                    image_obj.img_url = image.get('img_url')
                    image_obj.is_min = image.get('is_min')
                    db.session.add(image_obj)

            db.session.add(goods_obj)

        else:
            # 新增
            goods = Goods.query.filter(Goods.name == name).first()
            if goods:
                return jsonify(errno=-1, errmsg='该商品名称已经存在')

            goods_obj = Goods()
            goods_obj.name = name
            goods_obj.price = price
            goods_obj.ku_num = ku_num
            goods_obj.available_num = ku_num
            goods_obj.detail = detail
            goods_obj.postage = postage
            goods_obj.admin_id = admin_id
            # goods_obj.img_url = img_url

            db.session.add(goods_obj)
            db.session.commit()

            for image in image_data:
                image_obj = GoodsImage()
                image_obj.goods_id = goods_obj.id
                image_obj.img_url = image.get('img_url')
                image_obj.is_min = image.get('is_min')
                db.session.add(image_obj)

        db.session.commit()
        return jsonify(errno=0, errmsg="OK")
    except Exception as e:
        Logging.logger.error('errmsg:{0}'.format(e))
        db.session.rollback()
        return jsonify(errno=-1, errmsg='更新商品失败')