StaffController.java 13 KB

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