CenterController.java 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239
  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.slf4j.Logger;
  7. import org.slf4j.LoggerFactory;
  8. import org.springframework.beans.factory.annotation.Autowired;
  9. import org.springframework.stereotype.Controller;
  10. import org.springframework.transaction.annotation.Propagation;
  11. import org.springframework.transaction.annotation.Transactional;
  12. import org.springframework.web.bind.annotation.ModelAttribute;
  13. import org.springframework.web.bind.annotation.RequestMapping;
  14. import org.springframework.web.bind.annotation.RequestParam;
  15. import org.springframework.web.servlet.ModelAndView;
  16. import com.lemon.lifecenter.common.LifeCenterConfigVO;
  17. import com.lemon.lifecenter.common.LifeCenterController;
  18. import com.lemon.lifecenter.common.LifeCenterFunction;
  19. import com.lemon.lifecenter.common.LifeCenterPaging;
  20. import com.lemon.lifecenter.common.LifeCenterSessionController;
  21. import com.lemon.lifecenter.dto.CenterInfoDTO;
  22. import com.lemon.lifecenter.dto.LocationDTO;
  23. import com.lemon.lifecenter.dto.LoginDTO;
  24. import com.lemon.lifecenter.dto.StaffDTO;
  25. import com.lemon.lifecenter.service.CenterService;
  26. import com.lemon.lifecenter.service.LoginService;
  27. import com.lemon.lifecenter.service.StaffService;
  28. // 생활치료센터관리 contorller
  29. @Controller
  30. @RequestMapping("/center")
  31. public class CenterController extends LifeCenterController {
  32. private final Logger logger = LoggerFactory.getLogger(this.getClass());
  33. @Autowired
  34. private CenterService centerService;
  35. @Autowired
  36. private StaffService memberService;
  37. @Autowired
  38. private LoginService loginService;
  39. @Autowired
  40. private LifeCenterConfigVO config;
  41. private LifeCenterPaging paging;
  42. @RequestMapping("/new")
  43. public ModelAndView centerNew() {
  44. List<LocationDTO> jurisdiction = centerService.selectLocation();
  45. List<LocationDTO> list = centerService.selectLocation();
  46. List<LocationDTO> cooperativeList = centerService.selectCooperativeHospialList();
  47. ModelAndView mv = setMV("center/new");
  48. mv.addObject("jurisdiction", jurisdiction);
  49. mv.addObject("cooperativeList", cooperativeList);
  50. list.remove(list.size()-1);
  51. mv.addObject("locationList", list);
  52. return mv;
  53. }
  54. @RequestMapping("/new/regist")
  55. @Transactional(propagation=Propagation.REQUIRED)
  56. public String centerNewRegist(
  57. @ModelAttribute("dto") final CenterInfoDTO dto,
  58. @RequestParam(value="detailAddr", required=true) String detailAddr,
  59. @RequestParam(value="staffId", required=true) String staffId,
  60. @RequestParam(value="staffPw", required=true) String staffPw,
  61. @RequestParam(value="staffName", required=true) String staffName,
  62. @RequestParam(value="staffPhoneNumber", required=true) String staffPhoneNumber) throws Exception {
  63. String centerAddress = dto.getCenterAddress() + "|" + detailAddr;
  64. dto.setCenterAddress(centerAddress);
  65. StaffDTO mDto = new StaffDTO();
  66. centerService.insertCenter(dto);
  67. mDto.setCenterCode(dto.getCenterCode());
  68. mDto.setId(staffId);
  69. // mDto.setPassword(LifeCenterFunction.aesEncrypt(config.aesKey, config.IV, staffPw));
  70. mDto.setPassword(LifeCenterFunction.sha256Encrypt(staffPw));
  71. mDto.setName(staffName);
  72. mDto.setPhoneNumber(staffPhoneNumber);
  73. mDto.setGroupIdx( 2 ); // 1: 시스템관리자 2:관리자 3:일반사용자, 센터신규등록시 아이디생성은 관리자 권한으로 생성, 센터하나에 관리자 1명으로 개발진행
  74. memberService.inserMember(mDto);
  75. return "redirect:/center/info?centerCode=" + dto.getCenterCode();
  76. }
  77. @RequestMapping("/info")
  78. public ModelAndView centerInfo(
  79. @RequestParam(value="centerCode", required=true) int centerCode) {
  80. CenterInfoDTO dto = new CenterInfoDTO();
  81. dto.setCenterCode(centerCode);
  82. dto = centerService.selectCenterInfo(dto);
  83. dto.setStaffPhoneNumber( LifeCenterFunction.phone( dto.getStaffPhoneNumber() ) );
  84. dto.setCenterNumber( LifeCenterFunction.phone( dto.getCenterNumber() ) );
  85. ModelAndView mv = setMV("center/info");
  86. String centerAddress = dto.getCenterAddress().split( "|" )[0];
  87. String detailAddress = dto.getCenterAddress().split( "|" )[1];
  88. mv.addObject("centerInfo", dto);
  89. mv.addObject( "centerAddress", centerAddress );
  90. mv.addObject( "detailAddress", detailAddress );
  91. mv.addObject("centerCode", centerCode);
  92. return mv;
  93. }
  94. @RequestMapping("/edit/update")
  95. @Transactional(propagation=Propagation.REQUIRED, rollbackFor = { RuntimeException.class, Error.class })
  96. public String centerEditUpdate(
  97. @ModelAttribute("dto") final CenterInfoDTO dto,
  98. @RequestParam(value="detailAddr", required=true) String detailAddr,
  99. @RequestParam(value="staffId", required=true) String staffId,
  100. @RequestParam(value="staffName", required=true) String staffName,
  101. @RequestParam(value="staffPhoneNumber", required=true) String staffPhoneNumber,
  102. HttpServletRequest request, HttpServletResponse response ) throws Exception {
  103. String sesGroupIdx = LifeCenterSessionController.getSession( request, "sesGroupIdx" );
  104. String referer = request.getHeader( "Referer" );
  105. if( !sesGroupIdx.equals( "1" ) ) {
  106. LifeCenterFunction.scriptMessage( response, "alertBox({ txt : '권한이 없습니다.', callBack : function(){ location.href='" + referer + "'} });" );
  107. return "/common/blank";
  108. } else {
  109. StaffDTO memberDTO = new StaffDTO();
  110. LoginDTO loginDTO = new LoginDTO();
  111. loginDTO.setId( staffId );
  112. int memberTotal = loginService.selectMemberIdCount( loginDTO );
  113. if( memberTotal == 1 ) {
  114. String address = dto.getCenterAddress() + "|" + detailAddr;
  115. dto.setCenterAddress( address );
  116. int result = centerService.updateCenterInfo( dto );
  117. System.out.println( "result cnt : " + result );
  118. if (result > 0) {
  119. memberDTO.setId( staffId );
  120. memberDTO.setName( staffName );
  121. memberDTO.setPhoneNumber(staffPhoneNumber);
  122. memberService.updateMember( memberDTO );
  123. }
  124. } else {
  125. LifeCenterFunction.scriptMessage( response, "alertBox({ txt : '비밀번호가 일치하지않습니다.', callBack : function(){ location.href='../edit?centerCode="+dto.getCenterCode()+"'} });" );
  126. return "/common/blank";
  127. }
  128. }
  129. return "redirect:/center/info?centerCode=" + dto.getCenterCode();
  130. }
  131. @RequestMapping("/edit")
  132. public ModelAndView centerEdit(
  133. @RequestParam(value="centerCode", required=true) int centerCode) {
  134. List<LocationDTO> jurisdiction = centerService.selectLocation();
  135. List<LocationDTO> list = centerService.selectLocation();
  136. List<LocationDTO> cooperativeList = centerService.selectCooperativeHospialList();
  137. CenterInfoDTO dto = new CenterInfoDTO();
  138. dto.setCenterCode(centerCode);
  139. dto = centerService.selectCenterInfo(dto);
  140. String address = dto.getCenterAddress();
  141. String mainAddr = "";
  142. String detailAddr = "";
  143. if (address.contains("|") == true) {
  144. String[] strAr = dto.getCenterAddress().split("[|]");
  145. mainAddr = strAr[0];
  146. detailAddr = strAr[1];
  147. } else {
  148. mainAddr = address;
  149. }
  150. ModelAndView mv = setMV("center/edit");
  151. list.remove(list.size()-1);
  152. mv.addObject("locationList", list);
  153. mv.addObject("jurisdiction", jurisdiction);
  154. mv.addObject("cooperativeList", cooperativeList);
  155. mv.addObject("centerInfo", dto);
  156. mv.addObject("mainAddr", mainAddr);
  157. mv.addObject("detailAddr", detailAddr);
  158. return mv;
  159. }
  160. @RequestMapping("/list")
  161. public ModelAndView centerList(
  162. @ModelAttribute("dto") final CenterInfoDTO dto,
  163. @RequestParam(value="page", required=false, defaultValue="1") int page,
  164. @RequestParam(value="centerName", required=false, defaultValue="") String centerName,
  165. @RequestParam(value="locationCode", required=false, defaultValue="") String locationCode,
  166. @RequestParam(value="startDate", required=false, defaultValue="") String startDate,
  167. @RequestParam(value="endDate", required=false, defaultValue="") String endDate) {
  168. dto.setLimit( ( Integer.valueOf( page ) - 1 ) * config.pageDataSize );
  169. dto.setLimitMax( config.pageDataSize );
  170. List<LocationDTO> list = centerService.selectLocation();
  171. int total = centerService.selectCenterCount(dto);
  172. List<CenterInfoDTO> result = new ArrayList<CenterInfoDTO>();
  173. if (total > 0) {
  174. result = centerService.selectCenterList(dto);
  175. for( CenterInfoDTO temp : result ) {
  176. result.get( result.indexOf( temp ) ).setStaffPhoneNumber( LifeCenterFunction.phone( temp.getStaffPhoneNumber() ) );
  177. }
  178. }
  179. String param = "centerName=" + dto.getCenterName() + "&locationCode=" + dto.getLocationCode() + "&startDate=" + dto.getStartDate() + "&endDate=" + dto.getEndDate();
  180. paging = LifeCenterPaging.getInstance();
  181. paging.paging(config, total, page, param);
  182. ModelAndView mv = setMV("center/list");
  183. // startDate = startDate.equals( "" ) ? LifeCenterFunction.getNow( "yyyy-MM-dd" ) : startDate;
  184. // endDate = endDate.equals( "" ) ? LifeCenterFunction.getNow( "yyyy-MM-dd" ) : endDate;
  185. mv.addObject("locationList", list);
  186. mv.addObject("locationCode", locationCode);
  187. mv.addObject("startDate", startDate);
  188. mv.addObject("endDate", endDate);
  189. mv.addObject("centerName", centerName);
  190. mv.addObject("total", total);
  191. mv.addObject("item", result);
  192. mv.addObject("paging", paging);
  193. mv.addObject("page", page);
  194. mv.addObject("pageSize", dto.getLimitMax());
  195. return mv;
  196. }
  197. }