fairnet/src/main/java/seed/com/gtm/join/MemberJoinController.java
tolag3 6e446510cc Merge branch 'tolag3'
권한 및 메뉴관리 수정
2024-12-10 16:04:19 +09:00

340 lines
11 KiB
Java

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<String,Object> paramMap, Map<String, Object> 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<String,Object> idDuplCheck(@RequestParam Map<String,Object> 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<String,Object> 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<Map<String, Object>> 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<String,Object> paramMap, HttpSession session){
session.setAttribute("siteIdx", "case");
Map<String,Object> 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<String,Object> paramMap, Map<String, Object> 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<String,Object> paramMap, Map<String, Object> 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 <AuthorManageVO> 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("권한 등록 실패!!!!!!!!!!!!!!!!!");
}
}
}