daily/Crud/UserCrud.py

65 lines
2.2 KiB
Python
Raw Normal View History

2023-02-28 13:52:51 +08:00
from sqlalchemy.orm import Session
2023-03-01 16:04:43 +08:00
from Models.DepartmentModel import Department
from Models.PostModel import Post
2023-03-02 09:27:05 +08:00
from Models.UserModel import User, UserInfo
2023-02-28 13:52:51 +08:00
from Schemas import UserSchemas
2023-03-01 16:04:43 +08:00
import json
from Utils.SqlAlchemyUtils import get_db_i
2023-02-28 13:52:51 +08:00
def get_user_info(db: Session, openid: str):
2023-03-02 15:19:14 +08:00
user = db.query(User).filter_by(openid=openid).first()
2023-02-28 13:52:51 +08:00
return user
def create_user(db: Session, openid: str):
user = User(openid=openid)
2023-03-02 15:19:14 +08:00
db.add(user)
db.commit()
2023-02-28 13:52:51 +08:00
db.refresh(user)
return user
def change_user_info(db: Session, openid: str, user_info_change: UserSchemas.UserInfoChange):
2023-03-02 15:19:14 +08:00
db.query(User).filter_by(openid=openid).update(user_info_change.dict())
2023-02-28 13:52:51 +08:00
db.commit()
2023-03-02 15:19:14 +08:00
return db.query(User).filter_by(openid=openid).first()
2023-03-01 16:04:43 +08:00
2023-03-02 09:27:05 +08:00
# 根据email从用户信息表内配置用户数据,相当于用户接入后的数据库操作
def update_user_info_from_email(db: Session, openid: str, email: str):
user_info = db.query(UserInfo).filter_by(email=email).first()
if user_info:
db.query(User).filter_by(openid=openid).update(
{'email': email, "name": user_info.name, "post": user_info.post,
"department": user_info.department, 'registered': True})
else:
db.query(User).filter_by(openid=openid).update(
{'email': email, 'registered': True})
db.commit()
2023-03-01 16:04:43 +08:00
def load_company_config_to_db():
db = get_db_i()
try:
2023-03-02 09:27:05 +08:00
data = json.load(open('Config/company.json', 'r', encoding="utf-8"))
2023-03-01 16:04:43 +08:00
db.query(Department).delete()
db.query(Post).delete()
db.commit()
for department_type in data['部门'].keys():
for department_name in data['部门'][department_type]:
department = Department(name=department_name, type=department_type)
db.add(department)
db.commit()
department_name_dic = {item.name: item.id for item in db.query(Department).all()}
for department_name, posts in data['职务'].items():
for post_name in posts:
db.add(Post(name=post_name, belong=department_name_dic[department_name]))
db.commit()
except Exception as e:
print(e)
finally:
db.close()