huiwon.seo 4 年 前
コミット
8d4e95bf9a

+ 10 - 0
pom.xml

@@ -102,6 +102,16 @@
           <artifactId>spring-mobile-device</artifactId>
           <version>1.1.0.RELEASE</version>
         </dependency>
+        
+        <dependency>
+            <groupId>org.springframework.boot</groupId>
+            <artifactId>spring-boot-devtools</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.googlecode.json-simple</groupId>
+            <artifactId>json-simple</artifactId>
+            <version>1.1</version>
+        </dependency>
 	</dependencies>
 
 	<build>

+ 54 - 1
src/main/java/com/lemon/lifecenter/controller/LoginController.java

@@ -1,15 +1,29 @@
 package com.lemon.lifecenter.controller;
 
+import org.json.JSONObject;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.ModelAttribute;
 import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.ResponseBody;
 import org.springframework.web.servlet.ModelAndView;
 
+import com.lemon.lifecenter.common.LifeCenterConfigVO;
 import com.lemon.lifecenter.common.LifeCenterController;
+import com.lemon.lifecenter.common.LifeCenterFunction;
+import com.lemon.lifecenter.dto.LoginDTO;
+import com.lemon.lifecenter.service.LoginService;
 
 @Controller
 @RequestMapping("/login")
 public class LoginController extends LifeCenterController {
-
+    @Autowired
+    LifeCenterConfigVO config;
+    
+    @Autowired
+    LoginService loginService;
+    
     @RequestMapping("/admin")
     public ModelAndView adminLogin() {
         ModelAndView mv = setMV("login/admin");
@@ -23,4 +37,43 @@ public class LoginController extends LifeCenterController {
 
         return mv;
     }
+    
+    
+    @RequestMapping( value="/check", method = RequestMethod.POST )
+    @ResponseBody
+    public String staffLoginCheck( @ModelAttribute("dto") final LoginDTO dto ) throws Exception {
+        String resultCode = "";
+        System.out.println( "ID : " + dto.getId() );
+        System.out.println( "PASSWROD : " + dto.getPassword() );
+        
+        String encPass = LifeCenterFunction.aesEncrypt( config.aesKey, config.IV, dto.getPassword() );
+        System.out.println( "encPass: " + encPass );
+        dto.setPassword( encPass );
+        System.out.println( "dto.getPassword() : "  +  dto.getPassword() );
+        int total = loginService.selectMemberCount( dto );
+        
+        JSONObject json = new JSONObject();
+        
+        if( total == 0 ) {
+            // 로그인 failCount ++
+            resultCode = "01";
+        } else {
+            LoginDTO memberData = loginService.selectMemberData( dto );
+            
+            if( memberData.getUseYn().toUpperCase().equals( "N" ) ) {
+                // 사용이 중지된 계정
+                resultCode = "02";
+                
+            } else {
+                // 로그인 성공
+                resultCode = "success";
+            }
+        }
+            
+        json.put( "code", resultCode );
+        
+        System.out.println( "JSON : " + json );
+        
+        return json.toString();
+    }
 }

+ 91 - 0
src/main/java/com/lemon/lifecenter/dto/LoginDTO.java

@@ -6,6 +6,97 @@ import org.springframework.stereotype.Repository;
 public class LoginDTO {
     public String id;
     public String password;
+    public String createDate;
+    public String updateDate;
+    public String name;
+    public String phoneNumber;
+    public String lastLoginTime;
+    public int failCount;
+    public String useYn;
+    public int groupIdx;
+    public String centerCode;
+    public String updateById;
+
+    
+    public String getCreateDate() {
+        return createDate;
+    }
+
+    public void setCreateDate(String createDate) {
+        this.createDate = createDate;
+    }
+
+    public String getUpdateDate() {
+        return updateDate;
+    }
+
+    public void setUpdateDate(String updateDate) {
+        this.updateDate = updateDate;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getPhoneNumber() {
+        return phoneNumber;
+    }
+
+    public void setPhoneNumber(String phoneNumber) {
+        this.phoneNumber = phoneNumber;
+    }
+
+    public String getLastLoginTime() {
+        return lastLoginTime;
+    }
+
+    public void setLastLoginTime(String lastLoginTime) {
+        this.lastLoginTime = lastLoginTime;
+    }
+
+    public int getFailCount() {
+        return failCount;
+    }
+
+    public void setFailCount(int failCount) {
+        this.failCount = failCount;
+    }
+
+    public String getUseYn() {
+        return useYn;
+    }
+
+    public void setUseYn(String useYn) {
+        this.useYn = useYn;
+    }
+
+    public int getGroupIdx() {
+        return groupIdx;
+    }
+
+    public void setGroupIdx(int groupIdx) {
+        this.groupIdx = groupIdx;
+    }
+
+    public String getCenterCode() {
+        return centerCode;
+    }
+
+    public void setCenterCode(String centerCode) {
+        this.centerCode = centerCode;
+    }
+
+    public String getUpdateById() {
+        return updateById;
+    }
+
+    public void setUpdateById(String updateById) {
+        this.updateById = updateById;
+    }
 
     public String getId() {
         return id;

+ 0 - 1
src/main/java/com/lemon/lifecenter/mapper/LoginMapper.java

@@ -9,6 +9,5 @@ import com.lemon.lifecenter.dto.LoginDTO;
 @Mapper
 public interface LoginMapper {
     public int selectMemberCount(LoginDTO dto);
-
     public LoginDTO selectMemberData(LoginDTO dto);
 }

+ 1 - 0
src/main/resources/application.properties

@@ -19,3 +19,4 @@ mybatis.mapper-locations=mybatis/mapper/**/*.xml
 
 logging.level.root=debug
 spring.profiles.active=local
+spring.devtools.livereload.enabled=true

+ 25 - 17
src/main/resources/mybatis/mapper/login/login.xml

@@ -2,22 +2,30 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 
 <mapper namespace="com.lemon.lifecenter.mapper.LoginMapper">
-  <select id="selectMemberCount" parameterType="LoginDTO" resultType="LoginDTO">
-    <![CDATA[
-      SELECT COUNT(*)
-  		FROM member
- 	   WHERE id = #{id}
-     	 AND pw = #{password}
-    ]]>
-  </select>
+    <select id="selectMemberCount" parameterType="LoginDTO" resultType="int">
+        <![CDATA[
+            SELECT COUNT(*) total
+              FROM member
+             WHERE id = #{id}
+               AND password = #{password}
+        ]]>
+    </select>
   
-  <select id="selectMemberData" parameterType="LoginDTO"  resultType="LoginDTO">
-    <![CDATA[
-      SELECT id,
-      	     name
-  		FROM member
- 	   WHERE id = #{id}
-     	 AND pw = #{password}
-    ]]>
-  </select>
+    <select id="selectMemberData" parameterType="LoginDTO"  resultType="LoginDTO">
+        <![CDATA[
+            SELECT id AS id,
+                   create_date AS createDate,
+                   update_date AS updateDate,
+                   name AS name,
+                   phone_number AS phoneNumber,
+                   last_login_time AS lastLoginTime,
+                   fail_count AS failCount,
+                   use_yn AS useYn,
+                   group_idx AS groupIdx,
+                   center_code AS centerCode
+              FROM member
+             WHERE id = #{id}
+               AND password = #{password}
+        ]]>
+    </select>
 </mapper>

+ 19 - 16
src/main/webapp/WEB-INF/jsp/login/staff.jsp

@@ -29,23 +29,26 @@
 </script>
 <script>
 $( function(){
-    $("#loginForm").rules( "add", {
-        
-    })
-    $("#loginForm").validate({
-        ignoreTitle: true,
-        messages : {
-            id : {
-                required : "아이디를 입력해주세요." 
-            },
-            password : {
-                required : "비밀번호를 입력해주세요."
-            }
-        }
-    });
 });
 
+function loginFormCheck(){
+    $.ajax({
+        url      : "./check",
+        data     : $("#loginForm").serialize(),
+        method   : "POST",
+        dataType : "json",
+        success  : function( data ){
+            console.log( data );
+        },
+        error : function(){
+            
+        }
+      }).done( function(){
+
+    });
 
+    return false;
+}
 </script>
 </head>
 <body>
@@ -66,10 +69,10 @@ $( function(){
                         <div class="card">
                             <div class="card-body">
                                 <div class="m-sm-4">
-                                    <form id="loginForm" action="./check" method="post">
+                                    <form id="loginForm" action="./check" method="post" onsubmit="return loginFormCheck();">
                                         <div class="form-group">
                                             <label>아이디</label>
-                                            <input id="id" class="form-control form-control-lg" type="text" name="email" title="아이디" placeholder="아이디를 입력해주세요" tabindex="1" maxlength="20" required>
+                                            <input id="id" class="form-control form-control-lg" type="text" name="id" title="아이디" placeholder="아이디를 입력해주세요" tabindex="1" maxlength="20" required>
                                         </div>
                                         <div class="form-group">
                                             <label>비밀번호</label>