def add_user(*, db: Session = Depends(deps.get_db), user: schemas.UserCreate) -> Any: """用户管理-新增""" user = user.dict() deptId = user.pop("deptId") postIds = user.pop("postIds") roleIds = user.pop("roleIds") # User add_user = models.User(**user) db.add(add_user) db.flush() # department user_department = { "user_id": add_user.id, "department_id": deptId, } db.add(models.User_Department(**user_department)) db.flush() # role user_roles = [{"user_id": add_user.id, "role_id": i} for i in roleIds] db.bulk_insert_mappings(models.User_Role, user_roles) db.flush() # dict # post user_post = [{"user_id": add_user.id, "dict_id": i} for i in postIds] user_dict = user_post + [] db.bulk_insert_mappings(models.User_Dict, user_dict) db.flush() return { "code": 20000, "message": "新增成功", }
def update_user(*, db: Session = Depends(deps.get_db), user: schemas.UserUpdate) -> Any: """用户管理-修改""" user_id = user.id user = user.dict() deptId = user.pop("deptId") postIds = user.pop("postIds") roleIds = user.pop("roleIds") # User db.query(models.User).filter(models.User.id == user_id).update(user) db.flush() # department db.query(models.User_Department).filter( models.User_Department.user_id == user_id).delete() user_department = {"user_id": user_id, "department_id": deptId} db.add(models.User_Department(**user_department)) db.flush() # role db.query( models.User_Role).filter(models.User_Role.user_id == user_id).delete() user_roles = [{"user_id": user_id, "role_id": i} for i in roleIds] db.bulk_insert_mappings(models.User_Role, user_roles) db.flush() # dict db.query( models.User_Dict).filter(models.User_Dict.user_id == user_id).delete() # post user_post = [{"user_id": user_id, "dict_id": i} for i in postIds] user_dict = user_post + [] db.bulk_insert_mappings(models.User_Dict, user_dict) db.flush() return {"code": 20000, "message": "修改成功"}
def update_user( *, db: Session = Depends(deps.get_db), user: schemas.UserUpdate, current_user: models.User = Depends(deps.get_current_active_user) ) -> Any: user_id = user.id user_data = { "username": user.username, "nickname": user.nickname, "identity_card": user.identity_card, "phone": user.phone, "address": user.address, "sex": user.sex, "work_start": user.work_start, "avatar": user.avatar, "introduction": user.introduction, "is_active": user.is_active, "is_superuser": user.is_superuser, "status": user.status, } deptId = user.deptId postIds = user.postIds roleIds = user.roleIds #info db.query(models.User).filter(models.User.id == user_id).update(user_data) db.flush() #department db.query(models.User_Department).filter( models.User_Department.user_id == user_id).delete() user_department = { "user_id": user_id, "department_id": deptId, } db.add(models.User_Department(**user_department)) db.flush() #dcit #post db.query( models.User_Dict).filter(models.User_Dict.user_id == user_id).delete() user_post = [{"user_id": user_id, "dict_id": i} for i in postIds] user_dict = user_post + [] db.bulk_insert_mappings(models.User_Dict, user_dict) db.flush() #role db.query( models.User_Role).filter(models.User_Role.user_id == user_id).delete() user_roles = [{"user_id": user_id, "role_id": i} for i in roleIds] db.bulk_insert_mappings(models.User_Role, user_roles) db.flush() db.commit() return { "code": 20000, "data": "", "message": "修改成功", }
def add_user( *, db: Session = Depends(deps.get_db), user: schemas.UserCreate, current_user: models.User = Depends(deps.get_current_active_user) ) -> Any: user_data = { "username": user.username, "nickname": user.nickname, "identity_card": user.identity_card, "phone": user.phone, "address": user.address, "sex": user.sex, "hashed_password": get_password_hash("qwe123"), "introduction": user.introduction, "is_active": True, "is_superuser": False, "status": user.status, } add_user = models.User(**user_data) db.add(add_user) db.flush() deptId = user.deptId postIds = user.postIds roleIds = user.roleIds #department user_department = { "user_id": add_user.id, "department_id": deptId, } db.add(models.User_Department(**user_department)) db.flush() # dict # post user_post = [{"user_id": add_user.id, "dict_id": i} for i in postIds] user_dict = user_post + [] db.bulk_insert_mappings(models.User_Dict, user_dict) db.flush() #role user_roles = [{"user_id": add_user.id, "role_id": i} for i in roleIds] db.bulk_insert_mappings(models.User_Role, user_roles) db.flush() db.commit() return { "code": 20000, "data": "", "message": "新增成功", }
def create_file(db: Session = Depends(deps.get_db), updateSupport: bool = False, file: UploadFile = File(...)): def check_dict_label(label, code): dict = db.query(models.Dict_Data).outerjoin( models.Dict_Type, models.Dict_Type.id == models.Dict_Data.type_id).filter( models.Dict_Data.label == label, models.Dict_Type.code == code).one() return dict try: io = BytesIO(file.file.read()) wb = load_workbook(io, read_only=True) ws = wb.active # wb.worksheets[0] for row in ws.iter_rows(min_row=2): # dict_data sex = check_dict_label(row[5].value.strip(""), "sex").label status = check_dict_label(row[6].value.strip(""), "user_status").label user = { "username": row[0].value.strip(""), "nickname": row[1].value.strip(""), "identity_card": row[3].value.strip(""), "phone": row[4].value.strip(""), "sex": sex, "status": status, "hashed_password": get_password_hash(settings.INIT_PASSWORD) } department = db.query(models.Department).filter( models.Department.name == row[2].value.strip("")).one() posts = db.query(models.Dict_Data).outerjoin( models.Dict_Type, models.Dict_Type.id == models.Dict_Data.type_id).filter( models.Dict_Data.label.in_( row[7].value.strip("").split(",")), models.Dict_Type.code == "post").all() exist_user = db.query( models.User).filter(models.User.username == user["username"]) if not exist_user.first(): user = models.User(**user) db.add(user) db.flush() user_department = { "user_id": user.id, "department_id": department.id } db.add(models.User_Department(**user_department)) user_dict = [{ "user_id": user.id, "dict_id": post.id } for post in posts] db.bulk_insert_mappings(models.User_Dict, user_dict) elif updateSupport: exist_user_id = exist_user.one().id exist_user.update(user) db.flush() # department db.query(models.User_Department).filter( models.User_Department.user_id == exist_user_id).delete() user_department = { "user_id": exist_user_id, "department_id": department.id } db.add(models.User_Department(**user_department)) # post db.query(models.User_Dict).filter( models.User_Dict.user_id == exist_user_id).delete() user_dict = [{ "user_id": exist_user_id, "dict_id": post.id } for post in posts] db.bulk_insert_mappings(models.User_Dict, user_dict) return {"code": 20000, "message": "导入成功"} except Exception as exc: raise HTTPException(status_code=200, detail=f"导入失败,请检查数据! Error Reason: {exc}") finally: wb.close()