오류 및 문제점
1. 쇼핑몰 주문 랜덤 생성
- 문제점: 쇼핑몰 주문을 랜덤 생성해야 한다.
- 해결 방안: 모든 상품을 불러온 후 난수를 생성해 상품, 수량, 주소 등 정보를 랜덤으로 넣는다.
String[] channels = {"11번가", "스마트스토어", "G마켓", "카카오선물하기", "SSG닷컴", "옥션"};
String[] orderers = {"임시아", "장원우", "고서준", "강다운", "정다운", "문하나", "임새롬", "이남규"};
String channel = channels[getRandomNumber(channels.length)];
String orderer = orderers[getRandomNumber(orderers.length)];
private int getRandomNumber(int size) {
return (int) (Math.random() * size);
}
진행 상황
1. 마이페이지
- 화주사
- 본인 정보 조회
- 계약된 3PL 상세 정보 조회
- 3PL
- 본인 정보 조회
- 계약된 화주사 목록 조회
- 계약된 화주사 상세 정보 조회
public ThreePLDTO contractedThreePLDetail(Long sellerNo) {
Matching matching = matchingRepository.findBySeller_SellerNo(sellerNo);
if(matching == null) return null;
ThreePL threePL = threePLRepository.findById(matching.getWarehouse().getThreePL().getThreePLNo()).orElse(null);
return threePL.toThreePLDTO(TimestampUtil.convertTimestampToDate(matching.getEndDate()), 0, null);
}
2. WMS
- 전체 화주사 목록 조회
- 전체 3PL 목록 조회
public UserListDTO findAllSeller(int pageNum, int countPerPage) {
Page<Seller> sellers = sellerRepo.findAll(PageRequest.of(pageNum - 1, countPerPage));
List<UserDTO> userDTOs = new ArrayList<>();
for(Seller seller : sellers) {
userDTOs.add(seller.toUserDTO());
}
UserListDTO userListDTO = UserListDTO
.builder()
.totalPage(sellers.getTotalPages())
.companys(userDTOs)
.build();
return userListDTO;
}
3. Auth
- 화주사 회원가입
- 로그인
- 3PL은 로그인 성공시 계약된 화주사 목록 함께 전달
@Transactional
public boolean registerSeller(SellerDTO sellerDTO) {
if(userRepository.findByLoginId(sellerDTO.getLoginId()) != null) return false;
if(sellerService.findByBusinessNo(sellerDTO.getBusinessNo()) != null) return false;
User user = sellerDTO.toUser();
ProductGroup productGroup = productGroupService.findByGroupName(sellerDTO.getProductGroupName());
Seller seller = sellerDTO.toSeller(productGroup, user);
Seller savedSeller = sellerService.save(seller);
return savedSeller != null;
}
public LoginResponseDTO login(LoginRequestDTO loginRequestDTO) {
User user = userRepository.findByLoginIdAndLoginPassword(loginRequestDTO.getLoginId(), loginRequestDTO.getLoginPassword());
if(user == null) return null;
LoginResponseDTO loginResponseDTO = LoginResponseDTO
.builder()
.userNo(user.getUserNo())
.userType(user.getUserType().toString())
.build();
if(user.getUserType().equals(UserType.THREE_PL)) {
List<UserDTO> userDTOs = new ArrayList<>();
List<Matching> matchings = matchingService.findByThreePLNo(user.getUserNo());
for(Matching matching : matchings) {
UserDTO userDTO = UserDTO
.builder()
.sellerNo(matching.getSeller().getSellerNo())
.companyName(matching.getSeller().getCompanyName())
.build();
userDTOs.add(userDTO);
}
loginResponseDTO.setSellers(userDTOs);
}
return loginResponseDTO;
}
참고 자료