ENDRPrint/.svn/pristine/b8/b85a42d7f28f6ffdb1594a38f6b7ed88a1a9e5d0.svn-base
2024-08-14 10:33:27 +07:00

233 lines
7.6 KiB
Plaintext

package th.co.muangthai.endrprint.controller;
import org.apache.log4j.Logger;
import org.hibernate.cfg.Configuration;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
import th.co.muangthai.endrprint.controller.service.LoginService;
import th.co.muangthai.endrprint.model.bean.form.*;
import th.co.muangthai.endrprint.model.bean.form.master.EndrUserLoginForm;
import th.co.muangthai.endrprint.model.bean.master.EndrUserLoginBean;
import th.co.muangthai.endrprint.model.wfservice.MTLGetUrlService;
import th.co.muangthai.endrprint.model.wfservice.SearchPolicyDetailProxyService;
import th.co.muangthai.endrprint.util.SessionUtil;
import th.co.muangthai.endrprint.util.TextContent;
import th.co.muangthai.endrprint.util.VSMUtil;
import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.net.Inet4Address;
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
import java.util.*;
/**
* Login management
*/
@Controller
public class LoginController extends AbstractMasterController {
private Logger log = Logger.getLogger(LoginController.class);
/**
* Check Login
* @param request
* @return Object[]
*/
@RequestMapping(value = "/LoginJsonController", method = RequestMethod.POST)
public
@ResponseBody
Object[] searchGetLogin(HttpServletRequest request) {
Object[] obj = new Object[2];
try {
//log.info("LoginJsonController { " + SessionUtil.getIpClient());
log.info("LoginJsonController { ");
//รับค่าจาก page
String user = request.getParameter("user");
//แปลงค่าจาก เป็น Bean,List
EndrUserLoginForm userBeans = mapper.readValue(user, EndrUserLoginForm.class);
LoginService loginService = new LoginService();
EndrUserLoginForm loginBean = new EndrUserLoginForm();
loginBean.setUserId(userBeans.getUserId());
loginBean.setUserPassword(userBeans.getUserPassword());
EndrUserLoginForm userLogin = loginService.autherizeUser(loginBean);
obj[0] = userLogin;
obj[1] = SessionUtil.getSession().getAttribute("dv");
log.info("LoginJsonController }");
log.info("Login Id : "+ obj[0]);
return obj;//toStringJson(gsonData.toJson(obj));
} catch (Exception ex) {
log.error(ex.toString(), ex);
obj[0] = new EndrUserLoginForm();
}
return obj;
}
/**
* Check Login
* @param request
* @return Object[]
*/
@RequestMapping(value = "/json/doCheckLogin", method = RequestMethod.POST)
public
@ResponseBody
Object[] doCheckLogin(HttpServletRequest request) {
Object[] obj = new Object[1];
try {
obj[0] = SessionUtil.getSession().getAttribute("dv");
return obj;//toStringJson(gsonData.toJson(obj));
} catch (Exception ex) {
log.error(ex.toString(), ex);
obj[0] = new EndrUserLoginForm();
}
return obj;
}
/**
* get session
* @param request
* @return Object[]
*/
@RequestMapping(value = "/json/getSessionLogin", method = RequestMethod.POST)
public
@ResponseBody
Object[] getSessionLogin(HttpServletRequest request) {
Object[] obj = new Object[3];
try {
log.info("getSessionLogin {");
EndrUserLoginBean loginForm = SessionUtil.getUserLoginForm();
if (null != loginForm && null != loginForm.getUserId()) {
obj[0] = loginForm;
obj[1] = TextContent.DEPLOYMENT_VERSION;
obj[2] = "anupong".equals(loginForm.getUserId())?true:false;
log.info("getSessionLogin }");
return obj;
}
obj[0] = 1;
} catch (Exception ex) {
log.error(ex.toString(), ex);
obj[0] = 2;
//ex.printStackTrace();
}
return obj;
}
/**
* logout clearSession
* @param request
*/
@RequestMapping(value = "/logoutJsonController", method = RequestMethod.POST)
public void logout(HttpServletRequest request) {
try {
log.info("logoutJsonController");
VSMUtil.SystemPrintDebugMode("........................... {");
clearSession(request);
VSMUtil.SystemPrintDebugMode("........................... }");
} catch (Exception ex) {
// log.error(ex.toString(), ex);
}
}
/**
* Get Cookie
* @param request
* @param response
* @param ipAddress
* @return String
* @throws IOException
* @throws ServletException
*/
@RequestMapping(value = "/getCookieController" ,method = RequestMethod.POST)
public @ResponseBody
String doGetCookie(HttpServletRequest request, HttpServletResponse response ,String ipAddress)
throws IOException, ServletException{
String color = null;
try{
String classId = request.getParameter("classId");
String flag = request.getParameter("flag");
Cookie[] cookies = request.getCookies();
boolean foundCookie = false;
for(int i = 0; i < cookies.length; i++) {
Cookie cookie1 = cookies[i];
if (cookie1.getName().equals("color")) {
color = cookie1.getValue();
//log.info("bgcolor = " + cookie1.getValue());
//log.info("ip = " + cookie1.getValue());
foundCookie = true;
}else if(cookie1.getName().equals("ip")){
//log.info("ip = " + cookie1.getValue());
foundCookie = true;
}
}
if (VSMUtil.isNotEmpty(ipAddress)) {
if(flag.equals("1")) {
Cookie cookie1 = new Cookie("color", VSMUtil.isNotEmpty(classId) ? classId : "pink");
cookie1.setMaxAge(24 * 60 * 60);
response.addCookie(cookie1);
}
if(!foundCookie) {
Cookie cookie2 = new Cookie("ip", ipAddress);
cookie2.setMaxAge(24 * 60 * 60);
response.addCookie(cookie2);
}
}
}catch (Exception ex){
}
return color;
}
/**
* logout clearSession
* @param request
*/
@RequestMapping(value = "/callProcessWFMT", method = RequestMethod.POST)
public @ResponseBody
Object[] doCallProcessWFMT(HttpServletRequest request) {
String applicationNo = "",url = "";
try {
String policyNo = request.getParameter("policyNoParam");
String documentType = request.getParameter("documentTypeParam");
if(VSMUtil.isNotEmpty(policyNo)){
SearchPolicyDetailProxyService wfService = new SearchPolicyDetailProxyService();
applicationNo = wfService.querySearchPolicyDetail(policyNo);
if(VSMUtil.isNotEmpty(applicationNo)){
MTLGetUrlService getUrlService = new MTLGetUrlService();
url = getUrlService.querySearchPolicyDetail(applicationNo,documentType);
}
}else{
}
} catch (Exception ex) {
// log.error(ex.toString(), ex);
}
return new Object[]{applicationNo,url};
}
}