공통코드 코드기반 조회 추가
This commit is contained in:
@@ -8,7 +8,7 @@ import com.kamco.cd.kamcoback.postgres.repository.CommonCodeRepository;
|
||||
import com.kamco.cd.kamcoback.zoo.dto.AnimalDto.SearchReq;
|
||||
import jakarta.persistence.EntityNotFoundException;
|
||||
import java.util.List;
|
||||
import java.util.NoSuchElementException;
|
||||
import java.util.Optional;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.data.domain.Page;
|
||||
import org.springframework.stereotype.Service;
|
||||
@@ -40,13 +40,21 @@ public class CommonCodeCoreService implements BaseCoreService<CommonCodeDto.Basi
|
||||
|
||||
public CommonCodeDto.Basic update(Long id, CommonCodeDto.ModifyReq req) {
|
||||
CommonCodeEntity found = commonCodeRepository.findByCodeId(id)
|
||||
.orElseThrow(()->new NoSuchElementException("common code 를 찾을 수 없습니다. id : " + id));
|
||||
.orElseThrow(()->new EntityNotFoundException("common code 를 찾을 수 없습니다. id : " + id));
|
||||
|
||||
CommonCodeEntity entity = new CommonCodeEntity( id, req.getName(), req.getDescription(), req.getOrder(), req.isUsed(), found.getDeleted());
|
||||
|
||||
return commonCodeRepository.save(entity).toDto();
|
||||
}
|
||||
|
||||
public void updateOrder(CommonCodeDto.OrderReq req) {
|
||||
commonCodeRepository.updateOrder(req);
|
||||
}
|
||||
|
||||
public List<CommonCodeDto.Basic> findByCode(String code) {
|
||||
return commonCodeRepository.findByCode(code).stream().map(CommonCodeEntity::toDto).toList();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void remove(Long id) {
|
||||
CommonCodeEntity entity = commonCodeRepository.findByCodeId(id)
|
||||
|
||||
@@ -104,4 +104,8 @@ public class CommonCodeEntity extends CommonDateEntity {
|
||||
public void deleted() {
|
||||
this.deleted = true;
|
||||
}
|
||||
|
||||
public void updateOrder(int order) {
|
||||
this.order = order;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,10 +1,13 @@
|
||||
package com.kamco.cd.kamcoback.postgres.repository;
|
||||
|
||||
import com.kamco.cd.kamcoback.code.dto.CommonCodeDto;
|
||||
import com.kamco.cd.kamcoback.postgres.entity.CommonCodeEntity;
|
||||
import java.util.List;
|
||||
import java.util.Optional;
|
||||
|
||||
public interface CommonCodeRepositoryCustom {
|
||||
Optional<CommonCodeEntity> findByCodeId(Long id);
|
||||
Optional<CommonCodeEntity> findByCode(String code);
|
||||
List<CommonCodeEntity> findByAll();
|
||||
void updateOrder(CommonCodeDto.OrderReq req);
|
||||
}
|
||||
|
||||
@@ -2,11 +2,19 @@ package com.kamco.cd.kamcoback.postgres.repository;
|
||||
|
||||
import static com.kamco.cd.kamcoback.postgres.entity.QCommonCodeEntity.commonCodeEntity;
|
||||
|
||||
import com.kamco.cd.kamcoback.code.dto.CommonCodeDto;
|
||||
import com.kamco.cd.kamcoback.code.dto.CommonCodeDto.OrderReqDetail;
|
||||
import com.kamco.cd.kamcoback.postgres.entity.CommonCodeEntity;
|
||||
import com.kamco.cd.kamcoback.postgres.entity.QCommonCodeEntity;
|
||||
import com.querydsl.core.types.dsl.Expressions;
|
||||
import com.querydsl.jpa.impl.JPAQueryFactory;
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Optional;
|
||||
import java.util.Set;
|
||||
import java.util.stream.Collectors;
|
||||
import org.springframework.data.jpa.repository.support.QuerydslRepositorySupport;
|
||||
|
||||
public class CommonCodeRepositoryImpl extends QuerydslRepositorySupport implements CommonCodeRepositoryCustom {
|
||||
@@ -35,6 +43,25 @@ public class CommonCodeRepositoryImpl extends QuerydslRepositorySupport implemen
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Optional<CommonCodeEntity> findByCode(String code) {
|
||||
QCommonCodeEntity child = new QCommonCodeEntity("child");
|
||||
return Optional.ofNullable(
|
||||
queryFactory
|
||||
.selectFrom(commonCodeEntity)
|
||||
.leftJoin(commonCodeEntity.children, child)
|
||||
.fetchJoin()
|
||||
.where(
|
||||
commonCodeEntity.parent.isNull(),
|
||||
commonCodeEntity.code.eq(code),
|
||||
commonCodeEntity.used.isTrue(),
|
||||
commonCodeEntity.deleted.isFalse()
|
||||
)
|
||||
.orderBy(child.order.asc())
|
||||
.fetchOne()
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<CommonCodeEntity> findByAll() {
|
||||
QCommonCodeEntity child = new QCommonCodeEntity("child");
|
||||
@@ -49,4 +76,29 @@ public class CommonCodeRepositoryImpl extends QuerydslRepositorySupport implemen
|
||||
.orderBy(commonCodeEntity.order.asc(), child.order.asc())
|
||||
.fetch();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateOrder(CommonCodeDto.OrderReq req) {
|
||||
Map<Long, Integer> orderMap = req.getOrders().stream().
|
||||
collect(Collectors.toMap(OrderReqDetail::getId, OrderReqDetail::getOrder));
|
||||
|
||||
List<CommonCodeEntity> entity = findAllByIds(orderMap.keySet());
|
||||
|
||||
entity.forEach(commonCodeEntity -> {
|
||||
Integer order = orderMap.get(commonCodeEntity.getId());
|
||||
if(order != null) {
|
||||
commonCodeEntity.updateOrder(order);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
private List<CommonCodeEntity> findAllByIds(Set<Long> ids) {
|
||||
return queryFactory
|
||||
.selectFrom(commonCodeEntity)
|
||||
.where(
|
||||
commonCodeEntity.id.in(ids),
|
||||
commonCodeEntity.deleted.isFalse()
|
||||
)
|
||||
.fetch();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user