Prechádzať zdrojové kódy

front 캐시 삭제

JUSEUNG 5 rokov pred
rodič
commit
34b4c6325f
100 zmenil súbory, kde vykonal 2 pridanie a 5444 odobranie
  1. 0 1
      .gitignore
  2. 0 1
      style24.admin/style24.admin.iml
  3. 0 1
      style24.batch/style24.batch.iml
  4. 2 2
      style24.core/style24.core.iml
  5. 0 32
      style24.front/.classpath
  6. 0 15
      style24.front/.gitignore
  7. 0 42
      style24.front/.project
  8. 0 13
      style24.front/.settings/.jsdtscope
  9. 0 6
      style24.front/.settings/org.eclipse.core.resources.prefs
  10. 0 12
      style24.front/.settings/org.eclipse.jdt.core.prefs
  11. 0 4
      style24.front/.settings/org.eclipse.m2e.core.prefs
  12. 0 12
      style24.front/.settings/org.eclipse.wst.common.component
  13. 0 7
      style24.front/.settings/org.eclipse.wst.common.project.facet.core.xml
  14. 0 1
      style24.front/.settings/org.eclipse.wst.jsdt.ui.superType.container
  15. 0 1
      style24.front/.settings/org.eclipse.wst.jsdt.ui.superType.name
  16. 0 2
      style24.front/.settings/org.eclipse.wst.validation.prefs
  17. 0 2
      style24.front/.settings/org.springframework.ide.eclipse.prefs
  18. 0 111
      style24.front/pom.xml
  19. 0 14
      style24.front/src/main/java/com/style24/front/biz/dao/TsfCartDao.java
  20. 0 132
      style24.front/src/main/java/com/style24/front/biz/dao/TsfCounselDao.java
  21. 0 14
      style24.front/src/main/java/com/style24/front/biz/dao/TsfCouponDao.java
  22. 0 14
      style24.front/src/main/java/com/style24/front/biz/dao/TsfCustomerDao.java
  23. 0 14
      style24.front/src/main/java/com/style24/front/biz/dao/TsfDisplayDao.java
  24. 0 61
      style24.front/src/main/java/com/style24/front/biz/dao/TsfFaqDao.java
  25. 0 14
      style24.front/src/main/java/com/style24/front/biz/dao/TsfGiftcardDao.java
  26. 0 14
      style24.front/src/main/java/com/style24/front/biz/dao/TsfGoodsDao.java
  27. 0 100
      style24.front/src/main/java/com/style24/front/biz/dao/TsfLoginDao.java
  28. 0 52
      style24.front/src/main/java/com/style24/front/biz/dao/TsfNoticeDao.java
  29. 0 14
      style24.front/src/main/java/com/style24/front/biz/dao/TsfOrderDao.java
  30. 0 14
      style24.front/src/main/java/com/style24/front/biz/dao/TsfPlanningDao.java
  31. 0 14
      style24.front/src/main/java/com/style24/front/biz/dao/TsfPointDao.java
  32. 0 14
      style24.front/src/main/java/com/style24/front/biz/dao/TsfReviewDao.java
  33. 0 14
      style24.front/src/main/java/com/style24/front/biz/dao/TsfWishlistDao.java
  34. 0 23
      style24.front/src/main/java/com/style24/front/biz/service/TsfCartService.java
  35. 0 212
      style24.front/src/main/java/com/style24/front/biz/service/TsfCounselService.java
  36. 0 23
      style24.front/src/main/java/com/style24/front/biz/service/TsfCouponService.java
  37. 0 23
      style24.front/src/main/java/com/style24/front/biz/service/TsfCustomerService.java
  38. 0 23
      style24.front/src/main/java/com/style24/front/biz/service/TsfDisplayService.java
  39. 0 84
      style24.front/src/main/java/com/style24/front/biz/service/TsfFaqService.java
  40. 0 23
      style24.front/src/main/java/com/style24/front/biz/service/TsfGiftcardService.java
  41. 0 23
      style24.front/src/main/java/com/style24/front/biz/service/TsfGoodsService.java
  42. 0 164
      style24.front/src/main/java/com/style24/front/biz/service/TsfLoginService.java
  43. 0 81
      style24.front/src/main/java/com/style24/front/biz/service/TsfNoticeService.java
  44. 0 22
      style24.front/src/main/java/com/style24/front/biz/service/TsfOrderService.java
  45. 0 23
      style24.front/src/main/java/com/style24/front/biz/service/TsfPlanningService.java
  46. 0 22
      style24.front/src/main/java/com/style24/front/biz/service/TsfPointService.java
  47. 0 23
      style24.front/src/main/java/com/style24/front/biz/service/TsfReviewService.java
  48. 0 23
      style24.front/src/main/java/com/style24/front/biz/service/TsfWishlistService.java
  49. 0 356
      style24.front/src/main/java/com/style24/front/biz/web/TsfCallcenterController.java
  50. 0 30
      style24.front/src/main/java/com/style24/front/biz/web/TsfCartController.java
  51. 0 30
      style24.front/src/main/java/com/style24/front/biz/web/TsfCustomerController.java
  52. 0 30
      style24.front/src/main/java/com/style24/front/biz/web/TsfDisplayController.java
  53. 0 30
      style24.front/src/main/java/com/style24/front/biz/web/TsfEventController.java
  54. 0 30
      style24.front/src/main/java/com/style24/front/biz/web/TsfGoodsController.java
  55. 0 134
      style24.front/src/main/java/com/style24/front/biz/web/TsfIndexController.java
  56. 0 54
      style24.front/src/main/java/com/style24/front/biz/web/TsfMypageController.java
  57. 0 30
      style24.front/src/main/java/com/style24/front/biz/web/TsfOrderController.java
  58. 0 30
      style24.front/src/main/java/com/style24/front/biz/web/TsfPlanningController.java
  59. 0 48
      style24.front/src/main/java/com/style24/front/support/config/TsfMybatisShopConfig.java
  60. 0 97
      style24.front/src/main/java/com/style24/front/support/config/TsfRedisSessionConfig.java
  61. 0 82
      style24.front/src/main/java/com/style24/front/support/config/TsfThymeleafConfig.java
  62. 0 217
      style24.front/src/main/java/com/style24/front/support/config/TsfWebMvcConfig.java
  63. 0 306
      style24.front/src/main/java/com/style24/front/support/controller/TsfBaseController.java
  64. 0 32
      style24.front/src/main/java/com/style24/front/support/controller/TsfCustomErrorController.java
  65. 0 52
      style24.front/src/main/java/com/style24/front/support/env/TsfConstants.java
  66. 0 22
      style24.front/src/main/java/com/style24/front/support/exception/TsfDormantAccountException.java
  67. 0 22
      style24.front/src/main/java/com/style24/front/support/exception/TsfEmailDuplicationException.java
  68. 0 22
      style24.front/src/main/java/com/style24/front/support/exception/TsfLockedAccountException.java
  69. 0 22
      style24.front/src/main/java/com/style24/front/support/exception/TsfSecedeAccountException.java
  70. 0 22
      style24.front/src/main/java/com/style24/front/support/exception/TsfSessionExpiredException.java
  71. 0 53
      style24.front/src/main/java/com/style24/front/support/interceptor/TsfAflinkInterceptor.java
  72. 0 146
      style24.front/src/main/java/com/style24/front/support/interceptor/TsfDefaultInterceptor.java
  73. 0 63
      style24.front/src/main/java/com/style24/front/support/interceptor/TsfGoodsViewInterceptor.java
  74. 0 61
      style24.front/src/main/java/com/style24/front/support/interceptor/TsfLoginCheckInterceptor.java
  75. 0 97
      style24.front/src/main/java/com/style24/front/support/interceptor/TsfRememberMeInterceptor.java
  76. 0 58
      style24.front/src/main/java/com/style24/front/support/interceptor/TsfReturnUrlInterceptor.java
  77. 0 128
      style24.front/src/main/java/com/style24/front/support/security/TsfAuthenticationProvider.java
  78. 0 86
      style24.front/src/main/java/com/style24/front/support/security/TsfLoginDetails.java
  79. 0 129
      style24.front/src/main/java/com/style24/front/support/security/config/TsfSecurityConfig.java
  80. 0 60
      style24.front/src/main/java/com/style24/front/support/security/filter/TsfAuthenticationFilter.java
  81. 0 67
      style24.front/src/main/java/com/style24/front/support/security/handler/TsfLoginFailureHandler.java
  82. 0 130
      style24.front/src/main/java/com/style24/front/support/security/handler/TsfLoginSuccessHandler.java
  83. 0 52
      style24.front/src/main/java/com/style24/front/support/security/handler/TsfLogoutSuccessHandler.java
  84. 0 82
      style24.front/src/main/java/com/style24/front/support/security/handler/TsfRememberMeSuccessHandler.java
  85. 0 100
      style24.front/src/main/java/com/style24/front/support/security/session/TsfSession.java
  86. 0 53
      style24.front/src/main/java/com/style24/front/support/startup/TsfApplication.java
  87. 0 19
      style24.front/src/main/java/com/style24/front/support/startup/TsfServletInitializer.java
  88. 0 120
      style24.front/src/main/java/com/style24/persistence/TsfPageRequest.java
  89. 0 64
      style24.front/src/main/java/com/style24/persistence/domain/Counsel.java
  90. 0 38
      style24.front/src/main/java/com/style24/persistence/domain/Faq.java
  91. 0 43
      style24.front/src/main/java/com/style24/persistence/domain/Login.java
  92. 0 46
      style24.front/src/main/java/com/style24/persistence/domain/Notice.java
  93. 0 26
      style24.front/src/main/java/com/style24/persistence/domain/PersistentToken.java
  94. 0 13
      style24.front/src/main/java/com/style24/persistence/mybatis/TsfCart.xml
  95. 0 311
      style24.front/src/main/java/com/style24/persistence/mybatis/TsfCounsel.xml
  96. 0 13
      style24.front/src/main/java/com/style24/persistence/mybatis/TsfCoupon.xml
  97. 0 13
      style24.front/src/main/java/com/style24/persistence/mybatis/TsfCustomer.xml
  98. 0 13
      style24.front/src/main/java/com/style24/persistence/mybatis/TsfDisplay.xml
  99. 0 93
      style24.front/src/main/java/com/style24/persistence/mybatis/TsfFaq.xml
  100. 0 13
      style24.front/src/main/java/com/style24/persistence/mybatis/TsfGiftcard.xml

+ 0 - 1
.gitignore

@@ -13,4 +13,3 @@ target/
 ### MacOS ###
 .DS_Store
 META-INF/context.xml
-style24.front/target

+ 0 - 1
style24.admin/style24.admin.iml

@@ -254,6 +254,5 @@
     <orderEntry type="library" name="Maven: org.apache.poi:poi-ooxml-schemas:3.17" level="project" />
     <orderEntry type="library" name="Maven: org.apache.xmlbeans:xmlbeans:2.6.0" level="project" />
     <orderEntry type="library" name="Maven: stax:stax-api:1.0.1" level="project" />
-    <orderEntry type="module" module-name="style24.core" />
   </component>
 </module>

+ 0 - 1
style24.batch/style24.batch.iml

@@ -181,6 +181,5 @@
     <orderEntry type="library" name="Maven: org.apache.poi:poi-ooxml-schemas:3.17" level="project" />
     <orderEntry type="library" name="Maven: org.apache.xmlbeans:xmlbeans:2.6.0" level="project" />
     <orderEntry type="library" name="Maven: stax:stax-api:1.0.1" level="project" />
-    <orderEntry type="module" module-name="style24.core" />
   </component>
 </module>

+ 2 - 2
style24.core/style24.core.iml

@@ -11,8 +11,8 @@
     </facet>
   </component>
   <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8">
-    <output url="file://$MODULE_DIR$/../style24.admin/target/classes" />
-    <output-test url="file://$MODULE_DIR$/../style24.admin/target/test-classes" />
+    <output url="file://$MODULE_DIR$/target/classes" />
+    <output-test url="file://$MODULE_DIR$/target/test-classes" />
     <content url="file://$MODULE_DIR$">
       <sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
       <excludeFolder url="file://$MODULE_DIR$/target" />

+ 0 - 32
style24.front/.classpath

@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry including="**/*.java" kind="src" output="target/classes" path="src/main/java">
-		<attributes>
-			<attribute name="optional" value="true"/>
-			<attribute name="maven.pomderived" value="true"/>
-		</attributes>
-	</classpathentry>
-	<classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources">
-		<attributes>
-			<attribute name="maven.pomderived" value="true"/>
-		</attributes>
-	</classpathentry>
-	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8">
-		<attributes>
-			<attribute name="maven.pomderived" value="true"/>
-		</attributes>
-	</classpathentry>
-	<classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER">
-		<attributes>
-			<attribute name="maven.pomderived" value="true"/>
-			<attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/lib"/>
-		</attributes>
-	</classpathentry>
-	<classpathentry kind="con" path="org.eclipse.jst.server.core.container/org.eclipse.jst.server.tomcat.runtimeTarget/Apache Tomcat v9.0.22"/>
-	<classpathentry kind="lib" path="/style24.core/target/classes">
-		<attributes>
-			<attribute name="org.eclipse.jst.component.dependency" value="/WEB-INF/classes"/>
-		</attributes>
-	</classpathentry>
-	<classpathentry kind="output" path="target/classes"/>
-</classpath>

+ 0 - 15
style24.front/.gitignore

@@ -1,15 +0,0 @@
-target/
-.settings/
-.classpath
-/bin/
-/target/
-
-### IntelliJ IDEA ###
-.idea
-*.iws
-*.iml
-*.ipr
-
-### MacOS ###
-.DS_Store
-META-INF/context.xml

+ 0 - 42
style24.front/.project

@@ -1,42 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<projectDescription>
-	<name>style24.front</name>
-	<comment></comment>
-	<projects>
-	</projects>
-	<buildSpec>
-		<buildCommand>
-			<name>org.eclipse.jdt.core.javabuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.wst.common.project.facet.core.builder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.wst.validation.validationbuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.springframework.ide.eclipse.boot.validation.springbootbuilder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-		<buildCommand>
-			<name>org.eclipse.m2e.core.maven2Builder</name>
-			<arguments>
-			</arguments>
-		</buildCommand>
-	</buildSpec>
-	<natures>
-		<nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
-		<nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
-		<nature>org.eclipse.jdt.core.javanature</nature>
-		<nature>org.eclipse.m2e.core.maven2Nature</nature>
-		<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
-		<nature>org.eclipse.wst.jsdt.core.jsNature</nature>
-	</natures>
-</projectDescription>

+ 0 - 13
style24.front/.settings/.jsdtscope

@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<classpath>
-	<classpathentry excluding="**/bower_components/*|**/node_modules/*|**/*.min.js" kind="src" path="src/main/webapp"/>
-	<classpathentry kind="src" path="target/m2e-wtp/web-resources"/>
-	<classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.JRE_CONTAINER"/>
-	<classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.WebProject">
-		<attributes>
-			<attribute name="hide" value="true"/>
-		</attributes>
-	</classpathentry>
-	<classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.baseBrowserLibrary"/>
-	<classpathentry kind="output" path=""/>
-</classpath>

+ 0 - 6
style24.front/.settings/org.eclipse.core.resources.prefs

@@ -1,6 +0,0 @@
-eclipse.preferences.version=1
-encoding//src/main/java=UTF-8
-encoding//src/main/resources=UTF-8
-encoding//src/test/java=UTF-8
-encoding//src/test/resources=UTF-8
-encoding/<project>=UTF-8

+ 0 - 12
style24.front/.settings/org.eclipse.jdt.core.prefs

@@ -1,12 +0,0 @@
-eclipse.preferences.version=1
-org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
-org.eclipse.jdt.core.compiler.codegen.methodParameters=generate
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
-org.eclipse.jdt.core.compiler.compliance=1.8
-org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
-org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
-org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
-org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
-org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=ignore
-org.eclipse.jdt.core.compiler.release=disabled
-org.eclipse.jdt.core.compiler.source=1.8

+ 0 - 4
style24.front/.settings/org.eclipse.m2e.core.prefs

@@ -1,4 +0,0 @@
-activeProfiles=
-eclipse.preferences.version=1
-resolveWorkspaceProjects=true
-version=1

+ 0 - 12
style24.front/.settings/org.eclipse.wst.common.component

@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?><project-modules id="moduleCoreId" project-version="1.5.0">
-    <wb-module deploy-name="style24.front">
-        <wb-resource deploy-path="/" source-path="/target/m2e-wtp/web-resources"/>
-        <wb-resource deploy-path="/" source-path="/src/main/webapp" tag="defaultRootSource"/>
-        <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/java"/>
-        <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/resources"/>
-        <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/test/java"/>
-        <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/test/resources"/>
-        <property name="context-root" value="style24.front"/>
-        <property name="java-output-path" value="/style24.front/target/classes"/>
-    </wb-module>
-</project-modules>

+ 0 - 7
style24.front/.settings/org.eclipse.wst.common.project.facet.core.xml

@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<faceted-project>
-  <fixed facet="wst.jsdt.web"/>
-  <installed facet="java" version="1.8"/>
-  <installed facet="jst.web" version="4.0"/>
-  <installed facet="wst.jsdt.web" version="1.0"/>
-</faceted-project>

+ 0 - 1
style24.front/.settings/org.eclipse.wst.jsdt.ui.superType.container

@@ -1 +0,0 @@
-org.eclipse.wst.jsdt.launching.baseBrowserLibrary

+ 0 - 1
style24.front/.settings/org.eclipse.wst.jsdt.ui.superType.name

@@ -1 +0,0 @@
-Window

+ 0 - 2
style24.front/.settings/org.eclipse.wst.validation.prefs

@@ -1,2 +0,0 @@
-disabled=06target
-eclipse.preferences.version=1

+ 0 - 2
style24.front/.settings/org.springframework.ide.eclipse.prefs

@@ -1,2 +0,0 @@
-boot.validation.initialized=true
-eclipse.preferences.version=1

+ 0 - 111
style24.front/pom.xml

@@ -1,111 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
-	<modelVersion>4.0.0</modelVersion>
-	<parent>
-		<groupId>com.style24</groupId>
-		<artifactId>root</artifactId>
-		<version>0.0.1-SNAPSHOT</version>
-	</parent>
-	<groupId>com.style24.front</groupId>
-	<artifactId>style24.front</artifactId>
-	<packaging>war</packaging>
-	<name>style24.front</name>
-	<description>STYLE24 Front</description>
-	
-	<dependencies>
-		<dependency>
-			<groupId>org.springframework.boot</groupId>
-			<artifactId>spring-boot-starter-security</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>org.springframework.security</groupId>
-			<artifactId>spring-security-test</artifactId>
-			<scope>test</scope>
-		</dependency>
-		<dependency>
-			<groupId>org.springframework.boot</groupId>
-			<artifactId>spring-boot-starter-mobile</artifactId>
-			<version>1.5.22.RELEASE</version>
-		</dependency>
-		<dependency>
-			<groupId>org.springframework.boot</groupId>
-			<artifactId>spring-boot-starter-thymeleaf</artifactId>
-		</dependency>
-		<dependency>
-			<groupId>nz.net.ultraq.thymeleaf</groupId>
-			<artifactId>thymeleaf-layout-dialect</artifactId>
-		</dependency>
-		
-		<dependency>
-			<groupId>servlets.com</groupId>
-			<artifactId>cos</artifactId>
-			<version>05Nov2002</version>
-		</dependency>
-		<dependency>
-			<groupId>commons-fileupload</groupId>
-			<artifactId>commons-fileupload</artifactId>
-			<version>1.4</version>
-		</dependency>
-		<dependency>
-			<groupId>commons-io</groupId>
-			<artifactId>commons-io</artifactId>
-			<version>2.6</version>
-		</dependency>
-		
-		<!-- /// WEB-INF lib -->
-		<dependency>
-			<groupId>com.gagaframework</groupId>
-			<artifactId>gagaframework-web-core</artifactId>
-			<version>1.7.1-RELEASE</version>
-			<scope>system</scope>
-			<systemPath>${basedir}/src/main/webapp/WEB-INF/lib/gagaframework-web-core-1.7.1-RELEASE.jar</systemPath>
-		</dependency>
-		<dependency>
-			<groupId>com.gagaframework</groupId>
-			<artifactId>gagaframework-web-security</artifactId>
-			<version>1.7.1-RELEASE</version>
-			<scope>system</scope>
-			<systemPath>${basedir}/src/main/webapp/WEB-INF/lib/gagaframework-web-security-1.7.1-RELEASE.jar</systemPath>
-		</dependency>
-		<dependency>
-			<groupId>com.gagaframework</groupId>
-			<artifactId>gagaframework-web-parameter</artifactId>
-			<version>1.7-RELEASE</version>
-			<scope>system</scope>
-			<systemPath>${basedir}/src/main/webapp/WEB-INF/lib/gagaframework-web-parameter-1.7-RELEASE.jar</systemPath>
-		</dependency>
-		<dependency>
-			<groupId>com.gagaframework</groupId>
-			<artifactId>gagaframework-web-rest</artifactId>
-			<version>1.7.1-RELEASE</version>
-			<scope>system</scope>
-			<systemPath>${basedir}/src/main/webapp/WEB-INF/lib/gagaframework-web-rest-1.7-RELEASE.jar</systemPath>
-		</dependency>
-		<dependency>
-			<groupId>com.gagaframework</groupId>
-			<artifactId>gagaframework-web-util</artifactId>
-			<version>1.7-RELEASE</version>
-			<scope>system</scope>
-			<systemPath>${basedir}/src/main/webapp/WEB-INF/lib/gagaframework-web-util-1.7-RELEASE.jar</systemPath>
-		</dependency>
-		<!-- \\\ WEB-INF lib -->
-	</dependencies>
-	
-	<build>
-		<finalName>${project.name}</finalName>
-		<resources>
-			<resource>
-				<directory>src/main/java</directory>
-				<includes>
-					<include>**/*.xml</include>
-				</includes>
-			</resource>
-			<resource>
-				<directory>src/main/resources</directory>
-				<includes>
-					<include>**/*</include>
-				</includes>
-			</resource>
-		</resources>
-	</build>
-</project>

+ 0 - 14
style24.front/src/main/java/com/style24/front/biz/dao/TsfCartDao.java

@@ -1,14 +0,0 @@
-package com.style24.front.biz.dao;
-
-import com.style24.core.support.annotation.ShopDs;
-
-/**
- * 장바구니 Dao
- * 
- * @author gagamel
- * @since 2020. 12. 29
- */
-@ShopDs
-public interface TsfCartDao {
-
-}

+ 0 - 132
style24.front/src/main/java/com/style24/front/biz/dao/TsfCounselDao.java

@@ -1,132 +0,0 @@
-package com.style24.front.biz.dao;
-
-import java.util.Collection;
-
-import com.style24.core.support.annotation.ShopDs;
-import com.style24.persistence.domain.Counsel;
-
-/**
- * 상담(1:1문의) Dao
- * 
- * @author gagamel
- * @since 2020. 12. 28
- */
-@ShopDs
-public interface TsfCounselDao {
-
-	/**
-	 * 1:1문의 생성
-	 * @param counsel - 상담정보
-	 * @author gagamel
-	 * @since 2020. 12. 28
-	 */
-	void createOneToOneQna(Counsel counsel);
-
-	/**
-	 * 1:1문의(총,답변완료,처리중) 건수
-	 * @param counsel - 상담정보
-	 * @return
-	 * @author gagamel
-	 * @since 2020. 12. 28
-	 */
-	Counsel getOneToOneQnaCountInfo(Counsel counsel);
-
-	/**
-	 * 1:1문의 총건수
-	 * @param counsel - 상담정보
-	 * @return
-	 * @author gagamel
-	 * @since 2020. 12. 28
-	 */
-	int getOneToOneQnaTotalCount(Counsel counsel);
-
-	/**
-	 * 1:1문의 목록
-	 * @param counsel -상담정보
-	 * @return
-	 * @author gagamel
-	 * @since 2020. 12. 28
-	 */
-	Collection<Counsel> getOneToOneQnaList(Counsel counsel);
-
-	/**
-	 * 1:1문의 삭제
-	 * @param counsel - 상담정보
-	 * @return 처리건수
-	 * @author gagamel
-	 * @since 2020. 12. 28
-	 */
-	int deleteOneToOneQna(Counsel counsel);
-
-	/**
-	 * 1:1문의 상세
-	 * @param counsel - 상담정보
-	 * @return
-	 * @author gagamel
-	 * @since 2020. 12. 24
-	 */
-	Counsel getOneToOneQna(Counsel counsel);
-
-	/**
-	 * 1:1문의 수정
-	 * @param counsel - 상담정보
-	 * @return 처리건수
-	 * @author gagamel
-	 * @since 2020. 12. 28
-	 */
-	int updateOneToOneQna(Counsel counsel);
-
-	/**
-	 * 1:1문의 이미지 삭제
-	 * @param counsel - 상담정보
-	 * @return 처리건수
-	 * @author gagamel
-	 * @since 2020. 12. 28
-	 */
-	int deleteOneToOneQnaImage(Counsel counsel);
-
-	/**
-	 * 상품문의 생성
-	 * @param counsel - 상담정보
-	 * @author gagamel
-	 * @since 2020. 12. 28
-	 */
-	void createGoodsQna(Counsel counsel);
-
-	/**
-	 * 상품문의(총,답변완료,처리중) 건수
-	 * @param counsel - 상담정보
-	 * @return
-	 * @author gagamel
-	 * @since 2020. 12. 28
-	 */
-	Counsel getGoodsQnaCountInfo(Counsel counsel);
-
-	/**
-	 * 상품문의 총건수
-	 * @param counsel - 상담정보
-	 * @return
-	 * @author gagamel
-	 * @since 2020. 12. 28
-	 */
-	int getGoodsQnaTotalCount(Counsel counsel);
-
-	/**
-	 * 상품문의 목록
-	 * @param counsel -상담정보
-	 * @return
-	 * @author gagamel
-	 * @since 2020. 12. 28
-	 */
-	Collection<Counsel> getGoodsQnaList(Counsel counsel);
-
-	/**
-	 * 상품문의 삭제
-	 * @param counsel - 상담정보
-	 * @return 처리건수
-	 * @author gagamel
-	 * @since 2020. 12. 28
-	 */
-	int deleteGoodsQna(Counsel counsel);
-
-}

+ 0 - 14
style24.front/src/main/java/com/style24/front/biz/dao/TsfCouponDao.java

@@ -1,14 +0,0 @@
-package com.style24.front.biz.dao;
-
-import com.style24.core.support.annotation.ShopDs;
-
-/**
- * 쿠폰 Dao
- * 
- * @author gagamel
- * @since 2020. 12. 29
- */
-@ShopDs
-public interface TsfCouponDao {
-
-}

+ 0 - 14
style24.front/src/main/java/com/style24/front/biz/dao/TsfCustomerDao.java

@@ -1,14 +0,0 @@
-package com.style24.front.biz.dao;
-
-import com.style24.core.support.annotation.ShopDs;
-
-/**
- * 고객(회원) Dao
- * 
- * @author gagamel
- * @since 2020. 12. 29
- */
-@ShopDs
-public interface TsfCustomerDao {
-
-}

+ 0 - 14
style24.front/src/main/java/com/style24/front/biz/dao/TsfDisplayDao.java

@@ -1,14 +0,0 @@
-package com.style24.front.biz.dao;
-
-import com.style24.core.support.annotation.ShopDs;
-
-/**
- * 전시 Dao
- * 
- * @author gagamel
- * @since 2020. 12. 29
- */
-@ShopDs
-public interface TsfDisplayDao {
-
-}

+ 0 - 61
style24.front/src/main/java/com/style24/front/biz/dao/TsfFaqDao.java

@@ -1,61 +0,0 @@
-package com.style24.front.biz.dao;
-
-import java.util.Collection;
-
-import com.style24.core.support.annotation.ShopDs;
-import com.style24.persistence.domain.Faq;
-
-/**
- * FAQ Dao
- * 
- * @author gagamel
- * @since 2020. 12. 23
- */
-@ShopDs
-public interface TsfFaqDao {
-
-	/**
-	 * FAQ 자주 묻는 질문 목록 (10개)
-	 * @param siteCd - 사이트코드
-	 * @return
-	 * @author gagamel
-	 * @since 2020. 12. 23
-	 */
-	Collection<Faq> getFaqLikesList(String siteCd);
-
-	/**
-	 * FAQ 총건수
-	 * @param faq - FAQ 정보
-	 * @return
-	 * @author gagamel
-	 * @since 2020. 12. 23
-	 */
-	int getFaqTotalCount(Faq faq);
-
-	/**
-	 * FAQ 목록
-	 * @param faq - FAQ 정보
-	 * @return
-	 * @author gagamel
-	 * @since 2020. 12. 23
-	 */
-	Collection<Faq> getFaqList(Faq faq);
-
-	/**
-	 * FAQ 조회수 Update
-	 * @param faqSq - FAQ일련번호
-	 * @author gagamel
-	 * @since 2020. 12. 23
-	 */
-	void updateFaqReadCount(Integer faqSq);
-
-	/**
-	 * FAQ 상세
-	 * @param faqSq - FAQ일련번호
-	 * @return
-	 * @author gagamel
-	 * @since 2020. 12. 23
-	 */
-	Faq getFaq(Integer faqSq);
-
-}

+ 0 - 14
style24.front/src/main/java/com/style24/front/biz/dao/TsfGiftcardDao.java

@@ -1,14 +0,0 @@
-package com.style24.front.biz.dao;
-
-import com.style24.core.support.annotation.ShopDs;
-
-/**
- * 상품권 Dao
- * 
- * @author gagamel
- * @since 2020. 12. 29
- */
-@ShopDs
-public interface TsfGiftcardDao {
-
-}

+ 0 - 14
style24.front/src/main/java/com/style24/front/biz/dao/TsfGoodsDao.java

@@ -1,14 +0,0 @@
-package com.style24.front.biz.dao;
-
-import com.style24.core.support.annotation.ShopDs;
-
-/**
- * 상품 Dao
- * 
- * @author gagamel
- * @since 2020. 12. 29
- */
-@ShopDs
-public interface TsfGoodsDao {
-
-}

+ 0 - 100
style24.front/src/main/java/com/style24/front/biz/dao/TsfLoginDao.java

@@ -1,100 +0,0 @@
-package com.style24.front.biz.dao;
-
-import com.style24.core.support.annotation.ShopDs;
-import com.style24.persistence.domain.Login;
-import com.style24.persistence.domain.PersistentToken;
-
-/**
- * 로그인 Dao
- * 
- * @author gagamel
- * @since 2020. 9. 11
- */
-@ShopDs
-public interface TsfLoginDao {
-
-	/**
-	 * 로그인체크정보 조회
-	 * @param customer - 고객정보
-	 * @return 고객정보
-	 * @author gagamel
-	 * @date 2020. 2. 3
-	 */
-	Login getLoginCheckInfo(Login customer);
-
-	/**
-	 * 로그인실패 남기기
-	 * @param customer - 고객정보
-	 * @author gagamel
-	 * @date 2020. 2. 3
-	 */
-	void createLoginFail(Login customer);
-
-	/**
-	 * 로그인 실패건수 조회
-	 * @param customer - 고객정보
-	 * @return 로그인 실패건수
-	 * @author gagamel
-	 * @date 2020. 2. 3
-	 */
-	int getLoginFailCount(Login customer);
-
-	/**
-	 * 최종로그인일시 Update
-	 * @param custNo - 고객번호
-	 * @author gagamel
-	 * @date 2020. 2. 3
-	 */
-	void updateLastLoginDate(Integer custNo);
-
-	/**
-	 * 로그인이력 남기기
-	 * @param customer - 고객정보
-	 * @author gagamel
-	 * @date 2020. 2. 3
-	 */
-	void createLoginHistory(Login customer);
-
-//	/**
-//	 * 로그인 세션정보 조회
-//	 * @param customer - 고객정보
-//	 * @return 로그인 세션정보
-//	 * @author gagamel
-//	 * @date 2020. 2. 3
-//	 */
-//	FoLogin getLoginSessionInfo(FoLogin customer);
-
-	/**
-	 * 로그인유지토큰 생성
-	 * @param token - 토큰 정보
-	 * @author gagamel
-	 * @since 2020. 6. 17
-	 */
-	void createPersistentToken(PersistentToken token);
-
-	/**
-	 * 로그인유지토큰 가져오기
-	 * @param remembermeToken - RememberMe토큰
-	 * @return
-	 * @author gagamel
-	 * @since 2020. 6. 17
-	 */
-	PersistentToken getPersistentToken(String remembermeToken);
-
-	/**
-	 * 로그인유지토큰 갱신
-	 * @param token - 토큰 정보
-	 * @author gagamel
-	 * @since 2020. 6. 17
-	 */
-	void updatePersistentToken(PersistentToken token);
-
-	/**
-	 * 로그인유지토큰 삭제
-	 * @param remembermeToken - RememberMe토큰
-	 * @author gagamel
-	 * @since 2020. 6. 17
-	 */
-	void deletePersistentToken(String remembermeToken);
-
-}

+ 0 - 52
style24.front/src/main/java/com/style24/front/biz/dao/TsfNoticeDao.java

@@ -1,52 +0,0 @@
-package com.style24.front.biz.dao;
-
-import java.util.Collection;
-
-import com.style24.core.support.annotation.ShopDs;
-import com.style24.persistence.domain.Notice;
-
-/**
- * 공지사항 Dao
- * 
- * @author gagamel
- * @since 2020. 12. 23
- */
-@ShopDs
-public interface TsfNoticeDao {
-
-	/**
-	 * 공지사항 총건수
-	 * @param notice - 공지사항 정보
-	 * @return 총건수
-	 * @author gagamel
-	 * @date 2020. 12. 23
-	 */
-	int getNoticeTotalCount(Notice notice);
-
-	/**
-	 * 공지사항 목록
-	 * @param notice - 공지사항 정보
-	 * @return
-	 * @author gagamel
-	 * @date 2020. 12. 23
-	 */
-	Collection<Notice> getNoticeList(Notice notice);
-
-	/**
-	 * 공지사항 파일 목록
-	 * @param notice - 공지사항 정보
-	 * @return
-	 * @author gagamel
-	 * @date 2020. 12. 23
-	 */
-	Collection<Notice> getNoticeFileList(Notice notice);
-
-	/**
-	 * 공지사항 조회수 Update
-	 * @param noticeSq - 공지사항일련번호
-	 * @author gagamel
-	 * @date 2020. 12. 23
-	 */
-	void updateNoticeReadCount(Integer noticeSq);
-
-}

+ 0 - 14
style24.front/src/main/java/com/style24/front/biz/dao/TsfOrderDao.java

@@ -1,14 +0,0 @@
-package com.style24.front.biz.dao;
-
-import com.style24.core.support.annotation.ShopDs;
-
-/**
- * 주문 Dao
- * 
- * @author gagamel
- * @since 2020. 12. 29
- */
-@ShopDs
-public interface TsfOrderDao {
-
-}

+ 0 - 14
style24.front/src/main/java/com/style24/front/biz/dao/TsfPlanningDao.java

@@ -1,14 +0,0 @@
-package com.style24.front.biz.dao;
-
-import com.style24.core.support.annotation.ShopDs;
-
-/**
- * 기획전 Dao
- * 
- * @author gagamel
- * @since 2020. 12. 29
- */
-@ShopDs
-public interface TsfPlanningDao {
-
-}

+ 0 - 14
style24.front/src/main/java/com/style24/front/biz/dao/TsfPointDao.java

@@ -1,14 +0,0 @@
-package com.style24.front.biz.dao;
-
-import com.style24.core.support.annotation.ShopDs;
-
-/**
- * 포인트 Dao
- * 
- * @author gagamel
- * @since 2020. 12. 29
- */
-@ShopDs
-public interface TsfPointDao {
-
-}

+ 0 - 14
style24.front/src/main/java/com/style24/front/biz/dao/TsfReviewDao.java

@@ -1,14 +0,0 @@
-package com.style24.front.biz.dao;
-
-import com.style24.core.support.annotation.ShopDs;
-
-/**
- * 상품평 Dao
- * 
- * @author gagamel
- * @since 2020. 12. 29
- */
-@ShopDs
-public interface TsfReviewDao {
-
-}

+ 0 - 14
style24.front/src/main/java/com/style24/front/biz/dao/TsfWishlistDao.java

@@ -1,14 +0,0 @@
-package com.style24.front.biz.dao;
-
-import com.style24.core.support.annotation.ShopDs;
-
-/**
- * 위시리스트 Dao
- * 
- * @author gagamel
- * @since 2020. 12. 29
- */
-@ShopDs
-public interface TsfWishlistDao {
-
-}

+ 0 - 23
style24.front/src/main/java/com/style24/front/biz/service/TsfCartService.java

@@ -1,23 +0,0 @@
-package com.style24.front.biz.service;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-import com.style24.front.biz.dao.TsfCartDao;
-
-import lombok.extern.slf4j.Slf4j;
-
-/**
- * 장바구니 Service
- *
- * @author gagamel
- * @since 2020. 12. 29
- */
-@Service
-@Slf4j
-public class TsfCartService {
-
-	@Autowired
-	private TsfCartDao cartDao;
-
-}

+ 0 - 212
style24.front/src/main/java/com/style24/front/biz/service/TsfCounselService.java

@@ -1,212 +0,0 @@
-package com.style24.front.biz.service;
-
-import java.util.Collection;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-
-import com.style24.core.support.env.TscConstants;
-import com.style24.front.biz.dao.TsfCounselDao;
-import com.style24.front.support.security.session.TsfSession;
-import com.style24.persistence.domain.Counsel;
-
-import lombok.extern.slf4j.Slf4j;
-
-/**
- * 상담(1:1문의) Service
- *
- * @author gagamel
- * @since 2020. 12. 28
- */
-@Service
-@Slf4j
-public class TsfCounselService {
-
-	@Autowired
-	private TsfCounselDao counselDao;
-
-	/**
-	 * 1:1문의 생성
-	 * @param counsel -상담정보
-	 * @return
-	 * @author gagamel
-	 * @since 2020. 12. 28
-	 */
-	@Transactional("shopTxnManager")
-	public void createOneToOneQna(Counsel counsel) {
-		counsel.setSiteCd(TscConstants.Site.STYLE24.value());
-		counsel.setCustNo(TsfSession.getInfo().getCustNo());
-		counsel.setEmail(TsfSession.getInfo().getEmail());
-		counsel.setRegNo(TsfSession.getInfo().getCustNo());
-		counsel.setUpdNo(TsfSession.getInfo().getCustNo());
-		counselDao.createOneToOneQna(counsel);
-	}
-
-	/**
-	 * 1:1문의(총,답변완료,처리중) 건수
-	 * @return
-	 * @author gagamel
-	 * @since 2020. 12. 28
-	 */
-	public Counsel getOneToOneQnaCountInfo() {
-		Counsel counsel = new Counsel();
-		counsel.setCustNo(TsfSession.getInfo().getCustNo());
-		counsel.setSiteCd(TscConstants.Site.STYLE24.value());
-		return counselDao.getOneToOneQnaCountInfo(counsel);
-	}
-
-	/**
-	 * 1:1문의 총건수
-	 * @param counsel - 상담정보
-	 * @return
-	 * @author gagamel
-	 * @since 2020. 12. 28
-	 */
-	public int getOneToOneQnaTotalCount(Counsel counsel) {
-		return counselDao.getOneToOneQnaTotalCount(counsel);
-	}
-
-	/**
-	 * 1:1문의 목록
-	 * @param counsel -상담정보
-	 * @return
-	 * @author gagamel
-	 * @since 2020. 12. 28
-	 */
-	public Collection<Counsel> getOneToOneQnaList(Counsel counsel) {
-		return counselDao.getOneToOneQnaList(counsel);
-	}
-
-	/**
-	 * 1:1문의 삭제
-	 * @param counsel - 상담정보
-	 * @author gagamel
-	 * @since 2020. 12. 28
-	 */
-	@Transactional("shopTxnManager")
-	public void deleteOneToOneQna(Counsel counsel) {
-		counsel.setCustNo(TsfSession.getInfo().getCustNo());
-		counsel.setUpdNo(TsfSession.getInfo().getCustNo());
-		int result = counselDao.deleteOneToOneQna(counsel);
-		if (result == 0) {
-			throw new IllegalStateException("답변이 완료되어 삭제할 수 없습니다.");
-		}
-	}
-
-	/**
-	 * 1:1문의 상세
-	 * @param counselSq - 상담일련번호
-	 * @return
-	 * @author gagamel
-	 * @since 2020. 12. 24
-	 */
-	public Counsel getOneToOneQna(Integer counselSq) {
-		Counsel counsel = new Counsel();
-		counsel.setCounselSq(counselSq);
-		counsel.setCustNo(TsfSession.getInfo().getCustNo());
-		counsel.setSiteCd(TscConstants.Site.STYLE24.value());
-		return counselDao.getOneToOneQna(counsel);
-	}
-
-	/**
-	 * 1:1문의 수정
-	 * @param counsel - 상담정보
-	 * @author gagamel
-	 * @since 2020. 12. 28
-	 */
-	@Transactional("shopTxnManager")
-	public void updateOneToOneQna(Counsel counsel) {
-		counsel.setCustNo(TsfSession.getInfo().getCustNo());
-		counsel.setUpdNo(TsfSession.getInfo().getCustNo());
-		int result = counselDao.updateOneToOneQna(counsel);
-		if (result == 0) {
-			throw new IllegalStateException("답변이 완료되어 수정할 수 없습니다.");
-		}
-	}
-
-	/**
-	 * 1:1문의 이미지 삭제
-	 * @param counsel - 상담정보
-	 * @author gagamel
-	 * @since 2020. 12. 28
-	 */
-	@Transactional("shopTxnManager")
-	public void deleteOneToOneQnaImage(Counsel counsel) {
-		counsel.setCustNo(TsfSession.getInfo().getCustNo());
-		counsel.setUpdNo(TsfSession.getInfo().getCustNo());
-		int result = counselDao.deleteOneToOneQnaImage(counsel);
-		if (result == 0) {
-			throw new IllegalStateException("답변이 완료되어 삭제할 수 없습니다.");
-		}
-	}
-
-	/**
-	 * 상품문의 생성
-	 * @param counsel -상담정보
-	 * @return
-	 * @author gagamel
-	 * @since 2020. 12. 28
-	 */
-	@Transactional("shopTxnManager")
-	public void createGoodsQna(Counsel counsel) {
-		counsel.setSiteCd(TscConstants.Site.STYLE24.value());
-		counsel.setCustNo(TsfSession.getInfo().getCustNo());
-		counsel.setEmail(TsfSession.getInfo().getEmail());
-		counsel.setRegNo(TsfSession.getInfo().getCustNo());
-		counsel.setUpdNo(TsfSession.getInfo().getCustNo());
-		counselDao.createGoodsQna(counsel);
-	}
-
-	/**
-	 * 상품문의(총,답변완료,처리중) 건수
-	 * @return
-	 * @author gagamel
-	 * @since 2020. 12. 28
-	 */
-	public Counsel getGoodsQnaCountInfo() {
-		Counsel counsel = new Counsel();
-		counsel.setCustNo(TsfSession.getInfo().getCustNo());
-		counsel.setSiteCd(TscConstants.Site.STYLE24.value());
-		return counselDao.getGoodsQnaCountInfo(counsel);
-	}
-
-	/**
-	 * 상품문의 총건수
-	 * @param counsel - 상담정보
-	 * @return
-	 * @author gagamel
-	 * @since 2020. 12. 28
-	 */
-	public int getGoodsQnaTotalCount(Counsel counsel) {
-		return counselDao.getGoodsQnaTotalCount(counsel);
-	}
-
-	/**
-	 * 상품문의 목록
-	 * @param counsel -상담정보
-	 * @return
-	 * @author gagamel
-	 * @since 2020. 12. 24
-	 */
-	public Collection<Counsel> getGoodsQnaList(Counsel counsel) {
-		return counselDao.getGoodsQnaList(counsel);
-	}
-
-	/**
-	 * 상품문의 삭제
-	 * @param counsel - 상담정보
-	 * @author gagamel
-	 * @since 2020. 12. 28
-	 */
-	@Transactional("shopTxnManager")
-	public void deleteGoodsQna(Counsel counsel) {
-		counsel.setCustNo(TsfSession.getInfo().getCustNo());
-		counsel.setUpdNo(TsfSession.getInfo().getCustNo());
-		int result = counselDao.deleteGoodsQna(counsel);
-		if (result == 0) {
-			throw new IllegalStateException("답변이 완료되어 삭제할 수 없습니다.");
-		}
-	}
-
-}

+ 0 - 23
style24.front/src/main/java/com/style24/front/biz/service/TsfCouponService.java

@@ -1,23 +0,0 @@
-package com.style24.front.biz.service;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-import com.style24.front.biz.dao.TsfCouponDao;
-
-import lombok.extern.slf4j.Slf4j;
-
-/**
- * 쿠폰 Service
- *
- * @author gagamel
- * @since 2020. 12. 29
- */
-@Service
-@Slf4j
-public class TsfCouponService {
-
-	@Autowired
-	private TsfCouponDao couponDao;
-
-}

+ 0 - 23
style24.front/src/main/java/com/style24/front/biz/service/TsfCustomerService.java

@@ -1,23 +0,0 @@
-package com.style24.front.biz.service;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-import com.style24.front.biz.dao.TsfCustomerDao;
-
-import lombok.extern.slf4j.Slf4j;
-
-/**
- * 고객(회원) Service
- *
- * @author gagamel
- * @since 2020. 12. 29
- */
-@Service
-@Slf4j
-public class TsfCustomerService {
-
-	@Autowired
-	private TsfCustomerDao customerDao;
-
-}

+ 0 - 23
style24.front/src/main/java/com/style24/front/biz/service/TsfDisplayService.java

@@ -1,23 +0,0 @@
-package com.style24.front.biz.service;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-import com.style24.front.biz.dao.TsfDisplayDao;
-
-import lombok.extern.slf4j.Slf4j;
-
-/**
- * 전시 Service
- *
- * @author gagamel
- * @since 2020. 12. 29
- */
-@Service
-@Slf4j
-public class TsfDisplayService {
-
-	@Autowired
-	private TsfDisplayDao displayDao;
-
-}

+ 0 - 84
style24.front/src/main/java/com/style24/front/biz/service/TsfFaqService.java

@@ -1,84 +0,0 @@
-package com.style24.front.biz.service;
-
-import java.util.Collection;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-
-import com.style24.front.biz.dao.TsfFaqDao;
-import com.style24.persistence.domain.Faq;
-
-import lombok.extern.slf4j.Slf4j;
-
-/**
- * FAQ Service
- * 
- * @author gagamel
- * @since 2020. 12. 23
- */
-@Service
-@Slf4j
-public class TsfFaqService {
-
-	@Autowired
-	private TsfFaqDao faqDao;
-
-	/**
-	 * FAQ 자주 묻는 질문 목록 (10개)
-	 * @param siteCd - 사이트코드
-	 * @return
-	 * @author gagamel
-	 * @since 2020. 12. 23
-	 */
-	public Collection<Faq> getFaqLikesList(String siteCd) {
-		return faqDao.getFaqLikesList(siteCd);
-	}
-
-	/**
-	 * FAQ 총건수
-	 * @param faq - FAQ 정보
-	 * @return
-	 * @author gagamel
-	 * @since 2020. 12. 23
-	 */
-	public int getFaqTotalCount(Faq faq) {
-		return faqDao.getFaqTotalCount(faq);
-	}
-
-	/**
-	 * FAQ 목록
-	 * @param faq - FAQ 정보
-	 * @return
-	 * @author gagamel
-	 * @since 2020. 12. 23
-	 */
-	public Collection<Faq> getFaqList(Faq faq) {
-		return faqDao.getFaqList(faq);
-	}
-
-	/**
-	 * FAQ 조회수 Update
-	 * @param faqSq - FAQ일련번호
-	 * @return
-	 * @author gagamel
-	 * @since 2020. 12. 23
-	 */
-	@Transactional("shopTxnManager")
-	public void updateFaqReadCount(Integer faqSq) {
-		faqDao.updateFaqReadCount(faqSq);
-	}
-
-	/**
-	 * FAQ 상세
-	 * @param faqSq - FAQ일련번호
-	 * @return
-	 * @author gagamel
-	 * @since 2020. 12. 23
-	 */
-	public Faq getFaq(Integer faqSq) {
-		this.updateFaqReadCount(faqSq);
-		return faqDao.getFaq(faqSq);
-	}
-
-}

+ 0 - 23
style24.front/src/main/java/com/style24/front/biz/service/TsfGiftcardService.java

@@ -1,23 +0,0 @@
-package com.style24.front.biz.service;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-import com.style24.front.biz.dao.TsfGiftcardDao;
-
-import lombok.extern.slf4j.Slf4j;
-
-/**
- * 상품권 Service
- *
- * @author gagamel
- * @since 2020. 12. 29
- */
-@Service
-@Slf4j
-public class TsfGiftcardService {
-
-	@Autowired
-	private TsfGiftcardDao giftcardDao;
-
-}

+ 0 - 23
style24.front/src/main/java/com/style24/front/biz/service/TsfGoodsService.java

@@ -1,23 +0,0 @@
-package com.style24.front.biz.service;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-import com.style24.front.biz.dao.TsfGoodsDao;
-
-import lombok.extern.slf4j.Slf4j;
-
-/**
- * 상품 Service
- *
- * @author gagamel
- * @since 2020. 12. 29
- */
-@Service
-@Slf4j
-public class TsfGoodsService {
-
-	@Autowired
-	private TsfGoodsDao goodsDao;
-
-}

+ 0 - 164
style24.front/src/main/java/com/style24/front/biz/service/TsfLoginService.java

@@ -1,164 +0,0 @@
-package com.style24.front.biz.service;
-
-import java.util.Date;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-import org.springframework.transaction.annotation.Transactional;
-
-import com.style24.core.support.env.TscConstants;
-import com.style24.front.biz.dao.TsfLoginDao;
-import com.style24.front.support.security.session.TsfSession;
-import com.style24.persistence.domain.Login;
-import com.style24.persistence.domain.PersistentToken;
-
-import lombok.extern.slf4j.Slf4j;
-
-/**
- * 로그인 Service
- * 
- * @author gagamel
- * @since 2020. 9. 11
- */
-@Service
-@Slf4j
-public class TsfLoginService {
-
-	@Autowired
-	private TsfLoginDao loginDao;
-
-	/**
-	 * 로그인체크정보 조회
-	 * @param customer - 고객정보
-	 * @return 고객정보
-	 * @author gagamel
-	 * @since 2020. 2. 3
-	 */
-	public Login getLoginCheckInfo(Login customer) {
-		customer.setIpAddr(TsfSession.getIpAddress());
-		customer.setSiteCd(TscConstants.Site.STYLE24.value());
-		return loginDao.getLoginCheckInfo(customer);
-	}
-
-	/**
-	 * 로그인이력 남기기
-	 * @param custNo - 고객번호
-	 * @author gagamel
-	 * @since 2020. 2. 3
-	 */
-	@Transactional("shopTxnManager")
-	public void createLoginHistory(Integer custNo) {
-		Login login = new Login();
-		login.setCustNo(custNo);
-		login.setIpAddr(TsfSession.getIpAddress());
-		login.setSiteCd(TscConstants.Site.STYLE24.value());
-		login.setFrontGb(TsfSession.getFrontGb());
-
-		loginDao.createLoginHistory(login);
-	}
-
-	/**
-	 * 최종로그인일시 Update
-	 * @param custNo - 고객번호
-	 * @author gagamel
-	 * @since 2020. 2. 3
-	 */
-	@Transactional("shopTxnManager")
-	public void updateLastLoginDate(Integer custNo) {
-		loginDao.updateLastLoginDate(custNo);
-	}
-
-	/**
-	 * 로그인실패 남기기. 로그인실패여부가 "N:성공"이면 실패건수 0으로 초기화
-	 * @param custId - 고객ID
-	 * @param loginFailYn - 로그인실패여부(Y:실패, N:성공)
-	 * @author gagamel
-	 * @since 2020. 2. 3
-	 */
-	@Transactional("shopTxnManager")
-	public void createLoginFail(String custId, String loginFailYn) {
-		Login customer = new Login();
-		customer.setCustId(custId);
-		customer.setIpAddr(TsfSession.getIpAddress());
-		customer.setSiteCd(TscConstants.Site.STYLE24.value());
-		customer.setLoginFailYn(loginFailYn);
-
-		loginDao.createLoginFail(customer);
-	}
-
-	/**
-	 * 로그인 실패건수 조회
-	 * @param custNo - 고객번호
-	 * @return 로그인 실패건수
-	 * @author gagamel
-	 * @since 2020. 2. 3
-	 */
-	public int getLoginFailCount(Integer custNo) {
-		Login login = new Login();
-		login.setCustNo(custNo);
-		login.setIpAddr(TsfSession.getIpAddress());
-		login.setSiteCd(TscConstants.Site.STYLE24.value());
-
-		return loginDao.getLoginFailCount(login);
-	}
-
-	/**
-	 * 로그인유지토큰 생성
-	 * @param custNo - 고객번호
-	 * @param password - 비밀번호
-	 * @param expiry - 만료기간
-	 * @author gagamel
-	 * @since 2020. 6. 17
-	 */
-	@Transactional("shopTxnManager")
-	public void createPersistentToken(Integer custNo, String remembermeToken, Date expiry) {
-		PersistentToken token = PersistentToken.builder()
-			.custNo(custNo)
-			.remembermeToken(remembermeToken)
-			.limitDt(expiry)
-			.build();
-
-		loginDao.createPersistentToken(token);
-	}
-
-	/**
-	 * 로그인유지토큰 가져오기
-	 * @param remembermeToken - RememberMe토큰
-	 * @return
-	 * @author gagamel
-	 * @since 2020. 6. 17
-	 */
-	public PersistentToken getPersistentToken(String remembermeToken) {
-		return loginDao.getPersistentToken(remembermeToken);
-	}
-
-	/**
-	 * 로그인유지토큰 갱신
-	 * @param token - 토큰 정보
-	 * @author gagamel
-	 * @since 2020. 6. 17
-	 */
-	@Transactional("shopTxnManager")
-	public void updatePersistentToken(Integer custNo, String prevRemembermeToken, String remembermeToken, Date expiry) {
-		PersistentToken token = PersistentToken.builder()
-			.custNo(custNo)
-			.prevRemembermeToken(prevRemembermeToken)
-			.remembermeToken(remembermeToken)
-			.limitDt(expiry)
-			.build();
-
-		loginDao.updatePersistentToken(token);
-	}
-
-	/**
-	 * 로그인유지토큰 삭제
-	 * @param remembermeToken - RememberMe토큰
-	 * @author gagamel
-	 * @since 2020. 6. 17
-	 */
-	@Transactional("shopTxnManager")
-	public void deletePersistentToken(String remembermeToken) {
-		loginDao.deletePersistentToken(remembermeToken);
-	}
-
-}

+ 0 - 81
style24.front/src/main/java/com/style24/front/biz/service/TsfNoticeService.java

@@ -1,81 +0,0 @@
-package com.style24.front.biz.service;
-
-import java.util.Collection;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-import com.style24.front.biz.dao.TsfNoticeDao;
-import com.style24.persistence.domain.Notice;
-
-import lombok.extern.slf4j.Slf4j;
-
-/**
- * 공지사항 Service
- * 
- * @author gagamel
- * @since 2020. 11. 3
- */
-@Service
-@Slf4j
-public class TsfNoticeService {
-
-	@Autowired
-	private TsfNoticeDao noticeDao;
-
-	/**
-	 * 공지사항 총건수
-	 * @param notice - 공지사항 정보
-	 * @return 총건수
-	 * @author gagamel
-	 * @date 2020. 11. 3
-	 */
-	public int getNoticeTotalCount(Notice notice) {
-		return noticeDao.getNoticeTotalCount(notice);
-	}
-
-	/**
-	 * 공지사항 목록
-	 * @param notice - 공지사항 정보
-	 * @return
-	 * @author gagamel
-	 * @date 2020. 11. 3
-	 */
-	public Collection<Notice> getNoticeList(Notice notice) {
-		return noticeDao.getNoticeList(notice);
-	}
-
-	/**
-	 * 긴급 공지사항 목록
-	 * @param notice - 공지사항 정보
-	 * @return
-	 * @author gagamel
-	 * @date 2020. 11. 3
-	 */
-	public Collection<Notice> getUrgentNoticeList(Notice notice) {
-		notice.setUrgentYn("Y"); // 긴급공지
-		return noticeDao.getNoticeList(notice);
-	}
-
-	/**
-	 * 공지사항 첨부파일 목록
-	 * @param notice - 공지사항 정보
-	 * @return
-	 * @author gagamel
-	 * @date 2020. 11. 3
-	 */
-	public Collection<Notice> getNoticeFileList(Notice notice) {
-		return noticeDao.getNoticeFileList(notice);
-	}
-
-	/**
-	 * 공지사항 조회수 Update
-	 * @param noticeSq - 공지사항일련번호
-	 * @author gagamel
-	 * @date 2020. 12. 23
-	 */
-	public void updateNoticeReadCount(Integer noticeSq) {
-		noticeDao.updateNoticeReadCount(noticeSq);
-	}
-
-}

+ 0 - 22
style24.front/src/main/java/com/style24/front/biz/service/TsfOrderService.java

@@ -1,22 +0,0 @@
-package com.style24.front.biz.service;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-import com.style24.front.biz.dao.TsfOrderDao;
-import lombok.extern.slf4j.Slf4j;
-
-/**
- * 주문 Service
- *
- * @author gagamel
- * @since 2020. 12. 29
- */
-@Service
-@Slf4j
-public class TsfOrderService {
-
-	@Autowired
-	private TsfOrderDao orderDao;
-
-}

+ 0 - 23
style24.front/src/main/java/com/style24/front/biz/service/TsfPlanningService.java

@@ -1,23 +0,0 @@
-package com.style24.front.biz.service;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-import com.style24.front.biz.dao.TsfPlanningDao;
-
-import lombok.extern.slf4j.Slf4j;
-
-/**
- * 기획전 Service
- *
- * @author gagamel
- * @since 2020. 12. 29
- */
-@Service
-@Slf4j
-public class TsfPlanningService {
-
-	@Autowired
-	private TsfPlanningDao planningDao;
-
-}

+ 0 - 22
style24.front/src/main/java/com/style24/front/biz/service/TsfPointService.java

@@ -1,22 +0,0 @@
-package com.style24.front.biz.service;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-import com.style24.front.biz.dao.TsfPointDao;
-import lombok.extern.slf4j.Slf4j;
-
-/**
- * 포인트 Service
- *
- * @author gagamel
- * @since 2020. 12. 29
- */
-@Service
-@Slf4j
-public class TsfPointService {
-
-	@Autowired
-	private TsfPointDao pointDao;
-
-}

+ 0 - 23
style24.front/src/main/java/com/style24/front/biz/service/TsfReviewService.java

@@ -1,23 +0,0 @@
-package com.style24.front.biz.service;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-import com.style24.front.biz.dao.TsfReviewDao;
-
-import lombok.extern.slf4j.Slf4j;
-
-/**
- * 상품평 Service
- *
- * @author gagamel
- * @since 2020. 12. 29
- */
-@Service
-@Slf4j
-public class TsfReviewService {
-
-	@Autowired
-	private TsfReviewDao reviewDao;
-
-}

+ 0 - 23
style24.front/src/main/java/com/style24/front/biz/service/TsfWishlistService.java

@@ -1,23 +0,0 @@
-package com.style24.front.biz.service;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-import com.style24.front.biz.dao.TsfWishlistDao;
-
-import lombok.extern.slf4j.Slf4j;
-
-/**
- * 위시리스트 Service
- *
- * @author gagamel
- * @since 2020. 12. 29
- */
-@Service
-@Slf4j
-public class TsfWishlistService {
-
-	@Autowired
-	private TsfWishlistDao wishlistDao;
-
-}

+ 0 - 356
style24.front/src/main/java/com/style24/front/biz/web/TsfCallcenterController.java

@@ -1,356 +0,0 @@
-package com.style24.front.biz.web;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.PathVariable;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.ResponseBody;
-import org.springframework.web.servlet.ModelAndView;
-
-import com.style24.core.support.env.TscConstants;
-import com.style24.core.support.message.TscMessageByLocale;
-import com.style24.front.biz.service.TsfCounselService;
-import com.style24.front.biz.service.TsfFaqService;
-import com.style24.front.biz.service.TsfNoticeService;
-import com.style24.front.support.controller.TsfBaseController;
-import com.style24.front.support.security.session.TsfSession;
-import com.style24.persistence.TsfPageRequest;
-import com.style24.persistence.domain.Counsel;
-import com.style24.persistence.domain.Faq;
-import com.style24.persistence.domain.Notice;
-
-import lombok.extern.slf4j.Slf4j;
-
-import com.gagaframework.web.parameter.GagaMap;
-import com.gagaframework.web.rest.server.GagaResponse;
-
-/**
- * 고객센터 Controller
- * 
- * @author gagamel
- * @since 2020. 12. 23
- */
-@Controller
-@RequestMapping("/callcenter")
-@Slf4j
-public class TsfCallcenterController extends TsfBaseController {
-
-	@Autowired
-	private TscMessageByLocale message;
-
-	@Autowired
-	private TsfFaqService faqService;
-
-	@Autowired
-	private TsfNoticeService noticeService;
-
-	@Autowired
-	private TsfCounselService counselService;
-
-	/**
-	 * FAQ
-	 * @return
-	 * @author gagamel
-	 * @since 2020. 12. 23
-	 */
-	@GetMapping("/faq/form")
-	public ModelAndView faqForm() {
-		ModelAndView mav = new ModelAndView();
-
-		// FAQ TOP 10 목록
-		mav.addObject("faqTop10List", faqService.getFaqLikesList(TscConstants.Site.STYLE24.value()));
-
-		mav.setViewName(super.getDeviceViewName("callcenter/FaqForm"));
-
-		return mav;
-	}
-
-	/**
-	 * FAQ 목록
-	 * @param faq - FAQ 정보
-	 * @return
-	 * @author gagamel
-	 * @since 2020. 12. 23
-	 */
-	@PostMapping("/faq/list")
-	@ResponseBody
-	public GagaMap getFaqList(@RequestBody Faq faq) {
-		faq.setSiteCd(TscConstants.Site.STYLE24.value());
-
-		GagaMap result = new GagaMap();
-
-		TsfPageRequest pageable = new TsfPageRequest((faq.getPageNo() > 0 ? faq.getPageNo() - 1 : 0), faq.getPageSize(), faq.getPageUnit());
-		pageable.setTotalCount(faqService.getFaqTotalCount(faq));
-		faq.setPageable(pageable);
-		log.debug("pageable: {}", pageable);
-
-		result.set("paging", faq);
-		result.set("dataList", faqService.getFaqList(faq));
-
-		return result;
-	}
-
-	/**
-	 * FAQ 조회수 갱신
-	 * @param faqSq - FAQ일련번호
-	 * @return
-	 * @author gagamel
-	 * @since 2020. 12. 23
-	 */
-	@PostMapping("/faq/readcount/update/{faqSq}")
-	@ResponseBody
-	public GagaResponse updateFaqReadCount(@PathVariable Integer faqSq) {
-		faqService.updateFaqReadCount(faqSq);
-		return super.ok();
-	}
-
-	/**
-	 * 공지사항
-	 * @return
-	 * @author gagamel
-	 * @since 2020. 12. 23
-	 */
-	@GetMapping("/notice/form")
-	public ModelAndView noticeForm() {
-		ModelAndView mav = new ModelAndView();
-		mav.setViewName(super.getDeviceViewName("callcenter/NoticeForm"));
-		return mav;
-	}
-
-	/**
-	 * 공지사항 목록
-	 * @param notice - 공지사항 정보
-	 * @return
-	 * @author gagamel
-	 * @since 2020. 12. 23
-	 */
-	@PostMapping("/notice/list")
-	@ResponseBody
-	public GagaMap getNoticeList(@RequestBody Notice notice) {
-		notice.setSiteCd(TscConstants.Site.STYLE24.value());
-
-		GagaMap result = new GagaMap();
-
-		TsfPageRequest pageable = new TsfPageRequest((notice.getPageNo() > 0 ? notice.getPageNo() - 1 : 0), notice.getPageSize(), notice.getPageUnit());
-		pageable.setTotalCount(noticeService.getNoticeTotalCount(notice));
-		notice.setPageable(pageable);
-		log.debug("pageable: {}", pageable);
-
-		result.set("paging", notice);
-		result.set("dataList", noticeService.getNoticeList(notice));
-
-		// 긴급(중요) 공지사항 목록
-		result.set("urgentList", noticeService.getUrgentNoticeList(notice));
-
-		return result;
-	}
-
-	/**
-	 * 공지사항 조회수 갱신
-	 * @param noticeSq - 공지사항일련번호
-	 * @return
-	 * @author gagamel
-	 * @since 2020. 12. 23
-	 */
-	@PostMapping("/notice/readcount/update/{noticeSq}")
-	@ResponseBody
-	public GagaResponse updateNoticeReadCount(@PathVariable Integer noticeSq) {
-		noticeService.updateNoticeReadCount(noticeSq);
-		return super.ok();
-	}
-
-	/**
-	 * 1:1문의 화면
-	 * @return
-	 * @author gagamel
-	 * @since 2020. 12. 24
-	 */
-	@GetMapping("/onetoone/qna/form")
-	public ModelAndView oneToOneQnaForm() {
-		ModelAndView mav = new ModelAndView();
-
-		// 1:1문의 건수 정보
-		mav.addObject("qnaCountInfo", counselService.getOneToOneQnaCountInfo());
-
-		mav.setViewName("customer/OneToOneQnaForm");
-
-		return mav;
-	}
-
-	/**
-	 * 1:1문의 등록 처리
-	 * @param counsel -상담정보
-	 * @return
-	 * @author gagamel
-	 * @since 2020. 12. 28
-	 */
-	@PostMapping("/onetoone/qna/create")
-	@ResponseBody
-	public GagaResponse createOneToOneQna(@RequestBody Counsel counsel) {
-		counselService.createOneToOneQna(counsel);
-		return super.ok(message.getMessage("SUCC_0001"));
-	}
-
-	/**
-	 * 1:1문의 목록
-	 * @param counsel - 상담정보
-	 * @return
-	 * @author gagamel
-	 * @since 2020. 12. 28
-	 */
-	@PostMapping("/onetoone/qna/list")
-	@ResponseBody
-	public GagaMap getOneToOneQnaList(@RequestBody Counsel counsel) {
-		counsel.setCustNo(TsfSession.getInfo().getCustNo());
-		counsel.setSiteCd(TscConstants.Site.STYLE24.value());
-
-		GagaMap result = new GagaMap();
-
-		TsfPageRequest pageable = new TsfPageRequest((counsel.getPageNo() > 0 ? counsel.getPageNo() - 1 : 0), counsel.getPageSize(), counsel.getPageUnit());
-		pageable.setTotalCount(counselService.getOneToOneQnaTotalCount(counsel));
-		counsel.setPageable(pageable);
-		log.debug("pageable: {}", pageable);
-
-		result.set("paging", counsel);
-		result.set("dataList", counselService.getOneToOneQnaList(counsel));
-
-		return result;
-	}
-
-	/**
-	 * 1:1문의 삭제 처리
-	 * @param counsel -상담정보
-	 * @return
-	 * @author gagamel
-	 * @since 2020. 12. 28
-	 */
-	@PostMapping("/onetoone/qna/delete")
-	@ResponseBody
-	public GagaResponse deleteOneToOneQna(@RequestBody Counsel counsel) {
-		counselService.deleteOneToOneQna(counsel);
-		return super.ok(message.getMessage("SUCC_0003"));
-	}
-
-	/**
-	 * 1:1문의 상세 화면
-	 * @param counselSq - 상담일련번호
-	 * @return
-	 * @author gagamel
-	 * @since 2020. 12. 28
-	 */
-	@GetMapping("/onetoone/qna/detail/form/{counselSq}")
-	public ModelAndView oneToOneQnaDetailForm(@PathVariable Integer counselSq) {
-		ModelAndView mav = new ModelAndView();
-
-		// 1:1문의 상세
-		mav.addObject("qnaDetailInfo", counselService.getOneToOneQna(counselSq));
-
-		mav.setViewName("customer/OneToOneQnaDetailForm");
-
-		return mav;
-	}
-
-	/**
-	 * 1:1문의 수정 처리
-	 * @param counsel -상담정보
-	 * @return
-	 * @author gagamel
-	 * @since 2020. 12. 28
-	 */
-	@PostMapping("/onetoone/qna/update")
-	@ResponseBody
-	public GagaResponse updateOneToOneQna(@RequestBody Counsel counsel) {
-		counselService.updateOneToOneQna(counsel);
-		return super.ok(message.getMessage("SUCC_0001"));
-	}
-
-	/**
-	 * 1:1문의 이미지 삭제 처리
-	 * @param counsel -상담정보
-	 * @return
-	 * @author gagamel
-	 * @since 2020. 12. 28
-	 */
-	@PostMapping("/onetoone/qna/image/delete")
-	@ResponseBody
-	public GagaResponse deleteOneToOneQnaImage(@RequestBody Counsel counsel) {
-		counselService.deleteOneToOneQnaImage(counsel);
-		return super.ok(message.getMessage("SUCC_0003"));
-	}
-
-	/**
-	 * 상품문의 등록 처리
-	 * @param counsel -상담정보
-	 * @return
-	 * @author gagamel
-	 * @since 2020. 12. 28
-	 */
-	@PostMapping("/goods/qna/create")
-	@ResponseBody
-	public GagaResponse createGoodsQna(@RequestBody Counsel counsel) {
-		counselService.createGoodsQna(counsel);
-		return super.ok(message.getMessage("SUCC_0001"));
-	}
-
-	/**
-	 * 상품문의 화면
-	 * @return
-	 * @author gagamel
-	 * @since 2020. 12. 28
-	 */
-	@GetMapping("/goods/qna/form")
-	public ModelAndView goodsQnaForm() {
-		ModelAndView mav = new ModelAndView();
-
-		// 상품문의 건수 정보
-		mav.addObject("qnaCountInfo", counselService.getGoodsQnaCountInfo());
-
-		mav.setViewName("customer/GoodsQnaForm");
-
-		return mav;
-	}
-
-	/**
-	 * 상품문의 목록
-	 * @param counsel - 상담정보
-	 * @return
-	 * @author gagamel
-	 * @since 2020. 12. 28
-	 */
-	@PostMapping("/goods/qna/list")
-	@ResponseBody
-	public GagaMap getGoodsQnaList(@RequestBody Counsel counsel) {
-		counsel.setCustNo(TsfSession.getInfo().getCustNo());
-		counsel.setSiteCd(TscConstants.Site.STYLE24.value());
-
-		GagaMap result = new GagaMap();
-
-		TsfPageRequest pageable = new TsfPageRequest((counsel.getPageNo() > 0 ? counsel.getPageNo() - 1 : 0), counsel.getPageSize(), counsel.getPageUnit());
-		pageable.setTotalCount(counselService.getGoodsQnaTotalCount(counsel));
-		counsel.setPageable(pageable);
-		log.debug("pageable: {}", pageable);
-
-		result.set("paging", counsel);
-		result.set("dataList", counselService.getGoodsQnaList(counsel));
-
-		return result;
-	}
-
-	/**
-	 * 상품문의 삭제 처리
-	 * @param counsel -상담정보
-	 * @return
-	 * @author gagamel
-	 * @since 2020. 12. 28
-	 */
-	@PostMapping("/goods/qna/delete")
-	@ResponseBody
-	public GagaResponse deleteGoodsQna(@RequestBody Counsel counsel) {
-		counselService.deleteGoodsQna(counsel);
-		return super.ok(message.getMessage("SUCC_0003"));
-	}
-
-}

+ 0 - 30
style24.front/src/main/java/com/style24/front/biz/web/TsfCartController.java

@@ -1,30 +0,0 @@
-package com.style24.front.biz.web;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.RequestMapping;
-
-import com.style24.core.support.message.TscMessageByLocale;
-import com.style24.front.biz.service.TsfCartService;
-import com.style24.front.support.controller.TsfBaseController;
-
-import lombok.extern.slf4j.Slf4j;
-
-/**
- * 장바구니 Controller
- * 
- * @author gagamel
- * @since 2020. 12. 29
- */
-@Controller
-@RequestMapping("/cart")
-@Slf4j
-public class TsfCartController extends TsfBaseController {
-
-	@Autowired
-	private TscMessageByLocale message;
-
-	@Autowired
-	private TsfCartService cartService;
-
-}

+ 0 - 30
style24.front/src/main/java/com/style24/front/biz/web/TsfCustomerController.java

@@ -1,30 +0,0 @@
-package com.style24.front.biz.web;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.RequestMapping;
-
-import com.style24.core.support.message.TscMessageByLocale;
-import com.style24.front.biz.service.TsfCustomerService;
-import com.style24.front.support.controller.TsfBaseController;
-
-import lombok.extern.slf4j.Slf4j;
-
-/**
- * 고객(회원) Controller
- * 
- * @author gagamel
- * @since 2020. 12. 28
- */
-@Controller
-@RequestMapping("/customer")
-@Slf4j
-public class TsfCustomerController extends TsfBaseController {
-
-	@Autowired
-	private TscMessageByLocale message;
-
-	@Autowired
-	private TsfCustomerService customerService;
-
-}

+ 0 - 30
style24.front/src/main/java/com/style24/front/biz/web/TsfDisplayController.java

@@ -1,30 +0,0 @@
-package com.style24.front.biz.web;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.RequestMapping;
-
-import com.style24.core.support.message.TscMessageByLocale;
-import com.style24.front.biz.service.TsfDisplayService;
-import com.style24.front.support.controller.TsfBaseController;
-
-import lombok.extern.slf4j.Slf4j;
-
-/**
- * 전시 Controller
- * 
- * @author gagamel
- * @since 2020. 12. 29
- */
-@Controller
-@RequestMapping("/display")
-@Slf4j
-public class TsfDisplayController extends TsfBaseController {
-
-	@Autowired
-	private TscMessageByLocale message;
-
-	@Autowired
-	private TsfDisplayService displayService;
-
-}

+ 0 - 30
style24.front/src/main/java/com/style24/front/biz/web/TsfEventController.java

@@ -1,30 +0,0 @@
-package com.style24.front.biz.web;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.RequestMapping;
-
-import com.style24.core.support.message.TscMessageByLocale;
-import com.style24.front.biz.service.TsfPlanningService;
-import com.style24.front.support.controller.TsfBaseController;
-
-import lombok.extern.slf4j.Slf4j;
-
-/**
- * 이벤트 Controller
- * 
- * @author gagamel
- * @since 2020. 12. 29
- */
-@Controller
-@RequestMapping("/event")
-@Slf4j
-public class TsfEventController extends TsfBaseController {
-
-	@Autowired
-	private TscMessageByLocale message;
-
-	@Autowired
-	private TsfPlanningService planningService;
-
-}

+ 0 - 30
style24.front/src/main/java/com/style24/front/biz/web/TsfGoodsController.java

@@ -1,30 +0,0 @@
-package com.style24.front.biz.web;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.RequestMapping;
-
-import com.style24.core.support.message.TscMessageByLocale;
-import com.style24.front.biz.service.TsfGoodsService;
-import com.style24.front.support.controller.TsfBaseController;
-
-import lombok.extern.slf4j.Slf4j;
-
-/**
- * 상품 Controller
- * 
- * @author gagamel
- * @since 2020. 12. 29
- */
-@Controller
-@RequestMapping("/goods")
-@Slf4j
-public class TsfGoodsController extends TsfBaseController {
-
-	@Autowired
-	private TscMessageByLocale message;
-
-	@Autowired
-	private TsfGoodsService goodsService;
-
-}

+ 0 - 134
style24.front/src/main/java/com/style24/front/biz/web/TsfIndexController.java

@@ -1,134 +0,0 @@
-package com.style24.front.biz.web;
-
-import java.io.IOException;
-
-import javax.servlet.RequestDispatcher;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import javax.servlet.http.HttpSession;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.core.env.Environment;
-import org.springframework.stereotype.Controller;
-import org.springframework.web.HttpRequestMethodNotSupportedException;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestParam;
-import org.springframework.web.servlet.ModelAndView;
-
-import com.style24.core.support.message.TscMessageByLocale;
-import com.style24.front.support.controller.TsfBaseController;
-import com.style24.front.support.security.session.TsfSession;
-
-import lombok.extern.slf4j.Slf4j;
-
-import com.gagaframework.web.rest.server.GagaResponseStatus;
-
-/**
- * Index Controller
- * 
- * @author gagamel
- * @since 2020. 9. 11
- */
-@Controller
-@Slf4j
-public class TsfIndexController extends TsfBaseController {
-
-	@Autowired
-	private Environment env;
-
-	@Autowired
-	private TscMessageByLocale message;
-
-	/**
-	 * 에러 페이지
-	 * @return
-	 * @author gagamel
-	 * @throws IOException
-	 * @since 2020. 3. 18
-	 */
-	@GetMapping("/error")
-	public ModelAndView error(HttpServletRequest request, HttpServletResponse response) throws HttpRequestMethodNotSupportedException, IOException {
-		ModelAndView mav = new ModelAndView(super.getDeviceViewName("error/500"));
-
-		Object status = request.getAttribute(RequestDispatcher.ERROR_STATUS_CODE);
-
-		if (status != null) {
-			Integer statusCode = Integer.valueOf(status.toString());
-			log.debug("statusCode: {}", statusCode);
-
-			if (statusCode == GagaResponseStatus.NOT_FOUND.getCode()) {
-				mav.addObject("status", GagaResponseStatus.NOT_FOUND.getCode());
-
-				// 404 오류 시 잘못된 링크 유입 시 몰메인으로 이동 처리
-				String prevRequestUri = (String)request.getAttribute(RequestDispatcher.FORWARD_REQUEST_URI);
-				log.debug("prevRequestUri: {}", prevRequestUri);
-				if (prevRequestUri.startsWith("/m")) {
-					response.sendRedirect("/");
-				}
-
-				String profiles = env.getProperty("spring.profiles.active").toLowerCase();
-				if ("locd".equals(profiles) || "locp".equals(profiles) || "dev".equals(profiles)) {
-					mav.addObject("message", "No mapping found for HTTP request with URI ["
-						+ String.valueOf(request.getAttribute(RequestDispatcher.FORWARD_REQUEST_URI)) + "]");
-				}
-
-				return mav;
-			}
-		}
-
-		mav.addObject("status", GagaResponseStatus.INTERNAL_SERVER_ERROR.getCode());
-
-		String profiles = env.getProperty("spring.profiles.active").toLowerCase();
-		if ("locd".equals(profiles) || "locp".equals(profiles) || "dev".equals(profiles)) {
-			mav.addObject("message", String.valueOf(request.getAttribute(RequestDispatcher.ERROR_MESSAGE)));
-		}
-
-		return mav;
-	}
-
-	/**
-	 * 첫 페이지
-	 * @return
-	 * @author gagamel
-	 * @since 2020. 2. 3
-	 */
-	@GetMapping("/")
-	public String index() {
-		return "forward:/display/mall/main/form";
-	}
-
-	/**
-	 * 로그인 페이지
-	 * @param error - 로그인 오류 정보
-	 * @param session - HttpSession
-	 * @param snsType - SNS유형(NV:네이버, KK:카카오, FB:페이스북)
-	 * @return
-	 * @author gagamel
-	 * @throws IOException
-	 * @since 2020. 2. 4
-	 */
-	@GetMapping("/signin")
-	public ModelAndView signin(@RequestParam(value = "error", required = false) boolean isError, HttpSession session, HttpServletResponse response) throws IOException {
-		ModelAndView mav = new ModelAndView();
-
-		if (TsfSession.isLogin()) {
-			response.sendRedirect("/");
-		}
-
-		log.debug("isError: {}", isError);
-
-		if (isError) {
-			Exception e = (Exception)session.getAttribute("SPRING_SECURITY_LAST_EXCEPTION");
-			log.debug("e.getMessage(): {}", e.getMessage());
-			mav.addObject("error", e.getMessage());
-		}
-
-		mav.addObject("front", env.getProperty("domain.front"));
-
-		// 로그인 페이지로
-		mav.setViewName(super.getDeviceViewName("Signin"));
-
-		return mav;
-	}
-
-}

+ 0 - 54
style24.front/src/main/java/com/style24/front/biz/web/TsfMypageController.java

@@ -1,54 +0,0 @@
-package com.style24.front.biz.web;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.RequestMapping;
-
-import com.style24.core.support.message.TscMessageByLocale;
-import com.style24.front.biz.service.TsfCouponService;
-import com.style24.front.biz.service.TsfCustomerService;
-import com.style24.front.biz.service.TsfGiftcardService;
-import com.style24.front.biz.service.TsfOrderService;
-import com.style24.front.biz.service.TsfPointService;
-import com.style24.front.biz.service.TsfReviewService;
-import com.style24.front.biz.service.TsfWishlistService;
-import com.style24.front.support.controller.TsfBaseController;
-
-import lombok.extern.slf4j.Slf4j;
-
-/**
- * 마이페이지 Controller
- * 
- * @author gagamel
- * @since 2020. 12. 29
- */
-@Controller
-@RequestMapping("/mypage")
-@Slf4j
-public class TsfMypageController extends TsfBaseController {
-
-	@Autowired
-	private TscMessageByLocale message;
-
-	@Autowired
-	private TsfCustomerService customerService;
-
-	@Autowired
-	private TsfOrderService orderService;
-
-	@Autowired
-	private TsfReviewService reviewService;
-
-	@Autowired
-	private TsfWishlistService wishlistService;
-
-	@Autowired
-	private TsfPointService pointService;
-
-	@Autowired
-	private TsfGiftcardService giftcardService;
-
-	@Autowired
-	private TsfCouponService couponService;
-
-}

+ 0 - 30
style24.front/src/main/java/com/style24/front/biz/web/TsfOrderController.java

@@ -1,30 +0,0 @@
-package com.style24.front.biz.web;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.RequestMapping;
-
-import com.style24.core.support.message.TscMessageByLocale;
-import com.style24.front.biz.service.TsfOrderService;
-import com.style24.front.support.controller.TsfBaseController;
-
-import lombok.extern.slf4j.Slf4j;
-
-/**
- * 주문 Controller
- * 
- * @author gagamel
- * @since 2020. 12. 29
- */
-@Controller
-@RequestMapping("/order")
-@Slf4j
-public class TsfOrderController extends TsfBaseController {
-
-	@Autowired
-	private TscMessageByLocale message;
-
-	@Autowired
-	private TsfOrderService orderService;
-
-}

+ 0 - 30
style24.front/src/main/java/com/style24/front/biz/web/TsfPlanningController.java

@@ -1,30 +0,0 @@
-package com.style24.front.biz.web;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Controller;
-import org.springframework.web.bind.annotation.RequestMapping;
-
-import com.style24.core.support.message.TscMessageByLocale;
-import com.style24.front.biz.service.TsfPlanningService;
-import com.style24.front.support.controller.TsfBaseController;
-
-import lombok.extern.slf4j.Slf4j;
-
-/**
- * 기획전 Controller
- * 
- * @author gagamel
- * @since 2020. 12. 29
- */
-@Controller
-@RequestMapping("/planning")
-@Slf4j
-public class TsfPlanningController extends TsfBaseController {
-
-	@Autowired
-	private TscMessageByLocale message;
-
-	@Autowired
-	private TsfPlanningService planningService;
-
-}

+ 0 - 48
style24.front/src/main/java/com/style24/front/support/config/TsfMybatisShopConfig.java

@@ -1,48 +0,0 @@
-package com.style24.front.support.config;
-
-import javax.sql.DataSource;
-
-import org.apache.ibatis.session.SqlSessionFactory;
-import org.mybatis.spring.SqlSessionFactoryBean;
-import org.mybatis.spring.SqlSessionTemplate;
-import org.mybatis.spring.annotation.MapperScan;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Qualifier;
-import org.springframework.context.ApplicationContext;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-
-import com.style24.core.support.annotation.ShopDs;
-import com.style24.core.support.env.TscConstants;
-
-/**
- * shopDs용 Mybatis Configuration
- * 
- * @author gagamel
- * @since 2020. 9. 11
- */
-@Configuration
-@MapperScan(basePackages = TscConstants.BASE_PACKAGE, annotationClass = ShopDs.class, sqlSessionFactoryRef = "shopSqlSessionFactory")
-public class TsfMybatisShopConfig {
-
-	@Autowired
-	private ApplicationContext applicationContext;
-
-	@Bean(name = "shopSqlSessionFactory")
-	public SqlSessionFactory shopSqlSessionFactory(@Qualifier("shopDataSource") DataSource dataSource) throws Exception {
-		SqlSessionFactoryBean sessionFactoryBean = new SqlSessionFactoryBean();
-
-		sessionFactoryBean.setDataSource(dataSource);
-		sessionFactoryBean.setTypeAliasesPackage(TscConstants.DOMAIN_PACKAGE);
-		sessionFactoryBean.setConfigLocation(applicationContext.getResource("classpath:persistence/mybatis-shop-config.xml"));
-		sessionFactoryBean.setMapperLocations(applicationContext.getResources(TscConstants.MAPPER_LOCATION_PATH + "/*.xml"));
-
-		return sessionFactoryBean.getObject();
-	}
-
-	@Bean(name = "shopSqlSessionTemplate")
-	public SqlSessionTemplate shopSqlSessionTemplate(@Qualifier("shopSqlSessionFactory") SqlSessionFactory sqlSessionFactory) throws Exception {
-		return new SqlSessionTemplate(sqlSessionFactory);
-	}
-
-}

+ 0 - 97
style24.front/src/main/java/com/style24/front/support/config/TsfRedisSessionConfig.java

@@ -1,97 +0,0 @@
-package com.style24.front.support.config;
-
-import org.springframework.beans.factory.BeanClassLoaderAware;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer;
-import org.springframework.data.redis.serializer.RedisSerializer;
-import org.springframework.security.jackson2.SecurityJackson2Modules;
-import org.springframework.session.data.redis.config.ConfigureRedisAction;
-import org.springframework.session.data.redis.config.annotation.web.http.EnableRedisHttpSession;
-import org.springframework.session.web.context.AbstractHttpSessionApplicationInitializer;
-import org.springframework.session.web.http.CookieSerializer;
-import org.springframework.session.web.http.DefaultCookieSerializer;
-
-import com.fasterxml.jackson.databind.ObjectMapper;
-
-/**
- * Spring Session을 JSON 형태로 Redis에 저장하기 위한 Configuration
- * 		HttpSession 구현체를 대체하는 서블릿 필터를 생성
- *
- * 		@EnableRedisHttpSession 어노테이션은 SpringSessionRepositoryFilter(Filter의 구현체)라는 빈을 생성하는데,
- * 		yml 파일의 "spring.session.store-type: redis"와 같다.
- * 		이 필터는 HttpSession의 구현체를 바꾸는 역할을 한다.
- *
- *		@EnableRedisHttpSession 어노테이션을 하고
- *		"spring.data.redis.repositories.enabled: true" 속성을 application.yml 파일에 추가한다.
- *
- * @author gagamel
- * @since 2020. 9. 11
- */
-@Configuration
-@EnableRedisHttpSession(maxInactiveIntervalInSeconds = 1800)
-public class TsfRedisSessionConfig extends AbstractHttpSessionApplicationInitializer implements BeanClassLoaderAware {
-
-	private ClassLoader classLoader;
-
-	@Override
-	public void setBeanClassLoader(ClassLoader classLoader) {
-		this.classLoader = classLoader;
-	}
-
-	/**
-	 * Redis Keyspace Notification 역시 받을 필요가 없도록 처리
-	 * @return
-	 * @author gagamel
-	 * @since 2020. 5. 31.
-	 */
-	@Bean
-	public static ConfigureRedisAction configureRedisAction() {
-		return ConfigureRedisAction.NO_OP;
-	}
-
-	/**
-	 * Serialize 수행 방법을 스프링에 알려준다.
-	 * @return
-	 * @author gagamel
-	 * @since 2020. 5. 29.
-	 */
-	@Bean
-	public RedisSerializer<Object> springSessionDefaultRedisSerializer() {
-		return new GenericJackson2JsonRedisSerializer(objectMapper());
-	}
-
-	/**
-	 * Spring Security 관련 변수 및 매개 변수를 저장하기 위해 SecurityJackson2Modules를 사용
-	 * @return
-	 * @author gagamel
-	 * @since 2020. 5. 29.
-	 */
-	private ObjectMapper objectMapper() {
-		ObjectMapper mapper = new ObjectMapper();
-		mapper.registerModules(SecurityJackson2Modules.getModules(this.classLoader));
-		return mapper;
-	}
-
-	/**
-	 * @EnableRedisHttpSession 어노테이션을 통해 redis-session을 처리할 경우
-	 * 결제, 본인인증 후 콜백시 로그인이 풀림
-	 * SAME_SITE = NONE 그리고 SECURE 를 하기위해서 해당 메소드가 필요함
-	 * @return
-	 * @author gagamel
-	 * @since 2020. 5. 21.
-	 */
-	@Bean
-	public CookieSerializer cookieSerializer() {
-		DefaultCookieSerializer serializer = new DefaultCookieSerializer();
-		serializer.setCookiePath("/");
-		serializer.setUseBase64Encoding(false);
-
-		// SSL인증서 적용 시 주석 제거
-//		serializer.setUseSecureCookie(true);
-//		serializer.setSameSite("NONE");
-
-		return serializer;
-	}
-
-}

+ 0 - 82
style24.front/src/main/java/com/style24/front/support/config/TsfThymeleafConfig.java

@@ -1,82 +0,0 @@
-package com.style24.front.support.config;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.ApplicationContext;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.core.Ordered;
-import org.springframework.core.env.Environment;
-import org.springframework.web.servlet.ViewResolver;
-import org.thymeleaf.extras.java8time.dialect.Java8TimeDialect;
-import org.thymeleaf.spring5.SpringTemplateEngine;
-import org.thymeleaf.spring5.templateresolver.SpringResourceTemplateResolver;
-import org.thymeleaf.spring5.view.ThymeleafViewResolver;
-import org.thymeleaf.templatemode.TemplateMode;
-
-import nz.net.ultraq.thymeleaf.LayoutDialect;
-
-/**
- * THYMELEAF Configuration
- * 
- * @author gagamel
- * @since 2020. 9. 11
- */
-@Configuration
-public class TsfThymeleafConfig {
-
-	@Autowired
-	private ApplicationContext applicationContext;
-
-	@Autowired
-	private Environment env;
-
-	@Bean
-	public SpringResourceTemplateResolver templateResolver() {
-		SpringResourceTemplateResolver templateResolver = new SpringResourceTemplateResolver();
-		templateResolver.setApplicationContext(applicationContext);
-		templateResolver.setPrefix(env.getProperty("spring.thymeleaf.prefix"));
-		templateResolver.setSuffix(env.getProperty("spring.thymeleaf.suffix"));
-		templateResolver.setTemplateMode(TemplateMode.HTML);
-		templateResolver.setCharacterEncoding("UTF-8");
-		templateResolver.setCacheable(false);
-
-		return templateResolver;
-	}
-
-	@Bean
-	public SpringTemplateEngine templateEngine() {
-		SpringTemplateEngine templateEngine = new SpringTemplateEngine();
-		templateEngine.setTemplateResolver(templateResolver());
-		templateEngine.setEnableSpringELCompiler(true);
-		templateEngine.addDialect(new LayoutDialect());
-		templateEngine.addDialect(new Java8TimeDialect());
-		return templateEngine;
-	}
-
-	@Bean
-	public ViewResolver thymeleafViewResolver() {
-		ThymeleafViewResolver viewResolver = new ThymeleafViewResolver();
-
-		viewResolver.setTemplateEngine(templateEngine());
-		viewResolver.setCharacterEncoding("UTF-8");
-		viewResolver.setOrder(Ordered.HIGHEST_PRECEDENCE);
-
-		// below views will not be handled by this reslover.
-		viewResolver.setExcludedViewNames(new String[] {"common/**/*"});
-
-		return viewResolver;
-	}
-
-//	@Bean
-//	public FoLiteDeviceDelegatingViewResolver liteDeviceAwareViewResolver() {
-//		FoLiteDeviceDelegatingViewResolver resolver = new FoLiteDeviceDelegatingViewResolver(thymeleafViewResolver());
-//
-//		resolver.setNormalPrefix("web/");
-//		resolver.setMobilePrefix("mob/");
-//		resolver.setTabletPrefix("mob/");
-//		resolver.setEnableFallback(true);
-//		
-//		return resolver;
-//	}
-
-}

+ 0 - 217
style24.front/src/main/java/com/style24/front/support/config/TsfWebMvcConfig.java

@@ -1,217 +0,0 @@
-package com.style24.front.support.config;
-
-import java.nio.charset.Charset;
-import java.util.List;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.web.servlet.FilterRegistrationBean;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.http.client.HttpComponentsClientHttpRequestFactory;
-import org.springframework.http.converter.StringHttpMessageConverter;
-import org.springframework.mobile.device.DeviceHandlerMethodArgumentResolver;
-import org.springframework.mobile.device.DeviceResolverHandlerInterceptor;
-import org.springframework.mobile.device.site.SitePreferenceHandlerInterceptor;
-import org.springframework.web.client.RestTemplate;
-import org.springframework.web.method.support.HandlerMethodArgumentResolver;
-import org.springframework.web.multipart.support.MultipartFilter;
-import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
-import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
-
-import com.style24.front.support.interceptor.TsfAflinkInterceptor;
-import com.style24.front.support.interceptor.TsfDefaultInterceptor;
-import com.style24.front.support.interceptor.TsfGoodsViewInterceptor;
-import com.style24.front.support.interceptor.TsfLoginCheckInterceptor;
-import com.style24.front.support.interceptor.TsfRememberMeInterceptor;
-import com.style24.front.support.interceptor.TsfReturnUrlInterceptor;
-
-import com.gagaframework.web.core.filter.GagaXssServletFilter;
-import com.gagaframework.web.rest.client.GagaRequestStringTrim;
-
-/**
- * Web MVC Configuration
- * 
- * @author gagamel
- * @since 2020. 9. 11
- */
-@Configuration
-public class TsfWebMvcConfig implements WebMvcConfigurer {
-
-	@Autowired
-	private TsfDefaultInterceptor defaultInterceptor;
-
-	@Autowired
-	private TsfAflinkInterceptor aflinkInterceptor;
-
-	@Autowired
-	private TsfReturnUrlInterceptor returnUrlInterceptor;
-
-	@Autowired
-	private TsfLoginCheckInterceptor loginCheckInterceptor;
-
-	@Autowired
-	private TsfGoodsViewInterceptor goodsViewInterceptor;
-
-	@Autowired
-	private TsfRememberMeInterceptor rememberMeInterceptor;
-
-	@Override
-	public void addInterceptors(InterceptorRegistry registry) {
-		final String[] excludePathPatterns = new String[] {
-			"/", "/index", "/signin/**",
-			"/image/**", "/ux/**",
-			"/error/**", "/data/**",
-			"/login", "/logout"
-		};
-
-		// 디바이스 해석
-		registry.addInterceptor(deviceResolverHandlerInterceptor())
-			.order(0);
-
-		// 선호 사이트 해석
-		registry.addInterceptor(sitePreferenceHandlerInterceptor())
-			.order(1);
-
-		registry.addInterceptor(defaultInterceptor)
-			.addPathPatterns("/**/*")
-			.excludePathPatterns(excludePathPatterns)
-			.order(2);
-
-		registry.addInterceptor(aflinkInterceptor)
-			.addPathPatterns("/**/form")
-			.excludePathPatterns(excludePathPatterns)
-			.order(3);
-
-		registry.addInterceptor(rememberMeInterceptor)
-			.addPathPatterns("/**/form")
-			.excludePathPatterns(excludePathPatterns)
-			.order(4);
-
-		registry.addInterceptor(returnUrlInterceptor)
-			.addPathPatterns("/**/form")
-//				.excludePathPatterns(excludeReturnUrlPathPatterns)
-			.order(10);
-
-		// 로그인 체크
-		registry.addInterceptor(loginCheckInterceptor)
-			.addPathPatterns(new String[] {"/mypage/**", "/order/**",
-				"/callcenter/onetoone/**", "/callcenter/goods/**"
-			})
-			.order(20);
-
-		// 상품뷰 이력 생성
-		registry.addInterceptor(goodsViewInterceptor)
-			.addPathPatterns(new String[] {"/goods/detail/form"})
-			.order(30);
-	}
-
-	/**
-	 * 디바이스 해석
-	 * @return
-	 */
-	@Bean
-	public DeviceResolverHandlerInterceptor deviceResolverHandlerInterceptor() {
-		return new DeviceResolverHandlerInterceptor();
-	}
-
-	/**
-	 * 선호 사이트 해석
-	 * @return
-	 */
-	@Bean
-	public SitePreferenceHandlerInterceptor sitePreferenceHandlerInterceptor() {
-		return new SitePreferenceHandlerInterceptor();
-	}
-
-	/**
-	 * Device를 Controller 메소드의 argument로 전달하기 위해 설정
-	 * Controller에서 다음과 같이 사용
-	 *
-	 * 		@RequestMapping("/")
-	 * 		public void home(Device device) {
-	 * 			if (device.isMobile()) {
-	 * 				// Mobile Device
-	 * 			} else if (device.isTablet()) {
-	 * 				// Tablet Device
-	 * 			} else {
-	 * 				// Desktop Device
-	 * 			}
-	 * 		}
-	 * @return
-	 */
-	@Bean
-	public DeviceHandlerMethodArgumentResolver deviceHandlerMethodArgumentResolver() {
-		return new DeviceHandlerMethodArgumentResolver();
-	}
-
-	/**
-	 * Device를 Controller 메소드의 argument로 전달하기 위해 설정
-	 */
-	@Override
-	public void addArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers) {
-		argumentResolvers.add(deviceHandlerMethodArgumentResolver());
-	}
-
-	/**
-	 * @RequestBody annotation 이용 시 json data 형식의 모든 문자열의 앞, 뒤 공백을 제거
-	 */
-	@Bean
-	public GagaRequestStringTrim stringTrim() {
-		return new GagaRequestStringTrim();
-	}
-
-	/**
-	 * XSS(Cross Site Script) Prevention Filter
-	 * @return
-	 */
-	@SuppressWarnings({"rawtypes", "unchecked"})
-	@Bean
-	public FilterRegistrationBean xssFilterRegistrationBean() {
-		FilterRegistrationBean bean = new FilterRegistrationBean();
-		bean.setFilter(new GagaXssServletFilter());
-		bean.setOrder(2);
-		bean.addUrlPatterns("/*");
-		return bean;
-	}
-
-	/**
-	 * Multipart Filter
-	 * 		파일 업로드 구현 시 MultipartRequest를 처리함에 따라 해당 부분은 불필요 하나,
-	 * 		com.oreilly.servlet.MultipartRequest 같은 걸 이용 시
-	 * 		"Corrupt form data: premature ending" exception이 발생한다.
-	 * 		이를 해결하고자 Filter를 구성
-	 * @return
-	 */
-	@SuppressWarnings({"rawtypes", "unchecked"})
-	@Bean
-	public FilterRegistrationBean springMultipartRegistrationBean() {
-		FilterRegistrationBean bean = new FilterRegistrationBean();
-		bean.setName("springMultipartResolver");
-		bean.setFilter(new MultipartFilter());
-		bean.setOrder(1);
-		bean.addUrlPatterns(new String[] {
-			"/common/file/upload/**",
-			"/common/files/upload/**"
-		});
-		return bean;
-	}
-
-	/**
-	 * API 호출을 위한 RestTemplate 설정
-	 * @return
-	 */
-	@Bean
-	public RestTemplate restTemplate() {
-		HttpComponentsClientHttpRequestFactory factory = new HttpComponentsClientHttpRequestFactory();
-		factory.setConnectTimeout(300000);
-		factory.setReadTimeout(300000);
-
-		RestTemplate restTemplate = new RestTemplate(factory);
-
-		// Convert the message to UTF-8
-		restTemplate.getMessageConverters().add(0, new StringHttpMessageConverter(Charset.forName("UTF-8")));
-
-		return restTemplate;
-	}
-
-}

+ 0 - 306
style24.front/src/main/java/com/style24/front/support/controller/TsfBaseController.java

@@ -1,306 +0,0 @@
-package com.style24.front.support.controller;
-
-import java.sql.SQLException;
-import java.sql.SQLRecoverableException;
-import java.util.Set;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.validation.ConstraintViolation;
-import javax.validation.Validation;
-import javax.validation.Validator;
-
-import org.apache.commons.lang3.StringUtils;
-import org.apache.commons.lang3.exception.ExceptionUtils;
-import org.apache.ibatis.binding.BindingException;
-import org.springframework.beans.TypeMismatchException;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.propertyeditors.StringTrimmerEditor;
-import org.springframework.core.env.Environment;
-import org.springframework.mobile.device.Device;
-import org.springframework.mobile.device.DeviceUtils;
-import org.springframework.mobile.device.site.SitePreference;
-import org.springframework.mobile.device.site.SitePreferenceUtils;
-import org.springframework.mobile.device.util.ResolverUtils;
-import org.springframework.security.access.AccessDeniedException;
-import org.springframework.util.Assert;
-import org.springframework.validation.FieldError;
-import org.springframework.web.HttpRequestMethodNotSupportedException;
-import org.springframework.web.bind.MethodArgumentNotValidException;
-import org.springframework.web.bind.MissingServletRequestParameterException;
-import org.springframework.web.bind.WebDataBinder;
-import org.springframework.web.bind.annotation.ControllerAdvice;
-import org.springframework.web.bind.annotation.ExceptionHandler;
-import org.springframework.web.bind.annotation.InitBinder;
-import org.springframework.web.bind.annotation.ModelAttribute;
-import org.springframework.web.bind.annotation.ResponseBody;
-import org.springframework.web.context.request.RequestAttributes;
-import org.springframework.web.context.request.RequestContextHolder;
-import org.springframework.web.context.request.ServletRequestAttributes;
-
-import com.fasterxml.jackson.databind.JsonMappingException;
-import com.style24.core.support.message.TscMessageByLocale;
-import com.style24.front.support.env.TsfConstants;
-import com.style24.front.support.security.session.TsfSession;
-import com.style24.persistence.domain.Login;
-
-import lombok.extern.slf4j.Slf4j;
-
-import com.gagaframework.web.rest.exception.GagaRestException;
-import com.gagaframework.web.rest.server.GagaResponse;
-import com.gagaframework.web.rest.server.GagaResponseStatus;
-import com.gagaframework.web.util.GagaCookieUtil;
-
-/**
- * Controller Advice
- * 
- * @author gagamel
- * @since 2020. 9. 11
- */
-@ControllerAdvice
-@Slf4j
-public class TsfBaseController {
-
-	@Autowired
-	private Environment env;
-
-	@Autowired
-	private TscMessageByLocale message;
-
-	/**
-	 * Json data 형식 외의 모든 문자열의 앞, 뒤 공백 제거
-	 * Json data 형식의 모든 문자열의 앞, 뒤 공백 제거 시는 AdmStringTrim에서 처리 (@RequestBody annotation 이용 시)
-	 * @param binder
-	 */
-	@InitBinder
-	public void initBinder(WebDataBinder binder) {
-		StringTrimmerEditor stringtrimmer = new StringTrimmerEditor(true);
-//		stringtrimmer.getAsText().replaceAll("<", "&lt;").replaceAll(">", "&gt;");
-		binder.registerCustomEditor(String.class, stringtrimmer);
-	}
-
-	@ModelAttribute("env")
-	public Environment getEnvironment() {
-		return env;
-	}
-
-	/**
-	 * Get 세션 정보
-	 *
-	 * 1.View 단에서 사용법
-	 * 		th:value="${sessionInfo.userId}"
-	 * 2.Java 단에서 사용법
-	 * 		super.getSession().getUserId()
-	 * @return
-	 */
-	@ModelAttribute("sessionInfo")
-	public Login getSession() {
-		return TsfSession.getInfo();
-	}
-
-	/**
-	 * Get 프론트구분(P:PC, M:모바일)
-	 *
-	 * 1.View 단에서 사용법
-	 * 		th:value="${frontGb}"
-	 * 2.Java 단에서 사용법
-	 * 		super.getFrontGb()
-	 * @return
-	 */
-	@ModelAttribute("frontGb")
-	public String getFrontGb() {
-		return TsfSession.getFrontGb();
-	}
-
-	@ModelAttribute("snsLoginPrefix")
-	public String getSnsLoginPrefix() {
-		return TsfConstants.SNSLOGIN_PREFIX;
-	}
-
-	@ModelAttribute("osType")
-	public String getOsType() {
-		return TsfSession.getAttribute("osType");
-	}
-
-	/**
-	 * APP인지 아닌지 (true/false)
-	 * @return
-	 */
-	@ModelAttribute("isApp")
-	public String isApp() {
-		return TsfSession.getAttribute("isApp");
-	}
-
-	/**
-	 * APP명
-	 * @return
-	 */
-	@ModelAttribute("appName")
-	public String getAppName() {
-		return TsfSession.getAttribute("appName");
-	}
-
-	/**
-	 * APP버전
-	 * @return
-	 */
-	@ModelAttribute("appVersion")
-	public String getAppVersion() {
-		return TsfSession.getAttribute("appVersion");
-	}
-
-	/**
-	 * APP의 디바이스토큰
-	 * @return
-	 */
-	@ModelAttribute("deviceToken")
-	public String getDeviceToken() {
-		return TsfSession.getAttribute("deviceToken");
-	}
-
-	@ResponseBody
-	public GagaResponse ok() {
-		return GagaResponse.of(GagaResponseStatus.SUCCESS.getCode(), "SUCCESS");
-	}
-
-	@ResponseBody
-	public GagaResponse ok(String message) {
-		return GagaResponse.of(GagaResponseStatus.SUCCESS.getCode(), message);
-	}
-
-	@ResponseBody
-	public GagaResponse error(String message) {
-		return GagaResponse.error(GagaResponseStatus.FAIL.getCode(), message);
-	}
-
-	@ExceptionHandler(AccessDeniedException.class)
-	@ResponseBody
-	public GagaResponse handleForbidden(Exception e) {
-		return GagaResponse.error(GagaResponseStatus.FORBIDDEN.getCode(), e.getMessage());
-	}
-
-	@ExceptionHandler(TypeMismatchException.class)
-	@ResponseBody
-	public GagaResponse handleBadRequestException(Exception e) {
-		errorLogging(e);
-		return GagaResponse.error(GagaResponseStatus.BAD_REQUEST.getCode(), e.getMessage());
-	}
-
-	@ExceptionHandler(MissingServletRequestParameterException.class)
-	@ResponseBody
-	public GagaResponse handleRequestParameterException(MissingServletRequestParameterException e) {
-		errorLogging(e);
-		return GagaResponse.error(GagaResponseStatus.BAD_REQUEST.getCode(), e.getMessage());
-	}
-
-	/**
-	 * HttpRequestMethodNotSupportedException Handler
-	 * @param e - HttpRequestMethodNotSupportedException, SQLRecoverableException
-	 * @return forwarding URI
-	 */
-	@ExceptionHandler({HttpRequestMethodNotSupportedException.class, SQLRecoverableException.class})
-	public String handleException(HttpRequestMethodNotSupportedException e) {
-		return "forward:/error/500";
-	}
-
-	@ExceptionHandler(Throwable.class)
-	@ResponseBody
-	public GagaResponse handleException(Throwable throwable) {
-		errorLogging(throwable);
-
-		Throwable rootCause = ExceptionUtils.getRootCause(throwable);
-
-		if (rootCause != null) {
-			throwable = rootCause;
-		}
-
-		if (throwable instanceof SQLException || throwable instanceof BindingException ||
-			throwable instanceof JsonMappingException) {
-			String message = String.format("데이터 처리중 에러가 발생하였습니다. 시스템 관리자에게 문의하세요.");
-			return GagaResponse.error(GagaResponseStatus.INTERNAL_SERVER_ERROR.getCode(), message);
-		}
-
-		return GagaResponse.error(GagaResponseStatus.INTERNAL_SERVER_ERROR.getCode(), throwable.getMessage());
-	}
-
-	private void errorLogging(Throwable throwable) {
-		if (log.isErrorEnabled()) {
-			Throwable rootCause = ExceptionUtils.getRootCause(throwable);
-
-			if (rootCause != null) {
-				throwable = rootCause;
-			}
-
-			if (throwable.getMessage() != null) {
-				log.error(throwable.getMessage(), throwable);
-			} else {
-				log.error("ERROR", throwable);
-			}
-		}
-	}
-
-	@ExceptionHandler(MethodArgumentNotValidException.class)
-	@ResponseBody
-	public Object processValidationError(MethodArgumentNotValidException ex) {
-		FieldError fieldError = ex.getBindingResult().getFieldErrors().get(0);
-		GagaResponse error = GagaResponse.error(GagaResponseStatus.INTERNAL_SERVER_ERROR.getCode(), fieldError.getDefaultMessage());
-		error.getError().setRequiredKey(fieldError.getField());
-		return error;
-	}
-
-	/**
-	 * Custom Validation using group class
-	 * @param domain - Domain to validate
-	 * @param groupClass - Group class to validate
-	 */
-	public void customValidation(Object clazz, Class<?> groupClass) {
-		Validator validator = Validation.buildDefaultValidatorFactory().getValidator();
-
-		Set<ConstraintViolation<Object>> violations = validator.validate(clazz, groupClass);
-
-		for (ConstraintViolation<?> violation : violations) {
-			String validationMessage = violation.getMessage();
-			validationMessage = StringUtils.removeStart(validationMessage, "{");
-			validationMessage = StringUtils.removeEnd(validationMessage, "}");
-			throw new GagaRestException(GagaResponseStatus.FAIL.getCode(), message.getMessage(validationMessage));
-		}
-	}
-
-	public String getDeviceViewName(String viewName) {
-		RequestAttributes attrs = RequestContextHolder.getRequestAttributes();
-		Assert.isInstanceOf(ServletRequestAttributes.class, attrs);
-		HttpServletRequest request = ((ServletRequestAttributes)attrs).getRequest();
-
-		Device device = DeviceUtils.getCurrentDevice(request);
-		SitePreference sitePreference = SitePreferenceUtils.getCurrentSitePreference(request);
-		String resolvedViewName = viewName;
-
-		if (ResolverUtils.isNormal(device, sitePreference)) {
-			resolvedViewName = "web/" + viewName + "Web";
-		} else if (ResolverUtils.isMobile(device, sitePreference)) {
-			if (GagaCookieUtil.getCookie(request, TsfConstants.CK_PREFIX + "_site_preference").equals("normal")) {
-				resolvedViewName = "web/" + viewName + "Web";
-			} else {
-				resolvedViewName = "mob/" + viewName + "Mob";
-			}
-		} else if (ResolverUtils.isTablet(device, sitePreference)) {
-			if (GagaCookieUtil.getCookie(request, TsfConstants.CK_PREFIX + "_site_preference").equals("normal")) {
-				resolvedViewName = "web/" + viewName + "Web";
-			} else {
-				resolvedViewName = "mob/" + viewName + "Mob";
-			}
-		}
-
-		log.debug("resolvedViewName: {}", resolvedViewName);
-
-		return stripTrailingSlash(resolvedViewName);
-	}
-
-	private String stripTrailingSlash(String viewName) {
-		if (viewName.endsWith("//")) {
-			return viewName.substring(0, viewName.length() - 1);
-		}
-
-		return viewName;
-	}
-
-}

+ 0 - 32
style24.front/src/main/java/com/style24/front/support/controller/TsfCustomErrorController.java

@@ -1,32 +0,0 @@
-package com.style24.front.support.controller;
-
-import org.springframework.boot.web.servlet.error.ErrorController;
-import org.springframework.stereotype.Controller;
-
-/**
- * Custom Error Controller
- * 		1. Disabling the Whitelabel Error Page
- * 			- application.yml 파일에 다음을 추가
- * 				server.error.whitelabel.enabled=false
- * 			
- * 			or
- * 
- * 			- ~Application.java 파일에 다음을 추가
- * 				@EnableAutoConfiguration(exclude = {ErrorMvcAutoConfiguration.class})
- * 
- * 		2. Create a Custom ErrorController
- * 			you have to create a class that implements the ErrorController interface.
- * 			And overrides its getErrorPath() to return a custom path to call when an error occurred.
- * 
- * @author gagamel
- * @since 2020. 9. 11
- */
-@Controller
-public class TsfCustomErrorController implements ErrorController {
-
-	@Override
-	public String getErrorPath() {
-		return "/error";
-	}
-
-}

+ 0 - 52
style24.front/src/main/java/com/style24/front/support/env/TsfConstants.java

@@ -1,52 +0,0 @@
-package com.style24.front.support.env;
-
-/**
- * 변경될 소지가 있는 변수 값을 정의
- * 
- * @author gagamel
- * @since 2020. 9. 11
- */
-public class TsfConstants {
-
-	// 쿠키 Prefix
-	public static final String CK_PREFIX = "st24ck";
-
-	// SNS로그인
-	public static final String SNSLOGIN_PREFIX = "SNSLOGIN!@#-";
-
-	// 자동로그인 RememberMe
-	public static final String REMEMBER_ME_KEY = "style24";
-	public static final String REMEMBER_ME_PARAMETER = "rememberMe";
-	public static final int REMEMBER_ME_LIMIT = 60 * 60 * 24 * 7; // 7일간유효
-
-//	// 카테고리구분
-//	public enum CATE_GB {
-//		BYITEM("101"), BYBRAND("102"), BYOUTLET("103");
-//
-//		private String value;
-//
-//		private CATE_GB(String value) {
-//			this.value = value;
-//		}
-//
-//		public String value() {
-//			return value;
-//		}
-//	}
-//
-//	// 대카테고리
-//	public enum TCATE_CD {
-//		WOMEN("100"), MEN("200"), LIFE("300"), OUTLET("1647");
-//
-//		private String value;
-//
-//		private TCATE_CD(String value) {
-//			this.value = value;
-//		}
-//
-//		public String value() {
-//			return value;
-//		}
-//	}
-
-}

+ 0 - 22
style24.front/src/main/java/com/style24/front/support/exception/TsfDormantAccountException.java

@@ -1,22 +0,0 @@
-package com.style24.front.support.exception;
-
-import org.springframework.security.core.AuthenticationException;
-
-/**
- * 휴면회원 로그인 시도시 발생하는 예외
- * 
- * @author gagamel
- * @since 2020. 9. 11
- */
-@SuppressWarnings("serial")
-public class TsfDormantAccountException extends AuthenticationException {
-
-	public TsfDormantAccountException(String msg) {
-		super(msg);
-	}
-
-	public TsfDormantAccountException(String msg, Throwable t) {
-		super(msg, t);
-	}
-
-}

+ 0 - 22
style24.front/src/main/java/com/style24/front/support/exception/TsfEmailDuplicationException.java

@@ -1,22 +0,0 @@
-package com.style24.front.support.exception;
-
-import org.springframework.security.core.AuthenticationException;
-
-/**
- * SNS용 이메일 중복 시 발생하는 예외
- * 
- * @author gagamel
- * @since 2020. 9. 11
- */
-@SuppressWarnings("serial")
-public class TsfEmailDuplicationException extends AuthenticationException {
-
-	public TsfEmailDuplicationException(String msg) {
-		super(msg);
-	}
-
-	public TsfEmailDuplicationException(String msg, Throwable t) {
-		super(msg, t);
-	}
-
-}

+ 0 - 22
style24.front/src/main/java/com/style24/front/support/exception/TsfLockedAccountException.java

@@ -1,22 +0,0 @@
-package com.style24.front.support.exception;
-
-import org.springframework.security.core.AuthenticationException;
-
-/**
- * 로그인 시에 비밀번호 5회 이상 틀려서 계정이 잠기는 경우 발생시키는 예외
- * 
- * @author gagamel
- * @since 2020. 9. 11
- */
-@SuppressWarnings("serial")
-public class TsfLockedAccountException extends AuthenticationException {
-
-	public TsfLockedAccountException(String msg) {
-		super(msg);
-	}
-
-	public TsfLockedAccountException(String msg, Throwable t) {
-		super(msg, t);
-	}
-
-}

+ 0 - 22
style24.front/src/main/java/com/style24/front/support/exception/TsfSecedeAccountException.java

@@ -1,22 +0,0 @@
-package com.style24.front.support.exception;
-
-import org.springframework.security.core.AuthenticationException;
-
-/**
- * 탈퇴회원 로그인 시도시 발생하는 예외
- * 
- * @author gagamel
- * @since 2020. 9. 11
- */
-@SuppressWarnings("serial")
-public class TsfSecedeAccountException extends AuthenticationException {
-
-	public TsfSecedeAccountException(String msg) {
-		super(msg);
-	}
-
-	public TsfSecedeAccountException(String msg, Throwable t) {
-		super(msg, t);
-	}
-
-}

+ 0 - 22
style24.front/src/main/java/com/style24/front/support/exception/TsfSessionExpiredException.java

@@ -1,22 +0,0 @@
-package com.style24.front.support.exception;
-
-import org.springframework.security.core.AuthenticationException;
-
-/**
- * 세션 만료 시 발생하는 예외
- * 
- * @author gagamel
- * @since 2020. 9. 11
- */
-@SuppressWarnings("serial")
-public class TsfSessionExpiredException extends AuthenticationException {
-
-	public TsfSessionExpiredException(String msg) {
-		super(msg);
-	}
-
-	public TsfSessionExpiredException(String msg, Throwable t) {
-		super(msg, t);
-	}
-
-}

+ 0 - 53
style24.front/src/main/java/com/style24/front/support/interceptor/TsfAflinkInterceptor.java

@@ -1,53 +0,0 @@
-package com.style24.front.support.interceptor;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.springframework.stereotype.Component;
-import org.springframework.web.servlet.ModelAndView;
-import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
-
-import lombok.extern.slf4j.Slf4j;
-
-/**
- * 제휴링크 Interceptor
- * 
- * @author gagamel
- * @since 2020. 9. 11
- */
-@Component
-@Slf4j
-public class TsfAflinkInterceptor extends HandlerInterceptorAdapter {
-
-//	@Autowired
-//	private WfoCommonService commonService;
-
-	@Override
-	public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
-//		// Parameter
-//		GagaMap params = GagaParameterUtil.getParameterMap(request);
-//
-//		// 제휴링크코드
-//		String afLinkCd = params.getString("afLinkCd");
-//
-//		if (StringUtils.isNotBlank(afLinkCd)) {
-//			if (!afLinkCd.equals(FoSession.getAttribute("afLinkCd"))) {
-//				FoSession.setAttribute("afLinkCd", afLinkCd);
-//			}
-//		} else {
-//			afLinkCd = "AF001"; // STYLE24
-//			FoSession.setAttribute("afLinkCd", afLinkCd);
-//		}
-//
-//		commonService.createInflowHistory(afLinkCd);
-
-		return super.preHandle(request, response, handler);
-	}
-
-	@Override
-	public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
-		ModelAndView modelAndView) throws Exception {
-		// Do nothing
-	}
-
-}

+ 0 - 146
style24.front/src/main/java/com/style24/front/support/interceptor/TsfDefaultInterceptor.java

@@ -1,146 +0,0 @@
-package com.style24.front.support.interceptor;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.springframework.stereotype.Component;
-import org.springframework.web.servlet.ModelAndView;
-import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
-
-import com.style24.front.support.security.session.TsfSession;
-
-import lombok.extern.slf4j.Slf4j;
-
-import com.gagaframework.web.util.GagaStringUtil;
-
-/**
- * 모든 Request에 대한 선처리
- * 
- * @author gagamel
- * @since 2020. 9. 11
- */
-@Component
-@Slf4j
-public class TsfDefaultInterceptor extends HandlerInterceptorAdapter {
-
-	private static final String APP_PREFIX = "style24@";
-
-//	@Value("${has-ssl}")
-//	private String hasSsl;
-
-//	@Autowired
-//	private WfoPolicyService policyService;
-
-	@Override
-	public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
-		log.info("request.isSecure(): [{}]", request.isSecure());
-		log.info("request.getServerName(): [{}]", request.getServerName());
-		log.info("request.getRequestURI(): [{}]", request.getRequestURI());
-		log.info("request.getRequestURL(): [{}]", request.getRequestURL());
-		log.info("request.getQueryString(): [{}]", request.getQueryString());
-
-//		// 설정된 HTTPS 페이지 확인
-//		String requestUrl = request.getRequestURL().toString();
-//		boolean bHttpsPage = this.isHttpsPage(isSslServer, requestUrl, request.getRequestURI());
-//		log.debug("bHttpsPage: [{}]", bHttpsPage);
-//		if (bHttpsPage) {
-//			requestUrl = requestUrl.replace("http://", "https://");
-//			log.debug("requestUrl: [{}]", requestUrl);
-//			response.sendRedirect(requestUrl);
-//			return false;
-//		}
-//
-//		// Set Meta Info.
-//		policyService.setMetaInfo(FoConstants.SITE_CD);
-//
-//		String queryString = GagaStringUtil.convertParameterToQueryString(request.getParameterMap());
-//		if (StringUtils.isNotBlank(queryString))
-//			queryString = "?" + queryString;
-//		log.debug("queryString: [{}]", queryString);
-//
-//		// Set APP Info.
-//		this.setAppInfo(request);
-
-		return super.preHandle(request, response, handler);
-	}
-
-	@Override
-	public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
-		ModelAndView modelAndView) throws Exception {
-		// Do nothing
-	}
-
-	/**
-	 * HTTPS로 적용할 페이지인지 체크
-	 * @param requestUrl - Request URL
-	 * @param requestUri - Request URI
-	 * @return true/false
-	 * @author gagamel
-	 * @since 2020. 2. 3
-	 */
-	private boolean isHttpsPage(boolean isSslServer, String requestUrl, String requestUri) {
-		// https 이어야 하는 화면의 URL 목록
-		final String[] httpsUrls = {"/customer", "/mypage", "/order"};
-
-		// 1.설정된 HTTPS URL 값이 없거나
-		// 2.SSL이 적용되지 않은 서버이거나
-		// 3.https로 시작되었거나
-		// 4.Ajax 호출인 경우
-		if (!isSslServer || requestUrl.startsWith("https://"))
-			return false;
-
-		for (String httpsUrl : httpsUrls) {
-			log.debug("requestUri: {}, httpsUrl: {}", requestUri, httpsUrl);
-			if (requestUri.startsWith(httpsUrl)) {
-				return true;
-			}
-		}
-
-		return false;
-	}
-
-	/**
-	 * UserAgent 값을 이용한 APP 설정
-	 * 		APP에서 접속 시 다음과 같이 UserAgent 값이 들어옴.
-	 * 		예) Mozilla/5.0 (Linux; Android 10; Android SDK built for x86 Build/QSR1.190920.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/74.0.3729.185 Mobile Safari/537.36,wivismall@WIVIS_1.0.5
-	 * @param request
-	 */
-	private void setAppInfo(HttpServletRequest request) {
-		// User Agent
-		String userAgent = request.getHeader("User-Agent").toLowerCase();
-		log.debug("userAgent: [{}]", userAgent);
-
-		if (userAgent.indexOf("iphone") > -1 ||
-			userAgent.indexOf("ipod") > -1 ||
-			userAgent.indexOf("ipad") > -1) {
-			TsfSession.setAttribute("osType", "I");
-		} else if (userAgent.indexOf("android") > -1) {
-			TsfSession.setAttribute("osType", "A");
-		}
-
-		int offset = userAgent.lastIndexOf(APP_PREFIX);
-
-		if (offset > 0) {
-			TsfSession.setAttribute("isApp", "true");
-
-			String strAppInfo = GagaStringUtil.replace(userAgent.substring(offset), APP_PREFIX, "");
-			String[] arrApp = strAppInfo.split("_");
-			if (arrApp != null) {
-				int cnt = 0;
-				for (String oneData : arrApp) {
-					if (cnt == 0) {
-						TsfSession.setAttribute("appName", oneData);
-					} else if (cnt == 1) {
-						TsfSession.setAttribute("appVersion", oneData);
-//					} else if (cnt == 2) {
-//						WfoSession.setAttribute("deviceToken", oneData);
-					}
-					cnt++;
-				}
-			}
-		} else {
-			TsfSession.setAttribute("isApp", "false");
-		}
-	}
-
-}

+ 0 - 63
style24.front/src/main/java/com/style24/front/support/interceptor/TsfGoodsViewInterceptor.java

@@ -1,63 +0,0 @@
-package com.style24.front.support.interceptor;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.springframework.stereotype.Component;
-import org.springframework.web.servlet.ModelAndView;
-import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
-
-import lombok.extern.slf4j.Slf4j;
-
-/**
- * 상품뷰 Interceptor
- * 
- * @author gagamel
- * @since 2020. 9. 11
- */
-@Component
-@Slf4j
-public class TsfGoodsViewInterceptor extends HandlerInterceptorAdapter {
-
-//	@Value("${has-ssl}")
-//	private String hasSsl;
-
-//	@Autowired
-//	private WfoGoodsService goodsService;
-
-	@Override
-	public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
-//		// Parameter
-//		GagaMap params = GagaParameterUtil.getParameterMap(request);
-//
-//		// 상품뷰이력 생성
-//		goodsService.createGoodsViewHistory(params.getString("goodsCd"), params.getString("ithrCd"));
-//
-//		// SSL Server
-//		boolean isSslServer = Boolean.parseBoolean(hasSsl);
-//		log.debug("isSslServer: [{}]", isSslServer);
-//
-//		if (isSslServer) {
-//			// 상품유입경로 쿠키 설정
-//			GagaCookieUtil.setSecureCookie(response, FoConstants.CK_PREFIX + "_ithrCd", params.getString("ithrCd"), -1);
-//
-//			// 컨텐츠위치코드 쿠키 설정
-//			GagaCookieUtil.setSecureCookie(response, FoConstants.CK_PREFIX + "_contentsLoc", params.getString("contentsLoc"), -1);
-//		} else {
-//			// 상품유입경로 쿠키 설정
-//			GagaCookieUtil.setCookie(response, FoConstants.CK_PREFIX + "_ithrCd", params.getString("ithrCd"), -1);
-//
-//			// 컨텐츠위치코드 쿠키 설정
-//			GagaCookieUtil.setCookie(response, FoConstants.CK_PREFIX + "_contentsLoc", params.getString("contentsLoc"), -1);
-//		}
-
-		return super.preHandle(request, response, handler);
-	}
-
-	@Override
-	public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
-		ModelAndView modelAndView) throws Exception {
-		// Do nothing
-	}
-
-}

+ 0 - 61
style24.front/src/main/java/com/style24/front/support/interceptor/TsfLoginCheckInterceptor.java

@@ -1,61 +0,0 @@
-package com.style24.front.support.interceptor;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.springframework.stereotype.Component;
-import org.springframework.web.servlet.ModelAndView;
-import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
-
-import lombok.extern.slf4j.Slf4j;
-
-/**
- * 로그인 체크 Interceptor
- * 
- * @author gagamel
- * @since 2020. 9. 11
- */
-@Component
-@Slf4j
-public class TsfLoginCheckInterceptor extends HandlerInterceptorAdapter {
-
-//	@Value("${has-ssl}")
-//	private String hasSsl;
-
-	@Override
-	public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
-//		log.info("request.getServerName(): [{}]", request.getServerName());
-//
-//		// 로그인 되어 있지 않으면
-//		if (!FoSession.isLogin()) {
-//			boolean isAjaxCall = Boolean.parseBoolean(request.getHeader("AJAX"));
-//			log.info("isAjaxCall: {}", isAjaxCall);
-//
-//			if (isAjaxCall) { // ajax call
-//				// Ajax call은 status 세팅 후 ajax.status == 901일 경우 로그인 페이지로 이동 처리
-//				response.setStatus(901); // No Session
-//			} else { // Submit
-//				// SSL Server
-//				boolean isSslServer = Boolean.parseBoolean(hasSsl);
-//				log.info("isSslServer: [{}]", isSslServer);
-//
-//				String loginUrl = isSslServer ? "https://" + request.getServerName() + "/signin" : "/signin";
-//				log.info("loginUrl: [{}]", loginUrl);
-//
-//				response.sendRedirect(loginUrl);
-////				response.flushBuffer();
-//			}
-//
-//			return false;
-//		}
-
-		return super.preHandle(request, response, handler);
-	}
-
-	@Override
-	public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
-		ModelAndView modelAndView) throws Exception {
-		// Do nothing
-	}
-
-}

+ 0 - 97
style24.front/src/main/java/com/style24/front/support/interceptor/TsfRememberMeInterceptor.java

@@ -1,97 +0,0 @@
-package com.style24.front.support.interceptor;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import javax.servlet.http.HttpSession;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Component;
-import org.springframework.web.servlet.ModelAndView;
-import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
-
-import com.style24.front.biz.service.TsfLoginService;
-import com.style24.front.support.security.TsfLoginDetails;
-
-import lombok.extern.slf4j.Slf4j;
-
-/**
- * 자동로그인 RememberMe 선처리
- * 
- * @author gagamel
- * @since 2020. 9. 11
- */
-@Component
-@Slf4j
-public class TsfRememberMeInterceptor extends HandlerInterceptorAdapter {
-
-	@Autowired
-	private TsfLoginService loginService;
-
-	@Override
-	public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
-//		// RememberMe Cookie
-//		String ckRememberMe = GagaCookieUtil.getCookie(request, FoConstants.CK_PREFIX + "_remember-me");
-//
-//		if (!FoSession.isLogin() && StringUtils.isNotBlank(ckRememberMe)) {
-//			// 로그인유지토큰 조회
-//			WfoPersistentToken token = loginService.getPersistentToken(ckRememberMe);
-//
-//			if (token != null) {
-//				WfoCustomer customer = new WfoCustomer();
-//				customer.setCustId(token.getCustId());
-//				WfoCustomer loginInfo = loginService.getLoginCheckInfo(customer);
-//
-//				// 로그인 성공 시 로그인실패수가 0보다 크면 로그인실패수 reset
-//				int failCnt = loginService.getLoginFailCount(token.getCustNo());
-//				if (failCnt > 0) {
-//					loginService.createLoginFail(token.getCustId(), "N");
-//				}
-//
-//				// 최종로그인일시 Update
-//				loginService.updateLastLoginDate(token.getCustNo());
-//
-//				// 로그인이력 생성
-//				loginService.createLoginHistory(token.getCustNo());
-//
-//				// 세션 생성
-//				List<SimpleGrantedAuthority> authorities = new ArrayList<>();
-//				authorities.add(new SimpleGrantedAuthority(loginInfo.getCustGb()));
-//				this.createSession(request, new FoLoginDetails(loginInfo, authorities));
-//
-//				Date expiry = new Date(System.currentTimeMillis() + (1000 * FoConstants.REMEMBER_ME_LIMIT));
-//
-////				log.debug("String to MD5: {}", token.getCustNo() + ":" + GagaDateUtil.getDate(expiry, "yyyyMMddHHmmss") + ":" + WfoSession.getSessionId());
-//				String md5HexToken = GagaCryptoUtil.encryptMD5(token.getCustNo() + ":" + GagaDateUtil.getDate(expiry, "yyyyMMddHHmmss") + ":" + FoSession.getSessionId());
-////				log.debug(md5HexToken);
-//				String remembermeToken = Base64.getEncoder().encodeToString((FoConstants.REMEMBER_ME_KEY + ":" + md5HexToken).getBytes());
-////				log.debug("remembermeToken: {}", remembermeToken);
-//
-//				// RememberMe 쿠키 생성
-//				GagaCookieUtil.setSecureCookie(response, FoConstants.CK_PREFIX + "_remember-me", remembermeToken, FoConstants.REMEMBER_ME_LIMIT);
-//
-//				// 로그인유지토큰 갱신
-//				loginService.updatePersistentToken(token.getCustNo(), token.getRemembermeToken(), remembermeToken, expiry);
-//			}
-//		}
-
-		return super.preHandle(request, response, handler);
-	}
-
-	@Override
-	public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
-		ModelAndView modelAndView) throws Exception {
-		// Do nothing
-	}
-
-	/**
-	 * Session 생성
-	 * @param request - HttpServletRequest
-	 * @param loginDetails - 로그인 상세 정보
-	 */
-	private void createSession(HttpServletRequest request, TsfLoginDetails loginDetails) {
-		HttpSession session = request.getSession(true);
-		session.setMaxInactiveInterval(1800);
-		session.setAttribute("session", loginDetails);
-	}
-
-}

+ 0 - 58
style24.front/src/main/java/com/style24/front/support/interceptor/TsfReturnUrlInterceptor.java

@@ -1,58 +0,0 @@
-package com.style24.front.support.interceptor;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.springframework.stereotype.Component;
-import org.springframework.web.servlet.ModelAndView;
-import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
-
-import lombok.extern.slf4j.Slf4j;
-
-/**
- * Return URL Interceptor
- * 
- * @author gagamel
- * @since 2020. 9. 11
- */
-@Component
-@Slf4j
-public class TsfReturnUrlInterceptor extends HandlerInterceptorAdapter {
-
-//	@Value("${has-ssl}")
-//	private String hasSsl;
-
-	public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
-//		log.info("request.isSecure(): [{}]", request.isSecure());
-//		log.info("request.getServerName(): [{}]", request.getServerName());
-//		log.info("request.getRequestURI(): [{}]", request.getRequestURI());
-//		log.info("request.getRequestURL(): [{}]", request.getRequestURL());
-//		log.info("request.getQueryString(): [{}]", request.getQueryString());
-//
-//		String queryString = GagaStringUtil.convertParameterToQueryString(request.getParameterMap());
-//		if (StringUtils.isNotBlank(queryString))
-//			queryString = "?" + queryString;
-//		log.info("queryString: [{}]", queryString);
-//
-//		String returnUrl = request.getRequestURL() + queryString;
-//		log.info("returnUrl: [{}]", returnUrl);
-//
-//		// SSL Server
-//		boolean isSslServer = Boolean.parseBoolean(hasSsl);
-//		log.debug("isSslServer: [{}]", isSslServer);
-//
-//		if (isSslServer) {
-//			GagaCookieUtil.setSecureCookie(response, FoConstants.CK_PREFIX + "_return_url", returnUrl, -1);
-//		} else {
-//			GagaCookieUtil.setCookie(response, FoConstants.CK_PREFIX + "_return_url", returnUrl, -1);
-//		}
-
-		return super.preHandle(request, response, handler);
-	}
-
-	public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
-		ModelAndView modelAndView) throws Exception {
-		// Do nothing
-	}
-
-}

+ 0 - 128
style24.front/src/main/java/com/style24/front/support/security/TsfAuthenticationProvider.java

@@ -1,128 +0,0 @@
-package com.style24.front.support.security;
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.authentication.AuthenticationProvider;
-import org.springframework.security.authentication.BadCredentialsException;
-import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
-import org.springframework.security.core.Authentication;
-import org.springframework.security.core.AuthenticationException;
-import org.springframework.security.core.authority.SimpleGrantedAuthority;
-import org.springframework.security.core.userdetails.UsernameNotFoundException;
-import org.springframework.stereotype.Component;
-
-import com.style24.core.support.message.TscMessageByLocale;
-import com.style24.front.biz.service.TsfLoginService;
-import com.style24.front.support.env.TsfConstants;
-import com.style24.front.support.exception.TsfDormantAccountException;
-import com.style24.front.support.exception.TsfEmailDuplicationException;
-import com.style24.front.support.exception.TsfLockedAccountException;
-import com.style24.front.support.exception.TsfSecedeAccountException;
-import com.style24.persistence.domain.Login;
-
-import lombok.extern.slf4j.Slf4j;
-
-import com.gagaframework.web.security.GagaPasswordEncoder;
-import com.gagaframework.web.util.GagaStringUtil;
-
-/**
- * 로그인 인증 처리
- * 
- * @author gagamel
- * @since 2020. 9. 11
- */
-@Component
-@Slf4j
-public class TsfAuthenticationProvider implements AuthenticationProvider {
-
-	@Autowired
-	private TsfLoginService loginService;
-
-	@Autowired
-	private TscMessageByLocale message;
-
-	@Autowired
-	private GagaPasswordEncoder passwordEncoder;
-
-	@Override
-	public Authentication authenticate(Authentication authentication) throws AuthenticationException {
-		String loginId = authentication.getName();
-
-		// 일반로그인일 때는 비밀번호이고 SNS로그인일 때는 이메일 정보임
-		String passwd = authentication.getCredentials().toString();
-		log.info("loginId: {}, passwd: {}", loginId, passwd);
-
-		// 로그인 정보
-		Login loginParam = new Login();
-
-		// SNS로그인이면
-		if (loginId.startsWith(TsfConstants.SNSLOGIN_PREFIX)) {
-			loginParam.setCustId(GagaStringUtil.replace(loginId, TsfConstants.SNSLOGIN_PREFIX, ""));
-			loginParam.setSnsType(loginId.substring(loginId.indexOf("-", 0) + 1, loginId.lastIndexOf("-") - 1));
-			loginParam.setEmail(passwd); // SNS로그인이면 이메일 정보
-		} else { // 일반로그인
-			loginParam.setCustId(loginId);
-		}
-
-		// 로그인정보 조회
-		Login loginInfo = loginService.getLoginCheckInfo(loginParam);
-		log.debug("loginInfo: {}", loginInfo);
-
-		if (loginInfo == null) {
-			log.debug(String.format("Customer with ID=%s was not found!", loginId));
-			throw new UsernameNotFoundException(message.getMessage("LOGN_0001"));
-		}
-
-		// 로그인 실패누적건수가 5이면
-		if (loginInfo.getLoginFailCnt() == 5) {
-//			throw new BadCredentialsException(message.getMessage("LOGN_0005"));
-			throw new TsfLockedAccountException(message.getMessage("LOGN_0005"));
-		}
-
-		/// SNS로그인이 아닌 일반로그인 이면
-		if (!loginId.startsWith(TsfConstants.SNSLOGIN_PREFIX)) {
-			log.debug("encoded pwd: {}", passwordEncoder.encode(passwd));
-			boolean isMatch = passwordEncoder.matches(passwd, loginInfo.getPasswd());
-			log.debug("isMatch: {}", isMatch);
-
-			if (!isMatch) {
-//				// 로그인 실패 남기기
-//				customerService.createLoginFail(loginInfo.getCustId(), "Y");
-				throw new BadCredentialsException(message.getMessage("LOGN_0002"));
-			}
-		} else {
-			// SNS로그인 시 로그인ID 값은 이메일로 처리했으므로
-			// loginId 값과 회원정보의 이메일 값을 비교해서 동일하면
-			if (StringUtils.isBlank(loginInfo.getSnsType()) && passwd.equals(loginInfo.getEmail())) {
-				throw new TsfEmailDuplicationException(message.getMessage("LOGN_0008"));
-			}
-		}
-
-		if (loginInfo.getCustStat().equals("20")) { // 휴면회원
-//			WfoSession.setDormantMemberNo(request, loginInfo.getCustId());
-			throw new TsfDormantAccountException(message.getMessage("LOGN_0006"));
-		} else if (loginInfo.getCustStat().equals("30")) { // 탈퇴회원
-			throw new TsfSecedeAccountException(message.getMessage("LOGN_0007"));
-		}
-
-		// 권한 설정
-		List<SimpleGrantedAuthority> authorities = new ArrayList<>();
-		authorities.add(new SimpleGrantedAuthority(loginInfo.getCustGb()));
-
-		// 인증 토큰 생성
-		UsernamePasswordAuthenticationToken authToken = new UsernamePasswordAuthenticationToken(
-			loginInfo.getCustNo(), loginInfo.getPasswd(), authorities);
-		authToken.setDetails(new TsfLoginDetails(loginInfo, authorities));
-
-		return authToken;
-	}
-
-	@Override
-	public boolean supports(Class<?> authentication) {
-		return (UsernamePasswordAuthenticationToken.class.isAssignableFrom(authentication));
-	}
-
-}

+ 0 - 86
style24.front/src/main/java/com/style24/front/support/security/TsfLoginDetails.java

@@ -1,86 +0,0 @@
-package com.style24.front.support.security;
-
-import java.util.Collection;
-
-import org.springframework.security.core.GrantedAuthority;
-import org.springframework.security.core.authority.SimpleGrantedAuthority;
-import org.springframework.security.core.userdetails.UserDetails;
-
-import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
-import com.fasterxml.jackson.databind.annotation.JsonSerialize;
-import com.style24.persistence.domain.Login;
-
-/**
- * 로그인 상세 정보
- * 		@JsonSerialize 애노테이션을 지정해야 세션을 레디스에 저장할 수 있다.
- * 
- * @author gagamel
- * @since 2020. 9. 11
- */
-@SuppressWarnings("serial")
-@JsonSerialize
-@JsonIgnoreProperties(ignoreUnknown = true)
-public class TsfLoginDetails implements UserDetails {
-
-	private Login loginInfo = null;
-
-	private Collection<SimpleGrantedAuthority> authorities = null;
-
-	// 세션을 JSON 형식으로 레디스에 저장하려면 기본 생성자를 반드시 명시해야 한다
-	public TsfLoginDetails() {
-
-	}
-
-	public TsfLoginDetails(Login loginInfo, Collection<SimpleGrantedAuthority> authorities) {
-		this.loginInfo = loginInfo;
-		this.authorities = authorities;
-
-//		if (authorities != null && !authorities.isEmpty()) {
-//			isLogin = true;
-//		}
-	}
-
-	@Override
-	public Collection<? extends GrantedAuthority> getAuthorities() {
-		return authorities;
-	}
-
-	@Override
-	public String getPassword() {
-		return loginInfo.getPasswd();
-	}
-
-	@Override
-	public String getUsername() {
-		return String.valueOf(loginInfo.getCustNo());
-	}
-
-	@Override
-	public boolean isAccountNonExpired() {
-		return true;
-	}
-
-	@Override
-	public boolean isAccountNonLocked() {
-		return true;
-	}
-
-	@Override
-	public boolean isCredentialsNonExpired() {
-		return true;
-	}
-
-	@Override
-	public boolean isEnabled() {
-		return true;
-	}
-
-	public boolean isLogin() {
-		return loginInfo.getCustNo() != null ? true : false;
-	}
-
-	public Login getLoginInfo() {
-		return loginInfo;
-	}
-
-}

+ 0 - 129
style24.front/src/main/java/com/style24/front/support/security/config/TsfSecurityConfig.java

@@ -1,129 +0,0 @@
-package com.style24.front.support.security.config;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.annotation.Bean;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;
-import org.springframework.security.config.annotation.web.builders.HttpSecurity;
-import org.springframework.security.config.annotation.web.builders.WebSecurity;
-import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
-import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
-import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter;
-import org.springframework.security.web.util.matcher.AntPathRequestMatcher;
-import org.springframework.security.web.util.matcher.RequestMatcher;
-
-import com.style24.front.support.security.TsfAuthenticationProvider;
-import com.style24.front.support.security.filter.TsfAuthenticationFilter;
-import com.style24.front.support.security.handler.TsfLoginFailureHandler;
-import com.style24.front.support.security.handler.TsfLoginSuccessHandler;
-import com.style24.front.support.security.handler.TsfLogoutSuccessHandler;
-
-import com.gagaframework.web.security.GagaCsrfSecurityRequestMatcher;
-
-/**
- * Java Security를 이용한 Login 처리
- * 
- * @author gagamel
- * @since 2020. 9. 11
- */
-@Configuration
-@EnableWebSecurity
-public class TsfSecurityConfig extends WebSecurityConfigurerAdapter {
-
-	private static final String[] UNAUTHORIZED_RESOURCE_LIST = new String[] {"/*", "/index", "/signin/**"};
-
-	private static final String[] UNSECURED_RESOURCE_LIST = new String[] {"/image/**", "/ux/**", "/data/**"};
-
-	@Autowired
-	private TsfAuthenticationProvider authenticationProvider;
-
-	@Override
-	protected void configure(HttpSecurity httpSecurity) throws Exception {
-		// static resources
-		httpSecurity
-			.addFilterBefore(authenticationFilter(), UsernamePasswordAuthenticationFilter.class)
-			.authorizeRequests()
-			.antMatchers(UNAUTHORIZED_RESOURCE_LIST).permitAll()
-			.and()
-			.formLogin()
-			.usernameParameter("loginId")
-			.passwordParameter("passwd")
-			.loginPage("/signin")
-			.loginProcessingUrl("/login")
-//			.successHandler(loginSuccessHandler) // authenticationFilter() 안에 설정
-//			.failureHandler(loginFailureHandler) // authenticationFilter() 안에 설정
-//			.failureUrl("/signin?error=true")
-			.and()
-			.logout()
-			.logoutRequestMatcher(new AntPathRequestMatcher("/logout"))
-			.logoutSuccessHandler(logoutSuccessHandler())
-			.and()
-//			.csrf().disable() // CSRF(Cross Site Request Forgery) 해제
-			.csrf().requireCsrfProtectionMatcher(requireCsrfProtectionMatcher())
-			.and()
-			.exceptionHandling()
-			.accessDeniedPage("/403")
-			.and()
-			.headers().frameOptions().disable() // iframe deny 설정 제거(네이버스마트에디터 사용 때문에 추가)
-		;
-	}
-
-	@Override
-	public void configure(WebSecurity webSecurity) throws Exception {
-		webSecurity
-			.ignoring()
-			.antMatchers(UNSECURED_RESOURCE_LIST);
-	}
-
-	@Bean
-	public RequestMatcher requireCsrfProtectionMatcher() {
-		GagaCsrfSecurityRequestMatcher bean = new GagaCsrfSecurityRequestMatcher();
-
-		bean.setDisableUrls(new String[] {
-			"/",
-			"/index",
-			"/customer/post/find/form"
-		});
-
-		return bean;
-	}
-
-	/**
-	 * Register the Authentication Provider
-	 */
-	@Override
-	public void configure(AuthenticationManagerBuilder auth) throws Exception {
-		auth.authenticationProvider(authenticationProvider);
-	}
-
-	@Bean
-	public TsfLoginSuccessHandler loginSuccessHandler() {
-		return new TsfLoginSuccessHandler();
-	}
-
-	@Bean
-	public TsfLoginFailureHandler loginFailureHandler() {
-		return new TsfLoginFailureHandler();
-	}
-
-	@Bean
-	public TsfLogoutSuccessHandler logoutSuccessHandler() {
-		return new TsfLogoutSuccessHandler();
-	}
-
-	/**
-	 * Authentication Filter
-	 * @return
-	 * @throws Exception
-	 * @author gagamel
-	 * @since 2020. 2. 20
-	 */
-	public TsfAuthenticationFilter authenticationFilter() throws Exception {
-		TsfAuthenticationFilter filter = new TsfAuthenticationFilter();
-		filter.setAuthenticationManager(authenticationManagerBean());
-		filter.setAuthenticationSuccessHandler(loginSuccessHandler());
-		filter.setAuthenticationFailureHandler(loginFailureHandler());
-		return filter;
-	}
-
-}

+ 0 - 60
style24.front/src/main/java/com/style24/front/support/security/filter/TsfAuthenticationFilter.java

@@ -1,60 +0,0 @@
-package com.style24.front.support.security.filter;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
-import org.springframework.security.core.Authentication;
-import org.springframework.security.core.AuthenticationException;
-import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter;
-
-import lombok.extern.slf4j.Slf4j;
-
-import com.gagaframework.web.parameter.GagaMap;
-import com.gagaframework.web.parameter.GagaParameterUtil;
-
-/**
- * 인증 Filter
- * 		SNS(네이버, 카카오, 페이스북 등) 로그인 처리 시 Spring Security를 이용할 경우 기본적인 로그인 처리 방식으로는 파라미터를 받을 수 없다.
- * 		request.getParameter를 통해 Username과 Password를 얻을 수 있도록 만든 인증 Filter
- * 
- * @author gagamel
- * @since 2020. 9. 11
- */
-@Slf4j
-public class TsfAuthenticationFilter extends UsernamePasswordAuthenticationFilter {
-
-	@Override
-	public Authentication attemptAuthentication(HttpServletRequest request, HttpServletResponse response) throws AuthenticationException {
-		// Parameter
-		GagaMap loginParams = GagaParameterUtil.getParameterMap(request);
-
-		if (StringUtils.isNotBlank(loginParams.getString("snsType"))) { // SNS로그인
-			// SNS로그인일 때는
-			// 로그인ID: SNS_TYPE-SNS_JOIN_ID
-			// 비밀번호: 이메일
-			loginParams.setString("loginId", loginParams.getString("snsType") + "-" + loginParams.getString("snsJoinId"));
-			loginParams.setString("passwd", loginParams.getString("email")); // SNS로그인 시 불필요해서 이메일체크를 위해 추가
-		} else { // 일반로그인
-			if (StringUtils.isNotBlank(loginParams.getString("loginId"))) {
-				loginParams.setString("loginId", loginParams.getString("loginId").trim());
-			}
-
-			if (StringUtils.isNotBlank(loginParams.getString("passwd"))) {
-				loginParams.setString("passwd", loginParams.getString("passwd").trim());
-			}
-		}
-
-		log.debug("loginParams: {}", loginParams);
-
-		UsernamePasswordAuthenticationToken authRequest = new UsernamePasswordAuthenticationToken(
-			loginParams.getString("loginId"), loginParams.getString("passwd"));
-
-		// Allow subclasses to set the "details" property
-		setDetails(request, authRequest);
-
-		return this.getAuthenticationManager().authenticate(authRequest);
-	}
-
-}

+ 0 - 67
style24.front/src/main/java/com/style24/front/support/security/handler/TsfLoginFailureHandler.java

@@ -1,67 +0,0 @@
-package com.style24.front.support.security.handler;
-
-import java.io.IOException;
-
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.core.AuthenticationException;
-import org.springframework.security.web.authentication.AuthenticationFailureHandler;
-
-import com.style24.front.biz.service.TsfLoginService;
-import com.style24.front.support.exception.TsfDormantAccountException;
-import com.style24.front.support.exception.TsfEmailDuplicationException;
-import com.style24.front.support.exception.TsfLockedAccountException;
-import com.style24.front.support.exception.TsfSecedeAccountException;
-import com.style24.front.support.exception.TsfSessionExpiredException;
-
-import lombok.extern.slf4j.Slf4j;
-
-import com.gagaframework.web.parameter.GagaMap;
-import com.gagaframework.web.util.GagaStringUtil;
-
-/**
- * 로그인 실패 시 호출되는 Handler
- * 		1. 비밀번호 5회 이상 실패 시
- * 		2. 휴면회원 로그인 시
- * 		3. 탈퇴회원 로그인 시
- * 
- * @author gagamel
- * @since 2020. 9. 11
- */
-@Slf4j
-public class TsfLoginFailureHandler implements AuthenticationFailureHandler {
-
-	@Autowired
-	private TsfLoginService loginService;
-
-	@Override
-	public void onAuthenticationFailure(HttpServletRequest request, HttpServletResponse response,
-		AuthenticationException exception) throws IOException, ServletException {
-
-		// 로그인 실패 남기기
-		loginService.createLoginFail(request.getParameter("custId"), "Y");
-
-		GagaMap result = new GagaMap();
-		result.setString("message", exception.getMessage());
-
-		if (exception instanceof TsfLockedAccountException) { // 로그인 시에 비밀번호 5회 이상 틀려서 계정이 잠기는 경우
-			result.setString("status", "PWD_5WRONG");
-		} else if (exception instanceof TsfDormantAccountException) { // 휴면회원 로그인 시
-			result.setString("status", "DORMANT_CUST");
-		} else if (exception instanceof TsfSecedeAccountException) { // 탈퇴회원 로그인 시
-			result.setString("status", "SECEDE_CUST");
-		} else if (exception instanceof TsfSessionExpiredException) { // 세션 만료 시
-			result.setString("status", "SESSION_EXPIRED");
-		} else if (exception instanceof TsfEmailDuplicationException) { // SNS용 이메일 중복 시
-			result.setString("status", "EMAIL_DUP");
-		} else {
-			result.setString("status", "ETC_ERROR");
-		}
-
-		GagaStringUtil.write(response, result);
-	}
-
-}

+ 0 - 130
style24.front/src/main/java/com/style24/front/support/security/handler/TsfLoginSuccessHandler.java

@@ -1,130 +0,0 @@
-package com.style24.front.support.security.handler;
-
-import java.io.IOException;
-import java.util.Base64;
-import java.util.Date;
-
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import javax.servlet.http.HttpSession;
-
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.core.Authentication;
-import org.springframework.security.web.authentication.AuthenticationSuccessHandler;
-
-import com.style24.front.biz.service.TsfLoginService;
-import com.style24.front.support.env.TsfConstants;
-import com.style24.front.support.security.TsfLoginDetails;
-import com.style24.front.support.security.session.TsfSession;
-
-import lombok.extern.slf4j.Slf4j;
-
-import com.gagaframework.web.parameter.GagaMap;
-import com.gagaframework.web.util.GagaCookieUtil;
-import com.gagaframework.web.util.GagaCryptoUtil;
-import com.gagaframework.web.util.GagaDateUtil;
-import com.gagaframework.web.util.GagaStringUtil;
-
-/**
- * 로그인 성공 시 호출되는 Handler
- * 
- * @author gagamel
- * @since 2020. 9. 11
- */
-@Slf4j
-public class TsfLoginSuccessHandler implements AuthenticationSuccessHandler {
-
-	// 로그인 후 메인으로 이동할 페이지 목록
-	private final String[] pagesToMain = new String[] {
-		"/customer/join/form",				// 회원가입
-		"/customer/sns/join/form",			// SNS 회원가입
-		"/customer/id/find/form",			// 아이디찾기
-		"/customer/id/find/result/form",	// 아이디찾기
-		"/customer/pwd/find/form",			// 비밀번호찾기
-		"/customer/pwd/find/result/form",	// 비밀번호완료
-		"/customer/join/complete/form"		// 회원가입완료
-	};
-
-	@Autowired
-	private TsfLoginService loginService;
-
-//	@Autowired
-//	private FoCustomerService customerService;
-
-	@Override
-	public void onAuthenticationSuccess(HttpServletRequest request, HttpServletResponse response, Authentication authentication) throws IOException, ServletException {
-		// 로그인 상세 정보
-		TsfLoginDetails loginDetails = (TsfLoginDetails)authentication.getDetails();
-
-		// 로그인 성공 시 로그인실패수가 0보다 크면 로그인실패수 reset
-		Integer custNo = loginDetails.getLoginInfo().getCustNo();
-		int failCnt = loginService.getLoginFailCount(custNo);
-		if (failCnt > 0) {
-			loginService.createLoginFail(loginDetails.getLoginInfo().getCustId(), "N");
-		}
-
-		// 최종로그인일시 Update
-		loginService.updateLastLoginDate(custNo);
-
-		// 로그인이력 생성
-		loginService.createLoginHistory(custNo);
-
-		// 세션 생성
-		this.createSession(request, loginDetails);
-
-		// 자동로그인용 RememberMe 쿠키 및 토큰 생성
-		if (request.getParameter("rememberMe") != null && request.getParameter(TsfConstants.REMEMBER_ME_PARAMETER).equals("true")) {
-			Date expiry = new Date(System.currentTimeMillis() + (1000 * TsfConstants.REMEMBER_ME_LIMIT));
-			String md5HexToken = GagaCryptoUtil.encryptMD5(custNo + ":" + GagaDateUtil.getDate(expiry, "yyyyMMddHHmmss") + ":" + TsfSession.getSessionId());
-			String remembermeToken = Base64.getEncoder().encodeToString((TsfConstants.REMEMBER_ME_KEY + ":" + md5HexToken).getBytes());
-
-			// RememberMe 쿠키 생성
-			GagaCookieUtil.setSecureCookie(response, TsfConstants.CK_PREFIX + "_remember-me", remembermeToken, TsfConstants.REMEMBER_ME_LIMIT);
-
-			// 로그인유지토큰 생성
-			loginService.createPersistentToken(custNo, remembermeToken, expiry);
-		}
-
-//		String isApp = FoSession.getAttribute("isApp");
-//		if ("true".equals(isApp)) {
-//			customerService.giveFirstAppDownPoint(loginDetails.getUsername());
-//		}
-
-		String returnUrl = GagaCookieUtil.getCookie(request, TsfConstants.CK_PREFIX + "_return_url");
-		log.info("returnUrl: {}", returnUrl);
-
-		// 회원가입, 아이디찾기, 비밀번호찾기, 회원가입완료 페이지에서 로그인 했으면 메인으로 이동
-		// 그 외는 RETURN URL로 이동
-		if (StringUtils.isNotEmpty(returnUrl)) {
-			for (String page : pagesToMain) {
-				if (returnUrl.indexOf(page) > -1) {
-					returnUrl = "/";
-					break;
-				}
-			}
-		} else {
-			returnUrl = "/";
-		}
-
-		GagaMap result = new GagaMap();
-		result.setString("status", "OK");
-		result.setString("returnUrl", returnUrl);
-		result.setString("custNo", loginDetails.getUsername()); // 로그인 후 APP푸시SDK 연동을 위해
-
-		GagaStringUtil.write(response, result);
-	}
-
-	/**
-	 * Session 생성
-	 * @param request - HttpServletRequest
-	 * @param loginDetails - 로그인 상세 정보
-	 */
-	private void createSession(HttpServletRequest request, TsfLoginDetails loginDetails) {
-		HttpSession session = request.getSession(true);
-		session.setMaxInactiveInterval(1800);
-		session.setAttribute("session", loginDetails);
-	}
-
-}

+ 0 - 52
style24.front/src/main/java/com/style24/front/support/security/handler/TsfLogoutSuccessHandler.java

@@ -1,52 +0,0 @@
-package com.style24.front.support.security.handler;
-
-import java.io.IOException;
-
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.core.Authentication;
-import org.springframework.security.web.authentication.logout.SimpleUrlLogoutSuccessHandler;
-
-import com.style24.front.biz.service.TsfLoginService;
-import com.style24.front.support.env.TsfConstants;
-import com.style24.front.support.security.session.TsfSession;
-
-import lombok.extern.slf4j.Slf4j;
-
-import com.gagaframework.web.util.GagaCookieUtil;
-
-/**
- * 로그아웃 성공 시 호출되는 Handler
- * 
- * @author gagamel
- * @since 2020. 9. 11
- */
-@Slf4j
-public class TsfLogoutSuccessHandler extends SimpleUrlLogoutSuccessHandler {
-
-	@Autowired
-	private TsfLoginService loginService;
-
-	@Override
-	public void onLogoutSuccess(HttpServletRequest request, HttpServletResponse response, Authentication authentication) throws IOException, ServletException {
-		TsfSession.invalidate(request);
-
-		// RememberMe 쿠키가 있으면
-		String ckRememberMe = GagaCookieUtil.getCookie(request, TsfConstants.CK_PREFIX + "_remember-me");
-
-		if (StringUtils.isNotBlank(ckRememberMe)) {
-			// 로그인유지토큰 삭제
-			loginService.deletePersistentToken(ckRememberMe);
-
-			// RememberMe 쿠키 삭제
-			GagaCookieUtil.deleteCookie(response, TsfConstants.CK_PREFIX + "_remember-me");
-		}
-
-		response.sendRedirect("/");
-	}
-
-}

+ 0 - 82
style24.front/src/main/java/com/style24/front/support/security/handler/TsfRememberMeSuccessHandler.java

@@ -1,82 +0,0 @@
-package com.style24.front.support.security.handler;
-
-import java.io.IOException;
-
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import javax.servlet.http.HttpSession;
-
-import org.apache.commons.lang3.StringUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.security.core.Authentication;
-import org.springframework.security.web.authentication.AuthenticationSuccessHandler;
-
-import com.style24.front.biz.service.TsfLoginService;
-import com.style24.front.support.security.TsfLoginDetails;
-
-import lombok.extern.slf4j.Slf4j;
-
-/**
- * RememberMe를 통한 로그인 성공 시 호출되는 Handler
- * 
- * @author gagamel
- * @since 2020. 9. 11
- */
-@Slf4j
-public class TsfRememberMeSuccessHandler implements AuthenticationSuccessHandler {
-
-	@Autowired
-	private TsfLoginService loginService;
-
-//	@Autowired
-//	private FoCustomerService customerService;
-
-	@Override
-	public void onAuthenticationSuccess(HttpServletRequest request, HttpServletResponse response, Authentication authentication) throws IOException, ServletException {
-		// 로그인 상세 정보
-		TsfLoginDetails loginDetails = (TsfLoginDetails)authentication.getPrincipal();
-
-		// 로그인 성공 시 로그인실패수가 0보다 크면 로그인실패수 reset
-		Integer custNo = loginDetails.getLoginInfo().getCustNo();
-		int failCnt = loginService.getLoginFailCount(custNo);
-		if (failCnt > 0) {
-			loginService.createLoginFail(loginDetails.getLoginInfo().getCustId(), "N");
-		}
-
-		// 최종로그인일시 Update
-		loginService.updateLastLoginDate(custNo);
-
-		// 로그인이력 생성
-		loginService.createLoginHistory(custNo);
-
-		// 세션 생성
-		this.createSession(request, loginDetails);
-
-//		String isApp = FoSession.getAttribute("isApp");
-//		if ("true".equals(isApp)) {
-//			customerService.giveFirstAppDownPoint(loginDetails.getUsername());
-//		}
-
-		String returnUrl = request.getRequestURL().toString();
-		log.info("returnUrl: {}", returnUrl);
-
-		if (StringUtils.isBlank(returnUrl)) {
-			returnUrl = "/";
-		}
-
-		response.sendRedirect(returnUrl);
-	}
-
-	/**
-	 * Session 생성
-	 * @param request - HttpServletRequest
-	 * @param loginDetails - 로그인 상세 정보
-	 */
-	private void createSession(HttpServletRequest request, TsfLoginDetails loginDetails) {
-		HttpSession session = request.getSession(true);
-		session.setMaxInactiveInterval(1800);
-		session.setAttribute("session", loginDetails);
-	}
-
-}

+ 0 - 100
style24.front/src/main/java/com/style24/front/support/security/session/TsfSession.java

@@ -1,100 +0,0 @@
-package com.style24.front.support.security.session;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpSession;
-
-import org.springframework.mobile.device.Device;
-import org.springframework.mobile.device.DeviceUtils;
-import org.springframework.web.context.request.RequestAttributes;
-import org.springframework.web.context.request.RequestContextHolder;
-import org.springframework.web.context.request.ServletRequestAttributes;
-
-import com.style24.front.support.security.TsfLoginDetails;
-import com.style24.persistence.domain.Login;
-
-import lombok.extern.slf4j.Slf4j;
-
-import com.gagaframework.web.security.GagaSession;
-
-/**
- * Session
- * 
- * @author gagamel
- * @since 2020. 9. 11
- */
-@Slf4j
-public class TsfSession extends GagaSession {
-
-	/**
-	 * Get Session Info.
-	 * @return 세션 정보
-	 */
-	public static Login getInfo() {
-		TsfLoginDetails loginDetails = (TsfLoginDetails)RequestContextHolder.currentRequestAttributes().getAttribute("session", RequestAttributes.SCOPE_SESSION);
-
-		if (loginDetails == null)
-			return null;
-
-		return loginDetails.getLoginInfo();
-	}
-
-	/**
-	 * 로그인 여부
-	 * @return true/false
-	 */
-	public static boolean isLogin() {
-		TsfLoginDetails loginDetails = (TsfLoginDetails)RequestContextHolder.currentRequestAttributes().getAttribute("session", RequestAttributes.SCOPE_SESSION);
-
-		if (loginDetails == null)
-			return false;
-
-		return loginDetails.isLogin();
-	}
-
-	/**
-	 * 프론트구분 가져오기
-	 * @return P:PC, M:모바일
-	 */
-	public static String getFrontGb() {
-		HttpServletRequest request = ((ServletRequestAttributes)RequestContextHolder.getRequestAttributes()).getRequest();
-		Device device = DeviceUtils.getCurrentDevice(request);
-
-		if (device == null) {
-			log.debug("device is null");
-			return "P";
-		}
-
-		log.debug("device.isMobile: {}", device.isMobile());
-		log.debug("device.isNormal: {}", device.isNormal());
-		log.debug("device.isTablet: {}", device.isTablet());
-
-		return device.isMobile() ? "M" : "P";
-	}
-
-	/**
-	 * 세션 설정
-	 * @param name - 명칭
-	 * @param value - 값
-	 * @return HttpServletResponse
-	 */
-	public static void setAttribute(String name, String value) {
-		HttpServletRequest request = getHttpServletRequest();
-		request.getSession(true).setAttribute(name, value);
-	}
-
-	/**
-	 * 세션 값 조회
-	 * @return 세션 값
-	 */
-	public static String getAttribute(String name) {
-		HttpServletRequest request = getHttpServletRequest();
-		HttpSession session = request.getSession(true);
-
-		if (session != null && session.getAttribute(name) != null) {
-			return (String)session.getAttribute(name);
-		}
-
-		return "";
-	}
-
-}

+ 0 - 53
style24.front/src/main/java/com/style24/front/support/startup/TsfApplication.java

@@ -1,53 +0,0 @@
-package com.style24.front.support.startup;
-
-import java.io.IOException;
-import java.util.Arrays;
-
-import javax.annotation.PostConstruct;
-
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.boot.SpringApplication;
-import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
-import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
-import org.springframework.boot.autoconfigure.jdbc.DataSourceTransactionManagerAutoConfiguration;
-import org.springframework.cache.annotation.EnableCaching;
-import org.springframework.context.annotation.ComponentScan;
-import org.springframework.context.annotation.Configuration;
-import org.springframework.core.env.Environment;
-
-import com.style24.core.support.env.TscConstants;
-
-import lombok.extern.slf4j.Slf4j;
-
-import com.gagaframework.web.core.GagaConstants;
-
-/**
- * Application
- * @author gagamel
- * @since 2020. 9. 11
- */
-@EnableCaching
-@Configuration
-@EnableAutoConfiguration(exclude = {DataSourceTransactionManagerAutoConfiguration.class, DataSourceAutoConfiguration.class})
-@ComponentScan(basePackages = {GagaConstants.GAGA_PACKAGE, TscConstants.BASE_PACKAGE})
-@Slf4j
-public class TsfApplication {
-
-	@Autowired
-	private Environment env;
-
-	@PostConstruct
-	public void initApplication() throws IOException {
-		log.info("Running with Spring Profiles: {}", Arrays.toString(env.getActiveProfiles()));
-		if (env.getActiveProfiles().length == 0) {
-			log.warn("No spring profile configured, running with default configuration.");
-		} else if (env.getActiveProfiles().length > 1) {
-			log.error("You have misconfigured your application! It should not run with both Spring Profiles at the same time.");
-		}
-	}
-
-	public static void main(String[] args) {
-		SpringApplication.run(TsfApplication.class, args);
-	}
-
-}

+ 0 - 19
style24.front/src/main/java/com/style24/front/support/startup/TsfServletInitializer.java

@@ -1,19 +0,0 @@
-package com.style24.front.support.startup;
-
-import org.springframework.boot.builder.SpringApplicationBuilder;
-import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
-
-/**
- * ServletInitializer
- * 
- * @author gagamel
- * @since 2020. 9. 11
- */
-public class TsfServletInitializer extends SpringBootServletInitializer {
-
-	@Override
-	protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
-		return application.sources(TsfApplication.class);
-	}
-
-}

+ 0 - 120
style24.front/src/main/java/com/style24/persistence/TsfPageRequest.java

@@ -1,120 +0,0 @@
-package com.style24.persistence;
-
-import java.io.Serializable;
-
-import lombok.Data;
-
-/**
- * Paging
- * @author gagamel
- * @since 2020. 2. 14
- */
-@SuppressWarnings("serial")
-@Data
-public class TsfPageRequest implements Serializable {
-
-	private final int pageNo;   // 페이지번호
-	private final int pageSize; // 조회할 row수
-	private final int pageUnit; // 그룹핑 페이지 단위
-	private int totalCount = 0; // 전체 row 건수
-
-	public TsfPageRequest(int pageNo, int pageSize) {
-		this(pageNo, pageSize, 10);
-	}
-
-	public TsfPageRequest(int pageNo, int pageSize, int pageUnit) {
-		if (pageNo < 0) {
-			throw new IllegalArgumentException("Current page index must not be less than zero!");
-		}
-
-		if (pageSize < 1) {
-			throw new IllegalArgumentException("Page size must not be less than one!");
-		}
-
-		if (pageUnit < 1) {
-			throw new IllegalArgumentException("Page unit must not be less than one!");
-		}
-
-		this.pageNo = pageNo;
-		this.pageSize = pageSize;
-		this.pageUnit = pageUnit;
-	}
-
-	public int getPageNo() {
-		return pageNo + 1;
-	}
-
-	public int getOffset() {
-		return pageNo * pageSize;
-	}
-
-	public int getStartRow() {
-		return pageNo * pageSize + 1;
-	}
-
-	public int getEndRow() {
-		return getOffset() + pageSize;
-	}
-
-	public int getPageGroup() {
-		return pageNo / pageUnit + 1;
-	}
-
-	public void setTotalCount(int totalCount) {
-		this.totalCount = totalCount;
-	}
-
-	public int getTotalPage() {
-		int totalPage = totalCount / pageSize;
-		if (totalCount % pageSize > 0) totalPage++;
-		return totalPage;
-	}
-
-	public String getGeneratedPagination() {
-		int firstCount = (getPageGroup() - 1) * pageUnit + 1;
-		int loopCount = firstCount + pageUnit;
-		if (loopCount > getTotalPage()) loopCount = getTotalPage() + 1;
-
-		StringBuffer pageTag = new StringBuffer();
-
-		if (getPageNo() == 1) {
-			pageTag.append("<a href=\"#\" class=\"icon first\" alt=\"처음 페이지\">처음 페이지</a>\n");
-		} else {
-			pageTag.append("<a href=\"#pageNo=1\" class=\"icon first\" alt=\"처음 페이지\">처음 페이지</a>\n");
-		}
-
-		if (getPageGroup() == 1) {
-			pageTag.append("<a href=\"#\" class=\"icon prev\" alt=\"이전페이지\">이전 페이지</a>\n");
-		} else {
-			pageTag.append("<a href=\"#pageNo=").append((getPageGroup() - 1) * pageUnit).append("\" class=\"icon prev\" alt=\"이전페이지\">이전 페이지</a>\n");
-		}
-
-		for (int i = firstCount; i < loopCount; i++) {
-			if (getPageNo() == i) {
-				pageTag.append("<a class=\"num on\" href=\"#\">").append(i).append("</a>\n");
-			} else {
-				pageTag.append("<a class=\"num\" href=\"#pageNo=").append(i).append("\">").append(i).append("</a>\n");
-			}
-		}
-
-		if (loopCount <= (getTotalPage() + 1)) {
-			if (getPageNo() == getTotalPage() || getTotalPage()<=(getPageGroup() * pageUnit)) {
-				//				pageTag.append("<a href=\"#\" class=\"icon next\" alt=\"다음 페이지\">다음 페이지</a>\n");
-				//				pageTag.append("<a href=\"#\" class=\"icon last\" alt=\"마지막 페이지\">마지막 페이지</a>\n");
-				pageTag.append("<a href=\"#pageNo=").append(getPageNo()).append("\" class=\"icon next\" alt=\"다음 페이지\">다음 페이지</a>\n");
-				pageTag.append("<a href=\"#pageNo=").append(getPageNo()).append("\" class=\"icon last\" alt=\"마지막 페이지\">마지막 페이지</a>\n");
-			} else {
-				pageTag.append("<a href=\"#pageNo=").append(getPageGroup() * pageUnit + 1).append("\" class=\"icon next\" alt=\"다음 페이지\">다음 페이지</a>\n");
-				pageTag.append("<a href=\"#pageNo=").append(getTotalPage()).append("\" class=\"icon last\" alt=\"마지막 페이지\">마지막 페이지</a>\n");
-			}
-		}
-
-		return pageTag.toString();
-	}
-
-	@Override
-	public String toString() {
-		return String.format("Page request [pageNo: %d, pageSize %d, pageUnit %d]", getPageNo(), pageSize, pageUnit);
-	}
-
-}

+ 0 - 64
style24.front/src/main/java/com/style24/persistence/domain/Counsel.java

@@ -1,64 +0,0 @@
-package com.style24.persistence.domain;
-
-import com.fasterxml.jackson.annotation.JsonInclude;
-import com.style24.persistence.TscBaseDomain;
-import com.style24.persistence.TsfPageRequest;
-
-import lombok.Data;
-
-/**
- * 상담(1:1문의) Domain
- *
- * @author gagamel
- * @since 2020. 12. 28
- */
-@SuppressWarnings("serial")
-@Data
-public class Counsel extends TscBaseDomain {
-
-	private Integer counselSq;		// 상담일련번호
-	private String counselType;		// 상담유형(C-1:1문의, G-상품문의)
-	private String siteCd;			// 사이트코드(공통코드G000)
-	private String siteNm;			// 사이트명
-	private String counselClsf;		// 상담분류(공통코드G059)
-	private String counselClsfNm;	// 상담분류명
-	private String counselDclsf;	// 상담분류상세(공통코드G591~G599)
-	private String counselDclsfNm;	// 상담분류상세명
-	private Integer custNo;			// 고객번호
-	private String custId;			// 고객ID
-	private String custNm;			// 고객명
-	private String cellPhnno;		// 휴대전화번호
-	private String smsReqYn;		// SMS(알림톡)요청여부
-	private String smsSendYn;		// SMS(알림톡)발송여부
-	private String email;			// 이메일
-	private String relGoodsCd;		// 관련상품코드(상품문의에서만 사용)
-	private String goodsNm;			// 상품명(상품문의에서만 사용)
-	private String questTitle;		// 문의제목
-	private String questContent;	// 문의내용
-	private String questDt;			// 문의일자
-	private String orgFileNm1;		// 원본파일명1
-	private String sysFileNm1;		// 시스템파일명1
-	private String orgFileNm2;		// 원본파일명2
-	private String sysFileNm2;		// 시스템파일명2
-	private String ansStat;			// 답변상태(공통코드G060)
-	private String ansStatNm;		// 답변상태명
-	private String ansTitle;		// 답변제목
-	private String ansContent;		// 답변내용
-	private String ansDt;			// 답변일자
-	private String secretYn;		// 비밀글여부(상품문의에서만 사용)
-	private String delYn;			// 삭제여부
-
-	// 1:1문의(총, 답변완료, 처리중) 건수
-	private int totCnt;		// 총건수
-	private int ansCnt;		// 답변완료건수
-	private int ingCnt;		// 처리중건수
-
-	// Pagination
-	@JsonInclude(JsonInclude.Include.NON_EMPTY)
-	private TsfPageRequest pageable;
-
-	private int pageNo = 1;
-	private int pageSize = 10;
-	private int pageUnit = 10;
-
-}

+ 0 - 38
style24.front/src/main/java/com/style24/persistence/domain/Faq.java

@@ -1,38 +0,0 @@
-package com.style24.persistence.domain;
-
-import com.fasterxml.jackson.annotation.JsonInclude;
-import com.style24.persistence.TscBaseDomain;
-import com.style24.persistence.TsfPageRequest;
-
-import lombok.Data;
-
-/**
- * FAQ Domain
- *
- * @author gagamel
- * @since 2020. 12. 23
- */
-@SuppressWarnings("serial")
-@Data
-public class Faq extends TscBaseDomain {
-
-	private Integer faqSq;		// FAQ일련번호
-	private String siteCd;		// 사이트코드
-	private String faqType;		// FAQ유형
-	private String faqTypeNm;	// FAQ유형명
-	private String question;	// 질문
-	private String answer;		// 답변
-	private int readCnt;		// 조회수
-
-	// 검색조건
-	private String searchTxt;	//검색어
-
-	// Pagination
-	@JsonInclude(JsonInclude.Include.NON_EMPTY)
-	private TsfPageRequest pageable;
-
-	private int pageNo = 1;
-	private int pageSize = 10;
-	private int pageUnit = 10;
-
-}

+ 0 - 43
style24.front/src/main/java/com/style24/persistence/domain/Login.java

@@ -1,43 +0,0 @@
-package com.style24.persistence.domain;
-
-import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
-import com.fasterxml.jackson.databind.annotation.JsonSerialize;
-import com.style24.persistence.TscBaseDomain;
-
-import lombok.Data;
-
-/**
- * 고객 Domain
- * 		@JsonSerialize 애노테이션을 지정해야 세션을 레디스에 저장할 수 있다.
- * @author gagamel
- * @since 2019. 12. 4
- */
-@SuppressWarnings("serial")
-@Data
-@JsonSerialize
-@JsonIgnoreProperties(ignoreUnknown = true)
-public class Login extends TscBaseDomain {
-
-	// 세션을 JSON 형식으로 레디스에 저장하려면 기본 생성자를 반드시 명시해야 한다
-	public Login() {
-
-	}
-
-	private Integer custNo;			// 고객번호
-	private String custId;			// 고객ID
-	private String custNm;			// 고객명
-	private String passwd;			// 비밀번호
-	private String custGb;			// 고객구분
-	private String custGbNm;		// 고객구분명
-	private String custStat;		// 고객상태
-	private String email;			// 이메일
-	private String snsType;			// SNS유형
-	private String snsJoinId;		// SNS가입ID
-	private int loginFailCnt;		// 로그인실패건수
-	private String siteCd;			// 가입사이트코드(공통코드G000)
-	private String frontGb;			// 프론트구분(P:PC, M:모바일)
-	private String ipAddr;			// IP주소
-	private String loginLdt;		// 최종로그인일시
-	private String loginFailYn;		// 로그인실패여부
-
-}

+ 0 - 46
style24.front/src/main/java/com/style24/persistence/domain/Notice.java

@@ -1,46 +0,0 @@
-package com.style24.persistence.domain;
-
-import com.fasterxml.jackson.annotation.JsonInclude;
-import com.style24.persistence.TscBaseDomain;
-import com.style24.persistence.TsfPageRequest;
-
-import lombok.Data;
-
-/**
- * 공지사항 Domain
- * 
- * @author gagamel
- * @since 2020. 12. 23
- */
-@SuppressWarnings("serial")
-@Data
-public class Notice extends TscBaseDomain {
-
-	private Integer noticeSq;		// 공지사항일련번호
-	private String noticeType;		// 공지사항유형
-	private String urgentYn;		// 긴급여부
-	private String noticeTitle;		// 공지사항제목
-	private String noticeContent;	// 공지사항내용
-	private int fileCnt;			// 파일건수
-	private String noticeStdt;		// 공지시작일시
-	private String noticeEddt;		// 공지종료일시
-	private int readCnt;			// 조회수
-	private String useYn;			// 사용여부
-
-	// 검색용
-	private String siteCd;			// 사이트코드
-
-	// 첨부파일
-	private int seq;				// 일련번호
-	private String orgFileNm;		// 원본파일명
-	private String sysFileNm;		// 시스템파일명
-
-	// Pagination
-	@JsonInclude(JsonInclude.Include.NON_EMPTY)
-	private TsfPageRequest pageable;
-
-	private int pageNo = 1;
-	private int pageSize = 10;
-	private int pageUnit = 10;
-
-}

+ 0 - 26
style24.front/src/main/java/com/style24/persistence/domain/PersistentToken.java

@@ -1,26 +0,0 @@
-package com.style24.persistence.domain;
-
-import java.io.Serializable;
-import java.util.Date;
-
-import lombok.Builder;
-import lombok.Data;
-
-/**
- * 로그인유지용 토큰
- * 
- * @author gagamel
- * @since 2020. 9. 11
- */
-@SuppressWarnings("serial")
-@Data
-@Builder
-public class PersistentToken implements Serializable {
-
-	private Integer custNo;				// 고객번호
-	private String remembermeToken;		// RememberMe토큰
-	private Date limitDt;				// 만료일시
-	private String custId;				// 고객ID
-	private String prevRemembermeToken;	// 기존RememberMe토큰
-
-}

+ 0 - 13
style24.front/src/main/java/com/style24/persistence/mybatis/TsfCart.xml

@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.style24.front.biz.dao.TsfCartDao">
-
-	<!-- Paging -->
-	<sql id="pageSql">
-		LIMIT #{pageable.startRow}, #{pageable.pageSize}
-	</sql>
-	<!--// Paging -->
-	
-	
-
-</mapper>

+ 0 - 311
style24.front/src/main/java/com/style24/persistence/mybatis/TsfCounsel.xml

@@ -1,311 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.style24.front.biz.dao.TsfCounselDao">
-
-	<!-- Paging -->
-	<sql id="pageSql">
-		LIMIT #{pageable.startRow}, #{pageable.pageSize}
-	</sql>
-	<!--// Paging -->
-	
-	<!-- 1:1문의 생성 -->
-	<insert id="createOneToOneQna" parameterType="Counsel">
-		/* TsfCounsel.createOneToOneQna */
-		INSERT INTO TB_COUNSEL (
-		       COUNSEL_SQ
-		     , SITE_CD
-		     , COUNSEL_CLSF
-		     , COUNSEL_DCLSF
-		     , CUST_NO
-		     , CELL_PHNNO
-		     , SMS_REQ_YN
-		     , SMS_SEND_YN
-		     , EMAIL
-		     , EMAIL_REQ_YN
-		     , EMAIL_SEND_YN
-		     , COUNSEL_TYPE
-		     , QUEST_TITLE
-		     , QUEST_CONTENT
-		     , QUEST_DT
-		     , ORG_FILE_NM1
-		     , SYS_FILE_NM1
-		     , ORG_FILE_NM2
-		     , SYS_FILE_NM2
-		     , ANS_STAT
-		     , DEL_YN
-		     , REG_NO
-		     , REG_DT
-		     , UPD_NO
-		     , UPD_DT
-		)
-		VALUES (
-		       NULL
-		     , #{siteCd}
-		     , #{counselClsf}
-		     , #{counselDclsf}
-		     , #{custNo}
-		     , #{cellPhnno}
-		     , #{smsReqYn} /*SMS(알림톡)답변수신여부*/
-		     , 'N'
-		     , #{email}
-		     , 'N'
-		     , 'N'
-		     , 'C' /*상담유형(1:1문의)*/
-		     , #{questTitle}
-		     , #{questContent}
-		     , NOW()
-		     , #{orgFileNm1}
-		     , #{sysFileNm1}
-		     , #{orgFileNm2}
-		     , #{sysFileNm2}
-		     , 'G060_10' /*답변상태:처리중*/
-		     , 'N'
-		     , #{regNo}
-		     , NOW()
-		     , #{updNo}
-		     , NOW()
-		)
-	</insert>
-	
-	<!-- 1:1문의(총,답변완료,처리중) 건수 -->
-	<select id="getOneToOneQnaCountInfo" parameterType="Counsel" resultType="Counsel">
-		/* TsfCounsel.getOneToOneQnaCountInfo */
-		SELECT COUNT(*)                                              AS TOT_CNT /*총건수*/
-		     , SUM(CASE WHEN ANS_STAT = 'G060_20' THEN 1 ELSE 0 END) AS ANS_CNT /*답변완료건수*/
-		     , SUM(CASE WHEN ANS_STAT = 'G060_10' THEN 1 ELSE 0 END) AS ING_CNT /*처리중건수*/
-		FROM   TB_COUNSEL
-		WHERE  CUST_NO = #{custNo}
-		AND    SITE_CD = #{siteCd}
-		AND    COUNSEL_TYPE = 'C' /*상담유형(1:1문의)*/
-		AND    DEL_YN = 'N' /*삭제안된넘*/
-	</select>
-	
-	<!-- 1:1문의 총건수 -->
-	<select id="getOneToOneQnaTotalCount" parameterType="Counsel" resultType="int">
-		/* TsfCounsel.getOneToOneQnaTotalCount */
-		SELECT COUNT(*) AS CNT
-		FROM   TB_COUNSEL
-		WHERE  CUST_NO = #{custNo}
-		AND    SITE_CD = #{siteCd}
-		AND    COUNSEL_TYPE = 'C' /*상담유형(1:1문의)*/
-		AND    DEL_YN = 'N' /*삭제안된넘*/
-	</select>
-	
-	<!-- 1:1문의 목록 -->
-	<select id="getOneToOneQnaList" parameterType="Counsel" resultType="Counsel">
-		/* TsfCounsel.getOneToOneQnaList */
-		SELECT COUNSEL_SQ                                                     /*상담일련번호*/
-		     , SITE_CD                                                        /*사이트코드*/
-		     , FN_GET_CODE_NM('G059',COUNSEL_CLSF)        AS COUNSEL_CLSF_NM  /*상담분류명*/
-		     , FN_GET_CODE_NM(COUNSEL_CLSF,COUNSEL_DCLSF) AS COUNSEL_DCLSF_NM /*상담상세분류명*/
-		     , COUNSEL_DCLSF                                                  /*상담상세분류*/
-		     , DATE_FORMAT(QUEST_DT,'%Y.%m.%d')           AS QUEST_DT         /*문의일자*/
-		     , QUEST_TITLE                                                    /*문의제목*/
-		     , QUEST_CONTENT                                                  /*질문내용*/
-		     , ORG_FILE_NM1                                                   /*원본파일명1*/
-		     , SYS_FILE_NM1                                                   /*시스템파일명1*/
-		     , ORG_FILE_NM2                                                   /*원본파일명2*/
-		     , SYS_FILE_NM2                                                   /*시스템파일명2*/
-		     , ANS_TITLE                                                      /*답변제목*/
-		     , ANS_CONTENT                                                    /*답변내용*/
-		     , ANS_STAT                                                       /*답변상태코드*/
-		     , FN_GET_CODE_NM('G060',ANS_STAT)            AS ANS_STAT_NM      /*답변상태명*/
-		     , DATE_FORMAT(ANS_DT,'%Y.%m.%d')             AS ANS_DT           /*답변일자*/
-		FROM   TB_COUNSEL
-		WHERE  CUST_NO = #{custNo}
-		AND    SITE_CD = #{siteCd}
-		AND    COUNSEL_TYPE = 'C' /*상담유형(1:1문의)*/
-		AND    DEL_YN = 'N' /*삭제안된넘*/
-		ORDER  BY QUEST_DT DESC
-		<include refid="pageSql"></include>
-	</select>
-	
-	<!-- 1:1문의 삭제 -->
-	<update id="deleteOneToOneQna" parameterType="Counsel">
-		/* TsfCounsel.deleteOneToOneQna */
-		UPDATE TB_COUNSEL
-		SET    DEL_YN = 'Y'
-		     , UPD_NO = #{updNo}
-		     , UPD_DT = NOW()
-		WHERE  COUNSEL_SQ = #{counselSq}
-		AND    CUST_NO = #{custNo}
-		AND    ANS_STAT = 'G060_10' /*답변상태:처리중*/
-	</update>
-
-	<!-- 1:1문의 상세 -->
-	<select id="getOneToOneQna" parameterType="Counsel" resultType="Counsel">
-		/* TsfCounsel.getOneToOneQna */
-		SELECT COUNSEL_SQ    /*상담일련번호*/
-		     , SITE_CD       /*사이트코드*/
-		     , COUNSEL_CLSF  /*상담분류*/
-		     , COUNSEL_DCLSF /*상담상세분류*/
-		     , QUEST_TITLE   /*문의제목*/
-		     , QUEST_CONTENT /*질문내용*/
-		     , ORG_FILE_NM1  /*원본파일명1*/
-		     , SYS_FILE_NM1  /*시스템파일명1*/
-		     , ORG_FILE_NM2  /*원본파일명2*/
-		     , SYS_FILE_NM2  /*시스템파일명2*/
-		     , CELL_PHNNO    /*휴대전화번호*/
-		     , SMS_REQ_YN    /*SMS(알림톡)답변수신여부*/
-		     , ANS_STAT      /*답변상태코드*/
-		FROM   TB_COUNSEL
-		WHERE  COUNSEL_SQ = #{counselSq}
-		AND    CUST_NO = #{custNo}
-		AND    SITE_CD = #{siteCd}
-		AND    COUNSEL_TYPE = 'C' /*상담유형(1:1문의)*/
-		AND    DEL_YN = 'N' /*삭제안된넘*/
-	</select>
-	
-	<!-- 1:1문의 수정 -->
-	<insert id="updateOneToOneQna" parameterType="Counsel">
-		/* TsfCounsel.updateOneToOneQna */
-		UPDATE TB_COUNSEL
-		SET    COUNSEL_CLSF = #{counselClsf}
-		     , COUNSEL_DCLSF = #{counselDclsf}
-		     , CELL_PHNNO = #{cellPhnno}
-		     , SMS_REQ_YN = #{smsReqYn}
-		     , QUEST_TITLE = #{questTitle}
-		     , QUEST_CONTENT = #{questContent}
-		     , ORG_FILE_NM1 = #{orgFileNm1}
-		     , SYS_FILE_NM1 = #{sysFileNm1}
-		     , ORG_FILE_NM2 = #{orgFileNm2}
-		     , SYS_FILE_NM2 = #{sysFileNm2}
-		     , UPD_NO = #{updNo}
-		     , UPD_DT = NOW()
-		WHERE  COUNSEL_SQ = #{counselSq}
-		AND    CUST_NO = #{custNo}
-		AND    ANS_STAT = 'G060_10' /*답변상태:처리중*/
-	</insert>
-	
-	<!-- 1:1문의 이미지 삭제 -->
-	<update id="deleteOneToOneQnaImage" parameterType="Counsel">
-		/* TsfCounsel.deleteOneToOneQnaImage */
-		UPDATE TB_COUNSEL
-		SET    ORG_FILE_NM1 = #{orgFileNm1}
-		     , SYS_FILE_NM1 = #{sysFileNm1}
-		     , ORG_FILE_NM2 = #{orgFileNm2}
-		     , SYS_FILE_NM2 = #{sysFileNm2}
-		     , UPD_NO = #{updNo}
-		     , UPD_DT = NOW()
-		WHERE  COUNSEL_SQ = #{counselSq}
-		AND    CUST_NO = #{custNo}
-		AND    ANS_STAT = 'G060_10' /*답변상태:처리중*/
-	</update>
-	
-	<!-- 상품문의 생성 -->
-	<insert id="createGoodsQna" parameterType="Counsel">
-		/* TsfCounsel.createGoodsQna */
-		INSERT INTO TB_COUNSEL (
-		       COUNSEL_SQ
-		     , SITE_CD
-		     , COUNSEL_CLSF
-		     , CUST_NO
-		     , CELL_PHNNO
-		     , SMS_REQ_YN
-		     , SMS_SEND_YN
-		     , EMAIL
-		     , EMAIL_REQ_YN
-		     , EMAIL_SEND_YN
-		     , REL_GOODS_CD
-		     , COUNSEL_TYPE
-		     , QUEST_TITLE
-		     , QUEST_CONTENT
-		     , QUEST_DT
-		     , SECRET_YN
-		     , ANS_STAT
-		     , DEL_YN
-		     , REG_NO
-		     , REG_DT
-		     , UPD_NO
-		     , UPD_DT
-		)
-		VALUES (
-		       NULL
-		     , #{siteCd}
-		     , 'G596' /*문의종류:상품문의*/
-		     , #{custNo}
-		     , #{cellPhnno}
-		     , #{smsReqYn} /*SMS(알림톡)답변수신여부*/
-		     , 'N'
-		     , #{email}
-		     , 'N'
-		     , 'N'
-		     , #{relGoodsCd}
-		     , 'G' /*상담유형(상품문의)*/
-		     , CONCAT('[',#{relGoodsCd},'] 상품문의')
-		     , #{questContent}
-		     , NOW()
-		     , #{secretYn}
-		     , 'G060_10' /*답변상태:처리중*/
-		     , 'N'
-		     , #{regNo}
-		     , NOW()
-		     , #{updNo}
-		     , NOW()
-		)
-	</insert>
-	
-	<!-- 상품문의(총,답변완료,처리중) 건수 -->
-	<select id="getGoodsQnaCountInfo" parameterType="Counsel" resultType="Counsel">
-		/* TsfCounsel.getGoodsQnaCountInfo */
-		SELECT COUNT(*)                                              AS TOT_CNT /*총건수*/
-		     , SUM(CASE WHEN ANS_STAT = 'G060_20' THEN 1 ELSE 0 END) AS ANS_CNT /*답변완료건수*/
-		     , SUM(CASE WHEN ANS_STAT = 'G060_10' THEN 1 ELSE 0 END) AS ING_CNT /*처리중건수*/
-		FROM   TB_COUNSEL
-		WHERE  CUST_NO = #{custNo}
-		AND    SITE_CD = #{siteCd}
-		AND    COUNSEL_TYPE = 'G' /*상담유형(상품문의)*/
-		AND    DEL_YN = 'N' /*삭제안된넘*/
-	</select>
-	
-	<!-- 상품문의 총건수 -->
-	<select id="getGoodsQnaTotalCount" parameterType="Counsel" resultType="int">
-		/* TsfCounsel.getGoodsQnaTotalCount */
-		SELECT COUNT(*) AS CNT
-		FROM   TB_COUNSEL A
-		     , TB_GOODS G
-		WHERE  A.REL_GOODS_CD = G.GOODS_CD
-		AND    A.CUST_NO = #{custNo}
-		AND    A.SITE_CD = #{siteCd}
-		AND    A.COUNSEL_TYPE = 'G' /*상담유형(상품문의)*/
-		AND    A.DEL_YN = 'N' /*삭제안된넘*/
-	</select>
-	
-	<!-- 상품문의 목록 -->
-	<select id="getGoodsQnaList" parameterType="Counsel" resultType="Counsel">
-		/* TsfCounsel.getGoodsQnaList */
-		SELECT A.COUNSEL_SQ                                      /*상담일련번호*/
-		     , A.SITE_CD                                         /*사이트코드*/
-		     , DATE_FORMAT(A.QUEST_DT,'%Y.%m.%d') AS QUEST_DT    /*문의일자*/
-		     , A.SECRET_YN                                       /*비밀글여부*/
-		     , A.CELL_PHNNO                                      /*휴대전화번호*/
-		     , A.SMS_REQ_YN                                      /*SMS(알림톡)답변수신여부*/
-		     , A.REL_GOODS_CD                                    /*관련상품코드*/
-		     , G.GOODS_NM                                        /*상품명*/
-		     , A.ANS_STAT                                        /*답변상태*/
-		     , FN_GET_CODE_NM('G060',ANS_STAT)    AS ANS_STAT_NM /*답변상태명*/
-		     , DATE_FORMAT(A.ANS_DT,'%Y.%m.%d')   AS ANS_DT      /*답변일자*/
-		FROM   TB_COUNSEL A
-		     , TB_GOODS G
-		WHERE  A.REL_GOODS_CD = G.GOODS_CD
-		AND    A.CUST_NO = #{custNo}
-		AND    A.SITE_CD = #{siteCd}
-		AND    A.COUNSEL_TYPE = 'G' /*상담유형(상품문의)*/
-		AND    A.DEL_YN = 'N' /*삭제안된넘*/
-		ORDER  BY A.QUEST_DT DESC
-		<include refid="pageSql"></include>
-	</select>
-	
-	<!-- 상품문의 삭제 -->
-	<update id="deleteGoodsQna" parameterType="Counsel">
-		/* TsfCounsel.deleteGoodsQna */
-		UPDATE TB_COUNSEL
-		SET    DEL_YN = 'Y'
-		     , UPD_NO = #{updNo}
-		     , UPD_DT = NOW()
-		WHERE  COUNSEL_SQ = #{counselSq}
-		AND    CUST_NO = #{custNo}
-		AND    ANS_STAT = 'G060_10' /*답변상태:처리중*/
-	</update>
-
-</mapper>

+ 0 - 13
style24.front/src/main/java/com/style24/persistence/mybatis/TsfCoupon.xml

@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.style24.front.biz.dao.TsfCouponDao">
-
-	<!-- Paging -->
-	<sql id="pageSql">
-		LIMIT #{pageable.startRow}, #{pageable.pageSize}
-	</sql>
-	<!--// Paging -->
-	
-	
-
-</mapper>

+ 0 - 13
style24.front/src/main/java/com/style24/persistence/mybatis/TsfCustomer.xml

@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.style24.front.biz.dao.TsfCustomerDao">
-
-	<!-- Paging -->
-	<sql id="pageSql">
-		LIMIT #{pageable.startRow}, #{pageable.pageSize}
-	</sql>
-	<!--// Paging -->
-	
-	
-
-</mapper>

+ 0 - 13
style24.front/src/main/java/com/style24/persistence/mybatis/TsfDisplay.xml

@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.style24.front.biz.dao.TsfDisplayDao">
-
-	<!-- Paging -->
-	<sql id="pageSql">
-		LIMIT #{pageable.startRow}, #{pageable.pageSize}
-	</sql>
-	<!--// Paging -->
-	
-	
-
-</mapper>

+ 0 - 93
style24.front/src/main/java/com/style24/persistence/mybatis/TsfFaq.xml

@@ -1,93 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.style24.front.biz.dao.TsfFaqDao">
-
-	<!-- Paging -->
-	<sql id="pageSql">
-		LIMIT #{pageable.startRow}, #{pageable.pageSize}
-	</sql>
-	<!--// Paging -->
-	
-	<!-- FAQ 자주 묻는 질문 목록 (10개) -->
-	<select id="getFaqLikesList" parameterType="String" resultType="Faq">
-		/* TsfFaq.getFaqLikesList */
-		SELECT FAQ_SQ   /*FAQ일련번호*/
-		     , SITE_CD  /*사이트코드(공통코드G000)*/
-		     , FAQ_TYPE /*FAQ유형(공통코드G046)*/
-		     , QUESTION /*질문*/
-		     , ANSWER   /*답변*/
-		     , DISP_ORD /*표시순서*/
-		FROM   TB_FAQ
-		WHERE  SITE_CD = #{siteCd}
-		AND    USE_YN = 'Y'
-		ORDER  BY DISP_ORD
-		LIMIT 10
-	</select>
-	
-	<!-- FAQ 총건수 -->
-	<select id="getFaqTotalCount" parameterType="Faq" resultType="int">
-		/* TsfFaq.getFaqTotalCount */
-		SELECT COUNT(*) AS CNT
-		FROM   TB_FAQ
-		WHERE  SITE_CD = #{siteCd}
-		<if test='faqType != null and faqType !=""'>
-		AND    FAQ_TYPE = #{faqType}
-		</if>
-		AND    USE_YN = 'Y'
-		<if test="searchTxt != null and searchTxt !=''">
-		AND    (
-		        LOWER(QUESTION) LIKE CONCAT('%',LOWER(#{searchTxt}),'%')
-		        OR
-		        LOWER(ANSWER) LIKE CONCAT('%',LOWER(#{searchTxt}),'%')
-		       )
-		</if>
-	</select>
-	
-	<!-- FAQ 목록 -->
-	<select id="getFaqList" parameterType="Faq" resultType="Faq">
-		/* TsfFaq.getFaqList */
-		SELECT FAQ_SQ   /*FAQ일련번호*/
-		     , SITE_CD  /*사이트코드(공통코드G000)*/
-		     , FAQ_TYPE /*FAQ유형(공통코드G046)*/
-		     , QUESTION /*질문*/
-		     , ANSWER   /*답변*/
-		     , DISP_ORD /*표시순서*/
-		FROM   TB_FAQ
-		WHERE  SITE_CD = #{siteCd}
-		<if test='faqType != null and faqType !=""'>
-		AND    FAQ_TYPE = #{faqType}
-		</if>
-		AND    USE_YN = 'Y'
-		<if test="searchTxt != null and searchTxt !=''">
-		AND    (
-		        LOWER(QUESTION) LIKE CONCAT('%',LOWER(#{searchTxt}),'%')
-		        OR
-		        LOWER(ANSWER) LIKE CONCAT('%',LOWER(#{searchTxt}),'%')
-		       )
-		</if>
-		ORDER  BY REG_DT DESC
-		<include refid="pageSql"></include>
-	</select>
-
-	<!-- FAQ 조회수 Update -->
-	<update id="updateFaqReadCount" parameterType="Integer">
-		/* TsfFaq.updateFaqReadCount */
-		UPDATE TB_FAQ
-		SET    READ_CNT = READ_CNT + 1
-		WHERE  FAQ_SQ = #{faqSq}
-	</update>
-
-	<!-- FAQ 상세 -->
-	<select id="getFaq" parameterType="Integer" resultType="Faq">
-		/* TsfFaq.getFaq */
-		SELECT FAQ_SQ                                         /*FAQ일련번호*/
-		     , FAQ_TYPE                                       /*FAQ유형*/
-		     , FN_GET_CODE_NM('G046',FAQ_TYPE) AS FAQ_TYPE_NM /*FAQ유형명*/
-		     , QUESTION                                       /*질문*/
-		     , ANSWER                                         /*답변*/
-		FROM   TB_FAQ
-		WHERE  FAQ_SQ = #{faqSq}
-		AND    USE_YN = 'Y'
-	</select>
-
-</mapper>

+ 0 - 13
style24.front/src/main/java/com/style24/persistence/mybatis/TsfGiftcard.xml

@@ -1,13 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.style24.front.biz.dao.TsfGiftcardDao">
-
-	<!-- Paging -->
-	<sql id="pageSql">
-		LIMIT #{pageable.startRow}, #{pageable.pageSize}
-	</sql>
-	<!--// Paging -->
-	
-	
-
-</mapper>

Niektoré súbory nie sú zobrazené, pretože je v týchto rozdielových dátach zmenené mnoho súborov