def seller_edit_get(self, user, connection): """ [어드민] seller의 본인 상세 정보수정 페이지 입장 시 확인되는 정보 Author : Chae hyun Kim Args: connection : 커넥션 user_id : 로그인 유저의 user_id Returns : seller의 상세 정보 반환 Note : n개로 존재할 수 있는 manager에 대한 정보들은 manager라는 key값 안에 존재 """ seller_dao = SellerDao() seller_get_service = seller_dao.seller_edit_get_dao(user, connection) seller_get_service['managers'] = seller_dao.get_seller_manager(user, connection) return seller_get_service
def manager_service(self, user, seller_edit_info, connection): seller_dao = SellerDao() # 키값 벨리데이션 for one_request_manager in seller_edit_info['managers']: if 'name' not in one_request_manager: raise ApiException(400, NOT_MANAGER_NAME) if 'phoneNumber' not in one_request_manager: raise ApiException(400, NOT_MANAGER_NUMBER) if 'email' not in one_request_manager: raise ApiException(400, NOT_MANAGER_EMAIL) # 중복 벨리데이션 (핸드폰 번호 중복 불허) for one_request_manager in seller_edit_info['managers']: phone = list(filter(lambda d:d['phoneNumber'] == one_request_manager['phoneNumber'], seller_edit_info['managers'])) if len(phone) > 1: raise ApiException(400, EXSISTING_MANAGER_PHONE) # 기존 매니저 리스트 db_managers = seller_dao.get_seller_manager(user, connection) # 삭제 대상 추림 => 삭제전용 메소드로 보내짐(seller_edit_delete) for row in db_managers: find_manager = list(filter(lambda x:x['id'] == row['id'], seller_edit_info['managers'])) if len(find_manager) == 0: one = { 'id' : row['id'], 'manager_id' : row['id'], 'user_id' : user['user_id'], 'changer_id' : user['changer_id'] } SellerService().seller_edit_delete(one, connection) # 수정 대상 수정 for one_request_manager in seller_edit_info['managers']: find_manager = list(filter(lambda x:x['id'] == one_request_manager['id'], db_managers)) # 기존 매니저 요청 매니저가 일치함 if len(find_manager) >= 1: one = { 'id': one_request_manager['id'], 'name': one_request_manager['name'], 'email': one_request_manager['email'], 'phoneNumber': one_request_manager['phoneNumber'], 'user_id': user['user_id'], 'changer_id' : user['changer_id'] } seller_dao.update_manager(one, connection) seller_dao.create_manager_log(one, connection) # 신규 대상을 추가 for one_request_manager in seller_edit_info['managers']: # 추가 전에 이미 soft_delete 되지 않은 manager의 수가 3 이상이면 에러 반환 check_manager_num = seller_dao.check_seller_manager_number(user, connection) if check_manager_num['totalCount'] >= 3: raise ApiException(400, MAX_LIMIT_MANAGER) # 신규는 ID가 전달 되지 않음 if one_request_manager.get('id', None) is None: one = { 'name': one_request_manager['name'], 'email': one_request_manager['email'], 'phoneNumber': one_request_manager['phoneNumber'], 'user_id': user['user_id'], 'changer_id': user['changer_id'] } one['id'] = seller_dao.insert_information_manager(one, connection) seller_dao.create_manager_log(one, connection) return True