diff --git a/__pycache__/crud.cpython-312.pyc b/__pycache__/crud.cpython-312.pyc index 1819740..3a37bd3 100644 Binary files a/__pycache__/crud.cpython-312.pyc and b/__pycache__/crud.cpython-312.pyc differ diff --git a/__pycache__/main.cpython-312.pyc b/__pycache__/main.cpython-312.pyc index a1c3f7f..294d084 100644 Binary files a/__pycache__/main.cpython-312.pyc and b/__pycache__/main.cpython-312.pyc differ diff --git a/__pycache__/models.cpython-312.pyc b/__pycache__/models.cpython-312.pyc index 55ac971..18ff4b9 100644 Binary files a/__pycache__/models.cpython-312.pyc and b/__pycache__/models.cpython-312.pyc differ diff --git a/__pycache__/schemas.cpython-312.pyc b/__pycache__/schemas.cpython-312.pyc index 31f4f90..d3e47b3 100644 Binary files a/__pycache__/schemas.cpython-312.pyc and b/__pycache__/schemas.cpython-312.pyc differ diff --git a/crud.py b/crud.py index 9c1e311..53d1fbe 100644 --- a/crud.py +++ b/crud.py @@ -15,6 +15,11 @@ def get_user_by_openId(db: Session, openId: str): return db.query(models.User).filter(models.User.openId == openId).first() +# 通过wxid岔村用户 +def get_user_by_wxid(db: Session, wxid: str): + return db.query(models.User).filter(models.User.wxid == wxid).first() + + # 分页查询-用户all def get_users(db: Session, skip: int = 0, limit: int = 100): return db.query(models.User).offset(skip).limit(limit).all() diff --git a/kunpeng.db b/kunpeng.db index 5ab9185..70d1b97 100644 Binary files a/kunpeng.db and b/kunpeng.db differ diff --git a/main.py b/main.py index bb19d30..92f6faa 100644 --- a/main.py +++ b/main.py @@ -51,10 +51,13 @@ def create_user(user: schemas.User, db: Session = Depends(get_db)): print('user',user) print('typeuser',type(user)) - db_user = crud.create_user(db, user) + # 检测是否存在wxid + db_user = crud.get_user_by_wxid(db, user.wxid) + print('db_user',db_user) + if db_user: raise HTTPException(status_code=400, - detail="openId already registered") + detail="wxid already registered") return crud.create_user(db=db, user=user) @@ -66,13 +69,20 @@ def read_users(skip: int = 0, limit: int = 100, db: Session = Depends(get_db)): # 根据openId查询用户 -@app.get("/users/{openId}") -def read_user(openId, db: Session = Depends(get_db)): - db_user = crud.get_user_by_openId(db, openId=openId) - if db_user is None: - raise HTTPException(status_code=404, detail="User not found") - return db_user +# @app.get("/users") +# def read_user(openId, db: Session = Depends(get_db)): +# db_user = crud.get_user_by_openId(db, openId=openId) +# if db_user is None: +# raise HTTPException(status_code=404, detail="openId not found") +# return db_user +# 根据wxid查询用户 +@app.get("/users") +def read_user(wxid, db: Session = Depends(get_db)): + db_user = crud.get_user_by_wxid(db, wxid=wxid) + if db_user is None: + raise HTTPException(status_code=404, detail="User-wxid not found") + return db_user # 监听机器人http-get消息 @app.get("/wxbot") @@ -92,6 +102,16 @@ def hellopost(requestData:dict): t.start() return json.dumps({"Code": 0}) +# 保存好友信息 +def saveWxidInfo(account_wxid,wxid): + allFriend= WXBotService.get_address_list(account_wxid) + for friendItem in allFriend['data']["contactList"]: + if friendItem['wxid']==wxid: + friendItemObj=models.User(**friendItem) + # 当前的路由函数 + create_user(db=SessionLocal(),user=friendItemObj) + + # 发送小程序模版,建议远程更新 def sendminiProgram(data, account_wxid, wxid, msgXml): @@ -214,10 +234,14 @@ def kp(event_data): kp_log = f'{type_str} 文本消息 内容:{msg}' # 将好友信息=>保存到数据库 newFriendDict=WXBotService.get_friend_info(account_wxid, wxid) - print('newFriendDict[data]---',newFriendDict['data']) + # print('newFriendDict[data]---',newFriendDict['data']) userClass=models.User(**(newFriendDict['data'])) - print('userClass====',type(userClass)) - crud.create_user(db=SessionLocal(),user=userClass) + # print('userClass====',type(userClass)) + # crud.create_user(db=SessionLocal(),user=userClass) + + + # 保存好友信息 + saveWxidInfo(account_wxid,wxid) elif msg_type == 3: # 3 图片消息 diff --git a/models.py b/models.py index 2446fa0..84d7c5e 100644 --- a/models.py +++ b/models.py @@ -10,7 +10,7 @@ class User(Base): id = Column(Integer, primary_key=True) wxid = Column(String) openId = Column(String) - sex = Column(String) #性别 + sex = Column(String) #性别 男/女 city = Column(String) #城市 country = Column(String) #"CN" province = Column(String) #"Hubei" @@ -27,6 +27,8 @@ class User(Base): v1 = Column(String) +# {'bighead': 'https://wx.qlogo.cn/mmhead/ver_1/sAOrfgticJnOSE39qcB2mtImUMyANI4NoumWzKbdf87yMYp89Jhszic3mYVgFomW45CSeBxTQK2eyiciakUr9njdvAMtZKHL8w9uIcF8feicZU9ama4xMaU1TlnT4VYam5WHN/0', 'city': 'Jingzhou', 'country': 'CN', 'labels': '', 'nickname': 'Eric', 'province': 'Hubei', 'remark': '', 'sex': '男', 'smallhead': 'https://wx.qlogo.cn/mmhead/ver_1/sAOrfgticJnOSE39qcB2mtImUMyA NI4NoumWzKbdf87yMYp89Jhszic3mYVgFomW45CSeBxTQK2eyiciakUr9njdvAMtZKHL8w9uIcF8feicZU9ama4xMaU1TlnT4VYam5WHN/132', 'source': 6, 'sourceStr': '通过朋友验证消息添加', 'usertype': 1, 'wxaccount': 'small +# zhiyun', 'wxid': 'wxid_4413224132412'} diff --git a/schemas.py b/schemas.py index 104272c..687718b 100644 --- a/schemas.py +++ b/schemas.py @@ -17,12 +17,9 @@ class UserCreate(BaseModel): labels: str source: str v1: str - - - - class User(UserCreate): id: int class Config: - orm_mode = True \ No newline at end of file + orm_mode = True +