package seed.com.gtm.join; import java.util.List; import java.util.Map; import java.util.stream.Collector; import java.util.stream.Collectors; import javax.annotation.Resource; import javax.servlet.http.HttpSession; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import kcc.let.sec.ram.service.AuthorManageVO; import kcc.let.sec.ram.service.EgovAuthorManageService; import kcc.let.sec.rgm.service.AuthorGroup; import kcc.let.sec.rgm.service.EgovAuthorGroupService; import kcc.let.uss.umt.service.EgovMberManageService; import seed.com.gtm.util.Criteria; import seed.com.gtm.util.PageMaker; import seed.utils.SeedUtils; @Controller @RequestMapping("/gtm/case") public class MemberJoinController { @Autowired private MemberJoinService service; @Resource(name = "egovAuthorManageService") private EgovAuthorManageService egovAuthorManageService; @Resource(name = "mberManageService") private EgovMberManageService egovMberManageService; @Resource(name = "egovAuthorGroupService") private EgovAuthorGroupService egovAuthorGroupService; // /gtm/case/join/write.do @RequestMapping(value="/join/write.do", method=RequestMethod.GET) public String memberWrite(ModelMap model){ authorListSet(model); return "/seed/_extra/gtm/join/write"; } @RequestMapping(value="/join/write.do", method=RequestMethod.POST) public String memberWrite(HttpSession session, @RequestParam Map paramMap, Map map){ String joinMemberGrant = ""; String memberStatus = ""; String memberCode = ""; //암호화 String strCode = SeedUtils.getSeedMD5Code(paramMap.get("joinPass").toString()); paramMap.put("joinPass", SeedUtils.getSeedSHA256Code(strCode)); memberCode = strCode; paramMap.put("memberCode", memberCode); //권한 joinMemberGrant = "S"; memberStatus = "U";//회원상태(사용) paramMap.put("joinMemberGrant", joinMemberGrant); paramMap.put("memberStatus", memberStatus); //전화번호 String joinTel01 = SeedUtils.setReplaceNull((String)paramMap.get("joinTel01")); String joinTel02 = SeedUtils.setReplaceNull((String)paramMap.get("joinTel02")); String joinTel03 = SeedUtils.setReplaceNull((String)paramMap.get("joinTel03")); String joinTel = joinTel01 + "-" + joinTel02 + "-" + joinTel03; paramMap.put("joinTel", joinTel); //핸드폰번호 String joinPh01 = SeedUtils.setReplaceNull((String)paramMap.get("joinPh01")); String joinPh02 = SeedUtils.setReplaceNull((String)paramMap.get("joinPh02")); String joinPh03 = SeedUtils.setReplaceNull((String)paramMap.get("joinPh03")); String joinPh = joinPh01 + "-" + joinPh02 + "-" + joinPh03; paramMap.put("joinPh", joinPh); //생년월일 MEMBER_ITEM_A1에 들어감 String joinBirthY = SeedUtils.setReplaceNull((String)paramMap.get("joinBirthY")); String joinBirthM = SeedUtils.setReplaceNull((String)paramMap.get("joinBirthM")); String joinBirthD = SeedUtils.setReplaceNull((String)paramMap.get("joinBirthD")); String joinBirth = joinBirthY+joinBirthM+joinBirthD; paramMap.put("joinBirth", joinBirth); //성별은 MEMBER_ITEM_B2, 등급은 MEMBER_ITEM_C3, 비고 MEMBER_ITEM_D4 service.memberInsert(paramMap); //회원이 등록되면 그룹에도 등록 paramMap.put("groupName", "정회원"); paramMap.put("siteIdx", "seed"); int joinMemberIdx = (Integer) paramMap.get("seq"); int groupIdx = service.groupIdx(paramMap); paramMap.put("gStatus","U"); // 기본값 paramMap.put("groupIdx", groupIdx);//정회원 값 paramMap.put("joinMemberIdx", joinMemberIdx); paramMap.put("gSiteIdx", "seed"); //통합회원관리라 siteIdx를 무조건 seed로 넣는다. service.groupInsert(paramMap); //분기별 비밀번호 변경 관련 로그 service.passwdLogsInsert(paramMap); map.put("message", "common.message.reg"); map.put("url", "/gtm/case/join/list.do"); authorUpsert(paramMap.get("seq").toString(), paramMap.get("authorCode").toString()); return "/_common/jsp/message"; } @RequestMapping("/join/idCheck.do") public @ResponseBody Map idDuplCheck(@RequestParam Map paramMap){ String success = ""; int cnt = service.checkId(paramMap); if(cnt > 0){ success = "Y"; }else if(cnt == 0){ success = "N"; } paramMap.put("success", success); return paramMap; } @RequestMapping("/join/list.do") public String joinList(ModelMap model, HttpSession session, @RequestParam Map paramMap, Criteria cri){ session.setAttribute("siteIdx", "case"); paramMap.put("memberId", session.getAttribute("memberId")); paramMap.put("memberDept", session.getAttribute("memberDept")); paramMap.put("memberPosition", session.getAttribute("memberPosition")); paramMap.put("pageStart", cri.getPageStart()); paramMap.put("perPageNum", cri.getPerPageNum()); PageMaker pageMaker = new PageMaker(); pageMaker.setCri(cri); pageMaker.setTotalCount(service.listCnt(paramMap)); List> memberList = service.memberList(paramMap); model.addAttribute("memberList", memberList); model.addAttribute("pageMaker", pageMaker); return "/seed/_extra/gtm/join/list"; } @RequestMapping(value="/join/edit.do", method=RequestMethod.GET) public String memberEdit(ModelMap model,@RequestParam Map paramMap, HttpSession session){ session.setAttribute("siteIdx", "case"); Map memberInfo = service.memberOne(paramMap); model.addAttribute("memberInfo", memberInfo); String memberBirth = SeedUtils.setReplaceNull(memberInfo.get("MEMBER_ITEM_A1")); String birthY = ""; String birthM = ""; String birthD = ""; if(!memberBirth.equals("") && memberBirth != null){ birthY = memberBirth.substring(0, 4); birthM = memberBirth.substring(4, 6); birthD = memberBirth.substring(6, 8); } model.addAttribute("birthY", birthY); model.addAttribute("birthM", birthM); model.addAttribute("birthD", birthD); String memberPh = SeedUtils.setReplaceNull(memberInfo.get("MEMBER_PHONE")); String[] phList = null; if(!memberPh.equals("") && memberPh != null){ phList = memberPh.split("-"); if(phList.length >= 2){ model.addAttribute("joinPh01", phList[0]); model.addAttribute("joinPh02", phList[1]); model.addAttribute("joinPh03", phList[2]); } } String memberTel = SeedUtils.setReplaceNull(memberInfo.get("MEMBER_TEL")); String[] telList = null; if(!memberPh.equals("") && memberPh != null){ telList = memberTel.split("-"); if(telList.length >= 2){ model.addAttribute("joinTel01", telList[0]); model.addAttribute("joinTel02", telList[1]); model.addAttribute("joinTel03", telList[2]); } } authorListSet(model); try { model.addAttribute("mberManageVO", egovMberManageService.selectTMber(memberInfo.get("MEMBER_IDX").toString())); } catch (Exception e) { e.printStackTrace(); } return "/seed/_extra/gtm/join/edit"; } @RequestMapping(value="/join/edit.do", method=RequestMethod.POST) public String memberUpdate (ModelMap model,@RequestParam Map paramMap, Map map, HttpSession session){ Integer memberIdx = Integer.valueOf(SeedUtils.setReplaceNull(session.getAttribute("memberIdx"),"0")); session.setAttribute("siteIdx", "case"); String oldPass = (String)paramMap.get("oldPass"); String joinPass = (String)paramMap.get("joinPass"); String strCode2 = SeedUtils.getSeedMD5Code(joinPass); String joinPass2 = SeedUtils.getSeedSHA256Code(strCode2); System.out.println("joinPass2 : " + joinPass2); String memberCode = ""; if(oldPass.equals(joinPass2)){ map.put("message", "(message)비밀번호를 동일하게 변경할 수 없습니다"); map.put("url", "/gtm/case/join/edit.do?page=1&memberSeq="+memberIdx+"&searchType=name&searchTilte=#join_19"); return "/_common/jsp/message"; } if(!oldPass.equals(joinPass)){ //암호화 String strCode = SeedUtils.getSeedMD5Code(joinPass); paramMap.put("joinPass", SeedUtils.getSeedSHA256Code(strCode)); memberCode = strCode; paramMap.put("memberCode", memberCode); //분기별 비밀번호 변경관련 기록 service.passwdLogsUpdate(paramMap); } //전화번호 String joinTel01 = SeedUtils.setReplaceNull((String)paramMap.get("joinTel01")); String joinTel02 = SeedUtils.setReplaceNull((String)paramMap.get("joinTel02")); String joinTel03 = SeedUtils.setReplaceNull((String)paramMap.get("joinTel03")); String joinTel = joinTel01 + "-" + joinTel02 + "-" + joinTel03; paramMap.put("joinTel", joinTel); //핸드폰번호 String joinPh01 = SeedUtils.setReplaceNull((String)paramMap.get("joinPh01")); String joinPh02 = SeedUtils.setReplaceNull((String)paramMap.get("joinPh02")); String joinPh03 = SeedUtils.setReplaceNull((String)paramMap.get("joinPh03")); String joinPh = joinPh01 + "-" + joinPh02 + "-" + joinPh03; paramMap.put("joinPh", joinPh); //생년월일 MEMBER_ITEM_A1에 들어감 String joinBirthY = SeedUtils.setReplaceNull((String)paramMap.get("joinBirthY")); String joinBirthM = SeedUtils.setReplaceNull((String)paramMap.get("joinBirthM")); String joinBirthD = SeedUtils.setReplaceNull((String)paramMap.get("joinBirthD")); String joinBirth = joinBirthY+joinBirthM+joinBirthD; paramMap.put("joinBirth", joinBirth); //성별은 MEMBER_ITEM_B2, 등급은 MEMBER_ITEM_C3, 비고 MEMBER_ITEM_D4, G/W 아이디 MEMBER_ITEM_F6(기안문 연동에 필요) service.memberUpdate(paramMap); authorUpsert(paramMap.get("memberSeq").toString(), paramMap.get("authorCode").toString()); map.put("message", "common.message.mod"); map.put("url", "/gtm/case/join/list.do"); return "/_common/jsp/message"; } @RequestMapping("/join/del.do") public String memberDel(@RequestParam Map paramMap, Map map){ service.memberDel(paramMap); map.put("message", "common.message.del"); map.put("url", "/gtm/case/join/list.do"); return "/_common/jsp/message"; } private void authorListSet(ModelMap model) { AuthorManageVO authorManageVO = new AuthorManageVO(); authorManageVO.setRecordCountPerPage(999); try { List authorList = egovAuthorManageService.selectAuthorList(authorManageVO); authorList = authorList.stream() .filter(t -> !"ROLE_ANONYMOUS".equals(t.getAuthorCode()) && !"ROLE_USER_MEMBER".equals(t.getAuthorCode()) && !"ROLE_USER_MANAGER".equals(t.getAuthorCode()) ).collect(Collectors.toList()); model.addAttribute("authorList", authorList); } catch (Exception e) { System.out.println(e.getMessage()); } } private void authorUpsert(String uniqId, String authorCode) { AuthorGroup authorGroup = new AuthorGroup(); authorGroup.setUniqId(uniqId); authorGroup.setAuthorCode(authorCode); authorGroup.setMberTyCode("USR"); try { egovAuthorGroupService.insertAuthorGroupTMember(authorGroup); } catch (Exception e) { System.out.println("권한 등록 실패!!!!!!!!!!!!!!!!!"); } } }