StaffController.java 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291
  1. package com.lemon.lifecenter.controller;
  2. import java.util.ArrayList;
  3. import java.util.List;
  4. import javax.servlet.http.HttpServletRequest;
  5. import javax.servlet.http.HttpServletResponse;
  6. import org.json.JSONObject;
  7. import org.slf4j.Logger;
  8. import org.slf4j.LoggerFactory;
  9. import org.springframework.beans.factory.annotation.Autowired;
  10. import org.springframework.stereotype.Controller;
  11. import org.springframework.web.bind.annotation.ModelAttribute;
  12. import org.springframework.web.bind.annotation.RequestMapping;
  13. import org.springframework.web.bind.annotation.RequestMethod;
  14. import org.springframework.web.bind.annotation.RequestParam;
  15. import org.springframework.web.bind.annotation.ResponseBody;
  16. import org.springframework.web.servlet.ModelAndView;
  17. import com.lemon.lifecenter.common.LifeCenterConfigVO;
  18. import com.lemon.lifecenter.common.LifeCenterController;
  19. import com.lemon.lifecenter.common.LifeCenterFunction;
  20. import com.lemon.lifecenter.common.LifeCenterPaging;
  21. import com.lemon.lifecenter.common.LifeCenterSessionController;
  22. import com.lemon.lifecenter.dto.CenterInfoDTO;
  23. import com.lemon.lifecenter.dto.GroupListDTO;
  24. import com.lemon.lifecenter.dto.LoginDTO;
  25. import com.lemon.lifecenter.dto.StaffDTO;
  26. import com.lemon.lifecenter.service.GroupListService;
  27. import com.lemon.lifecenter.service.LoginService;
  28. import com.lemon.lifecenter.service.StaffService;
  29. // 의료진관리 contorller
  30. @Controller
  31. @RequestMapping("/staff")
  32. public class StaffController extends LifeCenterController {
  33. private final Logger logger = LoggerFactory.getLogger(this.getClass());
  34. private LifeCenterPaging paging;
  35. @Autowired
  36. private LoginService loginService;
  37. @Autowired
  38. private StaffService memberService;
  39. @Autowired
  40. private LifeCenterConfigVO config;
  41. @Autowired
  42. private GroupListService groupListService;
  43. @RequestMapping("/new")
  44. public ModelAndView staffNew() throws Exception {
  45. List<CenterInfoDTO> centerList = memberService.selectCenterList();
  46. ModelAndView mv = setMV("staff/new");
  47. GroupListDTO dto = new GroupListDTO();
  48. List<GroupListDTO> groupList = groupListService.selectGroupList(dto);
  49. for( GroupListDTO data : groupList ) {
  50. // data.setPermissions( LifeCenterFunction.aesEncrypt( config.aesKey, config.IV, data.getPermissions() ) );
  51. data.setEncryptIdx( LifeCenterFunction.aesEncrypt( config.aesKey, config.IV, String.valueOf( data.getIdx() ) ) );
  52. }
  53. mv.addObject( "centerList", centerList );
  54. mv.addObject( "groupList", groupList );
  55. return mv;
  56. }
  57. @RequestMapping("/new/regist")
  58. public String staffNewRegist(
  59. @ModelAttribute("dto") final StaffDTO dto,
  60. @RequestParam(value="encryptIdx", required=true) String encryptIdx,
  61. @RequestParam(value="passwordConfirm", required=true) String passwordConfirm ) throws Exception {
  62. // 의료진 관리 -> 의료진 신규등록 컨트롤러
  63. // 의료진 신규등록시 -> 계정 권한은 일반사용자 권한으로 생성? -> 관리자로도 생성?
  64. // 센터하나당 관리자 권한 계정은 1개임 (시스템관리자가 센터생성할때 관리자 계정 1개 발급)
  65. // System.out.println( "permissions : " + permissions );
  66. // System.out.println( "permissions : " + LifeCenterFunction.aesDecrypt( config.aesKey, config.IV, permissions ) );
  67. System.out.println( "encIdx : " + encryptIdx );
  68. String decryptIdx = LifeCenterFunction.aesDecrypt( config.aesKey, config.IV, encryptIdx );
  69. // password 일치확인
  70. String password = dto.getPassword();
  71. if( !password.equals( passwordConfirm ) ) {
  72. // redirect page back
  73. }
  74. dto.setGroupIdx( Integer.valueOf( decryptIdx ) );
  75. dto.setPassword( LifeCenterFunction.aesEncrypt( config.aesKey, config.IV, password ) );
  76. memberService.insertStaff( dto );
  77. return "redirect:../info?staffId=" + dto.getId();
  78. }
  79. @RequestMapping("/info")
  80. public ModelAndView staffInfo(
  81. @RequestParam(value="staffId", required=false, defaultValue="") String staffID) {
  82. StaffDTO dto = new StaffDTO();
  83. dto.setId(staffID);
  84. dto = memberService.selectMemberInfo(dto);
  85. ModelAndView mv = setMV("staff/info");
  86. mv.addObject("info", dto);
  87. return mv;
  88. }
  89. @RequestMapping("/edit")
  90. public ModelAndView staffEdit(
  91. @RequestParam(value="staffId", required=false, defaultValue="") String staffId) throws Exception {
  92. List<CenterInfoDTO> centerList = memberService.selectCenterList();
  93. StaffDTO dto = new StaffDTO();
  94. dto.setId(staffId);
  95. dto = memberService.selectMemberInfo(dto);
  96. String groupIdx = LifeCenterFunction.aesEncrypt(config.aesKey, config.IV, String.valueOf(dto.getGroupIdx()));
  97. int centerCode = dto.getCenterCode();
  98. GroupListDTO gDto = new GroupListDTO();
  99. List<GroupListDTO> groupList = groupListService.selectGroupList(gDto);
  100. for( GroupListDTO data : groupList ) {
  101. // data.setPermissions( LifeCenterFunction.aesEncrypt( config.aesKey, config.IV, data.getPermissions() ) );
  102. data.setEncryptIdx( LifeCenterFunction.aesEncrypt( config.aesKey, config.IV, String.valueOf( data.getIdx() ) ) );
  103. }
  104. ModelAndView mv = setMV("staff/edit");
  105. mv.addObject("info", dto);
  106. mv.addObject("centerCode", centerCode);
  107. mv.addObject("groupIdx", groupIdx);
  108. mv.addObject("centerList", centerList);
  109. mv.addObject( "groupList", groupList );
  110. return mv;
  111. }
  112. @RequestMapping("/myinfo")
  113. public ModelAndView staffMyinfo(HttpServletRequest request,HttpServletResponse response) {
  114. String sesId = LifeCenterSessionController.getSession( request, "sesId" );
  115. StaffDTO dto = new StaffDTO();
  116. dto.setId(sesId);
  117. dto = memberService.selectMemberInfo(dto);
  118. String referer = request.getHeader( "Referer" );
  119. logger.error("myinfo refere -- > " + referer);
  120. ModelAndView mv = setMV("staff/myinfo");
  121. mv.addObject("info", dto);
  122. mv.addObject("returnUrl", referer);
  123. return mv;
  124. }
  125. @RequestMapping("myinfo/update")
  126. public String myInfoUpdate(
  127. HttpServletRequest request, HttpServletResponse response,
  128. @ModelAttribute("dto") final StaffDTO dto,
  129. @RequestParam(value="passwordNew", required=false, defaultValue="") String passwordNew,
  130. @RequestParam(value="passwordConfirm", required=false, defaultValue="") String passwordConfirm,
  131. @RequestParam(value="returnUrl", required=false, defaultValue="") String returnUrl) throws Exception {
  132. logger.error("myinfo update returnUrl -- > " + returnUrl);
  133. logger.error("dto.id -- > " + dto.getId());
  134. logger.error("dto.getPassword -- > " + dto.getPassword());
  135. String encryptPw = LifeCenterFunction.aesEncrypt(config.aesKey, config.IV, dto.getPassword());
  136. dto.setPassword(encryptPw);
  137. int mCnt = memberService.selectMemberCount(dto);
  138. if (mCnt == 1) {
  139. if (!passwordNew.equals("")) {
  140. if (passwordNew.equals(passwordConfirm)) {
  141. dto.setPassword(LifeCenterFunction.aesEncrypt(config.aesKey, config.IV, passwordNew));
  142. }
  143. }
  144. memberService.updateMember(dto);
  145. } else {
  146. LifeCenterFunction.scriptMessage( response, "alert( '비밀번호가 일치하지않습니다.' ); history.back();" );
  147. return "/common/blank";
  148. }
  149. return "redirect:" + returnUrl;
  150. // return "redi"returnUrl;
  151. }
  152. @RequestMapping("/list")
  153. public ModelAndView staffList(
  154. @ModelAttribute("dto") final StaffDTO dto,
  155. @RequestParam(value="selectState", required=false, defaultValue="") String selectState,
  156. @RequestParam(value="sData", required=false, defaultValue="") String sData,
  157. @RequestParam(value="useYn", required=false, defaultValue="") String useYn,
  158. @RequestParam(value="page", required=false, defaultValue="1") int page) {
  159. logger.error("selectState -- > " + selectState);
  160. logger.error("sData -- > " + sData);
  161. logger.error("useYn -- > " + useYn);
  162. if (selectState.equals("sId")) {
  163. dto.setId(sData);
  164. } else if (selectState.equals("sName")) {
  165. dto.setName(sData);
  166. } else {
  167. dto.setCenterName(sData);
  168. }
  169. dto.setLimit( ( Integer.valueOf( page ) - 1 ) * config.pageDataSize );
  170. dto.setLimitMax( config.pageDataSize );
  171. int total = memberService.selectMemeberListCount(dto);
  172. List<StaffDTO> list = new ArrayList<StaffDTO>();
  173. if (total > 0) {
  174. list = memberService.selectMemberList(dto);
  175. }
  176. String param = "";
  177. paging = LifeCenterPaging.getInstance();
  178. paging.paging(config, total, page, param);
  179. ModelAndView mv = setMV("staff/list");
  180. mv.addObject("total", total);
  181. mv.addObject("selectState", selectState);
  182. mv.addObject("sData", sData);
  183. mv.addObject("useYn", useYn);
  184. mv.addObject("item", list);
  185. mv.addObject("paging", paging);
  186. return mv;
  187. }
  188. @RequestMapping( value="/duplicateIdCheck", method = RequestMethod.POST )
  189. @ResponseBody
  190. public boolean duplicateIdCheck( @RequestParam( value="staffId", required = false, defaultValue = "" ) String id ) {
  191. boolean result = false; // false : 중복 , true : 중복아님
  192. JSONObject obj = new JSONObject();
  193. LoginDTO dto = new LoginDTO();
  194. if( id.trim().equals( "" ) ) {
  195. result = false;
  196. } else {
  197. dto.setId( id.trim() );
  198. int count = loginService.selectMemberIdCount( dto );
  199. if( count == 0 ) {
  200. result = true;
  201. }
  202. }
  203. // obj.put( "result" , result );
  204. return result;
  205. }
  206. @RequestMapping( value="/passwordReset", method = RequestMethod.POST )
  207. @ResponseBody
  208. public boolean passwordReset(
  209. @RequestParam( value="staffId", required = true ) String id,
  210. @RequestParam( value="type", required = true ) String type) throws Exception {
  211. logger.error("!!!!!!!!!!!!!!!!!! -- > " + id);
  212. boolean result = false;
  213. String pw = "";
  214. StaffDTO dto = new StaffDTO();
  215. dto.setId(id);
  216. if (type.equals("staff")) {
  217. pw = LifeCenterFunction.aesEncrypt(config.aesKey, config.IV, config.staffResetPw);
  218. } else {
  219. logger.error("config.centerResetPw -- > " + config.centerResetPw);
  220. pw = LifeCenterFunction.aesEncrypt(config.aesKey, config.IV, config.centerResetPw);
  221. }
  222. dto.setPassword(pw);
  223. int rts = memberService.updateMemberPwReset(dto);
  224. if (rts == 1) {
  225. result = true;
  226. }
  227. return result;
  228. }
  229. }