티스토리 뷰


1. 멤버십 ID 생성


public int insertMember(MemberDTO dto)


Main클래스에서 멤버십ID를 난수로 생성( 문자 A~Z / 10진수를 append 하여 11자 생성) 하여

MemberDTO의 memberNo에 set해주고 DAO 메서드에 매개변수로 담아 호출하여 멤버십 ID를 Insert 한다.



StringBuffer memberNumber =new StringBuffer();


for(int i=0;i<12;i++){

if(randomKey.nextBoolean()){

memberNumber.append((char)((int)(randomKey.nextInt(26))+65));

}else{

memberNumber.append((randomKey.nextInt(10))); 

}

}


String memberNo = memberNumber.toString();

System.out.println("생성 멤버번호: " + memberNo);

MemberDTO memberDTO = new MemberDTO();

memberDTO.setMemberNo(memberNo);

BunCafeDAO dao = new BunCafeDAO();

dao.insertMember(memberDTO);




2. 고객의 멤버십 ID를 조회한다.


public static boolean selectMember(String memno)


멤버십 ID의 존재유무 쿼리를 작성하여 값이 있는지 없는지를 boolean형 타입으로 true와 false를 리턴한다.


Orde클래스에서 boolean형 변수를 만들고 dao 메서드에 매개변수로 담아 값을 리턴받는다.


true / false에 따른 실행 로직 조건문을 분기하여 처리한다.




if(memberNoResult.equals("")) {

JOptionPane.showMessageDialog(null, "아무것도 입력하지 않았습니다. 다시 입력해주세요.");

}else {

boolean existMem = BunCafeDAO.selectMember(memberNoResult);

if(existMem) {

JOptionPane.showMessageDialog(null, memberNoResult + " 님" + "\n" + "마일리지 " + possessionMileage);

mileageUse.setText(String.valueOf(possessionMileage));

}else {

JOptionPane.showMessageDialog(null, "등록되지 않은 ID입니다.");

}

}



3. 마일리지를 조회한다.

public static int selectMileage(String memno)


멤버십 ID에 마일리지가 얼마나 남아있는지 조회하기 위한 메서드로 역시 멤버십ID를 매개변수로 담아 호출한다.


public void actionPerformed(ActionEvent arg0) {

memberNoResult = JOptionPane.showInputDialog("멤버쉽 ID를 입력하세요.");

try {

possessionMileage = BunCafeDAO.selectMileage(memberNoResult);


} catch (SQLException e) {

e.printStackTrace();

}


if(memberNoResult.equals("")) {

JOptionPane.showMessageDialog(null, "아무것도 입력하지 않았습니다. 다시 입력해주세요.");

}else {

boolean existMem = BunCafeDAO.selectMember(memberNoResult);

if(existMem) {

JOptionPane.showMessageDialog(null, memberNoResult + " 님" + "\n" + "마일리지 " + possessionMileage);

mileageUse.setText(String.valueOf(possessionMileage));

}else {

JOptionPane.showMessageDialog(null, "등록되지 않은 ID입니다.");

}

}


}


});


4. 주문을 진행한다.



public int insertOrder(OrderDTO dto)


변수 memberNoResult는 고객의 ID를 입력한 전역 변수기때문에 OrderDTO객체 그대로 담아 dao를 호출하여

쿼리문이 실행되고 주문테이블과 상세주문테이블에 insert한다.


OrderDTO orderDTO = new OrderDTO();

orderDTO.setMemberNo(memberNoResult);

BunCafeDAO dao = new BunCafeDAO();

dao.insertOrder(orderDTO);






public int insertDetailOrder(DetailOrderDTO dto)


public int updateMileage(MemberDTO dto)


또한 마일리지가 존재하는 경우 고객의 요청에 따라 마일리지 결제를 진행한다면 이벤트 메서드를 이용하여 기능을 수행하게 한다.

이때 마일리지는 결제에 사용되었으므로 남은 마일리지를 DB에 반영해야한다.



mileageBtn.addActionListener(new ActionListener() {


@Override

public void actionPerformed(ActionEvent arg0) {

System.out.println(possessionMileage);

if(orderPrice == 0 ) {

JOptionPane.showMessageDialog(null, "상품을 먼저 선택해주세요.");

}else if(possessionMileage>=orderPrice && possessionMileage>0) {

resultMileage = possessionMileage-orderPrice;

JOptionPane.showMessageDialog(null, orderPrice + "원을 " + possessionMileage + "마일리지로  결제합니다.");

priceResult.setText("0");

mileageUse.setText(String.valueOf(resultMileage));

}else if(orderPrice>possessionMileage && possessionMileage>0) {

resultMileage = 0;

JOptionPane.showMessageDialog(null, orderPrice +"원 중 " + possessionMileage + "마일리지를 사용하여 결제합니다.");

priceResult.setText(String.valueOf(orderPrice-possessionMileage));

mileageUse.setText("0");


}else{

JOptionPane.showMessageDialog(null, "마일리지가 존재 하지 않습니다.");

}


}

});



orderBtn.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent arg0) {

OrderDTO orderDTO = new OrderDTO();

orderDTO.setMemberNo(memberNoResult);

BunCafeDAO dao = new BunCafeDAO();

dao.insertOrder(orderDTO);

try {

if(memberNoResult!=null) {

getOrderNo = BunCafeDAO.getOrderNum(memberNoResult);

DetailOrderDTO detailOrderDTO = new DetailOrderDTO();

detailOrderDTO.setTotalPrice(orderPrice);

detailOrderDTO.setOrderNum(getOrderNo);

detailOrderDTO.setEspresso(espressoCnt);

detailOrderDTO.setAmericano(americanoCnt);

detailOrderDTO.setCafelatte(cafeLatteCnt);

detailOrderDTO.setCappuccino(cappucinoCnt);

detailOrderDTO.setCafemoca(cafeMocaCnt);

detailOrderDTO.setChocolate(chocolateCnt);

dao.insertDetailOrder(detailOrderDTO);

int addMileage = orderPrice/10;

MemberDTO memberDTO = new MemberDTO();

memberDTO.setMileage(resultMileage + addMileage);

memberDTO.setMemberNo(memberNoResult);

dao.updateMileage(memberDTO);

priceResult.setText("");

mileageUse.setText("");

JOptionPane.showMessageDialog(null, "주문이 완료되었습니다." + memberNoResult + "님의 멤버쉽으로 " + (resultMileage+addMileage) + "마일리지가 적립됐습니다.");

}else {

JOptionPane.showMessageDialog(null, "멤버십 ID를 입력하세요");

}

} catch (SQLException e) {

e.printStackTrace();

}

}

});




orderBtn.addActionListener(new ActionListener() {

@Override

public void actionPerformed(ActionEvent arg0) {

OrderDTO orderDTO = new OrderDTO();

orderDTO.setMemberNo(memberNoResult);

BunCafeDAO dao = new BunCafeDAO();

dao.insertOrder(orderDTO);

try {

if(memberNoResult!=null) {

getOrderNo = BunCafeDAO.getOrderNum(memberNoResult);

DetailOrderDTO detailOrderDTO = new DetailOrderDTO();

detailOrderDTO.setTotalPrice(orderPrice);

detailOrderDTO.setOrderNum(getOrderNo);

detailOrderDTO.setEspresso(espressoCnt);

detailOrderDTO.setAmericano(americanoCnt);

detailOrderDTO.setCafelatte(cafeLatteCnt);

detailOrderDTO.setCappuccino(cappucinoCnt);

detailOrderDTO.setCafemoca(cafeMocaCnt);

detailOrderDTO.setChocolate(chocolateCnt);

dao.insertDetailOrder(detailOrderDTO);

int addMileage = orderPrice/10;

MemberDTO memberDTO = new MemberDTO();

memberDTO.setMileage(resultMileage + addMileage);

memberDTO.setMemberNo(memberNoResult);

dao.updateMileage(memberDTO);

priceResult.setText("");

mileageUse.setText("");

JOptionPane.showMessageDialog(null, "주문이 완료되었습니다." + memberNoResult + "님의 멤버쉽으로 " + (resultMileage+addMileage) + "마일리지가 적립됐습니다.");

}else {

JOptionPane.showMessageDialog(null, "멤버십 ID를 입력하세요");

}

} catch (SQLException e) {

e.printStackTrace();

}

}

});








5. 주문 결과


public static List<DetailOrderDTO> orderInfoList()


주문에 대한 결과 즉, 주문 내역을 조회 하기 위해 주문 테이블과 상세주문 테이블을 조인하여 List로 담고 


selectList형태로 결과를 조회 하는 orderInfroList 메서드를 수행한다. 






List<DetailOrderDTO> orderInfoList = BunCafeDAO.orderInfoList();


for(DetailOrderDTO i : orderInfoList) {

String getMemberNo = i.getMemberNo();


int memberNo = i.getOrderNum();


String getAmericano = Integer.toString(i.getAmericano());

String getCafelatte = Integer.toString(i.getCafelatte());

String getCafemoca = Integer.toString(i.getCafemoca());

String getCappuccino = Integer.toString(i.getCappuccino());

String getChocolate = Integer.toString(i.getChocolate());

String getEspresso = Integer.toString(i.getEspresso());




StringBuilder orderAppend = new StringBuilder();

if(!getAmericano.equals("0")) {

orderAppend = orderAppend.append("아메리카노: ").append(getAmericano + "EA");

}

if(!getCafelatte.equals("0")) {

orderAppend.append(" 카페라떼: ").append(getCafelatte + "EA");

}

if(!getCafemoca.equals("0")) {

orderAppend.append(" 카페모카: ").append(getCafemoca + "EA");

}

if(!getCappuccino.equals("0")) {

orderAppend.append(" 카푸치노: ").append(getCappuccino + "EA");

}

if(!getChocolate.equals("0")) {

orderAppend.append(" 초콜렛: ").append(getChocolate + "EA");

}

if(!getEspresso.equals("0")) {

orderAppend.append(" 에스프레소: ").append(getEspresso + "EA");


}


int getTotalPrice = i.getTotalPrice();

String orderDate = i.getOrderDate();


Object [] data = {getMemberNo,memberNo,orderAppend,getTotalPrice,orderDate};

model.addRow(data);


}



'Language > Java' 카테고리의 다른 글

Swing 컴포넌트를 이용한 카페 주문 관리 #1  (0) 2018.09.06
네트워킹  (0) 2018.09.05
입력과 출력  (0) 2018.09.05
예외처리  (0) 2018.09.04
Collections  (0) 2018.09.03
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/05   »
1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31
글 보관함