//상품코드에 따른 구매이력 삭제
public void removeOrderBySellerId(String memberId);
//상품코드에 따른 구매이력 삭제
public void removeGoodsBySellerId(String memberId);
//구매자가 구매한 이력
public void removeOrder(String memberId);
//회원의 로그인 이력 삭제
public void removeLoginHistory(String memberId);
//회원 삭제
public void removeMember(String memberId);
MemberMapper.xml 쿼리 작성
<delete id="removeMember" parameterType="String">
/*회원 삭제*/
DELETE
FROM
tb_member
WHERE
m_id = #{memberId}
</delete>
<delete id="removeLoginHistory" parameterType="String">
/*회원 로그인 이력 삭제*/
DELETE
FROM
tb_login
WHERE
login_id = #{memberId}
</delete>
<delete id="removeOrder" parameterType="String">
/*구매자가 구매한 구매 이력 삭제*/
DELETE
FROM
tb_order
WHERE
o_id = #{memberId};
</delete>
<delete id="removeGoodsBySellerId" parameterType="String">
/*판매자가 등록한 상품 삭제*/
DELETE
FROM
tb_goods
WHERE
g_seller_id = #{memberId};
</delete>
<delete id="removeOrderBySellerId" parameterType="String">
/*상품코드에 따른 구매 삭제 */
DELETE
o
FROM
tb_goods AS g
INNER JOIN
tb_order AS o
ON
g.g_code = o.o_g_code
WHERE
g.g_seller_id = #{memberId};
</delete>
MemberController 작성
/**
* 회원탈퇴처리
* defaultValue = "" 기본값 공백으로두면 if 조건식 세울 때 memberPw != null 조건을 안 넣어도 됨
*/
@PostMapping("/removeMember")
public String removeMember(@RequestParam(name="memberId", required = false) String memberId
,@RequestParam(name="memberPw", required = false, defaultValue = "") String memberPw
,RedirectAttributes reAttr) {
log.info("회원 탈퇴 처리 memberId : {}", memberId);
log.info("회원 탈퇴 처리 memberPw : {}", memberPw);
Member member = memberMapper.selectMember(memberId);
if(member != null && member.getMemberPw() != null && memberPw.equals(member.getMemberPw())) {
memberService.removeMember(member);
log.info("회원탈퇴성공");
return "redirect:/member/memberList";
}
reAttr.addAttribute("memberId", memberId);
reAttr.addAttribute("result", "회원의 정보가 일치하지 않습니다.");
log.info("회원탈퇴실패");
/*/member/removeMember?memberId=id001&result=회원의정보가일치하지않습니다.*/
return "redirect:/member/removeMember";
}