예제 #1
0
    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
예제 #2
0
    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