github.com/jincm/wesharechain@v0.0.0-20210122032815-1537409ce26a/server/block/db/models.py (about) 1 #!/usr/bin/python 2 # -*- coding: utf-8 -*- 3 from sqlalchemy import Column, Table, MetaData, UniqueConstraint, ForeignKey 4 5 from sqlalchemy.types import * 6 from sqlalchemy.ext.declarative import declarative_base 7 from sqlalchemy.orm import relationship, backref 8 from datetime import datetime 9 from base import get_engine, ModelBase 10 11 Base = declarative_base() 12 13 def _to_dict(model_obj): 14 result = {} 15 for c in model_obj.__table__.columns: 16 if isinstance(getattr(model_obj, c.name, None), datetime): 17 if c.name == "birthday": 18 result.update({c.name: getattr(model_obj, c.name, None).strftime('%Y-%m-%d')}) 19 else: 20 result.update({c.name: getattr(model_obj, c.name, None).strftime('%Y-%m-%d %H:%M:%S')}) 21 elif isinstance(getattr(model_obj, c.name, None), Base): 22 result.update({c.name: getattr(model_obj, c.name, None).to_dict()}) 23 else: 24 result.update({c.name: getattr(model_obj, c.name, None)}) 25 return result 26 27 28 class UserInfo(Base, ModelBase): 29 __tablename__ = 'user_info' 30 id = Column(VARCHAR(36), primary_key=True) 31 name = Column(VARCHAR(100)) 32 nick_name = Column(VARCHAR(100)) 33 pwd = Column(VARCHAR(50)) 34 phone = Column(VARCHAR(36)) 35 activate = Column(Integer, default=0) 36 sex = Column(Integer, default=0) 37 birthday = Column(DateTime) 38 invitation = Column(VARCHAR(10)) 39 referrer_id = Column(VARCHAR(36)) 40 gold_account = Column(VARCHAR(50)) 41 create_time = Column(DateTime, default=datetime.now, nullable=False) 42 updated_time = Column(DateTime, default=datetime.now, onupdate=datetime.now) 43 deleted = Column(Boolean, default=False) 44 45 def to_dict(self): 46 return _to_dict(self) 47 48 class WxUserinfo(Base, ModelBase): 49 __tablename__ = 'wx_userinfo' 50 id = Column(VARCHAR(36), primary_key=True) 51 user_id = Column(VARCHAR(36), nullable=False) 52 openid = Column(VARCHAR(50), nullable=False) 53 code = Column(VARCHAR(36), nullable=False) 54 session_key = Column(VARCHAR(50), nullable=False) 55 wx_name = Column(VARCHAR(50)) 56 create_time = Column(DateTime, default=datetime.now, nullable=False) 57 updated_time = Column(DateTime, default=datetime.now, onupdate=datetime.now) 58 deleted = Column(Boolean, default=False) 59 60 def to_dict(self): 61 return _to_dict(self) 62 63 class VerifyManage(Base, ModelBase): 64 __tablename__ = 'verify_manage' 65 id = Column(VARCHAR(36), primary_key=True) 66 phone = Column(VARCHAR(36)) 67 email = Column(VARCHAR(50)) 68 verify_code = Column(VARCHAR(36)) 69 create_time = Column(DateTime, default=datetime.now, nullable=False) 70 updated_time = Column(DateTime, default=datetime.now, onupdate=datetime.now) 71 deleted = Column(Boolean, default=False) 72 73 def to_dict(self): 74 return _to_dict(self) 75 76 class GoldOrder(Base, ModelBase): 77 __tablename__ = 'gold_order' 78 id = Column(VARCHAR(36), primary_key=True) 79 user_id = Column(VARCHAR(36), nullable=False) 80 commodity_code = Column(VARCHAR(36), nullable=False) 81 order_type = Column(Integer, default=0) 82 original_price = Column(Float, default=0) 83 real_price = Column(Float, default=0) 84 status = Column(Integer, default=0) 85 create_time = Column(DateTime, default=datetime.now, nullable=False) 86 updated_time = Column(DateTime, default=datetime.now, onupdate=datetime.now) 87 deleted = Column(Boolean, default=False) 88 89 def to_dict(self): 90 return _to_dict(self) 91 92 class GoldCommodity(Base, ModelBase): 93 __tablename__ = 'gold_commodity' 94 id = Column(VARCHAR(36), primary_key=True) 95 name = Column(VARCHAR(50), nullable=False) 96 describe = Column(VARCHAR(500)) 97 original_price = Column(Float, default=0) 98 real_price = Column(Float, default=0) 99 commodity_type = Column(Integer, default=0) 100 img_path = Column(VARCHAR(200)) 101 create_time = Column(DateTime, default=datetime.now, nullable=False) 102 updated_time = Column(DateTime, default=datetime.now, onupdate=datetime.now) 103 deleted = Column(Boolean, default=False) 104 105 def to_dict(self): 106 return _to_dict(self) 107 108 def register_db(): 109 engine = get_engine() 110 Base.metadata.create_all(engine) 111 112 113 def unregister_db(): 114 engine = get_engine() 115 Base.metadata.drop_all(engine)