Exemple #1
0
class OrderDetail(BaseModel):
    __tablename__ = "order_detail"
    order_id = db.Column(db.String(64),
                         db.ForeignKey('orders.order_id'),
                         nullable=False)
    goods_id = db.Column(db.Integer,
                         db.ForeignKey("s_goods.id"),
                         nullable=False)
    passport_id = db.Column(db.Integer,
                            db.ForeignKey('s_user_account.id'),
                            nullable=False)
    goods_count = db.Column(db.Integer, default=1)
    goods_price = db.Column(db.DECIMAL(10, 2))

    @classmethod
    def add_order_detail_info(cls, order_id, goods_id, passport_id,
                              goods_count, goods_price):
        info = cls(order_id=order_id,
                   goods_id=goods_id,
                   passport_id=passport_id,
                   goods_count=goods_count,
                   goods_price=goods_price)
        db.session.add(info)
        db.session.commit()

    @classmethod
    def get_goods(cls, order_id):
        info = cls.query.filter_by(order_id=order_id).all()
        return info
Exemple #2
0
class Browsing(BaseModel):
    __tablename__ = "browsing_history"
    passport_id = db.Column(db.Integer,
                            db.ForeignKey("s_user_account.id"),
                            nullable=False)
    goods_id = db.Column(db.Integer,
                         db.ForeignKey("s_goods.id"),
                         nullable=False)

    @classmethod
    def add_browsing(cls, passport_id, goods_id):
        browsing = Browsing(passport_id=passport_id, goods_id=goods_id)
        db.session.add(browsing)
        db.session.commit()
Exemple #3
0
class Address(BaseModel):
    """地址模型类"""
    __tablename__ = "s_user_address"
    recipient_name = db.Column(db.String(24))
    recipient_addr = db.Column(db.String(256))
    recipient_phone = db.Column(db.String(11))
    zip_code = db.Column(db.String(6))  # 邮编地址
    is_default = db.Column(db.Boolean, default=False)  # 是否为默认地址
    passport_id = db.Column(db.Integer, db.ForeignKey("s_user_account.id"), nullable=False)

    @classmethod
    def add_one_address(cls, passport_id, recipient_name, recipient_addr, recipient_phone, zip_code):
        """添加应该收货地址"""
        addr = cls.get_one_address(passport_id=passport_id)
        obj = cls(
            passport_id=passport_id,
            recipient_name=recipient_name,
            recipient_addr=recipient_addr,
            recipient_phone=recipient_phone,
            zip_code=zip_code,
            is_default=not bool(addr)
        )
        db.session.add(obj)
        db.session.commit()
        return obj

    @classmethod
    def get_one_address(cls, passport_id):
        addr = Address.query.filter_by(passport_id=passport_id).first()
        print(addr)
        return addr
Exemple #4
0
class HeadImage(BaseModel):
    __tablename__ = "head_image"
    passport_id = db.Column(db.Integer, db.ForeignKey("s_user_account.id"), nullable=False)
    user_image = db.Column(db.String(60), default="/static/images/people.png")

    @classmethod
    def add_first_image(cls, passport_id):
        info = cls(passport_id=passport_id,
                   user_image="/static/images/people.png")
        db.session.add(info)
        db.session.commit()
Exemple #5
0
class Collect(BaseModel):
    __tablename__ = "collect"
    passport_id = db.Column(db.Integer,
                            db.ForeignKey("s_user_account.id"),
                            nullable=False)
    goods_id = db.Column(db.Integer,
                         db.ForeignKey("s_goods.id"),
                         nullable=False)
    goods_count = db.Column(db.Integer, default=1)

    @classmethod
    def get_collect(cls, goods_id):
        obj = Collect.query.filter_by(goods_id=goods_id).first()
        # print(obj)
        return obj

    @classmethod
    def add_collect(cls, passport_id, goods_id):
        collect = Collect(passport_id=passport_id, goods_id=goods_id)
        db.session.add(collect)
        db.session.commit()
        return True
Exemple #6
0
class Orders(Base):
    __tablename__ = "orders"
    order_id = db.Column(db.String(64), primary_key=True)
    passport_id = db.Column(db.Integer,
                            db.ForeignKey('s_user_account.id'),
                            nullable=False)
    addr_id = db.Column(db.Integer,
                        db.ForeignKey("s_user_address.id"),
                        nullable=False)
    total_count = db.Column(db.Integer, default=1)
    total_price = db.Column(db.DECIMAL(10, 2))
    freight_price = db.Column(db.DECIMAL(10, 2))  # 商品运费
    pay_method = db.Column(db.String(10), default="余额支付")
    order_status = db.Column(db.String(10), default="待发货")
    express = db.Column(db.String(10), default="中通快递")  # 快递方式
    leave_message = db.Column(db.String(60))  # 留言
    order_details = db.relationship("OrderDetail", backref="orders")

    @classmethod
    def add_oreder_info(cls, order_id, passport_id, addr_id, total_count,
                        total_price, freight_price, pay_method, express,
                        leave_message):
        info = cls(order_id=order_id,
                   passport_id=passport_id,
                   addr_id=addr_id,
                   total_count=total_count,
                   total_price=total_price,
                   freight_price=freight_price,
                   pay_method=pay_method,
                   express=express,
                   leave_message=leave_message)
        db.session.add(info)
        db.session.commit()

    @classmethod
    def search_orders_all(cls, passport_id):
        orders = cls.query.filter_by(passport_id=passport_id).all()
        return orders
Exemple #7
0
class Cart(BaseModel):
    __tablename__ = "carts"
    passport_id = db.Column(db.Integer,
                            db.ForeignKey("s_user_account.id"),
                            nullable=False)
    goods_id = db.Column(db.Integer,
                         db.ForeignKey("s_goods.id"),
                         nullable=False)
    goods_count = db.Column(db.Integer, default=1)

    @classmethod
    def get_one_cart_info(cls, passport_id, goods_id):
        cart_info = cls.query.filter_by(passport_id=passport_id,
                                        goods_id=goods_id).first()
        print(cart_info)
        return cart_info

    @classmethod
    def add_one_cart_info(cls, passport_id, goods_id, goods_count):
        cart_info = cls.get_one_cart_info(passport_id=passport_id,
                                          goods_id=goods_id)
        # 判断库存

        if cart_info:
            total_count = cart_info.goods_count + goods_count
            if total_count <= cart_info.goods.goods_stock:
                cart_info.goods_count = total_count
                db.session.add(cart_info)
                db.session.commit()
                return True
            else:
                return False
        else:
            # total_count = cart_info.goods_count + goods_count
            goods = Goods.query.get(goods_id)
            if goods_count <= goods.goods_stock:
                cart_info = Cart(passport_id=passport_id,
                                 goods_id=goods_id,
                                 goods_count=goods_count)
                db.session.add(cart_info)
                db.session.commit()
                return True
            else:
                return False
        # if cart_info:
        #     total_count = cart_info.goods_count+goods_count
        #     cart_info.goods_count = total_count
        #     db.session.add(cart_info)
        #     db.session.commit()
        #     return True
        # else:
        #     goods = Goods.query.get(goods_id)
        #     cart_info = Cart(
        #         passport_id=passport_id,
        #         goods_id=goods_id,
        #         goods_count=goods_count
        #     )
        #     db.session.add(cart_info)
        #     db.session.commit()
        #     return True

    @classmethod
    def update_one_cart_info(cls, passport_id, goods_id, goods_count):
        cart_info = cls.get_one_cart_info(passport_id=passport_id,
                                          goods_id=goods_id)
        if goods_count <= cart_info.goods.goods_stock:
            cart_info.goods_count = goods_count
            db.session.add(cart_info)
            db.session.commit()
            return True
        else:
            return False

    @classmethod
    def delete_cart_info(cls, passport_id, goods_id):
        try:
            cart_info = cls.get_one_cart_info(passport_id=passport_id,
                                              goods_id=goods_id)
            db.session.delete(cart_info)
            db.session.commit()
            return True
        except:
            return False

    @classmethod
    def get_cart_list_by_id_list(cls, cart_id_list):
        """获取id在cart_id_list中的购物车记录"""
        cart_list = Cart.query.filter(Cart.id.in_(cart_id_list)).all()
        return cart_list