최초 세팅
This commit is contained in:
37
.gitignore
vendored
Normal file
37
.gitignore
vendored
Normal file
@@ -0,0 +1,37 @@
|
||||
HELP.md
|
||||
.gradle
|
||||
build/
|
||||
!gradle/wrapper/gradle-wrapper.jar
|
||||
!**/src/main/**/build/
|
||||
!**/src/test/**/build/
|
||||
|
||||
### STS ###
|
||||
.apt_generated
|
||||
.classpath
|
||||
.factorypath
|
||||
.project
|
||||
.settings
|
||||
.springBeans
|
||||
.sts4-cache
|
||||
bin/
|
||||
!**/src/main/**/bin/
|
||||
!**/src/test/**/bin/
|
||||
|
||||
### IntelliJ IDEA ###
|
||||
.idea
|
||||
*.iws
|
||||
*.iml
|
||||
*.ipr
|
||||
out/
|
||||
!**/src/main/**/out/
|
||||
!**/src/test/**/out/
|
||||
|
||||
### NetBeans ###
|
||||
/nbproject/private/
|
||||
/nbbuild/
|
||||
/dist/
|
||||
/nbdist/
|
||||
/.nb-gradle/
|
||||
|
||||
### VS Code ###
|
||||
.vscode/
|
||||
BIN
SoftwareRequirement/20250423/2025년 03월 재고현황_최종_ver0.3.xlsx
Normal file
BIN
SoftwareRequirement/20250423/2025년 03월 재고현황_최종_ver0.3.xlsx
Normal file
Binary file not shown.
BIN
SoftwareRequirement/20250423/메이드유 뎁스별 가격정리_250418ver0.3.xlsx
Normal file
BIN
SoftwareRequirement/20250423/메이드유 뎁스별 가격정리_250418ver0.3.xlsx
Normal file
Binary file not shown.
BIN
SoftwareRequirement/2025년 03월 재고현황.xlsx
Normal file
BIN
SoftwareRequirement/2025년 03월 재고현황.xlsx
Normal file
Binary file not shown.
BIN
SoftwareRequirement/2025년 03월 재고현황_최종_ver0.2.xlsx
Normal file
BIN
SoftwareRequirement/2025년 03월 재고현황_최종_ver0.2.xlsx
Normal file
Binary file not shown.
BIN
SoftwareRequirement/MADEU.damx
Normal file
BIN
SoftwareRequirement/MADEU.damx
Normal file
Binary file not shown.
BIN
SoftwareRequirement/메이드유 뎁스별 가격정리_250418ver0.2.xlsx
Normal file
BIN
SoftwareRequirement/메이드유 뎁스별 가격정리_250418ver0.2.xlsx
Normal file
Binary file not shown.
BIN
SoftwareRequirement/테이블 명세서.xlsx
Normal file
BIN
SoftwareRequirement/테이블 명세서.xlsx
Normal file
Binary file not shown.
BIN
SoftwareRequirement/홈페이지 리뉴얼 _2025.xlsx
Normal file
BIN
SoftwareRequirement/홈페이지 리뉴얼 _2025.xlsx
Normal file
Binary file not shown.
BIN
SoftwareRequirement/홈페이지_화면설계.pptx
Normal file
BIN
SoftwareRequirement/홈페이지_화면설계.pptx
Normal file
Binary file not shown.
106
build.gradle
Normal file
106
build.gradle
Normal file
@@ -0,0 +1,106 @@
|
||||
plugins {
|
||||
id 'java'
|
||||
id 'war'
|
||||
id 'org.springframework.boot' version '3.2.1'
|
||||
id 'io.spring.dependency-management' version '1.1.4'
|
||||
}
|
||||
|
||||
group = 'com'
|
||||
version = '0.0.1-SNAPSHOT'
|
||||
|
||||
java {
|
||||
sourceCompatibility = '21'
|
||||
}
|
||||
|
||||
war {
|
||||
archiveBaseName = 'madeu_diet_home'
|
||||
archiveVersion = ''
|
||||
archiveClassifier = ''
|
||||
}
|
||||
|
||||
|
||||
|
||||
configurations {
|
||||
compileOnly {
|
||||
extendsFrom annotationProcessor
|
||||
}
|
||||
all {
|
||||
// 로그 관련 (logging 모듈에 대한 의존성을 제거)
|
||||
exclude group: "org.springframework.boot", module : "spring-boot-starter-logging"
|
||||
// exclude group: 'ch.qos.logback', module: 'logback-classic'
|
||||
// exclude group: 'org.apache.logging.log4j', module: 'log4j-to-slf4j'
|
||||
}
|
||||
}
|
||||
|
||||
repositories {
|
||||
mavenCentral()
|
||||
}
|
||||
|
||||
dependencies {
|
||||
implementation 'org.springframework.boot:spring-boot-starter-validation'
|
||||
implementation 'org.springframework.boot:spring-boot-starter-web'
|
||||
developmentOnly 'org.springframework.boot:spring-boot-devtools'
|
||||
testImplementation 'org.springframework.boot:spring-boot-starter-test'
|
||||
implementation 'org.springframework.boot:spring-boot-starter-webflux'
|
||||
testImplementation 'io.projectreactor:reactor-test'
|
||||
|
||||
// tomcat
|
||||
providedRuntime 'org.springframework.boot:spring-boot-starter-tomcat'
|
||||
implementation 'org.apache.tomcat.embed:tomcat-embed-jasper'
|
||||
|
||||
// thymeleaf
|
||||
implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'
|
||||
implementation 'nz.net.ultraq.thymeleaf:thymeleaf-layout-dialect:3.3.0'
|
||||
|
||||
// lombok
|
||||
compileOnly 'org.projectlombok:lombok'
|
||||
annotationProcessor 'org.projectlombok:lombok'
|
||||
|
||||
//mybatis
|
||||
implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:3.0.3'
|
||||
// implementation 'com.microsoft.sqlserver:mssql-jdbc:11.2.3.jre17'
|
||||
// runtimeOnly 'com.microsoft.sqlserver:mssql-jdbc'
|
||||
//runtimeOnly 'org.mariadb.jdbc:mariadb-java-client'
|
||||
implementation 'org.mariadb.jdbc:mariadb-java-client:3.3.2'
|
||||
|
||||
// AES
|
||||
implementation 'com.adobe.xmp:xmpcore:6.1.11'
|
||||
|
||||
// 로그
|
||||
implementation 'org.springframework.boot:spring-boot-starter-log4j2'
|
||||
|
||||
// HttpUtil
|
||||
implementation 'com.google.code.gson:gson:2.10.1'
|
||||
|
||||
// api 통신
|
||||
implementation 'org.apache.httpcomponents.client5:httpclient5:5.3'
|
||||
|
||||
//JSON
|
||||
implementation 'org.json:json:20231013'
|
||||
implementation 'com.googlecode.json-simple:json-simple:1.1.1'
|
||||
implementation 'org.apache.commons:commons-lang3:3.14.0'
|
||||
|
||||
// push 관련
|
||||
implementation 'com.google.api-client:google-api-client:2.7.0'
|
||||
|
||||
// POI
|
||||
implementation 'org.apache.poi:poi:5.2.5'
|
||||
implementation 'org.apache.poi:poi-ooxml:5.2.5'
|
||||
|
||||
// popbill
|
||||
implementation 'kr.co.linkhub:popbill-spring-boot-starter:1.14.3'
|
||||
|
||||
implementation 'com.squareup.okhttp3:okhttp:5.1.0'
|
||||
}
|
||||
|
||||
tasks.named('test') {
|
||||
useJUnitPlatform()
|
||||
}
|
||||
|
||||
tasks.register('madeu_diet_home') {
|
||||
group = 'com'
|
||||
description = 'Task description'
|
||||
doLast {
|
||||
// 실행할 코드
|
||||
}
|
||||
}
|
||||
BIN
gradle/wrapper/gradle-wrapper.jar
vendored
Normal file
BIN
gradle/wrapper/gradle-wrapper.jar
vendored
Normal file
Binary file not shown.
7
gradle/wrapper/gradle-wrapper.properties
vendored
Normal file
7
gradle/wrapper/gradle-wrapper.properties
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
distributionBase=GRADLE_USER_HOME
|
||||
distributionPath=wrapper/dists
|
||||
distributionUrl=https\://services.gradle.org/distributions/gradle-8.8-bin.zip
|
||||
networkTimeout=10000
|
||||
validateDistributionUrl=true
|
||||
zipStoreBase=GRADLE_USER_HOME
|
||||
zipStorePath=wrapper/dists
|
||||
249
gradlew
vendored
Normal file
249
gradlew
vendored
Normal file
@@ -0,0 +1,249 @@
|
||||
#!/bin/sh
|
||||
|
||||
#
|
||||
# Copyright © 2015-2021 the original authors.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# https://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
|
||||
##############################################################################
|
||||
#
|
||||
# Gradle start up script for POSIX generated by Gradle.
|
||||
#
|
||||
# Important for running:
|
||||
#
|
||||
# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is
|
||||
# noncompliant, but you have some other compliant shell such as ksh or
|
||||
# bash, then to run this script, type that shell name before the whole
|
||||
# command line, like:
|
||||
#
|
||||
# ksh Gradle
|
||||
#
|
||||
# Busybox and similar reduced shells will NOT work, because this script
|
||||
# requires all of these POSIX shell features:
|
||||
# * functions;
|
||||
# * expansions «$var», «${var}», «${var:-default}», «${var+SET}»,
|
||||
# «${var#prefix}», «${var%suffix}», and «$( cmd )»;
|
||||
# * compound commands having a testable exit status, especially «case»;
|
||||
# * various built-in commands including «command», «set», and «ulimit».
|
||||
#
|
||||
# Important for patching:
|
||||
#
|
||||
# (2) This script targets any POSIX shell, so it avoids extensions provided
|
||||
# by Bash, Ksh, etc; in particular arrays are avoided.
|
||||
#
|
||||
# The "traditional" practice of packing multiple parameters into a
|
||||
# space-separated string is a well documented source of bugs and security
|
||||
# problems, so this is (mostly) avoided, by progressively accumulating
|
||||
# options in "$@", and eventually passing that to Java.
|
||||
#
|
||||
# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS,
|
||||
# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly;
|
||||
# see the in-line comments for details.
|
||||
#
|
||||
# There are tweaks for specific operating systems such as AIX, CygWin,
|
||||
# Darwin, MinGW, and NonStop.
|
||||
#
|
||||
# (3) This script is generated from the Groovy template
|
||||
# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
|
||||
# within the Gradle project.
|
||||
#
|
||||
# You can find Gradle at https://github.com/gradle/gradle/.
|
||||
#
|
||||
##############################################################################
|
||||
|
||||
# Attempt to set APP_HOME
|
||||
|
||||
# Resolve links: $0 may be a link
|
||||
app_path=$0
|
||||
|
||||
# Need this for daisy-chained symlinks.
|
||||
while
|
||||
APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path
|
||||
[ -h "$app_path" ]
|
||||
do
|
||||
ls=$( ls -ld "$app_path" )
|
||||
link=${ls#*' -> '}
|
||||
case $link in #(
|
||||
/*) app_path=$link ;; #(
|
||||
*) app_path=$APP_HOME$link ;;
|
||||
esac
|
||||
done
|
||||
|
||||
# This is normally unused
|
||||
# shellcheck disable=SC2034
|
||||
APP_BASE_NAME=${0##*/}
|
||||
# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036)
|
||||
APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit
|
||||
|
||||
# Use the maximum available, or set MAX_FD != -1 to use that value.
|
||||
MAX_FD=maximum
|
||||
|
||||
warn () {
|
||||
echo "$*"
|
||||
} >&2
|
||||
|
||||
die () {
|
||||
echo
|
||||
echo "$*"
|
||||
echo
|
||||
exit 1
|
||||
} >&2
|
||||
|
||||
# OS specific support (must be 'true' or 'false').
|
||||
cygwin=false
|
||||
msys=false
|
||||
darwin=false
|
||||
nonstop=false
|
||||
case "$( uname )" in #(
|
||||
CYGWIN* ) cygwin=true ;; #(
|
||||
Darwin* ) darwin=true ;; #(
|
||||
MSYS* | MINGW* ) msys=true ;; #(
|
||||
NONSTOP* ) nonstop=true ;;
|
||||
esac
|
||||
|
||||
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
|
||||
|
||||
|
||||
# Determine the Java command to use to start the JVM.
|
||||
if [ -n "$JAVA_HOME" ] ; then
|
||||
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
|
||||
# IBM's JDK on AIX uses strange locations for the executables
|
||||
JAVACMD=$JAVA_HOME/jre/sh/java
|
||||
else
|
||||
JAVACMD=$JAVA_HOME/bin/java
|
||||
fi
|
||||
if [ ! -x "$JAVACMD" ] ; then
|
||||
die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
|
||||
|
||||
Please set the JAVA_HOME variable in your environment to match the
|
||||
location of your Java installation."
|
||||
fi
|
||||
else
|
||||
JAVACMD=java
|
||||
if ! command -v java >/dev/null 2>&1
|
||||
then
|
||||
die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
||||
|
||||
Please set the JAVA_HOME variable in your environment to match the
|
||||
location of your Java installation."
|
||||
fi
|
||||
fi
|
||||
|
||||
# Increase the maximum file descriptors if we can.
|
||||
if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
|
||||
case $MAX_FD in #(
|
||||
max*)
|
||||
# In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked.
|
||||
# shellcheck disable=SC2039,SC3045
|
||||
MAX_FD=$( ulimit -H -n ) ||
|
||||
warn "Could not query maximum file descriptor limit"
|
||||
esac
|
||||
case $MAX_FD in #(
|
||||
'' | soft) :;; #(
|
||||
*)
|
||||
# In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked.
|
||||
# shellcheck disable=SC2039,SC3045
|
||||
ulimit -n "$MAX_FD" ||
|
||||
warn "Could not set maximum file descriptor limit to $MAX_FD"
|
||||
esac
|
||||
fi
|
||||
|
||||
# Collect all arguments for the java command, stacking in reverse order:
|
||||
# * args from the command line
|
||||
# * the main class name
|
||||
# * -classpath
|
||||
# * -D...appname settings
|
||||
# * --module-path (only if needed)
|
||||
# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables.
|
||||
|
||||
# For Cygwin or MSYS, switch paths to Windows format before running java
|
||||
if "$cygwin" || "$msys" ; then
|
||||
APP_HOME=$( cygpath --path --mixed "$APP_HOME" )
|
||||
CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" )
|
||||
|
||||
JAVACMD=$( cygpath --unix "$JAVACMD" )
|
||||
|
||||
# Now convert the arguments - kludge to limit ourselves to /bin/sh
|
||||
for arg do
|
||||
if
|
||||
case $arg in #(
|
||||
-*) false ;; # don't mess with options #(
|
||||
/?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath
|
||||
[ -e "$t" ] ;; #(
|
||||
*) false ;;
|
||||
esac
|
||||
then
|
||||
arg=$( cygpath --path --ignore --mixed "$arg" )
|
||||
fi
|
||||
# Roll the args list around exactly as many times as the number of
|
||||
# args, so each arg winds up back in the position where it started, but
|
||||
# possibly modified.
|
||||
#
|
||||
# NB: a `for` loop captures its iteration list before it begins, so
|
||||
# changing the positional parameters here affects neither the number of
|
||||
# iterations, nor the values presented in `arg`.
|
||||
shift # remove old arg
|
||||
set -- "$@" "$arg" # push replacement arg
|
||||
done
|
||||
fi
|
||||
|
||||
|
||||
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
||||
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
|
||||
|
||||
# Collect all arguments for the java command:
|
||||
# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments,
|
||||
# and any embedded shellness will be escaped.
|
||||
# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be
|
||||
# treated as '${Hostname}' itself on the command line.
|
||||
|
||||
set -- \
|
||||
"-Dorg.gradle.appname=$APP_BASE_NAME" \
|
||||
-classpath "$CLASSPATH" \
|
||||
org.gradle.wrapper.GradleWrapperMain \
|
||||
"$@"
|
||||
|
||||
# Stop when "xargs" is not available.
|
||||
if ! command -v xargs >/dev/null 2>&1
|
||||
then
|
||||
die "xargs is not available"
|
||||
fi
|
||||
|
||||
# Use "xargs" to parse quoted args.
|
||||
#
|
||||
# With -n1 it outputs one arg per line, with the quotes and backslashes removed.
|
||||
#
|
||||
# In Bash we could simply go:
|
||||
#
|
||||
# readarray ARGS < <( xargs -n1 <<<"$var" ) &&
|
||||
# set -- "${ARGS[@]}" "$@"
|
||||
#
|
||||
# but POSIX shell has neither arrays nor command substitution, so instead we
|
||||
# post-process each arg (as a line of input to sed) to backslash-escape any
|
||||
# character that might be a shell metacharacter, then use eval to reverse
|
||||
# that process (while maintaining the separation between arguments), and wrap
|
||||
# the whole thing up as a single "set" statement.
|
||||
#
|
||||
# This will of course break if any of these variables contains a newline or
|
||||
# an unmatched quote.
|
||||
#
|
||||
|
||||
eval "set -- $(
|
||||
printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" |
|
||||
xargs -n1 |
|
||||
sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' |
|
||||
tr '\n' ' '
|
||||
)" '"$@"'
|
||||
|
||||
exec "$JAVACMD" "$@"
|
||||
92
gradlew.bat
vendored
Normal file
92
gradlew.bat
vendored
Normal file
@@ -0,0 +1,92 @@
|
||||
@rem
|
||||
@rem Copyright 2015 the original author or authors.
|
||||
@rem
|
||||
@rem Licensed under the Apache License, Version 2.0 (the "License");
|
||||
@rem you may not use this file except in compliance with the License.
|
||||
@rem You may obtain a copy of the License at
|
||||
@rem
|
||||
@rem https://www.apache.org/licenses/LICENSE-2.0
|
||||
@rem
|
||||
@rem Unless required by applicable law or agreed to in writing, software
|
||||
@rem distributed under the License is distributed on an "AS IS" BASIS,
|
||||
@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
@rem See the License for the specific language governing permissions and
|
||||
@rem limitations under the License.
|
||||
@rem
|
||||
|
||||
@if "%DEBUG%"=="" @echo off
|
||||
@rem ##########################################################################
|
||||
@rem
|
||||
@rem Gradle startup script for Windows
|
||||
@rem
|
||||
@rem ##########################################################################
|
||||
|
||||
@rem Set local scope for the variables with windows NT shell
|
||||
if "%OS%"=="Windows_NT" setlocal
|
||||
|
||||
set DIRNAME=%~dp0
|
||||
if "%DIRNAME%"=="" set DIRNAME=.
|
||||
@rem This is normally unused
|
||||
set APP_BASE_NAME=%~n0
|
||||
set APP_HOME=%DIRNAME%
|
||||
|
||||
@rem Resolve any "." and ".." in APP_HOME to make it shorter.
|
||||
for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
|
||||
|
||||
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
||||
set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
|
||||
|
||||
@rem Find java.exe
|
||||
if defined JAVA_HOME goto findJavaFromJavaHome
|
||||
|
||||
set JAVA_EXE=java.exe
|
||||
%JAVA_EXE% -version >NUL 2>&1
|
||||
if %ERRORLEVEL% equ 0 goto execute
|
||||
|
||||
echo. 1>&2
|
||||
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2
|
||||
echo. 1>&2
|
||||
echo Please set the JAVA_HOME variable in your environment to match the 1>&2
|
||||
echo location of your Java installation. 1>&2
|
||||
|
||||
goto fail
|
||||
|
||||
:findJavaFromJavaHome
|
||||
set JAVA_HOME=%JAVA_HOME:"=%
|
||||
set JAVA_EXE=%JAVA_HOME%/bin/java.exe
|
||||
|
||||
if exist "%JAVA_EXE%" goto execute
|
||||
|
||||
echo. 1>&2
|
||||
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2
|
||||
echo. 1>&2
|
||||
echo Please set the JAVA_HOME variable in your environment to match the 1>&2
|
||||
echo location of your Java installation. 1>&2
|
||||
|
||||
goto fail
|
||||
|
||||
:execute
|
||||
@rem Setup the command line
|
||||
|
||||
set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
|
||||
|
||||
|
||||
@rem Execute Gradle
|
||||
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
|
||||
|
||||
:end
|
||||
@rem End local scope for the variables with windows NT shell
|
||||
if %ERRORLEVEL% equ 0 goto mainEnd
|
||||
|
||||
:fail
|
||||
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
|
||||
rem the _cmd.exe /c_ return code!
|
||||
set EXIT_CODE=%ERRORLEVEL%
|
||||
if %EXIT_CODE% equ 0 set EXIT_CODE=1
|
||||
if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE%
|
||||
exit /b %EXIT_CODE%
|
||||
|
||||
:mainEnd
|
||||
if "%OS%"=="Windows_NT" endlocal
|
||||
|
||||
:omega
|
||||
1
settings.gradle
Normal file
1
settings.gradle
Normal file
@@ -0,0 +1 @@
|
||||
rootProject.name = 'madeu_diet_home'
|
||||
13
src/main/java/com/madeuhome/MadeuHomeApplication.java
Normal file
13
src/main/java/com/madeuhome/MadeuHomeApplication.java
Normal file
@@ -0,0 +1,13 @@
|
||||
package com.madeuhome;
|
||||
|
||||
import org.springframework.boot.SpringApplication;
|
||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
|
||||
@SpringBootApplication
|
||||
public class MadeuHomeApplication {
|
||||
|
||||
public static void main(String[] args) {
|
||||
SpringApplication.run(MadeuHomeApplication.class, args);
|
||||
}
|
||||
|
||||
}
|
||||
13
src/main/java/com/madeuhome/ServletInitializer.java
Normal file
13
src/main/java/com/madeuhome/ServletInitializer.java
Normal file
@@ -0,0 +1,13 @@
|
||||
package com.madeuhome;
|
||||
|
||||
import org.springframework.boot.builder.SpringApplicationBuilder;
|
||||
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
|
||||
|
||||
public class ServletInitializer extends SpringBootServletInitializer {
|
||||
|
||||
@Override
|
||||
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
|
||||
return application.sources(MadeuHomeApplication.class);
|
||||
}
|
||||
|
||||
}
|
||||
35
src/main/java/com/madeuhome/common/ctrl/MenuController.java
Normal file
35
src/main/java/com/madeuhome/common/ctrl/MenuController.java
Normal file
@@ -0,0 +1,35 @@
|
||||
package com.madeuhome.common.ctrl;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.ControllerAdvice;
|
||||
import org.springframework.web.bind.annotation.ModelAttribute;
|
||||
|
||||
import com.madeuhome.common.dto.MenuDto;
|
||||
import com.madeuhome.common.svc.MenuService;
|
||||
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
|
||||
@ControllerAdvice
|
||||
public class MenuController {
|
||||
|
||||
@Autowired
|
||||
private MenuService menuService;
|
||||
|
||||
// 메인 페이지에서 메뉴 데이터를 모델에 추가
|
||||
@ModelAttribute("menuList")
|
||||
public List<MenuDto> getMenu(HttpServletRequest request) {
|
||||
String requestURI = request.getRequestURI();
|
||||
|
||||
// 특정 URL 패턴에만 메뉴 추가
|
||||
if (requestURI.endsWith("Intro.do") || requestURI.startsWith("/index") ) {
|
||||
return menuService.getMenuHierarchy("MAIN");
|
||||
}
|
||||
|
||||
|
||||
return new ArrayList<>();
|
||||
}
|
||||
|
||||
}
|
||||
47
src/main/java/com/madeuhome/common/dto/MenuDto.java
Normal file
47
src/main/java/com/madeuhome/common/dto/MenuDto.java
Normal file
@@ -0,0 +1,47 @@
|
||||
package com.madeuhome.common.dto;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
@Data
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Builder
|
||||
public class MenuDto {
|
||||
|
||||
private Integer menuId;
|
||||
private String siteCd;
|
||||
private Integer upperMenuId;
|
||||
private String menuName;
|
||||
private String menuUrl;
|
||||
private Integer menuOrder;
|
||||
private Integer menuDepth;
|
||||
private String useYn;
|
||||
private String regUser;
|
||||
private LocalDateTime regDate;
|
||||
private String modUser;
|
||||
private LocalDateTime modDate;
|
||||
|
||||
// 계층구조를 위한 추가 필드
|
||||
@Builder.Default
|
||||
private List<MenuDto> children = new ArrayList<>();
|
||||
|
||||
// 편의 메서드 추가
|
||||
public boolean hasChildren() {
|
||||
return children != null && !children.isEmpty();
|
||||
}
|
||||
|
||||
public boolean isRootMenu() {
|
||||
return upperMenuId == null || upperMenuId == 0;
|
||||
}
|
||||
|
||||
public boolean isActive() {
|
||||
return "Y".equals(useYn);
|
||||
}
|
||||
}
|
||||
13
src/main/java/com/madeuhome/common/mapper/MenuMapper.java
Normal file
13
src/main/java/com/madeuhome/common/mapper/MenuMapper.java
Normal file
@@ -0,0 +1,13 @@
|
||||
package com.madeuhome.common.mapper;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
||||
import com.madeuhome.common.dto.MenuDto;
|
||||
|
||||
@Mapper
|
||||
public interface MenuMapper {
|
||||
List<MenuDto> selectAllMenus(@Param("siteCode") String siteCode);
|
||||
}
|
||||
9
src/main/java/com/madeuhome/common/svc/MenuService.java
Normal file
9
src/main/java/com/madeuhome/common/svc/MenuService.java
Normal file
@@ -0,0 +1,9 @@
|
||||
package com.madeuhome.common.svc;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.madeuhome.common.dto.MenuDto;
|
||||
|
||||
public interface MenuService {
|
||||
public List<MenuDto> getMenuHierarchy(String siteCode);
|
||||
}
|
||||
@@ -0,0 +1,64 @@
|
||||
package com.madeuhome.common.svc.impl;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Comparator;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import com.madeuhome.common.dto.MenuDto;
|
||||
import com.madeuhome.common.mapper.MenuMapper;
|
||||
import com.madeuhome.common.svc.MenuService;
|
||||
|
||||
@Service
|
||||
public class MenuServiceImpl implements MenuService {
|
||||
|
||||
@Autowired
|
||||
private MenuMapper menuMapper;
|
||||
|
||||
public List<MenuDto> getMenuHierarchy(String siteCode) {
|
||||
// DB에서 모든 메뉴 조회
|
||||
List<MenuDto> allMenus = menuMapper.selectAllMenus(siteCode);
|
||||
|
||||
// 계층구조로 변환
|
||||
return buildMenuTree(allMenus);
|
||||
}
|
||||
|
||||
private List<MenuDto> buildMenuTree(List<MenuDto> allMenus) {
|
||||
Map<Integer, MenuDto> menuMap = new HashMap<>();
|
||||
List<MenuDto> rootMenus = new ArrayList<>();
|
||||
|
||||
// 1단계: 모든 메뉴를 맵에 저장하고 children 리스트 초기화
|
||||
for (MenuDto menu : allMenus) {
|
||||
menu.setChildren(new ArrayList<>());
|
||||
menuMap.put(menu.getMenuId(), menu);
|
||||
}
|
||||
|
||||
// 2단계: 부모-자식 관계 설정
|
||||
for (MenuDto menu : allMenus) {
|
||||
if (menu.getUpperMenuId() == null || menu.getUpperMenuId() == 0) {
|
||||
// 최상위 메뉴
|
||||
rootMenus.add(menu);
|
||||
} else {
|
||||
// 하위 메뉴
|
||||
MenuDto parent = menuMap.get(menu.getUpperMenuId());
|
||||
if (parent != null) {
|
||||
parent.getChildren().add(menu);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 메뉴 순서대로 정렬
|
||||
rootMenus.sort(Comparator.comparing(MenuDto::getMenuOrder));
|
||||
rootMenus.forEach(menu -> {
|
||||
if (menu.getChildren() != null) {
|
||||
menu.getChildren().sort(Comparator.comparing(MenuDto::getMenuOrder));
|
||||
}
|
||||
});
|
||||
|
||||
return rootMenus;
|
||||
}
|
||||
}
|
||||
47
src/main/java/com/madeuhome/config/DatabaseConfig.java
Normal file
47
src/main/java/com/madeuhome/config/DatabaseConfig.java
Normal file
@@ -0,0 +1,47 @@
|
||||
package com.madeuhome.config;
|
||||
|
||||
import com.zaxxer.hikari.HikariDataSource;
|
||||
import org.apache.ibatis.session.SqlSessionFactory;
|
||||
import org.mybatis.spring.SqlSessionFactoryBean;
|
||||
import org.mybatis.spring.SqlSessionTemplate;
|
||||
import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||
import org.springframework.boot.jdbc.DataSourceBuilder;
|
||||
import org.springframework.context.ApplicationContext;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
|
||||
|
||||
import javax.sql.DataSource;
|
||||
|
||||
@Configuration
|
||||
public class DatabaseConfig {
|
||||
|
||||
@Bean
|
||||
@ConfigurationProperties(prefix = "spring.datasource.hikari")
|
||||
public DataSource dataSource(){
|
||||
return DataSourceBuilder.create()
|
||||
.type(HikariDataSource.class)
|
||||
.build();
|
||||
}
|
||||
|
||||
@Bean
|
||||
public SqlSessionFactory sqlSessionFactory(DataSource dataSource, ApplicationContext applicationContext) throws Exception{
|
||||
|
||||
SqlSessionFactoryBean factoryBean = new SqlSessionFactoryBean();
|
||||
factoryBean.setDataSource(dataSource);
|
||||
factoryBean.setMapperLocations(applicationContext.getResources("classpath:/mappers/**/*.xml"));
|
||||
|
||||
return factoryBean.getObject();
|
||||
}
|
||||
|
||||
@Bean
|
||||
public SqlSessionTemplate sqlSessionTemplate(SqlSessionFactory sqlSessionFactory){
|
||||
return new SqlSessionTemplate(sqlSessionFactory);
|
||||
}
|
||||
|
||||
@Bean
|
||||
public DataSourceTransactionManager transactionManager(DataSource dataSource) {
|
||||
return new DataSourceTransactionManager(dataSource);
|
||||
}
|
||||
|
||||
}
|
||||
22
src/main/java/com/madeuhome/config/SchedulerConfig.java
Normal file
22
src/main/java/com/madeuhome/config/SchedulerConfig.java
Normal file
@@ -0,0 +1,22 @@
|
||||
package com.madeuhome.config;
|
||||
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
import org.springframework.scheduling.annotation.SchedulingConfigurer;
|
||||
import org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler;
|
||||
import org.springframework.scheduling.config.ScheduledTaskRegistrar;
|
||||
|
||||
@Configuration
|
||||
public class SchedulerConfig implements SchedulingConfigurer {
|
||||
private final int POOL_SIZE = 10;
|
||||
|
||||
@Override
|
||||
public void configureTasks(ScheduledTaskRegistrar scheduledTaskRegistrar) {
|
||||
ThreadPoolTaskScheduler threadPoolTaskScheduler = new ThreadPoolTaskScheduler();
|
||||
|
||||
threadPoolTaskScheduler.setPoolSize(POOL_SIZE);
|
||||
threadPoolTaskScheduler.setThreadNamePrefix("my-scheduled-task-pool-");
|
||||
threadPoolTaskScheduler.initialize();
|
||||
|
||||
scheduledTaskRegistrar.setTaskScheduler(threadPoolTaskScheduler);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
package com.madeuhome.config;
|
||||
|
||||
import nz.net.ultraq.thymeleaf.layoutdialect.LayoutDialect;
|
||||
import org.springframework.context.annotation.Bean;
|
||||
import org.springframework.context.annotation.Configuration;
|
||||
|
||||
@Configuration
|
||||
public class ThymeleafLayoutConfig {
|
||||
|
||||
@Bean
|
||||
public LayoutDialect layoutDialect() {
|
||||
return new LayoutDialect();
|
||||
}
|
||||
}
|
||||
42
src/main/java/com/madeuhome/constants/Constants.java
Normal file
42
src/main/java/com/madeuhome/constants/Constants.java
Normal file
@@ -0,0 +1,42 @@
|
||||
package com.madeuhome.constants;
|
||||
|
||||
public interface Constants {
|
||||
|
||||
static final public String OK = "0";
|
||||
static final public String OK_ONE = "1";
|
||||
static final public String FAIL = "-1";
|
||||
static final public String FAIL_ACCOUNT_NULL = "-2";
|
||||
|
||||
|
||||
|
||||
//배송관련
|
||||
static final public String SEARCH_OK = "20000"; //완료
|
||||
static final public String SEARCH_NONE = "20001"; //검색 결과 없음
|
||||
|
||||
|
||||
static final public String SEARCH_COMPANY_CODE = "30000"; //회사 코드 값
|
||||
static final public String SEARCH_COMPANY = "30001"; //회사
|
||||
static final public String SEARCH_COMPANY_IP = "30002"; //회사 IP 허용이 아님
|
||||
|
||||
static final public String SEARCH_COUNT_MAX = "40000"; //최대 검색 수량
|
||||
static final public String SEARCH_DATA = "40001"; //필수 데이터 누락
|
||||
static final public String SEARCH_DATA_MAX = "40002"; //데이터 자리수 초과
|
||||
static final public String INSERT_MAX = "40003"; //최대 등록 건수 초과
|
||||
static final public String INSERT_SAME = "40004"; //중복 데이터
|
||||
|
||||
static final public String PARAM_DATA = "40005"; //파라미터 데이터 누락
|
||||
|
||||
// EBS API 관련
|
||||
static final public String API_KEY_NONE = "401"; // API KEY 정보가 없습니다.
|
||||
static final public String API_KEY_UNEQUAL = "402"; // API KEY 정보가 일치하지 않습니다.
|
||||
static final public String EBS_ID_NONE = "403"; // 초등온 회원의 암호화키 정보가 없습니다.
|
||||
static final public String SEARCH_MONTH_NONE = "404"; // 검색 월 정보가 없습니다.
|
||||
static final public String CONTENT_TYPE_NONE = "405"; // 과목 정보가 없습니다.
|
||||
static final public String USER_TYPE_NONE = "406"; // 사용자 타입 정보가 없습니다.
|
||||
static final public String START_DATE_NONE = "407"; // 서비스 시작일 정보가 없습니다.
|
||||
static final public String END_DATE_NONE = "408"; // 서비스 종료일 정보가 없습니다.
|
||||
static final public String USER_SAME = "409"; // 이미 등록되어 있는 사용자입니다.
|
||||
static final public String EBS_ID_UNEQUAL = "410"; // 사용자 정보가 없습니다.
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,49 @@
|
||||
package com.madeuhome.controller.web.webaccept;
|
||||
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
|
||||
import com.madeuhome.init.ManagerDraftAction;
|
||||
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
import jakarta.servlet.http.HttpSession;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
|
||||
@Slf4j
|
||||
@Controller
|
||||
public class WebAcceptController extends ManagerDraftAction{
|
||||
|
||||
/**
|
||||
* 개인정보처리방침 화면으로 이동.
|
||||
*
|
||||
* @param request
|
||||
* @param response
|
||||
* @return
|
||||
*/
|
||||
@RequestMapping(value="/webaccept/acceptPrivacy.do")
|
||||
public String selectWebAcceptPrivacy(HttpSession session,HttpServletRequest request) {
|
||||
|
||||
log.debug("WebAcceptController selectWebAcceptPrivacy START");
|
||||
|
||||
log.debug("WebAcceptController selectWebAcceptPrivacy END");
|
||||
return "/web/accept/acceptPrivacy";
|
||||
}
|
||||
|
||||
/**
|
||||
* 사이트 이용약관 화면으로 이동.
|
||||
*
|
||||
* @param request
|
||||
* @param response
|
||||
* @return
|
||||
*/
|
||||
@RequestMapping(value="/webaccept/acceptSite.do")
|
||||
public String selectWebAcceptSite(HttpSession session,HttpServletRequest request) {
|
||||
|
||||
log.debug("WebAcceptController selectWebAcceptSite START");
|
||||
|
||||
log.debug("WebAcceptController selectWebAcceptSite END");
|
||||
return "/web/accept/acceptSite";
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,62 @@
|
||||
package com.madeuhome.controller.web.webdiet;
|
||||
|
||||
import com.madeuhome.init.ManagerDraftAction;
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
import jakarta.servlet.http.HttpSession;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
|
||||
|
||||
@Slf4j
|
||||
@Controller
|
||||
public class WebDietController extends ManagerDraftAction{
|
||||
|
||||
/**
|
||||
* 다이어트 주사 화면으로 이동.
|
||||
*
|
||||
* @param request
|
||||
* @param response
|
||||
* @return
|
||||
*/
|
||||
@RequestMapping(value="/webdiet/selectDietInjectionIntro.do")
|
||||
public String selectDietInjectionIntro(HttpSession session,HttpServletRequest request) {
|
||||
|
||||
log.debug("WebDietController selectDietInjectionIntro START");
|
||||
|
||||
log.debug("WebDietController selectDietInjectionIntro END");
|
||||
return "/web/service/serviceInfo";
|
||||
}
|
||||
|
||||
/**
|
||||
* 다이어트 레이저 화면으로 이동.
|
||||
*
|
||||
* @param request
|
||||
* @param response
|
||||
* @return
|
||||
*/
|
||||
@RequestMapping(value="/webdiet/selectDietLaserIntro.do")
|
||||
public String selectDietLaserIntro(HttpSession session,HttpServletRequest request) {
|
||||
|
||||
log.debug("WebDietController selectDietLaserIntro START");
|
||||
|
||||
log.debug("WebDietController selectDietLaserIntro END");
|
||||
return "/web/diet/dietLaserSelect";
|
||||
}
|
||||
|
||||
/**
|
||||
* 다이어트 수액 화면으로 이동.
|
||||
*
|
||||
* @param request
|
||||
* @param response
|
||||
* @return
|
||||
*/
|
||||
@RequestMapping(value="/webdiet/selectDietSapIntro.do")
|
||||
public String selectDietSapIntro(HttpSession session,HttpServletRequest request) {
|
||||
|
||||
log.debug("WebDietController selectDietSapIntro START");
|
||||
|
||||
log.debug("WebDietController selectDietSapIntro END");
|
||||
return "/web/diet/dietSapSelect";
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,495 @@
|
||||
package com.madeuhome.controller.web.webevent;
|
||||
|
||||
import com.madeuhome.constants.Constants;
|
||||
import com.madeuhome.init.ManagerDraftAction;
|
||||
import com.madeuhome.service.common.loghistory.LogHistoryService;
|
||||
import com.madeuhome.service.web.webevent.WebEventService;
|
||||
import com.madeuhome.util.HttpUtil;
|
||||
import com.madeuhome.util.RequestLogUtil;
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import jakarta.servlet.http.HttpSession;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.ui.Model;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
||||
|
||||
@Slf4j
|
||||
@Controller
|
||||
public class WebEventController extends ManagerDraftAction{
|
||||
|
||||
@Autowired
|
||||
private WebEventService webEventService;
|
||||
|
||||
@Autowired
|
||||
private LogHistoryService logHistoryService;
|
||||
|
||||
/**
|
||||
* 이벤트 리스트 화면으로 이동.
|
||||
*
|
||||
* @param request
|
||||
* @param response
|
||||
* @return
|
||||
*/
|
||||
@RequestMapping(value="/webevent/selectListWebEventIntro.do")
|
||||
public String selectListWebEventIntro(HttpSession session,HttpServletRequest request) {
|
||||
|
||||
log.debug("WebEventController selectListWebEventIntro START");
|
||||
|
||||
log.debug("WebEventController selectListWebEventIntro END");
|
||||
return "/web/webevent/webEventSelectList";
|
||||
}
|
||||
|
||||
/**
|
||||
* 이벤트 카테고리 목록 조회
|
||||
*
|
||||
* @param request
|
||||
* @param response
|
||||
* @return
|
||||
*/
|
||||
@RequestMapping(value="/webevent/selectListWebEvent.do")
|
||||
public ModelAndView selectListWebEvent(HttpSession session,HttpServletRequest request, HttpServletResponse response) {
|
||||
|
||||
log.debug("WebEventController selectListWebEvent START");
|
||||
|
||||
HashMap<String, Object> paramMap = HttpUtil.getParameterMap(request);
|
||||
HashMap<String, Object> map = new HashMap<String, Object>();
|
||||
StringBuffer errorMsg = new StringBuffer();
|
||||
|
||||
try{
|
||||
map = webEventService.selectListWebEvent(paramMap);
|
||||
log.debug(map + "");
|
||||
}catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
errorMsg.append(e);
|
||||
return null;
|
||||
}finally {
|
||||
if(Constants.OK == map.get("msgCode")) {
|
||||
|
||||
}else{
|
||||
if(null == map.get("msgCode") || ("").equals(map.get("msgCode"))) {
|
||||
map.put("msgCode", Constants.FAIL);
|
||||
}
|
||||
|
||||
map.put("success", false);
|
||||
if(null == map.get("msgDesc") || ("").equals(map.get("msgDesc"))) {
|
||||
map.put("msgDesc","정상적으로 수행되지 않았습니다. 관리자에게 문의하시기 바랍니다. (E0029)");
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
HashMap<String, Object> visitLogParamMap = RequestLogUtil.getVisitLogParameterMap(request);
|
||||
HashMap<String, Object> insertMap = new HashMap<String, Object>();
|
||||
|
||||
insertMap.put("url", "/webevent/selectListWebEvent.do");
|
||||
insertMap.put("func", "selectListCategory");
|
||||
insertMap.put("funcName", "이벤트 리스트 조회");
|
||||
insertMap.put("service", "webEventService");
|
||||
insertMap.put("serviceName", "이벤트");
|
||||
insertMap.put("requestValue", String.valueOf(paramMap));
|
||||
insertMap.put("responseValue", String.valueOf(map));
|
||||
;
|
||||
if(("true").equals(String.valueOf(map.get("success")))){
|
||||
insertMap.put("resultCode", "SUCCESS");
|
||||
}else{
|
||||
insertMap.put("resultCode", "ERROR");
|
||||
}
|
||||
|
||||
insertMap.put("resultMsg", String.valueOf(errorMsg));
|
||||
insertMap.put("muMemberId", paramMap.get("muMemberId"));
|
||||
|
||||
// logHistoryService.insertLogHistory(insertMap, visitLogParamMap);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
log.debug("WebEventController selectListWebEvent END");
|
||||
|
||||
|
||||
return HttpUtil.makeHashToJsonModelAndView(map);
|
||||
}
|
||||
|
||||
/**
|
||||
* 이벤트 별 항목 목록 조회
|
||||
*
|
||||
* @param request
|
||||
* @param response
|
||||
* @return
|
||||
*/
|
||||
@RequestMapping(value="/webevent/selectListEvent.do")
|
||||
public ModelAndView selectListEvent(HttpSession session,HttpServletRequest request, HttpServletResponse response) {
|
||||
|
||||
log.debug("WebEventController selectListEvent START");
|
||||
|
||||
HashMap<String, Object> paramMap = HttpUtil.getParameterMap(request);
|
||||
HashMap<String, Object> map = new HashMap<String, Object>();
|
||||
StringBuffer errorMsg = new StringBuffer();
|
||||
|
||||
try{
|
||||
map = webEventService.selectListEvent(paramMap);
|
||||
log.debug(map + "");
|
||||
}catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
errorMsg.append(e);
|
||||
return null;
|
||||
}finally {
|
||||
if(Constants.OK == map.get("msgCode")) {
|
||||
|
||||
}else{
|
||||
if(null == map.get("msgCode") || ("").equals(map.get("msgCode"))) {
|
||||
map.put("msgCode", Constants.FAIL);
|
||||
}
|
||||
|
||||
map.put("success", false);
|
||||
if(null == map.get("msgDesc") || ("").equals(map.get("msgDesc"))) {
|
||||
map.put("msgDesc","정상적으로 수행되지 않았습니다. 관리자에게 문의하시기 바랍니다. (E0029)");
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
HashMap<String, Object> visitLogParamMap = RequestLogUtil.getVisitLogParameterMap(request);
|
||||
HashMap<String, Object> insertMap = new HashMap<String, Object>();
|
||||
|
||||
insertMap.put("url", "/webevent/selectListEvent.do");
|
||||
insertMap.put("func", "selectListEvent");
|
||||
insertMap.put("funcName", "이벤트 리스트 조회");
|
||||
insertMap.put("service", "webEventService");
|
||||
insertMap.put("serviceName", "이벤트");
|
||||
insertMap.put("requestValue", String.valueOf(paramMap));
|
||||
insertMap.put("responseValue", String.valueOf(map));
|
||||
;
|
||||
if(("true").equals(String.valueOf(map.get("success")))){
|
||||
insertMap.put("resultCode", "SUCCESS");
|
||||
}else{
|
||||
insertMap.put("resultCode", "ERROR");
|
||||
}
|
||||
|
||||
insertMap.put("resultMsg", String.valueOf(errorMsg));
|
||||
|
||||
// logHistoryService.insertLogHistory(insertMap, visitLogParamMap);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
log.debug("WebEventController selectListEvent END");
|
||||
|
||||
|
||||
return HttpUtil.makeHashToJsonModelAndView(map);
|
||||
}
|
||||
|
||||
/**
|
||||
* 이벤트 안내 상세로 이동.
|
||||
*
|
||||
* @param request
|
||||
* @param response
|
||||
* @return
|
||||
*/
|
||||
@RequestMapping(value="/webevent/selectEventDetailIntro.do")
|
||||
public String selectEventDetailIntro(HttpSession session, HttpServletRequest request, Model model) {
|
||||
|
||||
log.debug("WebEventController selectEventDetailIntro START");
|
||||
HashMap<String, Object> paramMap = HttpUtil.getParameterMap(request);
|
||||
model.addAttribute("CATEGORY_DIV_CD", paramMap.get("CATEGORY_DIV_CD"));
|
||||
model.addAttribute("CATEGORY_NO", paramMap.get("CATEGORY_NO"));
|
||||
model.addAttribute("POST_NO", paramMap.get("POST_NO"));
|
||||
log.debug("WebEventController selectEventDetailIntro END");
|
||||
|
||||
return "/web/webevent/webEventSelect";
|
||||
}
|
||||
|
||||
/**
|
||||
* 이벤트 안내 목록 상세 조회
|
||||
*
|
||||
* @param request
|
||||
* @param response
|
||||
* @return
|
||||
*/
|
||||
@RequestMapping(value="/webevent/selectEventDetail.do")
|
||||
public ModelAndView selectEventDetail(HttpSession session, HttpServletRequest request, HttpServletResponse response) {
|
||||
|
||||
log.debug("WebEventController selectEventDetail START");
|
||||
|
||||
HashMap<String, Object> paramMap = HttpUtil.getParameterMap(request);
|
||||
HashMap<String, Object> map = new HashMap<String, Object>();
|
||||
StringBuffer errorMsg = new StringBuffer();
|
||||
|
||||
try{
|
||||
map = webEventService.selectEventDetail(paramMap);
|
||||
log.debug(map + "");
|
||||
}catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
errorMsg.append(e);
|
||||
return null;
|
||||
}finally {
|
||||
if(Constants.OK == map.get("msgCode")) {
|
||||
|
||||
}else{
|
||||
if(null == map.get("msgCode") || ("").equals(map.get("msgCode"))) {
|
||||
map.put("msgCode", Constants.FAIL);
|
||||
}
|
||||
|
||||
map.put("success", false);
|
||||
if(null == map.get("msgDesc") || ("").equals(map.get("msgDesc"))) {
|
||||
map.put("msgDesc","정상적으로 수행되지 않았습니다. 관리자에게 문의하시기 바랍니다. (E0029)");
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
HashMap<String, Object> visitLogParamMap = RequestLogUtil.getVisitLogParameterMap(request);
|
||||
HashMap<String, Object> insertMap = new HashMap<String, Object>();
|
||||
|
||||
insertMap.put("url", "/webevent/selectEventDetail.do");
|
||||
insertMap.put("func", "selectEventDetail");
|
||||
insertMap.put("funcName", "이벤트 상세 조회");
|
||||
insertMap.put("service", "webEventService");
|
||||
insertMap.put("serviceName", "이벤트 상세");
|
||||
insertMap.put("requestValue", String.valueOf(paramMap));
|
||||
insertMap.put("responseValue", String.valueOf(map));
|
||||
;
|
||||
if(("true").equals(String.valueOf(map.get("success")))){
|
||||
insertMap.put("resultCode", "SUCCESS");
|
||||
}else{
|
||||
insertMap.put("resultCode", "ERROR");
|
||||
}
|
||||
|
||||
insertMap.put("resultMsg", String.valueOf(errorMsg));
|
||||
|
||||
// logHistoryService.insertLogHistory(insertMap, visitLogParamMap);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
log.debug("WebEventController selectEventDetail END");
|
||||
|
||||
|
||||
return HttpUtil.makeHashToJsonModelAndView(map);
|
||||
}
|
||||
|
||||
@RequestMapping(value="/webevent/selectMakeReservation.do")
|
||||
public String selectMakeReservation(HttpSession session, HttpServletRequest request, Model model) {
|
||||
|
||||
log.debug("WebServiceController selectMakeReservation START");
|
||||
HashMap<String, Object> paramMap = HttpUtil.getParameterMap(request);
|
||||
model.addAttribute("CATEGORY_DIV_CD", paramMap.get("CATEGORY_DIV_CD"));
|
||||
model.addAttribute("CATEGORY_NO", paramMap.get("CATEGORY_NO"));
|
||||
model.addAttribute("POST_NO", paramMap.get("POST_NO"));
|
||||
model.addAttribute("PROCEDURE_ID", paramMap.get("PROCEDURE_ID"));
|
||||
|
||||
log.debug("WebServiceController selectMakeReservation END");
|
||||
|
||||
return "/web/webevent/makeReservation";
|
||||
}
|
||||
|
||||
/**
|
||||
* 시술 목록 상세 조회
|
||||
*
|
||||
* @param request
|
||||
* @param response
|
||||
* @return
|
||||
*/
|
||||
@RequestMapping(value="/webevent/selectReservation.do")
|
||||
public ModelAndView selectReservation(HttpSession session, HttpServletRequest request, HttpServletResponse response) {
|
||||
|
||||
log.debug("WebServiceController selectReservation START");
|
||||
|
||||
HashMap<String, Object> paramMap = HttpUtil.getParameterMap(request);
|
||||
HashMap<String, Object> map = new HashMap<String, Object>();
|
||||
StringBuffer errorMsg = new StringBuffer();
|
||||
|
||||
try{
|
||||
map = webEventService.selectReservation(paramMap);
|
||||
}catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
errorMsg.append(e);
|
||||
return null;
|
||||
}finally {
|
||||
if(Constants.OK == map.get("msgCode")) {
|
||||
|
||||
}else{
|
||||
if(null == map.get("msgCode") || ("").equals(map.get("msgCode"))) {
|
||||
map.put("msgCode", Constants.FAIL);
|
||||
}
|
||||
|
||||
map.put("success", false);
|
||||
if(null == map.get("msgDesc") || ("").equals(map.get("msgDesc"))) {
|
||||
map.put("msgDesc","정상적으로 수행되지 않았습니다. 관리자에게 문의하시기 바랍니다. (E0029)");
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
HashMap<String, Object> visitLogParamMap = RequestLogUtil.getVisitLogParameterMap(request);
|
||||
HashMap<String, Object> insertMap = new HashMap<String, Object>();
|
||||
|
||||
insertMap.put("url", "/webevent/selectReservation.do");
|
||||
insertMap.put("func", "selectListService");
|
||||
insertMap.put("funcName", "예약 조회");
|
||||
insertMap.put("service", "webEventService");
|
||||
insertMap.put("serviceName", "예약 상세");
|
||||
insertMap.put("requestValue", String.valueOf(paramMap));
|
||||
insertMap.put("responseValue", String.valueOf(map));
|
||||
;
|
||||
if(("true").equals(String.valueOf(map.get("success")))){
|
||||
insertMap.put("resultCode", "SUCCESS");
|
||||
}else{
|
||||
insertMap.put("resultCode", "ERROR");
|
||||
}
|
||||
|
||||
insertMap.put("resultMsg", String.valueOf(errorMsg));
|
||||
|
||||
// logHistoryService.insertLogHistory(insertMap, visitLogParamMap);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
log.debug("WebServiceController selectReservation END");
|
||||
|
||||
|
||||
return HttpUtil.makeHashToJsonModelAndView(map);
|
||||
}
|
||||
|
||||
/**
|
||||
* 시술 목록 상세 조회
|
||||
*
|
||||
* @param request
|
||||
* @param response
|
||||
* @return
|
||||
*/
|
||||
@RequestMapping(value="/webevent/selectReservationCnt.do")
|
||||
public ModelAndView selectReservationCnt(HttpSession session, HttpServletRequest request, HttpServletResponse response) {
|
||||
|
||||
log.debug("WebServiceController selectReservationCnt START");
|
||||
|
||||
HashMap<String, Object> paramMap = HttpUtil.getParameterMap(request);
|
||||
HashMap<String, Object> map = new HashMap<String, Object>();
|
||||
StringBuffer errorMsg = new StringBuffer();
|
||||
|
||||
try{
|
||||
map = webEventService.selectReservationCnt(paramMap);
|
||||
}catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
errorMsg.append(e);
|
||||
return null;
|
||||
}finally {
|
||||
if(Constants.OK == map.get("msgCode")) {
|
||||
|
||||
}else{
|
||||
if(null == map.get("msgCode") || ("").equals(map.get("msgCode"))) {
|
||||
map.put("msgCode", Constants.FAIL);
|
||||
}
|
||||
|
||||
map.put("success", false);
|
||||
if(null == map.get("msgDesc") || ("").equals(map.get("msgDesc"))) {
|
||||
map.put("msgDesc","정상적으로 수행되지 않았습니다. 관리자에게 문의하시기 바랍니다. (E0029)");
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
HashMap<String, Object> visitLogParamMap = RequestLogUtil.getVisitLogParameterMap(request);
|
||||
HashMap<String, Object> insertMap = new HashMap<String, Object>();
|
||||
|
||||
insertMap.put("url", "/webevent/selectReservationCnt.do");
|
||||
insertMap.put("func", "selectReservationCnt");
|
||||
insertMap.put("funcName", "예약 조회");
|
||||
insertMap.put("service", "webEventService");
|
||||
insertMap.put("serviceName", "예약 상세");
|
||||
insertMap.put("requestValue", String.valueOf(paramMap));
|
||||
insertMap.put("responseValue", String.valueOf(map));
|
||||
;
|
||||
if(("true").equals(String.valueOf(map.get("success")))){
|
||||
insertMap.put("resultCode", "SUCCESS");
|
||||
}else{
|
||||
insertMap.put("resultCode", "ERROR");
|
||||
}
|
||||
|
||||
insertMap.put("resultMsg", String.valueOf(errorMsg));
|
||||
|
||||
// logHistoryService.insertLogHistory(insertMap, visitLogParamMap);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
log.debug("WebServiceController selectReservationCnt END");
|
||||
|
||||
|
||||
return HttpUtil.makeHashToJsonModelAndView(map);
|
||||
}
|
||||
|
||||
/**
|
||||
* 예약 저장
|
||||
*
|
||||
* @param request
|
||||
* @param response
|
||||
* @return
|
||||
*/
|
||||
@RequestMapping(value="/webevent/insertReservation.do")
|
||||
public ModelAndView insertReservation(HttpSession session, HttpServletRequest request, HttpServletResponse response) {
|
||||
|
||||
log.debug("WebServiceController insertReservation START");
|
||||
|
||||
HashMap<String, Object> paramMap = HttpUtil.getParameterMap(request);
|
||||
HashMap<String, Object> map = new HashMap<String, Object>();
|
||||
StringBuffer errorMsg = new StringBuffer();
|
||||
|
||||
try{
|
||||
map = webEventService.insertReservation(paramMap);
|
||||
log.debug(map + "TEST");
|
||||
}catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
errorMsg.append(e);
|
||||
return null;
|
||||
}finally {
|
||||
if(Constants.OK == map.get("msgCode")) {
|
||||
|
||||
}else{
|
||||
if(null == map.get("msgCode") || ("").equals(map.get("msgCode"))) {
|
||||
map.put("msgCode", Constants.FAIL);
|
||||
}
|
||||
|
||||
map.put("success", false);
|
||||
if(null == map.get("msgDesc") || ("").equals(map.get("msgDesc"))) {
|
||||
map.put("msgDesc","정상적으로 수행되지 않았습니다. 관리자에게 문의하시기 바랍니다. (E0029)");
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
HashMap<String, Object> visitLogParamMap = RequestLogUtil.getVisitLogParameterMap(request);
|
||||
HashMap<String, Object> insertMap = new HashMap<String, Object>();
|
||||
|
||||
insertMap.put("url", "/webevent/insertReservation.do");
|
||||
insertMap.put("func", "selectReservationCnt");
|
||||
insertMap.put("funcName", "예약 저장");
|
||||
insertMap.put("service", "webEventService");
|
||||
insertMap.put("serviceName", "예약 저장");
|
||||
insertMap.put("requestValue", String.valueOf(paramMap));
|
||||
insertMap.put("responseValue", String.valueOf(map));
|
||||
;
|
||||
if(("true").equals(String.valueOf(map.get("success")))){
|
||||
insertMap.put("resultCode", "SUCCESS");
|
||||
}else{
|
||||
insertMap.put("resultCode", "ERROR");
|
||||
}
|
||||
|
||||
insertMap.put("resultMsg", String.valueOf(errorMsg));
|
||||
|
||||
// logHistoryService.insertLogHistory(insertMap, visitLogParamMap);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
log.debug("WebServiceController insertReservation END");
|
||||
|
||||
|
||||
return HttpUtil.makeHashToJsonModelAndView(map);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,39 @@
|
||||
package com.madeuhome.controller.web.webhome;
|
||||
|
||||
import com.madeuhome.init.ManagerDraftAction;
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
import jakarta.servlet.http.HttpSession;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
|
||||
|
||||
@Slf4j
|
||||
@Controller
|
||||
public class WebHomeController extends ManagerDraftAction{
|
||||
|
||||
/**
|
||||
* 홈 화면으로 이동.
|
||||
*
|
||||
* @param request
|
||||
* @param response
|
||||
* @return
|
||||
*/
|
||||
@RequestMapping(value="/")
|
||||
public String homeIntro(HttpSession session,HttpServletRequest request) {
|
||||
|
||||
log.debug("WebHomeController homeIntro START");
|
||||
|
||||
log.debug("WebHomeController homeIntro END");
|
||||
return "/intro";
|
||||
}
|
||||
|
||||
@RequestMapping(value="/index")
|
||||
public String homeIndex(HttpSession session,HttpServletRequest request) {
|
||||
|
||||
log.debug("WebHomeController homeIndex START");
|
||||
|
||||
log.debug("WebHomeController homeIndex END");
|
||||
return "/index";
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,95 @@
|
||||
package com.madeuhome.controller.web.webinstagram;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
|
||||
import com.madeuhome.constants.Constants;
|
||||
import com.madeuhome.init.ManagerDraftAction;
|
||||
import com.madeuhome.service.common.loghistory.LogHistoryService;
|
||||
import com.madeuhome.service.web.webinstagram.WebInstagramService;
|
||||
import com.madeuhome.util.HttpUtil;
|
||||
import com.madeuhome.util.RequestLogUtil;
|
||||
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import jakarta.servlet.http.HttpSession;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
@Slf4j
|
||||
@Controller
|
||||
public class WebInstagramController extends ManagerDraftAction{
|
||||
@Autowired
|
||||
private WebInstagramService webInstagramService;
|
||||
|
||||
@Autowired
|
||||
private LogHistoryService logHistoryService;
|
||||
|
||||
/**
|
||||
* 인스타 정보 리스트 조회
|
||||
*
|
||||
* @param request
|
||||
* @param response
|
||||
* @return
|
||||
*/
|
||||
@RequestMapping(value="/webinstagram/selectListWebInstagram.do")
|
||||
public ModelAndView selectListWebInstagram(HttpSession session,HttpServletRequest request, HttpServletResponse response) {
|
||||
|
||||
log.debug("WebInstagramController selectListWebInstagram START");
|
||||
|
||||
HashMap<String, Object> paramMap = HttpUtil.getParameterMap(request);
|
||||
HashMap<String, Object> map = new HashMap<String, Object>();
|
||||
StringBuffer errorMsg = new StringBuffer();
|
||||
try{
|
||||
map = webInstagramService.selectListWebInstagram(paramMap);
|
||||
}catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
errorMsg.append(e);
|
||||
return null;
|
||||
}finally {
|
||||
if(Constants.OK == map.get("msgCode")) {
|
||||
|
||||
}else{
|
||||
if(null == map.get("msgCode") || ("").equals(map.get("msgCode"))) {
|
||||
map.put("msgCode", Constants.FAIL);
|
||||
}
|
||||
|
||||
map.put("success", false);
|
||||
if(null == map.get("msgDesc") || ("").equals(map.get("msgDesc"))) {
|
||||
map.put("msgDesc","정상적으로 수행되지 않았습니다. 관리자에게 문의하시기 바랍니다. (E0029)");
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
HashMap<String, Object> visitLogParamMap = RequestLogUtil.getVisitLogParameterMap(request);
|
||||
HashMap<String, Object> insertMap = new HashMap<String, Object>();
|
||||
|
||||
insertMap.put("url", "/webyoutube/selectListWebInstagram.do");
|
||||
insertMap.put("func", "selectListWebInstagram");
|
||||
insertMap.put("funcName", "인스타그램 리스트 조회");
|
||||
insertMap.put("service", "webInstagramService");
|
||||
insertMap.put("serviceName", "인스타그램");
|
||||
insertMap.put("requestValue", String.valueOf(paramMap));
|
||||
insertMap.put("responseValue", "");
|
||||
;
|
||||
if(("true").equals(String.valueOf(map.get("success")))){
|
||||
insertMap.put("resultCode", "SUCCESS");
|
||||
}else{
|
||||
insertMap.put("resultCode", "ERROR");
|
||||
}
|
||||
|
||||
insertMap.put("resultMsg", String.valueOf(errorMsg));
|
||||
insertMap.put("muMemberId", paramMap.get("muMemberId"));
|
||||
|
||||
logHistoryService.insertLogHistory(insertMap, visitLogParamMap);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
log.debug("WebInstagramController selectListWebInstagram END");
|
||||
return HttpUtil.makeHashToJsonModelAndView(map);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,88 @@
|
||||
package com.madeuhome.controller.web.webintroduction;
|
||||
|
||||
import com.madeuhome.constants.Constants;
|
||||
import com.madeuhome.init.ManagerDraftAction;
|
||||
import com.madeuhome.service.common.loghistory.LogHistoryService;
|
||||
import com.madeuhome.service.web.webmainbanner.WebMainBannerService;
|
||||
import com.madeuhome.util.HttpUtil;
|
||||
import com.madeuhome.util.RequestLogUtil;
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import jakarta.servlet.http.HttpSession;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
||||
|
||||
@Slf4j
|
||||
@Controller
|
||||
public class WebIntroductionController extends ManagerDraftAction{
|
||||
|
||||
/**
|
||||
* 병원 소개 화면으로 이동.
|
||||
*
|
||||
* @param request
|
||||
* @param response
|
||||
* @return
|
||||
*/
|
||||
@RequestMapping(value="/webintroduction/selectIntroductionHospitalIntro.do")
|
||||
public String selectIntroductionHospitalIntro(HttpSession session,HttpServletRequest request) {
|
||||
|
||||
log.debug("WebIntroductionController selectIntroductionHospitalIntro START");
|
||||
|
||||
log.debug("WebIntroductionController selectIntroductionHospitalIntro END");
|
||||
return "/web/introduction/introductionHospitalSelect";
|
||||
}
|
||||
|
||||
/**
|
||||
* 의료진 소개 화면으로 이동.
|
||||
*
|
||||
* @param request
|
||||
* @param response
|
||||
* @return
|
||||
*/
|
||||
@RequestMapping(value="/webintroduction/selectIntroductionStaffIntro.do")
|
||||
public String selectIntroductionStaffIntro(HttpSession session,HttpServletRequest request) {
|
||||
|
||||
log.debug("WebIntroductionController selectIntroductionStaffIntro START");
|
||||
|
||||
log.debug("WebIntroductionController selectIntroductionStaffIntro END");
|
||||
return "/web/introduction/introductionStaffSelect";
|
||||
}
|
||||
|
||||
/**
|
||||
* 비급여 안내 화면으로 이동.
|
||||
*
|
||||
* @param request
|
||||
* @param response
|
||||
* @return
|
||||
*/
|
||||
@RequestMapping(value="/webintroduction/selectIntroductionPriceIntro.do")
|
||||
public String selectIntroductionPriceIntro(HttpSession session,HttpServletRequest request) {
|
||||
|
||||
log.debug("WebIntroductionController selectIntroductionPriceIntro START");
|
||||
|
||||
log.debug("WebIntroductionController selectIntroductionPriceIntro END");
|
||||
return "/web/introduction/introductionPriceSelect";
|
||||
}
|
||||
|
||||
/**
|
||||
* 찾아오시는길 화면으로 이동.
|
||||
*
|
||||
* @param request
|
||||
* @param response
|
||||
* @return
|
||||
*/
|
||||
@RequestMapping(value="/webintroduction/selectIntroductionWayIntro.do")
|
||||
public String selectIntroductionWayIntro(HttpSession session,HttpServletRequest request) {
|
||||
|
||||
log.debug("WebIntroductionController selectIntroductionWayIntro START");
|
||||
|
||||
log.debug("WebIntroductionController selectIntroductionWayIntro END");
|
||||
return "/web/introduction/introductionWaySelect";
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,160 @@
|
||||
package com.madeuhome.controller.web.webmainbanner;
|
||||
|
||||
import com.madeuhome.constants.Constants;
|
||||
import com.madeuhome.init.ManagerDraftAction;
|
||||
import com.madeuhome.service.common.loghistory.LogHistoryService;
|
||||
import com.madeuhome.service.web.webmainbanner.WebMainBannerService;
|
||||
import com.madeuhome.util.HttpUtil;
|
||||
import com.madeuhome.util.RequestLogUtil;
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import jakarta.servlet.http.HttpSession;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
||||
|
||||
@Slf4j
|
||||
@Controller
|
||||
public class WebMainBannerController extends ManagerDraftAction{
|
||||
|
||||
@Autowired
|
||||
private WebMainBannerService webPopupService;
|
||||
|
||||
@Autowired
|
||||
private LogHistoryService logHistoryService;
|
||||
|
||||
/**
|
||||
* 메인 배너 정보 리스트 조회
|
||||
*
|
||||
* @param request
|
||||
* @param response
|
||||
* @return
|
||||
*/
|
||||
@RequestMapping(value="/webmainbanner/selectListWebMainBanner.do")
|
||||
public ModelAndView selectListWebMainBanner(HttpSession session,HttpServletRequest request, HttpServletResponse response) {
|
||||
|
||||
log.debug("WebMainBannerController selectListWebMainBanner START");
|
||||
|
||||
HashMap<String, Object> paramMap = HttpUtil.getParameterMap(request);
|
||||
HashMap<String, Object> map = new HashMap<String, Object>();
|
||||
StringBuffer errorMsg = new StringBuffer();
|
||||
|
||||
try{
|
||||
map = webPopupService.selectListWebMainBanner(paramMap);
|
||||
}catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
errorMsg.append(e);
|
||||
return null;
|
||||
}finally {
|
||||
if(Constants.OK == map.get("msgCode")) {
|
||||
|
||||
}else{
|
||||
if(null == map.get("msgCode") || ("").equals(map.get("msgCode"))) {
|
||||
map.put("msgCode", Constants.FAIL);
|
||||
}
|
||||
|
||||
map.put("success", false);
|
||||
if(null == map.get("msgDesc") || ("").equals(map.get("msgDesc"))) {
|
||||
map.put("msgDesc","정상적으로 수행되지 않았습니다. 관리자에게 문의하시기 바랍니다. (E0029)");
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
HashMap<String, Object> visitLogParamMap = RequestLogUtil.getVisitLogParameterMap(request);
|
||||
HashMap<String, Object> insertMap = new HashMap<String, Object>();
|
||||
|
||||
insertMap.put("url", "/webmainbanner/selectListWebMainBanner.do");
|
||||
insertMap.put("func", "selectListWebMainBanner");
|
||||
insertMap.put("funcName", "메인 배너 리스트 조회");
|
||||
insertMap.put("service", "webPopupService");
|
||||
insertMap.put("serviceName", "메인 배너");
|
||||
insertMap.put("requestValue", String.valueOf(paramMap));
|
||||
insertMap.put("responseValue", String.valueOf(map));
|
||||
;
|
||||
if(("true").equals(String.valueOf(map.get("success")))){
|
||||
insertMap.put("resultCode", "SUCCESS");
|
||||
}else{
|
||||
insertMap.put("resultCode", "ERROR");
|
||||
}
|
||||
|
||||
insertMap.put("resultMsg", String.valueOf(errorMsg));
|
||||
insertMap.put("muMemberId", paramMap.get("muMemberId"));
|
||||
|
||||
logHistoryService.insertLogHistory(insertMap, visitLogParamMap);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
log.debug("WebMainBannerController selectListWebMainBanner END");
|
||||
return HttpUtil.makeHashToJsonModelAndView(map);
|
||||
}
|
||||
|
||||
/**
|
||||
* 메인 배너 정보 상세 조회
|
||||
*
|
||||
* @param request
|
||||
* @param response
|
||||
* @return
|
||||
*/
|
||||
@RequestMapping(value="/webmainbanner/selectWebMainBanner.do")
|
||||
public ModelAndView selectWebMainBanner(HttpSession session,HttpServletRequest request, HttpServletResponse response) {
|
||||
|
||||
log.debug("WebMainBannerController selectWebMainBanner START");
|
||||
|
||||
HashMap<String, Object> paramMap = HttpUtil.getParameterMap(request);
|
||||
HashMap<String, Object> map = new HashMap<String, Object>();
|
||||
StringBuffer errorMsg = new StringBuffer();
|
||||
|
||||
try{
|
||||
map = webPopupService.selectWebMainBanner(paramMap);
|
||||
}catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
errorMsg.append(e);
|
||||
return null;
|
||||
}finally {
|
||||
if(Constants.OK == map.get("msgCode")) {
|
||||
|
||||
}else{
|
||||
map.put("msgCode", Constants.FAIL);
|
||||
map.put("success", false);
|
||||
if(null == map.get("msgDesc") || ("").equals(map.get("msgDesc"))) {
|
||||
map.put("msgDesc","정상적으로 수행되지 않았습니다. 관리자에게 문의하시기 바랍니다.");
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
HashMap<String, Object> visitLogParamMap = RequestLogUtil.getVisitLogParameterMap(request);
|
||||
HashMap<String, Object> insertMap = new HashMap<String, Object>();
|
||||
|
||||
insertMap.put("url", "/webmainbanner/selectWebMainBanner.do");
|
||||
insertMap.put("func", "selectWebMainBanner");
|
||||
insertMap.put("funcName", "메인 배너 상세 조회");
|
||||
insertMap.put("service", "webPopupService");
|
||||
insertMap.put("serviceName", "메인 배너");
|
||||
insertMap.put("requestValue", String.valueOf(paramMap));
|
||||
insertMap.put("responseValue", String.valueOf(map));
|
||||
|
||||
if(("true").equals(String.valueOf(map.get("success")))){
|
||||
insertMap.put("resultCode", "SUCCESS");
|
||||
}else{
|
||||
insertMap.put("resultCode", "ERROR");
|
||||
}
|
||||
|
||||
insertMap.put("resultMsg", String.valueOf(errorMsg));
|
||||
insertMap.put("muMemberId", paramMap.get("muMemberId"));
|
||||
|
||||
logHistoryService.insertLogHistory(insertMap, visitLogParamMap);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
log.debug("WebMainBannerController selectWebMainBanner END");
|
||||
return HttpUtil.makeHashToJsonModelAndView(map);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,65 @@
|
||||
package com.madeuhome.controller.web.webpetit;
|
||||
|
||||
import com.madeuhome.init.ManagerDraftAction;
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
import jakarta.servlet.http.HttpSession;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
|
||||
|
||||
@Slf4j
|
||||
@Controller
|
||||
public class WebPetitController extends ManagerDraftAction{
|
||||
|
||||
/**
|
||||
* 레이저 리프팅 화면으로 이동.
|
||||
*
|
||||
* @param request
|
||||
* @param response
|
||||
* @return
|
||||
*/
|
||||
@RequestMapping(value="/webpetit/selectPetitLaserIntro.do")
|
||||
public String selectPetitLaserIntro(HttpSession session,HttpServletRequest request) {
|
||||
|
||||
log.debug("WebPetitController selectPetitLaserIntro START");
|
||||
|
||||
log.debug("WebPetitController selectPetitLaserIntro END");
|
||||
return "/web/petit/petitLaserSelect";
|
||||
}
|
||||
|
||||
/**
|
||||
* 콜라겐 필러 화면으로 이동.
|
||||
*
|
||||
* @param request
|
||||
* @param response
|
||||
* @return
|
||||
*/
|
||||
@RequestMapping(value="/webpetit/selectPetitFillerIntro.do")
|
||||
public String selectPetitFillerIntro(HttpSession session,HttpServletRequest request) {
|
||||
|
||||
log.debug("WebPetitController selectPetitFillerIntro START");
|
||||
|
||||
log.debug("WebPetitController selectPetitFillerIntro END");
|
||||
return "/web/petit/petitFillerSelect";
|
||||
}
|
||||
|
||||
/**
|
||||
* 안티에이징 화면으로 이동.
|
||||
*
|
||||
* @param request
|
||||
* @param response
|
||||
* @return
|
||||
*/
|
||||
@RequestMapping(value="/webpetit/selectPetitAntiagingIntro.do")
|
||||
public String selectPetitAntiagingIntro(HttpSession session,HttpServletRequest request) {
|
||||
|
||||
log.debug("WebPetitController selectPetitAntiagingIntro START");
|
||||
|
||||
log.debug("WebPetitController selectPetitAntiagingIntro END");
|
||||
return "/web/petit/petitAntiagingSelect";
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,275 @@
|
||||
package com.madeuhome.controller.web.webphoto;
|
||||
|
||||
import com.madeuhome.constants.Constants;
|
||||
import com.madeuhome.init.ManagerDraftAction;
|
||||
import com.madeuhome.service.common.loghistory.LogHistoryService;
|
||||
import com.madeuhome.service.web.webphoto.WebPhotoService;
|
||||
import com.madeuhome.util.HttpUtil;
|
||||
import com.madeuhome.util.RequestLogUtil;
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import jakarta.servlet.http.HttpSession;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.ui.Model;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
||||
|
||||
@Slf4j
|
||||
@Controller
|
||||
public class WebPhotoController extends ManagerDraftAction{
|
||||
|
||||
@Autowired
|
||||
private WebPhotoService webPhotoService;
|
||||
|
||||
@Autowired
|
||||
private LogHistoryService logHistoryService;
|
||||
|
||||
/**
|
||||
* 전후사진 리스트 화면으로 이동.
|
||||
*
|
||||
* @param request
|
||||
* @param response
|
||||
* @return
|
||||
*/
|
||||
@RequestMapping(value="/webphoto/selectListWebPhotoIntro.do")
|
||||
public String selectListWebPhotoIntro(HttpSession session,HttpServletRequest request) {
|
||||
|
||||
log.debug("WebPhotoController selectListWebPhotoIntro START");
|
||||
|
||||
log.debug("WebPhotoController selectListWebPhotoIntro END");
|
||||
return "/web/webphoto/webPhotoSelectList";
|
||||
}
|
||||
|
||||
/**
|
||||
* 전후사진 카테고리 목록 조회
|
||||
*
|
||||
* @param request
|
||||
* @param response
|
||||
* @return
|
||||
*/
|
||||
@RequestMapping(value="/webphoto/selectListWebPhoto.do")
|
||||
public ModelAndView selectListWebPhoto(HttpSession session,HttpServletRequest request, HttpServletResponse response) {
|
||||
|
||||
log.debug("WebPhotoController selectListWebPhoto START");
|
||||
|
||||
HashMap<String, Object> paramMap = HttpUtil.getParameterMap(request);
|
||||
HashMap<String, Object> map = new HashMap<String, Object>();
|
||||
StringBuffer errorMsg = new StringBuffer();
|
||||
|
||||
try{
|
||||
map = webPhotoService.selectListWebPhoto(paramMap);
|
||||
log.debug(map + "");
|
||||
}catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
errorMsg.append(e);
|
||||
return null;
|
||||
}finally {
|
||||
if(Constants.OK == map.get("msgCode")) {
|
||||
|
||||
}else{
|
||||
if(null == map.get("msgCode") || ("").equals(map.get("msgCode"))) {
|
||||
map.put("msgCode", Constants.FAIL);
|
||||
}
|
||||
|
||||
map.put("success", false);
|
||||
if(null == map.get("msgDesc") || ("").equals(map.get("msgDesc"))) {
|
||||
map.put("msgDesc","정상적으로 수행되지 않았습니다. 관리자에게 문의하시기 바랍니다. (E0029)");
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
HashMap<String, Object> visitLogParamMap = RequestLogUtil.getVisitLogParameterMap(request);
|
||||
HashMap<String, Object> insertMap = new HashMap<String, Object>();
|
||||
|
||||
insertMap.put("url", "/webphoto/selectListWebPhoto.do");
|
||||
insertMap.put("func", "selectListCategory");
|
||||
insertMap.put("funcName", "전후사진 리스트 조회");
|
||||
insertMap.put("service", "webPhotoService");
|
||||
insertMap.put("serviceName", "전후사진");
|
||||
insertMap.put("requestValue", String.valueOf(paramMap));
|
||||
insertMap.put("responseValue", String.valueOf(map));
|
||||
;
|
||||
if(("true").equals(String.valueOf(map.get("success")))){
|
||||
insertMap.put("resultCode", "SUCCESS");
|
||||
}else{
|
||||
insertMap.put("resultCode", "ERROR");
|
||||
}
|
||||
|
||||
insertMap.put("resultMsg", String.valueOf(errorMsg));
|
||||
insertMap.put("muMemberId", paramMap.get("muMemberId"));
|
||||
|
||||
// logHistoryService.insertLogHistory(insertMap, visitLogParamMap);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
log.debug("WebPhotoController selectListWebPhoto END");
|
||||
|
||||
|
||||
return HttpUtil.makeHashToJsonModelAndView(map);
|
||||
}
|
||||
|
||||
/**
|
||||
* 전후사진 별 항목 목록 조회
|
||||
*
|
||||
* @param request
|
||||
* @param response
|
||||
* @return
|
||||
*/
|
||||
@RequestMapping(value="/webphoto/selectListPhoto.do")
|
||||
public ModelAndView selectListPhoto(HttpSession session,HttpServletRequest request, HttpServletResponse response) {
|
||||
|
||||
log.debug("WebPhotoController selectListPhoto START");
|
||||
|
||||
HashMap<String, Object> paramMap = HttpUtil.getParameterMap(request);
|
||||
HashMap<String, Object> map = new HashMap<String, Object>();
|
||||
StringBuffer errorMsg = new StringBuffer();
|
||||
|
||||
try{
|
||||
map = webPhotoService.selectListPhoto(paramMap);
|
||||
log.debug(map + "");
|
||||
}catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
errorMsg.append(e);
|
||||
return null;
|
||||
}finally {
|
||||
if(Constants.OK == map.get("msgCode")) {
|
||||
|
||||
}else{
|
||||
if(null == map.get("msgCode") || ("").equals(map.get("msgCode"))) {
|
||||
map.put("msgCode", Constants.FAIL);
|
||||
}
|
||||
|
||||
map.put("success", false);
|
||||
if(null == map.get("msgDesc") || ("").equals(map.get("msgDesc"))) {
|
||||
map.put("msgDesc","정상적으로 수행되지 않았습니다. 관리자에게 문의하시기 바랍니다. (E0029)");
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
HashMap<String, Object> visitLogParamMap = RequestLogUtil.getVisitLogParameterMap(request);
|
||||
HashMap<String, Object> insertMap = new HashMap<String, Object>();
|
||||
|
||||
insertMap.put("url", "/webservice/selectListPhoto.do");
|
||||
insertMap.put("func", "selectListPhoto");
|
||||
insertMap.put("funcName", "전후사진 리스트 조회");
|
||||
insertMap.put("service", "webPhotoService");
|
||||
insertMap.put("serviceName", "전후사진");
|
||||
insertMap.put("requestValue", String.valueOf(paramMap));
|
||||
insertMap.put("responseValue", String.valueOf(map));
|
||||
;
|
||||
if(("true").equals(String.valueOf(map.get("success")))){
|
||||
insertMap.put("resultCode", "SUCCESS");
|
||||
}else{
|
||||
insertMap.put("resultCode", "ERROR");
|
||||
}
|
||||
|
||||
insertMap.put("resultMsg", String.valueOf(errorMsg));
|
||||
|
||||
// logHistoryService.insertLogHistory(insertMap, visitLogParamMap);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
log.debug("WebPhotoController selectListPhoto END");
|
||||
|
||||
|
||||
return HttpUtil.makeHashToJsonModelAndView(map);
|
||||
}
|
||||
|
||||
/**
|
||||
* 전후사진 안내 상세로 이동.
|
||||
*
|
||||
* @param request
|
||||
* @param response
|
||||
* @return
|
||||
*/
|
||||
@RequestMapping(value="/webphoto/selectPhotoDetailIntro.do")
|
||||
public String selectPhotoDetailIntro(HttpSession session, HttpServletRequest request, Model model) {
|
||||
|
||||
log.debug("WebPhotoController selectPhotoDetailIntro START");
|
||||
HashMap<String, Object> paramMap = HttpUtil.getParameterMap(request);
|
||||
model.addAttribute("CATEGORY_DIV_CD", paramMap.get("CATEGORY_DIV_CD"));
|
||||
model.addAttribute("CATEGORY_NO", paramMap.get("CATEGORY_NO"));
|
||||
model.addAttribute("POST_NO", paramMap.get("POST_NO"));
|
||||
log.debug("WebPhotoController selectPhotoDetailIntro END");
|
||||
|
||||
return "/web/webphoto/webPhotoSelect";
|
||||
}
|
||||
|
||||
/**
|
||||
* 전후사진 안내 목록 상세 조회
|
||||
*
|
||||
* @param request
|
||||
* @param response
|
||||
* @return
|
||||
*/
|
||||
@RequestMapping(value="/webphoto/selectPhotoDetail.do")
|
||||
public ModelAndView selectPhotoDetail(HttpSession session, HttpServletRequest request, HttpServletResponse response) {
|
||||
|
||||
log.debug("WebPhotoController selectPhotoDetail START");
|
||||
|
||||
HashMap<String, Object> paramMap = HttpUtil.getParameterMap(request);
|
||||
HashMap<String, Object> map = new HashMap<String, Object>();
|
||||
StringBuffer errorMsg = new StringBuffer();
|
||||
|
||||
try{
|
||||
map = webPhotoService.selectPhotoDetail(paramMap);
|
||||
log.debug(map + "");
|
||||
}catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
errorMsg.append(e);
|
||||
return null;
|
||||
}finally {
|
||||
if(Constants.OK == map.get("msgCode")) {
|
||||
|
||||
}else{
|
||||
if(null == map.get("msgCode") || ("").equals(map.get("msgCode"))) {
|
||||
map.put("msgCode", Constants.FAIL);
|
||||
}
|
||||
|
||||
map.put("success", false);
|
||||
if(null == map.get("msgDesc") || ("").equals(map.get("msgDesc"))) {
|
||||
map.put("msgDesc","정상적으로 수행되지 않았습니다. 관리자에게 문의하시기 바랍니다. (E0029)");
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
HashMap<String, Object> visitLogParamMap = RequestLogUtil.getVisitLogParameterMap(request);
|
||||
HashMap<String, Object> insertMap = new HashMap<String, Object>();
|
||||
|
||||
insertMap.put("url", "/webphoto/selectPhotoDetail.do");
|
||||
insertMap.put("func", "selectPhotoDetail");
|
||||
insertMap.put("funcName", "전후사진 상세 조회");
|
||||
insertMap.put("service", "webPhotoService");
|
||||
insertMap.put("serviceName", "전후사진 상세");
|
||||
insertMap.put("requestValue", String.valueOf(paramMap));
|
||||
insertMap.put("responseValue", String.valueOf(map));
|
||||
;
|
||||
if(("true").equals(String.valueOf(map.get("success")))){
|
||||
insertMap.put("resultCode", "SUCCESS");
|
||||
}else{
|
||||
insertMap.put("resultCode", "ERROR");
|
||||
}
|
||||
|
||||
insertMap.put("resultMsg", String.valueOf(errorMsg));
|
||||
|
||||
// logHistoryService.insertLogHistory(insertMap, visitLogParamMap);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
log.debug("WebPhotoController selectPhotoDetail END");
|
||||
|
||||
|
||||
return HttpUtil.makeHashToJsonModelAndView(map);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,160 @@
|
||||
package com.madeuhome.controller.web.webpopup;
|
||||
|
||||
import com.madeuhome.constants.Constants;
|
||||
import com.madeuhome.init.ManagerDraftAction;
|
||||
import com.madeuhome.service.common.loghistory.LogHistoryService;
|
||||
import com.madeuhome.service.web.webpopup.WebPopupService;
|
||||
import com.madeuhome.util.HttpUtil;
|
||||
import com.madeuhome.util.RequestLogUtil;
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import jakarta.servlet.http.HttpSession;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
||||
|
||||
@Slf4j
|
||||
@Controller
|
||||
public class WebPopupController extends ManagerDraftAction{
|
||||
|
||||
@Autowired
|
||||
private WebPopupService webPopupService;
|
||||
|
||||
@Autowired
|
||||
private LogHistoryService logHistoryService;
|
||||
|
||||
/**
|
||||
* 이벤트 정보 리스트 조회
|
||||
*
|
||||
* @param request
|
||||
* @param response
|
||||
* @return
|
||||
*/
|
||||
@RequestMapping(value="/webpopup/selectListWebPopup.do")
|
||||
public ModelAndView selectListWebPopup(HttpSession session,HttpServletRequest request, HttpServletResponse response) {
|
||||
|
||||
log.debug("WebPopupController selectListWebPopup START");
|
||||
|
||||
HashMap<String, Object> paramMap = HttpUtil.getParameterMap(request);
|
||||
HashMap<String, Object> map = new HashMap<String, Object>();
|
||||
StringBuffer errorMsg = new StringBuffer();
|
||||
|
||||
try{
|
||||
map = webPopupService.selectListWebPopup(paramMap);
|
||||
}catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
errorMsg.append(e);
|
||||
return null;
|
||||
}finally {
|
||||
if(Constants.OK == map.get("msgCode")) {
|
||||
|
||||
}else{
|
||||
if(null == map.get("msgCode") || ("").equals(map.get("msgCode"))) {
|
||||
map.put("msgCode", Constants.FAIL);
|
||||
}
|
||||
|
||||
map.put("success", false);
|
||||
if(null == map.get("msgDesc") || ("").equals(map.get("msgDesc"))) {
|
||||
map.put("msgDesc","정상적으로 수행되지 않았습니다. 관리자에게 문의하시기 바랍니다. (E0029)");
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
HashMap<String, Object> visitLogParamMap = RequestLogUtil.getVisitLogParameterMap(request);
|
||||
HashMap<String, Object> insertMap = new HashMap<String, Object>();
|
||||
|
||||
insertMap.put("url", "/webpopup/selectListWebPopup.do");
|
||||
insertMap.put("func", "selectListWebPopup");
|
||||
insertMap.put("funcName", "팝업 리스트 조회");
|
||||
insertMap.put("service", "webPopupService");
|
||||
insertMap.put("serviceName", "팝업");
|
||||
insertMap.put("requestValue", String.valueOf(paramMap));
|
||||
insertMap.put("responseValue", String.valueOf(map));
|
||||
;
|
||||
if(("true").equals(String.valueOf(map.get("success")))){
|
||||
insertMap.put("resultCode", "SUCCESS");
|
||||
}else{
|
||||
insertMap.put("resultCode", "ERROR");
|
||||
}
|
||||
|
||||
insertMap.put("resultMsg", String.valueOf(errorMsg));
|
||||
insertMap.put("muMemberId", paramMap.get("muMemberId"));
|
||||
|
||||
logHistoryService.insertLogHistory(insertMap, visitLogParamMap);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
log.debug("WebPopupController selectListWebPopup END");
|
||||
return HttpUtil.makeHashToJsonModelAndView(map);
|
||||
}
|
||||
|
||||
/**
|
||||
* 이벤트 정보 상세 조회
|
||||
*
|
||||
* @param request
|
||||
* @param response
|
||||
* @return
|
||||
*/
|
||||
@RequestMapping(value="/webpopup/selectWebPopup.do")
|
||||
public ModelAndView selectWebPopup(HttpSession session,HttpServletRequest request, HttpServletResponse response) {
|
||||
|
||||
log.debug("WebPopupController selectWebPopup START");
|
||||
|
||||
HashMap<String, Object> paramMap = HttpUtil.getParameterMap(request);
|
||||
HashMap<String, Object> map = new HashMap<String, Object>();
|
||||
StringBuffer errorMsg = new StringBuffer();
|
||||
|
||||
try{
|
||||
map = webPopupService.selectWebPopup(paramMap);
|
||||
}catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
errorMsg.append(e);
|
||||
return null;
|
||||
}finally {
|
||||
if(Constants.OK == map.get("msgCode")) {
|
||||
|
||||
}else{
|
||||
map.put("msgCode", Constants.FAIL);
|
||||
map.put("success", false);
|
||||
if(null == map.get("msgDesc") || ("").equals(map.get("msgDesc"))) {
|
||||
map.put("msgDesc","정상적으로 수행되지 않았습니다. 관리자에게 문의하시기 바랍니다.");
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
HashMap<String, Object> visitLogParamMap = RequestLogUtil.getVisitLogParameterMap(request);
|
||||
HashMap<String, Object> insertMap = new HashMap<String, Object>();
|
||||
|
||||
insertMap.put("url", "/webpopup/selectWebPopup.do");
|
||||
insertMap.put("func", "selectWebPopup");
|
||||
insertMap.put("funcName", "팝업 상세 조회");
|
||||
insertMap.put("service", "webPopupService");
|
||||
insertMap.put("serviceName", "팝업");
|
||||
insertMap.put("requestValue", String.valueOf(paramMap));
|
||||
insertMap.put("responseValue", String.valueOf(map));
|
||||
|
||||
if(("true").equals(String.valueOf(map.get("success")))){
|
||||
insertMap.put("resultCode", "SUCCESS");
|
||||
}else{
|
||||
insertMap.put("resultCode", "ERROR");
|
||||
}
|
||||
|
||||
insertMap.put("resultMsg", String.valueOf(errorMsg));
|
||||
insertMap.put("muMemberId", paramMap.get("muMemberId"));
|
||||
|
||||
logHistoryService.insertLogHistory(insertMap, visitLogParamMap);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
log.debug("WebPopupController selectWebPopup END");
|
||||
return HttpUtil.makeHashToJsonModelAndView(map);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,458 @@
|
||||
package com.madeuhome.controller.web.webservice;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.ui.Model;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.bind.annotation.ResponseBody;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
|
||||
import com.madeuhome.constants.Constants;
|
||||
import com.madeuhome.init.ManagerDraftAction;
|
||||
import com.madeuhome.service.web.webservice.WebServiceService;
|
||||
import com.madeuhome.util.HttpUtil;
|
||||
import com.madeuhome.util.RequestLogUtil;
|
||||
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import jakarta.servlet.http.HttpSession;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
|
||||
@Slf4j
|
||||
@Controller
|
||||
public class WebServiceController extends ManagerDraftAction{
|
||||
@Autowired
|
||||
private WebServiceService webServiceService;
|
||||
|
||||
/**
|
||||
* 시술관리 목록으로 이동.
|
||||
*
|
||||
* @param request
|
||||
* @param response
|
||||
* @return
|
||||
*/
|
||||
@RequestMapping(value="/webservice/selectServiceIntro.do")
|
||||
public String selectListServiceIntro(HttpSession session,HttpServletRequest request) {
|
||||
|
||||
log.debug("WebServiceController selectListServiceIntro START");
|
||||
|
||||
log.debug("WebServiceController selectListServiceIntro END");
|
||||
|
||||
return "/web/service/serviceInfo";
|
||||
}
|
||||
|
||||
/**
|
||||
* 시술관리 카테고리 목록 조회
|
||||
*
|
||||
* @param request
|
||||
* @param response
|
||||
* @return
|
||||
*/
|
||||
@RequestMapping(value="/webservice/selectListCategory.do")
|
||||
public ModelAndView selectListCategory(HttpSession session,HttpServletRequest request, HttpServletResponse response) {
|
||||
|
||||
log.debug("WebServiceController selectListCategory START");
|
||||
|
||||
HashMap<String, Object> paramMap = HttpUtil.getParameterMap(request);
|
||||
HashMap<String, Object> map = new HashMap<String, Object>();
|
||||
StringBuffer errorMsg = new StringBuffer();
|
||||
|
||||
try{
|
||||
map = webServiceService.selectListWebCategory(paramMap);
|
||||
log.debug(map + "");
|
||||
}catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
errorMsg.append(e);
|
||||
return null;
|
||||
}finally {
|
||||
if(Constants.OK == map.get("msgCode")) {
|
||||
|
||||
}else{
|
||||
if(null == map.get("msgCode") || ("").equals(map.get("msgCode"))) {
|
||||
map.put("msgCode", Constants.FAIL);
|
||||
}
|
||||
|
||||
map.put("success", false);
|
||||
if(null == map.get("msgDesc") || ("").equals(map.get("msgDesc"))) {
|
||||
map.put("msgDesc","정상적으로 수행되지 않았습니다. 관리자에게 문의하시기 바랍니다. (E0029)");
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
HashMap<String, Object> visitLogParamMap = RequestLogUtil.getVisitLogParameterMap(request);
|
||||
HashMap<String, Object> insertMap = new HashMap<String, Object>();
|
||||
|
||||
insertMap.put("url", "/webservice/selectListCategory.do");
|
||||
insertMap.put("func", "selectListCategory");
|
||||
insertMap.put("funcName", "카테고리 리스트 조회");
|
||||
insertMap.put("service", "webEventService");
|
||||
insertMap.put("serviceName", "카테고리");
|
||||
insertMap.put("requestValue", String.valueOf(paramMap));
|
||||
insertMap.put("responseValue", String.valueOf(map));
|
||||
;
|
||||
if(("true").equals(String.valueOf(map.get("success")))){
|
||||
insertMap.put("resultCode", "SUCCESS");
|
||||
}else{
|
||||
insertMap.put("resultCode", "ERROR");
|
||||
}
|
||||
|
||||
insertMap.put("resultMsg", String.valueOf(errorMsg));
|
||||
insertMap.put("muMemberId", paramMap.get("muMemberId"));
|
||||
|
||||
// logHistoryService.insertLogHistory(insertMap, visitLogParamMap);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
log.debug("WebServiceController selectListCategory END");
|
||||
|
||||
|
||||
return HttpUtil.makeHashToJsonModelAndView(map);
|
||||
}
|
||||
|
||||
/**
|
||||
* 카테고리 별 시술 목록 조회
|
||||
*
|
||||
* @param request
|
||||
* @param response
|
||||
* @return
|
||||
*/
|
||||
@PostMapping(value="/webservice/selectListService.do")
|
||||
@ResponseBody
|
||||
public ResponseEntity<Map<String, Object>> selectListService(@RequestParam("categoryNo") String categoryNo) {
|
||||
|
||||
Map<String, Object> response = new HashMap<>();
|
||||
|
||||
try {
|
||||
HashMap<String, Object> paramMap = new HashMap<>();
|
||||
paramMap.put("categoryNo", categoryNo);
|
||||
|
||||
Map<String, Object> result = webServiceService.selectListWebService(paramMap);
|
||||
return ResponseEntity.ok(result);
|
||||
|
||||
} catch (Exception e) {
|
||||
log.error("서비스 조회 실패", e);
|
||||
response.put("msgCode", Constants.FAIL);
|
||||
response.put("msgDesc", e.getMessage());
|
||||
response.put("rows", new ArrayList<>());
|
||||
return ResponseEntity.ok(response);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 시술관리 상세로 이동.
|
||||
*
|
||||
* @param request
|
||||
* @param response
|
||||
* @return
|
||||
*/
|
||||
@RequestMapping(value="/webservice/selectServiceDetailIntro.do")
|
||||
public String selectServiceDetailIntro(HttpSession session, HttpServletRequest request, Model model) {
|
||||
|
||||
log.debug("WebServiceController selectServiceDetailIntro START");
|
||||
HashMap<String, Object> paramMap = HttpUtil.getParameterMap(request);
|
||||
model.addAttribute("CATEGORY_DIV_CD", paramMap.get("categoryDivCd"));
|
||||
model.addAttribute("CATEGORY_NO", paramMap.get("categoryNo"));
|
||||
model.addAttribute("POST_NO", paramMap.get("postNo"));
|
||||
log.debug("WebServiceController selectServiceDetailIntro END");
|
||||
|
||||
return "/web/service/webServiceDetail";
|
||||
}
|
||||
|
||||
/**
|
||||
* 시술 목록 상세 조회
|
||||
*
|
||||
* @param request
|
||||
* @param response
|
||||
* @return
|
||||
*/
|
||||
@RequestMapping(value="/webservice/selectServiceDetail.do")
|
||||
public ModelAndView selectServiceDetail(HttpSession session, HttpServletRequest request, HttpServletResponse response) {
|
||||
|
||||
log.debug("WebServiceController selectServiceDetail START");
|
||||
|
||||
HashMap<String, Object> paramMap = HttpUtil.getParameterMap(request);
|
||||
HashMap<String, Object> map = new HashMap<String, Object>();
|
||||
StringBuffer errorMsg = new StringBuffer();
|
||||
|
||||
try{
|
||||
map = webServiceService.selectServiceDetail(paramMap);
|
||||
}catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
errorMsg.append(e);
|
||||
return null;
|
||||
}finally {
|
||||
if(Constants.OK == map.get("msgCode")) {
|
||||
|
||||
}else{
|
||||
if(null == map.get("msgCode") || ("").equals(map.get("msgCode"))) {
|
||||
map.put("msgCode", Constants.FAIL);
|
||||
}
|
||||
|
||||
map.put("success", false);
|
||||
if(null == map.get("msgDesc") || ("").equals(map.get("msgDesc"))) {
|
||||
map.put("msgDesc","정상적으로 수행되지 않았습니다. 관리자에게 문의하시기 바랍니다. (E0029)");
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
HashMap<String, Object> visitLogParamMap = RequestLogUtil.getVisitLogParameterMap(request);
|
||||
HashMap<String, Object> insertMap = new HashMap<String, Object>();
|
||||
|
||||
insertMap.put("url", "/webservice/selectListService.do");
|
||||
insertMap.put("func", "selectListService");
|
||||
insertMap.put("funcName", "시술 상세 조회");
|
||||
insertMap.put("service", "webServiceService");
|
||||
insertMap.put("serviceName", "시술 상세");
|
||||
insertMap.put("requestValue", String.valueOf(paramMap));
|
||||
insertMap.put("responseValue", String.valueOf(map));
|
||||
;
|
||||
if(("true").equals(String.valueOf(map.get("success")))){
|
||||
insertMap.put("resultCode", "SUCCESS");
|
||||
}else{
|
||||
insertMap.put("resultCode", "ERROR");
|
||||
}
|
||||
|
||||
insertMap.put("resultMsg", String.valueOf(errorMsg));
|
||||
|
||||
// logHistoryService.insertLogHistory(insertMap, visitLogParamMap);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
log.debug("WebServiceController selectServiceDetail END");
|
||||
|
||||
|
||||
return HttpUtil.makeHashToJsonModelAndView(map);
|
||||
}
|
||||
|
||||
@RequestMapping(value="/webservice/selectMakeReservation.do")
|
||||
public String selectMakeReservation(HttpSession session, HttpServletRequest request, Model model) {
|
||||
|
||||
log.debug("WebServiceController selectMakeReservation START");
|
||||
HashMap<String, Object> paramMap = HttpUtil.getParameterMap(request);
|
||||
model.addAttribute("CATEGORY_DIV_CD", paramMap.get("CATEGORY_DIV_CD"));
|
||||
model.addAttribute("CATEGORY_NO", paramMap.get("CATEGORY_NO"));
|
||||
model.addAttribute("POST_NO", paramMap.get("POST_NO"));
|
||||
model.addAttribute("PROCEDURE_ID", paramMap.get("PROCEDURE_ID"));
|
||||
|
||||
log.debug("WebServiceController selectMakeReservation END");
|
||||
|
||||
return "/web/service/makeReservation";
|
||||
}
|
||||
|
||||
/**
|
||||
* 시술 목록 상세 조회
|
||||
*
|
||||
* @param request
|
||||
* @param response
|
||||
* @return
|
||||
*/
|
||||
@RequestMapping(value="/webservice/selectReservation.do")
|
||||
public ModelAndView selectReservation(HttpSession session, HttpServletRequest request, HttpServletResponse response) {
|
||||
|
||||
log.debug("WebServiceController selectReservation START");
|
||||
|
||||
HashMap<String, Object> paramMap = HttpUtil.getParameterMap(request);
|
||||
HashMap<String, Object> map = new HashMap<String, Object>();
|
||||
StringBuffer errorMsg = new StringBuffer();
|
||||
|
||||
try{
|
||||
map = webServiceService.selectReservation(paramMap);
|
||||
}catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
errorMsg.append(e);
|
||||
return null;
|
||||
}finally {
|
||||
if(Constants.OK == map.get("msgCode")) {
|
||||
|
||||
}else{
|
||||
if(null == map.get("msgCode") || ("").equals(map.get("msgCode"))) {
|
||||
map.put("msgCode", Constants.FAIL);
|
||||
}
|
||||
|
||||
map.put("success", false);
|
||||
if(null == map.get("msgDesc") || ("").equals(map.get("msgDesc"))) {
|
||||
map.put("msgDesc","정상적으로 수행되지 않았습니다. 관리자에게 문의하시기 바랍니다. (E0029)");
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
HashMap<String, Object> visitLogParamMap = RequestLogUtil.getVisitLogParameterMap(request);
|
||||
HashMap<String, Object> insertMap = new HashMap<String, Object>();
|
||||
|
||||
insertMap.put("url", "/webservice/selectReservation.do");
|
||||
insertMap.put("func", "selectListService");
|
||||
insertMap.put("funcName", "예약 조회");
|
||||
insertMap.put("service", "webServiceService");
|
||||
insertMap.put("serviceName", "예약 상세");
|
||||
insertMap.put("requestValue", String.valueOf(paramMap));
|
||||
insertMap.put("responseValue", String.valueOf(map));
|
||||
;
|
||||
if(("true").equals(String.valueOf(map.get("success")))){
|
||||
insertMap.put("resultCode", "SUCCESS");
|
||||
}else{
|
||||
insertMap.put("resultCode", "ERROR");
|
||||
}
|
||||
|
||||
insertMap.put("resultMsg", String.valueOf(errorMsg));
|
||||
|
||||
// logHistoryService.insertLogHistory(insertMap, visitLogParamMap);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
log.debug("WebServiceController selectReservation END");
|
||||
|
||||
|
||||
return HttpUtil.makeHashToJsonModelAndView(map);
|
||||
}
|
||||
|
||||
/**
|
||||
* 시술 목록 상세 조회
|
||||
*
|
||||
* @param request
|
||||
* @param response
|
||||
* @return
|
||||
*/
|
||||
@RequestMapping(value="/webservice/selectReservationCnt.do")
|
||||
public ModelAndView selectReservationCnt(HttpSession session, HttpServletRequest request, HttpServletResponse response) {
|
||||
|
||||
log.debug("WebServiceController selectReservationCnt START");
|
||||
|
||||
HashMap<String, Object> paramMap = HttpUtil.getParameterMap(request);
|
||||
HashMap<String, Object> map = new HashMap<String, Object>();
|
||||
StringBuffer errorMsg = new StringBuffer();
|
||||
|
||||
try{
|
||||
map = webServiceService.selectReservationCnt(paramMap);
|
||||
}catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
errorMsg.append(e);
|
||||
return null;
|
||||
}finally {
|
||||
if(Constants.OK == map.get("msgCode")) {
|
||||
|
||||
}else{
|
||||
if(null == map.get("msgCode") || ("").equals(map.get("msgCode"))) {
|
||||
map.put("msgCode", Constants.FAIL);
|
||||
}
|
||||
|
||||
map.put("success", false);
|
||||
if(null == map.get("msgDesc") || ("").equals(map.get("msgDesc"))) {
|
||||
map.put("msgDesc","정상적으로 수행되지 않았습니다. 관리자에게 문의하시기 바랍니다. (E0029)");
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
HashMap<String, Object> visitLogParamMap = RequestLogUtil.getVisitLogParameterMap(request);
|
||||
HashMap<String, Object> insertMap = new HashMap<String, Object>();
|
||||
|
||||
insertMap.put("url", "/webservice/selectReservationCnt.do");
|
||||
insertMap.put("func", "selectReservationCnt");
|
||||
insertMap.put("funcName", "예약 조회");
|
||||
insertMap.put("service", "webServiceService");
|
||||
insertMap.put("serviceName", "예약 상세");
|
||||
insertMap.put("requestValue", String.valueOf(paramMap));
|
||||
insertMap.put("responseValue", String.valueOf(map));
|
||||
;
|
||||
if(("true").equals(String.valueOf(map.get("success")))){
|
||||
insertMap.put("resultCode", "SUCCESS");
|
||||
}else{
|
||||
insertMap.put("resultCode", "ERROR");
|
||||
}
|
||||
|
||||
insertMap.put("resultMsg", String.valueOf(errorMsg));
|
||||
|
||||
// logHistoryService.insertLogHistory(insertMap, visitLogParamMap);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
log.debug("WebServiceController selectReservationCnt END");
|
||||
|
||||
|
||||
return HttpUtil.makeHashToJsonModelAndView(map);
|
||||
}
|
||||
|
||||
/**
|
||||
* 예약 저장
|
||||
*
|
||||
* @param request
|
||||
* @param response
|
||||
* @return
|
||||
*/
|
||||
@RequestMapping(value="/webservice/insertReservation.do")
|
||||
public ModelAndView insertReservation(HttpSession session, HttpServletRequest request, HttpServletResponse response) {
|
||||
|
||||
log.debug("WebServiceController insertReservation START");
|
||||
|
||||
HashMap<String, Object> paramMap = HttpUtil.getParameterMap(request);
|
||||
HashMap<String, Object> map = new HashMap<String, Object>();
|
||||
StringBuffer errorMsg = new StringBuffer();
|
||||
|
||||
try{
|
||||
map = webServiceService.insertReservation(paramMap);
|
||||
log.debug(map + "TEST");
|
||||
}catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
errorMsg.append(e);
|
||||
return null;
|
||||
}finally {
|
||||
if(Constants.OK == map.get("msgCode")) {
|
||||
|
||||
}else{
|
||||
if(null == map.get("msgCode") || ("").equals(map.get("msgCode"))) {
|
||||
map.put("msgCode", Constants.FAIL);
|
||||
}
|
||||
|
||||
map.put("success", false);
|
||||
if(null == map.get("msgDesc") || ("").equals(map.get("msgDesc"))) {
|
||||
map.put("msgDesc","정상적으로 수행되지 않았습니다. 관리자에게 문의하시기 바랍니다. (E0029)");
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
HashMap<String, Object> visitLogParamMap = RequestLogUtil.getVisitLogParameterMap(request);
|
||||
HashMap<String, Object> insertMap = new HashMap<String, Object>();
|
||||
|
||||
insertMap.put("url", "/webservice/insertReservation.do");
|
||||
insertMap.put("func", "selectReservationCnt");
|
||||
insertMap.put("funcName", "예약 저장");
|
||||
insertMap.put("service", "webServiceService");
|
||||
insertMap.put("serviceName", "예약 저장");
|
||||
insertMap.put("requestValue", String.valueOf(paramMap));
|
||||
insertMap.put("responseValue", String.valueOf(map));
|
||||
;
|
||||
if(("true").equals(String.valueOf(map.get("success")))){
|
||||
insertMap.put("resultCode", "SUCCESS");
|
||||
}else{
|
||||
insertMap.put("resultCode", "ERROR");
|
||||
}
|
||||
|
||||
insertMap.put("resultMsg", String.valueOf(errorMsg));
|
||||
|
||||
// logHistoryService.insertLogHistory(insertMap, visitLogParamMap);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
log.debug("WebServiceController insertReservation END");
|
||||
|
||||
|
||||
return HttpUtil.makeHashToJsonModelAndView(map);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,83 @@
|
||||
package com.madeuhome.controller.web.webskin;
|
||||
|
||||
import com.madeuhome.init.ManagerDraftAction;
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
import jakarta.servlet.http.HttpSession;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
|
||||
|
||||
@Slf4j
|
||||
@Controller
|
||||
public class WebSkinController extends ManagerDraftAction{
|
||||
|
||||
/**
|
||||
* 색소 및 미백 화면으로 이동.
|
||||
*
|
||||
* @param request
|
||||
* @param response
|
||||
* @return
|
||||
*/
|
||||
@RequestMapping(value="/webskin/selectSkinPigmentIntro.do")
|
||||
public String selectSkinPigmentIntro(HttpSession session,HttpServletRequest request) {
|
||||
|
||||
log.debug("WebSkinController selectSkinPigmentIntro START");
|
||||
|
||||
log.debug("WebSkinController selectSkinPigmentIntro END");
|
||||
return "/web/skin/skinPigmentSelect";
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 여드름 및 피부트러블 화면으로 이동.
|
||||
*
|
||||
* @param request
|
||||
* @param response
|
||||
* @return
|
||||
*/
|
||||
@RequestMapping(value="/webskin/selectSkinProblemIntro.do")
|
||||
public String selectSkinProblemIntro(HttpSession session,HttpServletRequest request) {
|
||||
|
||||
log.debug("WebSkinController selectSkinProblemIntro START");
|
||||
|
||||
log.debug("WebSkinController selectSkinProblemIntro END");
|
||||
return "/web/skin/skinProblemSelect";
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 모공축소 및 피부결 개선 화면으로 이동.
|
||||
*
|
||||
* @param request
|
||||
* @param response
|
||||
* @return
|
||||
*/
|
||||
@RequestMapping(value="/webskin/selectSkinTextureIntro.do")
|
||||
public String selectSkinTextureIntro(HttpSession session,HttpServletRequest request) {
|
||||
|
||||
log.debug("WebSkinController selectSkinTextureIntro START");
|
||||
|
||||
log.debug("WebSkinController selectSkinTextureIntro END");
|
||||
return "/web/skin/skinTextureSelect";
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 제모 화면으로 이동.
|
||||
*
|
||||
* @param request
|
||||
* @param response
|
||||
* @return
|
||||
*/
|
||||
@RequestMapping(value="/webskin/selectSkinWaxingIntro.do")
|
||||
public String selectSkinWaxingIntro(HttpSession session,HttpServletRequest request) {
|
||||
|
||||
log.debug("WebSkinController selectSkinWaxingIntro START");
|
||||
|
||||
log.debug("WebSkinController selectSkinWaxingIntro END");
|
||||
return "/web/skin/skinWaxingSelect";
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,240 @@
|
||||
package com.madeuhome.controller.web.webvoc;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
|
||||
import com.madeuhome.constants.Constants;
|
||||
import com.madeuhome.init.ManagerDraftAction;
|
||||
import com.madeuhome.service.web.webvoc.WebVOCService;
|
||||
import com.madeuhome.util.HttpUtil;
|
||||
import com.madeuhome.util.RequestLogUtil;
|
||||
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import jakarta.servlet.http.HttpSession;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
|
||||
@Slf4j
|
||||
@Controller
|
||||
public class WebVOCController extends ManagerDraftAction{
|
||||
@Autowired
|
||||
private WebVOCService webVocService;
|
||||
|
||||
/**
|
||||
* 칭찬불만접수 화면으로 이동.
|
||||
*
|
||||
* @param request
|
||||
* @param response
|
||||
* @return
|
||||
*/
|
||||
@RequestMapping(value="/webvoc/selectWebVOCIntro.do")
|
||||
public String selectWebVOCIntro(HttpSession session,HttpServletRequest request) {
|
||||
|
||||
log.debug("WebVOCController selectWebVOCIntro START");
|
||||
|
||||
log.debug("WebVOCController selectWebVOCIntro END");
|
||||
return "/web/voc/vocSelect";
|
||||
}
|
||||
|
||||
/**
|
||||
* <b>휴대폰 인증 확인</b>
|
||||
* request:
|
||||
* response : msgCode, msgDesc
|
||||
*
|
||||
* @param request
|
||||
* @param response
|
||||
* @return
|
||||
*/
|
||||
@RequestMapping(value="/webvoc/selectPhoneAuthCheck.do")
|
||||
public ModelAndView selectPhoneAuthCheck(HttpSession session, HttpServletRequest request, HttpServletResponse response) {
|
||||
log.debug("WebVOCController selectPhoneAuthCheck START");
|
||||
|
||||
HashMap<String, Object> paramMap = HttpUtil.getParameterMap(request);
|
||||
HashMap<String, Object> map = new HashMap<String, Object>();
|
||||
|
||||
StringBuffer errorMsg = new StringBuffer();
|
||||
|
||||
try{
|
||||
paramMap.put("loginUserId", String.valueOf(session.getAttribute("loginUserId")));
|
||||
paramMap.put("muUserId", String.valueOf(session.getAttribute("loginUserId")));
|
||||
map = webVocService.selectPhoneAuthCheck(paramMap);
|
||||
}catch(Exception e){
|
||||
e.printStackTrace();
|
||||
errorMsg.append(e);
|
||||
}finally {
|
||||
if(Constants.OK == map.get("msgCode")) {
|
||||
|
||||
}else{
|
||||
map.put("msgCode", Constants.FAIL);
|
||||
map.put("success", false);
|
||||
if(null == map.get("msgDesc") || ("").equals(map.get("msgDesc"))) {
|
||||
map.put("msgDesc","정상적으로 수행되지 않았습니다. (E0042)");
|
||||
}
|
||||
|
||||
try {
|
||||
HashMap<String, Object> visitLogParamMap = RequestLogUtil.getVisitLogParameterMap(request);
|
||||
HashMap<String, Object> insertMap = new HashMap<String, Object>();
|
||||
|
||||
insertMap.put("url", "/webvoc/selectPhoneAuthCheck.do");
|
||||
insertMap.put("func", "selectPhoneAuthCheck");
|
||||
insertMap.put("funcName", "휴대폰 인증 확인");
|
||||
insertMap.put("service", "webPhoneAuthService");
|
||||
insertMap.put("serviceName", "휴대폰 인증");
|
||||
insertMap.put("requestValue", String.valueOf(paramMap));
|
||||
insertMap.put("responseValue", String.valueOf(map));
|
||||
insertMap.put("tId", map.get("tId"));
|
||||
if((String.valueOf(errorMsg)).equals("") || (String.valueOf(errorMsg) == null) || String.valueOf(errorMsg).length() == 0){
|
||||
insertMap.put("resultCode", "SUCCESS");
|
||||
}else{
|
||||
insertMap.put("resultCode", "ERROR");
|
||||
}
|
||||
insertMap.put("resultMsg", String.valueOf(errorMsg));
|
||||
insertMap.put("muUserId", paramMap.get("muUserId"));
|
||||
|
||||
// logHistoryService.insertLogHistory(insertMap, visitLogParamMap);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
log.debug("WebVOCController selectPhoneAuthCheck END");
|
||||
return HttpUtil.makeHashToJsonModelAndView(map);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* <b>인증번호 등록 </b>
|
||||
* request:
|
||||
* response : msgCode, msgDesc
|
||||
*
|
||||
* @param request
|
||||
* @param response
|
||||
* @return
|
||||
*/
|
||||
@RequestMapping(value="/webvoc/insertPhoneAuth.do")
|
||||
public ModelAndView insertPhoneAuth(HttpSession session, HttpServletRequest request, HttpServletResponse response) {
|
||||
log.debug("WebVOCController insertPhoneAuth START");
|
||||
|
||||
HashMap<String, Object> paramMap = HttpUtil.getParameterMap(request);
|
||||
HashMap<String, Object> map = new HashMap<String, Object>();
|
||||
|
||||
StringBuffer errorMsg = new StringBuffer();
|
||||
|
||||
try{
|
||||
paramMap.put("regId", String.valueOf(session.getAttribute("loginUserId")));
|
||||
paramMap.put("modId", String.valueOf(session.getAttribute("loginUserId")));
|
||||
map = webVocService.insertPhoneAuth(paramMap);
|
||||
}catch(Exception e){
|
||||
e.printStackTrace();
|
||||
errorMsg.append(e);
|
||||
}finally {
|
||||
if(Constants.OK == map.get("msgCode")) {
|
||||
|
||||
}else{
|
||||
map.put("msgCode", Constants.FAIL);
|
||||
map.put("success", false);
|
||||
if(null == map.get("msgDesc") || ("").equals(map.get("msgDesc"))) {
|
||||
map.put("msgDesc","정상적으로 수행되지 않았습니다. (E0043)");
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
HashMap<String, Object> visitLogParamMap = RequestLogUtil.getVisitLogParameterMap(request);
|
||||
HashMap<String, Object> insertMap = new HashMap<String, Object>();
|
||||
|
||||
insertMap.put("url", "/webvoc/insertPhoneAuth.do");
|
||||
insertMap.put("func", "insertPhoneAuth");
|
||||
insertMap.put("funcName", "인증번호 등록");
|
||||
insertMap.put("service", "webPhoneAuthService");
|
||||
insertMap.put("serviceName", "인증번호");
|
||||
insertMap.put("requestValue", String.valueOf(paramMap));
|
||||
insertMap.put("responseValue", String.valueOf(map));
|
||||
insertMap.put("tId", map.get("tId"));
|
||||
if(("false").equals(String.valueOf(map.get("success")))){
|
||||
insertMap.put("resultCode", "ERROR");
|
||||
}else{
|
||||
insertMap.put("resultCode", "SUCCESS");
|
||||
}
|
||||
insertMap.put("resultMsg", String.valueOf(errorMsg));
|
||||
insertMap.put("sbUserId", paramMap.get("sbUserId"));
|
||||
|
||||
// logHistoryService.insertLogHistory(insertMap, visitLogParamMap);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
log.debug("WebVOCController insertPhoneAuth END");
|
||||
return HttpUtil.makeHashToJsonModelAndView(map);
|
||||
}
|
||||
|
||||
/**
|
||||
* <b>인증번호 등록 </b>
|
||||
* request:
|
||||
* response : msgCode, msgDesc
|
||||
*
|
||||
* @param request
|
||||
* @param response
|
||||
* @return
|
||||
*/
|
||||
@RequestMapping(value="/webvoc/insertVOC.do")
|
||||
public ModelAndView insertVOC(HttpSession session, HttpServletRequest request, HttpServletResponse response) {
|
||||
log.debug("WebVOCController insertVOC START");
|
||||
|
||||
HashMap<String, Object> paramMap = HttpUtil.getParameterMap(request);
|
||||
HashMap<String, Object> map = new HashMap<String, Object>();
|
||||
|
||||
StringBuffer errorMsg = new StringBuffer();
|
||||
|
||||
log.debug(paramMap+ "");
|
||||
log.debug(map + "");
|
||||
|
||||
try{
|
||||
map = webVocService.insertVOC(paramMap);
|
||||
}catch(Exception e){
|
||||
e.printStackTrace();
|
||||
errorMsg.append(e);
|
||||
}finally {
|
||||
if(Constants.OK == map.get("msgCode")) {
|
||||
|
||||
}else{
|
||||
map.put("msgCode", Constants.FAIL);
|
||||
map.put("success", false);
|
||||
if(null == map.get("msgDesc") || ("").equals(map.get("msgDesc"))) {
|
||||
map.put("msgDesc","정상적으로 수행되지 않았습니다. (E0043)");
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
HashMap<String, Object> visitLogParamMap = RequestLogUtil.getVisitLogParameterMap(request);
|
||||
HashMap<String, Object> insertMap = new HashMap<String, Object>();
|
||||
|
||||
insertMap.put("url", "/webvoc/insertPhoneAuth.do");
|
||||
insertMap.put("func", "insertPhoneAuth");
|
||||
insertMap.put("funcName", "인증번호 등록");
|
||||
insertMap.put("service", "webPhoneAuthService");
|
||||
insertMap.put("serviceName", "인증번호");
|
||||
insertMap.put("requestValue", String.valueOf(paramMap));
|
||||
insertMap.put("responseValue", String.valueOf(map));
|
||||
insertMap.put("tId", map.get("tId"));
|
||||
if(("false").equals(String.valueOf(map.get("success")))){
|
||||
insertMap.put("resultCode", "ERROR");
|
||||
}else{
|
||||
insertMap.put("resultCode", "SUCCESS");
|
||||
}
|
||||
insertMap.put("resultMsg", String.valueOf(errorMsg));
|
||||
insertMap.put("sbUserId", paramMap.get("sbUserId"));
|
||||
|
||||
// logHistoryService.insertLogHistory(insertMap, visitLogParamMap);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
log.debug("WebVOCController insertVOC END");
|
||||
return HttpUtil.makeHashToJsonModelAndView(map);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,96 @@
|
||||
package com.madeuhome.controller.web.webyoutube;
|
||||
|
||||
import com.madeuhome.constants.Constants;
|
||||
import com.madeuhome.init.ManagerDraftAction;
|
||||
import com.madeuhome.service.common.loghistory.LogHistoryService;
|
||||
import com.madeuhome.service.web.webyoutube.WebYoutubeService;
|
||||
import com.madeuhome.util.HttpUtil;
|
||||
import com.madeuhome.util.RequestLogUtil;
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import jakarta.servlet.http.HttpSession;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
||||
|
||||
@Slf4j
|
||||
@Controller
|
||||
public class WebYoutubeController extends ManagerDraftAction{
|
||||
|
||||
@Autowired
|
||||
private WebYoutubeService webYoutubeService;
|
||||
|
||||
@Autowired
|
||||
private LogHistoryService logHistoryService;
|
||||
|
||||
/**
|
||||
* 유튜브 정보 리스트 조회
|
||||
*
|
||||
* @param request
|
||||
* @param response
|
||||
* @return
|
||||
*/
|
||||
@RequestMapping(value="/webyoutube/selectListWebYoutube.do")
|
||||
public ModelAndView selectListWebYoutube(HttpSession session,HttpServletRequest request, HttpServletResponse response) {
|
||||
|
||||
log.debug("WebYoutubeController selectListWebYoutube START");
|
||||
|
||||
HashMap<String, Object> paramMap = HttpUtil.getParameterMap(request);
|
||||
HashMap<String, Object> map = new HashMap<String, Object>();
|
||||
StringBuffer errorMsg = new StringBuffer();
|
||||
|
||||
try{
|
||||
map = webYoutubeService.selectListWebYoutube(paramMap);
|
||||
}catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
errorMsg.append(e);
|
||||
return null;
|
||||
}finally {
|
||||
if(Constants.OK == map.get("msgCode")) {
|
||||
|
||||
}else{
|
||||
if(null == map.get("msgCode") || ("").equals(map.get("msgCode"))) {
|
||||
map.put("msgCode", Constants.FAIL);
|
||||
}
|
||||
|
||||
map.put("success", false);
|
||||
if(null == map.get("msgDesc") || ("").equals(map.get("msgDesc"))) {
|
||||
map.put("msgDesc","정상적으로 수행되지 않았습니다. 관리자에게 문의하시기 바랍니다. (E0029)");
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
HashMap<String, Object> visitLogParamMap = RequestLogUtil.getVisitLogParameterMap(request);
|
||||
HashMap<String, Object> insertMap = new HashMap<String, Object>();
|
||||
|
||||
insertMap.put("url", "/webyoutube/selectListWebYoutube.do");
|
||||
insertMap.put("func", "selectListWebYoutube");
|
||||
insertMap.put("funcName", "유튜브 리스트 조회");
|
||||
insertMap.put("service", "webYoutubeService");
|
||||
insertMap.put("serviceName", "유튜브");
|
||||
insertMap.put("requestValue", String.valueOf(paramMap));
|
||||
insertMap.put("responseValue", String.valueOf(map));
|
||||
;
|
||||
if(("true").equals(String.valueOf(map.get("success")))){
|
||||
insertMap.put("resultCode", "SUCCESS");
|
||||
}else{
|
||||
insertMap.put("resultCode", "ERROR");
|
||||
}
|
||||
|
||||
insertMap.put("resultMsg", String.valueOf(errorMsg));
|
||||
insertMap.put("muMemberId", paramMap.get("muMemberId"));
|
||||
|
||||
logHistoryService.insertLogHistory(insertMap, visitLogParamMap);
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
log.debug("WebYoutubeController selectListWebYoutube END");
|
||||
return HttpUtil.makeHashToJsonModelAndView(map);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
package com.madeuhome.dao.common.loghistory;
|
||||
|
||||
import jakarta.annotation.PostConstruct;
|
||||
import org.mybatis.spring.SqlSessionTemplate;
|
||||
import org.mybatis.spring.support.SqlSessionDaoSupport;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.dao.DataAccessException;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
||||
@Repository
|
||||
public class LogHistorySqlMapDAO extends SqlSessionDaoSupport{
|
||||
|
||||
@Autowired
|
||||
private SqlSessionTemplate sqlSessionTemplate;
|
||||
|
||||
@PostConstruct
|
||||
void init() {
|
||||
setSqlSessionTemplate(sqlSessionTemplate);
|
||||
}
|
||||
|
||||
/**
|
||||
* 오류 로그 정보 등록
|
||||
*
|
||||
* @param Map
|
||||
* @return
|
||||
* @throws DataAccessException
|
||||
*/
|
||||
public int insertLogHistory(HashMap<String, Object> paramMap)
|
||||
throws DataAccessException {
|
||||
logger.debug("LogHistorySqlMapDAO insertLogHistory START");
|
||||
String sqlId = "LogHistory.insertLogHistory";
|
||||
logger.debug("LogHistorySqlMapDAO insertLogHistory END");
|
||||
return getSqlSession().insert(sqlId, paramMap);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
package com.madeuhome.dao.common.visitlog;
|
||||
|
||||
import jakarta.annotation.PostConstruct;
|
||||
import org.mybatis.spring.SqlSessionTemplate;
|
||||
import org.mybatis.spring.support.SqlSessionDaoSupport;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.dao.DataAccessException;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
||||
@Repository
|
||||
public class VisitLogSqlMapDAO extends SqlSessionDaoSupport{
|
||||
|
||||
@Autowired
|
||||
private SqlSessionTemplate sqlSessionTemplate;
|
||||
|
||||
@PostConstruct
|
||||
void init() {
|
||||
setSqlSessionTemplate(sqlSessionTemplate);
|
||||
}
|
||||
|
||||
/**
|
||||
* 접속 로그 등록
|
||||
*
|
||||
* @param Map
|
||||
* @return
|
||||
* @throws DataAccessException
|
||||
*/
|
||||
public int insertVisitLog(HashMap<String, Object> paramMap)
|
||||
throws DataAccessException {
|
||||
logger.debug("VisitLogSqlMapDAO insertVisitLog START");
|
||||
String sqlId = "VisitLog.insertVisitLog";
|
||||
logger.debug("VisitLogSqlMapDAO insertVisitLog END");
|
||||
return getSqlSession().insert(sqlId, paramMap);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,140 @@
|
||||
package com.madeuhome.dao.web.webevent;
|
||||
|
||||
import jakarta.annotation.PostConstruct;
|
||||
import org.mybatis.spring.SqlSessionTemplate;
|
||||
import org.mybatis.spring.support.SqlSessionDaoSupport;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.dao.DataAccessException;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@Repository
|
||||
public class WebEventSqlMapDAO extends SqlSessionDaoSupport{
|
||||
|
||||
@Autowired
|
||||
private SqlSessionTemplate sqlSessionTemplate;
|
||||
|
||||
@PostConstruct
|
||||
void init() {
|
||||
setSqlSessionTemplate(sqlSessionTemplate);
|
||||
}
|
||||
|
||||
/**
|
||||
* 이벤트 카테고리 리스트 조회 (List)
|
||||
*
|
||||
* @param Map
|
||||
* @return
|
||||
* @throws DataAccessException
|
||||
*/
|
||||
public List<Map<String, Object>> selectListWebEvent(HashMap<String, Object> paramMap)
|
||||
throws DataAccessException {
|
||||
logger.debug("WebEventSqlMapDAO selectListWebEvent START");
|
||||
String sqlId = "WebEvent.selectListWebEvent";
|
||||
logger.debug("WebEventSqlMapDAO selectListWebEvent END");
|
||||
return getSqlSession().selectList(sqlId, paramMap);
|
||||
}
|
||||
|
||||
/**
|
||||
* 이벤트 정보 리스트 조회 (List)
|
||||
*
|
||||
* @param Map
|
||||
* @return
|
||||
* @throws DataAccessException
|
||||
*/
|
||||
public List<Map<String, Object>> selectListEvent(HashMap<String, Object> paramMap)
|
||||
throws DataAccessException {
|
||||
logger.debug("WebEventSqlMapDAO selectListEvent START");
|
||||
String sqlId = "WebEvent.selectListEvent";
|
||||
logger.debug("WebEventSqlMapDAO selectListEvent END");
|
||||
return getSqlSession().selectList(sqlId, paramMap);
|
||||
}
|
||||
|
||||
/**
|
||||
* 이벤트안내 정보 이벤트 상세 조회
|
||||
*
|
||||
* @param Map
|
||||
* @return
|
||||
* @throws DataAccessException
|
||||
*/
|
||||
public Map<String, Object> selectEventDetail(HashMap<String, Object> paramMap) throws DataAccessException {
|
||||
logger.debug("WebEventSqlMapDAO selectEventDetail START");
|
||||
|
||||
String sqlId = "WebEvent.selectEventDetail";
|
||||
|
||||
logger.debug("WebEventSqlMapDAO selectEventDetail END");
|
||||
|
||||
return getSqlSession().selectOne(sqlId, paramMap);
|
||||
}
|
||||
|
||||
/**
|
||||
* 이벤트안내 정보 이벤트 목록 조회 (List)
|
||||
*
|
||||
* @param Map
|
||||
* @return
|
||||
* @throws DataAccessException
|
||||
*/
|
||||
public List<Map<String, Object>> selectListEventSub(HashMap<String, Object> paramMap) throws DataAccessException {
|
||||
logger.debug("WebEventSqlMapDAO selectListEventSub START");
|
||||
|
||||
String sqlId = "WebEvent.selectListEventSub";
|
||||
|
||||
logger.debug("WebEventSqlMapDAO selectListEventSub END");
|
||||
|
||||
return getSqlSession().selectList(sqlId, paramMap);
|
||||
}
|
||||
|
||||
/**
|
||||
* 예약 상세 조회
|
||||
*
|
||||
* @param Map
|
||||
* @return
|
||||
* @throws DataAccessException
|
||||
*/
|
||||
public Map<String, Object> selectReservationCnt(HashMap<String, Object> paramMap) throws DataAccessException {
|
||||
logger.debug("WebEventSqlMapDAO selectReservationCnt START");
|
||||
|
||||
String sqlId = "WebEvent.selectReservationCnt";
|
||||
|
||||
logger.debug("WebEventSqlMapDAO selectReservationCnt END");
|
||||
|
||||
return getSqlSession().selectOne(sqlId, paramMap);
|
||||
}
|
||||
|
||||
/**
|
||||
* 예약 시술 정보 조회
|
||||
*
|
||||
* @param Map
|
||||
* @return
|
||||
* @throws DataAccessException
|
||||
*/
|
||||
public Map<String, Object> selectReservationService(HashMap<String, Object> paramMap) throws DataAccessException {
|
||||
logger.debug("WebEventSqlMapDAO selectReservationService START");
|
||||
|
||||
String sqlId = "WebEvent.selectReservationService";
|
||||
|
||||
logger.debug("WebEventSqlMapDAO selectReservationService END");
|
||||
|
||||
return getSqlSession().selectOne(sqlId, paramMap);
|
||||
}
|
||||
/**
|
||||
* 예약 정보 저장
|
||||
*
|
||||
* @param Map
|
||||
* @return
|
||||
* @throws DataAccessException
|
||||
*/
|
||||
public Map<String, Object> insertReservation(HashMap<String, Object> paramMap) throws DataAccessException {
|
||||
logger.debug("WebEventSqlMapDAO insertReservation START");
|
||||
|
||||
String sqlId = "WebEvent.insertReservation";
|
||||
|
||||
logger.debug("WebEventSqlMapDAO insertReservation END");
|
||||
|
||||
getSqlSession().insert(sqlId, paramMap);
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,69 @@
|
||||
package com.madeuhome.dao.web.webmainbanner;
|
||||
|
||||
import jakarta.annotation.PostConstruct;
|
||||
import org.mybatis.spring.SqlSessionTemplate;
|
||||
import org.mybatis.spring.support.SqlSessionDaoSupport;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.dao.DataAccessException;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@Repository
|
||||
public class WebMainBannerSqlMapDAO extends SqlSessionDaoSupport{
|
||||
|
||||
@Autowired
|
||||
private SqlSessionTemplate sqlSessionTemplate;
|
||||
|
||||
@PostConstruct
|
||||
void init() {
|
||||
setSqlSessionTemplate(sqlSessionTemplate);
|
||||
}
|
||||
|
||||
/**
|
||||
* 메인 배너 정보 총 갯수 조회 (total count)
|
||||
*
|
||||
* @param Map
|
||||
* @return
|
||||
* @throws DataAccessException
|
||||
*/
|
||||
public List<Map<String, Object>> selectTotalWebMainBannerCount(HashMap<String, Object> paramMap)
|
||||
throws DataAccessException {
|
||||
logger.debug("WebMainBannerSqlMapDAO selectTotalWebMainBannerCount START");
|
||||
String sqlId = "WebMainBanner.selectTotalWebMainBannerCount";
|
||||
logger.debug("WebMainBannerSqlMapDAO selectTotalWebMainBannerCount END");
|
||||
return getSqlSession().selectList(sqlId, paramMap);
|
||||
}
|
||||
|
||||
/**
|
||||
* 메인 배너 정보 리스트 조회 (List)
|
||||
*
|
||||
* @param Map
|
||||
* @return
|
||||
* @throws DataAccessException
|
||||
*/
|
||||
public List<Map<String, Object>> selectListWebMainBanner(HashMap<String, Object> paramMap)
|
||||
throws DataAccessException {
|
||||
logger.debug("WebMainBannerSqlMapDAO selectListWebMainBanner START");
|
||||
String sqlId = "WebMainBanner.selectListWebMainBanner";
|
||||
logger.debug("WebMainBannerSqlMapDAO selectListWebMainBanner END");
|
||||
return getSqlSession().selectList(sqlId, paramMap);
|
||||
}
|
||||
|
||||
/**
|
||||
* 메인 배너 정보 조회
|
||||
*
|
||||
* @param Map
|
||||
* @return
|
||||
* @throws DataAccessException
|
||||
*/
|
||||
public List<Map<String, Object>> selectWebMainBanner(HashMap<String, Object> paramMap)
|
||||
throws DataAccessException {
|
||||
logger.debug("WebMainBannerSqlMapDAO selectWebMainBanner START");
|
||||
String sqlId = "WebMainBanner.selectWebMainBanner";
|
||||
logger.debug("WebMainBannerSqlMapDAO selectWebMainBanner END");
|
||||
return getSqlSession().selectList(sqlId, paramMap);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,88 @@
|
||||
package com.madeuhome.dao.web.webphoto;
|
||||
|
||||
import jakarta.annotation.PostConstruct;
|
||||
import org.mybatis.spring.SqlSessionTemplate;
|
||||
import org.mybatis.spring.support.SqlSessionDaoSupport;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.dao.DataAccessException;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@Repository
|
||||
public class WebPhotoSqlMapDAO extends SqlSessionDaoSupport{
|
||||
|
||||
@Autowired
|
||||
private SqlSessionTemplate sqlSessionTemplate;
|
||||
|
||||
@PostConstruct
|
||||
void init() {
|
||||
setSqlSessionTemplate(sqlSessionTemplate);
|
||||
}
|
||||
|
||||
/**
|
||||
* 전후사진 카테고리 리스트 조회 (List)
|
||||
*
|
||||
* @param Map
|
||||
* @return
|
||||
* @throws DataAccessException
|
||||
*/
|
||||
public List<Map<String, Object>> selectListWebPhoto(HashMap<String, Object> paramMap)
|
||||
throws DataAccessException {
|
||||
logger.debug("WebPhotoSqlMapDAO selectListWebPhoto START");
|
||||
String sqlId = "WebPhoto.selectListWebPhoto";
|
||||
logger.debug("WebPhotoSqlMapDAO selectListWebPhoto END");
|
||||
return getSqlSession().selectList(sqlId, paramMap);
|
||||
}
|
||||
|
||||
/**
|
||||
* 전후사진 정보 리스트 조회 (List)
|
||||
*
|
||||
* @param Map
|
||||
* @return
|
||||
* @throws DataAccessException
|
||||
*/
|
||||
public List<Map<String, Object>> selectListPhoto(HashMap<String, Object> paramMap)
|
||||
throws DataAccessException {
|
||||
logger.debug("WebPhotoSqlMapDAO selectListPhoto START");
|
||||
String sqlId = "WebPhoto.selectListPhoto";
|
||||
logger.debug("WebPhotoSqlMapDAO selectListPhoto END");
|
||||
return getSqlSession().selectList(sqlId, paramMap);
|
||||
}
|
||||
|
||||
/**
|
||||
* 전후사진안내 정보 전후사진 상세 조회
|
||||
*
|
||||
* @param Map
|
||||
* @return
|
||||
* @throws DataAccessException
|
||||
*/
|
||||
public Map<String, Object> selectPhotoDetail(HashMap<String, Object> paramMap) throws DataAccessException {
|
||||
logger.debug("WebPhotoSqlMapDAO selectPhotoDetail START");
|
||||
|
||||
String sqlId = "WebPhoto.selectPhotoDetail";
|
||||
|
||||
logger.debug("WebPhotoSqlMapDAO selectPhotoDetail END");
|
||||
|
||||
return getSqlSession().selectOne(sqlId, paramMap);
|
||||
}
|
||||
|
||||
/**
|
||||
* 전후사진안내 정보 전후사진 목록 조회 (List)
|
||||
*
|
||||
* @param Map
|
||||
* @return
|
||||
* @throws DataAccessException
|
||||
*/
|
||||
public List<Map<String, Object>> selectListPhotoSub(HashMap<String, Object> paramMap) throws DataAccessException {
|
||||
logger.debug("WebPhotoSqlMapDAO selectListPhotoSub START");
|
||||
|
||||
String sqlId = "WebPhoto.selectListPhotoSub";
|
||||
|
||||
logger.debug("WebPhotoSqlMapDAO selectListPhotoSub END");
|
||||
|
||||
return getSqlSession().selectList(sqlId, paramMap);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,69 @@
|
||||
package com.madeuhome.dao.web.webpopup;
|
||||
|
||||
import jakarta.annotation.PostConstruct;
|
||||
import org.mybatis.spring.SqlSessionTemplate;
|
||||
import org.mybatis.spring.support.SqlSessionDaoSupport;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.dao.DataAccessException;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@Repository
|
||||
public class WebPopupSqlMapDAO extends SqlSessionDaoSupport{
|
||||
|
||||
@Autowired
|
||||
private SqlSessionTemplate sqlSessionTemplate;
|
||||
|
||||
@PostConstruct
|
||||
void init() {
|
||||
setSqlSessionTemplate(sqlSessionTemplate);
|
||||
}
|
||||
|
||||
/**
|
||||
* 이벤트 정보 총 갯수 조회 (total count)
|
||||
*
|
||||
* @param Map
|
||||
* @return
|
||||
* @throws DataAccessException
|
||||
*/
|
||||
public List<Map<String, Object>> selectTotalWebPopupCount(HashMap<String, Object> paramMap)
|
||||
throws DataAccessException {
|
||||
logger.debug("WebPopupSqlMapDAO selectTotalWebPopupCount START");
|
||||
String sqlId = "WebPopup.selectTotalWebPopupCount";
|
||||
logger.debug("WebPopupSqlMapDAO selectTotalWebPopupCount END");
|
||||
return getSqlSession().selectList(sqlId, paramMap);
|
||||
}
|
||||
|
||||
/**
|
||||
* 이벤트 정보 리스트 조회 (List)
|
||||
*
|
||||
* @param Map
|
||||
* @return
|
||||
* @throws DataAccessException
|
||||
*/
|
||||
public List<Map<String, Object>> selectListWebPopup(HashMap<String, Object> paramMap)
|
||||
throws DataAccessException {
|
||||
logger.debug("WebPopupSqlMapDAO selectListWebPopup START");
|
||||
String sqlId = "WebPopup.selectListWebPopup";
|
||||
logger.debug("WebPopupSqlMapDAO selectListWebPopup END");
|
||||
return getSqlSession().selectList(sqlId, paramMap);
|
||||
}
|
||||
|
||||
/**
|
||||
* 이벤트 정보 조회
|
||||
*
|
||||
* @param Map
|
||||
* @return
|
||||
* @throws DataAccessException
|
||||
*/
|
||||
public List<Map<String, Object>> selectWebPopup(HashMap<String, Object> paramMap)
|
||||
throws DataAccessException {
|
||||
logger.debug("WebPopupSqlMapDAO selectWebPopup START");
|
||||
String sqlId = "WebPopup.selectWebPopup";
|
||||
logger.debug("WebPopupSqlMapDAO selectWebPopup END");
|
||||
return getSqlSession().selectList(sqlId, paramMap);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,145 @@
|
||||
package com.madeuhome.dao.web.webservice;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.mybatis.spring.SqlSessionTemplate;
|
||||
import org.mybatis.spring.support.SqlSessionDaoSupport;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.dao.DataAccessException;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import jakarta.annotation.PostConstruct;
|
||||
|
||||
@Repository
|
||||
public class WebServiceSqlMapDAO extends SqlSessionDaoSupport{
|
||||
|
||||
@Autowired
|
||||
private SqlSessionTemplate sqlSessionTemplate;
|
||||
|
||||
@PostConstruct
|
||||
void init() {
|
||||
setSqlSessionTemplate(sqlSessionTemplate);
|
||||
}
|
||||
|
||||
/**
|
||||
* 시술관리 정보 카테고리 리스트 조회 (List)
|
||||
*
|
||||
* @param Map
|
||||
* @return
|
||||
* @throws DataAccessException
|
||||
*/
|
||||
public List<Map<String, Object>> selectListWebCategory(HashMap<String, Object> paramMap) throws DataAccessException {
|
||||
logger.debug("WebServiceSqlMapDAO selectListWebCategory START");
|
||||
|
||||
String sqlId = "WebService.selectListWebCategory";
|
||||
|
||||
logger.debug("WebServiceSqlMapDAO selectListWebCategory END");
|
||||
|
||||
return getSqlSession().selectList(sqlId, paramMap);
|
||||
}
|
||||
|
||||
/**
|
||||
* 시술관리 정보 시술 리스트 조회 (List)
|
||||
*
|
||||
* @param Map
|
||||
* @return
|
||||
* @throws DataAccessException
|
||||
*/
|
||||
public List<Map<String, Object>> selectListWebService(HashMap<String, Object> paramMap) throws DataAccessException {
|
||||
logger.debug("WebServiceSqlMapDAO selectListWebService START");
|
||||
|
||||
String sqlId = "WebService.selectListWebService";
|
||||
|
||||
logger.debug("WebServiceSqlMapDAO selectListWebService END");
|
||||
|
||||
return getSqlSession().selectList(sqlId, paramMap);
|
||||
}
|
||||
|
||||
/**
|
||||
* 시술관리 정보 시술 상세 조회
|
||||
*
|
||||
* @param Map
|
||||
* @return
|
||||
* @throws DataAccessException
|
||||
*/
|
||||
public Map<String, Object> selectServiceDetail(HashMap<String, Object> paramMap) throws DataAccessException {
|
||||
logger.debug("WebServiceSqlMapDAO selectServiceDetail START");
|
||||
|
||||
String sqlId = "WebService.selectServiceDetail";
|
||||
|
||||
logger.debug("WebServiceSqlMapDAO selectServiceDetail END");
|
||||
|
||||
return getSqlSession().selectOne(sqlId, paramMap);
|
||||
}
|
||||
|
||||
/**
|
||||
* 시술관리 정보 시술 목록 조회 (List)
|
||||
*
|
||||
* @param Map
|
||||
* @return
|
||||
* @throws DataAccessException
|
||||
*/
|
||||
public List<Map<String, Object>> selectListService(HashMap<String, Object> paramMap) throws DataAccessException {
|
||||
logger.debug("WebServiceSqlMapDAO selectListService START");
|
||||
|
||||
String sqlId = "WebService.selectListService";
|
||||
|
||||
logger.debug("WebServiceSqlMapDAO selectListService END");
|
||||
|
||||
return getSqlSession().selectList(sqlId, paramMap);
|
||||
}
|
||||
|
||||
/**
|
||||
* 예약 상세 조회
|
||||
*
|
||||
* @param Map
|
||||
* @return
|
||||
* @throws DataAccessException
|
||||
*/
|
||||
public Map<String, Object> selectReservationCnt(HashMap<String, Object> paramMap) throws DataAccessException {
|
||||
logger.debug("WebServiceSqlMapDAO selectReservationCnt START");
|
||||
|
||||
String sqlId = "WebService.selectReservationCnt";
|
||||
|
||||
logger.debug("WebServiceSqlMapDAO selectReservationCnt END");
|
||||
|
||||
return getSqlSession().selectOne(sqlId, paramMap);
|
||||
}
|
||||
|
||||
/**
|
||||
* 예약 시술 정보 조회
|
||||
*
|
||||
* @param Map
|
||||
* @return
|
||||
* @throws DataAccessException
|
||||
*/
|
||||
public Map<String, Object> selectReservationService(HashMap<String, Object> paramMap) throws DataAccessException {
|
||||
logger.debug("WebServiceSqlMapDAO selectReservationService START");
|
||||
|
||||
String sqlId = "WebService.selectReservationService";
|
||||
|
||||
logger.debug("WebServiceSqlMapDAO selectReservationService END");
|
||||
|
||||
return getSqlSession().selectOne(sqlId, paramMap);
|
||||
}
|
||||
/**
|
||||
* 예약 정보 저장
|
||||
*
|
||||
* @param Map
|
||||
* @return
|
||||
* @throws DataAccessException
|
||||
*/
|
||||
public Map<String, Object> insertReservation(HashMap<String, Object> paramMap) throws DataAccessException {
|
||||
logger.debug("WebServiceSqlMapDAO insertReservation START");
|
||||
|
||||
String sqlId = "WebService.insertReservation";
|
||||
|
||||
logger.debug("WebServiceSqlMapDAO insertReservation END");
|
||||
|
||||
getSqlSession().insert(sqlId, paramMap);
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
129
src/main/java/com/madeuhome/dao/web/webvoc/WebVOCSqlMapDAO.java
Normal file
129
src/main/java/com/madeuhome/dao/web/webvoc/WebVOCSqlMapDAO.java
Normal file
@@ -0,0 +1,129 @@
|
||||
package com.madeuhome.dao.web.webvoc;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.mybatis.spring.SqlSessionTemplate;
|
||||
import org.mybatis.spring.support.SqlSessionDaoSupport;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.dao.DataAccessException;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import jakarta.annotation.PostConstruct;
|
||||
|
||||
@Repository
|
||||
public class WebVOCSqlMapDAO extends SqlSessionDaoSupport{
|
||||
|
||||
@Autowired
|
||||
private SqlSessionTemplate sqlSessionTemplate;
|
||||
|
||||
@PostConstruct
|
||||
void init() {
|
||||
setSqlSessionTemplate(sqlSessionTemplate);
|
||||
}
|
||||
|
||||
/**
|
||||
* 문자 전송 이력 등록
|
||||
*
|
||||
*
|
||||
* @param map
|
||||
* @return
|
||||
* @throws DataAccessException
|
||||
*/
|
||||
public int insertSms(HashMap<String, Object> paramMap) throws DataAccessException {
|
||||
logger.debug("WebVOCSqlMapDAO insertSms START");
|
||||
String sqlId = "WebVOC.insertSms";
|
||||
logger.debug("WebVOCSqlMapDAO insertSms END");
|
||||
return getSqlSession().update(sqlId, paramMap);
|
||||
}
|
||||
|
||||
/**
|
||||
* 문자 전송 상태 변경
|
||||
*
|
||||
*
|
||||
* @param map
|
||||
* @return
|
||||
* @throws DataAccessException
|
||||
*/
|
||||
public int updateSmsState(HashMap<String, Object> paramMap) throws DataAccessException {
|
||||
logger.debug("WebVOCSqlMapDAO updateSmsState START");
|
||||
String sqlId = "WebVOC.updateSmsState";
|
||||
logger.debug("WebVOCSqlMapDAO updateSmsState END");
|
||||
return getSqlSession().update(sqlId, paramMap);
|
||||
}
|
||||
/**
|
||||
* 문자 전송 팝빌 상태 변경
|
||||
*
|
||||
*
|
||||
* @param map
|
||||
* @return
|
||||
* @throws DataAccessException
|
||||
*/
|
||||
public int updateSmsPopbillState(HashMap<String, Object> paramMap) throws DataAccessException {
|
||||
logger.debug("WebVOCSqlMapDAO updateSmsPopbillState START");
|
||||
String sqlId = "WebVOC.updateSmsPopbillState";
|
||||
logger.debug("WebVOCSqlMapDAO updateSmsPopbillState END");
|
||||
return getSqlSession().update(sqlId, paramMap);
|
||||
}
|
||||
|
||||
/**
|
||||
* 휴대폰 인증 수 조회(당일)
|
||||
*
|
||||
* @param map
|
||||
* @return
|
||||
* @throws DataAccessException
|
||||
*/
|
||||
public List<Map<String, Object>> selectListPhoneAuthCountToday(HashMap<String, Object> map)
|
||||
throws DataAccessException {
|
||||
logger.debug("WebVOCSqlMapDAO selectListPhoneAuthCountToday START");
|
||||
String sqlId = "WebVOC.selectListPhoneAuthCountToday";
|
||||
logger.debug("WebVOCSqlMapDAO selectListPhoneAuthCountToday END");
|
||||
return getSqlSession().selectList(sqlId, map);
|
||||
}
|
||||
|
||||
/**
|
||||
* 휴대폰 인증 확인
|
||||
*
|
||||
* @param map
|
||||
* @return
|
||||
* @throws DataAccessException
|
||||
*/
|
||||
public List<Map<String, Object>> selectPhoneAuthCheck(HashMap<String, Object> map)
|
||||
throws DataAccessException {
|
||||
logger.debug("WebVOCSqlMapDAO selectPhoneAuthCheck START");
|
||||
String sqlId = "WebVOC.selectPhoneAuthCheck";
|
||||
logger.debug("WebVOCSqlMapDAO selectPhoneAuthCheck END");
|
||||
return getSqlSession().selectList(sqlId, map);
|
||||
}
|
||||
|
||||
/**
|
||||
* 인증번호 등록
|
||||
*
|
||||
* @param map
|
||||
* @return
|
||||
* @throws DataAccessException
|
||||
*/
|
||||
public int insertPhoneAuth(HashMap<String, Object> map)
|
||||
throws DataAccessException {
|
||||
logger.debug("WebVOCSqlMapDAO insertPhoneAuth START");
|
||||
String sqlId = "WebVOC.insertPhoneAuth";
|
||||
logger.debug("WebVOCSqlMapDAO insertPhoneAuth END");
|
||||
return getSqlSession().insert(sqlId, map);
|
||||
}
|
||||
|
||||
/**
|
||||
* 접수 등록
|
||||
*
|
||||
* @param map
|
||||
* @return
|
||||
* @throws DataAccessException
|
||||
*/
|
||||
public int insertVOC(HashMap<String, Object> map)
|
||||
throws DataAccessException {
|
||||
logger.debug("WebVOCSqlMapDAO insertVOC START");
|
||||
String sqlId = "WebVOC.insertVOC";
|
||||
logger.debug("WebVOCSqlMapDAO insertVOC END");
|
||||
return getSqlSession().insert(sqlId, map);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,54 @@
|
||||
package com.madeuhome.dao.web.webyoutube;
|
||||
|
||||
import jakarta.annotation.PostConstruct;
|
||||
import org.mybatis.spring.SqlSessionTemplate;
|
||||
import org.mybatis.spring.support.SqlSessionDaoSupport;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.dao.DataAccessException;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@Repository
|
||||
public class WebYoutubeSqlMapDAO extends SqlSessionDaoSupport{
|
||||
|
||||
@Autowired
|
||||
private SqlSessionTemplate sqlSessionTemplate;
|
||||
|
||||
@PostConstruct
|
||||
void init() {
|
||||
setSqlSessionTemplate(sqlSessionTemplate);
|
||||
}
|
||||
|
||||
/**
|
||||
* 유튜브 정보 총 갯수 조회 (total count)
|
||||
*
|
||||
* @param Map
|
||||
* @return
|
||||
* @throws DataAccessException
|
||||
*/
|
||||
public List<Map<String, Object>> selectTotalWebYoutubeCount(HashMap<String, Object> paramMap)
|
||||
throws DataAccessException {
|
||||
logger.debug("WebYoutubeSqlMapDAO selectTotalWebYoutubeCount START");
|
||||
String sqlId = "WebYoutube.selectTotalWebYoutubeCount";
|
||||
logger.debug("WebYoutubeSqlMapDAO selectTotalWebYoutubeCount END");
|
||||
return getSqlSession().selectList(sqlId, paramMap);
|
||||
}
|
||||
|
||||
/**
|
||||
* 유튜브 정보 리스트 조회 (List)
|
||||
*
|
||||
* @param Map
|
||||
* @return
|
||||
* @throws DataAccessException
|
||||
*/
|
||||
public List<Map<String, Object>> selectListWebYoutube(HashMap<String, Object> paramMap)
|
||||
throws DataAccessException {
|
||||
logger.debug("WebYoutubeSqlMapDAO selectListWebYoutube START");
|
||||
String sqlId = "WebYoutube.selectListWebYoutube";
|
||||
logger.debug("WebYoutubeSqlMapDAO selectListWebYoutube END");
|
||||
return getSqlSession().selectList(sqlId, paramMap);
|
||||
}
|
||||
}
|
||||
78
src/main/java/com/madeuhome/init/ManagerDraftAction.java
Normal file
78
src/main/java/com/madeuhome/init/ManagerDraftAction.java
Normal file
@@ -0,0 +1,78 @@
|
||||
package com.madeuhome.init;
|
||||
|
||||
import jakarta.servlet.http.HttpSession;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
@Slf4j
|
||||
public class ManagerDraftAction {
|
||||
|
||||
public boolean adminCheckLogin(HttpSession session) throws Exception {
|
||||
if (session == null) {
|
||||
return false;
|
||||
}
|
||||
String ntsoftId = (String) session.getAttribute("ntsoftId");
|
||||
String ntsoftUserId = (String) session.getAttribute("ntsoftUserId");
|
||||
String ntsoftUserName = (String) session.getAttribute("ntsoftUserName");
|
||||
log.debug("======================== MANAGER CHECKLOGIN START =========================");
|
||||
log.debug("ntsoftId : "+ ntsoftId);
|
||||
log.debug("ntsoftUserId : "+ ntsoftUserId);
|
||||
log.debug("ntsoftUserName : "+ ntsoftUserName);
|
||||
log.debug("========================= MANAGER CHECKLOGIN END ==========================");
|
||||
if ((ntsoftId == null) || ("".equals(ntsoftId)) || (ntsoftUserId == null) || ("".equals(ntsoftUserId))) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
public boolean adminCheckLogin(HttpSession session,String t) throws Exception {
|
||||
if (session == null) {
|
||||
return false;
|
||||
}
|
||||
String ntsoftId = (String) session.getAttribute("ntsoftId");
|
||||
String ntsoftUserId = (String) session.getAttribute("ntsoftUserId");
|
||||
String ntsoftUserName = (String) session.getAttribute("ntsoftUserName");
|
||||
String userType = (String) session.getAttribute("userType");
|
||||
String tyCompanyId = (String) session.getAttribute("tyCompanyId");
|
||||
log.debug("======================== MANAGER CHECKLOGIN START =========================");
|
||||
log.debug("ntsoftId : "+ ntsoftId);
|
||||
log.debug("ntsoftUserId : "+ ntsoftUserId);
|
||||
log.debug("ntsoftUserName : "+ ntsoftUserName);
|
||||
log.debug("userType : "+ userType);
|
||||
log.debug("tyCompanyId : "+ tyCompanyId);
|
||||
log.debug("========================= MANAGER CHECKLOGIN END ==========================");
|
||||
if ((ntsoftId == null) || ("".equals(ntsoftId)) || (ntsoftUserId == null) || ("".equals(ntsoftUserId))) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!userType.equals(t)) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
public boolean webCheckLogin(HttpSession session)throws Exception{
|
||||
|
||||
if(session == null){
|
||||
return false;
|
||||
}else{
|
||||
String muMemberId = (String)session.getAttribute("muMemberId");
|
||||
String loginId = (String)session.getAttribute("loginId");
|
||||
String userName = (String)session.getAttribute("userName");
|
||||
log.debug("======================== USER CHECKLOGIN START =========================");
|
||||
log.debug(" muMemberId : "+ muMemberId);
|
||||
log.debug(" loginId : "+ loginId);
|
||||
log.debug(" userName : "+ userName);
|
||||
log.debug("======================== USER CHECKLOGIN END ===========================");
|
||||
|
||||
log.debug("======================================= session ID Start2 =======================================");
|
||||
log.debug("=============== Session ID :"+session.getId());
|
||||
log.debug("======================================= session ID End2 =======================================");
|
||||
if(null==muMemberId||("").equals(muMemberId)){
|
||||
return false;
|
||||
}else{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,52 @@
|
||||
package com.madeuhome.init;
|
||||
|
||||
import jakarta.servlet.http.HttpServlet;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
@Slf4j
|
||||
public class ServiceInitializeServlet extends HttpServlet {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private static String default_file_store_path = "";
|
||||
private static String default_file_store_folder = "";
|
||||
private static String webService_url= "";
|
||||
private static String appService_url ="";
|
||||
|
||||
|
||||
public void init(){
|
||||
log.debug("ServiceInitializeServlet - init start");
|
||||
default_file_store_path = getInitParameter("DEFAULT_FILE_STORE_PATH");
|
||||
default_file_store_folder = getInitParameter("DEFAULT_FILE_STORE_FOLDER");
|
||||
webService_url = getInitParameter("WEBSERVICE_URL");
|
||||
appService_url = getInitParameter("APPSERVICE_URL");
|
||||
|
||||
//NoticeThreadJob.getInstance();
|
||||
//BirthDayThreadJob.getInstance();
|
||||
log.debug("ServiceInitializeServlet - init end");
|
||||
}
|
||||
|
||||
public static String getDefaultFileStorePath(){
|
||||
return default_file_store_path;
|
||||
}
|
||||
|
||||
public static String getDefaultFileStoreFolder() {
|
||||
return default_file_store_folder;
|
||||
}
|
||||
|
||||
public static String getAppServiceUrl(){
|
||||
return appService_url;
|
||||
}
|
||||
|
||||
public static String getWebServiceUrl(){
|
||||
return webService_url;
|
||||
}
|
||||
|
||||
public static long getSerialversionuid() {
|
||||
return serialVersionUID;
|
||||
}
|
||||
|
||||
public static void main(String[] args) {
|
||||
System.out.println(default_file_store_path);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
package com.madeuhome.service.common.loghistory;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
||||
|
||||
public interface LogHistoryService {
|
||||
|
||||
public HashMap<String, Object> insertLogHistory(HashMap<String, Object> paramMap, HashMap<String, Object> visitLogParamMap) throws Exception;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,92 @@
|
||||
package com.madeuhome.service.common.loghistory.impl;
|
||||
|
||||
import com.madeuhome.constants.Constants;
|
||||
import com.madeuhome.dao.common.loghistory.LogHistorySqlMapDAO;
|
||||
import com.madeuhome.service.common.loghistory.LogHistoryService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Propagation;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Calendar;
|
||||
import java.util.HashMap;
|
||||
|
||||
|
||||
@Slf4j
|
||||
@Service("LogHistoryService")
|
||||
public class LogHistoryServiceImpl implements LogHistoryService {
|
||||
|
||||
@Autowired
|
||||
private LogHistorySqlMapDAO logHistorySqlMapDAO;
|
||||
|
||||
|
||||
/**
|
||||
* 오류 로그 정보 등록
|
||||
*
|
||||
* @param paramMap
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor={Exception.class}, propagation = Propagation.REQUIRES_NEW)
|
||||
public HashMap<String, Object> insertLogHistory(
|
||||
HashMap<String, Object> paramMap, HashMap<String, Object> visitLogParamMap) throws Exception{
|
||||
log.debug("WebLogHistoryServiceImpl insertLogHistory START");
|
||||
|
||||
HashMap<String, Object> map = new HashMap<String, Object>();
|
||||
|
||||
log.debug("muMemberId : "+paramMap.get("muMemberId"));
|
||||
|
||||
log.debug("url : "+paramMap.get("url"));
|
||||
log.debug("func : "+paramMap.get("func"));
|
||||
log.debug("service : "+paramMap.get("service"));
|
||||
log.debug("requestValue : "+paramMap.get("requestValue"));
|
||||
log.debug("responseValue : "+paramMap.get("responseValue"));
|
||||
log.debug("tId : "+paramMap.get("tId"));
|
||||
log.debug("resultCode : "+paramMap.get("resultCode"));
|
||||
log.debug("resultMsg : "+paramMap.get("resultMsg"));
|
||||
|
||||
try{
|
||||
boolean check = true;
|
||||
|
||||
String tId = String.valueOf(System.currentTimeMillis());
|
||||
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||
Calendar c1 = Calendar.getInstance();
|
||||
String tDate = sdf.format(c1.getTime());
|
||||
|
||||
HashMap<String, Object> logHistoryMap = new HashMap<String, Object>();
|
||||
|
||||
paramMap.put("visitIp", visitLogParamMap.get("visitIp"));
|
||||
paramMap.put("visitOriginAgent", visitLogParamMap.get("visitOriginAgent"));
|
||||
paramMap.put("visitAgent", visitLogParamMap.get("visitAgent"));
|
||||
paramMap.put("visitOs", visitLogParamMap.get("visitOs"));
|
||||
paramMap.put("regId", "SYSTEM");
|
||||
paramMap.put("modId", "SYSTEM");
|
||||
|
||||
if(true == check){
|
||||
paramMap.put("tDate", tDate);
|
||||
paramMap.put("tId", tId);
|
||||
|
||||
String muLogHistoryId = ("H").concat(String.valueOf(System.currentTimeMillis()));
|
||||
paramMap.put("muLogHistoryId",muLogHistoryId);
|
||||
paramMap.put("muMemberId", paramMap.get("muMemberId"));
|
||||
logHistorySqlMapDAO.insertLogHistory(paramMap);
|
||||
log.debug("muLogHistoryId :"+paramMap.get("id"));
|
||||
paramMap.put("muLogHistoryId", paramMap.get("id"));
|
||||
map.put("muLogHistoryId", paramMap.get("muLogHistoryId"));
|
||||
|
||||
map.put("msgCode", Constants.OK);
|
||||
map.put("msgDesc", "등록되었습니다.");
|
||||
}
|
||||
}
|
||||
catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
throw e;
|
||||
}
|
||||
log.debug("WebLogHistoryServiceImpl insertLogHistory END");
|
||||
return map;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,10 @@
|
||||
package com.madeuhome.service.common.visitlog;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
||||
|
||||
public interface VisitLogService {
|
||||
|
||||
public HashMap<String, Object> insertVisitLog(HashMap<String, Object> paramMap) throws Exception;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,78 @@
|
||||
package com.madeuhome.service.common.visitlog.impl;
|
||||
|
||||
import com.madeuhome.constants.Constants;
|
||||
import com.madeuhome.dao.common.visitlog.VisitLogSqlMapDAO;
|
||||
import com.madeuhome.service.common.visitlog.VisitLogService;
|
||||
import com.madeuhome.util.ValidationCheckUtil;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Propagation;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
||||
|
||||
@Slf4j
|
||||
@Service("VisitLogService")
|
||||
public class VisitLogServiceImpl implements VisitLogService{
|
||||
|
||||
@Autowired
|
||||
private VisitLogSqlMapDAO visitLogSqlMapDAO;
|
||||
|
||||
/**
|
||||
* 접속 로그 등록
|
||||
*
|
||||
* @param paramMap
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor={Exception.class}, propagation = Propagation.REQUIRES_NEW)
|
||||
public HashMap<String, Object> insertVisitLog(
|
||||
HashMap<String, Object> paramMap) throws Exception{
|
||||
log.debug("VisitLogServiceImpl insertVisitLog START");
|
||||
|
||||
HashMap<String, Object> map = new HashMap<String, Object>();
|
||||
|
||||
log.debug("muMemberId : "+paramMap.get("muMemberId"));
|
||||
log.debug("regId : "+paramMap.get("regId"));
|
||||
log.debug("modId : "+paramMap.get("modId"));
|
||||
|
||||
log.debug("workType : "+paramMap.get("workType"));
|
||||
|
||||
try{
|
||||
boolean check = true;
|
||||
|
||||
String workType = String.valueOf(paramMap.get("workType"));
|
||||
|
||||
if(true != ValidationCheckUtil.emptyCheck(workType)){
|
||||
check = false;
|
||||
map.put("msgCode", Constants.FAIL);
|
||||
map.put("msgDesc","구분 정보가 없습니다.");
|
||||
}
|
||||
|
||||
if(true == check){
|
||||
|
||||
paramMap.put("muMemberId", paramMap.get("muMemberId"));
|
||||
paramMap.put("regId", paramMap.get("regId"));
|
||||
paramMap.put("modId", paramMap.get("modId"));
|
||||
paramMap.put("tyVisitLogId", ("VL").concat(String.valueOf(System.currentTimeMillis())));
|
||||
|
||||
paramMap.put("type", "W");
|
||||
|
||||
visitLogSqlMapDAO.insertVisitLog(paramMap);
|
||||
|
||||
map.put("msgCode", Constants.OK);
|
||||
map.put("msgDesc", "등록되었습니다.");
|
||||
}
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
throw e;
|
||||
}
|
||||
|
||||
log.debug("VisitLogServiceImpl insertVisitLog END");
|
||||
return map;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
package com.madeuhome.service.web.webevent;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
||||
|
||||
public interface WebEventService {
|
||||
|
||||
public HashMap<String, Object> selectListWebEvent(HashMap<String, Object> paramMap) throws Exception;
|
||||
public HashMap<String, Object> selectListEvent(HashMap<String, Object> paramMap) throws Exception;
|
||||
public HashMap<String, Object> selectEventDetail(HashMap<String, Object> paramMap) throws Exception;
|
||||
public HashMap<String, Object> selectReservation(HashMap<String, Object> paramMap) throws Exception;
|
||||
public HashMap<String, Object> selectReservationCnt(HashMap<String, Object> paramMap) throws Exception;
|
||||
public HashMap<String, Object> insertReservation(HashMap<String, Object> paramMap) throws Exception;
|
||||
}
|
||||
@@ -0,0 +1,237 @@
|
||||
package com.madeuhome.service.web.webevent.impl;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import com.fasterxml.jackson.core.type.TypeReference;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.madeuhome.constants.Constants;
|
||||
import com.madeuhome.dao.web.webevent.WebEventSqlMapDAO;
|
||||
import com.madeuhome.service.web.webevent.WebEventService;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
|
||||
@Slf4j
|
||||
@Service("WebEventService")
|
||||
public class WebEventServiceImpl implements WebEventService {
|
||||
|
||||
@Autowired
|
||||
private WebEventSqlMapDAO webEventSqlMapDAO;
|
||||
|
||||
/**
|
||||
* 이벤트 카테고리 리스트 조회 (List)
|
||||
*
|
||||
* @param paramMap
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
@Override
|
||||
public HashMap<String, Object> selectListWebEvent(HashMap<String, Object> paramMap) throws Exception {
|
||||
log.debug("WebEventServiceImpl selectListEvent START");
|
||||
|
||||
HashMap<String, Object> map = new HashMap<String, Object>();
|
||||
|
||||
try{
|
||||
List<Map<String, Object>> listMap = webEventSqlMapDAO.selectListWebEvent(paramMap);
|
||||
map.put("rows",listMap);
|
||||
|
||||
map.put("msgCode", Constants.OK);
|
||||
map.put("success","true");
|
||||
|
||||
}catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
throw e;
|
||||
}
|
||||
|
||||
log.debug("WebEventServiceImpl selectListEvent END");
|
||||
return map;
|
||||
}
|
||||
|
||||
/**
|
||||
* 이벤트 정보 리스트 조회 (List)
|
||||
*
|
||||
* @param paramMap
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
@Override
|
||||
public HashMap<String, Object> selectListEvent(
|
||||
HashMap<String, Object> paramMap) throws Exception {
|
||||
log.debug("WebEventServiceImpl selectListEvent START");
|
||||
|
||||
HashMap<String, Object> map = new HashMap<String, Object>();
|
||||
|
||||
try{
|
||||
List<Map<String, Object>> listMap = webEventSqlMapDAO.selectListEvent(paramMap);
|
||||
map.put("rows",listMap);
|
||||
|
||||
map.put("msgCode", Constants.OK);
|
||||
map.put("success","true");
|
||||
|
||||
}catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
throw e;
|
||||
}
|
||||
|
||||
log.debug("WebEventServiceImpl selectListEvent END");
|
||||
return map;
|
||||
}
|
||||
|
||||
/**
|
||||
* 이벤트 정보 상세 조회
|
||||
*
|
||||
* @param paramMap
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
@Override
|
||||
public HashMap<String, Object> selectEventDetail(HashMap<String, Object> paramMap) throws Exception {
|
||||
log.debug("WebEventServiceImpl selectEventDetail START");
|
||||
|
||||
HashMap<String, Object> map = new HashMap<String, Object>();
|
||||
|
||||
try{
|
||||
//상세 내용
|
||||
Map<String, Object> listMap = webEventSqlMapDAO.selectEventDetail(paramMap);
|
||||
map.put("rows",listMap);
|
||||
//이벤트 목록
|
||||
List<Map<String, Object>> listEventMap = webEventSqlMapDAO.selectListEventSub(paramMap);
|
||||
map.put("price",listEventMap);
|
||||
|
||||
map.put("msgCode", Constants.OK);
|
||||
map.put("success","true");
|
||||
|
||||
}catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
throw e;
|
||||
}
|
||||
|
||||
log.debug("WebEventServiceImpl selectEventDetail END");
|
||||
return map;
|
||||
}
|
||||
|
||||
/**
|
||||
* 예약 정보 조회
|
||||
*
|
||||
* @param paramMap
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
@Override
|
||||
public HashMap<String, Object> selectReservation(HashMap<String, Object> paramMap) throws Exception {
|
||||
log.debug("WebEventServiceImpl selectReservation START");
|
||||
|
||||
HashMap<String, Object> map = new HashMap<String, Object>();
|
||||
|
||||
try{
|
||||
//예약 목록
|
||||
List<Map<String, Object>> listMap2 = new ArrayList<Map<String, Object>>();
|
||||
|
||||
if(paramMap.get("PROCEDURE_ID").toString().indexOf("#") != -1) {
|
||||
String[] PROCEDURE_ID = paramMap.get("PROCEDURE_ID").toString().split("#");
|
||||
|
||||
for(int i = 0; i < PROCEDURE_ID.length; i++) {
|
||||
HashMap<String, Object> map2 = new HashMap<String, Object>();
|
||||
map2.put("PROCEDURE_ID", PROCEDURE_ID[i]);
|
||||
listMap2.add(webEventSqlMapDAO.selectReservationService(map2));
|
||||
}
|
||||
}else {
|
||||
listMap2.add(webEventSqlMapDAO.selectReservationService(paramMap));
|
||||
}
|
||||
map.put("reservation",listMap2);
|
||||
map.put("msgCode", Constants.OK);
|
||||
map.put("success","true");
|
||||
|
||||
}catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
throw e;
|
||||
}
|
||||
|
||||
log.debug("WebEventServiceImpl selectReservation END");
|
||||
return map;
|
||||
}
|
||||
|
||||
/**
|
||||
* 예약 정보 조회
|
||||
*
|
||||
* @param paramMap
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
@Override
|
||||
public HashMap<String, Object> selectReservationCnt(HashMap<String, Object> paramMap) throws Exception {
|
||||
log.debug("WebEventServiceImpl selectReservationCnt START");
|
||||
|
||||
HashMap<String, Object> map = new HashMap<String, Object>();
|
||||
|
||||
try{
|
||||
//상세 내용
|
||||
Map<String, Object> listMap = webEventSqlMapDAO.selectReservationCnt(paramMap);
|
||||
map.put("rows",listMap);
|
||||
|
||||
map.put("msgCode", Constants.OK);
|
||||
map.put("success","true");
|
||||
|
||||
}catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
throw e;
|
||||
}
|
||||
|
||||
log.debug("WebEventServiceImpl selectReservationCnt END");
|
||||
return map;
|
||||
}
|
||||
|
||||
/**
|
||||
* 예약 정보 저장
|
||||
*
|
||||
* @param paramMap
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
@Override
|
||||
public HashMap<String, Object> insertReservation(HashMap<String, Object> paramMap) throws Exception {
|
||||
log.debug("WebEventServiceImpl insertReservation START");
|
||||
HashMap<String, Object> map = new HashMap<String, Object>();
|
||||
try{
|
||||
String muReserveId = ("R").concat(String.valueOf(System.currentTimeMillis()));
|
||||
paramMap.put("muReserveId",muReserveId);
|
||||
|
||||
// TREATMENT_INFOS 파라미터가 있으면 파싱하여 P_변수명으로 세팅 후 insertReservation 호출
|
||||
if(paramMap.get("TREATMENT_INFOS") != null) {
|
||||
ObjectMapper objectMapper = new ObjectMapper();
|
||||
List<Map<String, Object>> treatmentList = objectMapper.readValue(paramMap.get("TREATMENT_INFOS").toString(), new TypeReference<List<Map<String, Object>>>(){});
|
||||
for(Map<String, Object> t : treatmentList) {
|
||||
paramMap.put("P_TREATMENT_ID", t.get("MU_TREATMENT_ID"));
|
||||
paramMap.put("P_TREATMENT_NM", t.get("TREATMENT_NAME"));
|
||||
paramMap.put("P_PROCEDURE_ID", t.get("MU_TREATMENT_PROCEDURE_ID"));
|
||||
paramMap.put("P_PROCEDURE_NM", t.get("TREATMENT_PROCEDURE_NAME"));
|
||||
webEventSqlMapDAO.insertReservation(paramMap);
|
||||
}
|
||||
} else {
|
||||
// 기존 방식대로 단일 시술 정보로 처리
|
||||
paramMap.put("P_TREATMENT_ID", paramMap.get("MU_TREATMENT_ID"));
|
||||
paramMap.put("P_TREATMENT_NM", paramMap.get("TREATMENT_NAME"));
|
||||
paramMap.put("P_PROCEDURE_ID", paramMap.get("MU_TREATMENT_PROCEDURE_ID"));
|
||||
paramMap.put("P_PROCEDURE_NM", paramMap.get("TREATMENT_PROCEDURE_NAME"));
|
||||
webEventSqlMapDAO.insertReservation(paramMap);
|
||||
}
|
||||
|
||||
map.put("msgCode", Constants.OK);
|
||||
map.put("success","true");
|
||||
|
||||
}catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
throw e;
|
||||
}
|
||||
|
||||
System.out.println("[insertReservation] paramMap: " + paramMap);
|
||||
log.debug("WebEventServiceImpl insertReservation END");
|
||||
return map;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
package com.madeuhome.service.web.webinstagram;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
||||
|
||||
public interface WebInstagramService {
|
||||
|
||||
public HashMap<String, Object> selectListWebInstagram(HashMap<String, Object> paramMap) throws Exception;
|
||||
}
|
||||
@@ -0,0 +1,54 @@
|
||||
package com.madeuhome.service.web.webinstagram.impl;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.web.client.RestTemplate;
|
||||
|
||||
import com.madeuhome.constants.Constants;
|
||||
import com.madeuhome.service.web.webinstagram.WebInstagramService;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
|
||||
@Slf4j
|
||||
@Service("WebInstagramService")
|
||||
public class WebInstagramServiceImpl implements WebInstagramService {
|
||||
|
||||
@Value("${instagram.client-id}")
|
||||
String clientId;
|
||||
|
||||
@Value("${instagram.accesstoken}")
|
||||
String accessToken;
|
||||
|
||||
/**
|
||||
* 인스타그램 정보 리스트 조회 (List)
|
||||
*
|
||||
* @param paramMap
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
@Override
|
||||
public HashMap<String, Object> selectListWebInstagram(
|
||||
HashMap<String, Object> paramMap) throws Exception {
|
||||
log.debug("WebInstagramServiceImpl selectListWebInstagram START");
|
||||
HashMap<String, Object> map = new HashMap<String, Object>();
|
||||
String apiUrl = "https://graph.instagram.com/" + clientId + "/media?fields=id,caption,media_url,permalink,media_type,thumbnail_url&access_token=" + accessToken;
|
||||
try{
|
||||
RestTemplate restTemplate = new RestTemplate();
|
||||
Map<String, Object> response = restTemplate.getForObject(apiUrl, Map.class);
|
||||
List<Map<String, Object>> data = (List<Map<String, Object>>) response.get("data");
|
||||
map.put("msgCode", Constants.OK);
|
||||
map.put("success","true");
|
||||
map.put("rows", data);
|
||||
}catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
throw e;
|
||||
}
|
||||
log.debug("WebInstagramServiceImpl selectListWebInstagram END");
|
||||
return map;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
package com.madeuhome.service.web.webmainbanner;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
||||
|
||||
public interface WebMainBannerService {
|
||||
|
||||
public HashMap<String, Object> selectListWebMainBanner(HashMap<String, Object> paramMap) throws Exception;
|
||||
public HashMap<String, Object> selectWebMainBanner(HashMap<String, Object> paramMap) throws Exception;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,97 @@
|
||||
package com.madeuhome.service.web.webmainbanner.impl;
|
||||
|
||||
import com.madeuhome.constants.Constants;
|
||||
import com.madeuhome.dao.web.webmainbanner.WebMainBannerSqlMapDAO;
|
||||
import com.madeuhome.service.web.webmainbanner.WebMainBannerService;
|
||||
import com.madeuhome.util.ValidationCheckUtil;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
|
||||
@Slf4j
|
||||
@Service("WebMainBannerService")
|
||||
public class WebMainBannerServiceImpl implements WebMainBannerService {
|
||||
|
||||
@Autowired
|
||||
private WebMainBannerSqlMapDAO webMainBannerSqlMapDAO;
|
||||
|
||||
/**
|
||||
* 메인 배너 정보 리스트 조회 (List)
|
||||
*
|
||||
* @param paramMap
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
@Override
|
||||
public HashMap<String, Object> selectListWebMainBanner(
|
||||
HashMap<String, Object> paramMap) throws Exception {
|
||||
log.debug("WebMainBannerServiceImpl selectListWebMainBanner START");
|
||||
|
||||
HashMap<String, Object> map = new HashMap<String, Object>();
|
||||
|
||||
try{
|
||||
List<Map<String, Object>> listMap = webMainBannerSqlMapDAO.selectListWebMainBanner(paramMap);
|
||||
map.put("rows",listMap);
|
||||
|
||||
map.put("msgCode", Constants.OK);
|
||||
map.put("success","true");
|
||||
|
||||
}catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
throw e;
|
||||
}
|
||||
|
||||
log.debug("WebMainBannerServiceImpl selectListWebMainBanner END");
|
||||
return map;
|
||||
}
|
||||
|
||||
/**
|
||||
* 메인 배너 정보 상세 조회 (one)
|
||||
*
|
||||
* @param paramMap
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
@Override
|
||||
public HashMap<String, Object> selectWebMainBanner(
|
||||
HashMap<String, Object> paramMap) throws Exception {
|
||||
log.debug("WebMainBannerServiceImpl selectWebMainBanner START");
|
||||
|
||||
HashMap<String, Object> map = new HashMap<String, Object>();
|
||||
|
||||
log.debug("muWebMainBannerId : "+paramMap.get("muWebMainBannerId"));
|
||||
|
||||
try{
|
||||
boolean check = true;
|
||||
|
||||
String muWebMainBannerId = String.valueOf(paramMap.get("muWebMainBannerId"));
|
||||
|
||||
if(true != ValidationCheckUtil.emptyCheck(muWebMainBannerId)){
|
||||
check = false;
|
||||
map.put("msgCode", Constants.FAIL);
|
||||
map.put("msgDesc","메인 배너 식별자 정보가 없습니다.");
|
||||
}
|
||||
|
||||
if(true == check){
|
||||
List<Map<String, Object>> listMap = webMainBannerSqlMapDAO.selectWebMainBanner(paramMap);
|
||||
int listMapSize = listMap.size();
|
||||
|
||||
map.put("msgCode", Constants.OK);
|
||||
map.put("success","true");
|
||||
map.put("rows",listMap);
|
||||
|
||||
}
|
||||
}catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
throw e;
|
||||
}
|
||||
|
||||
log.debug("WebMainBannerServiceImpl selectWebMainBanner END");
|
||||
return map;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
package com.madeuhome.service.web.webphoto;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
||||
|
||||
public interface WebPhotoService {
|
||||
|
||||
public HashMap<String, Object> selectListWebPhoto(HashMap<String, Object> paramMap) throws Exception;
|
||||
public HashMap<String, Object> selectListPhoto(HashMap<String, Object> paramMap) throws Exception;
|
||||
public HashMap<String, Object> selectPhotoDetail(HashMap<String, Object> paramMap) throws Exception;
|
||||
}
|
||||
@@ -0,0 +1,115 @@
|
||||
package com.madeuhome.service.web.webphoto.impl;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import com.madeuhome.constants.Constants;
|
||||
import com.madeuhome.dao.web.webphoto.WebPhotoSqlMapDAO;
|
||||
import com.madeuhome.service.web.webphoto.WebPhotoService;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
|
||||
@Slf4j
|
||||
@Service("WebPhotoService")
|
||||
public class WebPhotoServiceImpl implements WebPhotoService {
|
||||
|
||||
@Autowired
|
||||
private WebPhotoSqlMapDAO webPhotoSqlMapDAO;
|
||||
|
||||
/**
|
||||
* 전후사진 카테고리 리스트 조회 (List)
|
||||
*
|
||||
* @param paramMap
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
@Override
|
||||
public HashMap<String, Object> selectListWebPhoto(HashMap<String, Object> paramMap) throws Exception {
|
||||
log.debug("WebPhotoServiceImpl selectListPhoto START");
|
||||
|
||||
HashMap<String, Object> map = new HashMap<String, Object>();
|
||||
|
||||
try{
|
||||
List<Map<String, Object>> listMap = webPhotoSqlMapDAO.selectListWebPhoto(paramMap);
|
||||
map.put("rows",listMap);
|
||||
|
||||
map.put("msgCode", Constants.OK);
|
||||
map.put("success","true");
|
||||
|
||||
}catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
throw e;
|
||||
}
|
||||
|
||||
log.debug("WebPhotoServiceImpl selectListPhoto END");
|
||||
return map;
|
||||
}
|
||||
|
||||
/**
|
||||
* 전후사진 정보 리스트 조회 (List)
|
||||
*
|
||||
* @param paramMap
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
@Override
|
||||
public HashMap<String, Object> selectListPhoto(
|
||||
HashMap<String, Object> paramMap) throws Exception {
|
||||
log.debug("WebPhotoServiceImpl selectListPhoto START");
|
||||
System.out.println(paramMap);
|
||||
HashMap<String, Object> map = new HashMap<String, Object>();
|
||||
|
||||
try{
|
||||
List<Map<String, Object>> listMap = webPhotoSqlMapDAO.selectListPhoto(paramMap);
|
||||
map.put("rows",listMap);
|
||||
|
||||
map.put("msgCode", Constants.OK);
|
||||
map.put("success","true");
|
||||
|
||||
}catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
throw e;
|
||||
}
|
||||
|
||||
log.debug("WebPhotoServiceImpl selectListPhoto END");
|
||||
return map;
|
||||
}
|
||||
|
||||
/**
|
||||
* 전후사진 정보 상세 조회
|
||||
*
|
||||
* @param paramMap
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
@Override
|
||||
public HashMap<String, Object> selectPhotoDetail(HashMap<String, Object> paramMap) throws Exception {
|
||||
log.debug("WebPhotoServiceImpl selectPhotoDetail START");
|
||||
|
||||
HashMap<String, Object> map = new HashMap<String, Object>();
|
||||
|
||||
try{
|
||||
//상세 내용
|
||||
Map<String, Object> listMap = webPhotoSqlMapDAO.selectPhotoDetail(paramMap);
|
||||
map.put("rows",listMap);
|
||||
//전후사진 목록
|
||||
List<Map<String, Object>> listPhotoMap = webPhotoSqlMapDAO.selectListPhotoSub(paramMap);
|
||||
map.put("price",listPhotoMap);
|
||||
|
||||
map.put("msgCode", Constants.OK);
|
||||
map.put("success","true");
|
||||
|
||||
}catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
throw e;
|
||||
}
|
||||
|
||||
log.debug("WebPhotoServiceImpl selectPhotoDetail END");
|
||||
return map;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
package com.madeuhome.service.web.webpopup;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
||||
|
||||
public interface WebPopupService {
|
||||
|
||||
public HashMap<String, Object> selectListWebPopup(HashMap<String, Object> paramMap) throws Exception;
|
||||
public HashMap<String, Object> selectWebPopup(HashMap<String, Object> paramMap) throws Exception;
|
||||
|
||||
}
|
||||
@@ -0,0 +1,97 @@
|
||||
package com.madeuhome.service.web.webpopup.impl;
|
||||
|
||||
import com.madeuhome.constants.Constants;
|
||||
import com.madeuhome.dao.web.webpopup.WebPopupSqlMapDAO;
|
||||
import com.madeuhome.service.web.webpopup.WebPopupService;
|
||||
import com.madeuhome.util.ValidationCheckUtil;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
|
||||
@Slf4j
|
||||
@Service("WebPopupService")
|
||||
public class WebPopupServiceImpl implements WebPopupService {
|
||||
|
||||
@Autowired
|
||||
private WebPopupSqlMapDAO webPopupSqlMapDAO;
|
||||
|
||||
/**
|
||||
* 이벤트 정보 리스트 조회 (List)
|
||||
*
|
||||
* @param paramMap
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
@Override
|
||||
public HashMap<String, Object> selectListWebPopup(
|
||||
HashMap<String, Object> paramMap) throws Exception {
|
||||
log.debug("WebPopupServiceImpl selectListWebPopup START");
|
||||
|
||||
HashMap<String, Object> map = new HashMap<String, Object>();
|
||||
|
||||
try{
|
||||
List<Map<String, Object>> listMap = webPopupSqlMapDAO.selectListWebPopup(paramMap);
|
||||
map.put("rows",listMap);
|
||||
|
||||
map.put("msgCode", Constants.OK);
|
||||
map.put("success","true");
|
||||
|
||||
}catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
throw e;
|
||||
}
|
||||
|
||||
log.debug("WebPopupServiceImpl selectListWebPopup END");
|
||||
return map;
|
||||
}
|
||||
|
||||
/**
|
||||
* 이벤트 정보 상세 조회 (one)
|
||||
*
|
||||
* @param paramMap
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
@Override
|
||||
public HashMap<String, Object> selectWebPopup(
|
||||
HashMap<String, Object> paramMap) throws Exception {
|
||||
log.debug("WebPopupServiceImpl selectWebPopup START");
|
||||
|
||||
HashMap<String, Object> map = new HashMap<String, Object>();
|
||||
|
||||
log.debug("muWebPopupId : "+paramMap.get("muWebPopupId"));
|
||||
|
||||
try{
|
||||
boolean check = true;
|
||||
|
||||
String muWebPopupId = String.valueOf(paramMap.get("muWebPopupId"));
|
||||
|
||||
if(true != ValidationCheckUtil.emptyCheck(muWebPopupId)){
|
||||
check = false;
|
||||
map.put("msgCode", Constants.FAIL);
|
||||
map.put("msgDesc","이벤트 식별자 정보가 없습니다.");
|
||||
}
|
||||
|
||||
if(true == check){
|
||||
List<Map<String, Object>> listMap = webPopupSqlMapDAO.selectWebPopup(paramMap);
|
||||
int listMapSize = listMap.size();
|
||||
|
||||
map.put("msgCode", Constants.OK);
|
||||
map.put("success","true");
|
||||
map.put("rows",listMap);
|
||||
|
||||
}
|
||||
}catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
throw e;
|
||||
}
|
||||
|
||||
log.debug("WebPopupServiceImpl selectWebPopup END");
|
||||
return map;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,12 @@
|
||||
package com.madeuhome.service.web.webservice;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
||||
public interface WebServiceService {
|
||||
public HashMap<String, Object> selectListWebCategory(HashMap<String, Object> paramMap) throws Exception;
|
||||
public HashMap<String, Object> selectListWebService(HashMap<String, Object> paramMap) throws Exception;
|
||||
public HashMap<String, Object> selectServiceDetail(HashMap<String, Object> paramMap) throws Exception;
|
||||
public HashMap<String, Object> selectReservation(HashMap<String, Object> paramMap) throws Exception;
|
||||
public HashMap<String, Object> selectReservationCnt(HashMap<String, Object> paramMap) throws Exception;
|
||||
public HashMap<String, Object> insertReservation(HashMap<String, Object> paramMap) throws Exception;
|
||||
}
|
||||
@@ -0,0 +1,295 @@
|
||||
package com.madeuhome.service.web.webservice.impl;
|
||||
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import com.fasterxml.jackson.core.type.TypeReference;
|
||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||
import com.madeuhome.constants.Constants;
|
||||
import com.madeuhome.dao.web.webservice.WebServiceSqlMapDAO;
|
||||
import com.madeuhome.service.web.webservice.WebServiceService;
|
||||
import com.madeuhome.util.OkHttpService;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
@Slf4j
|
||||
@Service("WebServiceService")
|
||||
public class WebServiceServiceImpl implements WebServiceService{
|
||||
|
||||
@Autowired
|
||||
private WebServiceSqlMapDAO webServiceSqlMapDAO;
|
||||
|
||||
@Value("${url.old-crm-php}")
|
||||
private String ocp;
|
||||
|
||||
/**
|
||||
* 시술 정보 카테고리 리스트 조회 (List)
|
||||
*
|
||||
* @param paramMap
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
@Override
|
||||
public HashMap<String, Object> selectListWebCategory(HashMap<String, Object> paramMap) throws Exception {
|
||||
log.debug("WebServiceServiceImpl selectListWebCategory START");
|
||||
|
||||
HashMap<String, Object> map = new HashMap<String, Object>();
|
||||
|
||||
try{
|
||||
List<Map<String, Object>> listMap = webServiceSqlMapDAO.selectListWebCategory(paramMap);
|
||||
map.put("rows",listMap);
|
||||
|
||||
map.put("msgCode", Constants.OK);
|
||||
map.put("success","true");
|
||||
|
||||
}catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
throw e;
|
||||
}
|
||||
|
||||
log.debug("WebServiceServiceImpl selectListWebCategory END");
|
||||
return map;
|
||||
}
|
||||
|
||||
/**
|
||||
* 시술 정보 리스트 조회 (List)
|
||||
*
|
||||
* @param paramMap
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
@Override
|
||||
public HashMap<String, Object> selectListWebService(HashMap<String, Object> paramMap) throws Exception {
|
||||
log.debug("WebServiceServiceImpl selectListWebService START");
|
||||
|
||||
HashMap<String, Object> map = new HashMap<String, Object>();
|
||||
|
||||
try{
|
||||
List<Map<String, Object>> listMap = webServiceSqlMapDAO.selectListWebService(paramMap);
|
||||
|
||||
map.put("rows",listMap);
|
||||
|
||||
map.put("msgCode", Constants.OK);
|
||||
map.put("success","true");
|
||||
|
||||
}catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
throw e;
|
||||
}
|
||||
|
||||
log.debug("WebServiceServiceImpl selectListWebService END");
|
||||
return map;
|
||||
}
|
||||
|
||||
/**
|
||||
* 시술 정보 상세 조회
|
||||
*
|
||||
* @param paramMap
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
@Override
|
||||
public HashMap<String, Object> selectServiceDetail(HashMap<String, Object> paramMap) throws Exception {
|
||||
log.debug("WebServiceServiceImpl selectServiceDetail START");
|
||||
|
||||
HashMap<String, Object> map = new HashMap<String, Object>();
|
||||
|
||||
try{
|
||||
//상세 내용
|
||||
Map<String, Object> listMap = webServiceSqlMapDAO.selectServiceDetail(paramMap);
|
||||
map.put("rows",listMap);
|
||||
//시술 목록
|
||||
List<Map<String, Object>> listServiceMap = webServiceSqlMapDAO.selectListService(paramMap);
|
||||
map.put("price",listServiceMap);
|
||||
|
||||
map.put("msgCode", Constants.OK);
|
||||
map.put("success","true");
|
||||
|
||||
}catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
throw e;
|
||||
}
|
||||
|
||||
log.debug("WebServiceServiceImpl selectServiceDetail END");
|
||||
return map;
|
||||
}
|
||||
|
||||
/**
|
||||
* 예약 정보 조회
|
||||
*
|
||||
* @param paramMap
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
@Override
|
||||
public HashMap<String, Object> selectReservation(HashMap<String, Object> paramMap) throws Exception {
|
||||
log.debug("WebServiceServiceImpl selectReservation START");
|
||||
HashMap<String, Object> map = new HashMap<String, Object>();
|
||||
|
||||
try{
|
||||
//예약 목록
|
||||
List<Map<String, Object>> listMap2 = new ArrayList<Map<String, Object>>();
|
||||
|
||||
if(paramMap.get("PROCEDURE_ID").toString().indexOf(",") != -1) {
|
||||
String[] PROCEDURE_ID = paramMap.get("PROCEDURE_ID").toString().split(",");
|
||||
|
||||
for(int i = 0; i < PROCEDURE_ID.length; i++) {
|
||||
HashMap<String, Object> map2 = new HashMap<String, Object>();
|
||||
map2.put("PROCEDURE_ID", PROCEDURE_ID[i]);
|
||||
listMap2.add(webServiceSqlMapDAO.selectReservationService(map2));
|
||||
}
|
||||
}else {
|
||||
listMap2.add(webServiceSqlMapDAO.selectReservationService(paramMap));
|
||||
}
|
||||
map.put("reservation",listMap2);
|
||||
map.put("msgCode", Constants.OK);
|
||||
map.put("success","true");
|
||||
|
||||
}catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
throw e;
|
||||
}
|
||||
|
||||
log.debug("WebServiceServiceImpl selectReservation END");
|
||||
return map;
|
||||
}
|
||||
|
||||
/**
|
||||
* 예약 정보 조회
|
||||
*
|
||||
* @param paramMap
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
@Override
|
||||
public HashMap<String, Object> selectReservationCnt(HashMap<String, Object> paramMap) throws Exception {
|
||||
log.debug("WebServiceServiceImpl selectReservationCnt START");
|
||||
|
||||
HashMap<String, Object> map = new HashMap<String, Object>();
|
||||
|
||||
try{
|
||||
//상세 내용
|
||||
Map<String, Object> listMap = webServiceSqlMapDAO.selectReservationCnt(paramMap);
|
||||
map.put("rows",listMap);
|
||||
|
||||
map.put("msgCode", Constants.OK);
|
||||
map.put("success","true");
|
||||
|
||||
}catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
throw e;
|
||||
}
|
||||
|
||||
log.debug("WebServiceServiceImpl selectReservationCnt END");
|
||||
return map;
|
||||
}
|
||||
|
||||
/**
|
||||
* 예약 정보 저장
|
||||
*
|
||||
* @param paramMap
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
@Override
|
||||
public HashMap<String, Object> insertReservation(HashMap<String, Object> paramMap) throws Exception {
|
||||
log.debug("WebServiceServiceImpl insertReservation START");
|
||||
HashMap<String, Object> map = new HashMap<String, Object>();
|
||||
try{
|
||||
String muReserveId = ("R").concat(String.valueOf(System.currentTimeMillis()));
|
||||
paramMap.put("muReserveId",muReserveId);
|
||||
ArrayList<String> userRequest = new ArrayList<String>();
|
||||
// TREATMENT_INFOS 파라미터가 있으면 파싱하여 P_변수명으로 세팅 후 insertReservation 호출
|
||||
if(paramMap.get("TREATMENT_INFOS") != null) {
|
||||
ObjectMapper objectMapper = new ObjectMapper();
|
||||
List<Map<String, Object>> treatmentList = objectMapper.readValue(paramMap.get("TREATMENT_INFOS").toString(), new TypeReference<List<Map<String, Object>>>(){});
|
||||
for(Map<String, Object> t : treatmentList) {
|
||||
paramMap.put("P_TREATMENT_ID", t.get("MU_TREATMENT_ID"));
|
||||
paramMap.put("P_TREATMENT_NM", t.get("TREATMENT_NAME"));
|
||||
paramMap.put("P_PROCEDURE_ID", t.get("MU_TREATMENT_PROCEDURE_ID"));
|
||||
paramMap.put("P_PROCEDURE_NM", t.get("TREATMENT_PROCEDURE_NAME"));
|
||||
userRequest.add((String) t.get("TREATMENT_PROCEDURE_NAME"));
|
||||
webServiceSqlMapDAO.insertReservation(paramMap);
|
||||
}
|
||||
} else {
|
||||
// 기존 방식대로 단일 시술 정보로 처리
|
||||
paramMap.put("P_TREATMENT_ID", paramMap.get("MU_TREATMENT_ID"));
|
||||
paramMap.put("P_TREATMENT_NM", paramMap.get("TREATMENT_NAME"));
|
||||
paramMap.put("P_PROCEDURE_ID", paramMap.get("MU_TREATMENT_PROCEDURE_ID"));
|
||||
paramMap.put("P_PROCEDURE_NM", paramMap.get("TREATMENT_PROCEDURE_NAME"));
|
||||
userRequest.add((String) paramMap.get("TREATMENT_PROCEDURE_NAME"));
|
||||
webServiceSqlMapDAO.insertReservation(paramMap);
|
||||
}
|
||||
|
||||
Map<String, String> formData = new HashMap<>();
|
||||
formData.put("visitorName", (String) paramMap.get("NAME"));
|
||||
formData.put("visitorPhone", (String) paramMap.get("PHONE_NUMBER"));
|
||||
|
||||
String strUserRequest = "[선택시술]:" + userRequest.stream().collect(Collectors.joining(", "));
|
||||
String birthDate = "[생년월일]:" + paramMap.get("BIRTH_DATE");
|
||||
String reqTxt = "[요청사항]:" + (String) paramMap.get("ETC");
|
||||
formData.put("userRequest", strUserRequest + "\n" + birthDate + "\n" + reqTxt);
|
||||
String time = (String) paramMap.get("TIME");
|
||||
String date = (String) paramMap.get("SELECTED_DATE");
|
||||
String dateTime = date + " " + time;
|
||||
formData.put("datetime", dateTime);
|
||||
|
||||
Map<String, Object> detailMap = webServiceSqlMapDAO.selectServiceDetail(paramMap);
|
||||
|
||||
formData.put("itemName", "[홈페이지] 다이어트센터");
|
||||
// 구CRM 연동ID가 없을 경우 모두 (재방문) 다이어트 센터
|
||||
String oldCrmItemId = (String) detailMap.get("oldCrmItemId") == null ? "NBI-2WlrXQdl-esws-5aA5-al7z-d7HwxL9tX0YF" : (String) detailMap.get("oldCrmItemId");
|
||||
formData.put("itemID", oldCrmItemId);
|
||||
|
||||
formData.put("etcText", "[진료]:" + (String) detailMap.get("CATEGORY_NM"));
|
||||
|
||||
|
||||
// OLD CRM으로 예약정보 POST
|
||||
/**
|
||||
* //시술정보(상품명 , 상품ID)
|
||||
상품명 : 메쉬다주사(지방분해주사)
|
||||
상품 ID : NBI-1M0JEq5C-b8LM-4W0V-9YxZ-Z5r9XWJpIVEZ
|
||||
|
||||
피부 & 쁘띠센터
|
||||
NBI-4aJSJ67P-f0ID-4xds-aReQ-MnhfErLts0HP
|
||||
|
||||
프리미엄 레이저 리프팅
|
||||
NBI-1iPCWjih-2TDk-4NG3-ci56-tK7dgxxAT6dU
|
||||
|
||||
(첫방문) 다이어트 센터
|
||||
NBI-1Q8doiCm-qzTh-4imi-9lsK-6YDslUzIK2OO
|
||||
|
||||
(재방문) 다이어트 센터
|
||||
NBI-2WlrXQdl-esws-5aA5-al7z-d7HwxL9tX0YF
|
||||
|
||||
탈모약
|
||||
NBI-Nz00si0r-DkGc-5hdd-bs27-SLn0KHlHflS8
|
||||
|
||||
비만치료제 위고비
|
||||
NBI-2nJnTFVm-ieDy-4TNQ-czDK-Ll9FyixFr7zn
|
||||
**/
|
||||
OkHttpService.postFormData(ocp, formData);
|
||||
|
||||
|
||||
map.put("msgCode", Constants.OK);
|
||||
map.put("success","true");
|
||||
|
||||
}catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
throw e;
|
||||
}
|
||||
|
||||
System.out.println("[insertReservation] paramMap: " + paramMap);
|
||||
log.debug("WebServiceServiceImpl insertReservation END");
|
||||
return map;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
package com.madeuhome.service.web.webvoc;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
||||
public interface WebVOCService {
|
||||
public HashMap<String, Object> selectPhoneAuthCheck(HashMap<String, Object> paramMap) throws Exception;
|
||||
public HashMap<String, Object> insertPhoneAuth(HashMap<String, Object> paramMap) throws Exception;
|
||||
public HashMap<String, Object> insertVOC(HashMap<String, Object> paramMap) throws Exception;
|
||||
}
|
||||
@@ -0,0 +1,284 @@
|
||||
package com.madeuhome.service.web.webvoc.impl;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Propagation;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import com.madeuhome.constants.Constants;
|
||||
import com.madeuhome.dao.web.webvoc.WebVOCSqlMapDAO;
|
||||
import com.madeuhome.service.web.webvoc.WebVOCService;
|
||||
import com.madeuhome.util.ValidationCheckUtil;
|
||||
import com.popbill.api.MessageService;
|
||||
import com.popbill.api.PopbillException;
|
||||
import com.popbill.api.message.Message;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
@Slf4j
|
||||
@Service("WebVOCService")
|
||||
public class WebVOCServiceImpl implements WebVOCService{
|
||||
|
||||
@Autowired
|
||||
private WebVOCSqlMapDAO webVOCSqlMapDAO;
|
||||
/*Popbill*/
|
||||
@Autowired
|
||||
private MessageService messageService;
|
||||
|
||||
@Value("${corpNum}")
|
||||
String corpNum;
|
||||
|
||||
@Value("${userId}")
|
||||
String userId;
|
||||
|
||||
@Value("${senderName}")
|
||||
String senderName;
|
||||
|
||||
@Value("${senderPhoneNumber}")
|
||||
String senderPhoneNumber;
|
||||
|
||||
|
||||
/**
|
||||
* 휴대폰 인증 확인
|
||||
*
|
||||
* @param paramMap
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
@Override
|
||||
public HashMap<String, Object> selectPhoneAuthCheck(HashMap<String, Object> paramMap) throws Exception {
|
||||
log.debug("MobilePhoneAuthServiceImpl selectPhoneAuthCheck START");
|
||||
|
||||
HashMap<String, Object> map = new HashMap<String, Object>();
|
||||
|
||||
log.debug("phoneNumber : " + paramMap.get("phoneNumber"));
|
||||
log.debug("authNumber : " + paramMap.get("authNumber"));
|
||||
|
||||
try {
|
||||
boolean check = true;
|
||||
|
||||
String phoneNumber = String.valueOf(paramMap.get("phoneNumber"));
|
||||
String authNumber = String.valueOf(paramMap.get("authNumber"));
|
||||
|
||||
if (true != ValidationCheckUtil.emptyCheck(phoneNumber)) {
|
||||
check = false;
|
||||
map.put("msgCode", Constants.FAIL);
|
||||
map.put("msgDesc", "핸드폰 번호 정보가 없습니다.");
|
||||
}
|
||||
|
||||
if (true != ValidationCheckUtil.emptyCheck(authNumber)) {
|
||||
check = false;
|
||||
map.put("msgCode", Constants.FAIL);
|
||||
map.put("msgDesc", "인증번호정보가 없습니다.");
|
||||
}
|
||||
|
||||
if (check == true) {
|
||||
|
||||
List<Map<String, Object>> listMap = webVOCSqlMapDAO.selectPhoneAuthCheck(paramMap);
|
||||
int cnt = Integer.parseInt(String.valueOf(listMap.get(0).get("successCount")));
|
||||
|
||||
if(cnt>0) {
|
||||
map.put("msgCode", Constants.OK);
|
||||
map.put("msgDesc", "인증되었습니다.");
|
||||
}else {
|
||||
map.put("msgCode", Constants.FAIL);
|
||||
map.put("msgDesc", "인증번호가 다릅니다. 다시 입력해주세요.");
|
||||
}
|
||||
}
|
||||
}catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
throw e;
|
||||
}
|
||||
|
||||
log.debug("MobilePhoneAuthServiceImpl selectPhoneAuthCheck END");
|
||||
return map;
|
||||
}
|
||||
|
||||
/**
|
||||
* 인증번호 등록(SMS 발송)
|
||||
*
|
||||
* @param paramMap
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor = { Exception.class }, propagation = Propagation.REQUIRES_NEW)
|
||||
public HashMap<String, Object> insertPhoneAuth(HashMap<String, Object> paramMap) throws Exception {
|
||||
|
||||
log.debug("MobilePhoneAuthServiceImpl insertPhoneAuth START");
|
||||
|
||||
HashMap<String, Object> map = new HashMap<String, Object>();
|
||||
|
||||
log.debug("phoneNumber : " + paramMap.get("phoneNumber"));
|
||||
log.debug("authType : " + paramMap.get("authType"));
|
||||
|
||||
try {
|
||||
boolean check = true;
|
||||
|
||||
String phoneNumber = String.valueOf(paramMap.get("phoneNumber"));
|
||||
|
||||
if (true != ValidationCheckUtil.emptyCheck(phoneNumber)) {
|
||||
check = false;
|
||||
map.put("msgCode", Constants.FAIL);
|
||||
map.put("msgDesc", "연락처 정보가 없습니다.");
|
||||
}
|
||||
|
||||
// 최대 5회 발송확인.
|
||||
// if (check == true) {
|
||||
// List<Map<String, Object>> selectListPhoneAuthCountToday = mobilePhoneAuthSqlMapDAO.selectListPhoneAuthCountToday(paramMap);
|
||||
//
|
||||
// int authSendCount = Integer.parseInt(String.valueOf(selectListPhoneAuthCountToday.get(0).get("totalCount")));
|
||||
//
|
||||
// if (authSendCount >= 5) {
|
||||
// check = false;
|
||||
// map.put("msgCode", Constants.FAIL);
|
||||
// map.put("msgDesc", "일일 인증횟수가 초과되었습니다.");
|
||||
// }
|
||||
// }
|
||||
|
||||
if (check == true) {
|
||||
//SMS 환경설정 정보 호 출 : 팝빌회원 사업자번호, 팝빌회원 아이디, 발신자명, 발신번호, TEST(수신번호), 인증번호
|
||||
String receiverNumber = String.valueOf(paramMap.get("phoneNumber")); //테스트 후 paramMap.get("phoneNumber")로 변경;
|
||||
String tId = String.valueOf(System.currentTimeMillis());
|
||||
int authNumber = (int) (Math.random() * (9999 - 1000 + 1)) + 1000;
|
||||
String message = "[인증번호:"+authNumber+"] 메이드유 인증번호입니다.";
|
||||
|
||||
log.debug("corpNum :"+corpNum);
|
||||
log.debug("userId :"+userId);
|
||||
log.debug("senderName :"+senderName);
|
||||
log.debug("senderPhoneNumber :"+senderPhoneNumber);
|
||||
log.debug("receiverNumber :"+receiverNumber);
|
||||
log.debug("authNumber :"+authNumber);
|
||||
|
||||
//SMS 등록
|
||||
HashMap<String, Object> insertSmsParamMap = new HashMap<String, Object>();
|
||||
insertSmsParamMap.put("id", ("S").concat(String.valueOf(System.currentTimeMillis())));
|
||||
insertSmsParamMap.put("senderPhoneNumber",senderPhoneNumber);
|
||||
insertSmsParamMap.put("receiverNumber",receiverNumber);
|
||||
insertSmsParamMap.put("content",message);
|
||||
insertSmsParamMap.put("state","R");
|
||||
insertSmsParamMap.put("popbillState","0");
|
||||
insertSmsParamMap.put("popbillResult","");
|
||||
insertSmsParamMap.put("regId", paramMap.get("regId"));
|
||||
insertSmsParamMap.put("modId", paramMap.get("modId"));
|
||||
insertSmsParamMap.put("tId", tId);
|
||||
webVOCSqlMapDAO.insertSms(insertSmsParamMap);
|
||||
|
||||
//PHONE AUTH 등록
|
||||
HashMap<String, Object> insertPhoneAuthParamMap = new HashMap<String, Object>();
|
||||
insertPhoneAuthParamMap.put("id", ("PA").concat(String.valueOf(System.currentTimeMillis())));
|
||||
insertPhoneAuthParamMap.put("muSmsId", insertSmsParamMap.get("id"));
|
||||
insertPhoneAuthParamMap.put("phoneNumber", paramMap.get("phoneNumber"));
|
||||
insertPhoneAuthParamMap.put("authType", paramMap.get("authType")); //JN : 회원가입 ID: 아이디찾기, PW: 비밀번호 찾기, EM: 이메일 변경
|
||||
insertPhoneAuthParamMap.put("authNumber", authNumber);
|
||||
insertSmsParamMap.put("tId", tId);
|
||||
webVOCSqlMapDAO.insertPhoneAuth(insertPhoneAuthParamMap);
|
||||
|
||||
// sms 상태 수정
|
||||
HashMap<String, Object> smsStateParamMap = new HashMap<String, Object>();
|
||||
smsStateParamMap.put("muSmsId", insertSmsParamMap.get("id"));
|
||||
smsStateParamMap.put("state", "G");
|
||||
webVOCSqlMapDAO.updateSmsState(smsStateParamMap);
|
||||
|
||||
|
||||
Message[] messages = new Message[1];
|
||||
|
||||
Message msg = new Message();
|
||||
msg.setSender(senderPhoneNumber); //발신번호
|
||||
msg.setSenderName(senderName); //발신자명
|
||||
msg.setReceiver(receiverNumber); //수신번호
|
||||
msg.setReceiverName(""); //수신자명
|
||||
msg.setContent(message); //메시지내용
|
||||
|
||||
messages[0] = msg;
|
||||
|
||||
String receiptNum = "";
|
||||
|
||||
// 예약전송일시, null 처리시 즉시전송
|
||||
Date reserveDT = null;
|
||||
// 광고문자 전송여부
|
||||
Boolean adsYN = false;
|
||||
|
||||
// 전송요청번호
|
||||
// 파트너가 전송 건에 대해 관리번호를 구성하여 관리하는 경우 사용.
|
||||
// 1~36자리로 구성. 영문, 숫자, 하이픈(-), 언더바(_)를 조합하여 팝빌 회원별로 중복되지 않도록 할당.
|
||||
String requestNum = "";
|
||||
|
||||
try {
|
||||
receiptNum = messageService.sendSMS(corpNum, senderPhoneNumber, message, messages, reserveDT, adsYN, userId, requestNum);
|
||||
|
||||
log.debug("receiptNum",receiptNum);
|
||||
|
||||
} catch (PopbillException e) {
|
||||
log.debug("오류 코드 :" + e.getCode());
|
||||
log.debug("오류 메시지 :" + e.getMessage());
|
||||
}
|
||||
|
||||
// sms 상태 수정
|
||||
smsStateParamMap = new HashMap<String, Object>();
|
||||
smsStateParamMap.put("muSmsId", insertSmsParamMap.get("id"));
|
||||
smsStateParamMap.put("state", "Y");
|
||||
webVOCSqlMapDAO.updateSmsState(smsStateParamMap);
|
||||
|
||||
map.put("msgCode", Constants.OK);
|
||||
map.put("msgDesc", "발송되었습니다.");
|
||||
}
|
||||
}catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
throw e;
|
||||
}
|
||||
|
||||
log.debug("MobilePhoneAuthServiceImpl insertPhoneAuth END");
|
||||
return map;
|
||||
}
|
||||
|
||||
/**
|
||||
* 접수 등록
|
||||
*
|
||||
* @param paramMap
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
@Override
|
||||
@Transactional(rollbackFor = { Exception.class }, propagation = Propagation.REQUIRES_NEW)
|
||||
public HashMap<String, Object> insertVOC(HashMap<String, Object> paramMap) throws Exception {
|
||||
|
||||
log.debug("MobilePhoneAuthServiceImpl insertVOC START");
|
||||
|
||||
HashMap<String, Object> map = new HashMap<String, Object>();
|
||||
|
||||
|
||||
try {
|
||||
boolean check = true;
|
||||
|
||||
String phoneNumber = String.valueOf(paramMap.get("phoneNumber"));
|
||||
|
||||
if (true != ValidationCheckUtil.emptyCheck(phoneNumber)) {
|
||||
check = false;
|
||||
map.put("msgCode", Constants.FAIL);
|
||||
map.put("msgDesc", "연락처 정보가 없습니다.");
|
||||
}
|
||||
|
||||
|
||||
if (check == true) {
|
||||
webVOCSqlMapDAO.insertVOC(paramMap);
|
||||
|
||||
|
||||
map.put("msgCode", Constants.OK);
|
||||
map.put("msgDesc", "접수되었습니다.");
|
||||
}
|
||||
}catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
throw e;
|
||||
}
|
||||
|
||||
log.debug("MobilePhoneAuthServiceImpl insertVOC END");
|
||||
return map;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,9 @@
|
||||
package com.madeuhome.service.web.webyoutube;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
||||
|
||||
public interface WebYoutubeService {
|
||||
|
||||
public HashMap<String, Object> selectListWebYoutube(HashMap<String, Object> paramMap) throws Exception;
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
package com.madeuhome.service.web.webyoutube.impl;
|
||||
|
||||
import com.madeuhome.constants.Constants;
|
||||
import com.madeuhome.dao.web.webyoutube.WebYoutubeSqlMapDAO;
|
||||
import com.madeuhome.service.web.webyoutube.WebYoutubeService;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
|
||||
@Slf4j
|
||||
@Service("WebYoutubeService")
|
||||
public class WebYoutubeServiceImpl implements WebYoutubeService {
|
||||
|
||||
@Autowired
|
||||
private WebYoutubeSqlMapDAO webYoutubeSqlMapDAO;
|
||||
|
||||
/**
|
||||
* 유튜브 정보 리스트 조회 (List)
|
||||
*
|
||||
* @param paramMap
|
||||
* @return
|
||||
* @throws Exception
|
||||
*/
|
||||
@Override
|
||||
public HashMap<String, Object> selectListWebYoutube(
|
||||
HashMap<String, Object> paramMap) throws Exception {
|
||||
log.debug("WebYoutubeServiceImpl selectListWebYoutube START");
|
||||
|
||||
HashMap<String, Object> map = new HashMap<String, Object>();
|
||||
|
||||
try{
|
||||
List<Map<String, Object>> listMap = webYoutubeSqlMapDAO.selectListWebYoutube(paramMap);
|
||||
map.put("rows",listMap);
|
||||
|
||||
map.put("msgCode", Constants.OK);
|
||||
map.put("success","true");
|
||||
|
||||
}catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
throw e;
|
||||
}
|
||||
|
||||
log.debug("WebYoutubeServiceImpl selectListWebYoutube END");
|
||||
return map;
|
||||
}
|
||||
}
|
||||
61
src/main/java/com/madeuhome/util/HttpUtil.java
Normal file
61
src/main/java/com/madeuhome/util/HttpUtil.java
Normal file
@@ -0,0 +1,61 @@
|
||||
package com.madeuhome.util;
|
||||
|
||||
import com.google.gson.Gson;
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
import jakarta.servlet.http.HttpServletResponse;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.UnsupportedEncodingException;
|
||||
import java.net.URLDecoder;
|
||||
import java.util.Enumeration;
|
||||
import java.util.HashMap;
|
||||
|
||||
public class HttpUtil {
|
||||
public static ModelAndView makeHashToJsonModelAndView(
|
||||
final HashMap<String, Object> map) {
|
||||
Gson gson = new Gson();
|
||||
ModelAndView mnv = new ModelAndView();
|
||||
mnv.setViewName("/notification");
|
||||
mnv.addObject("message", gson.toJson(map));
|
||||
|
||||
return mnv;
|
||||
}
|
||||
|
||||
public static void sendResponceToJson(HttpServletResponse response,
|
||||
final HashMap<String, Object> map) {
|
||||
response.setContentType("application/json; charset=utf-8");
|
||||
|
||||
Gson gson = new Gson();
|
||||
try {
|
||||
response.getWriter().write(gson.toJson(map));
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
public static HashMap<String, Object> getParameterMap(
|
||||
HttpServletRequest request) {
|
||||
HashMap<String, Object> parameterMap = new HashMap<String, Object>();
|
||||
Enumeration<?> enums = request.getParameterNames();
|
||||
while (enums.hasMoreElements()) {
|
||||
String paramName = (String) enums.nextElement();
|
||||
String[] parameters = request.getParameterValues(paramName);
|
||||
|
||||
// Parameter가 배열일 경우
|
||||
if (parameters.length > 1) {
|
||||
parameterMap.put(paramName, parameters);
|
||||
// Parameter가 배열이 아닌 경우
|
||||
} else {
|
||||
try {
|
||||
parameters[0] = parameters[0].replaceAll("%", "%25");
|
||||
parameterMap.put(paramName, URLDecoder.decode(parameters[0],"UTF-8"));
|
||||
} catch (UnsupportedEncodingException e) {
|
||||
// TODO Auto-generated catch block
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
return parameterMap;
|
||||
}
|
||||
}
|
||||
52
src/main/java/com/madeuhome/util/OkHttpService.java
Normal file
52
src/main/java/com/madeuhome/util/OkHttpService.java
Normal file
@@ -0,0 +1,52 @@
|
||||
package com.madeuhome.util;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import okhttp3.MultipartBody;
|
||||
import okhttp3.OkHttpClient;
|
||||
import okhttp3.Request;
|
||||
import okhttp3.Response;
|
||||
|
||||
@Component
|
||||
public class OkHttpService {
|
||||
private static final OkHttpClient client = new OkHttpClient.Builder()
|
||||
.connectTimeout(30, TimeUnit.SECONDS)
|
||||
.writeTimeout(30, TimeUnit.SECONDS)
|
||||
.readTimeout(30, TimeUnit.SECONDS)
|
||||
.build();
|
||||
|
||||
/**
|
||||
* Form-data POST 요청
|
||||
* @param url 요청 URL
|
||||
* @param formData 폼 데이터
|
||||
* @return 응답 문자열
|
||||
* @throws IOException 요청 실패시
|
||||
*/
|
||||
public static String postFormData(String url, Map<String, String> formData) throws IOException {
|
||||
MultipartBody.Builder builder = new MultipartBody.Builder()
|
||||
.setType(MultipartBody.FORM);
|
||||
|
||||
// 폼 데이터 추가
|
||||
for (Map.Entry<String, String> entry : formData.entrySet()) {
|
||||
if (entry.getValue() != null) {
|
||||
builder.addFormDataPart(entry.getKey(), entry.getValue());
|
||||
}
|
||||
}
|
||||
|
||||
Request request = new Request.Builder()
|
||||
.url(url)
|
||||
.post(builder.build())
|
||||
.build();
|
||||
|
||||
try (Response response = client.newCall(request).execute()) {
|
||||
if (!response.isSuccessful()) {
|
||||
throw new IOException("HTTP Error: " + response.code() + " " + response.message());
|
||||
}
|
||||
return response.body().string();
|
||||
}
|
||||
}
|
||||
}
|
||||
210
src/main/java/com/madeuhome/util/RequestLogUtil.java
Normal file
210
src/main/java/com/madeuhome/util/RequestLogUtil.java
Normal file
@@ -0,0 +1,210 @@
|
||||
package com.madeuhome.util;
|
||||
|
||||
import jakarta.servlet.http.HttpServletRequest;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.regex.Matcher;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
@Slf4j
|
||||
public class RequestLogUtil {
|
||||
|
||||
/**
|
||||
* 접속 로그 저장
|
||||
* @param request
|
||||
* @param
|
||||
* @throws Exception
|
||||
*/
|
||||
// https://linked2ev.github.io/java/2019/05/22/JAVA-1.-java-get-clientIP/
|
||||
public static HashMap<String, Object> getVisitLogParameterMap(HttpServletRequest request) {
|
||||
|
||||
String visitIp = getClientIP(request);
|
||||
String visitReferDomain = getClientDomainName(request);
|
||||
String visitRefer = getClientDomain(request);
|
||||
String visitOriginAgent = getClientAgent(request);
|
||||
String visitAgent = getClientBrower(request);
|
||||
String visitOs = getClientOS(request);
|
||||
|
||||
|
||||
// pushHistory에 저장.
|
||||
HashMap<String, Object> visitLogParamMap = new HashMap<String, Object>();
|
||||
visitLogParamMap.put("type", "A"); // 관리자에서 로그 등록
|
||||
visitLogParamMap.put("visitIp", visitIp);
|
||||
visitLogParamMap.put("visitReferDomain", visitReferDomain);
|
||||
visitLogParamMap.put("visitRefer", visitRefer);
|
||||
visitLogParamMap.put("visitOriginAgent", visitOriginAgent);
|
||||
visitLogParamMap.put("visitAgent", visitAgent);
|
||||
visitLogParamMap.put("visitOs", visitOs);
|
||||
|
||||
return visitLogParamMap;
|
||||
}
|
||||
|
||||
/**
|
||||
* 접속자 IP
|
||||
* @param request
|
||||
* @param
|
||||
* @throws Exception
|
||||
*/
|
||||
// https://linked2ev.github.io/java/2019/05/22/JAVA-1.-java-get-clientIP/
|
||||
public static String getClientIP(HttpServletRequest request) {
|
||||
String ip = request.getHeader("X-Forwarded-For");
|
||||
log.debug("> X-FORWARDED-FOR : " + ip);
|
||||
|
||||
if (ip == null) {
|
||||
ip = request.getHeader("Proxy-Client-IP");
|
||||
log.debug("> Proxy-Client-IP : " + ip);
|
||||
}
|
||||
if (ip == null) {
|
||||
ip = request.getHeader("WL-Proxy-Client-IP");
|
||||
log.debug("> WL-Proxy-Client-IP : " + ip);
|
||||
}
|
||||
if (ip == null) {
|
||||
ip = request.getHeader("HTTP_CLIENT_IP");
|
||||
log.debug("> HTTP_CLIENT_IP : " + ip);
|
||||
}
|
||||
if (ip == null) {
|
||||
ip = request.getHeader("HTTP_X_FORWARDED_FOR");
|
||||
log.debug("> HTTP_X_FORWARDED_FOR : " + ip);
|
||||
}
|
||||
if (ip == null) {
|
||||
ip = request.getRemoteAddr();
|
||||
log.debug("> getRemoteAddr : "+ip);
|
||||
}
|
||||
|
||||
log.debug("Result : IP Address : "+ip);
|
||||
|
||||
return ip;
|
||||
}
|
||||
|
||||
/**
|
||||
* 접속자 Agent
|
||||
* @param request
|
||||
* @param
|
||||
* @throws Exception
|
||||
*/
|
||||
public static String getClientAgent(HttpServletRequest request) {
|
||||
String agent = request.getHeader("User-Agent");
|
||||
|
||||
log.debug("Result : agent : "+agent);
|
||||
|
||||
return agent;
|
||||
}
|
||||
|
||||
/**
|
||||
* 접속자 브라우저
|
||||
* @param request
|
||||
* @param
|
||||
* @throws Exception
|
||||
*/
|
||||
public static String getClientBrower(HttpServletRequest request) {
|
||||
String agent = request.getHeader("User-Agent");
|
||||
|
||||
String brower = null;
|
||||
|
||||
if (agent != null) {
|
||||
if (agent.indexOf("Trident") > -1) {
|
||||
brower = "MS IE";
|
||||
} else if (agent.indexOf("Edg") > -1) {
|
||||
brower = "MS Edg";
|
||||
}else if (agent.indexOf("KAKAOTALK") > -1) {
|
||||
brower = "KAKAOTALK";
|
||||
} else if (agent.indexOf("Chrome") > -1) {
|
||||
brower = "Chrome";
|
||||
} else if (agent.indexOf("Safari") > -1) {
|
||||
brower = "Safari";
|
||||
} else if (agent.indexOf("Opera") > -1) {
|
||||
brower = "Opera";
|
||||
}
|
||||
}
|
||||
|
||||
log.debug("Result : brower : "+brower);
|
||||
|
||||
return brower;
|
||||
}
|
||||
|
||||
/**
|
||||
* 접속자 OS
|
||||
* @param request
|
||||
* @param
|
||||
* @throws Exception
|
||||
*/
|
||||
public static String getClientOS(HttpServletRequest request) {
|
||||
String agent = request.getHeader("User-Agent");
|
||||
|
||||
// OS 구분
|
||||
String os = null;
|
||||
|
||||
if(agent.indexOf("Android") != -1) {
|
||||
os = "Android";
|
||||
}else if(agent.indexOf("iPhone") != -1) {
|
||||
os = "iPhone";
|
||||
}else if(agent.indexOf("Linux") != -1) {
|
||||
os = "Linux";
|
||||
}else if(agent.indexOf("Mac OS") != -1) {
|
||||
os = "Mac OS";
|
||||
}else if(agent.indexOf("Windows") != -1) {
|
||||
os = "Windows";
|
||||
}else {
|
||||
os = "etc";
|
||||
}
|
||||
|
||||
log.debug("Result : OS : "+os);
|
||||
|
||||
return os;
|
||||
}
|
||||
|
||||
/**
|
||||
* 접속자 도메인(REFER)
|
||||
* @param request
|
||||
* @param
|
||||
* @throws Exception
|
||||
*/
|
||||
public static String getClientDomain(HttpServletRequest request) {
|
||||
|
||||
String referer = request.getHeader("REFERER");
|
||||
|
||||
log.debug("Result : Referer : "+referer);
|
||||
|
||||
return referer;
|
||||
}
|
||||
|
||||
/**
|
||||
* 접속자 도메인(REFER에서 도메인명만 추출)
|
||||
* @param request
|
||||
* @param
|
||||
* @throws Exception
|
||||
*/
|
||||
public static String getClientDomainName(HttpServletRequest request) {
|
||||
|
||||
String referer = request.getHeader("REFERER");
|
||||
|
||||
log.debug("Referer : "+referer);
|
||||
|
||||
if(referer==null||referer.equals("")) {
|
||||
return null;
|
||||
}
|
||||
|
||||
String result="";
|
||||
Pattern urlPattern = Pattern.compile("^(https?):\\/\\/([^:\\/\\s]+)(:([^\\/]*))?((\\/[^\\s/\\/]+)*)?\\/([^#\\s\\?]*)(\\?([^#\\s]*))?(#(\\w*))?$");
|
||||
Matcher m = urlPattern.matcher(referer);
|
||||
|
||||
if (m.matches()) {
|
||||
/*for(int i=0; i<=m.groupCount();i++) {
|
||||
System.out.println(m.group(i));
|
||||
}*/
|
||||
|
||||
if(m.groupCount()>=2){
|
||||
result = m.group(2);
|
||||
}
|
||||
|
||||
if(result.contains("www.")) {
|
||||
result = result.substring(4, result.length());
|
||||
}
|
||||
}
|
||||
|
||||
log.debug("Result : domainName : "+result);
|
||||
|
||||
return result;
|
||||
}
|
||||
}
|
||||
39
src/main/java/com/madeuhome/util/SecurityUtil.java
Normal file
39
src/main/java/com/madeuhome/util/SecurityUtil.java
Normal file
@@ -0,0 +1,39 @@
|
||||
package com.madeuhome.util;
|
||||
|
||||
|
||||
import java.security.MessageDigest;
|
||||
import java.security.NoSuchAlgorithmException;
|
||||
|
||||
public class SecurityUtil {
|
||||
|
||||
public static String encryptSHA256(String str) {
|
||||
|
||||
String sha = "";
|
||||
try {
|
||||
MessageDigest sh = MessageDigest.getInstance("SHA-256");
|
||||
sh.update(str.getBytes());
|
||||
byte byteData[] = sh.digest();
|
||||
StringBuffer sb = new StringBuffer();
|
||||
for(int i = 0; i < byteData.length; i++) {
|
||||
sb.append(Integer.toString((byteData[i]&0xff) + 256, 16).substring(1));
|
||||
}
|
||||
sha = sb.toString();
|
||||
} catch (NoSuchAlgorithmException e) {
|
||||
sha = null;
|
||||
}
|
||||
|
||||
|
||||
return sha;
|
||||
}
|
||||
|
||||
|
||||
public static void main(String[] args){
|
||||
try {
|
||||
|
||||
System.out.println("encryptSHA256 : "+ encryptSHA256("1234"));
|
||||
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
101
src/main/java/com/madeuhome/util/ValidationCheckUtil.java
Normal file
101
src/main/java/com/madeuhome/util/ValidationCheckUtil.java
Normal file
@@ -0,0 +1,101 @@
|
||||
package com.madeuhome.util;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.regex.Pattern;
|
||||
|
||||
@Slf4j
|
||||
public class ValidationCheckUtil {
|
||||
|
||||
public static Boolean emptyCheck(String value){
|
||||
if(null==value||("").equals(value)||("null").equals(value)||("NULL").equals(value)||("undefined").equals(value)) {
|
||||
return false;
|
||||
}else{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
public static Boolean lengthCheck(String value, int maxLength){
|
||||
int strLength = value.length();
|
||||
log.debug("strLength : "+strLength);
|
||||
|
||||
if(strLength > maxLength) {
|
||||
return false;
|
||||
}else{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
public static Boolean dateCheck(String value){
|
||||
|
||||
try{
|
||||
int strLength = value.length();
|
||||
log.debug("strLength : "+strLength);
|
||||
|
||||
if(strLength == 10){
|
||||
SimpleDateFormat dateFormatParser = new SimpleDateFormat("yyyy-MM-dd");
|
||||
dateFormatParser.setLenient(false);
|
||||
dateFormatParser.parse(value);
|
||||
|
||||
return true;
|
||||
}else{
|
||||
return false;
|
||||
}
|
||||
|
||||
}catch (Exception e){
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public static Boolean dateTimeCheck(String value){
|
||||
|
||||
try{
|
||||
int strLength = value.length();
|
||||
log.debug("strLength : "+strLength);
|
||||
|
||||
if(strLength == 16){
|
||||
SimpleDateFormat dateFormatParser = new SimpleDateFormat("yyyy-MM-dd HH:mm");
|
||||
dateFormatParser.setLenient(false);
|
||||
dateFormatParser.parse(value);
|
||||
|
||||
return true;
|
||||
}else{
|
||||
return false;
|
||||
}
|
||||
|
||||
}catch (Exception e){
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
public static boolean phoneCheck(String str) {
|
||||
return Pattern.matches("^\\d{2,3}\\d{3,4}\\d{4}$", str);
|
||||
}
|
||||
|
||||
// 이메일 검사기
|
||||
public static boolean emailCheck(String str) {
|
||||
return Pattern.matches("^[a-z0-9A-Z._-]*@[a-z0-9A-Z]*.[a-zA-Z.]*$", str);
|
||||
}
|
||||
|
||||
public static boolean passwordCheck(String str) {
|
||||
return Pattern.matches("(?=.*[a-zA-Z])(?=.*\\d)[a-zA-Z\\d]{9,16}$", str);
|
||||
}
|
||||
public static void main(String[] args){
|
||||
|
||||
try {
|
||||
boolean emptyCheck = ValidationCheckUtil.emptyCheck("484651984561");
|
||||
boolean lengthCheck = ValidationCheckUtil.lengthCheck("길이체크", 255);
|
||||
boolean dateCheck = ValidationCheckUtil.dateCheck("2022-03-01");
|
||||
boolean dateTimeCheck = ValidationCheckUtil.dateTimeCheck("2022-03-01 12:11");
|
||||
|
||||
log.debug("emptyCheck : "+emptyCheck);
|
||||
log.debug("lengthCheck : "+lengthCheck);
|
||||
log.debug("dateCheck : "+dateCheck);
|
||||
log.debug("dateTimeCheck : "+dateTimeCheck);
|
||||
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
16
src/main/resources/application-dev.yml
Normal file
16
src/main/resources/application-dev.yml
Normal file
@@ -0,0 +1,16 @@
|
||||
spring:
|
||||
datasource:
|
||||
hikari:
|
||||
driver-class-name: org.mariadb.jdbc.Driver
|
||||
jdbc-url: jdbc:mariadb://vara.iptime.org:3306/madeu
|
||||
username: madeu
|
||||
password: madeu12#$
|
||||
|
||||
url:
|
||||
cdn: http://dcrm.vara.co.kr/cdn/
|
||||
old-crm-php: http://crm.madeu.co.kr/add-booking-home.php
|
||||
|
||||
madeu:
|
||||
logo:
|
||||
size800x450: http://crm.vara.co.kr/cdn/logo_800x450.png
|
||||
|
||||
16
src/main/resources/application-local.yml
Normal file
16
src/main/resources/application-local.yml
Normal file
@@ -0,0 +1,16 @@
|
||||
spring:
|
||||
datasource:
|
||||
hikari:
|
||||
driver-class-name: org.mariadb.jdbc.Driver
|
||||
jdbc-url: jdbc:mariadb://183.98.184.84:3306/madeu
|
||||
username: madeu
|
||||
password: apdlemdb12#$
|
||||
|
||||
url:
|
||||
cdn: http://crm.vara.co.kr/cdn/
|
||||
old-crm-php: http://crm.madeu.co.kr/add-booking-home.php
|
||||
|
||||
madeu:
|
||||
logo:
|
||||
size800x450: http://crm.vara.co.kr/cdn/logo_800x450.png
|
||||
|
||||
16
src/main/resources/application-prod.yml
Normal file
16
src/main/resources/application-prod.yml
Normal file
@@ -0,0 +1,16 @@
|
||||
spring:
|
||||
datasource:
|
||||
hikari:
|
||||
driver-class-name: org.mariadb.jdbc.Driver
|
||||
jdbc-url: jdbc:mariadb://localhost:3306/madeu
|
||||
username: madeu
|
||||
password: apdlemdb12#$
|
||||
|
||||
url:
|
||||
cdn: https://crm.vara.co.kr/cdn/
|
||||
old-crm-php: http://crm.madeu.co.kr/add-booking-home.php
|
||||
|
||||
madeu:
|
||||
logo:
|
||||
size800x450: http://crm.vara.co.kr/cdn/logo_800x450.png
|
||||
|
||||
53
src/main/resources/application.yml
Normal file
53
src/main/resources/application.yml
Normal file
@@ -0,0 +1,53 @@
|
||||
# 공통 설정
|
||||
spring:
|
||||
profiles:
|
||||
active: local
|
||||
thymeleaf:
|
||||
prefix: classpath:templates/
|
||||
suffix: .html
|
||||
cache: false
|
||||
check-template-location: true
|
||||
servlet:
|
||||
multipart:
|
||||
maxFileSize: 500MB
|
||||
maxRequestSize: 500MB
|
||||
|
||||
server:
|
||||
port: 8081
|
||||
compression:
|
||||
enabled: true
|
||||
server-header: server
|
||||
error:
|
||||
whitelabel:
|
||||
enabled: false
|
||||
path: /error/errorIntro.do
|
||||
servlet:
|
||||
session:
|
||||
timeout: -1
|
||||
|
||||
|
||||
|
||||
mybatis:
|
||||
type-aliases-package: com.entree
|
||||
mapper-locations: mybatis/mappers/*.xml
|
||||
configuration:
|
||||
map-underscore-to-camel-case: true
|
||||
|
||||
# Popbill 설정
|
||||
popbill:
|
||||
link-id: NTSOFT
|
||||
secret-key: Wha5GNilXotCWzsZFj4c1VAvFv3pSlnNog5zpZlxsZc=
|
||||
is-test: false
|
||||
is-ip-restrict-on-off: false
|
||||
use-static-ip: false
|
||||
use-local-time-yn: true
|
||||
|
||||
corpNum: 4901201321
|
||||
userId: chanseul
|
||||
senderName: madeu
|
||||
senderPhoneNumber: 025474711
|
||||
|
||||
# Instagram 설정
|
||||
instagram:
|
||||
client-id: 17841468400622116
|
||||
accesstoken: IGAAMzYDUuoLJBZAE04bnBiaHFicnBybGJrTVVYQmVBa0p0WV9XNVRXLUpiV0taTFJFelBBQTZAoeXhxckpLelcwMVAyQ1VMdGhpUUhydWZAnYWpJSXFGeXozcGNMOFFmWGEtTXRxWHFDMUpJRkcycGoxT2o5MlppY09mRWhNVUVxOAZDZD
|
||||
63
src/main/resources/log4j2.xml
Normal file
63
src/main/resources/log4j2.xml
Normal file
@@ -0,0 +1,63 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Configuration status="debug" monitorInterval="30">
|
||||
<Properties>
|
||||
<!-- <Property name="BASE_DIR">/usr/local/tomcat/logs</Property> -->
|
||||
<Property name="BASE_DIR">/usr/local/apache-tomcat-10.1.11/logs/madeuhome</Property>
|
||||
<Property name="LOG_FORMAT">[%date{yyyy-MM-dd HH:mm:ss}] %level %log{36}(%file:%line) - %msg%n</Property>
|
||||
</Properties>
|
||||
|
||||
<Appenders>
|
||||
<Console name="Console" target="SYSTEM_OUT" follow="true">
|
||||
<PatternLayout pattern="${LOG_FORMAT}" />
|
||||
</Console>
|
||||
|
||||
<RollingFile name="File"
|
||||
fileName="${BASE_DIR}/output.log"
|
||||
filePattern="${BASE_DIR}/output.%d{yyyy-MM-dd}.log">
|
||||
<PatternLayout pattern="${LOG_FORMAT}" />
|
||||
<Policies>
|
||||
<TimeBasedTriggeringPolicy />
|
||||
</Policies>
|
||||
<DefaultRolloverStrategy>
|
||||
<Delete basePath="${BASE_DIR}">
|
||||
<IfFileName glob="*.log" />
|
||||
<IfLastModified age="30d" />
|
||||
</Delete>
|
||||
</DefaultRolloverStrategy>
|
||||
</RollingFile>
|
||||
</Appenders>
|
||||
|
||||
<Loggers>
|
||||
<Root level="info" additivity="true">
|
||||
<AppenderRef ref="Console" />
|
||||
<AppenderRef ref="File" />
|
||||
</Root>
|
||||
|
||||
<Logger name="com.package.controller" level="DEBUG"
|
||||
additivity="false">
|
||||
<AppenderRef ref="Console" />
|
||||
<AppenderRef ref="File" />
|
||||
</Logger>
|
||||
|
||||
<Logger name="org.mariadb.jdbc" level="DEBUG" additivity="false">
|
||||
<AppenderRef ref="Console" />
|
||||
<AppenderRef ref="File" />
|
||||
</Logger>
|
||||
|
||||
<Logger name="org.apache.juli.logging.DirectJDKLog.log" level="OFF" additivity="false">
|
||||
<AppenderRef ref="Console" />
|
||||
<AppenderRef ref="File" />
|
||||
</Logger>
|
||||
|
||||
|
||||
<!--<Logger name="com.microsoft.sqlserver" level="DEBUG" additivity="false">
|
||||
<AppenderRef ref="Console" />
|
||||
<AppenderRef ref="File" />
|
||||
</Logger>-->
|
||||
|
||||
<!-- RMI 관련 로그 레벨을 INFO나 WARN으로 변경 -->
|
||||
<Logger name="sun.rmi" level="INFO" additivity="false"/>
|
||||
<Logger name="java.rmi" level="INFO" additivity="false"/>
|
||||
<Logger name="javax.management" level="INFO" additivity="false"/>
|
||||
</Loggers>
|
||||
</Configuration>
|
||||
63
src/main/resources/mappers/LogHistorySqlMap.xml
Normal file
63
src/main/resources/mappers/LogHistorySqlMap.xml
Normal file
@@ -0,0 +1,63 @@
|
||||
<?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="LogHistory">
|
||||
<insert id="insertLogHistory" parameterType="hashmap">
|
||||
<selectKey resultType="string" keyProperty="id" order="BEFORE">
|
||||
SELECT CONCAT(#{muLogHistoryId},LPAD((SELECT NEXTVAL(MU_LOG_HISTORY_SEQ)), 11, 0))
|
||||
</selectKey>
|
||||
INSERT INTO MU_LOG_HISTORY(
|
||||
MU_LOG_HISTORY_ID
|
||||
,MU_MEMBER_ID
|
||||
,VISIT_IP
|
||||
,VISIT_ORIGIN_AGENT
|
||||
,VISIT_AGENT
|
||||
,VISIT_OS
|
||||
,URL
|
||||
,FUNC
|
||||
,SERVICE
|
||||
,FUNC_NAME
|
||||
,SERVICE_NAME
|
||||
,REQUEST_VALUE
|
||||
,RESPONSE_VALUE
|
||||
,RESULT_CODE
|
||||
,RESULT_MSG
|
||||
,WRITE_DATE
|
||||
,WRITE_TIME
|
||||
,CUD_FLAG
|
||||
,USE_YN
|
||||
,REG_ID
|
||||
,REG_DATE
|
||||
,MOD_ID
|
||||
,MOD_DATE
|
||||
,T_ID
|
||||
,T_DATE
|
||||
)VALUES(
|
||||
#{id}
|
||||
,#{muMemberId}
|
||||
,#{visitIp,jdbcType=VARCHAR}
|
||||
,#{visitOriginAgent,jdbcType=VARCHAR}
|
||||
,#{visitAgent,jdbcType=VARCHAR}
|
||||
,#{visitOs,jdbcType=VARCHAR}
|
||||
,#{url,jdbcType=VARCHAR}
|
||||
,#{func,jdbcType=VARCHAR}
|
||||
,#{service,jdbcType=VARCHAR}
|
||||
,#{funcName,jdbcType=VARCHAR}
|
||||
,#{serviceName,jdbcType=VARCHAR}
|
||||
,#{requestValue}
|
||||
,#{responseValue}
|
||||
,#{resultCode,jdbcType=VARCHAR}
|
||||
,#{resultMsg,jdbcType=VARCHAR}
|
||||
,CURDATE()
|
||||
,CURTIME()
|
||||
,'C'
|
||||
,'Y'
|
||||
,#{regId}
|
||||
,NOW()
|
||||
,#{modId}
|
||||
,NOW()
|
||||
,#{tId}
|
||||
,#{tDate}
|
||||
)
|
||||
</insert>
|
||||
|
||||
</mapper>
|
||||
42
src/main/resources/mappers/VisitLogSqlMap.xml
Normal file
42
src/main/resources/mappers/VisitLogSqlMap.xml
Normal file
@@ -0,0 +1,42 @@
|
||||
<?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="VisitLog">
|
||||
|
||||
<insert id="insertVisitLog" parameterType="hashmap">
|
||||
<selectKey resultType="string" keyProperty="id" order="BEFORE">
|
||||
SELECT CONCAT(#{tyVisitLogId},LPAD((SELECT NEXTVAL('TY_VISIT_LOG_SEQ')), 10, 0))
|
||||
</selectKey>
|
||||
INSERT INTO TY_VISIT_LOG(
|
||||
TY_VISIT_LOG_ID
|
||||
,TY_USER_ID
|
||||
,TYPE
|
||||
,VISIT_IP
|
||||
,VISIT_REFER_DOMAIN
|
||||
,VISIT_REFER
|
||||
,VISIT_ORIGIN_AGENT
|
||||
,VISIT_AGENT
|
||||
,VISIT_OS
|
||||
,VISIT_DATE
|
||||
,WORK_TYPE
|
||||
,USE_YN
|
||||
,REG_ID
|
||||
,REG_DATE
|
||||
)VALUES(
|
||||
#{id}
|
||||
,#{muMemberId, jdbcType=VARCHAR}
|
||||
,#{type, jdbcType=VARCHAR}
|
||||
,#{visitIp, jdbcType=VARCHAR}
|
||||
,#{visitReferDomain, jdbcType=VARCHAR}
|
||||
,#{visitRefer, jdbcType=VARCHAR}
|
||||
,#{visitOriginAgent, jdbcType=VARCHAR}
|
||||
,#{visitAgent, jdbcType=VARCHAR}
|
||||
,#{visitOs, jdbcType=VARCHAR}
|
||||
,NOW()
|
||||
,#{workType, jdbcType=VARCHAR}
|
||||
,'Y'
|
||||
,#{regId}
|
||||
,NOW()
|
||||
)
|
||||
</insert>
|
||||
|
||||
</mapper>
|
||||
130
src/main/resources/mappers/WebEventSqlMap.xml
Normal file
130
src/main/resources/mappers/WebEventSqlMap.xml
Normal file
@@ -0,0 +1,130 @@
|
||||
<?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="WebEvent">
|
||||
|
||||
<!-- 카테고리 목록 조회 -->
|
||||
<select id="selectListWebEvent" parameterType="hashmap" resultType="hashmap">
|
||||
SELECT
|
||||
CATEGORY_NO,
|
||||
CATEGORY_NM
|
||||
FROM HP_CATEGORY
|
||||
WHERE CATEGORY_DIV_CD = '02'
|
||||
AND USE_YN = 'Y'
|
||||
</select>
|
||||
|
||||
<!-- 카테고리 상세 목록 조회 -->
|
||||
<select id="selectListEvent" parameterType="hashmap" resultType="hashmap">
|
||||
SELECT A.CATEGORY_DIV_CD, A.CATEGORY_NO, A.POST_NO, TITLE, CONTENT, THUMBNAIL_BOTTOM_TXT, A.HASHTAG, D.FILE_PATH AS THUMBNAIL_PATH,
|
||||
(SELECT MIN(PRICE + VAT) FROM MU_TREATMENT_PROCEDURE_PRICE C
|
||||
LEFT OUTER JOIN HP_CONTENTS_BBS_PROCEDURE B ON A.POST_NO = B.POST_NO AND A.CATEGORY_DIV_CD = B.CATEGORY_DIV_CD AND A.CATEGORY_NO = B.CATEGORY_NO AND B.USE_YN = 'Y'
|
||||
WHERE B.MU_TREATMENT_PROCEDURE_ID = C.MU_TREATMENT_PROCEDURE_ID AND C.USE_YN = 'Y') AS PRICE,
|
||||
(SELECT MIN(DISCOUNT_PRICE) FROM MU_TREATMENT_PROCEDURE_PRICE C
|
||||
LEFT OUTER JOIN HP_CONTENTS_BBS_PROCEDURE B ON A.POST_NO = B.POST_NO AND A.CATEGORY_DIV_CD = B.CATEGORY_DIV_CD AND A.CATEGORY_NO = B.CATEGORY_NO AND B.USE_YN = 'Y'
|
||||
WHERE B.MU_TREATMENT_PROCEDURE_ID = C.MU_TREATMENT_PROCEDURE_ID AND C.USE_YN = 'Y') AS DISCOUNT_PRICE
|
||||
FROM HP_CONTENTS_BBS A
|
||||
LEFT OUTER JOIN HP_ATTACH_FILE D ON A.THUMBNAIL_ATTACHFILE_ID = D.ATTACHFILE_ID
|
||||
WHERE A.USE_YN = 'Y'
|
||||
AND A.CATEGORY_DIV_CD = '02'
|
||||
AND A.CATEGORY_NO = #{category_no}
|
||||
ORDER BY A.REG_DATE DESC
|
||||
</select>
|
||||
|
||||
<!-- 이벤트안내 상세 조회 -->
|
||||
<select id="selectEventDetail" resultType="hashmap" parameterType="hashmap">
|
||||
SELECT A.CATEGORY_DIV_CD, A.CATEGORY_NO, A.POST_NO, C.CATEGORY_NM , TITLE, CONTENT, THUMBNAIL_BOTTOM_TXT, A.HASHTAG, D.FILE_PATH AS THUMBNAIL_PATH, E.FILE_PATH AS CONTENTS_PATH,
|
||||
(SELECT MIN(PRICE + VAT) FROM MU_TREATMENT_PROCEDURE_PRICE C
|
||||
LEFT OUTER JOIN HP_CONTENTS_BBS_PROCEDURE B ON A.POST_NO = B.POST_NO AND A.CATEGORY_DIV_CD = B.CATEGORY_DIV_CD AND A.CATEGORY_NO = B.CATEGORY_NO AND B.USE_YN = 'Y'
|
||||
WHERE B.MU_TREATMENT_PROCEDURE_ID = C.MU_TREATMENT_PROCEDURE_ID AND C.USE_YN = 'Y') AS PRICE,
|
||||
(SELECT MIN(DISCOUNT_PRICE) FROM MU_TREATMENT_PROCEDURE_PRICE C
|
||||
LEFT OUTER JOIN HP_CONTENTS_BBS_PROCEDURE B ON A.POST_NO = B.POST_NO AND A.CATEGORY_DIV_CD = B.CATEGORY_DIV_CD AND A.CATEGORY_NO = B.CATEGORY_NO AND B.USE_YN = 'Y'
|
||||
WHERE B.MU_TREATMENT_PROCEDURE_ID = C.MU_TREATMENT_PROCEDURE_ID AND C.USE_YN = 'Y') AS DISCOUNT_PRICE
|
||||
FROM HP_CONTENTS_BBS A
|
||||
LEFT OUTER JOIN HP_CATEGORY C ON A.CATEGORY_NO = C.CATEGORY_NO AND A.CATEGORY_DIV_CD = C.CATEGORY_DIV_CD
|
||||
LEFT OUTER JOIN HP_ATTACH_FILE D ON A.THUMBNAIL_ATTACHFILE_ID = D.ATTACHFILE_ID
|
||||
LEFT OUTER JOIN HP_ATTACH_FILE E ON A.CONTENTS_ATTACHFILE_ID = E.ATTACHFILE_ID
|
||||
WHERE A.USE_YN = 'Y'
|
||||
AND A.CATEGORY_DIV_CD = #{CATEGORY_DIV_CD}
|
||||
AND A.CATEGORY_NO = #{CATEGORY_NO}
|
||||
AND A.POST_NO = #{POST_NO}
|
||||
</select>
|
||||
|
||||
<!-- 이벤트 목록 조회 -->
|
||||
<select id="selectListEventSub" resultType="hashmap" parameterType="hashmap">
|
||||
SELECT TREATMENT_PROCEDURE_NAME, PRICE, VAT, DISCOUNT_PRICE, A.MU_TREATMENT_PROCEDURE_ID
|
||||
FROM HP_CONTENTS_BBS_PROCEDURE A
|
||||
LEFT OUTER JOIN MU_TREATMENT_PROCEDURE B ON A.MU_TREATMENT_PROCEDURE_ID = B.MU_TREATMENT_PROCEDURE_ID AND B.USE_YN = 'Y'
|
||||
LEFT OUTER JOIN MU_TREATMENT_PROCEDURE_PRICE C ON B.MU_TREATMENT_PROCEDURE_ID = C.MU_TREATMENT_PROCEDURE_ID AND C.USE_YN = 'Y'
|
||||
WHERE A.USE_YN = 'Y'
|
||||
AND A.CATEGORY_DIV_CD = #{CATEGORY_DIV_CD}
|
||||
AND A.CATEGORY_NO = #{CATEGORY_NO}
|
||||
AND A.POST_NO = #{POST_NO}
|
||||
|
||||
</select>
|
||||
|
||||
<!-- 예약 조회 -->
|
||||
<select id="selectReservationCnt" resultType="hashmap" parameterType="hashmap">
|
||||
SELECT COUNT(*) AS RES_CNT
|
||||
FROM MU_RESERVE
|
||||
WHERE RESERVE_DATE = #{SELECTED_DATE}
|
||||
AND RESERVE_TIME = #{TIME}
|
||||
</select>
|
||||
|
||||
<!-- 시술 목록 조회 -->
|
||||
<select id="selectReservationService" resultType="hashmap" parameterType="hashmap">
|
||||
SELECT A.TREATMENT_PROCEDURE_NAME, (B.PRICE + B.VAT) AS PRICE, B.VAT, B.DISCOUNT_PRICE, C.MU_TREATMENT_ID, C.TREATMENT_NAME, B.MU_TREATMENT_PROCEDURE_ID
|
||||
FROM MU_TREATMENT_PROCEDURE A
|
||||
LEFT OUTER JOIN MU_TREATMENT_PROCEDURE_PRICE B ON A.MU_TREATMENT_PROCEDURE_ID = B.MU_TREATMENT_PROCEDURE_ID AND B.USE_YN = 'Y'
|
||||
LEFT OUTER JOIN MU_TREATMENT C ON A.MU_TREATMENT_ID = C.MU_TREATMENT_ID
|
||||
WHERE A.MU_TREATMENT_PROCEDURE_ID = #{PROCEDURE_ID}
|
||||
</select>
|
||||
|
||||
<!-- 예약 저장 -->
|
||||
<insert id="insertReservation" parameterType="hashmap">
|
||||
<selectKey resultType="string" keyProperty="id" order="BEFORE">
|
||||
SELECT CONCAT(#{muReserveId},LPAD((SELECT NEXTVAL(MU_RESERVE_SEQ)), 11, 0))
|
||||
</selectKey>
|
||||
INSERT INTO MU_RESERVE(
|
||||
MU_RESERVE_ID
|
||||
,USER_NAME
|
||||
,PHONE_NUMBER
|
||||
,RESERVE_DATE
|
||||
,RESERVE_TIME
|
||||
,MU_TREATMENT_ID
|
||||
,TREATMENT_NAME
|
||||
,MU_TREATMENT_PROCEDURE_ID
|
||||
,TREATMENT_PROCEDURE_NAME
|
||||
,ETC
|
||||
,STATUS
|
||||
,STATUS2
|
||||
,WRITE_DATE
|
||||
,WRITE_TIME
|
||||
,CUD_FLAG
|
||||
,USE_YN
|
||||
,REG_ID
|
||||
,REG_DATE
|
||||
,MOD_ID
|
||||
,MOD_DATE
|
||||
)VALUES(
|
||||
#{id}
|
||||
,#{NAME}
|
||||
,#{PHONE_NUMBER}
|
||||
,#{SELECTED_DATE}
|
||||
,#{TIME}
|
||||
,#{P_TREATMENT_ID}
|
||||
,#{P_TREATMENT_NM}
|
||||
,#{P_PROCEDURE_ID}
|
||||
,#{P_PROCEDURE_NM}
|
||||
,#{ETC,jdbcType=VARCHAR}
|
||||
,'T'
|
||||
,'N'
|
||||
,CURDATE()
|
||||
,CURTIME()
|
||||
,'C'
|
||||
,'Y'
|
||||
,'customer'
|
||||
,NOW()
|
||||
,'customer'
|
||||
,NOW()
|
||||
)
|
||||
</insert>
|
||||
</mapper>
|
||||
49
src/main/resources/mappers/WebMainBannerSqlMap.xml
Normal file
49
src/main/resources/mappers/WebMainBannerSqlMap.xml
Normal file
@@ -0,0 +1,49 @@
|
||||
<?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="WebMainBanner">
|
||||
|
||||
<select id="selectTotalWebMainBannerCount" parameterType="hashmap" resultType="hashmap">
|
||||
SELECT COUNT(*) AS "totalCount"
|
||||
FROM MU_WEB_MAIN_BANNER AS MWP
|
||||
WHERE MWP.USE_YN = 'Y'
|
||||
AND MWP.BANNER_TYPE = #{bannerType}
|
||||
</select>
|
||||
|
||||
<select id="selectListWebMainBanner" parameterType="hashmap" resultType="hashmap">
|
||||
SELECT MWP.MU_WEB_MAIN_BANNER_ID AS "muWebMainBannerId"
|
||||
,MWP.TITLE AS "title"
|
||||
,MWP.URL AS "url"
|
||||
,MWP.CONTENT AS "content"
|
||||
,MWP.WEB_FILE_PATH AS "webFilePath"
|
||||
,MWP.MOBILE_FILE_PATH AS "mobileFilePath"
|
||||
,MWP.WRITE_DATE AS "writeDate"
|
||||
FROM (
|
||||
SELECT MWP.MU_WEB_MAIN_BANNER_ID AS MU_WEB_MAIN_BANNER_ID
|
||||
,IFNULL(MWP.TITLE,'') AS TITLE
|
||||
,IFNULL(MWP.URL,'') AS URL
|
||||
,IFNULL(MWP.CONTENT,'') AS CONTENT
|
||||
,IFNULL(MWP.FILE_PATH,'') AS WEB_FILE_PATH
|
||||
,IFNULL(MWP.FILE_PATH2,'') AS MOBILE_FILE_PATH
|
||||
,DATE_FORMAT(MWP.WRITE_DATE, '%Y-%m-%d') AS WRITE_DATE
|
||||
,DATE_FORMAT(MWP.WRITE_TIME, '%H:%i:%s') AS WRITE_TIME
|
||||
FROM MU_WEB_MAIN_BANNER AS MWP
|
||||
WHERE MWP.USE_YN = 'Y'
|
||||
AND MWP.BANNER_TYPE = #{bannerType}
|
||||
LIMIT 18446744073709551615
|
||||
) AS MWP
|
||||
WHERE 1 = 1
|
||||
ORDER BY MWP.WRITE_DATE DESC, MWP.WRITE_TIME DESC
|
||||
</select>
|
||||
|
||||
<select id="selectWebMainBanner" parameterType="hashmap" resultType="hashmap">
|
||||
SELECT MWP.MU_WEB_MAIN_BANNER_ID AS "muWebMainBannerId"
|
||||
,IFNULL(CONCAT(MWP.CDN_URL, MWP.FILE_PATH),'') AS "webFilePath"
|
||||
,IFNULL(CONCAT(MWP.CDN_URL, MWP.FILE_PATH2),'') AS "mobileFilePath"
|
||||
,DATE_FORMAT(MWP.WRITE_DATE, '%Y-%m-%d') AS "writeDate"
|
||||
,DATE_FORMAT(MWP.WRITE_TIME, '%H:%i:%s') AS "writeTime"
|
||||
FROM MU_WEB_MAIN_BANNER AS MWP
|
||||
WHERE MWP.USE_YN = 'Y'
|
||||
AND MWP.MU_WEB_MAIN_BANNER_ID = #{muWebMainBannerId}
|
||||
LIMIT 0, 1
|
||||
</select>
|
||||
</mapper>
|
||||
53
src/main/resources/mappers/WebPhotoSqlMap.xml
Normal file
53
src/main/resources/mappers/WebPhotoSqlMap.xml
Normal file
@@ -0,0 +1,53 @@
|
||||
<?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="WebPhoto">
|
||||
|
||||
<!-- 카테고리 목록 조회 -->
|
||||
<select id="selectListWebPhoto" parameterType="hashmap" resultType="hashmap">
|
||||
SELECT
|
||||
CATEGORY_NO,
|
||||
CATEGORY_NM
|
||||
FROM HP_CATEGORY
|
||||
WHERE CATEGORY_DIV_CD = '05'
|
||||
AND USE_YN = 'Y'
|
||||
</select>
|
||||
|
||||
<!-- 카테고리 상세 목록 조회 -->
|
||||
<select id="selectListPhoto" parameterType="hashmap" resultType="hashmap">
|
||||
SELECT A.CATEGORY_DIV_CD, A.CATEGORY_NO, A.POST_NO, TITLE, CONTENT, D.FILE_PATH AS BEFORE_PATH, E.FILE_PATH AS AFTER_PATH, F.CATEGORY_NM
|
||||
FROM HP_BEFORE_AFTER_PHOTO_BBS A
|
||||
LEFT OUTER JOIN HP_ATTACH_FILE D ON A.BEFORE_PHOTO_ATTACHFILE_ID = D.ATTACHFILE_ID
|
||||
LEFT OUTER JOIN HP_ATTACH_FILE E ON A.AFTER_PHOTO_ATTACHFILE_ID = E.ATTACHFILE_ID
|
||||
LEFT OUTER JOIN HP_CATEGORY F ON A.CATEGORY_NO = F.CATEGORY_NO AND A.CATEGORY_DIV_CD = F.CATEGORY_DIV_CD
|
||||
WHERE A.USE_YN = 'Y'
|
||||
AND A.CATEGORY_DIV_CD = '05'
|
||||
<if test="category_no != null and category_no != '' and category_no != 'all'">
|
||||
AND A.CATEGORY_NO = #{category_no}
|
||||
</if>
|
||||
</select>
|
||||
|
||||
<!-- 전후사진안내 상세 조회 -->
|
||||
<select id="selectPhotoDetail" resultType="hashmap" parameterType="hashmap">
|
||||
SELECT A.CATEGORY_DIV_CD, A.CATEGORY_NO, A.POST_NO, C.CATEGORY_NM , TITLE, CONTENT, A.HASHTAG, D.FILE_PATH AS BEFORE_PATH, E.FILE_PATH AS AFTER_PATH, A.REG_DATE
|
||||
FROM HP_BEFORE_AFTER_PHOTO_BBS A
|
||||
LEFT OUTER JOIN HP_CATEGORY C ON A.CATEGORY_NO = C.CATEGORY_NO AND A.CATEGORY_DIV_CD = C.CATEGORY_DIV_CD
|
||||
LEFT OUTER JOIN HP_ATTACH_FILE D ON A.BEFORE_PHOTO_ATTACHFILE_ID = D.ATTACHFILE_ID
|
||||
LEFT OUTER JOIN HP_ATTACH_FILE E ON A.AFTER_PHOTO_ATTACHFILE_ID = E.ATTACHFILE_ID
|
||||
WHERE A.USE_YN = 'Y'
|
||||
AND A.CATEGORY_DIV_CD = #{CATEGORY_DIV_CD}
|
||||
AND A.CATEGORY_NO = #{CATEGORY_NO}
|
||||
AND A.POST_NO = #{POST_NO}
|
||||
</select>
|
||||
|
||||
<!-- 전후사진 목록 조회 -->
|
||||
<select id="selectListPhotoSub" resultType="hashmap" parameterType="hashmap">
|
||||
SELECT TREATMENT_PROCEDURE_NAME, PRICE, VAT, DISCOUNT_PRICE, A.MU_TREATMENT_PROCEDURE_ID
|
||||
FROM HP_CONTENTS_BBS_PROCEDURE A
|
||||
LEFT OUTER JOIN MU_TREATMENT_PROCEDURE B ON A.MU_TREATMENT_PROCEDURE_ID = B.MU_TREATMENT_PROCEDURE_ID AND B.USE_YN = 'Y'
|
||||
LEFT OUTER JOIN MU_TREATMENT_PROCEDURE_PRICE C ON B.MU_TREATMENT_PROCEDURE_ID = C.MU_TREATMENT_PROCEDURE_ID AND C.USE_YN = 'Y'
|
||||
WHERE A.USE_YN = 'Y'
|
||||
AND A.CATEGORY_DIV_CD = #{CATEGORY_DIV_CD}
|
||||
AND A.CATEGORY_NO = #{CATEGORY_NO}
|
||||
AND A.POST_NO = #{POST_NO}
|
||||
</select>
|
||||
</mapper>
|
||||
45
src/main/resources/mappers/WebPopupSqlMap.xml
Normal file
45
src/main/resources/mappers/WebPopupSqlMap.xml
Normal file
@@ -0,0 +1,45 @@
|
||||
<?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="WebPopup">
|
||||
|
||||
<select id="selectTotalWebPopupCount" parameterType="hashmap" resultType="hashmap">
|
||||
SELECT COUNT(*) AS "totalCount"
|
||||
FROM MU_WEB_POPUP AS MWP
|
||||
WHERE MWP.USE_YN = 'Y'
|
||||
</select>
|
||||
|
||||
<select id="selectListWebPopup" parameterType="hashmap" resultType="hashmap">
|
||||
SELECT MWP.MU_WEB_POPUP_ID AS "muWebPopupId"
|
||||
,MWP.TITLE AS "title"
|
||||
,MWP.URL AS "url"
|
||||
,MWP.FILE_PATH AS "filePath"
|
||||
,MWP.M_FILE_PATH AS "m_filePath"
|
||||
,MWP.WRITE_DATE AS "writeDate"
|
||||
FROM (
|
||||
SELECT MWP.MU_WEB_POPUP_ID AS MU_WEB_POPUP_ID
|
||||
,IFNULL(MWP.TITLE,'') AS TITLE
|
||||
,IFNULL(MWP.URL,'') AS URL
|
||||
,IFNULL(MWP.FILE_PATH, '') AS FILE_PATH
|
||||
,IFNULL(MWP.M_FILE_PATH, '') AS M_FILE_PATH
|
||||
,DATE_FORMAT(MWP.WRITE_DATE, '%Y-%m-%d') AS WRITE_DATE
|
||||
,DATE_FORMAT(MWP.WRITE_TIME, '%H:%i:%s') AS WRITE_TIME
|
||||
FROM MU_WEB_POPUP AS MWP
|
||||
WHERE MWP.USE_YN = 'Y'
|
||||
AND MWP.HOMEPAGE_DIV_CD = '01'
|
||||
LIMIT 18446744073709551615
|
||||
) AS MWP
|
||||
WHERE 1 = 1
|
||||
ORDER BY MWP.WRITE_DATE DESC, MWP.WRITE_TIME DESC
|
||||
</select>
|
||||
|
||||
<select id="selectWebPopup" parameterType="hashmap" resultType="hashmap">
|
||||
SELECT MWP.MU_WEB_POPUP_ID AS "muWebPopupId"
|
||||
,IFNULL(CONCAT(MWP.CDN_URL, MWP.FILE_PATH),'') AS "filePath"
|
||||
,DATE_FORMAT(MWP.WRITE_DATE, '%Y-%m-%d') AS "writeDate"
|
||||
,DATE_FORMAT(MWP.WRITE_TIME, '%H:%i:%s') AS "writeTime"
|
||||
FROM MU_WEB_POPUP AS MWP
|
||||
WHERE MWP.USE_YN = 'Y'
|
||||
AND MWP.MU_WEB_POPUP_ID = #{muWebPopupId}
|
||||
LIMIT 0, 1
|
||||
</select>
|
||||
</mapper>
|
||||
138
src/main/resources/mappers/WebServiceSqlMap.xml
Normal file
138
src/main/resources/mappers/WebServiceSqlMap.xml
Normal file
@@ -0,0 +1,138 @@
|
||||
<?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="WebService">
|
||||
|
||||
<!-- 카테고리 목록 조회 -->
|
||||
<select id="selectListWebCategory" resultType="hashmap" parameterType="hashmap">
|
||||
SELECT CATEGORY_NO
|
||||
,CATEGORY_NM
|
||||
FROM HP_CATEGORY
|
||||
WHERE CATEGORY_DIV_CD = '01'
|
||||
AND USE_YN = 'Y'
|
||||
ORDER BY ORDER_NO
|
||||
</select>
|
||||
|
||||
<!-- 카테고리 상세 목록 조회 -->
|
||||
<select id="selectListWebService" resultType="hashmap" parameterType="hashmap">
|
||||
SELECT A.CATEGORY_DIV_CD, A.CATEGORY_NO, A.POST_NO, TITLE, THUMBNAIL_BOTTOM_TXT, CONTENT,
|
||||
(SELECT MIN(PRICE + VAT) FROM MU_TREATMENT_PROCEDURE_PRICE C
|
||||
LEFT OUTER JOIN HP_CONTENTS_BBS_PROCEDURE B ON A.POST_NO = B.POST_NO AND A.CATEGORY_DIV_CD = B.CATEGORY_DIV_CD AND A.CATEGORY_NO = B.CATEGORY_NO AND B.USE_YN = 'Y'
|
||||
WHERE B.MU_TREATMENT_PROCEDURE_ID = C.MU_TREATMENT_PROCEDURE_ID AND C.USE_YN = 'Y') AS PRICE,
|
||||
(SELECT MIN(DISCOUNT_PRICE) FROM MU_TREATMENT_PROCEDURE_PRICE C
|
||||
LEFT OUTER JOIN HP_CONTENTS_BBS_PROCEDURE B ON A.POST_NO = B.POST_NO AND A.CATEGORY_DIV_CD = B.CATEGORY_DIV_CD AND A.CATEGORY_NO = B.CATEGORY_NO AND B.USE_YN = 'Y'
|
||||
WHERE B.MU_TREATMENT_PROCEDURE_ID = C.MU_TREATMENT_PROCEDURE_ID AND C.USE_YN = 'Y') AS DISCOUNT_PRICE
|
||||
FROM HP_CONTENTS_BBS A
|
||||
WHERE A.USE_YN = 'Y'
|
||||
AND A.CATEGORY_DIV_CD = '01'
|
||||
AND A.CATEGORY_NO = #{categoryNo}
|
||||
</select>
|
||||
|
||||
<!-- 카테고리 상세 조회 -->
|
||||
<select id="selectServiceDetail" resultType="hashmap" parameterType="hashmap">
|
||||
SELECT A.CATEGORY_DIV_CD
|
||||
, A.CATEGORY_NO
|
||||
, A.POST_NO
|
||||
, C.CATEGORY_NM
|
||||
, A.TITLE
|
||||
, A.CONTENT
|
||||
, A.THUMBNAIL_BOTTOM_TXT
|
||||
, A.HASHTAG
|
||||
, A.OLD_CRM_ITEM_ID as oldCrmItemId
|
||||
, D.FILE_PATH AS THUMBNAIL_PATH
|
||||
, E.FILE_PATH AS CONTENTS_PATH
|
||||
, (SELECT MIN(PRICE + VAT) FROM MU_TREATMENT_PROCEDURE_PRICE C
|
||||
LEFT OUTER JOIN HP_CONTENTS_BBS_PROCEDURE B ON A.POST_NO = B.POST_NO AND A.CATEGORY_DIV_CD = B.CATEGORY_DIV_CD AND A.CATEGORY_NO = B.CATEGORY_NO AND B.USE_YN = 'Y'
|
||||
WHERE B.MU_TREATMENT_PROCEDURE_ID = C.MU_TREATMENT_PROCEDURE_ID AND C.USE_YN = 'Y') AS PRICE
|
||||
, (SELECT MIN(DISCOUNT_PRICE) FROM MU_TREATMENT_PROCEDURE_PRICE C
|
||||
LEFT OUTER JOIN HP_CONTENTS_BBS_PROCEDURE B ON A.POST_NO = B.POST_NO AND A.CATEGORY_DIV_CD = B.CATEGORY_DIV_CD AND A.CATEGORY_NO = B.CATEGORY_NO AND B.USE_YN = 'Y'
|
||||
WHERE B.MU_TREATMENT_PROCEDURE_ID = C.MU_TREATMENT_PROCEDURE_ID AND C.USE_YN = 'Y') AS DISCOUNT_PRICE
|
||||
FROM HP_CONTENTS_BBS A
|
||||
LEFT OUTER JOIN HP_CATEGORY C ON A.CATEGORY_NO = C.CATEGORY_NO AND A.CATEGORY_DIV_CD = C.CATEGORY_DIV_CD
|
||||
LEFT OUTER JOIN HP_ATTACH_FILE D ON A.THUMBNAIL_ATTACHFILE_ID = D.ATTACHFILE_ID
|
||||
LEFT OUTER JOIN HP_ATTACH_FILE E ON A.CONTENTS_ATTACHFILE_ID = E.ATTACHFILE_ID
|
||||
WHERE A.USE_YN = 'Y'
|
||||
AND A.CATEGORY_DIV_CD = #{CATEGORY_DIV_CD}
|
||||
AND A.CATEGORY_NO = #{CATEGORY_NO}
|
||||
AND A.POST_NO = #{POST_NO}
|
||||
</select>
|
||||
|
||||
<!-- 시술 목록 조회 -->
|
||||
<select id="selectListService" resultType="hashmap" parameterType="hashmap">
|
||||
SELECT TREATMENT_PROCEDURE_NAME, PRICE, VAT, DISCOUNT_PRICE, A.MU_TREATMENT_PROCEDURE_ID
|
||||
FROM HP_CONTENTS_BBS_PROCEDURE A
|
||||
LEFT OUTER JOIN MU_TREATMENT_PROCEDURE B ON A.MU_TREATMENT_PROCEDURE_ID = B.MU_TREATMENT_PROCEDURE_ID AND B.USE_YN = 'Y'
|
||||
LEFT OUTER JOIN MU_TREATMENT_PROCEDURE_PRICE C ON B.MU_TREATMENT_PROCEDURE_ID = C.MU_TREATMENT_PROCEDURE_ID AND C.USE_YN = 'Y'
|
||||
WHERE A.USE_YN = 'Y'
|
||||
AND B.ENABLE_YN = 'Y'
|
||||
AND A.CATEGORY_DIV_CD = #{CATEGORY_DIV_CD}
|
||||
AND A.CATEGORY_NO = #{CATEGORY_NO}
|
||||
AND A.POST_NO = #{POST_NO}
|
||||
</select>
|
||||
|
||||
<!-- 예약 조회 -->
|
||||
<select id="selectReservationCnt" resultType="hashmap" parameterType="hashmap">
|
||||
SELECT COUNT(*) AS RES_CNT
|
||||
FROM MU_RESERVE
|
||||
WHERE RESERVE_DATE = #{SELECTED_DATE}
|
||||
AND RESERVE_TIME = #{TIME}
|
||||
</select>
|
||||
|
||||
<!-- 시술 목록 조회 -->
|
||||
<select id="selectReservationService" resultType="hashmap" parameterType="hashmap">
|
||||
SELECT A.TREATMENT_PROCEDURE_NAME, (B.PRICE + B.VAT) AS PRICE, B.VAT, B.DISCOUNT_PRICE, C.MU_TREATMENT_ID, C.TREATMENT_NAME, B.MU_TREATMENT_PROCEDURE_ID
|
||||
FROM MU_TREATMENT_PROCEDURE A
|
||||
LEFT OUTER JOIN MU_TREATMENT_PROCEDURE_PRICE B ON A.MU_TREATMENT_PROCEDURE_ID = B.MU_TREATMENT_PROCEDURE_ID AND B.USE_YN = 'Y'
|
||||
LEFT OUTER JOIN MU_TREATMENT C ON A.MU_TREATMENT_ID = C.MU_TREATMENT_ID
|
||||
WHERE A.MU_TREATMENT_PROCEDURE_ID = #{PROCEDURE_ID}
|
||||
</select>
|
||||
|
||||
<!-- 예약 저장 -->
|
||||
<insert id="insertReservation" parameterType="hashmap">
|
||||
<selectKey resultType="string" keyProperty="id" order="BEFORE">
|
||||
SELECT CONCAT(#{muReserveId},LPAD((SELECT NEXTVAL(MU_RESERVE_SEQ)), 11, 0))
|
||||
</selectKey>
|
||||
INSERT INTO MU_RESERVE(
|
||||
MU_RESERVE_ID
|
||||
,USER_NAME
|
||||
,PHONE_NUMBER
|
||||
,RESERVE_DATE
|
||||
,RESERVE_TIME
|
||||
,MU_TREATMENT_ID
|
||||
,TREATMENT_NAME
|
||||
,MU_TREATMENT_PROCEDURE_ID
|
||||
,TREATMENT_PROCEDURE_NAME
|
||||
,ETC
|
||||
,STATUS
|
||||
,STATUS2
|
||||
,WRITE_DATE
|
||||
,WRITE_TIME
|
||||
,CUD_FLAG
|
||||
,USE_YN
|
||||
,REG_ID
|
||||
,REG_DATE
|
||||
,MOD_ID
|
||||
,MOD_DATE
|
||||
)VALUES(
|
||||
#{id}
|
||||
,#{NAME}
|
||||
,#{PHONE_NUMBER}
|
||||
,#{SELECTED_DATE}
|
||||
,#{TIME}
|
||||
,#{P_TREATMENT_ID}
|
||||
,#{P_TREATMENT_NM}
|
||||
,#{P_PROCEDURE_ID}
|
||||
,#{P_PROCEDURE_NM}
|
||||
,#{ETC,jdbcType=VARCHAR}
|
||||
,'T'
|
||||
,'N'
|
||||
,CURDATE()
|
||||
,CURTIME()
|
||||
,'C'
|
||||
,'Y'
|
||||
,'customer'
|
||||
,NOW()
|
||||
,'customer'
|
||||
,NOW()
|
||||
)
|
||||
</insert>
|
||||
</mapper>
|
||||
183
src/main/resources/mappers/WebVOCSqlMap.xml
Normal file
183
src/main/resources/mappers/WebVOCSqlMap.xml
Normal file
@@ -0,0 +1,183 @@
|
||||
<?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="WebVOC">
|
||||
|
||||
<insert id="insertSms" parameterType="hashmap">
|
||||
<selectKey resultType="string" keyProperty="id" order="BEFORE">
|
||||
SELECT CONCAT(#{id},LPAD((SELECT NEXTVAL(MU_SMS_SEQ)), 11, 0))
|
||||
</selectKey>
|
||||
INSERT INTO MU_SMS(
|
||||
MU_SMS_ID
|
||||
,MU_USER_ID
|
||||
,USER_NAME
|
||||
,RECEIVER
|
||||
,TYPE
|
||||
,TITLE
|
||||
,CONTENT
|
||||
,STATE
|
||||
,POPBILL_STATE
|
||||
,SENDER
|
||||
,WRITE_DATE
|
||||
,WRITE_TIME
|
||||
,CUD_FLAG
|
||||
,USE_YN
|
||||
,REG_ID
|
||||
,REG_DATE
|
||||
,MOD_ID
|
||||
,MOD_DATE
|
||||
,T_ID
|
||||
,T_DATE
|
||||
,SEND_SYS_CD
|
||||
)VALUES(
|
||||
#{id}
|
||||
,#{muUserId, jdbcType=VARCHAR}
|
||||
,#{userName, jdbcType=VARCHAR}
|
||||
,#{phoneNumber, jdbcType=VARCHAR}
|
||||
,#{smsType, jdbcType=VARCHAR}
|
||||
,#{title, jdbcType=VARCHAR}
|
||||
,#{content, jdbcType=VARCHAR}
|
||||
,#{state, jdbcType=VARCHAR}
|
||||
,#{popbillState, jdbcType=VARCHAR}
|
||||
,#{sender, jdbcType=VARCHAR}
|
||||
,NOW()
|
||||
,NOW()
|
||||
,'C'
|
||||
,'Y'
|
||||
,#{regId}
|
||||
,NOW()
|
||||
,#{modId}
|
||||
,NOW()
|
||||
,#{tId}
|
||||
,NOW()
|
||||
,'02'
|
||||
)
|
||||
</insert>
|
||||
|
||||
<update id="updateSmsState" parameterType="hashmap">
|
||||
UPDATE MU_SMS
|
||||
SET USE_YN = 'Y'
|
||||
,MOD_ID = #{modId}
|
||||
,MOD_DATE = NOW()
|
||||
,CUD_FLAG = 'U'
|
||||
,STATE = #{chgState, jdbcType=VARCHAR}
|
||||
<choose>
|
||||
<when test="sendDateYn eq 'Y'.toString()">
|
||||
,SEND_DATE = NOW()
|
||||
</when>
|
||||
<when test="reserveDateYn eq 'Y'.toString()">
|
||||
,SEND_DATE = #{reserveDate}
|
||||
</when>
|
||||
<otherwise>
|
||||
</otherwise>
|
||||
</choose>
|
||||
<if test="receiptNum != null and receiptNum != ''">
|
||||
,RECEIPT_NUMBER = #{receiptNum, jdbcType=VARCHAR}
|
||||
</if>
|
||||
WHERE USE_YN = 'Y'
|
||||
AND MU_SMS_ID = #{muSmsId}
|
||||
AND STATE = #{oldState}
|
||||
</update>
|
||||
|
||||
<update id="updateSmsPopbillState" parameterType="hashmap">
|
||||
UPDATE MU_SMS
|
||||
SET MOD_ID = #{modId}
|
||||
,MOD_DATE = NOW()
|
||||
,CUD_FLAG = 'U'
|
||||
,POPBILL_STATE = #{state, jdbcType=VARCHAR}
|
||||
,POPBILL_RESULT = #{result, jdbcType=VARCHAR}
|
||||
WHERE USE_YN = 'Y'
|
||||
AND POPBILL_STATE = #{popbillState}
|
||||
AND RECEIPT_NUMBER = #{receiptNumber}
|
||||
AND REPLACE(RECEIVER, '-', '') = #{receiveNumber}
|
||||
AND USER_NAME = #{receiveName}
|
||||
</update>
|
||||
<!-- 휴대폰 인증 수 조회(당일) -->
|
||||
<select id="selectListPhoneAuthCountToday" resultType="hashmap" parameterType="hashmap">
|
||||
SELECT COUNT(MPA.MU_PHONE_AUTH_ID) AS "totalCount"
|
||||
FROM MU_PHONE_AUTH AS MPA
|
||||
WHERE MPA.USE_YN = 'Y'
|
||||
AND MPA.PHONE_NUMBER = #{phoneNumber}
|
||||
AND MPA.SEND_DATE = DATE_FORMAT(NOW(), '%Y-%m-%d')
|
||||
</select>
|
||||
|
||||
<!-- 휴대폰 인증 확인-->
|
||||
<select id="selectPhoneAuthCheck" resultType="hashmap" parameterType="hashmap">
|
||||
SELECT COUNT(*) AS "successCount"
|
||||
FROM (
|
||||
SELECT MPA.AUTH_NUMBER AS AUTH_NUMBER
|
||||
FROM MU_PHONE_AUTH AS MPA
|
||||
WHERE MPA.USE_YN = 'Y'
|
||||
AND MPA.PHONE_NUMBER = #{phoneNumber}
|
||||
AND MPA.REG_DATE >= DATE_SUB(NOW(), INTERVAL 3 MINUTE) <!-- 현재 시간보다 3분 이내인 데이터만 조회 -->
|
||||
ORDER BY MPA.REG_DATE DESC
|
||||
LIMIT 0, 1
|
||||
) AS AA
|
||||
WHERE AA.AUTH_NUMBER = #{authNumber};
|
||||
</select>
|
||||
|
||||
<!-- 인증번호 등록 -->
|
||||
<insert id="insertPhoneAuth" parameterType="hashmap">
|
||||
<selectKey resultType="string" keyProperty="id" order="BEFORE">
|
||||
SELECT CONCAT(#{id},LPAD((SELECT NEXTVAL(MU_PHONE_AUTH_SEQ)), 10, 0))
|
||||
</selectKey>
|
||||
INSERT INTO MU_PHONE_AUTH (
|
||||
MU_PHONE_AUTH_ID
|
||||
,MU_SMS_ID
|
||||
,AUTH_TYPE
|
||||
,MU_USER_ID
|
||||
,PHONE_NUMBER
|
||||
,AUTH_NUMBER
|
||||
,SEND_DATE
|
||||
,WRITE_DATE
|
||||
,CUD_FLAG
|
||||
,USE_YN
|
||||
,REG_ID
|
||||
,REG_DATE
|
||||
,MOD_ID
|
||||
,MOD_DATE
|
||||
,T_ID
|
||||
,T_DATE
|
||||
)VALUES(
|
||||
#{id}
|
||||
,#{sbSmsId, jdbcType=VARCHAR}
|
||||
,#{authType, jdbcType=VARCHAR}
|
||||
,#{sbUserId, jdbcType=VARCHAR}
|
||||
,#{phoneNumber, jdbcType=VARCHAR}
|
||||
,#{authNumber, jdbcType=VARCHAR}
|
||||
,NOW()
|
||||
,NOW()
|
||||
,'C'
|
||||
,'Y'
|
||||
,'SYSTEM'
|
||||
,NOW()
|
||||
,'SYSTEM'
|
||||
,NOW()
|
||||
,#{tId}
|
||||
,NOW()
|
||||
)
|
||||
</insert>
|
||||
|
||||
<!-- 접수 등록 -->
|
||||
<insert id="insertVOC" parameterType="hashmap">
|
||||
<selectKey resultType="string" keyProperty="id" order="BEFORE">
|
||||
SELECT NEXTVAL(HP_CMP_CPL_BBS_SEQ)
|
||||
</selectKey>
|
||||
INSERT INTO HP_CMP_CPL_BBS (
|
||||
POST_NO
|
||||
,BRANCH_OFFICE_CD
|
||||
,MB_NAME
|
||||
,MB_HP
|
||||
,OPINION_CLASSIFICATION_CD
|
||||
,CONTENT
|
||||
,REG_DATE
|
||||
)VALUES(
|
||||
#{id}
|
||||
,#{gubun, jdbcType=VARCHAR}
|
||||
,#{name, jdbcType=VARCHAR}
|
||||
,#{phoneNumber, jdbcType=VARCHAR}
|
||||
,#{opinion, jdbcType=VARCHAR}
|
||||
,#{content, jdbcType=VARCHAR}
|
||||
,NOW()
|
||||
)
|
||||
</insert>
|
||||
</mapper>
|
||||
31
src/main/resources/mappers/WebYoutubeSqlMap.xml
Normal file
31
src/main/resources/mappers/WebYoutubeSqlMap.xml
Normal file
@@ -0,0 +1,31 @@
|
||||
<?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="WebYoutube">
|
||||
|
||||
<select id="selectTotalWebYoutubeCount" parameterType="hashmap" resultType="hashmap">
|
||||
SELECT COUNT(*) AS "totalCount"
|
||||
FROM MU_WEB_YOUTUBE AS MWY
|
||||
WHERE MWY.USE_YN = 'Y'
|
||||
</select>
|
||||
|
||||
<select id="selectListWebYoutube" parameterType="hashmap" resultType="hashmap">
|
||||
SELECT MWY.MU_WEB_YOUTUBE_ID AS "muWebYoutubeId"
|
||||
,MWY.TITLE AS "title"
|
||||
,MWY.CONTENT AS "content"
|
||||
,MWY.URL AS "url"
|
||||
,MWY.WRITE_DATE AS "writeDate"
|
||||
FROM (
|
||||
SELECT MWY.MU_WEB_YOUTUBE_ID AS MU_WEB_YOUTUBE_ID
|
||||
,IFNULL(MWY.TITLE,'') AS TITLE
|
||||
,IFNULL(MWY.CONTENT,'') AS CONTENT
|
||||
,IFNULL(MWY.URL,'') AS URL
|
||||
,DATE_FORMAT(MWY.WRITE_DATE, '%Y-%m-%d') AS WRITE_DATE
|
||||
,DATE_FORMAT(MWY.WRITE_TIME, '%H:%i:%s') AS WRITE_TIME
|
||||
FROM MU_WEB_YOUTUBE AS MWY
|
||||
WHERE MWY.USE_YN = 'Y'
|
||||
LIMIT 18446744073709551615
|
||||
) AS MWY
|
||||
WHERE 1 = 1
|
||||
ORDER BY MWY.WRITE_DATE DESC, MWY.WRITE_TIME DESC
|
||||
</select>
|
||||
</mapper>
|
||||
23
src/main/resources/mappers/common/MenuMapper.xml
Normal file
23
src/main/resources/mappers/common/MenuMapper.xml
Normal file
@@ -0,0 +1,23 @@
|
||||
<?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.madeuhome.common.mapper.MenuMapper">
|
||||
|
||||
<select id="selectAllMenus" parameterType="String" resultType="com.madeuhome.common.dto.MenuDto">
|
||||
SELECT
|
||||
MENU_ID as menuId,
|
||||
SITE_CD as siteCd,
|
||||
UPPER_MENU_ID as upperMenuId,
|
||||
MENU_NAME as menuName,
|
||||
MENU_URL as menuUrl,
|
||||
MENU_ORDER as menuOrder,
|
||||
MENU_DEPTH as menuDepth,
|
||||
USE_YN as useYn
|
||||
FROM HP_MENU
|
||||
WHERE USE_YN = 'Y'
|
||||
AND SITE_CD = '01'
|
||||
ORDER BY
|
||||
CASE WHEN UPPER_MENU_ID IS NULL THEN MENU_ORDER ELSE UPPER_MENU_ID END,
|
||||
MENU_ORDER
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
901
src/main/resources/static/css/admin/common.css
Normal file
901
src/main/resources/static/css/admin/common.css
Normal file
@@ -0,0 +1,901 @@
|
||||
/*
|
||||
Ntsoft v1.0.2
|
||||
Copyright 2021.11 NTSOFT, Inc.
|
||||
*/
|
||||
|
||||
* {
|
||||
-webkit-box-sizing: border-box;
|
||||
-moz-box-sizing: border-box;
|
||||
box-sizing: border-box; text-shadow:none;
|
||||
/*color:rgba(49, 58, 70, .8);*/
|
||||
}
|
||||
svg , path {color:unset;}
|
||||
|
||||
/* .box-sizing(@box-model) {
|
||||
-webkit-box-sizing: @box-model; //사파리 <= 5
|
||||
-moz-box-sizing: @box-model; //파이어폭스 <= 19
|
||||
box-sizing: @box-model;
|
||||
} */
|
||||
|
||||
|
||||
body {font-family: 'Pretendard', sans-serif; padding:0; margin:0; font-size:13px;}
|
||||
|
||||
/*상단네비*/
|
||||
/* .navbar.navbar-default {border-radius:0; margin-bottom:0; z-index:2; position:fixed; width:100%; background-color:#2196F3; border-color:#2196F3; border:none; height:50px; min-width:590px;}
|
||||
.navbar.navbar-default .container-fluid {padding-left:0; padding-right:0;}
|
||||
.navbar.navbar-default .container-fluid .navbar-header {float:left; width:270px;}
|
||||
.navbar.navbar-default .container-fluid .navbar-header svg {display:none;}
|
||||
.navbar.navbar-default .container-fluid .navbar-header svg path {color:#fff;}
|
||||
.navbar.navbar-default .container-fluid .navbar-collapse{display:block; width:calc(100% - 270px); float:right; border:none; padding:0 10px;}
|
||||
.navbar > .container .navbar-brand, .navbar > .container-fluid .navbar-brand {font-size:18px; font-weight:bold; line-height:50px; padding:0; width:200px; color:#fff; margin:0; padding-left:20px;}
|
||||
.nav.navbar-nav {float:right; padding:9px 0; margin:0;}
|
||||
.nav>li {float:left;}
|
||||
.navbar .nav > li > a {font-size:13px; color:#fff; width:120px; line-height:20px; text-align:center; padding:6px 0; background:#0E3F66; margin-left:10px; font-weight:700; border-radius:.267rem;}
|
||||
.navbar .nav > li > a.redBtn {background:#fc5083;}
|
||||
.navbar .nav > li > a.redBtn:hover {background:#eb4375;}
|
||||
.navbar .nav > li > a:hover {position:relative; z-index:1; display:inline-block; overflow:hidden; -webkit-user-select:none; -moz-user-select:none; -ms-user-select:none; user-select:none; -webkit-transition:.3s ease-out; transition:.3s ease-out; vertical-align:middle; background-color:#0a375a; color:#fff;}
|
||||
.navbar .nav > li > a:focus {background:#082e1c; color:#fff;}
|
||||
.navbar .nav > li > a.service {padding-left:24px;}
|
||||
.navbar .nav > li > a.member {padding-left:24px;}
|
||||
.navbar .nav > li > a.logout {padding-left:16px;}
|
||||
.navbar .nav > li > a.service svg {position:absolute; top:3px; left:22px; width:18px;}
|
||||
.navbar .nav > li > a.member svg {position:absolute; top:8px; left:22px; width:18px;}
|
||||
.navbar .nav > li > a.logout svg {position:absolute; top:7px; left:22px; width:18px; height:18px;}
|
||||
.far.fa-sun {margin-right:5px;}
|
||||
.nav-tabs > li {width:100%;}
|
||||
.nav.nav-tabs.left {width:200px; height:100vh; border:none; float:left; position:absolute; top:0; z-index:1; padding-top:52px;}
|
||||
.left .caret {display:none;}
|
||||
.fas.fa-school {margin-right:5px; width:20px; text-align:center;}
|
||||
.fas.fa-plus {float:right; padding:9px 0; font-size:11px;}
|
||||
.fas.fa-minus {float:right; padding:9px 0; font-size:11px;}
|
||||
.nav-tabs .dropdown-menu {width:100%; box-shadow:none; border-radius:0; border:none; padding:0; position:relative;}
|
||||
.left .dropdown-menu > li > a {padding-left:40px; height:40px; line-height:34px; font-size:13px;}
|
||||
.left .dropdown-menu > li > a.active {}
|
||||
.left li {width:100%; display:inline-block; visibility:visible; position:relative;}
|
||||
.fas.fa-book-reader {margin-right:5px; width:20px; text-align: center;}
|
||||
.fas.fa-chalkboard-teacher {margin-right:5px; width:20px; text-align:center;}
|
||||
.fas.fa-baby {margin-right:5px; width:20px; text-align:center;}
|
||||
.fas.fa-user-tie {margin-right:5px; width:20px; text-align:center;}
|
||||
.fas.fa-clipboard-list {margin-right:5px; width:20px; text-align:center;}
|
||||
.nav-tabs > li > a {height:50px; line-height:30px; font-size:14px; box-sizing:border-box; margin:0; border-radius:0; border-bottom:solid 1px #DFE3E7; font-weight:bold;}
|
||||
.far.fa-user {margin-right:10px;}
|
||||
.navbar-nav .open .dropdown-menu {width:250px; padding:0; border-radius:0; border:none; left:-150px;}
|
||||
.name p {padding-left:30px; font-size:14px;}
|
||||
.far.fa-star {margin-right:10px; color:#fff;}
|
||||
.navbar-default .navbar-nav .open .dropdown-menu > li.name > a {width:250px; padding:15px 15px;}
|
||||
.margin0 {margin:0;}
|
||||
.left-btn {width:50%; background:#f7f7f9; position:relative; bottom:0; left:0; text-align:center; border:1px solid #eee;}
|
||||
.right-btn {width:50%; background:#f7f7f9; position:absolute; bottom:0; right:0; text-align:center; border:1px solid #eee;}
|
||||
.dropdown-menu > li.left-btn > a {font-size:13px; line-height:32px;}
|
||||
.navbar-default .navbar-nav .open .dropdown-menu > li.name > a:hover {background:none; color:#333;}
|
||||
.dropdown-menu > li.right-btn > a {font-size:13px; line-height:32px;}
|
||||
.left .open > a, .left .open > a:hover, .left .open > a:focus {border:none; border-bottom:solid 2px; box-sizing:border-box;}
|
||||
.breadcrumb > li {font-size:13px;}
|
||||
.breadcrumb {padding-left:0; margin:0;}
|
||||
.right .col-md-12 {padding:0;}
|
||||
.right .col-md-12.box {background:#fff; border:solid 1px #DFE3E7; margin:20px 0 30px; padding:20px; border-radius:4px; clear:both; background:#fff;}
|
||||
|
||||
|
||||
@media only screen and (max-width:1200px) {
|
||||
.navbar.navbar-default .container-fluid .navbar-header svg#btn_mobileMenu {display:block; width:50px; height:50px; color:#fff; padding:11px; float:left;}
|
||||
.navbar.navbar-default .container-fluid .navbar-header svg#btn_mobileMenu2 {display:block; width:50px; height:50px; color:#fff; padding:7px; float:left;}
|
||||
.navbar > .container .navbar-brand, .navbar > .container-fluid .navbar-brand {padding:0;}
|
||||
.container-fluid>.navbar-collapse, .container-fluid>.navbar-header, .container>.navbar-collapse, .container>.navbar-header {margin-right:0;margin-left:0;}
|
||||
} */
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/* 왼쪽메뉴 */
|
||||
.left-menu {overflow:auto; background:#151515; z-index:9; top:0px; left:0; width:200px; height:100%; box-sizing:border-box; vertical-align:top; position:fixed; padding-bottom:50px;}
|
||||
.left-menu::-webkit-scrollbar {width:6px; height:6px;}
|
||||
.left-menu::-webkit-scrollbar-thumb {border-radius:8px; background-color:#377ec1;}
|
||||
.left-menu::-webkit-scrollbar-corner {background:#151515;}
|
||||
|
||||
.left-menu .navbar-brand {line-height:50px; padding:0; display:table; width:100%; padding-left:15px;}
|
||||
/*
|
||||
.left-menu .navbar-brand .logo {width:30px; height:30px; position:relative; float:left; top:10px; margin-right:10px;}
|
||||
.left-menu .navbar-brand .logo img {width:100%; position:absolute; top:50%; left:50%; transform:translate3d(-50%, -50%, 0);}
|
||||
.left-menu .navbar-brand .logoSpan {color:#fff; font-weight:bold;}
|
||||
*/
|
||||
.left-menu .navbar-brand .imgBox {height:50px;}
|
||||
.left-menu .navbar-brand .imgBox img {width:130px;}
|
||||
|
||||
.left-menu #sidebar ul.components {background:#151515;}
|
||||
.left-menu .left-icon {width:20px; float:left; font-size:14px; position:relative; top:3px; margin-right:8px;}
|
||||
.left-menu #sidebar .components li a .right-icon {font-size:22px; position:absolute; right:10px; top:50%; transform:translateY(-50%);}
|
||||
.left-menu a, .left-menu a:hover, .left-menu a:focus {text-decoration:none;}
|
||||
.left-menu a[data-toggle="collapse"] {position:relative;}
|
||||
|
||||
.left-menu #sidebar .components li {display:table; width:100%;}
|
||||
.left-menu #sidebar .components li a {display:inline-block; padding:5px 10px; width:100%;}
|
||||
.left-menu #sidebar .components li a svg {fill:rgba(255, 255, 255, .6); float:left; /*background:rgb(131 212 217 / 50%);*/ padding:2px; border-radius:4px;}
|
||||
.left-menu #sidebar .components li a .tempSpan {color:rgba(255, 255, 255, .6); line-height:30px; font-size:14px; word-break:keep-all;}
|
||||
.left-menu #sidebar .components li.active a {background:#29292c;}
|
||||
.left-menu #sidebar .components li.active a svg {fill:#fff;}
|
||||
.left-menu #sidebar .components li.active a .tempSpan {color:#fff;}
|
||||
.left-menu #sidebar .components li:hover a svg {fill:#fff;}
|
||||
.left-menu #sidebar .components li:hover a .tempSpan {color:#fff;}
|
||||
|
||||
.left-menu #sidebar .collapse.in {display:block; color:#fff; background:#055b80;}
|
||||
.left-menu #sidebar .collapse.in li {background:#43485e;}
|
||||
.left-menu #sidebar .components li .list-unstyled > li a {background:#29292c; border-bottom:none; font-size:13px; font-weight:normal; padding:8px 20px 8px; padding-left:40px; color:rgba(255, 255, 255, .6);}
|
||||
.left-menu #sidebar .components li .list-unstyled > li a:hover {color:#fff;}
|
||||
.left-menu #sidebar .components li .list-unstyled > li.active a {color:#fff; background:#377ec1;}
|
||||
.left-menu #sidebar .categoryLeftMenu {background:#377ec1; padding:2px 0; padding-left:20px; color:#fff;}
|
||||
.left-menu .imgNon{display:none;}
|
||||
.dropdown-toggle::after {display:none;}
|
||||
|
||||
|
||||
|
||||
|
||||
/*왼쪽메뉴 간략화(아이콘)*/
|
||||
.left-menu.summary {width:60px;}
|
||||
.tapNav.summary {left:60px; width:calc(100% - 60px);}
|
||||
.rightBoxNT.summary {left:60px; width:calc(100% - 60px);}
|
||||
|
||||
.left-menu.summary #sidebar .components li {position:relative; height:40px;}
|
||||
.left-menu.summary a[data-toggle="collapse"] {position:absolute;}
|
||||
.left-menu.summary #sidebar .components li a {width:60px;}
|
||||
.left-menu.summary #sidebar .components li a .right-icon, .left-menu.summary #sidebar .components li .list-unstyled {display:none;}
|
||||
.left-menu.summary #sidebar .components li a svg {display:block; float:unset; margin:0 auto;}
|
||||
|
||||
.left-menu.summary #sidebar .components li:hover a .tempSpan {display:inline-block !important; width:150px; height:40px; background:#151515; float:right; position:absolute; top:0; left:60px; line-height:40px; padding-left:10px;}
|
||||
.left-menu.summary #sidebar .components li.active:hover a .tempSpan {display:inline-block !important; width:150px; height:40px; background:#377ec1; float:right; position:absolute; top:0; left:60px; line-height:40px; padding-left:10px;}
|
||||
.left-menu.summary #sidebar .components li:hover .list-unstyled {display:inline-block !important; width:150px; height:40px; background:#151515; float:right; position:absolute; top:40px; left:60px; line-height:40px;}
|
||||
.left-menu.summary #sidebar .components li:hover .list-unstyled li a {display:inline-block !important; width:150px; padding:0; padding-left:10px;}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
.tapNav {margin:0; padding:0; background:#151515; position:fixed; top:0; left:200px; z-index:9; min-width:1000px; width:calc(100% - 200px); word-spacing:-1px;}
|
||||
/* .tapNav #btn_mobileMenu {display:none;} */
|
||||
.tapNav svg#btn_mobileMenu {display:block; float:left; margin:10px 5px 0; fill:#fff;}
|
||||
.tapNav svg#btn_mobileMenu2 {display:block; float:left; margin:10px 5px 0;}
|
||||
/* 경로 */
|
||||
.tapNav .breadcrumb {background:none; padding:0; line-height:50px; float:left; margin:0;}
|
||||
.tapNav .breadcrumb>li.active {color:#377ec1;}
|
||||
.rightBtnWrap {float:right; padding:10px 0; margin:0 10px 0 0; list-style:none;}
|
||||
.rightBtnWrap li {float:left;}
|
||||
.rightBtnWrap li > p {margin:0; margin-left:6px; text-shadow:none; border:none; padding:0 5px; border-radius:0.267rem; box-shadow:none; line-height:30px; font-size:14px; display:block; text-align:center; color:#fff;}
|
||||
.rightBtnWrap li > a {background:#1e2362; width:100px; margin:0; margin-left:6px; text-shadow:none; border:none; padding:0 5px; border-radius:0.267rem; box-shadow:none; line-height:30px; font-size:13px; display:block; text-align:center; color:#fff; text-decoration:none;}
|
||||
.rightBtnWrap li > a:hover {position:relative; z-index:1; display:inline-block; overflow:hidden; -webkit-user-select:none; -moz-user-select:none; -ms-user-select:none; user-select:none; -webkit-transition:.3s ease-out; transition:.3s ease-out; vertical-align:middle; background-color:#191e58; color:#fff;}
|
||||
|
||||
.rightBtnWrap li > a.logout {background:#c50000; color:#fff;}
|
||||
.rightBtnWrap li > a.logout:hover {background:#bf0000;}
|
||||
|
||||
/*탭네비*/
|
||||
.tapNav .tabWrap {background:#333; /*overflow:hidden;*/ width:100%; position:relative; height:40px; top: 50px;}
|
||||
.tapNav .tabWrap .tabList {margin:0; border-bottom:none; outline:none; transition:padding 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); position:absolute; height:40px; width:calc(100% - 40px);}
|
||||
.tapNav .tabWrap .tabList .tabContainer {position:relative; box-sizing:border-box; margin-bottom:-1px; /*overflow:hidden;*/ font-size:14px; line-height:1.5715; white-space:nowrap; transition:padding 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); zoom:1; padding:0 40px; height:auto;}
|
||||
.tapNav .tabWrap .tabList .tabContainer::before, .tapNav .tabWrap .tabList .tabContainer::after {display:table; content:'';}
|
||||
.tapNav .tabWrap .tabList .tabContainer .tabPrev {left:0;}
|
||||
.tapNav .tabWrap .tabList .tabContainer .tabNext {right:2px;}
|
||||
.tapNav .tabWrap .tabList .tabContainer .tabPrev, .tapNav .tabWrap .tabList .tabContainer .tabNext {position:absolute; z-index:2; width:40px; height:100%; text-align:center; background-color:transparent; border:0; cursor:pointer; opacity:.7; transition:color 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), opacity 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); user-select:none; pointer-events:auto; line-height:1; color:#fff;}
|
||||
.tapNav .tabWrap .tabList .tabContainer .tabPrev:hover , .tapNav .tabWrap .tabList .tabContainer .tabNext:hover {opacity:1;}
|
||||
.tapNav .tabWrap .tabList .tabContainer .disabled {cursor:not-allowed;}
|
||||
.tapNav .tabWrap .tabList .tabContainer .disabled, .tapNav .tabWrap .tabList .tabContainer .disabled:hover {opacity:.4;}
|
||||
|
||||
.tapNav .tabWrap .tabList .tabContainer .tabPrev .tabPrevTarget, .tabWrap .tabList .tabContainer .tabNext .tabNextTarget {font-size:14px; position:absolute; top:50%; left:50%; transform:translate(-50%, -50%); color:#fff;}
|
||||
|
||||
.tapNav .tabWrap .allClose {height:40px; position:absolute; right:0;}
|
||||
.tapNav .tabWrap .allClose svg {padding:8px; fill:rgba(255, 255, 255, .8);}
|
||||
.tapNav .tabWrap .allClose:hover svg {fill:#fff;}
|
||||
|
||||
.tapNav .tabWrap .tabList .tabContainer .scrollWrap {overflow-x:scroll; white-space:nowrap;}
|
||||
.tapNav .tabWrap .tabList .tabContainer .scrollWrap::-webkit-scrollbar {display:none;}
|
||||
.tapNav .tabWrap .tabList .tabContainer .scrollWrap .scrollBox {position:relative; display:inline-block; box-sizing:border-box; margin:0; padding-left:0; list-style:none; transition:transform 0.3s cubic-bezier(0.645, 0.045, 0.355, 1);}
|
||||
.tapNav .tabWrap .tabList .tabContainer .scrollWrap .scrollBox::before, .tapNav .tabWrap .tabList .tabContainer .scrollWrap .scrollBox::after {display:table; content:' ';}
|
||||
.tapNav .tabWrap .tabList .tabContainer .scrollWrap .scrollBox .tab {padding:0; background:none; height:40px; line-height:40px; transition:background 0.3s cubic-bezier(0.645, 0.045, 0.355, 1), color 0.3s cubic-bezier(0.645, 0.045, 0.355, 1); border-radius:0; border:none; margin:0; position:relative; display:inline-block; box-sizing:border-box; text-decoration:none; cursor:pointer; font-size:13px;}
|
||||
/* .tapNav .tabWrap .tabList .tabContainer .scrollWrap .scrollBox .tab .unclosable {color:#fff;}
|
||||
.tapNav .tabWrap .tabList .tabContainer .scrollWrap .scrollBox .tab .tabPadding {color:#fff;} */
|
||||
.tapNav .tabWrap .tabList .tabContainer .scrollWrap .scrollBox .tab.active {background:#fff;}
|
||||
.tapNav .tabWrap .tabList .tabContainer .scrollWrap .scrollBox .tab.dashboard {padding:0 16px;}
|
||||
.tapNav .tabWrap .tabList .tabContainer .scrollWrap .scrollBox .tab.dashboard .unclosable { color:rgba(255, 255, 255, .8);}
|
||||
.tapNav .tabWrap .tabList .tabContainer .scrollWrap .scrollBox .tab.active .tabPadding {color:rgba(49, 58, 70, .8);}
|
||||
.tapNav .tabWrap .tabList .tabContainer .scrollWrap .scrollBox .tab .tabPadding {padding:0 28px 0 16px; color:rgba(255, 255, 255, .8);}
|
||||
.tapNav .tabWrap .tabList .tabContainer .scrollWrap .scrollBox .tab .tabPadding .closeIcon {display:inline-block; color:inherit; line-height:0; text-align:center; text-transform:none; vertical-align:-0.125em; text-rendering:optimizeLegibility; -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale; width:auto; height:auto; margin:-6px 0 0 0; position:absolute; right:10px; top:15px; font-size:12px;}
|
||||
.tapNav .tabWrap .tabList .tabContainer .scrollWrap .scrollBox .tab .tabPadding .closeIcon[tabindex] {cursor:pointer;}
|
||||
.tapNav .tabWrap .tabList .tabContainer .scrollWrap .scrollBox .tab .tabPadding .closeIcon svg {fill:rgba(255, 255, 255, .8);}
|
||||
.tapNav .tabWrap .tabList .tabContainer .scrollWrap .scrollBox .tab.active .tabPadding .closeIcon svg {fill:rgba(49, 58, 70, .8);}
|
||||
|
||||
.tapNav .tabWrap .tabList .tabContainer .scrollWrap .scrollBox .tabBar {position:absolute; bottom:1px; left:0; z-index:1; box-sizing:border-box; width:0; height:2px; background-color:#1890ff; transform-origin:0 0; visibility:hidden; display:none !important;}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/* 전체외각 */
|
||||
.rightBoxNT {margin:0; padding:10px; padding-top:0; background:#fff; position:relative; top:50px; left:200px; /*z-index:1;*/ min-width:1000px; width:calc(100% - 200px); min-height:calc(100vh - 89px); word-spacing:-1px;}
|
||||
/* 상단라인 */
|
||||
.rightBoxNT .formLine {border-top:1px solid #dee2e6;}
|
||||
.rightBoxNT .form-horizontal {margin:0 0 20px; display:table; width:100%; background:#fff; position:relative;}
|
||||
.rightBoxNT .form-horizontal .form-group {display:table; width:100%; border-bottom:1px solid #dee2e6; border-left:none; border-right:none; margin:0; padding:0; background:#f5f7f7;}
|
||||
/* 폼그룹2분할_영역제어 */
|
||||
.rightBoxNT .form-horizontal .form-group50Wrap {margin-top:0; border-bottom:none; display:table; width:100%;}
|
||||
/* 폼그룹2분할 */
|
||||
.rightBoxNT .form-horizontal .form-group50 {width:50%; float:left; border-bottom:1px solid #dee2e6; background:#f5f7f7;}
|
||||
/* 폼그룹라벨제목 */
|
||||
.rightBoxNT .form-horizontal .control-label {float:left; margin:0; width:170px; text-align:left; line-height:30px; padding:5px 0 5px 15px; font-weight:unset;}
|
||||
.rightBoxNT .form-horizontal .control-label .requisite {color:#ff4545;}
|
||||
/* 폼그룹왼쪽정렬*/
|
||||
.rightBoxNT .form-horizontal .floatLeft {float:left;}
|
||||
/* 폼그룹라벨제목 제외한 영역 */
|
||||
.rightBoxNT .form-horizontal .rightWidth {width:calc(100% - 170px); background:#fff;}
|
||||
/*영역필요없는 기간[오늘,3일,7일,1개월], 인풋옆에버튼있을시[ex.파일업로드]*/
|
||||
.rightBoxNT .form-horizontal .rightWarp {padding:5px 0 5px 5px;}
|
||||
|
||||
|
||||
|
||||
|
||||
/* 검색조건_인풋 */
|
||||
.rightBoxNT .form-horizontal .searchWrapInput {width:200px; padding:5px 0 5px 5px;}
|
||||
/* 등록,수정페이지_인풋 */
|
||||
.rightBoxNT .form-horizontal .pageWrapInput {width:250px; padding:5px 0 5px 5px;}
|
||||
/* 등록,수정페이지_텍스트에어리어,에디터 */
|
||||
.rightBoxNT .form-horizontal .pageWrapTextarea {padding:5px; width:100%;}
|
||||
/* kevin 추가 */
|
||||
.rightBoxNT .form-horizontal .smallPageWrapInput {width:100px; padding:5px 0 5px 5px;}
|
||||
|
||||
|
||||
/* 분할영역패딩제거 */
|
||||
.col-xs-1, .col-sm-1, .col-md-1, .col-lg-1, .col-xs-2, .col-sm-2, .col-md-2, .col-lg-2, .col-xs-3, .col-sm-3, .col-md-3, .col-lg-3, .col-xs-4, .col-sm-4, .col-md-4, .col-lg-4, .col-xs-5, .col-sm-5, .col-md-5, .col-lg-5, .col-xs-6, .col-sm-6, .col-md-6, .col-lg-6, .col-xs-7, .col-sm-7, .col-md-7, .col-lg-7, .col-xs-8, .col-sm-8, .col-md-8, .col-lg-8, .col-xs-9, .col-sm-9, .col-md-9, .col-lg-9, .col-xs-10, .col-sm-10, .col-md-10, .col-lg-10, .col-xs-11, .col-sm-11, .col-md-11, .col-lg-11, .col-xs-12, .col-sm-12, .col-md-12, .col-lg-12 {padding:0;}
|
||||
|
||||
|
||||
|
||||
|
||||
/* 경로 */
|
||||
.rightBoxNT .breadcrumb {background:none; padding:10px 0; margin:0; float:left; line-height:20px;}
|
||||
.rightBoxNT .breadcrumb>li.active {color:#377ec1;}
|
||||
.breadcrumb>li {color:rgba(49, 58, 70, .7);}
|
||||
/* .breadcrumb>li+li:before {color:rgba(49, 58, 70, .2);} */
|
||||
|
||||
|
||||
/* 버튼기본 */
|
||||
.rightBoxNT .btnCommon {width:100px; margin:0 3px; text-shadow:none; border:none; padding:0 5px; border-radius:0.267rem; box-shadow:none; line-height:30px; font-size:13px;}
|
||||
/* 버튼기본오른쪽정렬 */
|
||||
.rightBoxNT .btnRightCommon {width:100px; margin:0; margin-left:6px; text-shadow:none; border:none; padding:0 5px; border-radius:0.267rem; box-shadow:none; line-height:30px; font-size:13px;}
|
||||
|
||||
/* 검색화면 및 상세화면 버튼 박스 */
|
||||
.rightBoxNT .btnBox {padding:0; margin:24px auto 4px; min-width:10px; display:table; /*float:right;*/}
|
||||
/* 메인컬러_버튼 */
|
||||
.rightBoxNT .btnMain {background:#377ec1; color:#fff;} /*.rightBoxNT .btnMint*/
|
||||
.rightBoxNT .btnMain:hover {background:#7caad7;}
|
||||
/* 회색_버튼 */
|
||||
.rightBoxNT .btnGray {background:#8e949d; color:#fff;}
|
||||
.rightBoxNT .btnGray:hover {background:#878c95;}
|
||||
|
||||
|
||||
/*상세조회,아이콘버튼사용시*/
|
||||
/*
|
||||
!* 흰색라인_버튼 *!
|
||||
.rightBoxNT .btnWhite {background:#fff; color:#377ec1; border:solid 1px #377ec1;}
|
||||
.rightBoxNT .btnWhite:hover {color:#377ec1; border:solid 1px #377ec1;}
|
||||
.rightBoxNT .btnWhite svg {fill:#377ec1; height:30px; position:absolute;}
|
||||
.rightBoxNT .btnWhite:hover svg {fill:#377ec1;}
|
||||
|
||||
!* 버튼아이콘 *!
|
||||
.rightBoxNT .btnCommon svg {fill:#fff; float:left; padding:3px;}
|
||||
.rightBoxNT .btn-overlap svg {fill:#fff; float:left; padding:3px;}
|
||||
*/
|
||||
|
||||
|
||||
|
||||
/* 폼 공통 */
|
||||
.rightBoxNT .form-horizontal .form-control {border:1px solid #dee2e6; display:block; width:100%; padding:0; padding-left:5px; background-color:#FFF; border-radius:0.267rem; box-shadow:none; height:30px; line-height:30px; font-size:13px; color:rgba(49, 58, 70, .8);}
|
||||
.rightBoxNT .form-horizontal .form-control[disabled]{background:rgba(238, 242, 247, .6);}
|
||||
.rightBoxNT select.form-control:not([multiple=multiple]) {background-image:url(/image/web//image/web/arrow-down.png); background-position:95%; background-size:14px 14px,10px 10px; background-repeat:no-repeat; -webkit-appearance:none; -moz-appearance:none; padding-right:1.5rem; height:30px; color:rgba(49, 58, 70, .8);}
|
||||
.input-group.date .input-group-addon {background:none; border:1px solid #dee2e6; border-left:none; border-left:none;}
|
||||
.input-group.date .input-group-addon[disabled] {opacity:.5; background:#dee2e6;cursor:no-drop;}
|
||||
.rightBoxNT .input-group-addon:last-child {padding:5px 10px;}
|
||||
.glyphicon-calendar:before {color:rgba(49, 58, 70, .8);}
|
||||
.rightBoxNT .form-horizontal .dateInput {border-right:none;}
|
||||
.rightBoxNT .form-horizontal .password {font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;}
|
||||
.rightBoxNT textarea {font-size:13px; border:1px solid #dee2e6; outline:none; padding:.47rem .8rem; display:block; border-radius:0.267rem;}
|
||||
.rightBoxNT textarea.height107 {height: 107px;}
|
||||
.rightBoxNT textarea:focus {border:1px solid #377ec1;}
|
||||
.rightBoxNT textarea:disabled {background:rgba(238, 242, 247, .6);}
|
||||
.rightBoxNT input.form-control:focus {border:1px solid #377ec1;}
|
||||
.rightBoxNT select.form-control:not([multiple=multiple]):focus {border:1px solid #377ec1;}
|
||||
.rightBoxNT .form-horizontal .sideNumber {line-height:30px; color:#97989b; position:relative; left:5px; bottom:-5px;}
|
||||
|
||||
.rightBoxNT .form-horizontal .form-control.dateInput2 {border-radius:0.267rem 0 0 0.267rem;}
|
||||
|
||||
|
||||
/* 기간[오늘,3일,7일,1개월] */
|
||||
.rightBoxNT .form-horizontal .btn-choce {background:none; border-color:#dee2e6; color:rgba(49, 58, 70, .8); height:30px; padding:5px 12px; font-size:13px; font-weight:400; line-height:1.42857143; border-radius:4px;}
|
||||
.rightBoxNT .form-horizontal .btn-choce:hover, .rightBoxNT form .btn-choce:focus {background:#377ec1; color:#fff; outline:none;}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/* 상세페이지 회색버튼 [ex.아이디조회,중복확인] */
|
||||
.rightBoxNT .form-horizontal .overlap {float:left;}
|
||||
.rightBoxNT .form-horizontal .overlap .btnGray {width:100px; background:#377ec1; color:#fff; text-shadow:none; border:none; padding:0; border-radius:.267rem; box-shadow:none; line-height:30px; font-size:13px;}
|
||||
.rightBoxNT .form-horizontal .overlap .btnGray:hover {background:#377ec1;}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/* 리스트 왼쪽,오른쪽,마진제외 버튼 영역 */
|
||||
.rightBoxNT .form-horizontal .btnlistBox {padding:5px 0; display:table; width:100%; border-top:1px solid #a2a2a2;}
|
||||
|
||||
/* 리스트버튼기본 */
|
||||
.rightBoxNT .form-horizontal .btnlistBox .btnCommon {width:100px; margin:0 3px; text-shadow:none; border:none; padding:0 5px; border-radius:0.267rem; box-shadow:none; line-height:30px; font-size:13px;}
|
||||
/* 리스트버튼기본왼쪽정렬 */
|
||||
.rightBoxNT .form-horizontal .btnlistBox .btnLeftCommon {width:100px; margin:0; margin-right:6px; text-shadow:none; border:none; padding:0 5px; border-radius:0.267rem; box-shadow:none; line-height:30px; font-size:13px;}
|
||||
/* 리스트버튼기본오른쪽정렬 */
|
||||
.rightBoxNT .form-horizontal .btnlistBox .btnRightCommon {width:100px; margin:0; margin-left:6px; text-shadow:none; border:none; padding:0 5px; border-radius:0.267rem; box-shadow:none; line-height:30px; font-size:13px; float:right;}
|
||||
|
||||
/* 메인컬러_버튼 */
|
||||
.rightBoxNT .form-horizontal .btnlistBox .btnMain {background:#377ec1; color:#fff;} /*.rightBoxNT .btnMint*/
|
||||
.rightBoxNT .form-horizontal .btnlistBox .btnMain:hover {background:#7caad7;}
|
||||
/* 회색_버튼 */
|
||||
.rightBoxNT .form-horizontal .btnlistBox .btnGray {background:#8e949d; color:#fff;}
|
||||
.rightBoxNT .form-horizontal .btnlistBox .btnGray:hover {background:#878c95;}
|
||||
/* 빨간색_버튼 */
|
||||
.rightBoxNT .form-horizontal .btnlistBox .btnRed {background:#c50049; color:#fff;}
|
||||
.rightBoxNT .form-horizontal .btnlistBox .btnRed:hover {background:#bb0045;}
|
||||
/* 엑셀_버튼 */
|
||||
.rightBoxNT .form-horizontal .btnlistBox .btnExcel {background:#0f743d; color:#fff;}
|
||||
.rightBoxNT .form-horizontal .btnlistBox .btnExcel:hover {background:#0e6e3a;}
|
||||
|
||||
|
||||
/* 리스트좌측검색갯수 */
|
||||
.rightBoxNT .listNav {display:inline-block; width:100%; height:30px; position:relative;}
|
||||
.rightBoxNT .listNav .numberBox {position: absolute;left: 0;}
|
||||
.rightBoxNT .listNav .numberBox .number {line-height:30px; margin:0; display:inline-block;}
|
||||
.rightBoxNT .listNav .numberBox .number .n-color {color:#377ec1; padding-left:3px;}
|
||||
.rightBoxNT .listNav .numberBox .slush {padding:0 5px; display:inline-block;}
|
||||
.rightBoxNT .listNav .text {color:#324767; text-decoration:none; padding:0px 10px; text-align:left; line-height:34px; margin:0; font-size:16px; font-weight:700; display:block; border-bottom:1px solid #dee2e6;}
|
||||
/* 리스트우측셀렉트3종 */
|
||||
.rightBoxNT .listNav .selectBox {position:absolute; top:0; right:0;}
|
||||
.rightBoxNT .listNav .selectBox .selectList {margin:0 0 0 7px; float:right; width:150px;}
|
||||
|
||||
|
||||
/* 참고문구 */
|
||||
.rightBoxNT .form-horizontal .textareaText {line-height:30px; color:#97989b; position:relative; left:5px; bottom:-105px;}
|
||||
.rightBoxNT .form-horizontal .inputnoneText {font-size:13px; line-height:30px;}
|
||||
.rightBoxNT .form-horizontal .commentText {margin:0 0 0 5px; font-weight:600; line-height:40px;}
|
||||
.rightBoxNT .form-horizontal .inputcomment {clear:both; color:#50c3ca; margin:0; font-size:12px; padding-top:0;}
|
||||
.rightBoxNT .form-horizontal .commentCheck {position:relative; bottom:-5px; font-weight:500; line-height:40px; margin-left:5px;}
|
||||
.rightBoxNT .form-horizontal .commentSide {line-height:30px; color:#97989b; position:relative; left:5px; bottom:-5px;}
|
||||
|
||||
|
||||
/* 체크,라디오 공통 */
|
||||
.rightBoxNT .checkbox, .radio {position:relative; display:inline-block;}
|
||||
.rightBoxNT .checkbox input[type=checkbox], .rightBoxNT .radio input[type=radio] {display:none;}
|
||||
.rightBoxNT input[type=radio], .rightBoxNT input[type=checkbox] {box-sizing:border-box; padding:0;}
|
||||
.rightBoxNT .form-horizontal .checkbox, .rightBoxNT .form-horizontal .radio {min-height:29px; padding:0 5px 0 15px;}
|
||||
|
||||
|
||||
/* 체크박스 */
|
||||
.rightBoxNT .checkbox label {font-size:13px; line-height:30px; margin-left:7px; padding:0;}
|
||||
.rightBoxNT .checkbox label:after, .checkbox label:before {height:18px; width:18px; top:6px; left:0; position:absolute;}
|
||||
.rightBoxNT .checkbox label:after {content:''; border:1px solid #dee2e6; border-radius:4px; -webkit-transition:.1s ease-in-out; transition:.1s ease-in-out;}
|
||||
.rightBoxNT .checkbox label:before {content:''; border-radius:4px;}
|
||||
.rightBoxNT .checkbox input:checked~label:before {background-color:#FFF; border:1px solid #dee2e6;}
|
||||
.rightBoxNT .checkbox input:checked~label:after {border-top-style:none; border-right-style:none; -ms-transform:rotate(-45deg); -webkit-transform:rotate(-45deg); transform:rotate(-45deg); height:5px; width:9px; border-color:#6A99F8; border-radius:0; border-width:2px; top:12px; left:5px;}
|
||||
|
||||
|
||||
/* 라디오박스 */
|
||||
.rightBoxNT .radioWrap {padding:5px 0 5px 5px; display:inline;}
|
||||
.rightBoxNT .radio label {font-size:13px; line-height:29px; margin-left:5px; padding:0;}
|
||||
.rightBoxNT .radio label::after, .radio label::before {content:'';}
|
||||
.rightBoxNT .radio label:after, .radio label:before {height:20px; width:20px; top:8px; left:0; position:absolute;}
|
||||
.rightBoxNT .radio label::before {border:1px solid #dee2e6; border-radius:50%; width:16px; height:16px; margin-right:.5rem;}
|
||||
.rightBoxNT .radio label::after {position:absolute; display:-webkit-inline-box; display:-webkit-inline-flex; display:-ms-inline-flexbox; display:inline-flex; height:6px; width:6px; background-color:#377ec1; border-radius:50%; top:13px; left:5px; opacity:0; -webkit-transform:scale(3.6); -ms-transform:scale(3.6); transform:scale(3.6); border:none;}
|
||||
.rightBoxNT .radio input[type=radio]:checked~label::after {opacity:1; -webkit-transform:scale(1); -ms-transform:scale(1); transform:scale(1); -webkit-transition:all .3s cubic-bezier(.35,.9,.4,.9); transition:all .3s cubic-bezier(.35,.9,.4,.9);}
|
||||
|
||||
|
||||
/* 주소 */
|
||||
.rightBoxNT .form-horizontal .addressBox {width:calc(100% - 170px); float:left; padding:5px;}
|
||||
.rightBoxNT .form-horizontal .addressBox .numberBox {margin-bottom:6px; width:245px;}
|
||||
.rightBoxNT .form-horizontal .addressBox .last {margin-bottom:0;}
|
||||
.rightBoxNT .form-horizontal .addressBox .numberBox .number { margin-right:5px; width:calc(245px - 105px);}
|
||||
.rightBoxNT .form-horizontal .btn-overlap {background:#377ec1; color:#fff; text-shadow:none; border:none; border-radius:0.267rem; box-shadow:none; line-height:30px; font-size:13px; padding:0; width:100px;}
|
||||
.rightBoxNT .form-horizontal .btn-overlap:hover {background:#377ec1;}
|
||||
/* 버튼아이콘 */
|
||||
.rightBoxNT .btn-overlap svg {fill:#fff; float:left; width:25px}
|
||||
.rightBoxNT .form-horizontal .addressBox .address1 {margin-bottom:5px;}
|
||||
|
||||
/* 주소찾기 */
|
||||
.rightBoxNT .form-horizontal .address {width:calc(100% - 200px); float:left; padding-left:10px;}
|
||||
.rightBoxNT .form-horizontal .address .roadBox {margin-bottom:5px;}
|
||||
.rightBoxNT .form-horizontal .address .roadBox .road {width:29.1%; float:left; margin-right:10px;}
|
||||
.rightBoxNT .form-horizontal .address .roadBox .btn-overlap {width:100px; background:#dee2e6; color:#333; text-shadow:none; border:none; padding:0; border-radius:.267rem; box-shadow:none; line-height:30px; font-size:13px;}
|
||||
.rightBoxNT .form-horizontal .address .roadBox .btn-overlap:hover {background:#dedede;}
|
||||
.rightBoxNT .form-horizontal .address .roadBox .subroad {width:39.6%;}
|
||||
|
||||
|
||||
|
||||
/* 날짜 선택 체크리스트 */
|
||||
.rightBoxNT .choiceDateBox {display:block; overflow-y:scroll; border:1px solid #dee2e6; outline:none; width:100%; height:130px; padding:5px;}
|
||||
|
||||
|
||||
|
||||
/* 파일업로드 */
|
||||
.rightBoxNT .input-file {min-height:37px; padding-right:0; padding-left:15px;}
|
||||
.rightBoxNT .input-file {display:inline-block;}
|
||||
.rightBoxNT .input-file [type="file"] {position:absolute; width:1px; height:1px; padding:0; overflow:hidden; clip:rect(0, 0, 0, 0); border:0 none; }
|
||||
.rightBoxNT .input-file .file-label {background-color:#dee2e6; text-align:center; margin:0 0 0 7px; text-shadow:none; border:none; border-radius:.267rem; box-shadow:none; line-height:30px; font-weight:300; cursor:pointer; padding:0 12px 0 7px;}
|
||||
.rightBoxNT .input-file .btnFile {width:100px; background:#377ec1; text-shadow:none; color:#fff; border:none; padding:0.47rem 0.8rem; border-radius:0.267rem; box-shadow:none; height:35px; margin:0; text-align:center; font-weight:normal; line-height:25px;}
|
||||
/* 버튼아이콘 */
|
||||
.rightBoxNT .input-file .file-label svg {fill:rgba(49, 58, 70, .8); float:left; width:25px}
|
||||
.rightBoxNT .input-file .file-name {width:245px; border:1px solid #dee2e6; padding:.47rem .8rem; background-color:#FFF; border-radius:.267rem; box-shadow:none; height:30px; outline:none; float:left;}
|
||||
.rightBoxNT .input-file [type="file"]:focus {border:1px solid #50c3ca;}
|
||||
/* 첨부파일_파일문구 */
|
||||
.rightBoxNT .download-file {padding-left:15px; height:30px; line-height:24px; color:#dee2e6;}
|
||||
.rightBoxNT .download-file .fileDownloadTitle {color:#999; text-decoration:underline;}
|
||||
|
||||
|
||||
/* 이미지 */
|
||||
/* .rightBoxNT .form-horizontal .photoBox {width:calc(100% - 200px); float:left; padding:0 0 0 10px;} */
|
||||
.rightBoxNT .form-horizontal .photoSlash {width:300px; float:left; padding:0 0 0 10px;}
|
||||
.rightBoxNT .form-horizontal .title-name {margin:5px 0;}
|
||||
.rightBoxNT .form-horizontal .imgnumber {color:#97989b; position:relative; left:10px;}
|
||||
.rightBoxNT input[type="file"] {position:absolute; opacity:0; cursor:pointer; z-index:1;}
|
||||
.rightBoxNT .form-horizontal .photoList {display:table; position:relative;}
|
||||
.rightBoxNT .form-horizontal .videoList {display:table;}
|
||||
.rightBoxNT .form-horizontal .imgBox {width:100px; height:100px; padding:0; float:left; margin-right:10px;}
|
||||
.rightBoxNT .form-horizontal .img-100 {border:1px solid #dee2e6; width:100px; height:100px; background:none; color:#3e3f3a;}
|
||||
.rightBoxNT .form-horizontal .img-100:hover{background:none;border:1px solid #dee2e6;box-shadow:none;}
|
||||
.rightBoxNT .form-horizontal .photoBorder {width:calc(100% - 200px); border-bottom:1px solid #dee2e6; display:-webkit-box; float:right;}
|
||||
.rightBoxNT .form-horizontal .photoBorder.last {border:none;}
|
||||
.rightBoxNT .form-horizontal .sub-name {clear:both; color:#97989b; margin:5px 0 0; font-size:12px; position:relative;}
|
||||
.rightBoxNT .form-horizontal .sub-name:first-child {margin-top:10px;}
|
||||
.rightBoxNT .form-horizontal .sub-name .deleteSvg {width:20px; height:20px; fill:rgba(49, 58, 70, .8); position:absolute;}
|
||||
/* 여러개이미지 */
|
||||
.rightBoxNT .form-horizontal .photoSlashAdd {width:calc(100% - 300px); float:left; padding:0 0 0 10px; display:grid;}
|
||||
.rightBoxNT .form-horizontal .photoListAdd {display:table; position:relative; float:left;}
|
||||
/*사용안할시 제거*/
|
||||
.rightBoxNT .form-horizontal .img-250 {border:1px solid #dee2e6; width:288px; height:288px; background:#f7f7f7;}
|
||||
.rightBoxNT .form-horizontal .img-250 img {opacity:0; width:auto; height:auto; max-width:100%; max-height:100%;}
|
||||
.rightBoxNT .form-horizontal .miniphotoBox {width:calc(100% - 200px - 10px); float:left; padding-left:10px;}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/* 해더고정스크롤 */
|
||||
.rightBoxNT .basicScroll {overflow:hidden; min-width:100%; margin-bottom:21px;}
|
||||
.rightBoxNT .basicScroll .grid-layout {margin:0 auto; width:100%; background:#fff; font-size:12px; color:#444; border:solid 1px #dddfe4; border-top:none; position:relative; box-sizing:border-box;}
|
||||
/*툴팁레이어가 grid-layout 위에 있을 경우 overflow:hidden 제거 필요 */
|
||||
/* 스크롤바 스타일 관련 */
|
||||
.rightBoxNT .basicScroll .grid-layout {scrollbar-highlight-color:#fff; scrollbar-shadow-color:#fff; scrollbar-arrow-color:#8a8a8a; scrollbar-face-color:#d9d9d9; scrollbar-3dlight-color:#fff; scrollbar-darkshadow-color:#fff; scrollbar-track-color:#fff;}
|
||||
.rightBoxNT .basicScroll .grid-layout ::-webkit-scrollbar {-webkit-appearance:none; width:17px; height:17px; background-color:#fff;}
|
||||
.rightBoxNT .basicScroll .grid-layout ::-webkit-scrollbar-thumb {background-color:#d9d9d9; border:5px solid transparent; border-radius:16px; background-clip:content-box;}
|
||||
.rightBoxNT .basicScroll .grid-layout ::-webkit-scrollbar-thumb:hover {background-color:#c1c1c1;}
|
||||
.rightBoxNT .basicScroll .grid-layout ::-webkit-scrollbar-corner {background-color:#f2f2f2;}
|
||||
/* 헤더 영역 */
|
||||
.rightBoxNT .basicScroll .grid-layout .header {position:relative; overflow:hidden;}
|
||||
.rightBoxNT .basicScroll .grid-layout .header .headerBox {overflow:hidden; left:-1px; border-top:1px solid #dee2e6; background:#f6f6f6;}
|
||||
.rightBoxNT .basicScroll .grid-layout .header .base {overflow-x:scroll; margin-right:-1px;}
|
||||
.rightBoxNT .basicScroll .grid-layout .header .config-button {display:none;}
|
||||
.rightBoxNT .basicScroll .grid-layout .header tbody {background-color:#f6f6f6;}
|
||||
.rightBoxNT .basicScroll .grid-layout .header .left {margin-right:16px;}
|
||||
/* 바디 영역 */
|
||||
.rightBoxNT .basicScroll .grid-layout .body {position:relative; overflow:hidden; margin-bottom:-1px;}
|
||||
.rightBoxNT .basicScroll .grid-layout .body .height-bar {display:none;}
|
||||
.rightBoxNT .basicScroll .grid-layout .body .base {margin-right:-1px;}
|
||||
.rightBoxNT .basicScroll .grid-layout .body .bodyBox {top:-1px; left:-1px; overflow:hidden;}
|
||||
.rightBoxNT .basicScroll .grid-layout .vertical-scrollbar-line {display:none;}
|
||||
.rightBoxNT .basicScroll .grid-layout .horizontal-scrollbar-line {display:none; position:absolute; width:100%; height:1px; left:0px; background-color:#dddfe4;}
|
||||
.rightBoxNT .basicScroll .grid-layout .container {position:relative;}
|
||||
.rightBoxNT .basicScroll .grid-layout .body .left {display:none; position:absolute; top:0; margin:0;}
|
||||
.rightBoxNT .basicScroll .grid-layout .right {display:none; position:absolute; top:0; right:-1px;}
|
||||
.rightBoxNT .basicScroll .grid-layout .clipboard {position:absolute; left:-999px; width:1px; height:1px; bottom:0;}
|
||||
/* 합계 영역 */
|
||||
.rightBoxNT .basicScroll .grid-layout .header .footerBox {overflow:hidden; left:-1px; border-top:1px solid #dee2e6; background:#f6f6f6;}
|
||||
/* 그리드 전체 비활성화 */
|
||||
.rightBoxNT .basicScroll .grid-layout .blocker-layer {display:none; position:absolute; background:rgba(0, 0, 0, 0.05); width:100%; height:100%; top:0;}
|
||||
.rightBoxNT .basicScroll .grid-layout.disabled, .basicScroll .grid-layout.disabled th, .basicScroll .grid-layout.disabled .content-holder {color:#e0e0e0 !important;}
|
||||
.rightBoxNT .basicScroll .grid-layout.disabled .blocker-layer {display:block;}
|
||||
/* 수평 스크롤 가능 영역 */
|
||||
.rightBoxNT .basicScroll .grid-layout .horizontal-scrollable {overscroll-behavior-x:none;}
|
||||
/* 수직 스크롤바를 사용하지 않는 경우 */
|
||||
.rightBoxNT .basicScroll .grid-layout .virtual-horizontal-scrollbar {display:none;}
|
||||
.rightBoxNT .basicScroll .grid-layout .virtual-horizontal-scrollbar .space {display:none;}
|
||||
/* 수직 스크롤바를 사용하는 경우 */
|
||||
.rightBoxNT .basicScroll .grid-layout.vertical-scrollbar .header .config-button {display:block; position:absolute; border:solid 1px #dddfe4; top:0; right:-1px; width:18px; background-color:#f6f6f6;}
|
||||
.rightBoxNT .basicScroll .grid-layout.vertical-scrollbar .body {overflow-y:scroll; margin-right:-1px;}
|
||||
.rightBoxNT .basicScroll .grid-layout.vertical-scrollbar .body .height-bar {display:block; position:absolute; width:1px; top:0; left:0; background:transparent;}
|
||||
.rightBoxNT .basicScroll .grid-layout.vertical-scrollbar .virtual-horizontal-scrollbar {margin-right:16px;}
|
||||
.rightBoxNT .basicScroll .grid-layout.vertical-scrollbar .vertical-scrollbar-line {display:block; position:absolute; width:1px; height:100%; top:0; right:16px; background-color:#dddfe4;}
|
||||
.rightBoxNT .basicScroll .grid-layout.vertical-scrollbar .vertical-scrollbar-line:after {position:absolute; right:-17px; top:0; width:1px; height:100%; background-color:#dddfe4; content:'';}
|
||||
/* grid-layout overflow:hidden 제거시 필요 */
|
||||
.rightBoxNT .basicScroll .grid-layout.vertical-scrollbar .header .container {margin-right:16px;}
|
||||
.rightBoxNT .basicScroll .grid-layout.vertical-scrollbar .horizontal-scrollbar-line {bottom:-1px;}
|
||||
/* 수평 스크롤바를 사용하는 경우 */
|
||||
.rightBoxNT .basicScroll .grid-layout.horizontal-scrollbar .container {overflow:hidden;}
|
||||
.rightBoxNT .basicScroll .grid-layout.horizontal-scrollbar .body .base {overflow-x:scroll;}
|
||||
.rightBoxNT .basicScroll .grid-layout.horizontal-scrollbar .virtual-horizontal-scrollbar {display:block; overflow-y:hidden; overflow-x:scroll; height:17px;}
|
||||
.rightBoxNT .basicScroll .grid-layout.horizontal-scrollbar .virtual-horizontal-scrollbar .width-bar {height:1px;}
|
||||
.rightBoxNT .basicScroll .grid-layout.horizontal-scrollbar .horizontal-scrollbar-line {bottom:16px;}
|
||||
/* 데이터 테이블 관련 */
|
||||
.rightBoxNT .basicScroll .grid-layout table {border:0; table-layout:fixed; border-collapse:collapse; border-spacing:1px; width:100%;}
|
||||
.rightBoxNT .basicScroll .grid-layout table.titleTable {position:relative; right:2px;}
|
||||
.rightBoxNT .basicScroll .grid-layout table col {background-color:#fff;}
|
||||
.rightBoxNT .basicScroll .grid-layout table th {font-weight:normal; font-size:12px; overflow:hidden; white-space:nowrap; text-align:center; position:relative; border:1px solid #dee2e6; border-top:none; border-left:none; height:35px;}
|
||||
.rightBoxNT .basicScroll .grid-layout table th.last {border-bottom:none;}
|
||||
.rightBoxNT .basicScroll .grid-layout table tr.hover {background-color:#fff;}
|
||||
.rightBoxNT .basicScroll .grid-layout table tr.checked {background-color:#fff;}
|
||||
.rightBoxNT .basicScroll .grid-layout table tr.focused {background-color:#fff;}
|
||||
.rightBoxNT .basicScroll .grid-layout table tr.disabled, .rightBoxNT .basicScroll .grid-layout table tr.disabled-row {color:#b0b0b0;}
|
||||
.rightBoxNT .basicScroll .grid-layout table td {overflow:hidden; font-size:12px; border:1px solid #dee2e6; border-top:none; border-left:none; background:#fff; text-align:center; height:35px;}
|
||||
.rightBoxNT .basicScroll .grid-layout table td div.productNameType {white-space:nowrap; overflow:hidden; text-overflow:ellipsis; padding:0 5px;}
|
||||
.rightBoxNT .basicScroll .grid-layout table td div.productOptionType {white-space:nowrap; overflow:hidden; text-overflow:ellipsis; padding:0 5px;}
|
||||
.rightBoxNT .basicScroll .grid-layout table td div.couponNameType {white-space:nowrap; overflow:hidden; text-overflow:ellipsis; padding:0 5px;}
|
||||
.rightBoxNT .basicScroll .grid-layout table td div.contentType {white-space:nowrap; overflow:hidden; text-overflow:ellipsis; padding:0 5px;}
|
||||
.rightBoxNT .basicScroll .grid-layout table td div.leftAlign {text-align:left;}
|
||||
.rightBoxNT .basicScroll .grid-layout table td div.rightAlign {text-align:right;}
|
||||
.rightBoxNT .basicScroll .grid-layout table td a {color:#5a86dd;}
|
||||
.rightBoxNT .basicScroll .grid-layout table td img {vertical-align:middle; margin:-1px;}
|
||||
/* 체크 박스 관련 스타일 */
|
||||
.rightBoxNT .basicScroll .grid-layout .checkbox label:after, .rightBoxNT .basicScroll .grid-layout .checkbox label:before {height:18px; width:18px; top:6px; left:8px; position:absolute;}
|
||||
.rightBoxNT .basicScroll .grid-layout .checkbox label:after {content:''; border:1px solid #dee2e6; border-radius:4px; -webkit-transition:.1s ease-in-out; transition:.1s ease-in-out;}
|
||||
.rightBoxNT .basicScroll .grid-layout .checkbox label:before {content:''; border-radius:4px;}
|
||||
.rightBoxNT .basicScroll .grid-layout .checkbox input:checked~label:before {background-color:#FFF; border:1px solid #dee2e6;}
|
||||
.rightBoxNT .basicScroll .grid-layout .checkbox input:checked~label:after {border-top-style:none; border-right-style:none; -ms-transform:rotate(-45deg); -webkit-transform:rotate(-45deg); transform:rotate(-45deg); height:.6rem; width:1rem; border-color:#50c3ca; border-radius:0; border-width:2px; top:11px; left:12px;}
|
||||
|
||||
.rightBoxNT .basicScroll .cui-grid-textbox {display:inline-block; width:100%; box-sizing:border-box;}
|
||||
/* 데이터 없을 때 */
|
||||
.rightBoxNT .basicScroll .grid-layout .empty-layer {display:none; width:100%; height:100%; position:absolute; top:0; background:#fff; width:calc(100% - 17px);}
|
||||
.rightBoxNT .basicScroll .grid-layout .empty-layer .content {display:table-cell; font-size:14px; height:100%; text-align:center; padding-top:100px; overflow-x:hidden; overscroll-behavior-x:none;}
|
||||
/* 열고정 라인 그라데이션 스타일 */
|
||||
.rightBoxNT .basicScroll .grid-layout .line-gradient:after {position:absolute; top:0; bottom:0; width:6px; height:100%; content:'';}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/* 왼쪽고정,해더고정 스크롤 */
|
||||
.rightBoxNT .fixedScroll {max-width:800px; overflow:hidden; min-width:100%; margin-bottom:21px;}
|
||||
.rightBoxNT .fixedScroll .grid-layout {margin:0 auto; width:100%; background:#fff; font-size:12px; color:#444; border:solid 1px #dddfe4; border-top:none; position:relative; box-sizing:border-box;}
|
||||
/*툴팁레이어가 grid-layout 위에 있을 경우 overflow:hidden 제거 필요 */
|
||||
/* 스크롤바 스타일 관련 */
|
||||
.rightBoxNT .fixedScroll .grid-layout {scrollbar-highlight-color:#fff; scrollbar-shadow-color:#fff; scrollbar-arrow-color:#8a8a8a; scrollbar-face-color:#d9d9d9; scrollbar-3dlight-color:#fff; scrollbar-darkshadow-color:#fff; scrollbar-track-color:#fff;}
|
||||
.rightBoxNT .fixedScroll .grid-layout ::-webkit-scrollbar {-webkit-appearance:none; width:17px; height:17px; background-color:#fff;}
|
||||
.rightBoxNT .fixedScroll .grid-layout ::-webkit-scrollbar-thumb {background-color:#d9d9d9; border:5px solid transparent; border-radius:16px; background-clip:content-box;}
|
||||
.rightBoxNT .fixedScroll .grid-layout ::-webkit-scrollbar-thumb:hover {background-color:#c1c1c1;}
|
||||
.rightBoxNT .fixedScroll .grid-layout ::-webkit-scrollbar-corner {background-color:#f2f2f2;}
|
||||
/* 헤더 영역 */
|
||||
.rightBoxNT .fixedScroll .grid-layout .header {position:relative; overflow:hidden; border-top:1px solid #dee2e6;}
|
||||
.rightBoxNT .fixedScroll .grid-layout .header .headerBox {overflow:hidden; left:-1px; overflow-y:scroll; height:35px;}
|
||||
.rightBoxNT .fixedScroll .grid-layout .header .base {overflow-x:hidden; margin-right:-1px;}
|
||||
.rightBoxNT .fixedScroll .grid-layout .header .config-button {display:none;}
|
||||
.rightBoxNT .fixedScroll .grid-layout .header tbody {background-color:#f6f6f6;}
|
||||
.rightBoxNT .fixedScroll .grid-layout #headerBox::-webkit-scrollbar-thumb {background-color:#f6f6f6;}
|
||||
.rightBoxNT .fixedScroll .grid-layout #headerBox::-webkit-scrollbar-track {background-color:#f6f6f6; border-bottom:1px solid #dee2e6;}
|
||||
/* 바디 영역 */
|
||||
.rightBoxNT .fixedScroll .grid-layout .body {position:relative; overflow:hidden; margin-bottom:-1px;}
|
||||
.rightBoxNT .fixedScroll .grid-layout .body .height-bar {display:none;}
|
||||
.rightBoxNT .fixedScroll .grid-layout .body .bodyBox {top:-1px; left:-1px; overflow:hidden;}
|
||||
.rightBoxNT .fixedScroll .grid-layout .vertical-scrollbar-line {display:none;}
|
||||
.rightBoxNT .fixedScroll .grid-layout .horizontal-scrollbar-line {display:none; position:absolute; width:100%; height:1px; left:0px; background-color:#dddfe4;}
|
||||
.rightBoxNT .fixedScroll .grid-layout .container {position:relative;}
|
||||
.rightBoxNT .fixedScroll .grid-layout .left {display:none; position:absolute; top:0;}
|
||||
.rightBoxNT .fixedScroll .grid-layout .right {display:none; position:absolute; top:0; right:-1px;}
|
||||
.rightBoxNT .fixedScroll .grid-layout .clipboard {position:absolute; left:-999px; width:1px; height:1px; bottom:0;}
|
||||
/* 합계 영역 */
|
||||
.rightBoxNT .fixedScroll .grid-layout .header .footerBox {overflow:hidden; left:-1px; border-top:1px solid #dee2e6; background:#f6f6f6; padding-right:17px;}
|
||||
.rightBoxNT .fixedScroll .grid-layout .header .footerBox table th {border-top:none; border-bottom:none;}
|
||||
/* 그리드 전체 비활성화 */
|
||||
.rightBoxNT .fixedScroll .grid-layout .blocker-layer {display:none; position:absolute; background:rgba(0, 0, 0, 0.05); width:100%; height:100%; top:0;}
|
||||
.rightBoxNT .fixedScroll .grid-layout.disabled, .fixedScroll .rightBoxNT .fixedScroll .grid-layout.disabled th, .fixedScroll .grid-layout.disabled .content-holder {color:#e0e0e0 !important;}
|
||||
.rightBoxNT .fixedScroll .grid-layout.disabled .blocker-layer {display:block;}
|
||||
/* 수평 스크롤 가능 영역 */
|
||||
.rightBoxNT .fixedScroll .grid-layout .horizontal-scrollable {overscroll-behavior-x:none;}
|
||||
/* 수직 스크롤바를 사용하지 않는 경우 */
|
||||
.rightBoxNT .fixedScroll .grid-layout .virtual-horizontal-scrollbar {display:none;}
|
||||
.rightBoxNT .fixedScroll .grid-layout .virtual-horizontal-scrollbar .space {display:none;}
|
||||
/* 수직 스크롤바를 사용하는 경우 */
|
||||
.rightBoxNT .fixedScroll .grid-layout.vertical-scrollbar .header .config-button {display:block; position:absolute; border:solid 1px #dddfe4; top:0; right:-1px; width:18px; background-color:#f6f6f6;}
|
||||
.rightBoxNT .fixedScroll .grid-layout.vertical-scrollbar .body {overflow-y:scroll; min-height:255px; max-height:initial; height:601px;}
|
||||
.rightBoxNT .fixedScroll .grid-layout.vertical-scrollbar .body .height-bar {display:block; position:absolute; width:1px; top:0; left:0; background:transparent;}
|
||||
.rightBoxNT .fixedScroll .grid-layout.vertical-scrollbar .virtual-horizontal-scrollbar {margin-right:16px;}
|
||||
.rightBoxNT .fixedScroll .grid-layout.vertical-scrollbar .vertical-scrollbar-line {display:block; position:absolute; width:1px; height:100%; top:0; right:16px; background-color:#dddfe4;}
|
||||
.rightBoxNT .fixedScroll .grid-layout.vertical-scrollbar .vertical-scrollbar-line:after {position:absolute; right:-17px; top:0; width:1px; height:100%; background-color:#dddfe4; content:'';}
|
||||
/* grid-layout overflow:hidden 제거시 필요 */
|
||||
.rightBoxNT .fixedScroll .grid-layout.vertical-scrollbar .header .container {margin-right:16px;}
|
||||
.rightBoxNT .fixedScroll .grid-layout.vertical-scrollbar .horizontal-scrollbar-line {bottom:-1px;}
|
||||
/* 수평 스크롤바를 사용하는 경우 */
|
||||
.rightBoxNT .fixedScroll .grid-layout.horizontal-scrollbar .container {overflow:hidden;}
|
||||
.rightBoxNT .fixedScroll .grid-layout.horizontal-scrollbar .virtual-horizontal-scrollbar {display:block; overflow-y:hidden; overflow-x:scroll; height:17px;}
|
||||
.rightBoxNT .fixedScroll .grid-layout.horizontal-scrollbar .virtual-horizontal-scrollbar .width-bar {height:1px;}
|
||||
.rightBoxNT .fixedScroll .grid-layout.horizontal-scrollbar .horizontal-scrollbar-line {bottom:16px;}
|
||||
/* 데이터 테이블 관련 */
|
||||
.rightBoxNT .fixedScroll .grid-layout table {border:0; table-layout:fixed; border-collapse:collapse; border-spacing:1px; width:100%; height:35px;}
|
||||
.rightBoxNT .fixedScroll .grid-layout table.titleTable {position:relative; right:0;}
|
||||
.rightBoxNT .fixedScroll .grid-layout table col {background-color:#fff;}
|
||||
.rightBoxNT .fixedScroll .grid-layout table th {font-weight:normal; font-size:12px; overflow:hidden; white-space:nowrap; text-align:center; position:relative; border:1px solid #dee2e6; border-left:none; border-top:none;}
|
||||
.rightBoxNT .fixedScroll .grid-layout table tr {height:30px;}
|
||||
.rightBoxNT .fixedScroll .grid-layout table tr.hover {background-color:#fff;}
|
||||
.rightBoxNT .fixedScroll .grid-layout table tr.checked {background-color:#fff;}
|
||||
.rightBoxNT .fixedScroll .grid-layout table tr.focused {background-color:#fff;}
|
||||
.rightBoxNT .fixedScroll .grid-layout table tr.disabled, .fixedScroll .grid-layout table tr.disabled-row {color:#b0b0b0;}
|
||||
.rightBoxNT .fixedScroll .grid-layout table td {overflow:hidden; font-size:12px; border:1px solid #dee2e6; border-top:none; border-left:none; background:#fff; line-height:17px; text-align:center; height:35px;}
|
||||
.rightBoxNT .fixedScroll .grid-layout table td div.productNameType {white-space:nowrap; overflow:hidden; text-overflow:ellipsis; padding:0 5px;}
|
||||
.rightBoxNT .fixedScroll .grid-layout table td div.productOptionType {white-space:nowrap; overflow:hidden; text-overflow:ellipsis; padding:0 5px;}
|
||||
.rightBoxNT .fixedScroll .grid-layout table td div.couponNameType {white-space:nowrap; overflow:hidden; text-overflow:ellipsis; padding:0 5px;}
|
||||
.rightBoxNT .fixedScroll .grid-layout table td div.contentType {white-space:nowrap; overflow:hidden; text-overflow:ellipsis; padding:0 5px;}
|
||||
.rightBoxNT .fixedScroll .grid-layout table td div.leftAlign {text-align:left;}
|
||||
.rightBoxNT .fixedScroll .grid-layout table td div.rightAlign {text-align:right;}
|
||||
.rightBoxNT .fixedScroll .grid-layout table td.focused {border:solid 1px #5a86dd; padding:7px 11px;}
|
||||
.rightBoxNT .fixedScroll .grid-layout table td a {color:#5a86dd;}
|
||||
.rightBoxNT .fixedScroll .grid-layout table td img {vertical-align:middle; margin:-1px;}
|
||||
/* 체크 박스 관련 스타일 */
|
||||
.rightBoxNT .fixedScroll .grid-layout .checkbox label:after, .rightBoxNT .fixedScroll .grid-layout .checkbox label:before {height:18px; width:18px; top:5px; left:5px; position:absolute;}
|
||||
.rightBoxNT .fixedScroll .grid-layout .checkbox label:after {content:''; border:1px solid #dee2e6; border-radius:4px; -webkit-transition:.1s ease-in-out; transition:.1s ease-in-out;}
|
||||
.rightBoxNT .fixedScroll .grid-layout .checkbox label:before {content:''; border-radius:4px;}
|
||||
.rightBoxNT .fixedScroll .grid-layout .checkbox input:checked~label:before {background-color:#FFF; border:1px solid #dee2e6;}
|
||||
.rightBoxNT .fixedScroll .grid-layout .checkbox input:checked~label:after {border-top-style:none; border-right-style:none; -ms-transform:rotate(-45deg); -webkit-transform:rotate(-45deg); transform:rotate(-45deg); height:.6rem; width:1rem; border-color:#178754; border-radius:0; border-width:2px; top:10px; left:9px;}
|
||||
|
||||
.rightBoxNT .fixedScroll .cui-grid-textbox {display:inline-block; width:100%; box-sizing:border-box;}
|
||||
/* 데이터 없을 때 */
|
||||
.rightBoxNT .fixedScroll .grid-layout .empty-layer {display:none; width:100%; height:100%; position:absolute; top:0; background:#fff; width:calc(100% - 17px);}
|
||||
.rightBoxNT .fixedScroll .grid-layout .empty-layer .content {display:table-cell; font-size:14px; height:100%; text-align:center; padding-top:100px; overflow-x:hidden; overscroll-behavior-x:none;}
|
||||
/* 열고정 라인 그라데이션 스타일 */
|
||||
.rightBoxNT .fixedScroll .grid-layout .line-gradient:after {position:absolute; top:0; bottom:0; width:6px; height:100%; content:'';}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/* 리스트 검색결과가 없습니다.*/
|
||||
.rightBoxNT .form-horizontal table .searchEmpty>td{cursor: default;}
|
||||
.rightBoxNT .form-horizontal table .searchEmpty>td .noData {height:200px; vertical-align:middle; display:block; text-align:center; padding:70px 0;}
|
||||
.rightBoxNT .form-horizontal table .searchEmpty>td .noData .noDataTitle {margin:0; font-size:18px; color:#777;}
|
||||
.rightBoxNT .form-horizontal table .searchEmpty>td .noData .noDataText {margin:0; line-height:14px; color:#999;}
|
||||
.rightBoxNT .form-horizontal table .searchEmpty>td .noData .noDataText span {color:#50c3ca;}
|
||||
|
||||
|
||||
|
||||
|
||||
/* 스크롤없는 일반표 */
|
||||
.rightBoxNT .basicTable {overflow:hidden; min-width:100%; margin-bottom:10px;}
|
||||
.rightBoxNT .basicTable table {border:0; table-layout:fixed; border-collapse:collapse; border-spacing:1px; border:1px solid #dee2e6; width:100%;}
|
||||
.rightBoxNT .basicTable table th {background-color:#f6f6f6; font-weight:normal; font-size:12px; overflow:hidden; white-space:nowrap; text-align:center; position:relative; border:1px solid #dee2e6; border-top:none; border-left:none; height:35px;}
|
||||
.rightBoxNT .basicTable table td {overflow:hidden; font-size:12px; border-top:none; border-left:none; background:#fff; border:1px solid #dee2e6; text-align:center; height:35px;}
|
||||
|
||||
|
||||
|
||||
|
||||
/* 탭 */
|
||||
.rightBoxNT .border {width:40px; height:3px; background:#00723e;}
|
||||
.rightBoxNT .listConbox {margin-bottom:1px;}
|
||||
.rightBoxNT .listConbox .tabList {list-style:none; padding:0; margin:1px; margin-bottom:-1px; width:100%; background:#fff;}
|
||||
.rightBoxNT .listConbox .tabList li {position:relative; display:table-cell; width:calc(100% / 12); border-left:0; text-align:center;}
|
||||
.rightBoxNT .listConbox .tabList .planActionLi{width:200px;}
|
||||
.rightBoxNT .listConbox .tabList li:after {content:''; position:absolute; top:0; bottom:0; left:-1px; right:0; border:1px solid #dedede;}
|
||||
.rightBoxNT .listConbox .tabList li a {position:relative; display:block; font-size:13px; line-height:38px; height:38px; z-index:1; margin:0; padding:0; border:0; background:#f5f7f7; border:1px solid #dee2e6; border-left:none; border-radius:0;}
|
||||
.rightBoxNT .listConbox .tabList li a:link {color:rgba(49, 58, 70, .8);}
|
||||
.rightBoxNT .listConbox .tabList li a:hover {background:#f5f7f7; color:rgba(49, 58, 70, .8);}
|
||||
.rightBoxNT .listConbox .tabList li.active a:after {content:''; position:absolute; top:0; left:0; right:0; bottom:0; border:0; z-index:2;}
|
||||
.rightBoxNT .listConbox .tabList li.active a:hover{background:none;}
|
||||
.rightBoxNT .listConbox .nav-tabs>li.active>a, .rightBoxNT .listConbox .nav-tabs>li.active>a:focus, .rightBoxNT .listConbox .nav-tabs>li.active>a:hover {color:#fff; background:#377ec1; border-radius:0; border:none;} /*선택시 배경 여기에 넣을것 */
|
||||
.rightBoxNT .formSubstance .tab-pane {display:none;}
|
||||
.rightBoxNT .formSubstance .tab-pane.active {display:block;} /*bradley 수정*/
|
||||
/* 탭내용*/
|
||||
.rightBoxNT .form-horizontal .conBox {border:1px solid #dee2e6; padding:10px;}
|
||||
.rightBoxNT .form-horizontal .conBox .title {color:#324767; text-decoration:none; padding:0px 10px; text-align:left; line-height:34px; margin:0; font-size:16px; font-weight:700;}
|
||||
.rightBoxNT .form-horizontal .conBox .title span {color:#97989b; font-size:13px; margin-left:10px;}
|
||||
.rightBoxNT .form-horizontal .conBox .marginBox {margin:30px;}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/* 페이지게이션 */
|
||||
.pagination{margin:0;}
|
||||
.pagination>li {width:30px; height:30px; display:inline-block;}
|
||||
|
||||
.pagination>li>a {height:100%; width:100%; padding:0;}
|
||||
.pagination>li>a svg {width:14px; height:14px; position:absolute; top:50%; left:50%; transform:translate3d(-50%, -50%, 0);}
|
||||
.pagination>li>a.page-link {padding:5px 0;}
|
||||
.pagination>li>a.next {border-right:1px solid #ddd;}
|
||||
.pagination>li>a, .pagination>li>span {line-height:1.5; padding:5px 12px; border-right:none;}
|
||||
.pagination>li:last-child>a, .pagination>li:last-child>span {border-right:solid 1px #e6e6e6;}
|
||||
|
||||
|
||||
.pagination>.disabled>a, .pagination>.disabled>a:focus, .pagination>.disabled>a:hover, .pagination>.disabled>span, .pagination>.disabled>span:focus, .pagination>.disabled>span:hover{border-color:#e6e6e6; /* color:#919191; */ width:30px; height:30px;}
|
||||
.pagination>.active>a, .pagination>.active>a:focus, .pagination>.active>a:hover, .pagination>.active>span, .pagination>.active>span:focus, .pagination>.active>span:hover {background-color:#377ec1; border-color:#377ec1; color:#fff; width:30px; height:30px; line-height:20px;}
|
||||
.pagination>li>a:hover, .pagination>li>span:hover, .pagination>li>a:focus, .pagination>li>span:focus {background:#377ec1; color:#fff; border:solid 1px #377ec1;}
|
||||
.pagination>li>a, .pagination>li>span {color:#333;}
|
||||
.pagination>.disabled>span svg {width:14px; height:14px; position:absolute; top:50%; left:50%; transform:translate3d(-50%, -50%, 0);}
|
||||
.pagination>.disabled>span.next {border-right:1px solid #ddd;}
|
||||
|
||||
|
||||
|
||||
/* 상세입력 */
|
||||
.rightBoxNT .detailsBox {margin-top:0; border-bottom:none; margin-bottom:20px; display:inline-block; width:100%;}
|
||||
.rightBoxNT .detailsBox .detailsTitle {color:rgba(49, 58, 70, .8); text-decoration:none; padding:0px 10px; text-align:left; line-height:34px; margin:0; font-size:16px; font-weight:700; display:block;}
|
||||
.rightBoxNT .detailsBox .left {padding:0;}
|
||||
.rightBoxNT .detailsBox .right {padding:0;}
|
||||
.rightBoxNT .detailsBox .group1 {padding-bottom:0;}
|
||||
.rightBoxNT .detailsBox .detailsPanel {}
|
||||
.rightBoxNT .detailsBox .detailsPanel .sideText {line-height:30px; color:#97989b; position:relative; left:5px; bottom:-5px;}
|
||||
|
||||
/* 상세입력+,-버튼 */
|
||||
.rightBoxNT .form-horizontal .tableBtn {}
|
||||
.rightBoxNT .form-horizontal .tableBtn .btn-Plus {height:30px; background:#50c3ca; padding:0; width:30px; border-radius:.267rem;}
|
||||
.rightBoxNT .form-horizontal .tableBtn .btn-Plus:hover {background:#63b3a6;}
|
||||
.rightBoxNT .form-horizontal .tableBtn .btn-Plus svg {color:#fff; width:25px; height:25px; position:relative; top:2px;}
|
||||
.rightBoxNT .form-horizontal .tableBtn .btn-Minus {height:30px; background:#fc5083; padding:0; width:30px; border-radius:.267rem;}
|
||||
.rightBoxNT .form-horizontal .tableBtn .btn-Minus:hover {background:#eb4375;}
|
||||
.rightBoxNT .form-horizontal .tableBtn .btn-Minus svg {color:#fff; width:25px; height:25px; position:relative; top:2px;}
|
||||
|
||||
.rightBoxNT .form-horizontal .tableBtn1 {width:40px; background:#fff; border:1px solid #dee2e6;}
|
||||
.rightBoxNT .form-horizontal .tableBtn1 .btn-Minus {height:34px; background:#fc5083; padding:0; width:35px; border-radius:.267rem;}
|
||||
.rightBoxNT .form-horizontal .tableBtn1 .btn-Minus:hover {background:#eb4375;}
|
||||
.rightBoxNT .form-horizontal .tableBtn1 .btn-Minus svg {color:#fff; width:25px; height:25px; position:relative; top:3px;}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/* 질문관리_질문답변내용 */
|
||||
.rightBoxNT .form-horizontal .mainTitle {font-size:15px; line-height:40px; font-weight:700; padding:0 15px; border-bottom:1px solid #dee2e6;}
|
||||
.rightBoxNT .form-horizontal .openList {margin:0; padding:0; list-style:none; margin-bottom:30px;}
|
||||
.rightBoxNT .form-horizontal .openList li {padding:5px 0; border-bottom:1px solid #dee2e6;}
|
||||
.rightBoxNT .form-horizontal .openList li .titleBox {background:#f7f7f7; height:40px; padding:0 15px; border:1px solid #dee2e6;}
|
||||
.rightBoxNT .form-horizontal .openList li .titleBox .user {font-size:13px; line-height:40px; font-weight:700;}
|
||||
.rightBoxNT .form-horizontal .openList li .titleBox .site {margin:0 2px 0 3px; padding:1px 6px; border-radius:1px; font-size:12px; color:#fff; background:#4684e9; font-style:normal; position:relative; top:0;}
|
||||
.rightBoxNT .form-horizontal .openList li .titleBox .site.type {background: #fc5083;}
|
||||
.rightBoxNT .form-horizontal .openList li .titleBox .timeBox {float:right;}
|
||||
.rightBoxNT .form-horizontal .openList li .titleBox .timeBox .time{margin:0; font-size:13px; line-height:40px; color:#999;}
|
||||
.rightBoxNT .form-horizontal .openList li .titleBox .timeBox .openBtn {width:60px; margin:0 7px; text-shadow:none; border:none; padding:0; border-radius:.267rem; box-shadow:none; line-height:25px; font-size:13px; position:relative; top:-2px;}
|
||||
.rightBoxNT .form-horizontal .openList li .titleBox .timeBox .open-revise {background:#50c3ca; color:#fff; margin-right:0;}
|
||||
.rightBoxNT .form-horizontal .openList li .titleBox .timeBox .open-revise:hover {background:#63b3a6;}
|
||||
.rightBoxNT .form-horizontal .openList li .titleBox .timeBox .open-delete {background:#fc5083; color:#fff; margin-right:0;}
|
||||
.rightBoxNT .form-horizontal .openList li .titleBox .timeBox .open-delete:hover {background:#eb4375;}
|
||||
/*질문내용*/
|
||||
.rightBoxNT .form-horizontal .openList li .questionTitle{background:rgb(112 192 179 / 20%); height:40px; padding:0 15px; border:1px solid #dee2e6;}
|
||||
.rightBoxNT .form-horizontal .openList li .answerBox .questionMainTitle {font-size:15px; font-weight:700; border-bottom:1px solid #dee2e6; padding-bottom:10px;}
|
||||
.rightBoxNT .form-horizontal .openList li .answerBox .questionAnswer {color:#888; letter-spacing:-.03em; padding:10px 0;}
|
||||
.rightBoxNT .form-horizontal .openList li .numberBox {border-top:1px solid #dee2e6; padding-top:10px;}
|
||||
/*질문답변*/
|
||||
.rightBoxNT .form-horizontal .openList li .answerBox {clear:both; position:relative; top:-2px; padding:10px 15px; border:1px solid #dee2e6; background-color:#fff;}
|
||||
.rightBoxNT .form-horizontal .openList li .answerBox .answer {color:#888; letter-spacing:-.03em;}
|
||||
.rightBoxNT .form-horizontal .openList li .answerBox .answer.memoTitle {font-weight:700;}
|
||||
.rightBoxNT .form-horizontal .openList li .answerBox .detail {margin-bottom:15px;display:inline-block;font-size:12px;color:#999;}
|
||||
|
||||
|
||||
|
||||
/* 권한 체크리스트 박스 */
|
||||
.rightBoxNT .checkListchoiceBox {border:1px solid #dee2e6; display:block; width:100%; padding:0.47rem 0.8rem; border-radius:0.267rem; width:calc(100% - 10px); display:table;}
|
||||
.rightBoxNT .checkListchoiceBox .checkListWarp {width:calc(100%/5); float:left;}
|
||||
.rightBoxNT .checkListchoiceBox .checkListWarp .title {line-height:30px; color:#333; font-weight:500; background:#f7f7f7; border:1px solid #dee2e6; border-left:none; text-align:center;}
|
||||
.rightBoxNT .checkListchoiceBox .checkListWarp .title.first {border-left:1px solid #dee2e6;}
|
||||
.rightBoxNT .checkListchoiceBox .checkListWarp .checkListBox {border-top:none; border-right:none; /*padding:10px 10px 10px 30px;*/ min-height:150px; padding:10px;}
|
||||
.rightBoxNT .checkListchoiceBox .checkListWarp .checkListBox .checkbox {position:relative; display:block;}
|
||||
.rightBoxNT .checkListchoiceBox .checkListWarp .checkListBox .checkbox input[type=checkbox] {display:none;}
|
||||
.rightBoxNT .checkListchoiceBox .checkListWarp .checkListBox input[type=checkbox] {box-sizing:border-box; padding:0;}
|
||||
.rightBoxNT .checkListchoiceBox .checkListWarp .checkListBox .checkbox {min-height:26px; padding:0 18px;}
|
||||
|
||||
.rightBoxNT .checkListchoiceBox .checkListWarp .checkListBox .checkbox label {font-size:13px; line-height:26px; margin-left:7px; padding:0;}
|
||||
.rightBoxNT .checkListchoiceBox .checkListWarp .checkListBox .checkbox label:after, .rightBoxNT .checkListchoiceBox .checkListWarp .checkListBox .checkbox label:before {height:18px; width:18px; top:4px; left:0; position:absolute;}
|
||||
.rightBoxNT .checkListchoiceBox .checkListWarp .checkListBox .checkbox label:after {content:''; border:1px solid #dee2e6; border-radius:4px; -webkit-transition:.1s ease-in-out; transition:.1s ease-in-out;}
|
||||
.rightBoxNT .checkListchoiceBox .checkListWarp .checkListBox .checkbox label:before {content:''; border-radius:4px;}
|
||||
.rightBoxNT .checkListchoiceBox .checkListWarp .checkListBox .checkbox input:checked~label:before {background-color:#FFF; border:1px solid #dee2e6;}
|
||||
.rightBoxNT .checkListchoiceBox .checkListWarp .checkListBox .checkbox input:checked~label:after {border-top-style:none; border-right-style:none; -ms-transform:rotate(-45deg); -webkit-transform:rotate(-45deg); transform:rotate(-45deg); height:5px; width:9px; border-color:#6A99F8; border-radius:0; border-width:2px; top:10px; left:5px;}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/* 캘린더 */
|
||||
.rightBoxNT .form-horizontal .calendarBox{padding:5px 0;}
|
||||
/* 토요일 글자(요일,날짜) 색상 */
|
||||
.rightBoxNT .form-horizontal .calendarBox .fc-day-sat.fc-day-past div>a {color:#50c3ca;}
|
||||
.rightBoxNT .form-horizontal .calendarBox .fc-day.fc-day-sat div>a {color:#50c3ca;}
|
||||
/* 일요일 글자(요일,날짜) 색상 */
|
||||
.rightBoxNT .form-horizontal .calendarBox .fc-day-sun.fc-day-past div>a {color:#fc5083;}
|
||||
.rightBoxNT .form-horizontal .calendarBox .fc-day.fc-day-sun div>a {color:#fc5083;}
|
||||
/* 평일 글자(요일,날짜) 색상 */
|
||||
.rightBoxNT .form-horizontal .calendarBox .fc-daygrid-day-number {color:#333;}
|
||||
.rightBoxNT .form-horizontal .calendarBox .fc-day div>a{color:#333;}
|
||||
/* 캘린더 안 등록 버튼 */
|
||||
.rightBoxNT .form-horizontal .calendarBox .fc-insertButton-button{background-color:#63b3a6; color:#fff; border:0; line-height:23px;}
|
||||
/* 캘린더 안 다음달 버튼 */
|
||||
.rightBoxNT .form-horizontal .calendarBox .fc-next-button{margin:0;}
|
||||
/* 캘린더 안 제목(년월) */
|
||||
.rightBoxNT .form-horizontal .calendarBox .fc-toolbar-title{display:inline-block; vertical-align:middle; margin:0 30px;}
|
||||
/* 캘린더 안 이벤트 백그라운드 기본값 */
|
||||
.rightBoxNT .form-horizontal .calendarBox .fc-h-event{background:none;border:0;}
|
||||
/* 일정 커서 */
|
||||
.rightBoxNT .form-horizontal .calendarBox .fc-event-main-frame{cursor: pointer;}
|
||||
|
||||
|
||||
/* */
|
||||
.ag-header-cell-label {
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.ag-theme-alpine .ag-ltr .ag-cell{
|
||||
text-align: center;font-size: 12px;padding:0;line-height: 30px;
|
||||
}
|
||||
.ag-theme-balham .ag-ltr .ag-cell{
|
||||
text-align: center;font-size: 12px;padding:0;line-height: 30px;
|
||||
}
|
||||
|
||||
.ag-theme-balham .ag-header-cell{
|
||||
padding: 4px 18px;
|
||||
}
|
||||
|
||||
.ag-selection-checkbox{
|
||||
padding: 7px 17px;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
/*반응형 View*/
|
||||
@media only screen and (max-width: 1577px) {
|
||||
.rightBoxNT .form-horizontal .pageDateInput{width:42%;}
|
||||
}
|
||||
@media only screen and (max-width: 1376px) {
|
||||
.left-menu {left:-200px;}
|
||||
.rightBoxNT {left:0; width:calc(1376px - 20px);}
|
||||
|
||||
/* 모바일 햄버거 메뉴 관련 joy추가 */
|
||||
html.open {overflow:hidden;}
|
||||
#leftMenu.open {left:0px;}
|
||||
.page_cover.open {display:block;}
|
||||
.page_cover {width:100%; height:100%; position:fixed; top:0px; left:0px; background-color:rgba(0,0,0,0.4); z-index:4; display:none; margin-top:50px;}
|
||||
|
||||
.tapNav {width:calc(1376px - 20px); left:0;}
|
||||
|
||||
}
|
||||
|
||||
@media only screen and (max-width:1200px) {
|
||||
|
||||
.rightBoxNT {left:0; width:calc(1200px - 20px);}
|
||||
.tapNav {width:calc(1200px - 20px);}
|
||||
}
|
||||
|
||||
@media only screen and (max-width:1024px) {
|
||||
}
|
||||
|
||||
@media only screen and (max-width:768px) {
|
||||
}
|
||||
|
||||
@media only screen and (max-width:596px) {
|
||||
}
|
||||
|
||||
@media only screen and (max-width:414px) {
|
||||
}
|
||||
|
||||
@media only screen and (max-width:375px) {
|
||||
}
|
||||
|
||||
@media only screen and (max-width:360px) {
|
||||
}
|
||||
|
||||
@media only screen and (max-width:320px) {
|
||||
}
|
||||
91
src/main/resources/static/css/admin/common_styles.css
Normal file
91
src/main/resources/static/css/admin/common_styles.css
Normal file
@@ -0,0 +1,91 @@
|
||||
/* common.css 수정금지 */
|
||||
/* 새로 css 추가시 어느 페이지에 어디위치인지 표시할것 */
|
||||
/* 기존 css 수정시 여기다가 수정할것 */
|
||||
|
||||
|
||||
/* bradley 추가 시작 */
|
||||
.rightBoxNT {top:90px; min-height:calc(100vh - 90px);}
|
||||
.tapNav .tabWrap .tabList .tabContainer {height:40px;}
|
||||
/* 등록,수정페이지_인풋 width 125 */
|
||||
.rightBoxNT .form-horizontal .pageWrapInput.width125 {width:125px;}
|
||||
|
||||
/* 상세페이지 파일 다운로드 링크 display:none; 추가 */
|
||||
.rightBoxNT .download-file {display:none;}
|
||||
|
||||
/* 질문 상세 수정 삭제 버튼 위치 수정 후 margin 변경 */
|
||||
.rightBoxNT .form-horizontal .openList li .titleBox .timeBox .open-revise {margin: 0 7px 0 0;}
|
||||
.rightBoxNT .form-horizontal .openList li .titleBox .timeBox .open-delete {margin: 0 7px 0 0;}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
/*상세검색*/
|
||||
.rightBoxNT .form-horizontal .btnWhite.open svg {transform:rotate(180deg);}
|
||||
|
||||
/*접속로그 기준일*/
|
||||
.rightBoxNT .listNav .numberBox .number.n-colorRed {color:red;font-size:12px;}
|
||||
.rightBoxNT .listNav .numberBox .number.n-colorRed span {color:red;}
|
||||
|
||||
|
||||
.page_cover {width:100%; height:100%; position:fixed; top:0; left:0; background-color:rgba(0,0,0,0.4); z-index:4; display:none;}
|
||||
.page_cover.open {display:block;}
|
||||
|
||||
/*첨부파일 확장자*/
|
||||
.rightBoxNT .input-file .fileExt {color:red; padding-left:10px;}
|
||||
|
||||
.rightBoxNT .form-horizontal .form-group .width50, .rightBoxNT .form-horizontal .form-group50 .width50 {width:42%; padding:5px;}
|
||||
.rightBoxNT .form-horizontal .form-group .width100, .rightBoxNT .form-horizontal .form-group50 .width100 {width:100%; padding:5px;}
|
||||
.rightBoxNT .detailsBox {display:table;}
|
||||
|
||||
/* 탭 상단 사용자 접속 정보 */
|
||||
.leftBtnWrap {float: left; padding:10px 0; margin:0 10px 0 0; list-style:none;}
|
||||
.leftBtnWrap li .tapUser {float: left; margin:0; margin-left:6px; border:none; padding:0 5px; border-radius:0.267rem; box-shadow:none; display:block;}
|
||||
.leftBtnWrap li .tapUser p {text-shadow:none; line-height:30px; text-align:center; color:#fff;}
|
||||
.leftBtnWrap li .tapUser .tapUserName {float: right; font-size:13px; }
|
||||
.leftBtnWrap li .tapUser .tapSessionTime {width: 50px; float: left; font-size:15px; font-weight: 800;}
|
||||
.leftBtnWrap .btnSession {width:60px; margin:0 10px; text-shadow:none; border:none; padding:0 5px; border-radius:0.267rem; box-shadow:none; line-height:30px; font-size:13px;}
|
||||
/* 메인컬러_버튼 */
|
||||
.leftBtnWrap .btnMain {background:#377ec1; color:#fff;}
|
||||
|
||||
/* 검색버튼 */
|
||||
.rightBoxNT .form-horizontal .search_box {float:left; padding:5px 0 5px 5px;}
|
||||
.rightBoxNT .form-horizontal .search_box .search_btn {border-color:#e6e6e6; color:#333; height:30px; padding:0 10px; font-size:13px; font-weight:400; line-height:1.42857143; border-radius:4px; background:#377ec1; border:none;}
|
||||
.rightBoxNT .form-horizontal .search_box .search_btn:hover, .rightBoxNT .search_box .search_btn:focus {background:#7caad7;}
|
||||
.rightBoxNT .form-horizontal .search_box .search_btn img {position:relative; top:-1px;}
|
||||
.rightBoxNT .form-horizontal .search_box .search_delete_btn {border-color:#e6e6e6; color:#333; height:30px; padding:0 10px; font-size:13px; font-weight:400; line-height:1.42857143; border-radius:4px; background:#fc5083; border:none;display: none;}
|
||||
.rightBoxNT .form-horizontal .search_box .search_delete_btn:hover, .rightBoxNT .search_box .search_btn:focus {background:#fc5083;}
|
||||
.rightBoxNT .form-horizontal .search_box .search_delete_btn img {position:relative; top:-1px;}
|
||||
|
||||
/* 그래프 스타일 추가 */
|
||||
.rightBoxNT .basicScroll table td.graphBar {padding:0 5px;}
|
||||
.rightBoxNT .basicScroll table td.graphBar div {height:15px; background-color:#377ec1; opacity:0.4; position:relative; cursor:pointer;}
|
||||
/* bradley 추가 종료 */
|
||||
|
||||
/* emily 추가 시작 */
|
||||
/* 일괄등록 가이드박스 */
|
||||
.rightBoxNT .form-list .guideBox {padding:10px 15px; margin-bottom:15px; border:1px solid #e6e6e6;}
|
||||
.rightBoxNT .form-list .guideBox p {font-size:15px; font-weight:700;}
|
||||
.rightBoxNT .form-list .guideBox ul {padding:0; margin:0; list-style:none;}
|
||||
.rightBoxNT .form-list .guideBox ul li {list-style:inside;}
|
||||
.rightBoxNT .form-list .guideBox .txtBold {font-weight: 800;}
|
||||
.rightBoxNT .form-list .number {line-height:30px; margin:0; display:inline-block;}
|
||||
|
||||
|
||||
.rightBoxNT .listNav .numberBox .number .r-color {color:red; padding-left:3px;}
|
||||
|
||||
/* 로고 등록 이미지 박스 사이즈 조절*/
|
||||
.rightBoxNT .form-horizontal .imgBox2 {width:300px; height:60px; padding:0; float:left; margin-right:10px;}
|
||||
.rightBoxNT .form-horizontal .img-300 {border:1px solid #dee2e6; width:300px; height:60px; background:none; color:#3e3f3a;}
|
||||
.rightBoxNT .form-horizontal .img-300:hover{background:none;border:1px solid #dee2e6;box-shadow:none;}
|
||||
|
||||
/* 수정 권한 없을 때 summernote대신 */
|
||||
.rightBoxNT .form-horizontal .textarea_content {height: 200px; overflow-y: auto; background:rgba(238, 242, 247, .6);}
|
||||
|
||||
/* 빨간색 버튼 */
|
||||
.rightBoxNT .btnRed {background:#c50049; color:#fff;}
|
||||
.rightBoxNT .btnRed:hover {background:#bb0045;}
|
||||
|
||||
/* 등록,수정페이지 글자수 카운트 */
|
||||
.rightBoxNT .form-horizontal .sideText {line-height:30px; color:#97989b; position:relative; left:5px; bottom:-5px;}
|
||||
/* emily 추가 종료 */
|
||||
@@ -0,0 +1,101 @@
|
||||
/************* 기본영역 정의 *************/
|
||||
|
||||
* { margin: 0; font-family: "궁서체"; box-sizing: border-box; color:#333; }
|
||||
|
||||
/************* page *************/
|
||||
.page { width:250mm; height:353mm; padding:120px 120px; /*background:url('../../image/admin/print/bg2.png')no-repeat 50% 50%;*/ background-size:100%; }
|
||||
.page .content_wrap { width:685px; height:100%; text-align:center; position:relative; }
|
||||
.page .content_wrap p.top { font-size:30px; letter-spacing:-1px; position:absolute; top:70px; left:70px; }
|
||||
.page .content_wrap .top_box { padding-top:150px; }
|
||||
.page .content_wrap .top_box h1 { font-size:60px; text-align:center; letter-spacing:35px; }
|
||||
.page .content_wrap .top_box .info_box { margin-top:30px; padding:0 100px; text-align:left; position:relative; }
|
||||
.page .content_wrap .top_box .info_box ul { padding:0; margin-top:10px; display:inline-block; }
|
||||
.page .content_wrap .top_box .info_box ul li { margin-top:20px; display:flex; }
|
||||
.page .content_wrap .top_box .info_box ul li label { font-size:30px; letter-spacing:10px; }
|
||||
.page .content_wrap .top_box .info_box ul li p { font-size:30px; letter-spacing:10px; }
|
||||
.page .content_wrap .top_box .info_box .img_box { width:105px; height:135px; position:absolute; top:0; right:100px; }
|
||||
.page .content_wrap .top_box .info_box .img_box img { width:100%; }
|
||||
.page .content_wrap p.article { margin-top:100px; font-size:33px; letter-spacing:1px; line-height:55px; text-align:left; display:inline-block; }
|
||||
.page .content_wrap p.date { margin-top:70px; font-size:33px; letter-spacing:1px; }
|
||||
.page .content_wrap .btm_box { margin-top:110px; }
|
||||
.page .content_wrap .btm_box p { margin-left:170px; font-size:21px; display:inline-block; }
|
||||
.page .content_wrap .btm_box p span { letter-spacing:10px; }
|
||||
.page .content_wrap .btm_box p span.narrow { letter-spacing:-5px; }
|
||||
.page .content_wrap .btm_box p span.siz { font-size:35px; }
|
||||
.page .content_wrap .btm_box img { width:400px; margin-left:175px; }
|
||||
|
||||
@media print {
|
||||
@page {
|
||||
size:250mm 353mm;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
* {
|
||||
-webkit-print-color-adjust: exact !important;
|
||||
color-adjust: exact !important;
|
||||
print-color-adjust: exact !important;
|
||||
}
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Pretendard';
|
||||
font-weight: 900;
|
||||
font-display: swap;
|
||||
src: local('Pretendard Black'), url(../../font/admin/Pretendard-Black.woff2) format('woff2'), url(../../font/admin/Pretendard-Black.woff) format('woff');
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Pretendard';
|
||||
font-weight: 800;
|
||||
font-display: swap;
|
||||
src: local('Pretendard ExtraBold'), url(../../font/admin/Pretendard-ExtraBold.woff2) format('woff2'), url(../../font/admin/Pretendard-ExtraBold.woff) format('woff');
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Pretendard';
|
||||
font-weight: 700;
|
||||
font-display: swap;
|
||||
src: local('Pretendard Bold'), url(../../font/admin/Pretendard-Bold.woff2) format('woff2'), url(../../font/admin/Pretendard-Bold.woff) format('woff');
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Pretendard';
|
||||
font-weight: 600;
|
||||
font-display: swap;
|
||||
src: local('Pretendard SemiBold'), url(../../font/admin/Pretendard-SemiBold.woff2) format('woff2'), url(../../font/admin/Pretendard-SemiBold.woff) format('woff');
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Pretendard';
|
||||
font-weight: 500;
|
||||
font-display: swap;
|
||||
src: local('Pretendard Medium'), url(../../font/admin/Pretendard-Medium.woff2) format('woff2'), url(../../font/admin/Pretendard-Medium.woff) format('woff');
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Pretendard';
|
||||
font-weight: 400;
|
||||
font-display: swap;
|
||||
src: local('Pretendard Regular'), url(../../font/admin/Pretendard-Regular.woff2) format('woff2'), url(../../font/admin/Pretendard-Regular.woff) format('woff');
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Pretendard';
|
||||
font-weight: 300;
|
||||
font-display: swap;
|
||||
src: local('Pretendard Light'), url(../../font/admin/Pretendard-Light.woff2) format('woff2'), url(../../font/admin/Pretendard-Light.woff) format('woff');
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Pretendard';
|
||||
font-weight: 200;
|
||||
font-display: swap;
|
||||
src: local('Pretendard ExtraLight'), url(../../font/admin/Pretendard-ExtraLight.woff2) format('woff2'), url(../../font/admin/Pretendard-ExtraLight.woff) format('woff');
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Pretendard';
|
||||
font-weight: 100;
|
||||
font-display: swap;
|
||||
src: local('Pretendard Thin'), url(../../font/admin/Pretendard-Thin.woff2) format('woff2'), url(../../font/admin/Pretendard-Thin.woff) format('woff');
|
||||
}
|
||||
104
src/main/resources/static/css/admin/curriculumCompletePrint.css
Normal file
104
src/main/resources/static/css/admin/curriculumCompletePrint.css
Normal file
@@ -0,0 +1,104 @@
|
||||
/************* 기본영역 정의 *************/
|
||||
|
||||
* { margin: 0; font-family: "궁서체"; box-sizing: border-box; color:#333; }
|
||||
|
||||
/************* page *************/
|
||||
.page { width:210mm; height:297mm; padding: 1.5cm 1.5cm 2cm 1.5cm;}
|
||||
.page .content_wrap { width:685px; height:100%; text-align:center; position:relative; }
|
||||
.page .content_wrap p.top { font-size:30px; letter-spacing:-1px; position:absolute; top:70px; left:70px; }
|
||||
.page .content_wrap .top_box { padding-top:150px; }
|
||||
.page .content_wrap .top_box h1 { font-size:60px; text-align:center; letter-spacing:35px; }
|
||||
.page .content_wrap .top_box .info_box { margin-top:30px; padding:0 100px; text-align:left; position:relative; }
|
||||
.page .content_wrap .top_box .info_box ul { padding:0; margin-top:10px; display:inline-block; }
|
||||
.page .content_wrap .top_box .info_box ul li { margin-top:20px; display:flex; }
|
||||
.page .content_wrap .top_box .info_box ul li label { font-size:30px; letter-spacing:10px; }
|
||||
.page .content_wrap .top_box .info_box ul li p { font-size:30px; letter-spacing:10px; }
|
||||
.page .content_wrap .top_box .info_box .img_box { width:105px; height:135px; position:absolute; top:0; right:100px; }
|
||||
.page .content_wrap .top_box .info_box .img_box img { width:100%; }
|
||||
.page .content_wrap p.article { margin-top:100px; font-size:33px; letter-spacing:1px; line-height:70px; text-align:left; display:inline-block; }
|
||||
.page .content_wrap p.date { margin-top:135px; font-size:33px; letter-spacing:1px; }
|
||||
.page .content_wrap .btm_box { margin-top:60px; }
|
||||
.page .content_wrap .btm_box p { margin-left:170px; font-size:21px; display:inline-block; }
|
||||
.page .content_wrap .btm_box p span { letter-spacing:10px; }
|
||||
.page .content_wrap .btm_box p span.narrow { letter-spacing:-5px; }
|
||||
.page .content_wrap .btm_box p span.siz { font-size:35px; }
|
||||
.page .content_wrap .btm_box img { width:400px; margin-left:175px; }
|
||||
|
||||
@page {
|
||||
size: A4;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
|
||||
@media print {
|
||||
* {
|
||||
-webkit-print-color-adjust: exact !important;
|
||||
color-adjust: exact !important;
|
||||
print-color-adjust: exact !important;
|
||||
}
|
||||
|
||||
html, body { width:210mm; height:297mm; }
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Pretendard';
|
||||
font-weight: 900;
|
||||
font-display: swap;
|
||||
src: local('Pretendard Black'), url(../../font/admin/Pretendard-Black.woff2) format('woff2'), url(../../font/admin/Pretendard-Black.woff) format('woff');
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Pretendard';
|
||||
font-weight: 800;
|
||||
font-display: swap;
|
||||
src: local('Pretendard ExtraBold'), url(../../font/admin/Pretendard-ExtraBold.woff2) format('woff2'), url(../../font/admin/Pretendard-ExtraBold.woff) format('woff');
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Pretendard';
|
||||
font-weight: 700;
|
||||
font-display: swap;
|
||||
src: local('Pretendard Bold'), url(../../font/admin/Pretendard-Bold.woff2) format('woff2'), url(../../font/admin/Pretendard-Bold.woff) format('woff');
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Pretendard';
|
||||
font-weight: 600;
|
||||
font-display: swap;
|
||||
src: local('Pretendard SemiBold'), url(../../font/admin/Pretendard-SemiBold.woff2) format('woff2'), url(../../font/admin/Pretendard-SemiBold.woff) format('woff');
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Pretendard';
|
||||
font-weight: 500;
|
||||
font-display: swap;
|
||||
src: local('Pretendard Medium'), url(../../font/admin/Pretendard-Medium.woff2) format('woff2'), url(../../font/admin/Pretendard-Medium.woff) format('woff');
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Pretendard';
|
||||
font-weight: 400;
|
||||
font-display: swap;
|
||||
src: local('Pretendard Regular'), url(../../font/admin/Pretendard-Regular.woff2) format('woff2'), url(../../font/admin/Pretendard-Regular.woff) format('woff');
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Pretendard';
|
||||
font-weight: 300;
|
||||
font-display: swap;
|
||||
src: local('Pretendard Light'), url(../../font/admin/Pretendard-Light.woff2) format('woff2'), url(../../font/admin/Pretendard-Light.woff) format('woff');
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Pretendard';
|
||||
font-weight: 200;
|
||||
font-display: swap;
|
||||
src: local('Pretendard ExtraLight'), url(../../font/admin/Pretendard-ExtraLight.woff2) format('woff2'), url(../../font/admin/Pretendard-ExtraLight.woff) format('woff');
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Pretendard';
|
||||
font-weight: 100;
|
||||
font-display: swap;
|
||||
src: local('Pretendard Thin'), url(../../font/admin/Pretendard-Thin.woff2) format('woff2'), url(../../font/admin/Pretendard-Thin.woff) format('woff');
|
||||
}
|
||||
33
src/main/resources/static/css/admin/dashboard.css
Normal file
33
src/main/resources/static/css/admin/dashboard.css
Normal file
@@ -0,0 +1,33 @@
|
||||
|
||||
/* dashboard */
|
||||
.rightBoxNT {background:#e6efeb; min-height:calc(100vh - 50px); padding:10px;}
|
||||
.rightBoxNT .content_box {display:table; width:100%; padding:20px;}
|
||||
.rightBoxNT .content_box .content_top {list-style:none; padding:0; margin:0; margin-bottom:30px; display:table; width:100%;}
|
||||
.rightBoxNT .content_box .content_top li {float:left; width:calc((100% / 3) - 20px); border:solid 1px #e6e6e6; border-radius:4px; background:#fff;}
|
||||
.rightBoxNT .content_box .content_top li:nth-child(2) {margin:0 30px;}
|
||||
.rightBoxNT .content_box .content_top li .title {font-size:13px; font-weight:700; padding:0 20px; line-height:50px; border-bottom:solid 1px #e6e6e6; margin:0; color:#000; position:relative;}
|
||||
.rightBoxNT .content_box .content_top li .text_box {padding:0 20px; position:relative; height:100px;}
|
||||
.rightBoxNT .content_box .content_top li .text_box .user {font-size:28px; font-weight:700; margin:0; line-height: 150px;}
|
||||
.rightBoxNT .content_box .content_top li .text_box .money_box {position:absolute; top:50%; transform:translateY(-50%); width:calc(100% - 40px);}
|
||||
.rightBoxNT .content_box .content_top li .text_box .money_box .temp {float:left; width:calc(100% / 3); text-align:center;}
|
||||
.rightBoxNT .content_box .content_top li .text_box .money_box .money_title {font-size:15px; font-weight:700; margin:0; line-height:25px;}
|
||||
.rightBoxNT .content_box .content_top li .text_box .money_box .money_content {font-size:15px; font-weight:700; margin:0; line-height:25px; color:#377ec1;}
|
||||
.rightBoxNT .content_box .content_top li .text_box .money_box .money_content span {color:#377ec1;}
|
||||
|
||||
.rightBoxNT .content_box .content_top li .title svg {width:25px; height:25px; position:absolute; top:50%; right:25px; transform:translateY(-50%); color:#377ec1;}
|
||||
|
||||
|
||||
|
||||
.rightBoxNT .content_box .content_bottom {list-style:none; padding:0; margin:0; margin-bottom:30px; display:table; width:100%;}
|
||||
.rightBoxNT .content_box .content_bottom li {float:left; width:calc((100% / 3) - 20px); border:solid 1px #e6e6e6; border-radius:4px; background:#fff;}
|
||||
.rightBoxNT .content_box .content_bottom li:nth-child(2) {margin:0 30px;}
|
||||
.rightBoxNT .content_box .content_bottom li .notice_warp {}
|
||||
.rightBoxNT .content_box .content_bottom li .notice_warp .title {font-size:13px; font-weight:700; padding:0 20px; line-height:50px; border-bottom:solid 1px #e6e6e6; margin:0; color:#000;}
|
||||
.rightBoxNT .content_box .content_bottom li .notice_warp .title a {float:right; font-size:13px; color:#377ec1;}
|
||||
.rightBoxNT .content_box .content_bottom li .notice_warp .title a:hover {color:#27885f;}
|
||||
.rightBoxNT .content_box .content_bottom li .notice_warp .list_box {padding:0 10px;}
|
||||
|
||||
|
||||
.rightBoxNT .content_box .content_bottom li .notice_warp .list_box .list {display:table; width:100%; padding:0; margin:0; list-style:none; min-height:394px;}
|
||||
.rightBoxNT .content_box .content_bottom li .notice_warp .list_box .list li {width:100%; float:unset; border:none; border-top:solid 1px #e6e6e6; border-radius:0; background:unset; margin:0; padding:10px; font-size:13px; cursor:pointer;}
|
||||
.rightBoxNT .content_box .content_bottom li .notice_warp .list_box .list li:first-child {border-top:none;}
|
||||
83
src/main/resources/static/css/admin/error.css
Normal file
83
src/main/resources/static/css/admin/error.css
Normal file
@@ -0,0 +1,83 @@
|
||||
/*반응형 View*/
|
||||
@media (min-width: 768px){
|
||||
.carousel-caption {width:70%;}
|
||||
}
|
||||
|
||||
@media (min-width: 992px){
|
||||
.carousel-caption {width:70%;}
|
||||
}
|
||||
|
||||
@media (min-width: 1200px){
|
||||
.carousel-caption {width:60%;}
|
||||
}
|
||||
|
||||
/*홈네비*/
|
||||
#header #menu a {color:#fff;}
|
||||
#header #menu a:hover {color:#6487c2;}
|
||||
.header {background:#00000021;}
|
||||
.header {background:none;}
|
||||
.header .logo {color:#333;}
|
||||
|
||||
/*error*/
|
||||
.error {/* margin-top:80px; */ height:889px; width:100%;}
|
||||
.error .normal {position:absolute; top:50%; transform:translatey(-50%); width:100%; left:0; right:0;}
|
||||
.error .normal .btn{background:#23527c; width:230px; position:relative; left:50%; margin-left:-115px; border-radius:4px; padding:5px; color:#fff; top:30px;}
|
||||
.error .normal .img {position:relative; left:50%; margin-left:-250px; margin-top:100px; width:500px;}
|
||||
.error .normal .img img {width:100%;}
|
||||
|
||||
|
||||
/*텍스트*/
|
||||
.font-title1 {font-size:60px;}
|
||||
.font-title2 {font-size:24px;}
|
||||
.font-title3 {font-size:22px;}
|
||||
.font-title4 {font-size:22px;}
|
||||
.font-title5 {font-size:16px;}
|
||||
|
||||
.wh {color:#fff;}
|
||||
.gy {color:#878890;}
|
||||
.bk {color:#333;}
|
||||
.main-title {color:#56585a;}
|
||||
.sub-title {color:#86939e;}
|
||||
.color-title {color:#6487c2;}
|
||||
.wh-subtitle {color:#cccccc;}
|
||||
|
||||
.tac {text-align:center;}
|
||||
.tal {text-align:left;}
|
||||
.tar {text-align:right;}
|
||||
.fl {float:left;}
|
||||
.fr {float:right;}
|
||||
.line-none1 {display:-webkit-box; overflow:hidden; -webkit-box-orient:vertical; word-break:break-all; -webkit-line-clamp:1;}
|
||||
.mg0 {margin:0;}
|
||||
.pd0 {padding:0;}
|
||||
.bd {font-weight:bold;}
|
||||
|
||||
|
||||
|
||||
/*반응형 View*/
|
||||
@media only screen and (max-width:1220px) {
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 1024px){
|
||||
}
|
||||
|
||||
@media only screen and (max-width:768px) {
|
||||
}
|
||||
|
||||
@media only screen and (max-width:596px) {
|
||||
}
|
||||
|
||||
@media only screen and (max-width:516px) {
|
||||
}
|
||||
|
||||
@media only screen and (max-width:414px) {
|
||||
.error .normal .img {margin-left:-150px; width:300px; margin-top:50px;}
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 375px){
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 360px){
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 320px){
|
||||
}
|
||||
62
src/main/resources/static/css/admin/font.css
Normal file
62
src/main/resources/static/css/admin/font.css
Normal file
@@ -0,0 +1,62 @@
|
||||
@font-face {
|
||||
font-family: 'Pretendard';
|
||||
font-weight: 900;
|
||||
font-display: swap;
|
||||
src: local('Pretendard Black'), url(/font/admin/Pretendard-Black.woff2) format('woff2'), url(/font/admin/Pretendard-Black.woff) format('woff');
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Pretendard';
|
||||
font-weight: 800;
|
||||
font-display: swap;
|
||||
src: local('Pretendard ExtraBold'), url(/font/admin/Pretendard-ExtraBold.woff2) format('woff2'), url(/font/admin/Pretendard-ExtraBold.woff) format('woff');
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Pretendard';
|
||||
font-weight: 700;
|
||||
font-display: swap;
|
||||
src: local('Pretendard Bold'), url(/font/admin/Pretendard-Bold.woff2) format('woff2'), url(/font/admin/Pretendard-Bold.woff) format('woff');
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Pretendard';
|
||||
font-weight: 600;
|
||||
font-display: swap;
|
||||
src: local('Pretendard SemiBold'), url(/font/admin/Pretendard-SemiBold.woff2) format('woff2'), url(/font/admin/Pretendard-SemiBold.woff) format('woff');
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Pretendard';
|
||||
font-weight: 500;
|
||||
font-display: swap;
|
||||
src: local('Pretendard Medium'), url(/font/admin/Pretendard-Medium.woff2) format('woff2'), url(/font/admin/Pretendard-Medium.woff) format('woff');
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Pretendard';
|
||||
font-weight: 400;
|
||||
font-display: swap;
|
||||
src: local('Pretendard Regular'), url(/font/admin/Pretendard-Regular.woff2) format('woff2'), url(/font/admin/Pretendard-Regular.woff) format('woff');
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Pretendard';
|
||||
font-weight: 300;
|
||||
font-display: swap;
|
||||
src: local('Pretendard Light'), url(/font/admin/Pretendard-Light.woff2) format('woff2'), url(/font/admin/Pretendard-Light.woff) format('woff');
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Pretendard';
|
||||
font-weight: 200;
|
||||
font-display: swap;
|
||||
src: local('Pretendard ExtraLight'), url(/font/admin/Pretendard-ExtraLight.woff2) format('woff2'), url(/font/admin/Pretendard-ExtraLight.woff) format('woff');
|
||||
}
|
||||
|
||||
@font-face {
|
||||
font-family: 'Pretendard';
|
||||
font-weight: 100;
|
||||
font-display: swap;
|
||||
src: local('Pretendard Thin'), url(/font/admin/Pretendard-Thin.woff2) format('woff2'), url(/font/admin/Pretendard-Thin.woff) format('woff');
|
||||
}
|
||||
28
src/main/resources/static/css/admin/loadingAnimations2.css
Normal file
28
src/main/resources/static/css/admin/loadingAnimations2.css
Normal file
@@ -0,0 +1,28 @@
|
||||
.loading-image-layer{margin:0; padding:0; background:#fff;}
|
||||
|
||||
.loading-image-layer>ul {position:absolute; top:50%; left:50%; transform:translate(-50%, -50%); margin:0; padding:0; display:flex;}
|
||||
.loading-image-layer>ul li {list-style:none; width:20px; height:20px; background:#c1cbda; margin:0 5px; border-radius:50%; animation:animate 1.4s linear infinite;}
|
||||
@keyframes animate {
|
||||
0%{transform:translateY(0);}
|
||||
60%{transform:translateY(0);}
|
||||
80%{transform:translateY(-20px);}
|
||||
100%{transform:translateY(0);}
|
||||
}
|
||||
.loading-image-layer>ul li:nth-child(1) {animation-delay:0;}
|
||||
.loading-image-layer>ul li:nth-child(2) {animation-delay:-1.2s;}
|
||||
.loading-image-layer>ul li:nth-child(3) {animation-delay:-1s;}
|
||||
.loading-image-layer>ul li:nth-child(4) {animation-delay:-.8s;}
|
||||
.loading-image-layer>ul li:nth-child(5) {animation-delay:-.6s;}
|
||||
|
||||
|
||||
|
||||
|
||||
.loading-image-layer2{margin:0; padding:0; background:#fff;}
|
||||
|
||||
.loading-image-layer2>ul {position:absolute; top:50%; left:50%; transform:translate(-50%, -50%); margin:0; padding:0; display:flex;}
|
||||
.loading-image-layer2>ul li {list-style:none; width:20px; height:20px; background:#c1cbda; margin:0 5px; border-radius:50%; animation:animate 1.4s linear infinite;}
|
||||
.loading-image-layer2>ul li:nth-child(1) {animation-delay:0;}
|
||||
.loading-image-layer2>ul li:nth-child(2) {animation-delay:-1.2s;}
|
||||
.loading-image-layer2>ul li:nth-child(3) {animation-delay:-1s;}
|
||||
.loading-image-layer2>ul li:nth-child(4) {animation-delay:-.8s;}
|
||||
.loading-image-layer2>ul li:nth-child(5) {animation-delay:-.6s;}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user