11import { Injectable } from "@nestjs/common" ;
22import { DatabaseService } from "@src/database/database.service" ;
33import { users } from "../../../drizzle/schema/users" ;
4- import { eq , inArray } from "drizzle-orm" ;
4+ import { and , eq , inArray } from "drizzle-orm" ;
55import { UserEntity } from "@src/database/entity/user.entity" ;
66import { userAlarmSetting } from "../../../drizzle/schema/user-alarm-setting" ;
77import { bank } from "../../../drizzle/schema/bank" ;
@@ -15,13 +15,13 @@ export class UserRepository {
1515 constructor ( private readonly dbService : DatabaseService ) { }
1616
1717 /*
18- SELECT * FROM user WHERE pk = ?1;
18+ SELECT * FROM user WHERE pk = ?1 and is_deleted = false ;
1919 */
2020 async findUserByPk ( pk : string ) : Promise < UserEntity | null > {
2121 const result = await this . dbService . db
2222 . select ( )
2323 . from ( users )
24- . where ( eq ( users . pk , pk ) ) ;
24+ . where ( and ( eq ( users . pk , pk ) , eq ( users . isDeleted , false ) ) ) ;
2525
2626 if ( result . length === 0 ) {
2727 return null ;
@@ -41,13 +41,13 @@ export class UserRepository {
4141 }
4242
4343 /*
44- SELECT * FROM user WHERE idp_sub = ?1;
44+ SELECT * FROM user WHERE idp_sub = ?1 and is_deleted = false ;
4545 */
4646 async findUserByIdpSub ( idpSub : string ) : Promise < UserEntity | null > {
4747 const result = await this . dbService . db
4848 . select ( )
4949 . from ( users )
50- . where ( eq ( users . idpSub , idpSub ) ) ;
50+ . where ( and ( eq ( users . idpSub , idpSub ) , eq ( users . isDeleted , false ) ) ) ;
5151
5252 if ( result . length === 0 ) {
5353 return null ;
@@ -77,7 +77,7 @@ export class UserRepository {
7777 INNER JOIN user_alarm_setting as uas ON uas.device_fk = ?2
7878 LEFT OUTER JOIN user_bank as ub ON ub.user_fk = u.pk
7979 LEFT JOIN bank as b ON b.pk = ub.bank_fk
80- WHERE pk = ?1;
80+ WHERE pk = ?1 and u.is_deleted = false ;
8181 */
8282 async getUserInfoByPk ( userId : string , deviceId : string ) {
8383 const result = await this . dbService . db
@@ -95,7 +95,7 @@ export class UserRepository {
9595 . innerJoin ( userAlarmSetting , eq ( userAlarmSetting . deviceFk , deviceId ) )
9696 . leftJoin ( userBank , eq ( userBank . userFk , users . pk ) )
9797 . leftJoin ( bank , eq ( bank . pk , userBank . bankFk ) )
98- . where ( eq ( users . pk , userId ) ) ;
98+ . where ( and ( eq ( users . pk , userId ) , eq ( users . isDeleted , false ) ) ) ;
9999
100100 if ( result . length === 0 ) {
101101 return null ;
@@ -157,6 +157,7 @@ export class UserRepository {
157157 }
158158
159159 /*
160+ 아래 쿼리는 is_deleted=true 인 유저에 대해서도 쿼리가 진행되어야 합니다.
160161 SELECT u.pk, u.name
161162 FROM user as u
162163 WHERE u.pk in (?1);
@@ -177,6 +178,7 @@ export class UserRepository {
177178 }
178179
179180 /*
181+ 아래 쿼리는 is_deleted=true 인 유저가 쿼리하지 못합니다.
180182 SELECT u.pk, u.name
181183 FROM user as u
182184 WHERE u.pk = ?1;
0 commit comments