Initial commit - ARKO (대용량 미디어 파일 제외)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
ythong 2026-06-15 14:24:16 +09:00
commit fde7598b48
6654 changed files with 1264569 additions and 0 deletions

11
.gitignore vendored Normal file
View File

@ -0,0 +1,11 @@
target/
*.mp4
*.avi
*.mov
*.wmv
*.class
.settings/
.project
.classpath
Thumbs.db
.DS_Store

1672
.pmd Normal file

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,3 @@
Manifest-Version: 1.0
Class-Path:

View File

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<display-name>arko</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
</web-app>

821
pom.xml Normal file
View File

@ -0,0 +1,821 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>domains</groupId>
<artifactId>arko</artifactId>
<packaging>war</packaging>
<version>1.0.0</version>
<name>arko</name>
<url>http://maven.apache.org</url>
<properties>
<spring.maven.artifact.version>3.0.5.RELEASE</spring.maven.artifact.version>
</properties>
<repositories>
<repository>
<id>mvn2</id>
<url>http://repo1.maven.org/maven2/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
<repository>
<id>egovframe</id>
<url>https://maven.egovframe.go.kr/maven/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<repository>
<id>oracle</id>
<name>ORACLE JDBC Repository</name>
<url>https://maven.atlassian.com/3rdparty/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>${spring.maven.artifact.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>${spring.maven.artifact.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.maven.artifact.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>${spring.maven.artifact.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.maven.artifact.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${spring.maven.artifact.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>${spring.maven.artifact.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${spring.maven.artifact.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>${spring.maven.artifact.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.maven.artifact.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.maven.artifact.version}</version>
</dependency>
<dependency>
<groupId>egovframework.rte</groupId>
<artifactId>egovframework.rte.fdl.cmmn</artifactId>
<version>2.7.0</version>
</dependency>
<dependency>
<groupId>egovframework.rte</groupId>
<artifactId>egovframework.rte.ptl.mvc</artifactId>
<version>2.7.0</version>
</dependency>
<dependency>
<groupId>egovframework.rte</groupId>
<artifactId>egovframework.rte.psl.dataaccess</artifactId>
<version>2.7.0</version>
</dependency>
<dependency>
<groupId>egovframework.rte</groupId>
<artifactId>egovframework.rte.fdl.idgnr</artifactId>
<version>2.7.0</version>
</dependency>
<dependency>
<groupId>egovframework.rte</groupId>
<artifactId>egovframework.rte.fdl.property</artifactId>
<version>2.7.0</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.6.11</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjrt</artifactId>
<version>1.6.9</version>
</dependency>
<dependency>
<groupId>aopalliance</groupId>
<artifactId>aopalliance</artifactId>
<version>1.0</version>
</dependency>
<dependency>
<groupId>org.apache.ibatis</groupId>
<artifactId>ibatis-sqlmap</artifactId>
<version>2.3.4.726</version>
</dependency>
<dependency>
<groupId>javax.annotation</groupId>
<artifactId>jsr250-api</artifactId>
<version>1.0</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<scope>provided</scope>
<version>2.5</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
<!-- <scope>provided</scope> -->
</dependency>
<dependency>
<groupId>commons-dbcp</groupId>
<artifactId>commons-dbcp</artifactId>
<version>1.3</version>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.1.1</version>
</dependency>
<dependency>
<groupId>commons-beanutils</groupId>
<artifactId>commons-beanutils</artifactId>
<version>1.8.3</version>
</dependency>
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.6</version>
</dependency>
<!-- junit -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.8.1</version>
</dependency>
<!-- DBunit -->
<!-- <dependency> <groupId>org.dbunit</groupId> <artifactId>dbunit</artifactId>
<version>2.4.8</version> </dependency> -->
<!-- EMMA -->
<!-- <dependency> <groupId>emma</groupId> <artifactId>emma</artifactId>
<version>2.1.5320</version> </dependency> -->
<dependency>
<groupId>taglibs</groupId>
<artifactId>standard</artifactId>
<version>1.1.2</version>
</dependency>
<dependency>
<groupId>cglib</groupId>
<artifactId>cglib</artifactId>
<version>2.2</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.5.11</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.5.11</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.3alpha-8</version>
</dependency>
<dependency>
<groupId>net.sf</groupId>
<artifactId>log4jdbc3</artifactId>
<version>1.1</version>
</dependency>
<dependency>
<groupId>org.bgee.log4jdbc-log4j2</groupId>
<artifactId>log4jdbc-log4j2-jdbc4</artifactId>
<version>1.16</version>
</dependency>
<dependency>
<groupId>hsqldb</groupId>
<artifactId>hsqldb</artifactId>
<version>1.8.0.10</version>
</dependency>
<dependency>
<groupId>org.easymock</groupId>
<artifactId>easymock</artifactId>
<version>3.0</version>
</dependency>
<dependency>
<groupId>commons-collections</groupId>
<artifactId>commons-collections</artifactId>
<version>3.2.1</version>
</dependency>
<dependency>
<groupId>commons-digester</groupId>
<artifactId>commons-digester</artifactId>
<version>1.8</version>
</dependency>
<dependency>
<groupId>org.antlr</groupId>
<artifactId>antlr</artifactId>
<version>3.4</version>
</dependency>
<dependency>
<groupId>org.springframework.webflow</groupId>
<artifactId>org.springframework.webflow</artifactId>
<version>2.0.0.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-core</artifactId>
<version>2.0.4</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-taglibs</artifactId>
<version>2.0.4</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-acl</artifactId>
<version>2.0.4</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-core-tiger</artifactId>
<version>2.0.4</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>3.4.0.GA</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</exclusion>
<exclusion>
<groupId>commons-collections</groupId>
<artifactId>commons-collections</artifactId>
</exclusion>
<exclusion>
<groupId>antlr</groupId>
<artifactId>antlr</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-annotations</artifactId>
<version>3.4.0.GA</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>commons-pool</groupId>
<artifactId>commons-pool</artifactId>
<version>1.5.6</version>
</dependency>
<dependency>
<groupId>commons-validator</groupId>
<artifactId>commons-validator</artifactId>
<version>1.3.1</version>
</dependency>
<dependency>
<groupId>org.springmodules</groupId>
<artifactId>spring-modules-validation</artifactId>
<version>0.9</version>
</dependency>
<dependency>
<groupId>commons-vfs</groupId>
<artifactId>commons-vfs</artifactId>
<version>1.0</version>
</dependency>
<dependency>
<groupId>egovframework.rte</groupId>
<artifactId>egovframework.rte.fdl.string</artifactId>
<version>2.7.0</version>
</dependency>
<dependency>
<groupId>egovframework.rte</groupId>
<artifactId>egovframework.rte.fdl.security</artifactId>
<version>2.7.0</version>
</dependency>
<dependency>
<groupId>egovframework.rte</groupId>
<artifactId>egovframework.rte.fdl.excel</artifactId>
<version>2.7.0</version>
</dependency>
<dependency>
<groupId>org.jasypt</groupId>
<artifactId>jasypt</artifactId>
<version>1.7</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-compress</artifactId>
<version>1.1</version>
</dependency>
<dependency>
<groupId>xerces</groupId>
<artifactId>xercesImpl</artifactId>
<version>2.10.0</version>
</dependency>
<!-- <dependency>
<groupId>net.sf.ehcache</groupId>
<artifactId>ehcache-core</artifactId>
<version>2.4.1</version>
</dependency> -->
<dependency>
<groupId>net.sf.ehcache</groupId>
<artifactId>ehcache-terracotta</artifactId>
<version>2.1.1</version>
</dependency>
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>1.8.5</version>
</dependency>
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz-oracle</artifactId>
<version>1.8.5</version>
</dependency>
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz-weblogic</artifactId>
<version>1.8.5</version>
</dependency>
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz-jboss</artifactId>
<version>1.8.5</version>
</dependency>
<dependency>
<groupId>oro</groupId>
<artifactId>oro</artifactId>
<version>2.0.8</version>
</dependency>
<dependency>
<groupId>com.ibm.icu</groupId>
<artifactId>icu4j</artifactId>
<version>4.8</version>
</dependency>
<dependency>
<groupId>commons-net</groupId>
<artifactId>commons-net</artifactId>
<version>3.0.1</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-email</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>egovframework.com.ems</groupId>
<artifactId>sndng-mail</artifactId>
<version>1.0</version>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>ldapsdk</groupId>
<artifactId>ldapsdk</artifactId>
<version>4.1</version>
</dependency>
<dependency>
<groupId>com.artofsolving</groupId>
<artifactId>jodconverter</artifactId>
<version>2.2.1</version>
</dependency>
<!--
<dependency>
<groupId>xmlbeans</groupId>
<artifactId>xmlbeans</artifactId>
<version>2.2.0</version>
</dependency>
-->
<dependency>
<groupId>xmlbeans</groupId>
<artifactId>xmlbeans</artifactId>
<version>2.3.0</version>
</dependency>
<!--
<dependency>
<groupId>xmlbeans</groupId>
<artifactId>xbean</artifactId>
<version>2.2.0</version>
</dependency>
-->
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>1.3.1</version>
</dependency>
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.2.1</version>
</dependency>
<dependency>
<groupId>org.twitter4j</groupId>
<artifactId>twitter4j-core</artifactId>
<version>2.1.3</version>
</dependency>
<dependency>
<groupId>net.sourceforge.ajaxtags</groupId>
<artifactId>ajaxtags</artifactId>
<version>1.5-beta-0.2</version>
</dependency>
<dependency>
<groupId>org.apache.xmlgraphics</groupId>
<artifactId>batik-ext</artifactId>
<version>1.7</version>
</dependency>
<!-- 2025.05.14 나혁제 드라이버 버전 수정
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.17</version>
</dependency>
-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.20</version>
</dependency>
<dependency>
<groupId>kr.go.mgov</groupId>
<artifactId>smeapi</artifactId>
<version>2.7</version>
<scope>system</scope>
<systemPath>${project.basedir}/src/main/webapp/WEB-INF/lib/smeapi_2_7.jar</systemPath>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.1</version>
</dependency>
<dependency>
<groupId>org.imgscalr</groupId>
<artifactId>imgscalr-lib</artifactId>
<version>4.2</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.jdom</groupId>
<artifactId>jdom2</artifactId>
<version>2.0.5</version>
</dependency>
<!-- <dependency> <groupId>com.oracle</groupId> <artifactId>ojdbc14</artifactId>
<version>10.2.0.4.0</version> </dependency> -->
<!--
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc6</artifactId>
<version>12.1.0.1-atlassian-hosted</version>
</dependency>
-->
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc14</artifactId>
<version>10.2.0.4.0</version>
<scope>system</scope>
<systemPath>${basedir}/src/main/webapp/WEB-INF/lib/ojdbc14-10.2.0.4.0.jar</systemPath>
</dependency>
<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>javase</artifactId>
<version>3.2.1</version>
</dependency>
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>1.9.13</version>
</dependency>
<!-- jaxb -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-oxm</artifactId>
<version>4.3.7.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-oxm</artifactId>
<version>3.0.5.RELEASE</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.3.6</version>
</dependency>
<dependency>
<groupId>com.googlecode.json-simple</groupId>
<artifactId>json-simple</artifactId>
<version>1.1</version>
</dependency>
<dependency>
<groupId>eightbyte.touchandprove</groupId>
<artifactId>touchandprove</artifactId>
<version>1.3</version>
<scope>system</scope>
<systemPath>${project.basedir}/src/main/webapp/WEB-INF/lib/touchandprove-1.3.0-server.jar</systemPath>
</dependency>
<dependency>
<groupId>org.json</groupId>
<artifactId>json-java</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>${project.basedir}/src/main/webapp/WEB-INF/lib/JSON-java.jar</systemPath>
</dependency>
<dependency>
<groupId>backport-util-concurrent</groupId>
<artifactId>backport-util-concurrent</artifactId>
<version>3.1</version>
</dependency>
</dependencies>
<build>
<defaultGoal>install</defaultGoal>
<directory>${project.basedir}/target</directory>
<finalName>arko</finalName>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.7</source>
<target>1.7</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>hibernate3-maven-plugin</artifactId>
<version>2.1</version>
<configuration>
<components>
<component>
<name>hbm2ddl</name>
<implementation>annotationconfiguration</implementation>
</component>
</components>
</configuration>
<dependencies>
<dependency>
<groupId>hsqldb</groupId>
<artifactId>hsqldb</artifactId>
<version>1.8.0.7</version>
</dependency>
</dependencies>
</plugin>
<!-- EMMA -->
<!-- <plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>emma-maven-plugin</artifactId>
<version>1.0-alpha-1</version>
</plugin> -->
<!-- PMD manven plugin -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<version>2.4</version>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<!-- EMMA -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<skipTests>false</skipTests>
<forkMode>once</forkMode>
<reportFormat>xml</reportFormat>
<excludes>
<exclude>**/Abstract*.java</exclude>
<exclude>**/*Suite.java</exclude>
</excludes>
<includes>
<include>**/*Test.java</include>
</includes>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>emma-maven-plugin</artifactId>
<version>1.0-alpha-1</version>
<inherited>true</inherited>
</plugin>
<!-- JavaDoc -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.5</version>
</plugin>
</plugins>
</build>
<reporting>
<outputDirectory>${project.basedir}/target/site</outputDirectory>
<plugins>
<plugin>
<artifactId>maven-project-info-reports-plugin</artifactId>
<version>2.0.1</version>
<reportSets>
<reportSet>
<id>sunlink</id>
<reports>
<report>javadoc</report>
</reports>
<inherited>true</inherited>
<configuration>
<links>
<link>http://java.sun.com/j2se/1.5.0/docs/api/</link>
</links>
</configuration>
</reportSet>
</reportSets>
</plugin>
<!-- JUnit Test Results & EMMA Coverage Reporting -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>emma-maven-plugin</artifactId>
<inherited>true</inherited>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>surefire-report-maven-plugin</artifactId>
<inherited>true</inherited>
<reportSets>
<reportSet>
<reports>
<report>report-only</report>
</reports>
</reportSet>
</reportSets>
</plugin>
<!-- PMD manven plugin -->
<!-- <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-pmd-plugin</artifactId>
<version>2.4</version> <configuration> <rulesets> <ruleset>./Ruleset.xml</ruleset>
</rulesets> <linkXref>true</linkXref> <sourceEncoding>${encoding}</sourceEncoding>
<minimumTokens>100</minimumTokens> <targetJdk>${compileSource}</targetJdk>
</configuration> <reportSets> <reportSet> <reports> <report>pmd</report>
</reports> </reportSet> </reportSets> </plugin> -->
<!-- Generating JavaDoc Report -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<configuration>
<minmemory>128m</minmemory>
<maxmemory>512m</maxmemory>
<encoding>${encoding}</encoding>
<docencoding>${encoding}</docencoding>
<charset>${encoding}</charset>
</configuration>
</plugin>
<!-- Generating Java Source in HTML -->
<plugin>
<artifactId>maven-jxr-plugin</artifactId>
<configuration>
<inputEncoding>${encoding}</inputEncoding>
<outputEncoding>${encoding}</outputEncoding>
<linkJavadoc>true</linkJavadoc>
<javadocDir>apidocs</javadocDir>
</configuration>
</plugin>
</plugins>
</reporting>
</project>

811
pom.xml.20250515 Normal file
View File

@ -0,0 +1,811 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>domains</groupId>
<artifactId>arko</artifactId>
<packaging>war</packaging>
<version>1.0.0</version>
<name>arko</name>
<url>http://maven.apache.org</url>
<properties>
<spring.maven.artifact.version>3.0.5.RELEASE</spring.maven.artifact.version>
</properties>
<repositories>
<repository>
<id>mvn2</id>
<url>http://repo1.maven.org/maven2/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
<repository>
<id>egovframe</id>
<url>http://maven.egovframe.kr:8080/maven/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<repository>
<id>oracle</id>
<name>ORACLE JDBC Repository</name>
<url>https://maven.atlassian.com/3rdparty/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>${spring.maven.artifact.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>${spring.maven.artifact.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.maven.artifact.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>${spring.maven.artifact.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.maven.artifact.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${spring.maven.artifact.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>${spring.maven.artifact.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${spring.maven.artifact.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>${spring.maven.artifact.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.maven.artifact.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.maven.artifact.version}</version>
</dependency>
<dependency>
<groupId>egovframework.rte</groupId>
<artifactId>egovframework.rte.fdl.cmmn</artifactId>
<version>2.7.0</version>
</dependency>
<dependency>
<groupId>egovframework.rte</groupId>
<artifactId>egovframework.rte.ptl.mvc</artifactId>
<version>2.7.0</version>
</dependency>
<dependency>
<groupId>egovframework.rte</groupId>
<artifactId>egovframework.rte.psl.dataaccess</artifactId>
<version>2.7.0</version>
</dependency>
<dependency>
<groupId>egovframework.rte</groupId>
<artifactId>egovframework.rte.fdl.idgnr</artifactId>
<version>2.7.0</version>
</dependency>
<dependency>
<groupId>egovframework.rte</groupId>
<artifactId>egovframework.rte.fdl.property</artifactId>
<version>2.7.0</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.6.11</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjrt</artifactId>
<version>1.6.9</version>
</dependency>
<dependency>
<groupId>aopalliance</groupId>
<artifactId>aopalliance</artifactId>
<version>1.0</version>
</dependency>
<dependency>
<groupId>org.apache.ibatis</groupId>
<artifactId>ibatis-sqlmap</artifactId>
<version>2.3.4.726</version>
</dependency>
<dependency>
<groupId>javax.annotation</groupId>
<artifactId>jsr250-api</artifactId>
<version>1.0</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<scope>provided</scope>
<version>2.5</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
<!-- <scope>provided</scope> -->
</dependency>
<dependency>
<groupId>commons-dbcp</groupId>
<artifactId>commons-dbcp</artifactId>
<version>1.3</version>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.1.1</version>
</dependency>
<dependency>
<groupId>commons-beanutils</groupId>
<artifactId>commons-beanutils</artifactId>
<version>1.8.3</version>
</dependency>
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.6</version>
</dependency>
<!-- junit -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.8.1</version>
</dependency>
<!-- DBunit -->
<!-- <dependency> <groupId>org.dbunit</groupId> <artifactId>dbunit</artifactId>
<version>2.4.8</version> </dependency> -->
<!-- EMMA -->
<!-- <dependency> <groupId>emma</groupId> <artifactId>emma</artifactId>
<version>2.1.5320</version> </dependency> -->
<dependency>
<groupId>taglibs</groupId>
<artifactId>standard</artifactId>
<version>1.1.2</version>
</dependency>
<dependency>
<groupId>cglib</groupId>
<artifactId>cglib</artifactId>
<version>2.2</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.5.11</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.5.11</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.3alpha-8</version>
</dependency>
<dependency>
<groupId>net.sf</groupId>
<artifactId>log4jdbc3</artifactId>
<version>1.1</version>
</dependency>
<dependency>
<groupId>org.bgee.log4jdbc-log4j2</groupId>
<artifactId>log4jdbc-log4j2-jdbc4</artifactId>
<version>1.16</version>
</dependency>
<dependency>
<groupId>hsqldb</groupId>
<artifactId>hsqldb</artifactId>
<version>1.8.0.10</version>
</dependency>
<dependency>
<groupId>org.easymock</groupId>
<artifactId>easymock</artifactId>
<version>3.0</version>
</dependency>
<dependency>
<groupId>commons-collections</groupId>
<artifactId>commons-collections</artifactId>
<version>3.2.1</version>
</dependency>
<dependency>
<groupId>commons-digester</groupId>
<artifactId>commons-digester</artifactId>
<version>1.8</version>
</dependency>
<dependency>
<groupId>org.antlr</groupId>
<artifactId>antlr</artifactId>
<version>3.4</version>
</dependency>
<dependency>
<groupId>org.springframework.webflow</groupId>
<artifactId>org.springframework.webflow</artifactId>
<version>2.0.0.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-core</artifactId>
<version>2.0.4</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-taglibs</artifactId>
<version>2.0.4</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-acl</artifactId>
<version>2.0.4</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-core-tiger</artifactId>
<version>2.0.4</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>3.4.0.GA</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</exclusion>
<exclusion>
<groupId>commons-collections</groupId>
<artifactId>commons-collections</artifactId>
</exclusion>
<exclusion>
<groupId>antlr</groupId>
<artifactId>antlr</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-annotations</artifactId>
<version>3.4.0.GA</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>commons-pool</groupId>
<artifactId>commons-pool</artifactId>
<version>1.5.6</version>
</dependency>
<dependency>
<groupId>commons-validator</groupId>
<artifactId>commons-validator</artifactId>
<version>1.3.1</version>
</dependency>
<dependency>
<groupId>org.springmodules</groupId>
<artifactId>spring-modules-validation</artifactId>
<version>0.9</version>
</dependency>
<dependency>
<groupId>commons-vfs</groupId>
<artifactId>commons-vfs</artifactId>
<version>1.0</version>
</dependency>
<dependency>
<groupId>egovframework.rte</groupId>
<artifactId>egovframework.rte.fdl.string</artifactId>
<version>2.7.0</version>
</dependency>
<dependency>
<groupId>egovframework.rte</groupId>
<artifactId>egovframework.rte.fdl.security</artifactId>
<version>2.7.0</version>
</dependency>
<dependency>
<groupId>egovframework.rte</groupId>
<artifactId>egovframework.rte.fdl.excel</artifactId>
<version>2.7.0</version>
</dependency>
<dependency>
<groupId>org.jasypt</groupId>
<artifactId>jasypt</artifactId>
<version>1.7</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-compress</artifactId>
<version>1.1</version>
</dependency>
<dependency>
<groupId>xerces</groupId>
<artifactId>xercesImpl</artifactId>
<version>2.10.0</version>
</dependency>
<!-- <dependency>
<groupId>net.sf.ehcache</groupId>
<artifactId>ehcache-core</artifactId>
<version>2.4.1</version>
</dependency> -->
<dependency>
<groupId>net.sf.ehcache</groupId>
<artifactId>ehcache-terracotta</artifactId>
<version>2.1.1</version>
</dependency>
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>1.8.5</version>
</dependency>
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz-oracle</artifactId>
<version>1.8.5</version>
</dependency>
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz-weblogic</artifactId>
<version>1.8.5</version>
</dependency>
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz-jboss</artifactId>
<version>1.8.5</version>
</dependency>
<dependency>
<groupId>oro</groupId>
<artifactId>oro</artifactId>
<version>2.0.8</version>
</dependency>
<dependency>
<groupId>com.ibm.icu</groupId>
<artifactId>icu4j</artifactId>
<version>4.8</version>
</dependency>
<dependency>
<groupId>commons-net</groupId>
<artifactId>commons-net</artifactId>
<version>3.0.1</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-email</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>egovframework.com.ems</groupId>
<artifactId>sndng-mail</artifactId>
<version>1.0</version>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>ldapsdk</groupId>
<artifactId>ldapsdk</artifactId>
<version>4.1</version>
</dependency>
<dependency>
<groupId>com.artofsolving</groupId>
<artifactId>jodconverter</artifactId>
<version>2.2.1</version>
</dependency>
<!--
<dependency>
<groupId>xmlbeans</groupId>
<artifactId>xmlbeans</artifactId>
<version>2.2.0</version>
</dependency>
-->
<dependency>
<groupId>xmlbeans</groupId>
<artifactId>xmlbeans</artifactId>
<version>2.3.0</version>
</dependency>
<!--
<dependency>
<groupId>xmlbeans</groupId>
<artifactId>xbean</artifactId>
<version>2.2.0</version>
</dependency>
-->
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>1.3.1</version>
</dependency>
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.2.1</version>
</dependency>
<dependency>
<groupId>org.twitter4j</groupId>
<artifactId>twitter4j-core</artifactId>
<version>2.1.3</version>
</dependency>
<dependency>
<groupId>net.sourceforge.ajaxtags</groupId>
<artifactId>ajaxtags</artifactId>
<version>1.5-beta-0.2</version>
</dependency>
<dependency>
<groupId>org.apache.xmlgraphics</groupId>
<artifactId>batik-ext</artifactId>
<version>1.7</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.17</version>
</dependency>
<dependency>
<groupId>kr.go.mgov</groupId>
<artifactId>smeapi</artifactId>
<version>2.7</version>
<scope>system</scope>
<systemPath>${project.basedir}/src/main/webapp/WEB-INF/lib/smeapi_2_7.jar</systemPath>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.1</version>
</dependency>
<dependency>
<groupId>org.imgscalr</groupId>
<artifactId>imgscalr-lib</artifactId>
<version>4.2</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.jdom</groupId>
<artifactId>jdom2</artifactId>
<version>2.0.5</version>
</dependency>
<!-- <dependency> <groupId>com.oracle</groupId> <artifactId>ojdbc14</artifactId>
<version>10.2.0.4.0</version> </dependency> -->
<!--
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc6</artifactId>
<version>12.1.0.1-atlassian-hosted</version>
</dependency>
-->
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc14</artifactId>
<version>10.2.0.4.0</version>
<scope>system</scope>
<systemPath>${basedir}/src/main/webapp/WEB-INF/lib/ojdbc14-10.2.0.4.0.jar</systemPath>
</dependency>
<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>javase</artifactId>
<version>3.2.1</version>
</dependency>
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>1.9.13</version>
</dependency>
<!-- jaxb -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-oxm</artifactId>
<version>4.3.7.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-oxm</artifactId>
<version>3.0.5.RELEASE</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.3.6</version>
</dependency>
<dependency>
<groupId>com.googlecode.json-simple</groupId>
<artifactId>json-simple</artifactId>
<version>1.1</version>
</dependency>
<dependency>
<groupId>eightbyte.touchandprove</groupId>
<artifactId>touchandprove</artifactId>
<version>1.3</version>
<scope>system</scope>
<systemPath>${project.basedir}/src/main/webapp/WEB-INF/lib/touchandprove-1.3.0-server.jar</systemPath>
</dependency>
<dependency>
<groupId>org.json</groupId>
<artifactId>json-java</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>${project.basedir}/src/main/webapp/WEB-INF/lib/JSON-java.jar</systemPath>
</dependency>
<dependency>
<groupId>backport-util-concurrent</groupId>
<artifactId>backport-util-concurrent</artifactId>
<version>3.1</version>
</dependency>
</dependencies>
<build>
<defaultGoal>install</defaultGoal>
<directory>${project.basedir}/target</directory>
<finalName>arko</finalName>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.7</source>
<target>1.7</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>hibernate3-maven-plugin</artifactId>
<version>2.1</version>
<configuration>
<components>
<component>
<name>hbm2ddl</name>
<implementation>annotationconfiguration</implementation>
</component>
</components>
</configuration>
<dependencies>
<dependency>
<groupId>hsqldb</groupId>
<artifactId>hsqldb</artifactId>
<version>1.8.0.7</version>
</dependency>
</dependencies>
</plugin>
<!-- EMMA -->
<!-- <plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>emma-maven-plugin</artifactId>
<version>1.0-alpha-1</version>
</plugin> -->
<!-- PMD manven plugin -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<version>2.4</version>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<!-- EMMA -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<skipTests>false</skipTests>
<forkMode>once</forkMode>
<reportFormat>xml</reportFormat>
<excludes>
<exclude>**/Abstract*.java</exclude>
<exclude>**/*Suite.java</exclude>
</excludes>
<includes>
<include>**/*Test.java</include>
</includes>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>emma-maven-plugin</artifactId>
<version>1.0-alpha-1</version>
<inherited>true</inherited>
</plugin>
<!-- JavaDoc -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.5</version>
</plugin>
</plugins>
</build>
<reporting>
<outputDirectory>${project.basedir}/target/site</outputDirectory>
<plugins>
<plugin>
<artifactId>maven-project-info-reports-plugin</artifactId>
<version>2.0.1</version>
<reportSets>
<reportSet>
<id>sunlink</id>
<reports>
<report>javadoc</report>
</reports>
<inherited>true</inherited>
<configuration>
<links>
<link>http://java.sun.com/j2se/1.5.0/docs/api/</link>
</links>
</configuration>
</reportSet>
</reportSets>
</plugin>
<!-- JUnit Test Results & EMMA Coverage Reporting -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>emma-maven-plugin</artifactId>
<inherited>true</inherited>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>surefire-report-maven-plugin</artifactId>
<inherited>true</inherited>
<reportSets>
<reportSet>
<reports>
<report>report-only</report>
</reports>
</reportSet>
</reportSets>
</plugin>
<!-- PMD manven plugin -->
<!-- <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-pmd-plugin</artifactId>
<version>2.4</version> <configuration> <rulesets> <ruleset>./Ruleset.xml</ruleset>
</rulesets> <linkXref>true</linkXref> <sourceEncoding>${encoding}</sourceEncoding>
<minimumTokens>100</minimumTokens> <targetJdk>${compileSource}</targetJdk>
</configuration> <reportSets> <reportSet> <reports> <report>pmd</report>
</reports> </reportSet> </reportSets> </plugin> -->
<!-- Generating JavaDoc Report -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<configuration>
<minmemory>128m</minmemory>
<maxmemory>512m</maxmemory>
<encoding>${encoding}</encoding>
<docencoding>${encoding}</docencoding>
<charset>${encoding}</charset>
</configuration>
</plugin>
<!-- Generating Java Source in HTML -->
<plugin>
<artifactId>maven-jxr-plugin</artifactId>
<configuration>
<inputEncoding>${encoding}</inputEncoding>
<outputEncoding>${encoding}</outputEncoding>
<linkJavadoc>true</linkJavadoc>
<javadocDir>apidocs</javadocDir>
</configuration>
</plugin>
</plugins>
</reporting>
</project>

811
pom.xml.20250515_2 Normal file
View File

@ -0,0 +1,811 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>domains</groupId>
<artifactId>arko</artifactId>
<packaging>war</packaging>
<version>1.0.0</version>
<name>arko</name>
<url>http://maven.apache.org</url>
<properties>
<spring.maven.artifact.version>3.0.5.RELEASE</spring.maven.artifact.version>
</properties>
<repositories>
<repository>
<id>mvn2</id>
<url>http://repo1.maven.org/maven2/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
<repository>
<id>egovframe</id>
<url>http://maven.egovframe.kr:8080/maven/</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<repository>
<id>oracle</id>
<name>ORACLE JDBC Repository</name>
<url>https://maven.atlassian.com/3rdparty/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>${spring.maven.artifact.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>${spring.maven.artifact.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.maven.artifact.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>${spring.maven.artifact.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${spring.maven.artifact.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${spring.maven.artifact.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>${spring.maven.artifact.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>${spring.maven.artifact.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>${spring.maven.artifact.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.maven.artifact.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>${spring.maven.artifact.version}</version>
</dependency>
<dependency>
<groupId>egovframework.rte</groupId>
<artifactId>egovframework.rte.fdl.cmmn</artifactId>
<version>2.7.0</version>
</dependency>
<dependency>
<groupId>egovframework.rte</groupId>
<artifactId>egovframework.rte.ptl.mvc</artifactId>
<version>2.7.0</version>
</dependency>
<dependency>
<groupId>egovframework.rte</groupId>
<artifactId>egovframework.rte.psl.dataaccess</artifactId>
<version>2.7.0</version>
</dependency>
<dependency>
<groupId>egovframework.rte</groupId>
<artifactId>egovframework.rte.fdl.idgnr</artifactId>
<version>2.7.0</version>
</dependency>
<dependency>
<groupId>egovframework.rte</groupId>
<artifactId>egovframework.rte.fdl.property</artifactId>
<version>2.7.0</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.6.11</version>
</dependency>
<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjrt</artifactId>
<version>1.6.9</version>
</dependency>
<dependency>
<groupId>aopalliance</groupId>
<artifactId>aopalliance</artifactId>
<version>1.0</version>
</dependency>
<dependency>
<groupId>org.apache.ibatis</groupId>
<artifactId>ibatis-sqlmap</artifactId>
<version>2.3.4.726</version>
</dependency>
<dependency>
<groupId>javax.annotation</groupId>
<artifactId>jsr250-api</artifactId>
<version>1.0</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<scope>provided</scope>
<version>2.5</version>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
<!-- <scope>provided</scope> -->
</dependency>
<dependency>
<groupId>commons-dbcp</groupId>
<artifactId>commons-dbcp</artifactId>
<version>1.3</version>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>1.1.1</version>
</dependency>
<dependency>
<groupId>commons-beanutils</groupId>
<artifactId>commons-beanutils</artifactId>
<version>1.8.3</version>
</dependency>
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.6</version>
</dependency>
<!-- junit -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.8.1</version>
</dependency>
<!-- DBunit -->
<!-- <dependency> <groupId>org.dbunit</groupId> <artifactId>dbunit</artifactId>
<version>2.4.8</version> </dependency> -->
<!-- EMMA -->
<!-- <dependency> <groupId>emma</groupId> <artifactId>emma</artifactId>
<version>2.1.5320</version> </dependency> -->
<dependency>
<groupId>taglibs</groupId>
<artifactId>standard</artifactId>
<version>1.1.2</version>
</dependency>
<dependency>
<groupId>cglib</groupId>
<artifactId>cglib</artifactId>
<version>2.2</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.5.11</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.5.11</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.3alpha-8</version>
</dependency>
<dependency>
<groupId>net.sf</groupId>
<artifactId>log4jdbc3</artifactId>
<version>1.1</version>
</dependency>
<dependency>
<groupId>org.bgee.log4jdbc-log4j2</groupId>
<artifactId>log4jdbc-log4j2-jdbc4</artifactId>
<version>1.16</version>
</dependency>
<dependency>
<groupId>hsqldb</groupId>
<artifactId>hsqldb</artifactId>
<version>1.8.0.10</version>
</dependency>
<dependency>
<groupId>org.easymock</groupId>
<artifactId>easymock</artifactId>
<version>3.0</version>
</dependency>
<dependency>
<groupId>commons-collections</groupId>
<artifactId>commons-collections</artifactId>
<version>3.2.1</version>
</dependency>
<dependency>
<groupId>commons-digester</groupId>
<artifactId>commons-digester</artifactId>
<version>1.8</version>
</dependency>
<dependency>
<groupId>org.antlr</groupId>
<artifactId>antlr</artifactId>
<version>3.4</version>
</dependency>
<dependency>
<groupId>org.springframework.webflow</groupId>
<artifactId>org.springframework.webflow</artifactId>
<version>2.0.0.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-core</artifactId>
<version>2.0.4</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-taglibs</artifactId>
<version>2.0.4</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-acl</artifactId>
<version>2.0.4</version>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-core-tiger</artifactId>
<version>2.0.4</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>3.4.0.GA</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</exclusion>
<exclusion>
<groupId>commons-collections</groupId>
<artifactId>commons-collections</artifactId>
</exclusion>
<exclusion>
<groupId>antlr</groupId>
<artifactId>antlr</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-annotations</artifactId>
<version>3.4.0.GA</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>commons-pool</groupId>
<artifactId>commons-pool</artifactId>
<version>1.5.6</version>
</dependency>
<dependency>
<groupId>commons-validator</groupId>
<artifactId>commons-validator</artifactId>
<version>1.3.1</version>
</dependency>
<dependency>
<groupId>org.springmodules</groupId>
<artifactId>spring-modules-validation</artifactId>
<version>0.9</version>
</dependency>
<dependency>
<groupId>commons-vfs</groupId>
<artifactId>commons-vfs</artifactId>
<version>1.0</version>
</dependency>
<dependency>
<groupId>egovframework.rte</groupId>
<artifactId>egovframework.rte.fdl.string</artifactId>
<version>2.7.0</version>
</dependency>
<dependency>
<groupId>egovframework.rte</groupId>
<artifactId>egovframework.rte.fdl.security</artifactId>
<version>2.7.0</version>
</dependency>
<dependency>
<groupId>egovframework.rte</groupId>
<artifactId>egovframework.rte.fdl.excel</artifactId>
<version>2.7.0</version>
</dependency>
<dependency>
<groupId>org.jasypt</groupId>
<artifactId>jasypt</artifactId>
<version>1.7</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-compress</artifactId>
<version>1.1</version>
</dependency>
<dependency>
<groupId>xerces</groupId>
<artifactId>xercesImpl</artifactId>
<version>2.10.0</version>
</dependency>
<!-- <dependency>
<groupId>net.sf.ehcache</groupId>
<artifactId>ehcache-core</artifactId>
<version>2.4.1</version>
</dependency> -->
<dependency>
<groupId>net.sf.ehcache</groupId>
<artifactId>ehcache-terracotta</artifactId>
<version>2.1.1</version>
</dependency>
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz</artifactId>
<version>1.8.5</version>
</dependency>
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz-oracle</artifactId>
<version>1.8.5</version>
</dependency>
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz-weblogic</artifactId>
<version>1.8.5</version>
</dependency>
<dependency>
<groupId>org.quartz-scheduler</groupId>
<artifactId>quartz-jboss</artifactId>
<version>1.8.5</version>
</dependency>
<dependency>
<groupId>oro</groupId>
<artifactId>oro</artifactId>
<version>2.0.8</version>
</dependency>
<dependency>
<groupId>com.ibm.icu</groupId>
<artifactId>icu4j</artifactId>
<version>4.8</version>
</dependency>
<dependency>
<groupId>commons-net</groupId>
<artifactId>commons-net</artifactId>
<version>3.0.1</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-email</artifactId>
<version>1.2</version>
</dependency>
<dependency>
<groupId>egovframework.com.ems</groupId>
<artifactId>sndng-mail</artifactId>
<version>1.0</version>
</dependency>
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.1</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>ldapsdk</groupId>
<artifactId>ldapsdk</artifactId>
<version>4.1</version>
</dependency>
<dependency>
<groupId>com.artofsolving</groupId>
<artifactId>jodconverter</artifactId>
<version>2.2.1</version>
</dependency>
<!--
<dependency>
<groupId>xmlbeans</groupId>
<artifactId>xmlbeans</artifactId>
<version>2.2.0</version>
</dependency>
-->
<dependency>
<groupId>xmlbeans</groupId>
<artifactId>xmlbeans</artifactId>
<version>2.3.0</version>
</dependency>
<!--
<dependency>
<groupId>xmlbeans</groupId>
<artifactId>xbean</artifactId>
<version>2.2.0</version>
</dependency>
-->
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>1.3.1</version>
</dependency>
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.2.1</version>
</dependency>
<dependency>
<groupId>org.twitter4j</groupId>
<artifactId>twitter4j-core</artifactId>
<version>2.1.3</version>
</dependency>
<dependency>
<groupId>net.sourceforge.ajaxtags</groupId>
<artifactId>ajaxtags</artifactId>
<version>1.5-beta-0.2</version>
</dependency>
<dependency>
<groupId>org.apache.xmlgraphics</groupId>
<artifactId>batik-ext</artifactId>
<version>1.7</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.17</version>
</dependency>
<dependency>
<groupId>kr.go.mgov</groupId>
<artifactId>smeapi</artifactId>
<version>2.7</version>
<scope>system</scope>
<systemPath>${project.basedir}/src/main/webapp/WEB-INF/lib/smeapi_2_7.jar</systemPath>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.1</version>
</dependency>
<dependency>
<groupId>org.imgscalr</groupId>
<artifactId>imgscalr-lib</artifactId>
<version>4.2</version>
<type>jar</type>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>org.jdom</groupId>
<artifactId>jdom2</artifactId>
<version>2.0.5</version>
</dependency>
<!-- <dependency> <groupId>com.oracle</groupId> <artifactId>ojdbc14</artifactId>
<version>10.2.0.4.0</version> </dependency> -->
<!--
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc6</artifactId>
<version>12.1.0.1-atlassian-hosted</version>
</dependency>
-->
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc14</artifactId>
<version>10.2.0.4.0</version>
<scope>system</scope>
<systemPath>${basedir}/src/main/webapp/WEB-INF/lib/ojdbc14-10.2.0.4.0.jar</systemPath>
</dependency>
<dependency>
<groupId>com.google.zxing</groupId>
<artifactId>javase</artifactId>
<version>3.2.1</version>
</dependency>
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>1.9.13</version>
</dependency>
<!-- jaxb -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-oxm</artifactId>
<version>4.3.7.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-oxm</artifactId>
<version>3.0.5.RELEASE</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>4.3.6</version>
</dependency>
<dependency>
<groupId>com.googlecode.json-simple</groupId>
<artifactId>json-simple</artifactId>
<version>1.1</version>
</dependency>
<dependency>
<groupId>eightbyte.touchandprove</groupId>
<artifactId>touchandprove</artifactId>
<version>1.3</version>
<scope>system</scope>
<systemPath>${project.basedir}/src/main/webapp/WEB-INF/lib/touchandprove-1.3.0-server.jar</systemPath>
</dependency>
<dependency>
<groupId>org.json</groupId>
<artifactId>json-java</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>${project.basedir}/src/main/webapp/WEB-INF/lib/JSON-java.jar</systemPath>
</dependency>
<dependency>
<groupId>backport-util-concurrent</groupId>
<artifactId>backport-util-concurrent</artifactId>
<version>3.1</version>
</dependency>
</dependencies>
<build>
<defaultGoal>install</defaultGoal>
<directory>${project.basedir}/target</directory>
<finalName>arko</finalName>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.7</source>
<target>1.7</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>hibernate3-maven-plugin</artifactId>
<version>2.1</version>
<configuration>
<components>
<component>
<name>hbm2ddl</name>
<implementation>annotationconfiguration</implementation>
</component>
</components>
</configuration>
<dependencies>
<dependency>
<groupId>hsqldb</groupId>
<artifactId>hsqldb</artifactId>
<version>1.8.0.7</version>
</dependency>
</dependencies>
</plugin>
<!-- EMMA -->
<!-- <plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>emma-maven-plugin</artifactId>
<version>1.0-alpha-1</version>
</plugin> -->
<!-- PMD manven plugin -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<version>2.4</version>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<!-- EMMA -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<skipTests>false</skipTests>
<forkMode>once</forkMode>
<reportFormat>xml</reportFormat>
<excludes>
<exclude>**/Abstract*.java</exclude>
<exclude>**/*Suite.java</exclude>
</excludes>
<includes>
<include>**/*Test.java</include>
</includes>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>emma-maven-plugin</artifactId>
<version>1.0-alpha-1</version>
<inherited>true</inherited>
</plugin>
<!-- JavaDoc -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>2.5</version>
</plugin>
</plugins>
</build>
<reporting>
<outputDirectory>${project.basedir}/target/site</outputDirectory>
<plugins>
<plugin>
<artifactId>maven-project-info-reports-plugin</artifactId>
<version>2.0.1</version>
<reportSets>
<reportSet>
<id>sunlink</id>
<reports>
<report>javadoc</report>
</reports>
<inherited>true</inherited>
<configuration>
<links>
<link>http://java.sun.com/j2se/1.5.0/docs/api/</link>
</links>
</configuration>
</reportSet>
</reportSets>
</plugin>
<!-- JUnit Test Results & EMMA Coverage Reporting -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>emma-maven-plugin</artifactId>
<inherited>true</inherited>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>surefire-report-maven-plugin</artifactId>
<inherited>true</inherited>
<reportSets>
<reportSet>
<reports>
<report>report-only</report>
</reports>
</reportSet>
</reportSets>
</plugin>
<!-- PMD manven plugin -->
<!-- <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-pmd-plugin</artifactId>
<version>2.4</version> <configuration> <rulesets> <ruleset>./Ruleset.xml</ruleset>
</rulesets> <linkXref>true</linkXref> <sourceEncoding>${encoding}</sourceEncoding>
<minimumTokens>100</minimumTokens> <targetJdk>${compileSource}</targetJdk>
</configuration> <reportSets> <reportSet> <reports> <report>pmd</report>
</reports> </reportSet> </reportSets> </plugin> -->
<!-- Generating JavaDoc Report -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<configuration>
<minmemory>128m</minmemory>
<maxmemory>512m</maxmemory>
<encoding>${encoding}</encoding>
<docencoding>${encoding}</docencoding>
<charset>${encoding}</charset>
</configuration>
</plugin>
<!-- Generating Java Source in HTML -->
<plugin>
<artifactId>maven-jxr-plugin</artifactId>
<configuration>
<inputEncoding>${encoding}</inputEncoding>
<outputEncoding>${encoding}</outputEncoding>
<linkJavadoc>true</linkJavadoc>
<javadocDir>apidocs</javadocDir>
</configuration>
</plugin>
</plugins>
</reporting>
</project>

View File

@ -0,0 +1 @@
/biz/

View File

@ -0,0 +1,278 @@
package egovframework.com;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import javax.annotation.Resource;
import org.apache.commons.codec.binary.Base64;
import com.google.gson.JsonArray;
import com.google.gson.JsonObject;
import com.google.gson.JsonParser;
import kr.or.arko.mnt.biz.event.service.EvtMntVO;
import kr.or.arko.mnt.biz.event.service.impl.BizAwardMntDAO;
public class Main {
/*JSON파일 있는 경로*/
private static final String JSON_FILE_PATH = "C:/BIZ_EVENT_CN/bokyeong/";
/*변경 전 텍스츠 파일 있는 경로*/
private static final String TEXT_FILE_PATH = "C:/BIZ_EVENT_CN/bokyeong/";
/*업데이트할 최종소스 파일 있는 경로*/
private static final String CHANGED_TEXT_PATH = "C:/BIZ_EVENT_CN/TEST/";
/*바이너리 코드만 뽑아둔 파일 있는 경로(이미지 뽑을 때 사용)*/
private static final String binaryTextPath = "C:/BIZ_EVENT_CN/result/";
/*이미지 저장할 경로*/
private static final String imgPath = "C:/BIZ_EVENT_CN/images/";
@Resource(name="BizAwardMntDAO")
private static BizAwardMntDAO bizAwardMntDAO;
public static void main(String[] args) throws Exception {
//json --> txt
//invertJsonToTxtFile(jsonFilePath + "BIZ_EVENT_CN_2021.json");
invertBinaryTxtToChangedTxtFile();
//txt 파일 불러와서 frst_regist_pnttm, NTT_CN 으로 받아주고 DB에 업데이트!
/*List<Object> resultList = readTxtFile("/BIZ_EVENT_CN/nttcn/2021_2/");
for(int i = 0; i < resultList.size(); i++){
bizAwardMntDAO.updateNttCnBizEvent((EvtMntVO) resultList.get(i));
}*/
}
public static List<Object> readTxtFile(String directoryPath) throws Exception {
List<Object> list = new ArrayList<Object>();
FileInputStream fileStream = null; // 파일 스트림
String fileName = "";
File dir = new File(directoryPath);
File files[] = dir.listFiles();
for (int i = 0; i < files.length; i++) {
EvtMntVO evtMntVO = new EvtMntVO();
// 바이트 단위로 파일읽기
String filePath = directoryPath + files[i].getName();// 대상 파일
fileStream = new FileInputStream(filePath);// 파일 스트림 생성
//버퍼 선언
byte[ ] readBuffer = new byte[fileStream.available()];
while (fileStream.read( readBuffer ) != -1){}
fileName = files[i].getName();
evtMntVO.setFrstRegistPnttm(fileName.substring(0, fileName.length()-4));
evtMntVO.setNttCn(new String(readBuffer));
list.add(evtMntVO);
}
return list;
}
public static void invertBinaryTxtToChangedTxtFile() throws IOException{
FileInputStream fileStream = null; // 파일 스트림
String nttCN = null;
String key = null;
File dir = new File(TEXT_FILE_PATH);
File files[] = dir.listFiles();
for (int i = 0; i < files.length; i++) {
// 바이트 단위로 파일읽기
String filePath = TEXT_FILE_PATH + files[i].getName();// 대상 파일
fileStream = new FileInputStream(filePath);// 파일 스트림 생성
//버퍼 선언
byte[ ] readBuffer = new byte[fileStream.available()];
while (fileStream.read( readBuffer ) != -1){}
key = files[i].getName().substring(0,files[i].getName().length()-4);
nttCN = new String(readBuffer);
}
try{
key = key.replace("\"", "");
//System.out.println("#"+nttCN);
nttCN = exportBinaryData(key,nttCN);
nttCN = nttCN.substring(1, nttCN.length()-1);
// 업데이트할 내용 안에 역슬래시 제거
nttCN = nttCN.replace("\\r\\n", "<br>");
nttCN = nttCN.replace("\\\"", "\"");
File file = new File(CHANGED_TEXT_PATH + key + ".txt");
FileWriter fw = new FileWriter(file, true);
fw.write(nttCN);
fw.flush();
fw.close();
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
public static void invertJsonToTxtFile(String jsonPath){
JsonParser parser = new JsonParser();
try {
//json 파일 가져오기
Object obj = parser.parse(new FileReader(jsonPath));
//가져온 json 데이터
JsonObject jsonObject = (JsonObject) obj;
JsonArray jsonArray = (JsonArray) jsonObject.get("rows");
JsonObject jsonO = null;
String nttCN = null;
String key = null;
//json 데이터 1row 추출
for(int k = 0; k < jsonArray.size();k++){
jsonO = (JsonObject) jsonArray.get(k);
nttCN = jsonO.get("NTT_CN").toString();
key = jsonO.get("FRST_REGIST_PNTTM").toString();
key = key.replace("\"", "");
//System.out.println("#"+nttCN);
nttCN = exportBinaryData(key,nttCN);
nttCN = nttCN.substring(1, nttCN.length()-1);
// 업데이트할 내용 안에 역슬래시 제거
nttCN = nttCN.replace("\\r\\n", "<br>");
nttCN = nttCN.replace("\\\"", "\"");
File file = new File(CHANGED_TEXT_PATH + key + ".txt");
FileWriter fw = new FileWriter(file, true);
fw.write(nttCN);
fw.flush();
fw.close();
}
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
/** 원데이터에서 binary 데이터로 이미지 저장 , src 경로 변경
* @throws Exception */
public static String exportBinaryData(String key, String nttCN) throws Exception{
int start = nttCN.indexOf("data:");
int end = 0;
int cnt = 1;
String imgName = "";
String imgType = "";
//do{
while (start != -1) {
end = nttCN.indexOf("\"", start);
String imgDataUri = nttCN.substring(start, end);
if(imgDataUri.substring(imgDataUri.length()-1, imgDataUri.length()) == "\\") {
imgDataUri = imgDataUri.substring(0, imgDataUri.length()-1);
}
// ******************************************************************************
/* 애림이가 만든 이미지 만드는 함수 호출 */
/* 파람은 key, imgDataUri */
/* 에디터 적용 시점 .. */
imgName = key + "-" + cnt;
imgType = exportImgType(imgDataUri);
decodeBase64BinaryToImg(imgName, imgType, imgDataUri);
//==============위에 프로세스 반영시 수동 txt파일 생성은 필요없음(제거)==========================
exportBinaryTextFile(key, cnt, imgDataUri);
//==============================================================================
// *****************************************************************************
String first = nttCN.substring(0, start);
String last = nttCN.substring(end, nttCN.length());
nttCN = String.format("%s%s%s-%d%s%s%s", first, "/upload/event/", key, cnt, ".", imgType, last);
cnt++;
start = nttCN.indexOf("data:");
}
return nttCN;
}
/** base64 바이너리 코드 --> 이미지 파일
* @throws Exception */
private static void decodeBase64BinaryToImg(String imgName, String imgType, String imgDataUri) throws Exception{
byte[] imageBytes = null;
FileOutputStream fos = null;
String binaryData = imgDataUri.substring(imgDataUri.indexOf("base64,") + 7);
imageBytes = Base64.decodeBase64(binaryData.getBytes());
fos = new FileOutputStream(imgPath + imgName + "." + imgType);
fos.write(imageBytes);
fos.close();
}
/** binary 소스에서 이미지 형식 추출 */
private static String exportImgType(String binaryData){
//SVG+XML인 경우
if(binaryData.indexOf("base64,") > 18){
return binaryData.substring(11,18);
//JPEG인 경우
}else if(binaryData.indexOf("base64,") > 15){
return binaryData.substring(11,15);
//PNG,JPG,GIF인 경우
}else{
return binaryData.substring(11,14);
}
}
/** binary 소스만에서 텍스트 파일로 추출 */
private static void exportBinaryTextFile(String key, int cnt, String binaryData) throws IOException{
File file = new File(binaryTextPath + key + "-" + cnt + ".txt");
FileWriter fw = new FileWriter(file, true);
fw.write(binaryData);
fw.flush();
fw.close();
}
}

View File

@ -0,0 +1,109 @@
package egovframework.com.cmm;
/*
* Copyright 2002-2005 the original author or 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
*
* http://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.
*/
import java.io.IOException;
import java.io.Reader;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.jdbc.support.lob.LobCreator;
import org.springframework.jdbc.support.lob.LobHandler;
import org.springframework.orm.ibatis.support.AbstractLobTypeHandler;
/**
* iBATIS TypeHandler implementation for Strings that get mapped to CLOBs.
* Retrieves the LobHandler to use from SqlMapClientFactoryBean at config time.
*
* <p>Particularly useful for storing Strings with more than 4000 characters in an
* Oracle database (only possible via CLOBs), in combination with OracleLobHandler.
*
* <p>Can also be defined in generic iBATIS mappings, as DefaultLobCreator will
* work with most JDBC-compliant database drivers. In this case, the field type
* does not have to be BLOB: For databases like MySQL and MS SQL Server, any
* large enough binary type will work.
*
* @author Juergen Hoeller
* @since 1.1.5
* @see org.springframework.orm.ibatis.SqlMapClientFactoryBean#setLobHandler
*/
public class AltibaseClobStringTypeHandler extends AbstractLobTypeHandler {
private static final Log LOG = LogFactory.getLog(AltibaseClobStringTypeHandler.class.getName());
/**
* Constructor used by iBATIS: fetches config-time LobHandler from
* SqlMapClientFactoryBean.
* @see org.springframework.orm.ibatis.SqlMapClientFactoryBean#getConfigTimeLobHandler
*/
public AltibaseClobStringTypeHandler() {
super();
}
/**
* Constructor used for testing: takes an explicit LobHandler.
*/
protected AltibaseClobStringTypeHandler(LobHandler lobHandler) {
super(lobHandler);
}
protected void setParameterInternal(
PreparedStatement ps, int index, Object value, String jdbcType, LobCreator lobCreator)
throws SQLException {
lobCreator.setClobAsString(ps, index, (String) value);
}
protected Object getResultInternal(ResultSet rs, int index, LobHandler lobHandler)
throws SQLException {
StringBuffer read_data = new StringBuffer("");
int read_length;
char [] buf = new char[1024];
Reader rd = lobHandler.getClobAsCharacterStream(rs, index);
try {
while( (read_length=rd.read(buf)) != -1) {
read_data.append(buf, 0, read_length);
}
} catch (IOException ie) {
SQLException sqle = new SQLException(ie.getMessage());
throw sqle;
// 2011.10.10 보안점검 후속조치
} finally {
if (rd != null) {
try {
rd.close();
} catch (Exception ignore) {
LOG.debug("IGNORE: " + ignore.getMessage());
}
}
}
return read_data.toString();
//return lobHandler.getClobAsString(rs, index);
}
public Object valueOf(String s) {
return s;
}
}

View File

@ -0,0 +1,102 @@
package egovframework.com.cmm;
import java.io.FileOutputStream;
import javax.annotation.Resource;
import org.apache.commons.codec.binary.Base64;
import org.springframework.stereotype.Component;
import egovframework.com.cmm.service.EgovFileMngUtil;
import egovframework.com.cmm.service.EgovProperties;
@Component("BinaryToImage")
public class BinaryToImage {
// 파일 처리 관련 유틸리티
@Resource(name = "EgovFileMngUtil")
private EgovFileMngUtil egovFileMngUtil;
/*실제 이미지 저장 경로*/
private static final String IMG_SAVE_PATH = EgovProperties.getProperty("Globals.home.base") + EgovProperties.getProperty("Globals.imgFileStorePath");
/*글 내용 안에 src에 표시할 경로*/
private static final String IMG_SRC_PATH = EgovProperties.getProperty("Globals.imgFileStorePath");
/** 원데이터에서 binary 데이터로 이미지 저장 , src 경로 변경
* @throws Exception */
public String exportBinaryData(String nttCN) throws Exception{
String key = "ACT_" + egovFileMngUtil.getTimeStamp();
int start = nttCN.indexOf("data:");
int end = 0;
int cnt = 1;
String imgName = "";
String imgType = "";
//do{
while (start != -1) {
System.out.println(nttCN.substring(0, start));
end = nttCN.indexOf("\"", start);
String imgDataUri = nttCN.substring(start, end);
if(imgDataUri.substring(imgDataUri.length()-1, imgDataUri.length()) == "\\") {
imgDataUri = imgDataUri.substring(0, imgDataUri.length()-1);
}
// ******************************************************************************
/* 이미지 만드는 함수 호출 */
/* 파람은 imgName, imgType, imgDataUri */
imgName = key + "-" + cnt;
imgType = exportImgType(imgDataUri);
decodeBase64BinaryToImg(imgName, imgType, imgDataUri);
// *****************************************************************************
String first = nttCN.substring(0, start);
String last = nttCN.substring(end, nttCN.length());
nttCN = String.format("%s%s%s-%d%s%s%s", first, IMG_SRC_PATH, key, cnt, ".", imgType, last);
cnt++;
start = nttCN.indexOf("data:");
}
return nttCN;
}
/** base64 바이너리 코드 --> 이미지 파일
* @throws Exception */
private static void decodeBase64BinaryToImg(String imgName, String imgType, String imgDataUri) throws Exception{
byte[] imageBytes = null;
FileOutputStream fos = null;
String binaryData = imgDataUri.substring(imgDataUri.indexOf("base64,") + 7);
imageBytes = Base64.decodeBase64(binaryData.getBytes());
fos = new FileOutputStream(IMG_SAVE_PATH + imgName + "." + imgType);
fos.write(imageBytes);
fos.close();
}
/** binary 소스에서 이미지 형식 추출 */
private static String exportImgType(String imgDataUri){
//SVG+XML인 경우
if(imgDataUri.indexOf("base64,") > 18){
return imgDataUri.substring(11,18);
//JPEG인 경우
}else if(imgDataUri.indexOf("base64,") > 15){
return imgDataUri.substring(11,15);
//PNG,JPG,GIF인 경우
}else{
return imgDataUri.substring(11,14);
}
}
}

View File

@ -0,0 +1,196 @@
package egovframework.com.cmm;
import java.io.Serializable;
import org.apache.commons.lang.builder.ToStringBuilder;
/**
* 클래스
* @author 공통서비스개발팀 이삼섭
* @since 2009.06.01
* @version 1.0
* @see
*
* <pre>
* << 개정이력(Modification Information) >>
*
* 수정일 수정자 수정내용
* ------- -------- ---------------------------
* 2009.3.11 이삼섭 최초 생성
*
* </pre>
*/
@SuppressWarnings("serial")
public class ComDefaultCodeVO implements Serializable {
/** 코드 ID */
private String codeId = "";
/** 상세코드 */
private String code = "";
/** 코드명 */
private String codeNm = "";
/** 코드설명 */
private String codeDc = "";
/** 특정테이블명 */
private String tableNm = ""; //특정테이블에서 코드정보를추출시 사용
/** 상세 조건 여부 */
private String haveDetailCondition = "N";
/** 상세 조건 */
private String detailCondition = "";
/** 정렬 조건 */
private String sortFlag = "";
/**
* codeId attribute를 리턴한다.
*
* @return the codeId
*/
public String getCodeId() {
return codeId;
}
/**
* codeId attribute 값을 설정한다.
*
* @param codeId
* the codeId to set
*/
public void setCodeId(String codeId) {
this.codeId = codeId;
}
/**
* code attribute를 리턴한다.
*
* @return the code
*/
public String getCode() {
return code;
}
/**
* code attribute 값을 설정한다.
*
* @param code
* the code to set
*/
public void setCode(String code) {
this.code = code;
}
/**
* codeNm attribute를 리턴한다.
*
* @return the codeNm
*/
public String getCodeNm() {
return codeNm;
}
/**
* codeNm attribute 값을 설정한다.
*
* @param codeNm
* the codeNm to set
*/
public void setCodeNm(String codeNm) {
this.codeNm = codeNm;
}
/**
* codeDc attribute를 리턴한다.
*
* @return the codeDc
*/
public String getCodeDc() {
return codeDc;
}
/**
* codeDc attribute 값을 설정한다.
*
* @param codeDc
* the codeDc to set
*/
public void setCodeDc(String codeDc) {
this.codeDc = codeDc;
}
/**
* tableNm attribute를 리턴한다.
*
* @return the tableNm
*/
public String getTableNm() {
return tableNm;
}
/**
* tableNm attribute 값을 설정한다.
*
* @param tableNm
* the tableNm to set
*/
public void setTableNm(String tableNm) {
this.tableNm = tableNm;
}
/**
* haveDetailCondition attribute를 리턴한다.
*
* @return the haveDetailCondition
*/
public String getHaveDetailCondition() {
return haveDetailCondition;
}
/**
* haveDetailCondition attribute 값을 설정한다.
*
* @param haveDetailCondition
* the haveDetailCondition to set
*/
public void setHaveDetailCondition(String haveDetailCondition) {
this.haveDetailCondition = haveDetailCondition;
}
/**
* detailCondition attribute를 리턴한다.
*
* @return the detailCondition
*/
public String getDetailCondition() {
return detailCondition;
}
/**
* detailCondition attribute 값을 설정한다.
*
* @param detailCondition
* the detailCondition to set
*/
public void setDetailCondition(String detailCondition) {
this.detailCondition = detailCondition;
}
public String getSortFlag() {
return sortFlag;
}
public void setSortFlag(String sortFlag) {
this.sortFlag = sortFlag;
}
/**
* toString 메소드를 대치한다.
*/
public String toString() {
return ToStringBuilder.reflectionToString(this);
}
}

View File

@ -0,0 +1,176 @@
package egovframework.com.cmm;
import java.io.Serializable;
import org.apache.commons.lang.builder.ToStringBuilder;
/**
* @Class Name : ComDefaultVO.java
* @Description : ComDefaultVO class
* @Modification Information
* @
* @ 수정일 수정자 수정내용
* @ ------- -------- ---------------------------
* @ 2009.02.01 조재영 최초 생성
*
* @author 공통서비스 개발팀 조재영
* @since 2009.02.01
* @version 1.0
* @see
*
*/
public class ComDefaultVO implements Serializable {
/** 검색조건 */
private String searchCondition = "";
/** 검색Keyword */
private String searchKeyword = "";
/** 검색사용여부 */
private String searchUseYn = "";
/** 현재페이지 */
private int pageIndex = 1;
/** 서브페이지 */
private int pageIndex2 = 1;
public int getPageIndex2() {
return pageIndex2;
}
public void setPageIndex2(int pageIndex2) {
this.pageIndex2 = pageIndex2;
}
/** 페이지갯수 */
private int pageUnit = 10;
/** 페이지사이즈 */
private int pageSize = 10;
/** firstIndex */
private int firstIndex = 0;
/** lastIndex */
private int lastIndex = 1;
/** recordCountPerPage */
private int recordCountPerPage = 10;
/** 검색KeywordFrom */
private String searchKeywordFrom = "";
/** 검색KeywordTo */
private String searchKeywordTo = "";
public int getFirstIndex() {
return firstIndex;
}
public void setFirstIndex(int firstIndex) {
this.firstIndex = firstIndex;
}
public int getLastIndex() {
return lastIndex;
}
public void setLastIndex(int lastIndex) {
this.lastIndex = lastIndex;
}
public int getRecordCountPerPage() {
return recordCountPerPage;
}
public void setRecordCountPerPage(int recordCountPerPage) {
this.recordCountPerPage = recordCountPerPage;
}
public String getSearchCondition() {
return searchCondition;
}
public void setSearchCondition(String searchCondition) {
this.searchCondition = searchCondition;
}
public String getSearchKeyword() {
return searchKeyword;
}
public void setSearchKeyword(String searchKeyword) {
this.searchKeyword = searchKeyword;
}
public String getSearchUseYn() {
return searchUseYn;
}
public void setSearchUseYn(String searchUseYn) {
this.searchUseYn = searchUseYn;
}
public int getPageIndex() {
return pageIndex;
}
public void setPageIndex(int pageIndex) {
this.pageIndex = pageIndex;
}
public int getPageUnit() {
return pageUnit;
}
public void setPageUnit(int pageUnit) {
this.pageUnit = pageUnit;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public String toString() {
return ToStringBuilder.reflectionToString(this);
}
/**
* searchKeywordFrom attribute를 리턴한다.
* @return String
*/
public String getSearchKeywordFrom() {
return searchKeywordFrom;
}
/**
* searchKeywordFrom attribute 값을 설정한다.
* @param searchKeywordFrom String
*/
public void setSearchKeywordFrom(String searchKeywordFrom) {
this.searchKeywordFrom = searchKeywordFrom;
}
/**
* searchKeywordTo attribute를 리턴한다.
* @return String
*/
public String getSearchKeywordTo() {
return searchKeywordTo;
}
/**
* searchKeywordTo attribute 값을 설정한다.
* @param searchKeywordTo String
*/
public void setSearchKeywordTo(String searchKeywordTo) {
this.searchKeywordTo = searchKeywordTo;
}
}

View File

@ -0,0 +1,404 @@
package egovframework.com.cmm;
import java.io.IOException;
import java.io.Reader;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.PageContext;
import javax.servlet.jsp.tagext.BodyTagSupport;
import org.apache.taglibs.standard.tag.common.core.Util;
/**
* Cross-Site Scripting 체크하여 값을 되돌려 받는 핸들러 JSP TLD, 자바에서 사용가능
*
* @author 공통서비스 장동한
* @since 2010.11.09
* @version 1.0
* @see <pre>
* &lt;&lt; 개정이력(Modification Information) &gt;&gt;
*
* 수정일 수정자 수정내용
* ------- -------- ---------------------------
* 2010.11.09 장동한 최초 생성
*
* </pre>
*/
@SuppressWarnings("serial")
public class EgovComCrossSiteHndlr extends BodyTagSupport {
/*
* (One almost wishes XML and JSP could support "anonymous tags," given the
* amount of trouble we had naming this one!) :-) - sb
*/
// *********************************************************************
// Internal state
protected Object value; // tag attribute
protected String def; // tag attribute
protected boolean escapeXml; // tag attribute
private boolean needBody; // non-space body needed?
// *********************************************************************
// Construction and initialization
private final String m_sDiffChar ="()[]{}\"',:;= \t\r\n%!+-";
//private String m_sDiffChar ="()[]{}\"',:;=%!+-";
private final String m_sArrDiffChar [] = {
"&#40;","&#41;",
"&#91;","&#93;",
"&#123;","&#125;",
"&#34;","&#39;",
"&#44;","&#58;",
"&#59;","&#61;",
" ","\t", //" ","\t",
"\r","\n", //"\r","\n",
"&#37;","&#33;",
"&#43;","&#45;"
};
/**
* Constructs a new handler. As with TagSupport, subclasses should not
* provide other constructors and are expected to call the superclass
* constructor.
*/
public EgovComCrossSiteHndlr() {
super();
init();
}
// resets local state
private void init() {
value = def = null;
escapeXml = true;
needBody = false;
}
// Releases any resources we may have (or inherit)
public void release() {
super.release();
init();
}
// *********************************************************************
// Tag logic
// evaluates 'value' and determines if the body should be evaluted
public int doStartTag() throws JspException {
needBody = false; // reset state related to 'default'
this.bodyContent = null; // clean-up body (just in case container is
// pooling tag handlers)
JspWriter out = pageContext.getOut();
//System.out.println("EgovComCrossSiteFilter> ============================");
try {
// print value if available; otherwise, try 'default'
if (value != null) {
//System.out.println("EgovComCrossSiteFilter> =value");
String sWriteEscapedXml = getWriteEscapedXml();
//System.out.println("EgovComCrossSiteFilter sWriteEscapedXml>" + sWriteEscapedXml);
out.print(sWriteEscapedXml);
return SKIP_BODY;
} else {
// if we don't have a 'default' attribute, just go to the body
if (def == null) {
needBody = true;
return EVAL_BODY_BUFFERED;
}
//System.out.println("EgovComCrossSiteFilter def> ="+def);
// if we do have 'default', print it
if (def != null) {
// good 'default'
out(pageContext, escapeXml, def);
//System.out.println("EgovComCrossSiteFilter> ="+def);
}
return SKIP_BODY;
}
} catch (IOException ex) {
throw new JspException(ex.toString(), ex);
}
}
// prints the body if necessary; reports errors
public int doEndTag() throws JspException {
try {
//System.out.println("EgovComCrossSiteFilter ==== doEndTag");
if (!needBody){
return EVAL_PAGE; // nothing more to do
}
// trim and print out the body
if (bodyContent != null && bodyContent.getString() != null){
//String sWriteEscapedXml = getWriteEscapedXml();
//out2(pageContext, escapeXml, sWriteEscapedXml.toString());
//System.out.println("EgovComCrossSiteFilter> end");
//System.out.println("EgovComCrossSiteFilter sWriteEscapedXml > sWriteEscapedXml");
out(pageContext, escapeXml, bodyContent.getString().trim());
}
return EVAL_PAGE;
} catch (IOException ex) {
throw new JspException(ex.toString(), ex);
}
}
// *********************************************************************
// Public utility methods
/**
* Outputs <tt>text</tt> to <tt>pageContext</tt>'s current JspWriter. If
* <tt>escapeXml</tt> is true, performs the following substring replacements
* (to facilitate output to XML/HTML pages):
*
* & -> &amp; < -> &lt; > -> &gt; " -> &#034; ' -> &#039;
*
* See also Util.escapeXml().
*/
public static void out(PageContext pageContext, boolean escapeXml,
Object obj) throws IOException {
JspWriter w = pageContext.getOut();
if (!escapeXml) {
// write chars as is
if (obj instanceof Reader) {
Reader reader = (Reader) obj;
char[] buf = new char[4096];
int count;
while ((count = reader.read(buf, 0, 4096)) != -1) {
w.write(buf, 0, count);
}
} else {
w.write(obj.toString());
}
} else {
// escape XML chars
if (obj instanceof Reader) {
Reader reader = (Reader) obj;
char[] buf = new char[4096];
int count;
while ((count = reader.read(buf, 0, 4096)) != -1) {
writeEscapedXml(buf, count, w);
}
} else {
String text = obj.toString();
writeEscapedXml(text.toCharArray(), text.length(), w);
}
}
}
public static void out2(PageContext pageContext, boolean escapeXml,
Object obj) throws IOException {
JspWriter w = pageContext.getOut();
w.write(obj.toString());
}
/**
*
* Optimized to create no extra objects and write directly to the JspWriter
* using blocks of escaped and unescaped characters
*
*/
private static void writeEscapedXml(char[] buffer, int length, JspWriter w)
throws IOException {
int start = 0;
for (int i = 0; i < length; i++) {
char c = buffer[i];
if (c <= Util.HIGHEST_SPECIAL) {
char[] escaped = Util.specialCharactersRepresentation[c];
if (escaped != null) {
// add unescaped portion
if (start < i) {
w.write(buffer, start, i - start);
}
// add escaped xml
w.write(escaped);
start = i + 1;
}
}
}
// add rest of unescaped portion
if (start < length) {
w.write(buffer, start, length - start);
}
}
/**
*
* Optimized to create no extra objects and write directly to the JspWriter
* using blocks of escaped and unescaped characters
*
*/
private String getWriteEscapedXml() throws IOException {
String sRtn = "";
Object obj = this.value;
int start = 0;
String text = obj.toString();
int length = text.length();
char[] buffer = text.toCharArray();
boolean booleanDiff = false;
//String sDiffChar
//String sArrDiffChar
char[] cDiffChar = this.m_sDiffChar.toCharArray();
for(int i = 0; i < length; i++) {
char c = buffer[i];
booleanDiff = false;
for(int k = 0; k < cDiffChar.length; k++){
if(c == cDiffChar[k]){
sRtn = sRtn + m_sArrDiffChar[k];
booleanDiff = true;
continue;
}
}
if(booleanDiff) continue;
if (c <= Util.HIGHEST_SPECIAL) {
char[] escaped = Util.specialCharactersRepresentation[c];
if (escaped != null) {
// add unescaped portion
//if (start < i) {
// sRtn = sRtn + text.substring(start, i - start);
//}
// add escaped xml
//sRtn = sRtn + escaped;
//System.out.println(buffer[i]+" :: " + escaped);
for (int j = 0; j < escaped.length; j++) {
//System.out.println(buffer[i]+" :>: " + escaped[j]);
sRtn = sRtn + escaped[j];
}
//sRtn = sRtn+ escaped.toString();
//sRtn = sRtn + String.valueOf(buffer[i]);
start = i + 1;
}else{
sRtn = sRtn + c;
}
}else{
sRtn = sRtn + c;
}
}
return sRtn;
}
/**
*
* Optimized to create no extra objects and write directly to the JspWriter
* using blocks of escaped and unescaped characters
*
*/
@SuppressWarnings("unused")
private String getWriteEscapedXml(String sWriteString) throws IOException {
String sRtn = "";
Object obj = sWriteString;
int start = 0;
String text = obj.toString();
int length = text.length();
char[] buffer = text.toCharArray();
boolean booleanDiff = false;
//String sDiffChar
//String sArrDiffChar
char[] cDiffChar = this.m_sDiffChar.toCharArray();
for(int i = 0; i < length; i++) {
char c = buffer[i];
booleanDiff = false;
for(int k = 0; k < cDiffChar.length; k++){
if(c == cDiffChar[k]){
sRtn = sRtn + m_sArrDiffChar[k];
booleanDiff = true;
continue;
}
}
if(booleanDiff) continue;
if (c <= Util.HIGHEST_SPECIAL) {
char[] escaped = Util.specialCharactersRepresentation[c];
if (escaped != null) {
// add unescaped portion
//if (start < i) {
// sRtn = sRtn + text.substring(start, i - start);
//}
// add escaped xml
//sRtn = sRtn + escaped;
//System.out.println(buffer[i]+" :: " + escaped);
for (int j = 0; j < escaped.length; j++) {
//System.out.println(buffer[i]+" :>: " + escaped[j]);
sRtn = sRtn + escaped[j];
}
//sRtn = sRtn+ escaped.toString();
//sRtn = sRtn + String.valueOf(buffer[i]);
start = i + 1;
}else{
sRtn = sRtn + c;
}
}else{
sRtn = sRtn + c;
}
}
return sRtn;
}
// for tag attribute
public void setValue(Object value) {
this.value = value;
}
// for tag attribute
public void setDefault(String def) {
this.def = def;
}
// for tag attribute
public void setEscapeXml(boolean escapeXml) {
this.escapeXml = escapeXml;
}
/** 2011.10.10 cmd 라인상에서 편의제공을 위해 제공, 필요없을시 삭제하여도 무방함
public static void main(String[] args) throws IOException
{
EgovComCrossSiteHndlr egovComCrossSiteHndlr = new EgovComCrossSiteHndlr();
egovComCrossSiteHndlr.value = "TRNSMIT";
String sCrossSiteHndlr = egovComCrossSiteHndlr.getWriteEscapedXml();
//System.out.println("writeEscapedXml " + egovComCrossSiteHndlr.getWriteEscapedXml());
/*
System.out.println("sCrossSiteHndlr|"+ sCrossSiteHndlr + "|");
try{
System.out.println("TRY TEST 1");
throw new Exception();
}catch(Exception e){
System.out.println("TRY TEST 2");
}finally{
System.out.println("TRY TEST 3");
}
}
*/
}

View File

@ -0,0 +1,46 @@
package egovframework.com.cmm;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import egovframework.rte.fdl.cmmn.exception.handler.ExceptionHandler;
/**
* @Class Name : EgovComExcepHndlr.java
* @Description : 공통서비스의 exception 처리 클래스
* @Modification Information
*
* 수정일 수정자 수정내용
* ------- ------- -------------------
* 2009. 3. 13. 이삼섭
*
* @author 공통 서비스 개발팀 이삼섭
* @since 2009. 3. 13.
* @version
* @see
*
*/
public class EgovComExcepHndlr implements ExceptionHandler {
protected Log log = LogFactory.getLog(this.getClass());
/*
@Resource(name = "otherSSLMailSender")
private SimpleSSLMail mailSender;
*/
/**
* 발생된 Exception을 처리한다.
*/
public void occur(Exception ex, String packageName) {
//log.debug(" EgovServiceExceptionHandler run...............");
try {
//mailSender. send(ex, packageName);
//log.debug(" sending a alert mail is completed ");
log.error(packageName, ex);
} catch (Exception e) {
//e.printStackTrace();
log.fatal(packageName, ex);// 2011.10.10 보안점검 후속조치
//throw new RuntimeException(ex);
}
}
}

View File

@ -0,0 +1,16 @@
package egovframework.com.cmm;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import egovframework.rte.fdl.cmmn.exception.handler.ExceptionHandler;
public class EgovComOthersExcepHndlr implements ExceptionHandler {
protected Log log = LogFactory.getLog(this.getClass());
public void occur(Exception exception, String packageName) {
//log.debug(" EgovServiceExceptionHandler run...............");
log.error(packageName, exception);
}
}

View File

@ -0,0 +1,62 @@
package egovframework.com.cmm;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.NoSuchBeanDefinitionException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.stereotype.Service;
/**
* EgovComUtil 클래스
*
* @author 서준식
* @since 2011.09.15
* @version 1.0
* @see
*
* <pre>
* << 개정이력(Modification Information) >>
*
* 수정일 수정자 수정내용
* ------- ------------- ----------------------
* 2011.09.15 서준식 최초 생성
* </pre>
*/
@Service("egovUtil")
public class EgovComponentChecker implements ApplicationContextAware{
public static ApplicationContext context;
public void setApplicationContext(ApplicationContext context)
throws BeansException {
this.context = context;
}
/**
* Spring MVC에서 설정한 빈이 아닌 서비스 (컴포넌트)만을 검색할 있음
*
*/
public static boolean hasComponent(String componentName){
try{
Object component = context.getBean(componentName);
if(component == null){
return false;
}else{
return true;
}
}catch(NoSuchBeanDefinitionException ex){// 해당 컴포넌트를 찾을 수없을 경우 false반환
return false;
}
}
}

View File

@ -0,0 +1,63 @@
package egovframework.com.cmm;
import java.util.Locale;
import org.springframework.context.MessageSource;
import org.springframework.context.support.ReloadableResourceBundleMessageSource;
/**
* 메시지 리소스 사용을 위한 MessageSource 인터페이스 ReloadableResourceBundleMessageSource 클래스의 구현체
* @author 공통서비스 개발팀 이문준
* @since 2009.06.01
* @version 1.0
* @see
*
* <pre>
* << 개정이력(Modification Information) >>
*
* 수정일 수정자 수정내용
* ------- -------- ---------------------------
* 2009.03.11 이문준 최초 생성
*
* </pre>
*/
public class EgovMessageSource extends ReloadableResourceBundleMessageSource implements MessageSource {
private ReloadableResourceBundleMessageSource reloadableResourceBundleMessageSource;
/**
* getReloadableResourceBundleMessageSource()
* @param reloadableResourceBundleMessageSource - resource MessageSource
* @return ReloadableResourceBundleMessageSource
*/
public void setReloadableResourceBundleMessageSource(ReloadableResourceBundleMessageSource reloadableResourceBundleMessageSource) {
this.reloadableResourceBundleMessageSource = reloadableResourceBundleMessageSource;
}
/**
* getReloadableResourceBundleMessageSource()
* @return ReloadableResourceBundleMessageSource
*/
public ReloadableResourceBundleMessageSource getReloadableResourceBundleMessageSource() {
return reloadableResourceBundleMessageSource;
}
/**
* 정의된 메세지 조회
* @param code - 메세지 코드
* @return String
*/
public String getMessage(String code) {
return getReloadableResourceBundleMessageSource().getMessage(code, null, Locale.getDefault());
}
/**
* 정의된 메세지 조회
* @param code - 메세지 코드
* @return String
*/
public String getMessage(String code, Object[] obj) {
return getReloadableResourceBundleMessageSource().getMessage(code, obj, Locale.getDefault());
}
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,66 @@
package egovframework.com.cmm;
import javax.servlet.ServletContext;
import org.springframework.web.context.ServletContextAware;
import egovframework.rte.ptl.mvc.tags.ui.pagination.AbstractPaginationRenderer;
/**
* FrtImagePaginationRenderer.java 클래스
*
* @author 서준식
* @since 2011. 9. 16.
* @version 1.0
* @see
*
* <pre>
* << 개정이력(Modification Information) >>
*
* 수정일 수정자 수정내용
* ------- ------------- ----------------------
* 2011. 9. 16. 서준식 이미지 경로에 ContextPath추가
* </pre>
*/
public class FrtImagePaginationRenderer extends AbstractPaginationRenderer implements ServletContextAware
{
private ServletContext servletContext;
public FrtImagePaginationRenderer() {
}
public void initVariables()
{
//firstPageLabel = "<a href=\"?pageIndex={1}\" class=\"first\" onclick=\"{0}({1});return false; \"><img src=\"" + servletContext.getContextPath() + "/images/site/frt/btn/btn_listBtn_first.gif\" alt=\"처음으로\"/></a>&#160;";
//previousPageLabel = "<a href=\"?pageIndex={1}\" class=\"before\" onclick=\"{0}({1});return false; \"><img src=\"" + servletContext.getContextPath() + "/images/site/frt/btn/btn_listBtn_prev.gif\" alt=\"이전글\"/></a>&#160;";
//currentPageLabel = "<a href=\"#\" class=\"current\" title=\"선택 됨\">{0}</a>&#160;";
//otherPageLabel = "<a href=\"?pageIndex={1}\" onclick=\"{0}({1});return false; \">{2}</a>&#160;";
//nextPageLabel = "<a href=\"?pageIndex={1}\" class=\"next\" onclick=\"{0}({1});return false; \"><img src=\"" + servletContext.getContextPath() + "/images/site/frt/btn/btn_listBtn_next.gif\" alt=\"다음글\"/></a>&#160;";
//lastPageLabel = "<a href=\"?pageIndex={1}\" class=\"last\" onclick=\"{0}({1});return false; \"><img src=\"" + servletContext.getContextPath() + "/images/site/frt/btn/btn_listBtn_last.gif\" alt=\"마지막으로\"/></a>&#160;";
/* 2025.07.22 나혁제 웹접근성 개선 처리
firstPageLabel = "<a href=\"?pageIndex={1}\" class=\"first\" onclick=\"{0}({1});return false; \"></a>&#160;";
previousPageLabel = "<a href=\"?pageIndex={1}\" class=\"before\" onclick=\"{0}({1});return false; \"></a>&#160;";
currentPageLabel = "<a href=\"#\" class=\"current\" title=\"선택 됨\">{0}</a>&#160;";
otherPageLabel = "<a href=\"?pageIndex={1}\" onclick=\"{0}({1});return false; \">{2}</a>&#160;";
nextPageLabel = "<a href=\"?pageIndex={1}\" class=\"next\" onclick=\"{0}({1});return false; \"></a>&#160;";
lastPageLabel = "<a href=\"?pageIndex={1}\" class=\"last\" onclick=\"{0}({1});return false; \"></a>&#160;";
*/
firstPageLabel = "<a href=\"?pageIndex={1}\" class=\"first\" onclick=\"{0}({1});return false;\" title=\"맨앞으로\" ></a>&#160;";
previousPageLabel = "<a href=\"?pageIndex={1}\" class=\"before\" onclick=\"{0}({1});return false;\" title=\"한페이지 앞으로\" ></a>&#160;";
currentPageLabel = "<a href=\"#\" class=\"current\" title=\"선택 됨\">{0}</a>&#160;";
otherPageLabel = "<a href=\"?pageIndex={1}\" onclick=\"{0}({1});return false;\" title=\"해당페이지이동\" >{2}</a>&#160;";
nextPageLabel = "<a href=\"?pageIndex={1}\" class=\"next\" onclick=\"{0}({1});return false;\" title=\"한페이지 뒤로\" ></a>&#160;";
lastPageLabel = "<a href=\"?pageIndex={1}\" class=\"last\" onclick=\"{0}({1});return false;\" title=\"맨뒤로\" ></a>&#160;";
}
public void setServletContext(ServletContext servletContext)
{
this.servletContext = servletContext;
initVariables();
}
}

View File

@ -0,0 +1,49 @@
package egovframework.com.cmm;
import javax.servlet.ServletContext;
import org.springframework.web.context.ServletContextAware;
import egovframework.rte.ptl.mvc.tags.ui.pagination.AbstractPaginationRenderer;
/**
* ImagePaginationRenderer.java 클래스
*
* @author 서준식
* @since 2011. 9. 16.
* @version 1.0
* @see
*
* <pre>
* << 개정이력(Modification Information) >>
*
* 수정일 수정자 수정내용
* ------- ------------- ----------------------
* 2011. 9. 16. 서준식 이미지 경로에 ContextPath추가
* </pre>
*/
public class ImagePaginationRenderer extends AbstractPaginationRenderer implements ServletContextAware{
private ServletContext servletContext;
public ImagePaginationRenderer() {
}
public void initVariables()
{
firstPageLabel = "<a href=\"?pageIndex={1}\" onclick=\"{0}({1});return false; \"><img src=\"" + servletContext.getContextPath() + "/images/site/mnt/first.gif\" alt=\"처음\" border=\"0\"/></a>&#160;";
previousPageLabel = "<a href=\"?pageIndex={1}\" onclick=\"{0}({1});return false; \"><img src=\"" + servletContext.getContextPath() + "/images/site/mnt/prev.gif\" alt=\"이전\" border=\"0\"/></a>&#160;";
currentPageLabel = "<strong>{0}</strong>&#160;";
otherPageLabel = "<a href=\"?pageIndex={1}\" onclick=\"{0}({1});return false; \">{2}</a>&#160;";
nextPageLabel = "<a href=\"?pageIndex={1}\" onclick=\"{0}({1});return false; \"><img src=\"" + servletContext.getContextPath() + "/images/site/mnt/next.gif\" alt=\"다음\" border=\"0\"/></a>&#160;";
lastPageLabel = "<a href=\"?pageIndex={1}\" onclick=\"{0}({1});return false; \"><img src=\"" + servletContext.getContextPath() + "/images/site/mnt/last.gif\" alt=\"마지막\" border=\"0\"/></a>&#160;";
}
public void setServletContext(ServletContext servletContext) {
this.servletContext = servletContext;
initVariables();
}
}

View File

@ -0,0 +1,50 @@
package egovframework.com.cmm;
/**
* IncludedInfo annotation을 바탕으로 화면에 표시할 정보를 구성하기 위한 VO 클래스
* @author 공통컴포넌트 정진오
* @since 2011.08.26
* @version 2.0.0
* @see
*
* <pre>
* << 개정이력(Modification Information) >>
*
* 수정일 수정자 수정내용
* ------- -------- ---------------------------
* 2011.08.26 정진오 최초 생성
*
* </pre>
*/
public class IncludedCompInfoVO {
private String name;
private String listUrl;
private int order;
private int gid;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getListUrl() {
return listUrl;
}
public void setListUrl(String listUrl) {
this.listUrl = listUrl;
}
public int getOrder() {
return order;
}
public void setOrder(int order) {
this.order = order;
}
public int getGid() {
return gid;
}
public void setGid(int gid) {
this.gid = gid;
}
}

View File

@ -0,0 +1,434 @@
package egovframework.com.cmm;
import java.io.Serializable;
/**
* @Class Name : LoginVO.java
* @Description : Login VO class
* @Modification Information
* @
* @ 수정일 수정자 수정내용
* @ ------- -------- ---------------------------
* @ 2009.03.03 박지욱 최초 생성
*
* @author 공통서비스 개발팀 박지욱
* @since 2009.03.03
* @version 1.0
* @see
*
*/
public class LoginVO implements Serializable{
/**
*
*/
private static final long serialVersionUID = -8274004534207618049L;
/** 아이디 */
private String id;
/** 이름 */
private String name;
/** 주민등록번호 */
private String ihidNum;
/** 이메일주소 */
private String email;
/** 비밀번호 */
private String password;
/** 비밀번호 힌트 */
private String passwordHint;
/** 비밀번호 정답 */
private String passwordCnsr;
/** 사용자구분 */
private String userSe;
/** 조직(부서)ID */
private String orgnztId;
/** 조직(부서)명 */
private String orgnztNm;
/** 고유아이디 */
private String uniqId;
/** 로그인 후 이동할 페이지 */
private String url;
/** 사용자 IP정보 */
private String ip;
/** GPKI인증 DN */
private String dn;
/** 소속지역(시도) */
private String activeSidoArea;
/** 소속지역(시군구) */
private String activeGugunArea;
/** 권한 */
private String auth;
/** 구분 */
private String workArea;
/** 휴대폰번호 */
private String mbtlnum;
/** 휴대폰번호 */
private String sendCate;
/**
* 최근 접속일자
*/
private String creatDt;
/**
* 마일리지 점수
*/
private String accPoint;
//휴먼 고객
private String esntl_id;
private String mber_id;
/** 휴면 전환일 */
private String diapause_dt;
/** 휴면 상태 */
private String diapause_stat;
/** SMS 수신여부 */
private String recvSmsYn;
private String lockYn;
private int lockCount;
public int getLockCount() {
return lockCount;
}
public void setLockCount(int lockCount) {
this.lockCount = lockCount;
}
public String getLockYn() {
return lockYn;
}
public void setLockYn(String lockYn) {
this.lockYn = lockYn;
}
/**
* @return the creatDt
*/
public String getCreatDt() {
return creatDt;
}
/**
* @param creatDt the creatDt to set
*/
public void setCreatDt(String creatDt) {
this.creatDt = creatDt;
}
/**
* @return the accPoint
*/
public String getAccPoint() {
return accPoint;
}
/**
* @param accPoint the accPoint to set
*/
public void setAccPoint(String accPoint) {
this.accPoint = accPoint;
}
/**
* id attribute 리턴한다.
* @return String
*/
public String getId() {
return id;
}
/**
* id attribute 값을 설정한다.
* @param id String
*/
public void setId(String id) {
this.id = id;
}
/**
* name attribute 리턴한다.
* @return String
*/
public String getName() {
return name;
}
/**
* name attribute 값을 설정한다.
* @param name String
*/
public void setName(String name) {
this.name = name;
}
/**
* ihidNum attribute 리턴한다.
* @return String
*/
public String getIhidNum() {
return ihidNum;
}
/**
* ihidNum attribute 값을 설정한다.
* @param ihidNum String
*/
public void setIhidNum(String ihidNum) {
this.ihidNum = ihidNum;
}
/**
* email attribute 리턴한다.
* @return String
*/
public String getEmail() {
return email;
}
/**
* email attribute 값을 설정한다.
* @param email String
*/
public void setEmail(String email) {
this.email = email;
}
/**
* password attribute 리턴한다.
* @return String
*/
public String getPassword() {
return password;
}
/**
* password attribute 값을 설정한다.
* @param password String
*/
public void setPassword(String password) {
this.password = password;
}
/**
* passwordHint attribute 리턴한다.
* @return String
*/
public String getPasswordHint() {
return passwordHint;
}
/**
* passwordHint attribute 값을 설정한다.
* @param passwordHint String
*/
public void setPasswordHint(String passwordHint) {
this.passwordHint = passwordHint;
}
/**
* passwordCnsr attribute 리턴한다.
* @return String
*/
public String getPasswordCnsr() {
return passwordCnsr;
}
/**
* passwordCnsr attribute 값을 설정한다.
* @param passwordCnsr String
*/
public void setPasswordCnsr(String passwordCnsr) {
this.passwordCnsr = passwordCnsr;
}
/**
* userSe attribute 리턴한다.
* @return String
*/
public String getUserSe() {
return userSe;
}
/**
* userSe attribute 값을 설정한다.
* @param userSe String
*/
public void setUserSe(String userSe) {
this.userSe = userSe;
}
/**
* orgnztId attribute 리턴한다.
* @return String
*/
public String getOrgnztId() {
return orgnztId;
}
/**
* orgnztId attribute 값을 설정한다.
* @param orgnztId String
*/
public void setOrgnztId(String orgnztId) {
this.orgnztId = orgnztId;
}
/**
* uniqId attribute 리턴한다.
* @return String
*/
public String getUniqId() {
return uniqId;
}
/**
* uniqId attribute 값을 설정한다.
* @param uniqId String
*/
public void setUniqId(String uniqId) {
this.uniqId = uniqId;
}
/**
* url attribute 리턴한다.
* @return String
*/
public String getUrl() {
return url;
}
/**
* url attribute 값을 설정한다.
* @param url String
*/
public void setUrl(String url) {
this.url = url;
}
/**
* ip attribute 리턴한다.
* @return String
*/
public String getIp() {
return ip;
}
/**
* ip attribute 값을 설정한다.
* @param ip String
*/
public void setIp(String ip) {
this.ip = ip;
}
/**
* dn attribute 리턴한다.
* @return String
*/
public String getDn() {
return dn;
}
/**
* dn attribute 값을 설정한다.
* @param dn String
*/
public void setDn(String dn) {
this.dn = dn;
}
/**
* @return the orgnztNm
*/
public String getOrgnztNm() {
return orgnztNm;
}
/**
* @param orgnztNm the orgnztNm to set
*/
public void setOrgnztNm(String orgnztNm) {
this.orgnztNm = orgnztNm;
}
/**
* @return the activeSidoArea
*/
public String getActiveSidoArea() {
return activeSidoArea;
}
/**
* @param activeSidoArea the activeSidoArea to set
*/
public void setActiveSidoArea(String activeSidoArea) {
this.activeSidoArea = activeSidoArea;
}
/**
* @return the activeGugunArea
*/
public String getActiveGugunArea() {
return activeGugunArea;
}
/**
* @param activeGugunArea the activeGugunArea to set
*/
public void setActiveGugunArea(String activeGugunArea) {
this.activeGugunArea = activeGugunArea;
}
/**
* @return the auth
*/
public String getAuth() {
return auth;
}
/**
* @param auth the auth to set
*/
public void setAuth(String auth) {
this.auth = auth;
}
/**
* @return the workArea
*/
public String getWorkArea() {
return workArea;
}
/**
* @param workArea the workArea to set
*/
public void setWorkArea(String workArea) {
this.workArea = workArea;
}
/**
* @return the mbtlnum
*/
public String getMbtlnum() {
return mbtlnum;
}
/**
* @param mbtlnum the mbtlnum to set
*/
public void setMbtlnum(String mbtlnum) {
this.mbtlnum = mbtlnum;
}
/**
* @return the sendCate
*/
public String getSendCate() {
return sendCate;
}
/**
* @param sendCate the sendCate to set
*/
public void setSendCate(String sendCate) {
this.sendCate = sendCate;
}
public String getEsntl_id() {
return esntl_id;
}
public void setEsntl_id(String esntl_id) {
this.esntl_id = esntl_id;
}
public String getMber_id() {
return mber_id;
}
public void setMber_id(String mber_id) {
this.mber_id = mber_id;
}
public String getRecvSmsYn() {
return recvSmsYn;
}
public void setRecvSmsYn(String recvSmsYn) {
this.recvSmsYn = recvSmsYn;
}
public String getDiapause_dt() {
return diapause_dt;
}
public void setDiapause_dt(String diapause_dt) {
this.diapause_dt = diapause_dt;
}
public String getDiapause_stat() {
return diapause_stat;
}
public void setDiapause_stat(String diapause_stat) {
this.diapause_stat = diapause_stat;
}
}

View File

@ -0,0 +1,82 @@
package egovframework.com.cmm;
import javax.servlet.ServletContext;
import org.springframework.web.context.ServletContextAware;
import egovframework.rte.ptl.mvc.tags.ui.pagination.AbstractPaginationRenderer;
import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo;
/**
* FrtImagePaginationRenderer.java 클래스
*
* @author 서준식
* @since 2011. 9. 16.
* @version 1.0
* @see
*
* <pre>
* << 개정이력(Modification Information) >>
*
* 수정일 수정자 수정내용
* ------- ------------- ----------------------
* 2011. 9. 16. 서준식 이미지 경로에 ContextPath추가
* </pre>
*/
public class MblImagePaginationRenderer extends AbstractPaginationRenderer implements ServletContextAware{
private ServletContext servletContext;
public MblImagePaginationRenderer() {
}
public void initVariables(){
firstPageLabel = "<a href=\"?pageIndex={1}\" class=\"pg_first\" onclick=\"{0}({1});return false; \">처음으로</a>&#160;";
previousPageLabel = "<a href=\"?pageIndex={1}\" class=\"pg_prev\" onclick=\"{0}({1});return false; \">이전</a>&#160;";
currentPageLabel = "<a href=\"#\" class=\"active\" title=\"선택 됨\">{0}</a>&#160;";
otherPageLabel = "<a href=\"?pageIndex={1}\" onclick=\"{0}({1});return false; \">{2}</a>&#160;";
nextPageLabel = "<a href=\"?pageIndex={1}\" class=\"pg_next\" onclick=\"{0}({1});return false; \">다음</a>&#160;";
lastPageLabel = "<a href=\"?pageIndex={1}\" class=\"pg_last\" onclick=\"{0}({1});return false; \">마지막으로</a>&#160;";
}
public void setServletContext(ServletContext servletContext) {
this.servletContext = servletContext;
initVariables();
}
/*@Override
public String renderPagination(PaginationInfo paginationInfo, String jsFunction) {
String mblPagination = "";*/
/*
if (paginationInfo.getCurrentPageNo() == 1)
mblPagination += "<a href=\"#nohref\" class=\"btn_prev\">이전페이지</a>";
else
mblPagination += "<a href=\"javascript:" + jsFunction + "(" + (paginationInfo.getCurrentPageNo() - 1) + ");\" class=\"btn_prev\">이전페이지</a>";
mblPagination += "<span><strong>" + paginationInfo.getCurrentPageNo() + "</strong> / " + paginationInfo.getTotalPageCount() + "</span>";
if (paginationInfo.getCurrentPageNo() == paginationInfo.getTotalPageCount())
mblPagination += "<a href=\"#nohref\" class=\"btn_next\">다음페이지</a>";
else
mblPagination += "<a href=\"javascript:" + jsFunction + "(" + (paginationInfo.getCurrentPageNo() + 1) + ");\" class=\"btn_next\">다음페이지</a>";*/
/*mblPagination = "<a href=\"?pageIndex={1}\" class=\"pg_first\" onclick=\"{0}({1});return false; \">처음으로</a>&#160;";
mblPagination = "<a href=\"?pageIndex={1}\" class=\"pg_prev\" onclick=\"{0}({1});return false; \">이전</a>&#160;";
mblPagination = "<a href=\"#\" class=\"active\" title=\"선택 됨\">{0}</a>&#160;";
mblPagination = "<a href=\"?pageIndex={1}\" onclick=\"{0}({1});return false; \">{2}</a>&#160;";
mblPagination = "<a href=\"?pageIndex={1}\" class=\"pg_next\" onclick=\"{0}({1});return false; \">다음</a>&#160;";
mblPagination = "<a href=\"?pageIndex={1}\" class=\"pg_last\" onclick=\"{0}({1});return false; \">마지막으로</a>&#160;";*/
/*mblPagination = "<a href=\"?pageIndex={1}\" onclick=\"{0}({1});return false; \"><img src=\"" + servletContext.getContextPath() + "/images/site/mbl/btn/btn_first.png\" alt=\"처음으로\"/></a>&#160;";
mblPagination = "<a href=\"?pageIndex={1}\" onclick=\"{0}({1});return false; \"><img src=\"" + servletContext.getContextPath() + "/images/site/mbl/btn/btn_prev.png\" alt=\"이전글\"/></a>&#160;";
mblPagination = "<a href=\"#\" class=\"pagingNum\" title=\"선택 됨\">{0}</a>&#160;";
mblPagination = "<a href=\"?pageIndex={1}\" onclick=\"{0}({1});return false; \">{2}</a>&#160;";
mblPagination = "<a href=\"?pageIndex={1}\" onclick=\"{0}({1});return false; \"><img src=\"" + servletContext.getContextPath() + "/images/site/mbl/btn/btn_next.png\" alt=\"다음글\"/></a>&#160;";
mblPagination = "<a href=\"?pageIndex={1}\" onclick=\"{0}({1});return false; \"><img src=\"" + servletContext.getContextPath() + "/images/site/mbl/btn/btn_last.png\" alt=\"마지막으로\"/></a>&#160;";*/
/*
return mblPagination;
}*/
}

View File

@ -0,0 +1,19 @@
package egovframework.com.cmm;
import egovframework.com.utl.sim.service.EgovFileScrty;
public class PassCreate {
public static void main(String[] args) throws Exception {
String[] pw = { "dongmoo13*", "dbstn3524*", "dlehddnr1388*", "ensrlwkd*", "rudghks7170*", "zzkoko12*",
"skfkabb*", "jisung0308*", "wnwjdfl12*", "khs05311*", "ar4814*", "96421kj0*", "yunbin0318*", "chs2366*",
"7339412*", "qmffortizm98*", "dlehd503*", "cjdrjqnr123*", "tkdals7368*", "woiz851*", "tndwoskfro*",
"ban9776*", "lkk1125*", "tjdgh0919*", "changyi17*", "cobra930310*", "cowhdfla*", "bsb5295*", "hms2518*",
"angwnk*" };
System.out.println("==============비밀번호생성================");
for (int i = 0; i < pw.length; i++) {
String enpassword = EgovFileScrty.encryptPassword(pw[i]);
System.out.println(enpassword);
}
}
}

View File

@ -0,0 +1,305 @@
package egovframework.com.cmm;
import java.io.IOException;
import java.io.InputStream;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Timer;
import java.util.TimerTask;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.factory.DisposableBean;
import org.springframework.core.io.Resource;
import org.springframework.orm.ibatis.SqlMapClientFactoryBean;
import com.ibatis.sqlmap.client.SqlMapClient;
import com.ibatis.sqlmap.engine.impl.ExtendedSqlMapClient;
import edu.emory.mathcs.backport.java.util.concurrent.locks.Lock;
import edu.emory.mathcs.backport.java.util.concurrent.locks.ReentrantReadWriteLock;
/**
* iBATIS sqlmap 클라이언트의 sqlMap sqlMapConfig 파일의 변경을 감지, 실시간 적용하는 팩토리 .
*
* <h2>개요</h2>
* iBATIS + Spring 개발시 쿼리 매핑 파일이 변경되면 웹애플리케이션 서버를 재기동해야 적용이 됐었다. 이러한 불편을 없애기
* 위해 매핑 파일 변경을 실시간으로 감시, 적용하는 모듈을 제공한다.<br />
*
* 감시 대상 모듈은 iBATIS sqlmap 클라이언트의 sqlMap sqlMapConfig 파일의 변경을 감지, 실시간 적용해준다.<br />
*
* <h2>제약사항</h2>
* 감시 대상 파일들은 스타트업 당시에 결정된다. 그러므로 추가된 파일들에 대해서는 감지가 되지 않고, 삭제된 파일들에 대해서는 경고
* 메시지가 나온다. 예를 들어, sqlMapConfig에 sqlMap 파일이 추가되거나 하면 해당 맵이 적용되기는 하지만, 실시간 변경 감지
* 대상으로 추가되지는 않는다.<br />
*
* <h2>요구사항</h2>
* iBATIS sqlmap 2.3.0, Java 1.4, Spring 2.5 이상 또는 iBATIS sqlmap 2.3.2 이상,<br />
* Java 1.5 이상, Spring 2.5.5 이상<br />
*
* <h2>적용 순서</h2>
* 1. Spring의 applicationContext 설정 파일 sqlMapClient를 얻기 위한
* SqlMapClientFactory 빈을 신규 클래스로 교체한다. <br />
* 2. 변경 감지 시간 간격 (1000분의 1초 단위) 지정한다.<br />
* <PRE>
* &lt;bean id="sqlMapClient" class="jcf.dao.ibatis.sqlmap.RefreshableSqlMapClientFactoryBean"&gt;
* &lt;!-- &lt;bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean"&gt;--&gt;
* &lt;property name="configLocation" value="classpath:jcf/dao/ibatis/sqlmap/sqlmap-config.xml" /&gt;
* &lt;property name="dataSource" ref="dataSource" /&gt;
*
* &lt;!-- Java 1.5 or higher and iBATIS 2.3.2 or higher REQUIRED --&gt;
* &lt;property name="mappingLocations" value="jcf/dao/\*\*\/T\*.xml" /&gt;
* &lt;!-- &lt;property name="mappingLocations" value="file:///D:/Type.xml" /&gt;--&gt;
*
* &lt;property name="checkInterval" value="1000" /&gt;
* &lt;/bean&gt;
* </PRE>
*
* 3. 라이브러리 추가 <br />
* backport-util-concurrent-3.1.jar<br />
*
* 테스트 기존의 applicationContext에 등록되어 있던 sqlMapClient에 해당하는 mappingFile들을 편집하거나,
* sqlMapConfig 파일 또는 파일에 등록된 mappingFile(sqlMap 파일)들을 편집하면 주어진 변경감지 시간 변경사항이 적용된다.<br />
* <br />
*
* @author setq
*/
public class RefreshableSqlMapClientFactoryBean extends SqlMapClientFactoryBean
implements SqlMapClientRefreshable, DisposableBean {
private static final Log logger = LogFactory
.getLog(RefreshableSqlMapClientFactoryBean.class);
private SqlMapClient proxy;
private int interval;
private Timer timer;
private TimerTask task;
private Resource[] configLocations;
private Resource[] mappingLocations;
/**
* 파일 감시 쓰레드가 실행중인지 여부.
*/
private boolean running = false;
private final ReentrantReadWriteLock rwl = new ReentrantReadWriteLock();
private final Lock r = rwl.readLock();
private final Lock w = rwl.writeLock();
public void setConfigLocation(Resource configLocation) {
super.setConfigLocation(configLocation);
this.configLocations = (configLocation != null ? new Resource[] { configLocation }
: null);
}
public void setConfigLocations(Resource[] configLocations) {
super.setConfigLocations(configLocations);
this.configLocations = configLocations;
}
public void setMappingLocations(Resource[] mappingLocations) {
super.setMappingLocations(mappingLocations);
this.mappingLocations = mappingLocations;
}
/**
* iBATIS 설정을 다시 읽어들인다.<br /> SqlMapClient 인스턴스 자체를 새로 생성하여 교체한다.
*
* @throws Exception
*/
public void refresh() throws Exception {
if (logger.isInfoEnabled()) {
logger.info("refreshing sqlMapClient.");
}
/*
* WRITE LOCK.
*/
w.lock();
try {
super.afterPropertiesSet();
} finally {
w.unlock();
}
}
/**
* 싱글톤 멤버로 SqlMapClient 원본 대신 프록시로 설정하도록 오버라이드.
*/
public void afterPropertiesSet() throws Exception {
super.afterPropertiesSet();
setRefreshable();
}
private void setRefreshable() {
proxy = (SqlMapClient) Proxy.newProxyInstance(SqlMapClient.class
.getClassLoader(), new Class[] { SqlMapClient.class,
ExtendedSqlMapClient.class }, new InvocationHandler() {
public Object invoke(Object proxy, Method method, Object[] args)
throws Throwable {
return method.invoke(getParentObject(), args);
}
});
task = new TimerTask() {
private Map map = new HashMap();
public void run() {
/*if (isModified()) {
try {
refresh();
}
catch (Exception e) {
logger.error("caught exception", e);
}
}*/
}
private boolean isModified() {
boolean retVal = false;
for (int i = 0; i < configLocations.length; i++) {
Resource configLocation = configLocations[i];
retVal |= findModifiedResource(configLocation);
}
if (mappingLocations != null) {
for (int i = 0; i < mappingLocations.length; i++) {
Resource mappingLocation = mappingLocations[i];
retVal |= findModifiedResource(mappingLocation);
}
}
return retVal;
}
private boolean findModifiedResource(Resource resource) {
boolean retVal = false;
List modifiedResources = new ArrayList();
try {
long modified = resource.lastModified();
if (map.containsKey(resource)) {
long lastModified = ((Long) map.get(resource)).longValue();
if (lastModified != modified) {
map.put(resource, new Long(modified));
modifiedResources.add(resource.getDescription());
retVal = true;
}
}
else {
map.put(resource, new Long(modified));
}
}
catch (IOException e) {
logger.error("caught exception", e);
}
if (retVal) {
// if (logger.isInfoEnabled()) {
// logger.info("modified files : " + modifiedResources);
// }
logger.info("modified files : " + modifiedResources);
}
return retVal;
}
};
timer = new Timer(true);
resetInterval();
List mappingLocationList = extractMappingLocations(configLocations);
if (this.mappingLocations != null) {
mappingLocationList.addAll(Arrays.asList(this.mappingLocations));
}
this.mappingLocations = (Resource[]) mappingLocationList.toArray(new Resource[0]);
}
private List extractMappingLocations(Resource[] configLocations) {
List mappingLocationList = new ArrayList();
SqlMapExtractingSqlMapConfigParser configParser = new SqlMapExtractingSqlMapConfigParser();
for (int i = 0; i < configLocations.length; i++) {
try {
InputStream is = configLocations[i].getInputStream();
mappingLocationList.addAll(configParser.parse(is));
}
catch (IOException ex) {
logger.warn("Failed to parse config resource: "
+ configLocations[i], ex.getCause());
}
}
return mappingLocationList;
}
private Object getParentObject() {
/*
* READ LOCK.
*/
r.lock();
try {
return super.getObject();
} finally {
r.unlock();
}
}
public SqlMapClient getObject() {
return this.proxy;
}
public Class getObjectType() {
return (this.proxy != null ? this.proxy.getClass() : SqlMapClient.class);
}
public boolean isSingleton() {
return true;
}
public void setCheckInterval(int ms) {
interval = ms;
if (timer != null) {
resetInterval();
}
}
private void resetInterval() {
if (running) {
timer.cancel();
running = false;
}
if (interval > 0) {
timer.schedule(task, 0, interval);
running = true;
}
}
public void destroy() throws Exception {
timer.cancel();
}
}

View File

@ -0,0 +1,203 @@
package egovframework.com.cmm;
import java.io.IOException;
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Timer;
import java.util.TimerTask;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.springframework.beans.factory.DisposableBean;
import org.springframework.core.io.Resource;
import java.util.concurrent.locks.Lock;
import java.util.concurrent.locks.ReentrantReadWriteLock;
/**
* mybatis mapper 자동 감지 자동으로 서버 재시작이 필요 없이 반영
*
* @author sbcoba
*/
public class RefreshableSqlSessionFactoryBean extends SqlSessionFactoryBean implements DisposableBean {
private static final Log log = LogFactory.getLog(RefreshableSqlSessionFactoryBean.class);
private SqlSessionFactory proxy;
private int interval = 500;
private Timer timer;
private TimerTask task;
private Resource[] mapperLocations;
/**
* 파일 감시 쓰레드가 실행중인지 여부.
*/
private boolean running = false;
private final ReentrantReadWriteLock rwl = new ReentrantReadWriteLock();
private final Lock r = rwl.readLock();
private final Lock w = rwl.writeLock();
public void setMapperLocations(Resource[] mapperLocations) {
super.setMapperLocations(mapperLocations);
this.mapperLocations = mapperLocations;
}
public void setInterval(int interval) {
this.interval = interval;
}
/**
* @throws Exception
*/
public void refresh() throws Exception {
if (log.isInfoEnabled()) {
log.info("refreshing sqlMapClient.");
}
w.lock();
try {
super.afterPropertiesSet();
} finally {
w.unlock();
}
}
/**
* 싱글톤 멤버로 SqlMapClient 원본 대신 프록시로 설정하도록 오버라이드.
*/
public void afterPropertiesSet() throws Exception {
super.afterPropertiesSet();
setRefreshable();
}
private void setRefreshable() {
proxy = (SqlSessionFactory) Proxy.newProxyInstance(
SqlSessionFactory.class.getClassLoader(),
new Class[]{SqlSessionFactory.class},
new InvocationHandler() {
public Object invoke(Object proxy, Method method,
Object[] args) throws Throwable {
// log.debug("method.getName() : " + method.getName());
return method.invoke(getParentObject(), args);
}
});
task = new TimerTask() {
private Map<Resource, Long> map = new HashMap<Resource, Long>();
public void run() {
/* if (isModified()) {
try {
refresh();
} catch (Exception e) {
log.error("caught exception", e);
}
}*/
}
private boolean isModified() {
boolean retVal = false;
if (mapperLocations != null) {
for (int i = 0; i < mapperLocations.length; i++) {
Resource mappingLocation = mapperLocations[i];
retVal |= findModifiedResource(mappingLocation);
}
}
return retVal;
}
private boolean findModifiedResource(Resource resource) {
boolean retVal = false;
List<String> modifiedResources = new ArrayList<String>();
try {
long modified = resource.lastModified();
if (map.containsKey(resource)) {
long lastModified = ((Long) map.get(resource))
.longValue();
if (lastModified != modified) {
map.put(resource, new Long(modified));
modifiedResources.add(resource.getDescription());
retVal = true;
}
} else {
map.put(resource, new Long(modified));
}
} catch (IOException e) {
log.error("caught exception", e);
}
if (retVal) {
if (log.isInfoEnabled()) {
log.info("modified files : " + modifiedResources);
}
}
return retVal;
}
};
timer = new Timer(true);
resetInterval();
}
private Object getParentObject() throws Exception {
r.lock();
try {
return super.getObject();
} finally {
r.unlock();
}
}
public SqlSessionFactory getObject() {
return this.proxy;
}
public Class<? extends SqlSessionFactory> getObjectType() {
return (this.proxy != null ? this.proxy.getClass()
: SqlSessionFactory.class);
}
public boolean isSingleton() {
return true;
}
public void setCheckInterval(int ms) {
interval = ms;
if (timer != null) {
resetInterval();
}
}
private void resetInterval() {
if (running) {
timer.cancel();
running = false;
}
if (interval > 0) {
timer.schedule(task, 0, interval);
running = true;
}
}
public void destroy() throws Exception {
timer.cancel();
}
}

View File

@ -0,0 +1,119 @@
package egovframework.com.cmm;
import java.io.Serializable;
/**
* 세션 VO 클래스
* @author 공통서비스 개발팀 박지욱
* @since 2009.03.06
* @version 1.0
* @see
*
* <pre>
* << 개정이력(Modification Information) >>
*
* 수정일 수정자 수정내용
* ------- -------- ---------------------------
* 2009.03.06 박지욱 최초 생성
*
* </pre>
*/
public class SessionVO implements Serializable {
/** 아이디 */
private String sUserId;
/** 이름 */
private String sUserNm;
/** 이메일 */
private String sEmail;
/** 사용자구분 */
private String sUserSe;
/** 조직(부서)ID */
private String orgnztId;
/** 고유아이디 */
private String uniqId;
/**
* sUserId attribute 리턴한다.
* @return String
*/
public String getSUserId() {
return sUserId;
}
/**
* sUserId attribute 값을 설정한다.
* @param sUserId String
*/
public void setSUserId(String userId) {
sUserId = userId;
}
/**
* sUserNm attribute 리턴한다.
* @return String
*/
public String getSUserNm() {
return sUserNm;
}
/**
* sUserNm attribute 값을 설정한다.
* @param sUserNm String
*/
public void setSUserNm(String userNm) {
sUserNm = userNm;
}
/**
* sEmail attribute 리턴한다.
* @return String
*/
public String getSEmail() {
return sEmail;
}
/**
* sEmail attribute 값을 설정한다.
* @param sEmail String
*/
public void setSEmail(String email) {
sEmail = email;
}
/**
* sUserSe attribute 리턴한다.
* @return String
*/
public String getSUserSe() {
return sUserSe;
}
/**
* sUserSe attribute 값을 설정한다.
* @param sUserSe String
*/
public void setSUserSe(String userSe) {
sUserSe = userSe;
}
/**
* orgnztId attribute 리턴한다.
* @return String
*/
public String getOrgnztId() {
return orgnztId;
}
/**
* orgnztId attribute 값을 설정한다.
* @param orgnztId String
*/
public void setOrgnztId(String orgnztId) {
this.orgnztId = orgnztId;
}
/**
* uniqId attribute 리턴한다.
* @return String
*/
public String getUniqId() {
return uniqId;
}
/**
* uniqId attribute 값을 설정한다.
* @param uniqId String
*/
public void setUniqId(String uniqId) {
this.uniqId = uniqId;
}
}

View File

@ -0,0 +1,11 @@
package egovframework.com.cmm;
public interface SqlMapClientRefreshable {
void refresh() throws Exception;
void setCheckInterval(int ms);
}

View File

@ -0,0 +1,85 @@
package egovframework.com.cmm;
import java.io.InputStream;
import java.io.Reader;
import java.util.ArrayList;
import java.util.List;
import java.util.Properties;
import org.springframework.core.io.DefaultResourceLoader;
import org.springframework.core.io.ResourceLoader;
import org.w3c.dom.Node;
import com.ibatis.common.xml.Nodelet;
import com.ibatis.common.xml.NodeletParser;
import com.ibatis.common.xml.NodeletUtils;
import com.ibatis.sqlmap.client.SqlMapException;
import com.ibatis.sqlmap.engine.builder.xml.SqlMapClasspathEntityResolver;
//import com.ibatis.sqlmap.engine.builder.xml.XmlParserState;
@SuppressWarnings("unchecked")
public class SqlMapExtractingSqlMapConfigParser {
protected final NodeletParser parser = new NodeletParser();
// private XmlParserState state = new XmlParserState();
private List sqlMapList = new ArrayList();
private ResourceLoader resourceLoader = new DefaultResourceLoader();
public SqlMapExtractingSqlMapConfigParser() {
parser.setValidation(true);
parser.setEntityResolver(new SqlMapClasspathEntityResolver());
addSqlMapNodelets();
}
public List parse(Reader reader) {
try {
parser.parse(reader);
return sqlMapList;
}
catch (Exception e) {
throw new RuntimeException("Error occurred. Cause: " + e, e);
}
}
public List parse(InputStream inputStream) {
try {
parser.parse(inputStream);
return sqlMapList;
}
catch (Exception e) {
throw new RuntimeException("Error occurred. Cause: " + e, e);
}
}
protected void addSqlMapNodelets() {
parser.addNodelet("/sqlMapConfig/sqlMap", new Nodelet() {
public void process(Node node) throws Exception {
// state.getConfig().getErrorContext().setActivity(
// "loading the SQL Map resource");
Properties attributes = NodeletUtils.parseAttributes(node,
// state.getGlobalProps());
null);
String resource = attributes.getProperty("resource");
String url = attributes.getProperty("url");
if (resource != null) {
sqlMapList.add(resourceLoader.getResource(resource));
}
else if (url != null) {
sqlMapList.add(resourceLoader.getResource(url));
}
else {
throw new SqlMapException(
"The <sqlMap> element requires either a resource or a url attribute.");
}
}
});
}
}

View File

@ -0,0 +1,24 @@
package egovframework.com.cmm;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
import org.springframework.web.servlet.HandlerExceptionResolver;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@Component
public class WholeExceptionHandler implements HandlerExceptionResolver {
private static final Logger log = LoggerFactory.getLogger(WholeExceptionHandler.class);
@Override
public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) {
System.out.println("error!");
log.error("e: ", ex);
log.error(ex.getMessage());
throw new RuntimeException(ex);
}
}

View File

@ -0,0 +1,33 @@
package egovframework.com.cmm.annotation;
/**
* 컴포넌트의 포함 정보 표현을 위한 annotation 클래스
* 기본적으로 Controller 클래스에 annotation을 부여하되,
* 하나의 Controller에 여러 개의 목록성 url mapping이 제공되는 경우에는
* 메소드에 annotation을 부여한다.
* @author 공통컴포넌트 정진오
* @since 2011.08.26
* @version 2.0.0
* @see
*
* <pre>
* << 개정이력(Modification Information) >>
*
* 수정일 수정자 수정내용
* ------- -------- ---------------------------
* 2011.08.26 정진오 최초 생성
*
* </pre>
*/
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
@Retention(RetentionPolicy.RUNTIME)
public @interface IncludedInfo {
String name() default ""; // 컴포넌트의 한글 이름
String listUrl() default ""; // 컴포넌트의 목록정보조회를 위한 URL
int order() default 0; // 자동 생성되는 메뉴 목록에 표시되는 순서
int gid() default 0; // 컴포넌트의 Group ID(대분류 구분)
}

View File

@ -0,0 +1,45 @@
/*
* Copyright 2008-2009 MOPAS(MINISTRY OF SECURITY AND PUBLIC ADMINISTRATION).
*
* 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
*
* http://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.
*/
package egovframework.com.cmm.filter;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
public class HTMLTagFilter implements Filter{
private FilterConfig config;
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
chain.doFilter(new HTMLTagFilterRequestWrapper((HttpServletRequest)request), response);
}
public void init(FilterConfig config) throws ServletException {
this.config = config;
}
public void destroy() {
}
}

View File

@ -0,0 +1,109 @@
/*
* Copyright 2008-2009 MOPAS(MINISTRY OF SECURITY AND PUBLIC ADMINISTRATION).
*
* 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
*
* http://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.
*/
package egovframework.com.cmm.filter;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletRequestWrapper;
public class HTMLTagFilterRequestWrapper extends HttpServletRequestWrapper {
public HTMLTagFilterRequestWrapper(HttpServletRequest request) {
super(request);
}
public String[] getParameterValues(String parameter) {
String[] values = super.getParameterValues(parameter);
if(values==null){
return null;
}
for (int i = 0; i < values.length; i++) {
if (values[i] != null) {
StringBuffer strBuff = new StringBuffer();
for (int j = 0; j < values[i].length(); j++) {
char c = values[i].charAt(j);
switch (c) {
case '<':
strBuff.append("&lt;");
break;
case '>':
strBuff.append("&gt;");
break;
// case '&':
// strBuff.append("&amp;");
// break;
case '"':
strBuff.append("&#34;");
break;
case '\'':
strBuff.append("&#39;");
break;
default:
strBuff.append(c);
break;
}
}
values[i] = strBuff.toString();
} else {
values[i] = null;
}
}
return values;
}
public String getParameter(String parameter) {
String value = super.getParameter(parameter);
if(value==null){
return null;
}
StringBuffer strBuff = new StringBuffer();
for (int i = 0; i < value.length(); i++) {
char c = value.charAt(i);
switch (c) {
case '<':
strBuff.append("&lt;");
break;
case '>':
strBuff.append("&gt;");
break;
// case '&':
// strBuff.append("&amp;");
// break;
case '"':
strBuff.append("&#34;");
break;
case '\'':
strBuff.append("&#39;");
break;
default:
strBuff.append(c);
break;
}
}
value = strBuff.toString();
return value;
}
}

View File

@ -0,0 +1,80 @@
package egovframework.com.cmm.interceptor;
import java.util.Iterator;
import java.util.Set;
import java.util.regex.Pattern;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.ModelAndViewDefiningException;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
import egovframework.com.cmm.LoginVO;
import egovframework.com.cmm.util.EgovUserDetailsHelper;
/**
* 인증여부 체크 인터셉터
* @author 공통서비스 개발팀 서준식
* @since 2011.07.01
* @version 1.0
* @see
*
* <pre>
* << 개정이력(Modification Information) >>
*
* 수정일 수정자 수정내용
* ------- -------- ---------------------------
* 2011.07.01 서준식 최초 생성
* 2011.09.07 서준식 인증이 필요없는 URL을 패스하는 로직 추가
* </pre>
*/
public class AuthenticInterceptor extends HandlerInterceptorAdapter {
private Set<String> permittedURL;
public void setPermittedURL(Set<String> permittedURL) {
this.permittedURL = permittedURL;
}
/**
* 세션에 계정정보(LoginVO) 있는지 여부로 인증 여부를 체크한다.
* 계정정보(LoginVO) 없다면, 로그인 페이지로 이동한다.
*/
@Override
public boolean preHandle(HttpServletRequest request,
HttpServletResponse response, Object handler) throws Exception {
String requestURI = request.getRequestURI(); //요청 URI
boolean isPermittedURL = false;
LoginVO loginVO = (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser();
if(loginVO != null){
return true;
}else{
for(Iterator<String> it = this.permittedURL.iterator(); it.hasNext();){
String urlPattern = request.getContextPath() + (String) it.next();
if(Pattern.matches(urlPattern, requestURI)){// 정규표현식을 이용해서 요청 URI가 허용된 URL에 맞는지 점검함.
isPermittedURL = true;
}
}
if(!isPermittedURL){
ModelAndView modelAndView = new ModelAndView("redirect:/uat/uia/egovLoginUsr.do");
throw new ModelAndViewDefiningException(modelAndView);
}else{
return true;
}
}
}
}

View File

@ -0,0 +1,42 @@
package egovframework.com.cmm.interceptor;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
import egovframework.com.cmm.LoginVO;
import egovframework.com.cmm.util.EgovUserDetailsHelper;
/**
* 사용자IP 체크 인터셉터
* @author 유지보수팀 이기하
* @since 2013.03.28
* @version 1.0
* @see
*
* <pre>
* << 개정이력(Modification Information) >>
*
* 수정일 수정자 수정내용
* ---------- -------- ---------------------------
* 2013.03.28 이기하 최초 생성
* </pre>
*/
public class IpObtainInterceptor extends HandlerInterceptorAdapter {
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
String clientIp = request.getRemoteAddr();
LoginVO loginVO = (LoginVO) EgovUserDetailsHelper.getAuthenticatedUser();
if (loginVO != null) {
loginVO.setIp(clientIp);
}
return true;
}
}

View File

@ -0,0 +1,192 @@
package egovframework.com.cmm.service;
import java.io.Serializable;
/**
* 공통상세코드 모델 클래스
* @author 공통서비스 개발팀 이중호
* @since 2009.04.01
* @version 1.0
* @see
*
* <pre>
* << 개정이력(Modification Information) >>
*
* 수정일 수정자 수정내용
* ------- -------- ---------------------------
* 2009.04.01 이중호 최초 생성
*
* </pre>
*/
public class CmmnDetailCode implements Serializable {
/*
* 코드ID
*/
private String codeId = "";
/*
* 코드ID명
*/
private String codeIdNm = "";
/*
* 코드
*/
private String code = "";
/*
* 코드명
*/
private String codeNm = "";
/*
* 코드설명
*/
private String codeDc = "";
/*
* 사용여부
*/
private String useAt = "";
/*
* 최초등록자ID
*/
private String frstRegisterId = "";
/*
* 최종수정자ID
*/
private String lastUpdusrId = "";
/**
* codeId attribute 리턴한다.
* @return String
*/
public String getCodeId() {
return codeId;
}
/**
* codeId attribute 값을 설정한다.
* @param codeId String
*/
public void setCodeId(String codeId) {
this.codeId = codeId;
}
/**
* codeIdNm attribute 리턴한다.
* @return String
*/
public String getCodeIdNm() {
return codeIdNm;
}
/**
* codeIdNm attribute 값을 설정한다.
* @param codeIdNm String
*/
public void setCodeIdNm(String codeIdNm) {
this.codeIdNm = codeIdNm;
}
/**
* code attribute 리턴한다.
* @return String
*/
public String getCode() {
return code;
}
/**
* code attribute 값을 설정한다.
* @param code String
*/
public void setCode(String code) {
this.code = code;
}
/**
* codeNm attribute 리턴한다.
* @return String
*/
public String getCodeNm() {
return codeNm;
}
/**
* codeNm attribute 값을 설정한다.
* @param codeNm String
*/
public void setCodeNm(String codeNm) {
this.codeNm = codeNm;
}
/**
* codeDc attribute 리턴한다.
* @return String
*/
public String getCodeDc() {
return codeDc;
}
/**
* codeDc attribute 값을 설정한다.
* @param codeDc String
*/
public void setCodeDc(String codeDc) {
this.codeDc = codeDc;
}
/**
* useAt attribute 리턴한다.
* @return String
*/
public String getUseAt() {
return useAt;
}
/**
* useAt attribute 값을 설정한다.
* @param useAt String
*/
public void setUseAt(String useAt) {
this.useAt = useAt;
}
/**
* frstRegisterId attribute 리턴한다.
* @return String
*/
public String getFrstRegisterId() {
return frstRegisterId;
}
/**
* frstRegisterId attribute 값을 설정한다.
* @param frstRegisterId String
*/
public void setFrstRegisterId(String frstRegisterId) {
this.frstRegisterId = frstRegisterId;
}
/**
* lastUpdusrId attribute 리턴한다.
* @return String
*/
public String getLastUpdusrId() {
return lastUpdusrId;
}
/**
* lastUpdusrId attribute 값을 설정한다.
* @param lastUpdusrId String
*/
public void setLastUpdusrId(String lastUpdusrId) {
this.lastUpdusrId = lastUpdusrId;
}
}

View File

@ -0,0 +1,65 @@
package egovframework.com.cmm.service;
import java.util.List;
import java.util.Map;
import egovframework.com.cmm.ComDefaultCodeVO;
/**
*
* 공통코드등 전체 업무에서 공용해서 사용해야 하는 서비스를 정의하기 위한 서비스 인터페이스
* @author 공통서비스 개발팀 이삼섭
* @since 2009.04.01
* @version 1.0
* @see
*
* <pre>
* << 개정이력(Modification Information) >>
*
* 수정일 수정자 수정내용
* ------- -------- ---------------------------
* 2009.03.11 이삼섭 최초 생성
*
* </pre>
*/
public interface EgovCmmUseService {
/**
* 공통코드를 조회한다.
*
* @param vo
* @return List(코드)
* @throws Exception
*/
public List<CmmnDetailCode> selectCmmCodeDetail(ComDefaultCodeVO vo) throws Exception;
/**
* ComDefaultCodeVO의 리스트를 받아서 여러개의 코드 리스트를 맵에 담아서 리턴한다.
*
* @param voList
* @return Map(코드)
* @throws Exception
*/
@SuppressWarnings("unchecked")
public Map<String, List<CmmnDetailCode>> selectCmmCodeDetails(List voList) throws Exception;
/**
* 조직정보를 코드형태로 리턴한다.
*
* @param 조회조건정보 vo
* @return 조직정보 List
* @throws Exception
*/
public List<CmmnDetailCode> selectOgrnztIdDetail(ComDefaultCodeVO vo) throws Exception;
/**
* 그룹정보를 코드형태로 리턴한다.
*
* @param 조회조건정보 vo
* @return 그룹정보 List
* @throws Exception
*/
public List<CmmnDetailCode> selectGroupIdDetail(ComDefaultCodeVO vo) throws Exception;
}

View File

@ -0,0 +1,128 @@
package egovframework.com.cmm.service;
import java.util.List;
import java.util.Map;
/**
* @Class Name : EgovFileMngService.java
* @Description : 파일정보의 관리를 위한 서비스 인터페이스
* @Modification Information
*
* 수정일 수정자 수정내용
* ------- ------- -------------------
* 2009. 3. 25. 이삼섭 최초생성
*
* @author 공통 서비스 개발팀 이삼섭
* @since 2009. 3. 25.
* @version
* @see
*
*/
public interface EgovFileMngService {
/**
* 파일에 대한 목록을 조회한다.
*
* @param fvo
* @return
* @throws Exception
*/
public List<FileVO> selectFileInfs(FileVO fvo) throws Exception;
/**
* 하나의 파일에 대한 정보(속성 상세) 등록한다.
*
* @param fvo
* @throws Exception
*/
public String insertFileInf(FileVO fvo) throws Exception;
/**
* 여러 개의 파일에 대한 정보(속성 상세) 등록한다.
*
* @param fvoList
* @throws Exception
*/
@SuppressWarnings("unchecked")
public String insertFileInfs(List fvoList) throws Exception;
/**
* 여러 개의 파일에 대한 정보(속성 상세) 수정한다.
*
* @param fvoList
* @throws Exception
*/
@SuppressWarnings("unchecked")
public void updateFileInfs(List fvoList) throws Exception;
/**
* 여러 개의 파일을 삭제한다.
*
* @param fvoList
* @throws Exception
*/
@SuppressWarnings("unchecked")
public void deleteFileInfs(List fvoList) throws Exception;
/**
* 하나의 파일을 삭제한다.
*
* @param fvo
* @throws Exception
*/
public void deleteFileInf(FileVO fvo) throws Exception;
/**
* 파일에 대한 상세정보를 조회한다.
*
* @param fvo
* @return
* @throws Exception
*/
public FileVO selectFileInf(FileVO fvo) throws Exception;
/**
* 파일 구분자에 대한 최대값을 구한다.
*
* @param fvo
* @return
* @throws Exception
*/
public int getMaxFileSN(FileVO fvo) throws Exception;
/**
* 전체 파일을 삭제한다.
*
* @param fvo
* @throws Exception
*/
public void deleteAllFileInf(FileVO fvo) throws Exception;
/**
* 파일명 검색에 대한 목록을 조회한다.
*
* @param fvo
* @return
* @throws Exception
*/
public Map<String, Object> selectFileListByFileNm(FileVO fvo) throws Exception;
/**
* 이미지 파일에 대한 목록을 조회한다.
*
* @param vo
* @return
* @throws Exception
*/
public List<FileVO> selectImageFileList(FileVO vo) throws Exception;
/**
* 이미지 파일에 대한 상세를 조회한다.
*
* @param fvo
* @return
* @throws Exception
*/
public FileVO selectImageFileInf(FileVO fvo) throws Exception;
}

View File

@ -0,0 +1,544 @@
package egovframework.com.cmm.service;
import java.awt.Image;
import java.awt.image.BufferedImage;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.Map.Entry;
import java.util.TreeMap;
import javax.annotation.Resource;
import javax.imageio.ImageIO;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.log4j.Logger;
import org.springframework.stereotype.Component;
import org.springframework.util.FileCopyUtils;
import org.springframework.web.multipart.MultipartFile;
import egovframework.com.cmm.EgovWebUtil;
import egovframework.rte.fdl.idgnr.EgovIdGnrService;
/**
* @Class Name : EgovFileMngUtil.java
* @Description : 메시지 처리 관련 유틸리티
* @Modification Information
*
* 수정일 수정자 수정내용
* ------- -------- ---------------------------
* 2009.02.13 이삼섭 최초 생성
* 2011.08.09 서준식 utl.fcc패키지와 Dependency제거를 위해 getTimeStamp()메서드 추가
* @author 공통 서비스 개발팀 이삼섭
* @since 2009. 02. 13
* @version 1.0
* @see
*
*/
@Component("EgovFileMngUtil")
public class EgovFileMngUtil {
public static final int BUFF_SIZE = 2048;
@Resource(name = "egovFileIdGnrService")
private EgovIdGnrService idgenService;
private static final Logger LOG = Logger.getLogger(EgovFileMngUtil.class.getName());
/**
* 첨부파일에 대한 목록 정보를 취득한다.
*
* @param files
* @return
* @throws Exception
*/
public List<FileVO> parseFileInf(Map<String, MultipartFile> files, String KeyStr, int fileKeyParam, String atchFileId, String storePath) throws Exception {
int fileKey = fileKeyParam;
String storePathString = "";
String atchFileIdString = atchFileId;
if ("".equals(storePath) || storePath == null) {
storePathString = EgovProperties.getProperty("Globals.fileStorePath");
} else {
storePathString = EgovProperties.getProperty(storePath);
}
File saveFolder = new File(EgovWebUtil.filePathBlackList(storePathString));
if (!saveFolder.exists() || saveFolder.isFile()) {
saveFolder.mkdirs();
}
//Iterator<Entry<String, MultipartFile>> itr = files.entrySet().iterator();
TreeMap<String, MultipartFile> treeMap = new TreeMap<String, MultipartFile>(files);
Iterator<Entry<String, MultipartFile>> itr = treeMap.entrySet().iterator();
MultipartFile file;
String filePath = "";
List<FileVO> result = new ArrayList<FileVO>();
FileVO fvo;
while (itr.hasNext()) {
Entry<String, MultipartFile> entry = itr.next();
file = entry.getValue();
String orginFileName = file.getOriginalFilename();
//--------------------------------------
// 파일명이 없는 경우 처리
// (첨부가 되지 않은 input file type)
//--------------------------------------
if ("".equals(orginFileName)) {
continue;
}
////------------------------------------
if ("".equals(atchFileIdString) || atchFileIdString == null) {
atchFileIdString = idgenService.getNextStringId();
}
int index = orginFileName.lastIndexOf(".");
//String fileName = orginFileName.substring(0, index);
String fileExt = orginFileName.substring(index + 1);
String newName = KeyStr + getTimeStamp() + fileKey + "." + fileExt;
long _size = file.getSize();
if (!"".equals(orginFileName)) {
filePath = storePathString + File.separator + newName;
file.transferTo(new File(EgovWebUtil.filePathBlackList(filePath)));
}
fvo = new FileVO();
fvo.setFileExtsn(fileExt);
fvo.setFileStreCours(storePathString);
fvo.setFileMg(Long.toString(_size));
fvo.setOrignlFileNm(orginFileName);
fvo.setStreFileNm(newName);
fvo.setAtchFileId(atchFileIdString);
fvo.setFileSn(String.valueOf(fileKey));
//writeFile(file, newName, storePathString);
result.add(fvo);
fileKey++;
}
return result;
}
/**
* 첨부파일을 서버에 저장한다.
*
* @param file
* @param newName
* @param stordFilePath
* @throws Exception
*/
protected void writeUploadedFile(MultipartFile file, String newName, String stordFilePath) throws Exception {
InputStream stream = null;
OutputStream bos = null;
try {
stream = file.getInputStream();
File cFile = new File(stordFilePath);
if (!cFile.isDirectory()) {
boolean _flag = cFile.mkdir();
if (!_flag) {
throw new IOException("Directory creation Failed ");
}
}
bos = new FileOutputStream(stordFilePath + File.separator + newName);
int bytesRead = 0;
byte[] buffer = new byte[BUFF_SIZE];
while ((bytesRead = stream.read(buffer, 0, BUFF_SIZE)) != -1) {
bos.write(buffer, 0, bytesRead);
}
} catch (Exception e) {
//e.printStackTrace();
LOG.error("IGNORE:", e); // 2011.10.10 보안점검 후속조치
} finally {
if (bos != null) {
try {
bos.close();
} catch (Exception ignore) {
LOG.debug("IGNORED: " + ignore.getMessage());
}
}
if (stream != null) {
try {
stream.close();
} catch (Exception ignore) {
LOG.debug("IGNORED: " + ignore.getMessage());
}
}
}
}
/**
* 서버의 파일을 다운로드한다.
*
* @param request
* @param response
* @throws Exception
*/
public static void downFile(HttpServletRequest request, HttpServletResponse response) throws Exception {
String downFileName = "";
String orgFileName = "";
if ((String)request.getAttribute("downFile") == null) {
downFileName = "";
} else {
downFileName = (String)request.getAttribute("downFile");
}
if ((String)request.getAttribute("orgFileName") == null) {
orgFileName = "";
} else {
orgFileName = (String)request.getAttribute("orginFile");
}
orgFileName = orgFileName.replaceAll("\r", "").replaceAll("\n", "");
File file = new File(EgovWebUtil.filePathBlackList(downFileName));
if (!file.exists()) {
throw new FileNotFoundException(downFileName);
}
if (!file.isFile()) {
throw new FileNotFoundException(downFileName);
}
byte[] b = new byte[BUFF_SIZE]; //buffer size 2K.
response.setContentType("application/x-msdownload");
response.setHeader("Content-Disposition:", "attachment; filename=" + new String(orgFileName.getBytes(), "UTF-8"));
response.setHeader("Content-Transfer-Encoding", "binary");
response.setHeader("Pragma", "no-cache");
response.setHeader("Expires", "0");
BufferedInputStream fin = null;
BufferedOutputStream outs = null;
try {
fin = new BufferedInputStream(new FileInputStream(file));
outs = new BufferedOutputStream(response.getOutputStream());
int read = 0;
while ((read = fin.read(b)) != -1) {
outs.write(b, 0, read);
}
} finally {
if (outs != null) {
try {
outs.close();
} catch (Exception ignore) {
//System.out.println("IGNORED: " + ignore.getMessage());
LOG.debug("IGNORED: " + ignore.getMessage());
}
}
if (fin != null) {
try {
fin.close();
} catch (Exception ignore) {
//System.out.println("IGNORED: " + ignore.getMessage());
LOG.debug("IGNORED: " + ignore.getMessage());
}
}
}
}
/**
* 첨부로 등록된 파일을 서버에 업로드한다.
*
* @param file
* @return
* @throws Exception
*/
public static HashMap<String, String> uploadFile(MultipartFile file) throws Exception {
HashMap<String, String> map = new HashMap<String, String>();
//Write File 이후 Move File????
String newName = "";
String stordFilePath = EgovProperties.getProperty("Globals.fileStorePath");
String orginFileName = file.getOriginalFilename();
int index = orginFileName.lastIndexOf(".");
//String fileName = orginFileName.substring(0, _index);
String fileExt = orginFileName.substring(index + 1);
long size = file.getSize();
//newName Naming Convention에 의해서 생성
newName = getTimeStamp(); // 2012.11 KISA 보안조치
writeFile(file, newName, stordFilePath);
//storedFilePath는 지정
map.put(Globals.ORIGIN_FILE_NM, orginFileName);
map.put(Globals.UPLOAD_FILE_NM, newName);
map.put(Globals.FILE_EXT, fileExt);
map.put(Globals.FILE_PATH, stordFilePath);
map.put(Globals.FILE_SIZE, String.valueOf(size));
return map;
}
/**
* 파일을 실제 물리적인 경로에 생성한다.
*
* @param file
* @param newName
* @param stordFilePath
* @throws Exception
*/
protected static void writeFile(MultipartFile file, String newName, String stordFilePath) throws Exception {
InputStream stream = null;
OutputStream bos = null;
try {
stream = file.getInputStream();
File cFile = new File(EgovWebUtil.filePathBlackList(stordFilePath));
if (!cFile.isDirectory())
cFile.mkdir();
bos = new FileOutputStream(EgovWebUtil.filePathBlackList(stordFilePath + File.separator + newName));
int bytesRead = 0;
byte[] buffer = new byte[BUFF_SIZE];
while ((bytesRead = stream.read(buffer, 0, BUFF_SIZE)) != -1) {
bos.write(buffer, 0, bytesRead);
}
} catch (Exception e) {
//e.printStackTrace();
//throw new RuntimeException(e); // 보안점검 후속조치
Logger.getLogger(EgovFileMngUtil.class).debug("IGNORED: " + e.getMessage());
} finally {
if (bos != null) {
try {
bos.close();
} catch (Exception ignore) {
Logger.getLogger(EgovFileMngUtil.class).debug("IGNORED: " + ignore.getMessage());
}
}
if (stream != null) {
try {
stream.close();
} catch (Exception ignore) {
Logger.getLogger(EgovFileMngUtil.class).debug("IGNORED: " + ignore.getMessage());
}
}
}
}
/**
* 서버 파일에 대하여 다운로드를 처리한다.
*
* @param response
* @param streFileNm
* : 파일저장 경로가 포함된 형태
* @param orignFileNm
* @throws Exception
*/
public void downFile(HttpServletResponse response, String streFileNm, String orignFileNm) throws Exception {
String downFileName = streFileNm;
String orgFileName = orignFileNm;
File file = new File(downFileName);
//log.debug(this.getClass().getName()+" downFile downFileName "+downFileName);
//log.debug(this.getClass().getName()+" downFile orgFileName "+orgFileName);
if (!file.exists()) {
throw new FileNotFoundException(downFileName);
}
if (!file.isFile()) {
throw new FileNotFoundException(downFileName);
}
//byte[] b = new byte[BUFF_SIZE]; //buffer size 2K.
int fSize = (int)file.length();
if (fSize > 0) {
BufferedInputStream in = null;
try {
in = new BufferedInputStream(new FileInputStream(file));
String mimetype = "text/html"; //"application/x-msdownload"
response.setBufferSize(fSize);
response.setContentType(mimetype);
response.setHeader("Content-Disposition:", "attachment; filename=" + orgFileName);
response.setContentLength(fSize);
//response.setHeader("Content-Transfer-Encoding","binary");
//response.setHeader("Pragma","no-cache");
//response.setHeader("Expires","0");
FileCopyUtils.copy(in, response.getOutputStream());
} finally {
if (in != null) {
try {
in.close();
} catch (Exception ignore) {
Logger.getLogger(EgovFileMngUtil.class).debug("IGNORED: " + ignore.getMessage());
}
}
}
response.getOutputStream().flush();
response.getOutputStream().close();
}
/*
String uploadPath = propertiesService.getString("fileDir");
File uFile = new File(uploadPath, requestedFile);
int fSize = (int) uFile.length();
if (fSize > 0) {
BufferedInputStream in = new BufferedInputStream(new FileInputStream(uFile));
String mimetype = "text/html";
response.setBufferSize(fSize);
response.setContentType(mimetype);
response.setHeader("Content-Disposition", "attachment; filename=\""
+ requestedFile + "\"");
response.setContentLength(fSize);
FileCopyUtils.copy(in, response.getOutputStream());
in.close();
response.getOutputStream().flush();
response.getOutputStream().close();
} else {
response.setContentType("text/html");
PrintWriter printwriter = response.getWriter();
printwriter.println("<html>");
printwriter.println("<br><br><br><h2>Could not get file name:<br>" + requestedFile + "</h2>");
printwriter.println("<br><br><br><center><h3><a href='javascript: history.go(-1)'>Back</a></h3></center>");
printwriter.println("<br><br><br>&copy; webAccess");
printwriter.println("</html>");
printwriter.flush();
printwriter.close();
}
//*/
/*
response.setContentType("application/x-msdownload");
response.setHeader("Content-Disposition:", "attachment; filename=" + new String(orgFileName.getBytes(),"UTF-8" ));
response.setHeader("Content-Transfer-Encoding","binary");
response.setHeader("Pragma","no-cache");
response.setHeader("Expires","0");
BufferedInputStream fin = new BufferedInputStream(new FileInputStream(file));
BufferedOutputStream outs = new BufferedOutputStream(response.getOutputStream());
int read = 0;
while ((read = fin.read(b)) != -1) {
outs.write(b,0,read);
}
log.debug(this.getClass().getName()+" BufferedOutputStream Write Complete!!! ");
outs.close();
fin.close();
//*/
}
/**
* 2011.08.09
* 공통 컴포넌트 utl.fcc 패키지와 Dependency제거를 위해 내부 메서드로 추가 정의함
* 응용어플리케이션에서 고유값을 사용하기 위해 시스템에서17자리의TIMESTAMP값을 구하는 기능
*
* @param
* @return Timestamp
* @exception MyException
* @see
*/
public static String getTimeStamp() {
String rtnStr = null;
// 문자열로 변환하기 위한 패턴 설정(년도-- :::(자정이후 ))
String pattern = "yyyyMMddhhmmssSSS";
try {
SimpleDateFormat sdfCurrent = new SimpleDateFormat(pattern, Locale.KOREA);
Timestamp ts = new Timestamp(System.currentTimeMillis());
rtnStr = sdfCurrent.format(ts.getTime());
} catch (Exception e) {
//e.printStackTrace();
//throw new RuntimeException(e); // 보안점검 후속조치
LOG.debug("IGNORED: " + e.getMessage());
}
return rtnStr;
}
/**
* multipartFile을 File로 변환
*
* @param MultipartFile file
* @return File
* @throws IOException
* */
public File multipartFileToFile(MultipartFile multiFile) throws IOException {
//썸네일 이미지 원본 저장 경로
String fileThumbNailStorePath = EgovProperties.getProperty("Globals.fileThumbNailStorePath");
File convFile = new File(fileThumbNailStorePath, multiFile.getOriginalFilename());
convFile.createNewFile();
FileOutputStream fos = new FileOutputStream(convFile);
fos.write(multiFile.getBytes());
fos.close();
return convFile;
}
/**
* 이미지를 리사이즈 저장
*
* @param File file
* @param Stirng imgPath 저장할 파일경로
* @param Stirng fileName 파일이름
* @param Stirng imgType 확장자
* @param int widthSize 리사이즈할 가로사이즈
* @param int heightSize 리사이즈할 세로사이즈
*
* @throws IOException
* */
public void uploadFileAfterResizing(BufferedImage src, String imgPath, String fileName, String imgType, int widthSize, int heightSize) throws IOException {
BufferedImage resizeImage = new BufferedImage(widthSize, heightSize, BufferedImage.TYPE_INT_RGB);
resizeImage.getGraphics().drawImage(src.getScaledInstance(widthSize, heightSize, Image.SCALE_SMOOTH), 0, 0, null);
FileOutputStream out = new FileOutputStream(imgPath + fileName);
ImageIO.write(resizeImage, imgType, out);
out.close();
}
}

View File

@ -0,0 +1,258 @@
package egovframework.com.cmm.service;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;
import org.apache.log4j.Logger;
import egovframework.com.cmm.EgovWebUtil;
/**
* Class Name : EgovProperties.java Description : properties값들을 파일로부터 읽어와 Globals클래스의 정적변수로 로드시켜주는 클래스로 문자열 정보 기준으로 사용할 전역변수를 시스템 재시작으로 반영할 있도록 한다.
* Modification Information
*
* 수정일 수정자 수정내용 ------- -------- --------------------------- 2009.01.19 박지욱 최초 생성 2011.07.20 서준식 Globals파일의 상대경로를 읽은 메서드 추가
*
* @author 공통 서비스 개발팀 박지욱
* @since 2009. 01. 19
* @version 1.0
* @see
*
*/
public class EgovProperties {
// 프로퍼티값 로드시 에러발생하면 반환되는 에러문자열
public static final String ERR_CODE = " EXCEPTION OCCURRED";
public static final String ERR_CODE_FNFE = " EXCEPTION(FNFE) OCCURRED";
public static final String ERR_CODE_IOE = " EXCEPTION(IOE) OCCURRED";
// 파일구분자
static final char FILE_SEPARATOR = File.separatorChar;
// 프로퍼티 파일의 물리적 위치
public static final String RELATIVE_PATH_PREFIX = EgovProperties.class.getResource("").getPath().substring(0,
EgovProperties.class.getResource("").getPath().lastIndexOf("com"));
public static final String GLOBALS_PROPERTIES_FILE;
static {
String env = System.getProperty("arko-env", "live").trim();
if (env.equals("")) env = "live";
GLOBALS_PROPERTIES_FILE = RELATIVE_PATH_PREFIX + "egovProps" + System.getProperty("file.separator") + "globals-" + env + ".properties";
}
/**
* 인자로 주어진 문자열을 Key값으로 하는 상대경로 프로퍼티 값을 절대경로로 반환한다(Globals.java 전용)
*
* @param keyName
* String
* @return String
*/
public static String getPathProperty(String keyName) {
String value = ERR_CODE;
value = "99";
debug(GLOBALS_PROPERTIES_FILE + " : " + keyName);
FileInputStream fis = null;
try {
Properties props = new Properties();
fis = new FileInputStream(EgovWebUtil.filePathBlackList(GLOBALS_PROPERTIES_FILE));
props.load(new java.io.BufferedInputStream(fis));
value = props.getProperty(keyName).trim();
value = RELATIVE_PATH_PREFIX + "egovProps" + System.getProperty("file.separator") + value;
} catch (FileNotFoundException fne) {
debug(fne);
} catch (IOException ioe) {
debug(ioe);
} catch (Exception e) {
debug(e);
} finally {
try {
if (fis != null) fis.close();
} catch (Exception ex) {
// ex.printStackTrace();
// System.out.println("IGNORE: " + ex); // 2011.10.10 보안점검 후속조치
Logger.getLogger(EgovProperties.class).debug("IGNORED: " + ex.getMessage());
}
}
return value;
}
/**
* 인자로 주어진 문자열을 Key값으로 하는 프로퍼티 값을 반환한다(Globals.java 전용)
*
* @param keyName
* String
* @return String
*/
public static String getProperty(String keyName) {
String value = ERR_CODE;
value = "99";
debug(GLOBALS_PROPERTIES_FILE + " : " + keyName);
FileInputStream fis = null;
try {
Properties props = new Properties();
fis = new FileInputStream(EgovWebUtil.filePathBlackList(GLOBALS_PROPERTIES_FILE));
props.load(new java.io.BufferedInputStream(fis));
value = props.getProperty(keyName).trim();
} catch (FileNotFoundException fne) {
debug(fne);
} catch (IOException ioe) {
debug(ioe);
} catch (Exception e) {
debug(e);
} finally {
try {
if (fis != null) fis.close();
} catch (Exception ex) {
// ex.printStackTrace();
// System.out.println("IGNORE: " + ex); // 2011.10.10 보안점검 후속조치
Logger.getLogger(EgovProperties.class).debug("IGNORED: " + ex.getMessage());
}
}
return value;
}
/**
* 주어진 파일에서 인자로 주어진 문자열을 Key값으로 하는 프로퍼티 상대 경로값을 절대 경로값으로 반환한다
*
* @param fileName
* String
* @param key
* String
* @return String
*/
public static String getPathProperty(String fileName, String key) {
FileInputStream fis = null;
try {
java.util.Properties props = new java.util.Properties();
fis = new FileInputStream(EgovWebUtil.filePathBlackList(fileName));
props.load(new java.io.BufferedInputStream(fis));
fis.close();
String value = props.getProperty(key);
value = RELATIVE_PATH_PREFIX + "egovProps" + System.getProperty("file.separator") + value;
return value;
} catch (java.io.FileNotFoundException fne) {
return ERR_CODE_FNFE;
} catch (java.io.IOException ioe) {
return ERR_CODE_IOE;
} finally {
try {
if (fis != null) fis.close();
} catch (Exception ex) {
// ex.printStackTrace();
debug(ex); // 2011.10.10 보안점검 후속조치
}
}
}
/**
* 주어진 파일에서 인자로 주어진 문자열을 Key값으로 하는 프로퍼티 값을 반환한다
*
* @param fileName
* String
* @param key
* String
* @return String
*/
public static String getProperty(String fileName, String key) {
FileInputStream fis = null;
try {
java.util.Properties props = new java.util.Properties();
fis = new FileInputStream(EgovWebUtil.filePathBlackList(fileName));
props.load(new java.io.BufferedInputStream(fis));
fis.close();
String value = props.getProperty(key);
return value;
} catch (java.io.FileNotFoundException fne) {
return ERR_CODE_FNFE;
} catch (java.io.IOException ioe) {
return ERR_CODE_IOE;
} finally {
try {
if (fis != null) fis.close();
} catch (Exception ex) {
// ex.printStackTrace();
// System.out.println("IGNORE: " + ex); // 2011.10.10 보안점검 후속조치
Logger.getLogger(EgovProperties.class).debug("IGNORED: " + ex.getMessage());
}
}
}
/**
* 주어진 프로파일의 내용을 파싱하여 (key-value) 형태의 구조체 배열을 반환한다.
*
* @param property
* String
* @return ArrayList
*/
public static ArrayList loadPropertyFile(String property) {
// key - value 형태로 배열 결과
ArrayList keyList = new ArrayList();
String src = property.replace('\\', FILE_SEPARATOR).replace('/', FILE_SEPARATOR);
FileInputStream fis = null;
try {
File srcFile = new File(EgovWebUtil.filePathBlackList(src));
if (srcFile.exists()) {
java.util.Properties props = new java.util.Properties();
fis = new FileInputStream(src);
props.load(new java.io.BufferedInputStream(fis));
fis.close();
int i = 0;
Enumeration plist = props.propertyNames();
if (plist != null) {
while (plist.hasMoreElements()) {
Map map = new HashMap();
String key = (String) plist.nextElement();
map.put(key, props.getProperty(key));
keyList.add(map);
}
}
}
} catch (Exception ex) {
// ex.printStackTrace();
debug(ex); // 2011.10.10 보안점검 후속조치
} finally {
try {
if (fis != null) fis.close();
} catch (Exception ex) {
// ex.printStackTrace();
// System.out.println("IGNORE: " + ex); // 2011.10.10 보안점검 후속조치
Logger.getLogger(EgovProperties.class).debug("IGNORED: " + ex.getMessage());
}
}
return keyList;
}
/**
* 시스템 로그를 출력한다.
*
* @param obj
* Object
*/
private static void debug(Object obj) {
if (obj instanceof java.lang.Exception) {
// ((Exception)obj).printStackTrace();
// System.out.println("DEBUG: " + obj); // 2011.10.10 보안점검 후속조치
Logger.getLogger(EgovProperties.class).debug("IGNORED: " + ((Exception) obj).getMessage());
} else {
Logger.getLogger(EgovProperties.class).debug("DEBUG: " + obj.toString());
}
}
}

View File

@ -0,0 +1,26 @@
package egovframework.com.cmm.service;
import java.util.List;
public interface EgovUserDetailsService {
/**
* 인증된 사용자객체를 VO형식으로 가져온다.
* @return Object - 사용자 ValueObject
*/
public Object getAuthenticatedUser();
/**
* 인증된 사용자의 권한 정보를 가져온다.
* ) [ROLE_ADMIN, ROLE_USER, ROLE_A, ROLE_B, ROLE_RESTRICTED, IS_AUTHENTICATED_FULLY, IS_AUTHENTICATED_REMEMBERED, IS_AUTHENTICATED_ANONYMOUSLY]
* @return List - 사용자 권한정보 목록
*/
public List<String> getAuthorities();
/**
* 인증된 사용자 여부를 체크한다.
* @return Boolean - 인증된 사용자 여부(TRUE / FALSE)
*/
public Boolean isAuthenticated();
}

View File

@ -0,0 +1,240 @@
package egovframework.com.cmm.service;
import java.io.Serializable;
import org.apache.commons.lang.builder.ToStringBuilder;
/**
* @Class Name : FileVO.java
* @Description : 파일정보 처리를 위한 VO 클래스
* @Modification Information
*
* 수정일 수정자 수정내용
* ------- ------- -------------------
* 2009. 3. 25. 이삼섭
*
* @author 공통 서비스 개발팀 이삼섭
* @since 2009. 3. 25.
* @version
* @see
*
*/
@SuppressWarnings("serial")
public class FileVO implements Serializable {
/**
* 첨부파일 아이디
*/
public String atchFileId = "";
/**
* 생성일자
*/
public String creatDt = "";
/**
* 파일내용
*/
public String fileCn = "";
/**
* 파일확장자
*/
public String fileExtsn = "";
/**
* 파일크기
*/
public String fileMg = "";
/**
* 파일연번
*/
public String fileSn = "";
/**
* 파일저장경로
*/
public String fileStreCours = "";
/**
* 원파일명
*/
public String orignlFileNm = "";
/**
* 저장파일명
*/
public String streFileNm = "";
/**
* atchFileId attribute를 리턴한다.
*
* @return the atchFileId
*/
public String getAtchFileId() {
return atchFileId;
}
/**
* atchFileId attribute 값을 설정한다.
*
* @param atchFileId
* the atchFileId to set
*/
public void setAtchFileId(String atchFileId) {
this.atchFileId = atchFileId;
}
/**
* creatDt attribute를 리턴한다.
*
* @return the creatDt
*/
public String getCreatDt() {
return creatDt;
}
/**
* creatDt attribute 값을 설정한다.
*
* @param creatDt
* the creatDt to set
*/
public void setCreatDt(String creatDt) {
this.creatDt = creatDt;
}
/**
* fileCn attribute를 리턴한다.
*
* @return the fileCn
*/
public String getFileCn() {
return fileCn;
}
/**
* fileCn attribute 값을 설정한다.
*
* @param fileCn
* the fileCn to set
*/
public void setFileCn(String fileCn) {
this.fileCn = fileCn;
}
/**
* fileExtsn attribute를 리턴한다.
*
* @return the fileExtsn
*/
public String getFileExtsn() {
return fileExtsn;
}
/**
* fileExtsn attribute 값을 설정한다.
*
* @param fileExtsn
* the fileExtsn to set
*/
public void setFileExtsn(String fileExtsn) {
this.fileExtsn = fileExtsn;
}
/**
* fileMg attribute를 리턴한다.
*
* @return the fileMg
*/
public String getFileMg() {
return fileMg;
}
/**
* fileMg attribute 값을 설정한다.
*
* @param fileMg
* the fileMg to set
*/
public void setFileMg(String fileMg) {
this.fileMg = fileMg;
}
/**
* fileSn attribute를 리턴한다.
*
* @return the fileSn
*/
public String getFileSn() {
return fileSn;
}
/**
* fileSn attribute 값을 설정한다.
*
* @param fileSn
* the fileSn to set
*/
public void setFileSn(String fileSn) {
this.fileSn = fileSn;
}
/**
* fileStreCours attribute를 리턴한다.
*
* @return the fileStreCours
*/
public String getFileStreCours() {
return fileStreCours;
}
/**
* fileStreCours attribute 값을 설정한다.
*
* @param fileStreCours
* the fileStreCours to set
*/
public void setFileStreCours(String fileStreCours) {
this.fileStreCours = fileStreCours;
}
/**
* orignlFileNm attribute를 리턴한다.
*
* @return the orignlFileNm
*/
public String getOrignlFileNm() {
return orignlFileNm;
}
/**
* orignlFileNm attribute 값을 설정한다.
*
* @param orignlFileNm
* the orignlFileNm to set
*/
public void setOrignlFileNm(String orignlFileNm) {
this.orignlFileNm = orignlFileNm;
}
/**
* streFileNm attribute를 리턴한다.
*
* @return the streFileNm
*/
public String getStreFileNm() {
return streFileNm;
}
/**
* streFileNm attribute 값을 설정한다.
*
* @param streFileNm
* the streFileNm to set
*/
public void setStreFileNm(String streFileNm) {
this.streFileNm = streFileNm;
}
/**
* toString 메소드를 대치한다.
*/
public String toString() {
return ToStringBuilder.reflectionToString(this);
}
}

View File

@ -0,0 +1,58 @@
package egovframework.com.cmm.service;
/**
* Class Name : Globals.java
* Description : 시스템 구동 프로퍼티를 통해 사용될 전역변수를 정의한다.
* Modification Information
*
* 수정일 수정자 수정내용
* ------- -------- ---------------------------
* 2009.01.19 박지욱 최초 생성
*
* @author 공통 서비스 개발팀 박지욱
* @since 2009. 01. 19
* @version 1.0
* @see
*
*/
public class Globals {
//OS 유형
public static final String OS_TYPE = EgovProperties.getProperty("Globals.OsType");
//DB 유형
public static final String DB_TYPE = EgovProperties.getProperty("Globals.DbType");
//메인 페이지
public static final String MAIN_PAGE = EgovProperties.getProperty("Globals.MainPage");
//ShellFile 경로
public static final String SHELL_FILE_PATH = EgovProperties.getPathProperty("Globals.ShellFilePath");
//퍼로퍼티 파일 위치
public static final String CONF_PATH = EgovProperties.getPathProperty("Globals.ConfPath");
//Server정보 프로퍼티 위치
public static final String SERVER_CONF_PATH = EgovProperties.getPathProperty("Globals.ServerConfPath");
//Client정보 프로퍼티 위치
public static final String CLIENT_CONF_PATH = EgovProperties.getPathProperty("Globals.ClientConfPath");
//파일포맷 정보 프로퍼티 위치
public static final String FILE_FORMAT_PATH = EgovProperties.getPathProperty("Globals.FileFormatPath");
//파일 업로드 파일명
public static final String ORIGIN_FILE_NM = "originalFileName";
//파일 확장자
public static final String FILE_EXT = "fileExtension";
//파일크기
public static final String FILE_SIZE = "fileSize";
//업로드된 파일명
public static final String UPLOAD_FILE_NM = "uploadFileName";
//파일경로
public static final String FILE_PATH = "filePath";
//메일발송요청 XML파일경로
public static final String MAIL_REQUEST_PATH = EgovProperties.getPathProperty("Globals.MailRequestPath");
//메일발송응답 XML파일경로
public static final String MAIL_RESPONSE_PATH = EgovProperties.getPathProperty("Globals.MailRResponsePath");
// G4C 연결용 IP (localhost)
public static final String LOCAL_IP = EgovProperties.getProperty("Globals.LocalIp");
}

View File

@ -0,0 +1,63 @@
package egovframework.com.cmm.service.impl;
import java.util.List;
import org.springframework.stereotype.Repository;
import egovframework.com.cmm.ComDefaultCodeVO;
import egovframework.com.cmm.service.CmmnDetailCode;
/**
* @Class Name : CmmUseDAO.java
* @Description : 공통코드등 전체 업무에서 공용해서 사용해야 하는 서비스를 정의하기위한 데이터 접근 클래스
* @Modification Information
*
* 수정일 수정자 수정내용
* ------- ------- -------------------
* 2009. 3. 11. 이삼섭
*
* @author 공통 서비스 개발팀 이삼섭
* @since 2009. 3. 11.
* @version
* @see
*
*/
@Repository("cmmUseDAO")
public class CmmUseDAO extends EgovComAbstractDAO {
/**
* 주어진 조건에 따른 공통코드를 불러온다.
*
* @param vo
* @return
* @throws Exception
*/
@SuppressWarnings("unchecked")
public List<CmmnDetailCode> selectCmmCodeDetail(ComDefaultCodeVO vo) throws Exception {
return list("CmmUseDAO.selectCmmCodeDetail", vo);
}
/**
* 공통코드로 사용할 조직정보를 불러온다.
*
* @param vo
* @return
* @throws Exception
*/
@SuppressWarnings("unchecked")
public List<CmmnDetailCode> selectOgrnztIdDetail(ComDefaultCodeVO vo) throws Exception {
return list("CmmUseDAO.selectOgrnztIdDetail", vo);
}
/**
* 공통코드로 사용할그룹정보를 불러온다.
*
* @param vo
* @return
* @throws Exception
*/
@SuppressWarnings("unchecked")
public List<CmmnDetailCode> selectGroupIdDetail(ComDefaultCodeVO vo) throws Exception {
return list("CmmUseDAO.selectGroupIdDetail", vo);
}
}

View File

@ -0,0 +1,91 @@
package egovframework.com.cmm.service.impl;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import egovframework.com.cmm.ComDefaultCodeVO;
import egovframework.com.cmm.service.CmmnDetailCode;
import egovframework.com.cmm.service.EgovCmmUseService;
import egovframework.rte.fdl.cmmn.AbstractServiceImpl;
/**
* @Class Name : EgovCmmUseServiceImpl.java
* @Description : 공통코드등 전체 업무에서 공용해서 사용해야 하는 서비스를 정의하기위한 서비스 구현 클래스
* @Modification Information
*
* 수정일 수정자 수정내용
* ------- ------- -------------------
* 2009. 3. 11. 이삼섭
*
* @author 공통 서비스 개발팀 이삼섭
* @since 2009. 3. 11.
* @version
* @see
*
*/
@Service("EgovCmmUseService")
public class EgovCmmUseServiceImpl extends AbstractServiceImpl implements EgovCmmUseService {
@Resource(name = "cmmUseDAO")
private CmmUseDAO cmmUseDAO;
/**
* 공통코드를 조회한다.
*
* @param vo
* @return
* @throws Exception
*/
public List<CmmnDetailCode> selectCmmCodeDetail(ComDefaultCodeVO vo) throws Exception {
return cmmUseDAO.selectCmmCodeDetail(vo);
}
/**
* ComDefaultCodeVO의 리스트를 받아서 여러개의 코드 리스트를 맵에 담아서 리턴한다.
*
* @param voList
* @return
* @throws Exception
*/
@SuppressWarnings("unchecked")
public Map<String, List<CmmnDetailCode>> selectCmmCodeDetails(List voList) throws Exception {
ComDefaultCodeVO vo;
Map<String, List<CmmnDetailCode>> map = new HashMap<String, List<CmmnDetailCode>>();
Iterator iter = voList.iterator();
while (iter.hasNext()) {
vo = (ComDefaultCodeVO)iter.next();
map.put(vo.getCodeId(), cmmUseDAO.selectCmmCodeDetail(vo));
}
return map;
}
/**
* 조직정보를 코드형태로 리턴한다.
*
* @param 조회조건정보 vo
* @return 조직정보 List
* @throws Exception
*/
public List<CmmnDetailCode> selectOgrnztIdDetail(ComDefaultCodeVO vo) throws Exception {
return cmmUseDAO.selectOgrnztIdDetail(vo);
}
/**
* 그룹정보를 코드형태로 리턴한다.
*
* @param 조회조건정보 vo
* @return 그룹정보 List
* @throws Exception
*/
public List<CmmnDetailCode> selectGroupIdDetail(ComDefaultCodeVO vo) throws Exception {
return cmmUseDAO.selectGroupIdDetail(vo);
}
}

View File

@ -0,0 +1,37 @@
/**
*
*/
package egovframework.com.cmm.service.impl;
import javax.annotation.Resource;
import com.ibatis.sqlmap.client.SqlMapClient;
import egovframework.rte.psl.dataaccess.EgovAbstractDAO;
/**
* EgovComAbstractDAO.java 클래스
*
* @author 서준식
* @since 2011. 9. 23.
* @version 1.0
* @see
*
* <pre>
* << 개정이력(Modification Information) >>
*
* 수정일 수정자 수정내용
* ------- ------------- ----------------------
* 2011. 9. 23. 서준식 최초 생성
* </pre>
*/
public abstract class EgovComAbstractDAO extends EgovAbstractDAO{
@Resource(name="egov.sqlMapClient")
public void setSuperSqlMapClient(SqlMapClient sqlMapClient) {
super.setSuperSqlMapClient(sqlMapClient);
}
}

View File

@ -0,0 +1,174 @@
package egovframework.com.cmm.service.impl;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
import org.apache.log4j.Logger;
import org.springframework.stereotype.Service;
import egovframework.com.cmm.service.EgovFileMngService;
import egovframework.com.cmm.service.FileVO;
import egovframework.com.utl.sim.service.EgovFileTool;
import egovframework.rte.fdl.cmmn.AbstractServiceImpl;
/**
* @Class Name : EgovFileMngServiceImpl.java
* @Description : 파일정보의 관리를 위한 구현 클래스
* @Modification Information
*
* 수정일 수정자 수정내용
* ------- ------- -------------------
* 2009. 3. 25. 이삼섭 최초생성
*
* @author 공통 서비스 개발팀 이삼섭
* @since 2009. 3. 25.
* @version
* @see
*
*/
@Service("EgovFileMngService")
public class EgovFileMngServiceImpl extends AbstractServiceImpl implements EgovFileMngService {
@Resource(name = "FileManageDAO")
private FileManageDAO fileMngDAO;
public static final Logger LOGGER = Logger.getLogger(EgovFileMngServiceImpl.class.getName());
/**
* 여러 개의 파일을 삭제한다.
*
* @see egovframework.com.cmm.service.EgovFileMngService#deleteFileInfs(java.util.List)
*/
@SuppressWarnings("unchecked")
public void deleteFileInfs(List fvoList) throws Exception {
fileMngDAO.deleteFileInfs(fvoList);
}
/**
* 하나의 파일에 대한 정보(속성 상세) 등록한다.
*
* @see egovframework.com.cmm.service.EgovFileMngService#insertFileInf(egovframework.com.cmm.service.FileVO)
*/
public String insertFileInf(FileVO fvo) throws Exception {
String atchFileId = fvo.getAtchFileId();
fileMngDAO.insertFileInf(fvo);
return atchFileId;
}
/**
* 여러 개의 파일에 대한 정보(속성 상세) 등록한다.
*
* @see egovframework.com.cmm.service.EgovFileMngService#insertFileInfs(java.util.List)
*/
@SuppressWarnings("unchecked")
public String insertFileInfs(List fvoList) throws Exception {
String atchFileId = "";
if (fvoList.size() != 0) {
atchFileId = fileMngDAO.insertFileInfs(fvoList);
}
if(atchFileId == ""){
atchFileId = null;
}
return atchFileId;
}
/**
* 파일에 대한 목록을 조회한다.
*
* @see egovframework.com.cmm.service.EgovFileMngService#selectFileInfs(egovframework.com.cmm.service.FileVO)
*/
public List<FileVO> selectFileInfs(FileVO fvo) throws Exception {
return fileMngDAO.selectFileInfs(fvo);
}
/**
* 여러 개의 파일에 대한 정보(속성 상세) 수정한다.
*
* @see egovframework.com.cmm.service.EgovFileMngService#updateFileInfs(java.util.List)
*/
@SuppressWarnings("unchecked")
public void updateFileInfs(List fvoList) throws Exception {
//Delete & Insert
fileMngDAO.updateFileInfs(fvoList);
}
/**
* 하나의 파일을 삭제한다.
*
* @see egovframework.com.cmm.service.EgovFileMngService#deleteFileInf(egovframework.com.cmm.service.FileVO)
*/
public void deleteFileInf(FileVO fvo) throws Exception {
FileVO delFile = selectFileInf(fvo);
if (delFile != null) {
LOGGER.debug("delete File :: " + EgovFileTool.deleteFile(delFile.getFileStreCours() + delFile.getStreFileNm()));
}
fileMngDAO.deleteFileInf(fvo);
}
/**
* 파일에 대한 상세정보를 조회한다.
*
* @see egovframework.com.cmm.service.EgovFileMngService#selectFileInf(egovframework.com.cmm.service.FileVO)
*/
public FileVO selectFileInf(FileVO fvo) throws Exception {
return fileMngDAO.selectFileInf(fvo);
}
/**
* 파일 구분자에 대한 최대값을 구한다.
*
* @see egovframework.com.cmm.service.EgovFileMngService#getMaxFileSN(egovframework.com.cmm.service.FileVO)
*/
public int getMaxFileSN(FileVO fvo) throws Exception {
return fileMngDAO.getMaxFileSN(fvo);
}
/**
* 전체 파일을 삭제한다.
*
* @see egovframework.com.cmm.service.EgovFileMngService#deleteAllFileInf(egovframework.com.cmm.service.FileVO)
*/
public void deleteAllFileInf(FileVO fvo) throws Exception {
fileMngDAO.deleteAllFileInf(fvo);
}
/**
* 파일명 검색에 대한 목록을 조회한다.
*
* @see egovframework.com.cmm.service.EgovFileMngService#selectFileListByFileNm(egovframework.com.cmm.service.FileVO)
*/
public Map<String, Object> selectFileListByFileNm(FileVO fvo) throws Exception {
List<FileVO> result = fileMngDAO.selectFileListByFileNm(fvo);
int cnt = fileMngDAO.selectFileListCntByFileNm(fvo);
Map<String, Object> map = new HashMap<String, Object>();
map.put("resultList", result);
map.put("resultCnt", Integer.toString(cnt));
return map;
}
/**
* 이미지 파일에 대한 목록을 조회한다.
*
* @see egovframework.com.cmm.service.EgovFileMngService#selectImageFileList(egovframework.com.cmm.service.FileVO)
*/
public List<FileVO> selectImageFileList(FileVO vo) throws Exception {
return fileMngDAO.selectImageFileList(vo);
}
/**
* 이미지 파일에 대한 상세를 조회한다.
*/
public FileVO selectImageFileInf(FileVO fvo) throws Exception {
return fileMngDAO.selectImageFileInf(fvo);
}
}

View File

@ -0,0 +1,115 @@
package egovframework.com.cmm.service.impl;
import java.util.ArrayList;
import java.util.List;
import egovframework.com.cmm.LoginVO;
import egovframework.com.cmm.service.EgovUserDetailsService;
import egovframework.rte.fdl.cmmn.AbstractServiceImpl;
/**
*
* @author 공통서비스 개발팀 서준식
* @since 2011. 8. 12.
* @version 1.0
* @see
*
* <pre>
* 개정이력(Modification Information)
*
* 수정일 수정자 수정내용
* ------- -------- ---------------------------
* 2011. 8. 12. 서준식 최초생성
*
* </pre>
*/
public class EgovTestUserDetailsServiceImpl extends AbstractServiceImpl implements
EgovUserDetailsService {
public Object getAuthenticatedUser() {
return getNormal();
/*return getMaster();*/
// return
// RequestContextHolder.getRequestAttributes().getAttribute("loginVO",
// RequestAttributes.SCOPE_SESSION);
}
public LoginVO getNormal() {
LoginVO loginVO = new LoginVO();
/*loginVO.setAuth("SUPER");*/
loginVO.setAuth("ENT");
loginVO.setId("webmaster");
loginVO.setPassword("a4ayc/80/OGda4BO/1o/V0etpOqiLx1JwB5S3beHW0s=");
loginVO.setUserSe("USR");
loginVO.setEmail("sms@gapia.net");
loginVO.setIhidNum("");
loginVO.setName("마스터");
loginVO.setOrgnztId("ORGNZT_0000000000000");
loginVO.setUniqId("USRCNFRM_00000000000");
return loginVO;
}
public LoginVO getMaster() {
LoginVO loginVO = new LoginVO();
loginVO.setAuth("Normal");
loginVO.setId("test4");
loginVO.setPassword("wvKceBOiVoKbh0FqMW2Ak+RRP8H0mDU8tiknbnXh03c=");
loginVO.setUserSe("USR");
loginVO.setEmail("sms@gapia.net");
loginVO.setIhidNum("");
loginVO.setName("일반회원");
loginVO.setOrgnztId("ORGNZT_0000000000000");
loginVO.setUniqId("USRCNFRM_00000000064");
return loginVO;
}
public List<String> getAuthorities() {
// 권한 설정을 리턴한다.
List<String> listAuth = new ArrayList<String>();
listAuth.add("IS_AUTHENTICATED_ANONYMOUSLY");
listAuth.add("IS_AUTHENTICATED_FULLY");
listAuth.add("IS_AUTHENTICATED_REMEMBERED");
listAuth.add("ROLE_ADMIN");
listAuth.add("ROLE_ANONYMOUS");
listAuth.add("ROLE_RESTRICTED");
listAuth.add("ROLE_USER");
return listAuth;
}
public Boolean isAuthenticated() {
// 인증된 유저인지 확인한다.
/*if (RequestContextHolder.getRequestAttributes() == null) {
return false;
} else {
if (RequestContextHolder.getRequestAttributes().getAttribute(
"loginVO", RequestAttributes.SCOPE_SESSION) == null) {
return false;
} else {
return true;
}
}*/
return true;
}
}

View File

@ -0,0 +1,66 @@
package egovframework.com.cmm.service.impl;
import java.util.ArrayList;
import java.util.List;
import org.springframework.web.context.request.RequestAttributes;
import org.springframework.web.context.request.RequestContextHolder;
import egovframework.com.cmm.service.EgovUserDetailsService;
import egovframework.rte.fdl.cmmn.AbstractServiceImpl;
/**
*
* @author 공통서비스 개발팀 서준식
* @since 2011. 6. 25.
* @version 1.0
* @see
*
* <pre>
* 개정이력(Modification Information)
*
* 수정일 수정자 수정내용
* ------- -------- ---------------------------
* 2011. 8. 12. 서준식 최초생성
*
* </pre>
*/
public class EgovUserDetailsSessionServiceImpl extends AbstractServiceImpl implements
EgovUserDetailsService {
public Object getAuthenticatedUser() {
return RequestContextHolder.getRequestAttributes().getAttribute("loginVO", RequestAttributes.SCOPE_SESSION);
}
public List<String> getAuthorities() {
// 권한 설정을 리턴한다.
List<String> listAuth = new ArrayList<String>();
return listAuth;
}
public Boolean isAuthenticated() {
// 인증된 유저인지 확인한다.
if (RequestContextHolder.getRequestAttributes() == null) {
return false;
} else {
if (RequestContextHolder.getRequestAttributes().getAttribute(
"loginVO", RequestAttributes.SCOPE_SESSION) == null) {
return false;
} else {
return true;
}
}
}
}

View File

@ -0,0 +1,199 @@
package egovframework.com.cmm.service.impl;
import java.util.Iterator;
import java.util.List;
import org.springframework.stereotype.Repository;
import egovframework.com.cmm.service.FileVO;
/**
* @Class Name : EgovFileMngDAO.java
* @Description : 파일정보 관리를 위한 데이터 처리 클래스
* @Modification Information
*
* 수정일 수정자 수정내용
* ------- ------- -------------------
* 2009. 3. 25. 이삼섭 최초생성
*
* @author 공통 서비스 개발팀 이삼섭
* @since 2009. 3. 25.
* @version
* @see
*
*/
@Repository("FileManageDAO")
public class FileManageDAO extends EgovComAbstractDAO {
//private static final Logger LOG = Logger.getLogger(this.getClass());
/**
* 여러 개의 파일에 대한 정보(속성 상세) 등록한다.
*
* @param fileList
* @return
* @throws Exception
*/
@SuppressWarnings("unchecked")
public String insertFileInfs(List fileList) throws Exception {
FileVO vo = (FileVO)fileList.get(0);
String atchFileId = vo.getAtchFileId();
insert("FileManageDAO.insertFileMaster", vo);
Iterator iter = fileList.iterator();
while (iter.hasNext()) {
vo = (FileVO)iter.next();
insert("FileManageDAO.insertFileDetail", vo);
}
return atchFileId;
}
/**
* 하나의 파일에 대한 정보(속성 상세) 등록한다.
*
* @param vo
* @throws Exception
*/
public void insertFileInf(FileVO vo) throws Exception {
insert("FileManageDAO.insertFileMaster", vo);
insert("FileManageDAO.insertFileDetail", vo);
}
/**
* 여러 개의 파일에 대한 정보(속성 상세) 수정한다.
*
* @param fileList
* @throws Exception
*/
@SuppressWarnings("unchecked")
public void updateFileInfs(List fileList) throws Exception {
FileVO vo;
Iterator iter = fileList.iterator();
while (iter.hasNext()) {
vo = (FileVO)iter.next();
insert("FileManageDAO.insertFileDetail", vo);
}
}
/**
* 여러 개의 파일을 삭제한다.
*
* @param fileList
* @throws Exception
*/
@SuppressWarnings("unchecked")
public void deleteFileInfs(List fileList) throws Exception {
Iterator iter = fileList.iterator();
FileVO vo;
while (iter.hasNext()) {
vo = (FileVO)iter.next();
delete("FileManageDAO.deleteFileDetail", vo);
}
}
/**
* 하나의 파일을 삭제한다.
*
* @param fvo
* @throws Exception
*/
public void deleteFileInf(FileVO fvo) throws Exception {
delete("FileManageDAO.deleteFileDetail", fvo);
}
/**
* 파일에 대한 목록을 조회한다.
*
* @param vo
* @return
* @throws Exception
*/
@SuppressWarnings("unchecked")
public List<FileVO> selectFileInfs(FileVO vo) throws Exception {
return list("FileManageDAO.selectFileList", vo);
}
/**
* 파일 구분자에 대한 최대값을 구한다.
*
* @param fvo
* @return
* @throws Exception
*/
public int getMaxFileSN(FileVO fvo) throws Exception {
return (Integer)getSqlMapClientTemplate().queryForObject("FileManageDAO.getMaxFileSN", fvo);
}
/**
* 파일에 대한 상세정보를 조회한다.
*
* @param fvo
* @return
* @throws Exception
*/
public FileVO selectFileInf(FileVO fvo) throws Exception {
return (FileVO)selectByPk("FileManageDAO.selectFileInf", fvo);
}
/**
* 전체 파일을 삭제한다.
*
* @param fvo
* @throws Exception
*/
public void deleteAllFileInf(FileVO fvo) throws Exception {
update("FileManageDAO.deleteCOMTNFILE", fvo);
}
/**
* 파일명 검색에 대한 목록을 조회한다.
*
* @param vo
* @return
* @throws Exception
*/
@SuppressWarnings("unchecked")
public List<FileVO> selectFileListByFileNm(FileVO fvo) throws Exception {
return list("FileManageDAO.selectFileListByFileNm", fvo);
}
/**
* 파일명 검색에 대한 목록 전체 건수를 조회한다.
*
* @param fvo
* @return
* @throws Exception
*/
public int selectFileListCntByFileNm(FileVO fvo) throws Exception {
return (Integer)getSqlMapClientTemplate().queryForObject("FileManageDAO.selectFileListCntByFileNm", fvo);
}
/**
* 이미지 파일에 대한 목록을 조회한다.
*
* @param vo
* @return
* @throws Exception
*/
@SuppressWarnings("unchecked")
public List<FileVO> selectImageFileList(FileVO vo) throws Exception {
return list("FileManageDAO.selectImageFileList", vo);
}
/**
* 이미지 파일에 대한 상세를 조회한다.
*
* @param fvo
* @return
* @throws Exception
*/
public FileVO selectImageFileInf(FileVO fvo) throws Exception {
return (FileVO)selectByPk("FileManageDAO.selectImageFileInf", fvo);
}
}

View File

@ -0,0 +1,68 @@
package egovframework.com.cmm.util;
import java.util.List;
import egovframework.com.cmm.service.EgovUserDetailsService;
/**
* EgovUserDetails Helper 클래스
*
* @author sjyoon
* @since 2009.06.01
* @version 1.0
* @see
*
* <pre>
* << 개정이력(Modification Information) >>
*
* 수정일 수정자 수정내용
* ------- ------------- ----------------------
* 2009.03.10 sjyoon 최초 생성
* 2011.07.01 서준식 interface 생성후 상세 로직의 분리
* </pre>
*/
public class EgovUserDetailsHelper {
static EgovUserDetailsService egovUserDetailsService;
public EgovUserDetailsService getEgovUserDetailsService() {
return egovUserDetailsService;
}
public void setEgovUserDetailsService(
EgovUserDetailsService egovUserDetailsService) {
this.egovUserDetailsService = egovUserDetailsService;
}
/**
* 인증된 사용자객체를 VO형식으로 가져온다.
* @return Object - 사용자 ValueObject
*/
public static Object getAuthenticatedUser() {
return egovUserDetailsService.getAuthenticatedUser();
}
/**
* 인증된 사용자의 권한 정보를 가져온다.
*
* @return List - 사용자 권한정보 목록
*/
public static List<String> getAuthorities() {
return egovUserDetailsService.getAuthorities();
}
/**
* 인증된 사용자 여부를 체크한다.
* @return Boolean - 인증된 사용자 여부(TRUE / FALSE)
*/
public static Boolean isAuthenticated() {
return egovUserDetailsService.isAuthenticated();
}
}

View File

@ -0,0 +1,22 @@
package egovframework.com.cmm.web;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.springframework.beans.propertyeditors.CustomDateEditor;
import org.springframework.beans.propertyeditors.StringTrimmerEditor;
import org.springframework.web.bind.WebDataBinder;
import org.springframework.web.bind.support.WebBindingInitializer;
import org.springframework.web.context.request.WebRequest;
public class EgovBindingInitializer implements WebBindingInitializer {
public void initBinder(WebDataBinder binder, WebRequest request) {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
dateFormat.setLenient(false);
binder.registerCustomEditor(Date.class, new CustomDateEditor(dateFormat, false));
binder.registerCustomEditor(String.class, new StringTrimmerEditor(false));
}
}

View File

@ -0,0 +1,177 @@
package egovframework.com.cmm.web;
/**
* 컴포넌트 설치 설치된 컴포넌트들을 IncludedInfo annotation을 통해 찾아낸
* 화면에 표시할 정보를 처리하는 Controller 클래스
* <Notice>
* 개발시 메뉴 구조가 잡히기 전에 배포파일들에 포함된 공통 컴포넌트들의 목록성 화면에
* URL을 제공하여 개발자가 편하게 활용하도록 하기 위해 작성된 것으로,
* 실제 운영되는 시스템에서는 적용해서는
* 운영 시에는 삭제해서 배포해도 좋음
* <Disclaimer>
* 운영시에 컨트롤을 사용하여 메뉴를 구성하는 경우 성능 문제를 일으키거나
* 사용자별 메뉴 구성에 오류를 발생할 있음
* @author 공통컴포넌트 정진오
* @since 2011.08.26
* @version 2.0.0
* @see
*
* <pre>
* << 개정이력(Modification Information) >>
*
* 수정일 수정자 수정내용
* ------- -------- ---------------------------
* 2011.08.26 정진오 최초 생성
* 2011.09.16 서준식 컨텐츠 페이지 생성
* 2011.09.26 이기하 header, footer 페이지 생성
* </pre>
*/
import java.lang.reflect.Method;
import java.util.Map;
import java.util.TreeMap;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import egovframework.com.cmm.IncludedCompInfoVO;
import egovframework.com.cmm.LoginVO;
import egovframework.com.cmm.annotation.IncludedInfo;
import egovframework.com.cmm.util.EgovUserDetailsHelper;
@Controller
public class EgovComIndexController implements ApplicationContextAware ,InitializingBean {
private ApplicationContext applicationContext;
protected static final Log LOG = LogFactory.getLog(EgovComIndexController.class);
private Map map;
public void afterPropertiesSet() throws Exception {
// TODO Auto-generated method stub
}
public void setApplicationContext(ApplicationContext applicationContext)
throws BeansException {
// TODO Auto-generated method stub
this.applicationContext = applicationContext;
LOG.info("EgovComIndexController setApplicationContext method has called!");
}
@RequestMapping("/index.do")
public String index(ModelMap model){
return "egovframework/com/cmm/EgovUnitMain";
}
@RequestMapping("/EgovTop.do")
public String top(){
return "egovframework/com/cmm/EgovUnitTop";
}
@RequestMapping("/EgovBottom.do")
public String bottom(){
return "egovframework/com/cmm/EgovUnitBottom";
}
@RequestMapping("/EgovContent.do")
public String setContent(ModelMap model){
LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser();
model.addAttribute("loginVO", loginVO);
return "egovframework/com/cmm/EgovUnitContent";
}
@RequestMapping("/EgovLeft.do")
public String setLeftMenu(ModelMap model){
/*최초 한 번만 실행하여 map에 저장해 놓는다.*/
if(map == null){
map = new TreeMap();
RequestMapping rmAnnotation;
IncludedInfo annotation;
IncludedCompInfoVO zooVO;
/*
* EgovLoginController가 AOP Proxy되는 바람에 클래스를 reflection으로 가져올 없음
* 방법을 찾을때까지 임시로 아래 코드 유지
*/
try{
Class loginController = Class.forName("egovframework.com.uat.uia.web.EgovLoginController");
Method[] methods = loginController.getMethods();
for(int i = 0; i< methods.length ;i++){
annotation = methods[i].getAnnotation(IncludedInfo.class);
if(annotation != null){
LOG.debug("Found @IncludedInfo Method : " + methods[i] );
zooVO = new IncludedCompInfoVO();
zooVO.setName(annotation.name());
zooVO.setOrder(annotation.order());
zooVO.setGid(annotation.gid());
rmAnnotation = methods[i].getAnnotation(RequestMapping.class);
if("".equals(annotation.listUrl()) && rmAnnotation != null){
zooVO.setListUrl(rmAnnotation.value()[0]);
}
else{
zooVO.setListUrl(annotation.listUrl());
}
map.put(zooVO.getOrder(),zooVO);
}
}
}
catch(Exception e){
LOG.error("No egovframework.com.uat.uia.web.EgovLoginController!!");
}
/* 여기까지 AOP Proxy로 인한 임시 코드 */
/*@Controller Annotation 처리된 클래스를 모두 찾는다.*/
Map<String, Object> myZoos = applicationContext.getBeansWithAnnotation(Controller.class);
LOG.debug("How many Controllers : " + myZoos.size());
for (final Object myZoo : myZoos.values()) {
Class<? extends Object> zooClass = myZoo.getClass();
Method[] methods = zooClass.getMethods();
LOG.debug("Controller Detected " + zooClass);
for(int i = 0; i< methods.length ;i++){
annotation = methods[i].getAnnotation(IncludedInfo.class);
if(annotation != null){
//LOG.debug("Found @IncludedInfo Method : " + methods[i] );
zooVO = new IncludedCompInfoVO();
zooVO.setName(annotation.name());
zooVO.setOrder(annotation.order());
zooVO.setGid(annotation.gid());
/*
* 목록형 조회를 위한 url 매핑은 @IncludedInfo나 @RequestMapping에서 가져온다
*/
rmAnnotation = methods[i].getAnnotation(RequestMapping.class);
if("".equals(annotation.listUrl())){
zooVO.setListUrl(rmAnnotation.value()[0]);
}
else{
zooVO.setListUrl(annotation.listUrl());
}
map.put(zooVO.getOrder(),zooVO);
}
}
}
}
model.addAttribute("resultList", map.values());
LOG.debug("EgovComIndexController index is called " );
return "egovframework/com/cmm/EgovUnitLeft";
}
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,312 @@
package egovframework.com.cmm.web;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.PrintWriter;
import java.net.URLEncoder;
import java.util.Map;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.log4j.Logger;
import org.springframework.stereotype.Controller;
import org.springframework.util.FileCopyUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import egovframework.com.cmm.service.EgovFileMngService;
import egovframework.com.cmm.service.EgovProperties;
import egovframework.com.cmm.service.FileVO;
import egovframework.com.cmm.util.EgovUserDetailsHelper;
/**
* 파일 다운로드를 위한 컨트롤러 클래스
* @author 공통서비스개발팀 이삼섭
* @since 2009.06.01
* @version 1.0
* @see
*
* <pre>
* << 개정이력(Modification Information) >>
*
* 수정일 수정자 수정내용
* ------- -------- ---------------------------
* 2009.3.25 이삼섭 최초 생성
*
* Copyright (C) 2009 by MOPAS All right reserved.
* </pre>
*/
@Controller
public class EgovFileDownloadController {
@Resource(name = "EgovFileMngService")
private EgovFileMngService fileService;
private static final Logger LOG = Logger.getLogger(EgovFileDownloadController.class.getName());
/**
* 브라우저 구분 얻기.
*
* @param request
* @return
*/
private String getBrowser(HttpServletRequest request) {
String header = request.getHeader("User-Agent");
if (header.indexOf("MSIE") > -1) {
return "MSIE";
} else if (header.indexOf("Trident") > -1) {
// InternetExplorer11 이상
return "MSIE";
} else if (header.indexOf("Chrome") > -1) {
return "Chrome";
} else if (header.indexOf("Opera") > -1) {
return "Opera";
}
return "Firefox";
}
/**
* Disposition 지정하기.
*
* @param filename
* @param request
* @param response
* @throws Exception
*/
private void setDisposition(String filename, String dispositionPrefixStr, HttpServletRequest request, HttpServletResponse response) throws Exception {
String browser = getBrowser(request);
String dispositionPrefix = "attachment; filename=";
// inline 지정가능
if ("inline".equals(dispositionPrefixStr)) {
dispositionPrefix = "inline; filename=";
}
String encodedFilename = null;
if (browser.equals("MSIE")) {
encodedFilename = URLEncoder.encode(filename, "UTF-8").replaceAll("\\+", "%20");
} else if (browser.equals("Firefox")) {
encodedFilename = "\"" + new String(filename.getBytes("UTF-8"), "8859_1") + "\"";
} else if (browser.equals("Opera")) {
encodedFilename = "\"" + new String(filename.getBytes("UTF-8"), "8859_1") + "\"";
} else if (browser.equals("Chrome")) {
StringBuffer sb = new StringBuffer();
for (int i = 0; i < filename.length(); i++) {
char c = filename.charAt(i);
if (c > '~') {
sb.append(URLEncoder.encode("" + c, "UTF-8"));
} else {
sb.append(c);
}
}
encodedFilename = sb.toString();
} else {
//throw new RuntimeException("Not supported browser");
throw new IOException("Not supported browser");
}
response.setHeader("Content-Disposition", dispositionPrefix + encodedFilename);
if ("Opera".equals(browser)){
response.setContentType("application/octet-stream;charset=UTF-8");
}
}
/**
* 첨부파일로 등록된 파일에 대하여 다운로드를 제공한다.
*
* @param commandMap
* @param response
* @throws Exception
*/
@RequestMapping(value = "/cmm/fms/FileDown.do")
public void cvplFileDownload(Map<String, Object> commandMap, HttpServletRequest request, HttpServletResponse response) throws Exception {
String atchFileId = (String)commandMap.get("atchFileId");
String fileSn = (String)commandMap.get("fileSn");
Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated();
FileVO fileVO = new FileVO();
fileVO.setAtchFileId(atchFileId);
fileVO.setFileSn(fileSn);
FileVO fvo = fileService.selectFileInf(fileVO);
if (fvo != null) {
String fileExtsn = fvo.getFileExtsn().toLowerCase();
String mime = "";
if(fileExtsn.equals("doc")){
mime = "application/msword";
}else if(fileExtsn.equals("pdf")){
mime = "application/pdf";
}else if(fileExtsn.equals("xls")){
mime = "application/x-msexcel";
}else if(fileExtsn.equals("ppt")){
mime = "application/x-mspowerpoint";
}else if(fileExtsn.equals("gif")){
mime = "image/gif";
}else if(fileExtsn.equals("jpeg")||fileExtsn.equals("jpg")||fileExtsn.equals("jpe")){
mime = "image/jpeg";
}else if(fileExtsn.equals("hwp")){
mime = "application/haansofthwp";
}else{
mime = "application/x-msdownload";
}
File uFile = new File(EgovProperties.getProperty("Globals.fileStorePath"), fvo.getStreFileNm());
int fSize = (int)uFile.length();
String mimetype = mime;
//response.setBufferSize(fSize); // OutOfMemeory 발생
response.setContentType(mimetype);
//response.setHeader("Content-Disposition", "attachment; filename=\"" + URLEncoder.encode(fvo.getOrignlFileNm(), "utf-8") + "\"");
setDisposition(fvo.getOrignlFileNm(), "", request, response);
response.setContentLength(fSize);
/*
* FileCopyUtils.copy(in, response.getOutputStream());
* in.close();
* response.getOutputStream().flush();
* response.getOutputStream().close();
*/
BufferedInputStream in = null;
BufferedOutputStream out = null;
try {
in = new BufferedInputStream(new FileInputStream(uFile));
out = new BufferedOutputStream(response.getOutputStream());
FileCopyUtils.copy(in, out);
out.flush();
} catch (Exception ex) {
//ex.printStackTrace();
// 다음 Exception 무시 처리
// Connection reset by peer: socket write error
LOG.debug("IGNORED: " + ex.getMessage());
} finally {
if (in != null) {
try {
in.close();
} catch (Exception ignore) {
// no-op
LOG.debug("IGNORED: " + ignore.getMessage());
}
}
if (out != null) {
try {
out.close();
} catch (Exception ignore) {
// no-op
LOG.debug("IGNORED: " + ignore.getMessage());
}
}
}
} else {
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html; charset=UTF-8");
PrintWriter printwriter = response.getWriter();
printwriter.println("<script>");
printwriter.println("alert('첨부된 파일을 찾을 수 없습니다.');");
printwriter.println("history.go(-1);");
printwriter.println("</script>");
printwriter.flush();
printwriter.close();
}
}
/**
* 첨부파일로 등록된 파일(PDF전용) 대하여 오픈기능 제공
*
* @param commandMap
* @param response
* @throws Exception
*/
@RequestMapping(value = "/cmm/fms/PDF.do")
public void openPdf(Map<String, Object> commandMap, HttpServletRequest request, HttpServletResponse response) throws Exception {
String atchFileId = (String)commandMap.get("atchFileId");
String fileSn = (String)commandMap.get("fileSn");
FileVO fileVO = new FileVO();
fileVO.setAtchFileId(atchFileId);
fileVO.setFileSn(fileSn);
FileVO fvo = fileService.selectFileInf(fileVO);
if (fvo != null) {
File uFile = new File(EgovProperties.getProperty("Globals.fileStorePath"), fvo.getStreFileNm());
int fSize = (int)uFile.length();
String mimetype = "application/pdf";
//response.setBufferSize(fSize); // OutOfMemeory 발생
response.setContentType(mimetype);
//response.setHeader("Content-Disposition", "attachment; filename=\"" + URLEncoder.encode(fvo.getOrignlFileNm(), "utf-8") + "\"");
setDisposition(fvo.getOrignlFileNm(), "inline", request, response);
response.setContentLength(fSize);
/*
* FileCopyUtils.copy(in, response.getOutputStream());
* in.close();
* response.getOutputStream().flush();
* response.getOutputStream().close();
*/
BufferedInputStream in = null;
BufferedOutputStream out = null;
try {
in = new BufferedInputStream(new FileInputStream(uFile));
out = new BufferedOutputStream(response.getOutputStream());
FileCopyUtils.copy(in, out);
out.flush();
} catch (Exception ex) {
//ex.printStackTrace();
// 다음 Exception 무시 처리
// Connection reset by peer: socket write error
LOG.debug("IGNORED: " + ex.getMessage());
} finally {
if (in != null) {
try {
in.close();
} catch (Exception ignore) {
// no-op
LOG.debug("IGNORED: " + ignore.getMessage());
}
}
if (out != null) {
try {
out.close();
} catch (Exception ignore) {
// no-op
LOG.debug("IGNORED: " + ignore.getMessage());
}
}
}
} else {
response.setCharacterEncoding("UTF-8");
response.setContentType("text/html; charset=UTF-8");
PrintWriter printwriter = response.getWriter();
printwriter.println("<script>");
printwriter.println("alert('첨부된 파일을 찾을 수 없습니다.');");
printwriter.println("history.go(-1);");
printwriter.println("</script>");
printwriter.flush();
printwriter.close();
}
}
}

View File

@ -0,0 +1,164 @@
package egovframework.com.cmm.web;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import org.apache.log4j.Logger;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import egovframework.com.cmm.service.EgovFileMngService;
import egovframework.com.cmm.service.FileVO;
import egovframework.com.cmm.util.EgovUserDetailsHelper;
/**
* 파일 조회, 삭제, 다운로드 처리를 위한 컨트롤러 클래스
* @author 공통서비스개발팀 이삼섭
* @since 2009.06.01
* @version 1.0
* @see
*
* <pre>
* << 개정이력(Modification Information) >>
*
* 수정일 수정자 수정내용
* ------- -------- ---------------------------
* 2009.3.25 이삼섭 최초 생성
*
* </pre>
*/
@Controller
public class EgovFileMngController {
@Resource(name = "EgovFileMngService")
private EgovFileMngService fileService;
private static final Logger LOG = Logger.getLogger(EgovFileMngController.class.getName());
/**
* 첨부파일에 대한 목록을 조회한다.
*
* @param fileVO
* @param atchFileId
* @param sessionVO
* @param model
* @return
* @throws Exception
*/
@RequestMapping("/cmm/fms/selectFileInfs.do")
public String selectFileInfs(@ModelAttribute("searchVO") FileVO fileVO, Map<String, Object> commandMap, ModelMap model) throws Exception {
String atchFileId = (String)commandMap.get("param_atchFileId");
fileVO.setAtchFileId(atchFileId);
List<FileVO> result = fileService.selectFileInfs(fileVO);
model.addAttribute("fileList", result);
model.addAttribute("updateFlag", "N");
model.addAttribute("fileListCnt", result.size());
model.addAttribute("atchFileId", atchFileId);
return "egovframework/com/cmm/fms/EgovFileList";
}
/**
* 첨부파일 변경을 위한 수정페이지로 이동한다.
*
* @param fileVO
* @param atchFileId
* @param sessionVO
* @param model
* @return
* @throws Exception
*/
@RequestMapping("/cmm/fms/selectFileInfsForUpdate.do")
public String selectFileInfsForUpdate(@ModelAttribute("searchVO") FileVO fileVO, Map<String, Object> commandMap,
//SessionVO sessionVO,
ModelMap model) throws Exception {
String atchFileId = (String)commandMap.get("param_atchFileId");
fileVO.setAtchFileId(atchFileId);
List<FileVO> result = fileService.selectFileInfs(fileVO);
model.addAttribute("fileList", result);
model.addAttribute("updateFlag", "Y");
model.addAttribute("fileListCnt", result.size());
model.addAttribute("atchFileId", atchFileId);
return "egovframework/com/cmm/fms/EgovFileList";
}
/**
* 첨부파일에 대한 삭제를 처리한다.
*
* @param fileVO
* @param returnUrl
* @param sessionVO
* @param model
* @return
* @throws Exception
*/
@RequestMapping("/cmm/fms/deleteFileInfs.do")
public String deleteFileInf(@ModelAttribute("searchVO") FileVO fileVO
, @RequestParam("returnUrl") String returnUrl
,
//SessionVO sessionVO,
HttpServletRequest request,
ModelMap model) throws Exception {
Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated();
if (isAuthenticated) {
fileService.deleteFileInf(fileVO);
}
//--------------------------------------------
// contextRoot가 있는 경우 제외 시켜야
//--------------------------------------------
////return "forward:/cmm/fms/selectFileInfs.do";
//return "forward:" + returnUrl;
if ("".equals(request.getContextPath()) || "/".equals(request.getContextPath())) {
return "forward:" + returnUrl;
}
if (returnUrl.startsWith(request.getContextPath())) {
return "forward:" + returnUrl.substring(returnUrl.indexOf("/", 1));
} else {
return "forward:" + returnUrl;
}
////------------------------------------------
}
/**
* 이미지 첨부파일에 대한 목록을 조회한다.
*
* @param fileVO
* @param atchFileId
* @param sessionVO
* @param model
* @return
* @throws Exception
*/
@RequestMapping("/cmm/fms/selectImageFileInfs.do")
public String selectImageFileInfs(@ModelAttribute("searchVO") FileVO fileVO, Map<String, Object> commandMap,
//SessionVO sessionVO,
ModelMap model) throws Exception {
String atchFileId = (String)commandMap.get("atchFileId");
fileVO.setAtchFileId(atchFileId);
List<FileVO> result = fileService.selectImageFileList(fileVO);
model.addAttribute("fileList", result);
return "egovframework/com/cmm/fms/EgovImgFileList";
}
}

View File

@ -0,0 +1,278 @@
package egovframework.com.cmm.web;
import java.io.BufferedInputStream;
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.net.URLEncoder;
import java.util.Map;
import javax.annotation.Resource;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import kr.or.arko.cmn.utils.Thumbnail;
import org.apache.log4j.Logger;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.RequestMapping;
import egovframework.com.cmm.EgovWebUtil;
import egovframework.com.cmm.SessionVO;
import egovframework.com.cmm.service.EgovFileMngService;
import egovframework.com.cmm.service.EgovProperties;
import egovframework.com.cmm.service.FileVO;
/**
* @Class Name : EgovImageProcessController.java
* @Description :
* @Modification Information
*
* 수정일 수정자 수정내용 ------- ------- ------------------- 2009. 4. 2. 이삼섭
*
* @author 공통 서비스 개발팀 이삼섭
* @since 2009. 4. 2.
* @version
* @see
*
*/
@SuppressWarnings("serial")
@Controller
public class EgovImageProcessController extends HttpServlet {
@Resource(name = "EgovFileMngService")
private EgovFileMngService fileService;
private static final Logger LOG = Logger.getLogger(EgovImageProcessController.class.getName());
/**
* 브라우저 구분 얻기.
*
* @param request
* @return
*/
private String getBrowser(HttpServletRequest request) {
String header = request.getHeader("User-Agent");
if (header.indexOf("MSIE") > -1) {
return "MSIE";
} else if (header.indexOf("Trident") > -1) {
// InternetExplorer11 이상
return "MSIE";
} else if (header.indexOf("Chrome") > -1) {
return "Chrome";
} else if (header.indexOf("Opera") > -1) { return "Opera"; }
return "Firefox";
}
/**
* Disposition 지정하기.
*
* @param filename
* @param request
* @param response
* @throws Exception
*/
private void setDisposition(String filename, String dispositionPrefixStr, HttpServletRequest request, HttpServletResponse response) throws Exception {
String browser = getBrowser(request);
String dispositionPrefix = "attachment; filename=";
// inline 지정가능
if ("inline".equals(dispositionPrefixStr)) {
dispositionPrefix = "inline; filename=";
}
String encodedFilename = null;
if (browser.equals("MSIE")) {
encodedFilename = URLEncoder.encode(filename, "UTF-8").replaceAll("\\+", "%20");
} else if (browser.equals("Firefox")) {
encodedFilename = "\"" + new String(filename.getBytes("UTF-8"), "8859_1") + "\"";
} else if (browser.equals("Opera")) {
encodedFilename = "\"" + new String(filename.getBytes("UTF-8"), "8859_1") + "\"";
} else if (browser.equals("Chrome")) {
StringBuffer sb = new StringBuffer();
for (int i = 0; i < filename.length(); i++) {
char c = filename.charAt(i);
if (c > '~') {
sb.append(URLEncoder.encode("" + c, "UTF-8"));
} else {
sb.append(c);
}
}
encodedFilename = sb.toString();
} else {
// throw new RuntimeException("Not supported browser");
throw new IOException("Not supported browser");
}
response.setHeader("Content-Disposition", dispositionPrefix + encodedFilename);
if ("Opera".equals(browser)) {
response.setContentType("application/octet-stream;charset=UTF-8");
}
}
/**
* 첨부된 이미지에 대한 미리보기 기능을 제공한다.
*
* @param atchFileId
* @param fileSn
* @param sessionVO
* @param model
* @param response
* @throws Exception
*/
@RequestMapping("/cmm/fms/getImage.do")
public void getImageInf(SessionVO sessionVO, ModelMap model, Map<String, Object> commandMap, HttpServletResponse response, HttpServletRequest request)
throws Exception {
// @RequestParam("atchFileId") String atchFileId,
// @RequestParam("fileSn") String fileSn,
String atchFileId = (String) commandMap.get("atchFileId");
String fileSn = (String) commandMap.get("fileSn");
String thumbNail = (String) commandMap.get("thumbNail");
String preView = (String) commandMap.get("preView");
if (atchFileId == null || "".equals(atchFileId)) {
response.setStatus(404);
return;
}
FileVO vo = new FileVO();
vo.setAtchFileId(atchFileId);
vo.setFileSn(fileSn);
String suffix = "";
// FileVO fvo = fileService.selectFileInf(vo);
FileVO fvo;
if (thumbNail != null && "ok".equals(thumbNail)) {
/* ThumbNail 이미지 만들기(2013.12.14) */
suffix = "thumbNail/";
fvo = fileService.selectImageFileInf(vo);
if (fvo != null) {
String thumbNailStorePath = EgovProperties.getProperty("Globals.fileThumbNailStorePath");
// String orgFilePath = fvo.getFileStreCours() + fvo.getStreFileNm();
String orgFilePath = EgovProperties.getProperty("Globals.fileStorePath") + fvo.getStreFileNm();
String thumbNailFilePath = thumbNailStorePath + fvo.getStreFileNm();
int width = 253;
int height = 183;
File thumbNailStoreFolder = new File(EgovWebUtil.filePathBlackList(thumbNailStorePath));
if (!thumbNailStoreFolder.exists()) {
thumbNailStoreFolder.mkdirs();
}
File thumbNailFile = new File(EgovWebUtil.filePathBlackList(thumbNailFilePath));
if (!thumbNailFile.exists()) {
// EgovWebUtil.makeThumbNail(orgFilePath, thumbNailFilePath, width, height);
Thumbnail.create(orgFilePath, thumbNailFilePath, width, height);
}
fvo.setFileStreCours(thumbNailStorePath);
}
} else if (preView != null && "ok".equals(preView)) {
/* PreView 이미지 만들기(2013.12.18) */
suffix = "preView/";
fvo = fileService.selectImageFileInf(vo);
if (fvo != null) {
String preViewStorePath = EgovProperties.getProperty("Globals.filePreViewStorePath");
String orgFilePath = EgovProperties.getProperty("Globals.fileStorePath") + fvo.getStreFileNm();
String preViewFilePath = preViewStorePath + fvo.getStreFileNm();
int width = 730;
int height = 410;
File preViewStoreFolder = new File(EgovWebUtil.filePathBlackList(preViewStorePath));
if (!preViewStoreFolder.exists()) {
preViewStoreFolder.mkdirs();
}
File preViewFile = new File(EgovWebUtil.filePathBlackList(preViewFilePath));
if (!preViewFile.exists()) {
// EgovWebUtil.makeThumbNail(orgFilePath, preViewFilePath, width, height);
Thumbnail.create(orgFilePath, preViewFilePath, width, height);
}
fvo.setFileStreCours(preViewStorePath);
}
} else {
fvo = fileService.selectFileInf(vo);
}
// String fileLoaction = fvo.getFileStreCours() + fvo.getStreFileNm();
// 2011.10.10 보안점검 후속조치
File file = null;
FileInputStream fis = null;
BufferedInputStream in = null;
ByteArrayOutputStream bStream = null;
try {
file = new File(EgovProperties.getProperty("Globals.fileStorePath") + suffix, fvo.getStreFileNm());
fis = new FileInputStream(file);
in = new BufferedInputStream(fis);
bStream = new ByteArrayOutputStream();
int imgByte;
while ((imgByte = in.read()) != -1) {
bStream.write(imgByte);
}
String type = "";
if (fvo.getFileExtsn() != null && !"".equals(fvo.getFileExtsn())) {
if ("jpg".equals(fvo.getFileExtsn().toLowerCase())) {
type = "image/jpeg";
} else {
type = "image/" + fvo.getFileExtsn().toLowerCase();
}
type = "image/" + fvo.getFileExtsn().toLowerCase();
} else {
LOG.debug("Image fileType is null.");
}
response.setHeader("Content-Type", type);
setDisposition(fvo.getOrignlFileNm(), "inline", request, response);
String mimetype = "application/x-msdownload";
response.setContentType(mimetype);
response.setContentLength(bStream.size());
bStream.writeTo(response.getOutputStream());
response.getOutputStream().flush();
response.getOutputStream().close();
// 2011.10.10 보안점검 후속조치
} catch(Exception e) {
LOG.error(e.getMessage());
} finally {
if (bStream != null) {
try {
bStream.close();
} catch (Exception ignore) {
// System.out.println("IGNORE: " + ignore);
LOG.debug("IGNORE: " + ignore.getMessage());
}
}
if (in != null) {
try {
in.close();
} catch (Exception ignore) {
// System.out.println("IGNORE: " + ignore);
LOG.debug("IGNORE: " + ignore.getMessage());
}
}
if (fis != null) {
try {
fis.close();
} catch (Exception ignore) {
// System.out.println("IGNORE: " + ignore);
LOG.debug("IGNORE: " + ignore.getMessage());
}
}
}
}
}

View File

@ -0,0 +1,196 @@
package egovframework.com.cmm.web;
/*
* Copyright 2001-2006 The Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the ";License&quot;);
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://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.
*/
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import javax.servlet.ServletContext;
import org.apache.commons.fileupload.FileItem;
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;
import org.springframework.util.StringUtils;
import org.springframework.web.multipart.MultipartException;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.commons.CommonsMultipartFile;
import org.springframework.web.multipart.commons.CommonsMultipartResolver;
import egovframework.com.cmm.service.EgovProperties;
/**
* 실행환경의 파일업로드 처리를 위한 기능 클래스
* @author 공통서비스개발팀 이삼섭
* @since 2009.06.01
* @version 1.0
* @see
*
* <pre>
* << 개정이력(Modification Information) >>
*
* 수정일 수정자 수정내용
* ------- -------- ---------------------------
* 2009.3.25 이삼섭 최초 생성
* 2011.06.11 서준식 스프링 3.0 업그레이드 API변경으로인한 수정
*
* </pre>
*/
public class EgovMultipartResolver extends CommonsMultipartResolver {
public EgovMultipartResolver() {
}
/**
* 첨부파일 처리를 위한 multipart resolver를 생성한다.
*
* @param servletContext
*/
public EgovMultipartResolver(ServletContext servletContext) {
super(servletContext);
}
/**
* multipart에 대한 parsing을 처리한다.
*/
@SuppressWarnings("unchecked")
@Override
protected MultipartParsingResult parseFileItems(List fileItems, String encoding) {
//스프링 3.0변경으로 수정한 부분
MultiValueMap<String, MultipartFile> multipartFiles = new LinkedMultiValueMap<String, MultipartFile>();
Map<String, String[]> multipartParameters = new HashMap<String, String[]>();
// Extract multipart files and multipart parameters.
for (Iterator it = fileItems.iterator(); it.hasNext();) {
FileItem fileItem = (FileItem)it.next();
if (fileItem.isFormField()) {
String value = null;
if (encoding != null) {
try {
value = fileItem.getString(encoding);
} catch (UnsupportedEncodingException ex) {
if (logger.isWarnEnabled()) {
logger.warn("Could not decode multipart item '" + fileItem.getFieldName() + "' with encoding '" + encoding
+ "': using platform default");
}
value = fileItem.getString();
}
} else {
value = fileItem.getString();
}
String[] curParam = (String[])multipartParameters.get(fileItem.getFieldName());
if (curParam == null) {
// simple form field
multipartParameters.put(fileItem.getFieldName(), new String[] { value });
} else {
// array of simple form fields
String[] newParam = StringUtils.addStringToArray(curParam, value);
multipartParameters.put(fileItem.getFieldName(), newParam);
}
} else {
if (fileItem.getSize() > 0) {
// multipart file field
CommonsMultipartFile file = new CommonsMultipartFile(fileItem);
//스프링 3.0 업그레이드 API변경으로인한 수정
List<MultipartFile> fileList = new ArrayList<MultipartFile>();
fileList.add(file);
// 파일 확장자체크 시작
boolean isAuthExtension = false;
String fileNm = file.getFileItem().getName().toLowerCase();
String [] authExtensionDoc = EgovProperties.getProperty("Globals.authExtensionDoc").split("\\|");
String [] authExtensionImg = EgovProperties.getProperty("Globals.authExtensionImg").split("\\|");
String [] authExtensionMed = EgovProperties.getProperty("Globals.authExtensionMed").split("\\|");
String [] authExtensionCmp = EgovProperties.getProperty("Globals.authExtensionCmp").split("\\|");
for(int i = 0; i < authExtensionDoc.length; i++){
if(fileNm.endsWith(authExtensionDoc[i])){
isAuthExtension = true;
break;
}
}
if(!isAuthExtension){
for(int i = 0; i < authExtensionImg.length; i++){
if(fileNm.endsWith(authExtensionImg[i])){
isAuthExtension = true;
break;
}
}
}
if(!isAuthExtension){
for(int i = 0; i < authExtensionMed.length; i++){
if(fileNm.endsWith(authExtensionMed[i])){
isAuthExtension = true;
break;
}
}
}
if(!isAuthExtension){
for(int i = 0; i < authExtensionCmp.length; i++){
if(fileNm.endsWith(authExtensionCmp[i])){
isAuthExtension = true;
break;
}
}
}
if(!isAuthExtension){
throw new MultipartException("'" + fileNm + "' 파일은 첨부할 수 없는 파일입니다.");
}
// --파일 확장자체크
if (multipartFiles.put(fileItem.getFieldName(), fileList) != null) { // CHANGED!!
throw new MultipartException("Multiple files for field name [" + file.getName()
+ "] found - not supported by MultipartResolver");
}
if (logger.isDebugEnabled()) {
logger.debug("Found multipart file [" + file.getName() + "] of size " + file.getSize() + " bytes with original filename ["
+ file.getOriginalFilename() + "], stored " + file.getStorageDescription());
}
} else {
// multipart file field
CommonsMultipartFile file = new CommonsMultipartFile(fileItem);
//스프링 3.0 업그레이드 API변경으로인한 수정
List<MultipartFile> fileList = new ArrayList<MultipartFile>();
fileList.add(file);
if (multipartFiles.put(fileItem.getFieldName(), fileList) != null) { // CHANGED!!
throw new MultipartException("Multiple files for field name [" + file.getName()
+ "] found - not supported by MultipartResolver");
}
}
}
}
return new MultipartParsingResult(multipartFiles, multipartParameters);
}
}

View File

@ -0,0 +1,114 @@
package egovframework.com.cntc.service;
import egovframework.com.uss.umt.service.UserDefaultVO;
public class CntcListVO extends UserDefaultVO{
private String mberId; //회원ID
private String mberNm; //회원이름
private String actdate; //봉사일자
private String volunteerId; //봉사아이디
private String volunteerSeqId; //봉사활동 고유번호
private String volunteerTitle; //봉사이름
private String fromtime; //시작시간
private String totime; //종료시간
private String acthr; //인정시간
private String cnsmrname; //활동인증처
private String senddate; //송신날짜
private String recvdate; //수신날짜
private String rescode; //수신코드
private String result; //수신결과
private String successCnt; //성공카운팅
public String getSuccessCnt() {
return successCnt;
}
public void setSuccessCnt(String successCnt) {
this.successCnt = successCnt;
}
public String getMberId() {
return mberId;
}
public void setMberId(String mberId) {
this.mberId = mberId;
}
public String getMberNm() {
return mberNm;
}
public void setMberNm(String mberNm) {
this.mberNm = mberNm;
}
public String getActdate() {
return actdate;
}
public void setActdate(String actdate) {
this.actdate = actdate;
}
public String getVolunteerId() {
return volunteerId;
}
public void setVolunteerId(String volunteerId) {
this.volunteerId = volunteerId;
}
public String getVolunteerSeqId() {
return volunteerSeqId;
}
public void setVolunteerSeqId(String volunteerSeqId) {
this.volunteerSeqId = volunteerSeqId;
}
public String getVolunteerTitle() {
return volunteerTitle;
}
public void setVolunteerTitle(String volunteerTitle) {
this.volunteerTitle = volunteerTitle;
}
public String getFromtime() {
return fromtime;
}
public void setFromtime(String fromtime) {
this.fromtime = fromtime;
}
public String getTotime() {
return totime;
}
public void setTotime(String totime) {
this.totime = totime;
}
public String getActhr() {
return acthr;
}
public void setActhr(String acthr) {
this.acthr = acthr;
}
public String getCnsmrname() {
return cnsmrname;
}
public void setCnsmrname(String cnsmrname) {
this.cnsmrname = cnsmrname;
}
public String getSenddate() {
return senddate;
}
public void setSenddate(String senddate) {
this.senddate = senddate;
}
public String getRecvdate() {
return recvdate;
}
public void setRecvdate(String recvdate) {
this.recvdate = recvdate;
}
public String getRescode() {
return rescode;
}
public void setRescode(String rescode) {
this.rescode = rescode;
}
public String getResult() {
return result;
}
public void setResult(String result) {
this.result = result;
}
}

View File

@ -0,0 +1,46 @@
package egovframework.com.cntc.service;
public class CntcRecvVO {
/*응답코드*/
private String rescode;
/*봉사자(회원) 아이디*/
private String actid;
/*봉사자 회원번호*/
private String nanumid;
/*1365봉사실적연계sequence*/
private String nanumresno;
/*연계실적 UNIQUE*/
private String actseq;
public String getRescode() {
return rescode;
}
public void setRescode(String rescode) {
this.rescode = rescode;
}
public String getActid() {
return actid;
}
public void setActid(String actid) {
this.actid = actid;
}
public String getNanumid() {
return nanumid;
}
public void setNanumid(String nanumid) {
this.nanumid = nanumid;
}
public String getNanumresno() {
return nanumresno;
}
public void setNanumresno(String nanumresno) {
this.nanumresno = nanumresno;
}
public String getActseq() {
return actseq;
}
public void setActseq(String actseq) {
this.actseq = actseq;
}
}

View File

@ -0,0 +1,193 @@
package egovframework.com.cntc.service;
public class CntcSendVO {
/*연계실적 UNIQUE*/
private String actseq;
/*봉사자(회원) 아이디*/
private String actid;
/*자원봉사자 주민번호*/
private String respsno;
/*봉사자 주민번호에 대한 CI*/
private String ci;
/*봉사일자*/
private String actdate;
/*봉사시작(시,분)*/
private String fromtime;
/*봉사종료(시,분)*/
private String totime;
/*자원봉사인정시간(시)*/
private String acthr;
/*자원봉사인정시간(분)*/
private String actmin;
/*자원봉사실적 내용(일감 제목)*/
private String actsj;
/*실적승인일자*/
private String createdate;
/*수요처명*/
private String cnsmrname;
/*봉사활동분야*/
private String clcode;
/*작업구분코드 (C : CREATE, U : UPDATE, D : DELETE)*/
private String workFg;
/*이전1365봉사실적연계sequence (작업구분이U또는D일경우)*/
private String nanumresno;
/*송신확인*/
private String sendstatus;
/*송신받은 날짜*/
private String senddate;
public String getActseq() {
return actseq;
}
public void setActseq(String actseq) {
this.actseq = actseq;
}
public String getActid() {
return actid;
}
public void setActid(String actid) {
this.actid = actid;
}
public String getRespsno() {
return respsno;
}
public void setRespsno(String respsno) {
this.respsno = respsno;
}
public String getCi() {
return ci;
}
public void setCi(String ci) {
this.ci = ci;
}
public String getActdate() {
return actdate;
}
public void setActdate(String actdate) {
this.actdate = actdate;
}
public String getFromtime() {
return fromtime;
}
public void setFromtime(String fromtime) {
this.fromtime = fromtime;
}
public String getTotime() {
return totime;
}
public void setTotime(String totime) {
this.totime = totime;
}
public String getActhr() {
return acthr;
}
public void setActhr(String acthr) {
this.acthr = acthr;
}
public String getActmin() {
return actmin;
}
public void setActmin(String actmin) {
this.actmin = actmin;
}
public String getActsj() {
return actsj;
}
public void setActsj(String actsj) {
this.actsj = actsj;
}
public String getCreatedate() {
return createdate;
}
public void setCreatedate(String createdate) {
this.createdate = createdate;
}
public String getCnsmrname() {
return cnsmrname;
}
public void setCnsmrname(String cnsmrname) {
this.cnsmrname = cnsmrname;
}
public String getClcode() {
return clcode;
}
public void setClcode(String clcode) {
this.clcode = clcode;
}
public String getWorkFg() {
return workFg;
}
public void setWorkFg(String workFg) {
this.workFg = workFg;
}
public String getNanumresno() {
return nanumresno;
}
public void setNanumresno(String nanumresno) {
this.nanumresno = nanumresno;
}
public String getSendstatus() {
return sendstatus;
}
public void setSendstatus(String sendstatus) {
this.sendstatus = sendstatus;
}
public String getSenddate() {
return senddate;
}
public void setSenddate(String senddate) {
this.senddate = senddate;
}
}

View File

@ -0,0 +1,29 @@
package egovframework.com.cntc.service;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import kr.or.arko.mnt.biz.appconfirm.service.AppconfirmDetailVO;
public interface CntcService {
public void createXml(String path) throws Exception;
public void receiveMonitor(String path,String fileNm) throws Exception;
/* public void msgIdMonitor(String path, String fileNm) throws Exception;*/
public void insertdata(Map<String, String> map) throws Exception;
public void ResendData(Map<String, String> map) throws Exception;
public void resetAuth(Map<String, String> map) throws Exception;
public List<CntcListVO> selectCntcList(CntcListVO clistvo) throws Exception;
public int selectCntcListTotCnt(CntcListVO clistvo) throws Exception;
public List<CntcListVO> selectCntcResPop(HashMap<String, String> map);
public List<CntcListVO> selectCntcResPop2(HashMap<String, String> map);
}

View File

@ -0,0 +1,85 @@
package egovframework.com.cntc.service.impl;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.springframework.stereotype.Repository;
import egovframework.com.cmm.service.impl.EgovComAbstractDAO;
import egovframework.com.cntc.service.CntcListVO;
import egovframework.com.cntc.service.CntcRecvVO;
import egovframework.com.cntc.service.CntcSendVO;
@Repository("CntcDAO")
public class CntcDAO extends EgovComAbstractDAO{
@SuppressWarnings("unchecked")
public List<CntcSendVO> selectSendData(){
return list("CntcDAO.selectSendData", "");
}
public void updateSendStatus(String actseq){
update("CntcDAO.updateSendStatus",actseq);
}
public void insertSendList(Map<String, String> map) {
insert("CntcDAO.insertSendList",map);
}
public void insertRecvList(CntcRecvVO recvVO) {
insert("CntcDAO.insertRecvList",recvVO);
}
public void insertErrRecvList(CntcRecvVO recvVO) {
insert("CntcDAO.insertErrRecvList",recvVO);
}
public void deleteRecvData(Map<String, String> map) {
update("CntcDAO.deleteRecvData", map);
}
public void deleteSendData(Map<String, String> map) {
update("CntcDAO.deleteSendData", map);
}
public void deleteSend(Map<String, String> map) {
delete("CntcDAO.deleteSend", map);
}
public void deleteRecv(Map<String, String> map) {
delete("CntcDAO.deleteRecv", map);
}
public void deleteSSNData(Map<String, String> map) {
delete("CntcDAO.deleteSSNData", map);
}
public List<CntcListVO> selectCntcList(CntcListVO clistvo){
return list("CntcDAO.selectCntcList", clistvo);
}
public int selectCntcListTotCnt(CntcListVO clistvo) {
return (Integer)getSqlMapClientTemplate().queryForObject("CntcDAO.selectCntcListTotCnt", clistvo);
}
public List<CntcListVO> selectCntcResPop(HashMap<String, String> map) {
return list("CntcDAO.selectCntcResPop", map);
}
public List<CntcListVO> selectCntcResPop2(HashMap<String, String> map) {
return list("CntcDAO.selectCntcResPop2", map);
}
public Map<Object, String> selectInDataSendData(Map<String, String> cntcMap) {
return (Map<Object, String>)getSqlMapClientTemplate().queryForObject("CntcDAO.selectInDataSendData", cntcMap);
}
public HashMap<String, String> selectNewInDataSendData(HashMap<String, String> param) {
return (HashMap<String, String>)getSqlMapClientTemplate().queryForObject("CntcDAO.selectNewInDataSendData", param);
}
public void insertNewSendList(HashMap<String, String> param) {
insert("CntcDAO.insertNewSendList",param);
}
}

View File

@ -0,0 +1,390 @@
package egovframework.com.cntc.service.impl;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.UnsupportedEncodingException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import javax.annotation.Resource;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.transform.OutputKeys;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import org.apache.log4j.Logger;
import org.springframework.stereotype.Service;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import com.ibm.icu.text.SimpleDateFormat;
import egovframework.com.cntc.service.CntcListVO;
import egovframework.com.cntc.service.CntcRecvVO;
import egovframework.com.cntc.service.CntcSendVO;
import egovframework.com.cntc.service.CntcService;
import kr.or.arko.cmm.seed.SeedCipher;
import kr.or.arko.mnt.biz.appconfirm.service.AppconfirmDetailVO;
import kr.or.arko.mnt.biz.appconfirm.service.impl.BizAppconfirmDAO;
@Service("CntcService")
public class CntcServiceImpl implements CntcService{
/**
* 1365 연계파일 송신 - xml 생성
*/
@Resource(name = "CntcDAO")
private CntcDAO cntcDAO;
@Resource(name = "BizAppconfirmDAO")
private BizAppconfirmDAO bizAppconfirmDAO;
private Logger logger = Logger.getLogger(getClass());
public void insertdata(Map<String, String> map) throws Exception
{
List<AppconfirmDetailVO> list = bizAppconfirmDAO.selectAppconfirmDetailList((HashMap<String, String>)map);
for(AppconfirmDetailVO appVO : list)
{
//기존map에 담겨있던 내용을 그대로 복사
HashMap<String, String> param = new HashMap<String, String>();
param.put("mberId", map.get("mberId")); // vldzmu
param.put("volunteerId", map.get("volunteerId")); // VOLT_000000000007721
param.put("appconfirmId", map.get("appconfirmId")); // VOLT_000000000007721
param.put("volunteerSeqId", map.get("volunteerSeqId")); // 39128
param.put("volunteerDetailSeq", appVO.getAppconfirmDetailSeq()); // ACT_000000000000001 , ACT_000000000000004
param.put("actDate", appVO.getActDate());
param.put("shour", appVO.getShour());
param.put("ehour", appVO.getEhour());
param.put("acthour", appVO.getActHour());
HashMap<String, String> newMap = cntcDAO.selectNewInDataSendData(param);
System.out.println("값확인::::"+newMap);
param.put("actSeq", newMap.get("act_seq"));
param.put("volunteerTitle", newMap.get("volunteer_title"));
param.put("approvalDate", newMap.get("approval_date"));
param.put("userNm", newMap.get("user_nm"));
param.put("clcode", newMap.get("clcode"));
cntcDAO.insertNewSendList(param);
/*Map<Object, String> newMap = cntcDAO.selectInDataSendData(param);
cntcMap.put("data1", newMap.get("data1"));
cntcMap.put("data2", newMap.get("data2"));
cntcMap.put("data4", newMap.get("data4"));
cntcMap.put("data5", newMap.get("data5"));
cntcMap.put("data6", newMap.get("data6"));
cntcMap.put("data7", newMap.get("data7"));
cntcMap.put("data9", newMap.get("data9"));
cntcMap.put("data10", newMap.get("data10"));
cntcMap.put("data11", newMap.get("data11"));
cntcMap.put("data12", newMap.get("data12"));
cntcMap.put("data13", newMap.get("data13"));
cntcMap.put("data14", newMap.get("data14"));
cntcMap.put("data15", newMap.get("data15"));
cntcMap.put("data17", newMap.get("data17"));
cntcMap.put("data18", newMap.get("data18"));
cntcMap.put("data19", newMap.get("data19"));
cntcDAO.insertSendList(cntcMap);*/
}
}
public void createXml(String path) throws Exception{
try {
DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
// 루트 엘리먼트
Document doc = docBuilder.newDocument();
Element rootElement = doc.createElement("expert");
doc.appendChild(rootElement);
List<CntcSendVO> list = cntcDAO.selectSendData();
for(int i=0; i< list.size(); i++){
CntcSendVO sendVO = list.get(i);
printLog(sendVO);
// USER 엘리먼트
Element user = doc.createElement("USER");
rootElement.appendChild(user);
// ACTSEQ 엘리먼트
Element actseq = doc.createElement("ACTSEQ");
actseq.appendChild(doc.createTextNode(sendVO.getActseq()));
user.appendChild(actseq);
// ACTID 엘리먼트
Element actid = doc.createElement("ACTID");
actid.appendChild(doc.createTextNode(sendVO.getActid()));
user.appendChild(actid);
// RESPSNO 엘리먼트
Element respsno = doc.createElement("RESPSNO");
SeedCipher seed = new SeedCipher();
String key="문화품앗이자원봉사";
String resps="";
try {
resps = seed.decryptAsString(sendVO.getRespsno(), key.getBytes(), "UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
respsno.appendChild(doc.createTextNode(resps));
user.appendChild(respsno);
// CI 엘리먼트
Element ci = doc.createElement("CI");
ci.appendChild(doc.createTextNode(sendVO.getCi()==null? "" : sendVO.getCi()));
user.appendChild(ci);
// ACTDATE 엘리먼트
Element actdate = doc.createElement("ACTDATE");
actdate.appendChild(doc.createTextNode(sendVO.getActdate() == null ? "": sendVO.getActdate() ));
user.appendChild(actdate);
// FROMTIME 엘리먼트
Element fromtime = doc.createElement("FROMTIME");
fromtime.appendChild(doc.createTextNode(sendVO.getFromtime() == null ? "" : sendVO.getFromtime() ));
user.appendChild(fromtime);
// TOTIME 엘리먼트
Element totime = doc.createElement("TOTIME");
totime.appendChild(doc.createTextNode(sendVO.getTotime() == null ? "" : sendVO.getTotime() ));
user.appendChild(totime);
// ACTHR 엘리먼트
Element acthr = doc.createElement("ACTHR");
acthr.appendChild(doc.createTextNode(sendVO.getActhr() == null ? "" : sendVO.getActhr() ));
user.appendChild(acthr);
// ACTMIN 엘리먼트
Element actmin = doc.createElement("ACTMIN");
actmin.appendChild(doc.createTextNode(sendVO.getActmin() == null ? "" : sendVO.getActmin() ));
user.appendChild(actmin);
// ACTSJ 엘리먼트
Element actsj = doc.createElement("ACTSJ");
actsj.appendChild(doc.createTextNode(sendVO.getActsj() == null ? "" : sendVO.getActsj() ));
user.appendChild(actsj);
// CREATEDATE 엘리먼트
Element createdate = doc.createElement("CREATEDATE");
createdate.appendChild(doc.createTextNode(sendVO.getCreatedate() == null ? "": sendVO.getCreatedate() ));
user.appendChild(createdate);
// CNSMRNM 엘리먼트
Element cnsmrnm = doc.createElement("CNSMRNM");
cnsmrnm.appendChild(doc.createTextNode(sendVO.getCnsmrname()==null?"문화품앗e" : sendVO.getCnsmrname() ));
user.appendChild(cnsmrnm);
// CLCODE 엘리먼트
Element clcode = doc.createElement("CLCODE");
clcode.appendChild(doc.createTextNode(sendVO.getClcode() == null ? "" : sendVO.getClcode() ));
user.appendChild(clcode);
// WORK_FG 엘리먼트
Element work_fg = doc.createElement("WORK_FG");
work_fg.appendChild(doc.createTextNode(sendVO.getWorkFg() == null ? "" : sendVO.getWorkFg() ));
user.appendChild(work_fg);
// NANUMRESNO 엘리먼트
Element nanumresno = doc.createElement("NANUMRESNO");
nanumresno.appendChild(doc.createTextNode(sendVO.getNanumresno()==null? "" :sendVO.getNanumresno() ));
user.appendChild(nanumresno);
cntcDAO.updateSendStatus(sendVO.getActseq());
}
// XML 파일로 쓰기
TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer();
transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
transformer.setOutputProperty(OutputKeys.INDENT, "yes");
SimpleDateFormat formatter = new SimpleDateFormat ( "yyyyMMddHHmmss", Locale.KOREA );
Date currentTime = new Date ( );
String dTime = formatter.format ( currentTime );
//지정된 이름으로 경로를 정하고 현재시간을 더한 고유 파일 생성.
StreamResult result = new StreamResult(new FileOutputStream(new File(path +"/" + "MCSUVS$CG174004902410$" + dTime + "_" +"sndCSV.xml")));
DOMSource source = new DOMSource(doc);
transformer.transform(source, result);
} catch (ParserConfigurationException pce){
System.err.println(pce);
} catch (TransformerException tfe) {
System.err.println(tfe);
} catch (FileNotFoundException ioe) {
System.err.println(ioe);
}
}
/**
* 1365 연계파일 수신 - xml 데이터 파싱
*/
public void receiveMonitor(String path,String fileNm) throws Exception
{
try
{
File file = new File(path+"/"+fileNm);
DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
Document doc = docBuilder.parse(file);
doc.getDocumentElement().normalize();
System.out.println("Root Element : " + doc.getDocumentElement().getNodeName());
NodeList nList = doc.getElementsByTagName("USER");
System.out.println("-----------------------");
for(int i=0; i< nList.getLength(); i++)
{
Node nNode = nList.item(i);
if(nNode.getNodeType() == Node.ELEMENT_NODE)
{
Element element = (Element) nNode;
CntcRecvVO recvVO = new CntcRecvVO();
recvVO.setRescode(getTagValue("RESCODE",element));
recvVO.setActid(getTagValue("ACTID",element));
recvVO.setNanumid(getTagValue("NANUMID",element));
recvVO.setNanumresno(getTagValue("NANUMRESNO",element));
recvVO.setActseq(getTagValue("ACTSEQ",element));
if(recvVO.getActid() == ""){
cntcDAO.insertErrRecvList(recvVO);
} else {
cntcDAO.insertRecvList(recvVO);
}
}
}
Path originFile = Paths.get(path+"/"+fileNm);
Path moveFile = Paths.get(path+"/"+"SUCCESS"+"/");
Files.move(originFile, moveFile.resolve(originFile.getFileName()));
//FileUtils.moveDirectoryToDirectory(file, new File(path+"/SUCCESS/"+fileNm), true);
}
catch (Exception e)
{
e.printStackTrace();
}
}
/**
* 1365 연계파일 수신 - xml 데이터 파싱 - 노드데이터 읽어오기
*/
private static String getTagValue(String tagNm,Element element) throws Exception{
NodeList nList = element.getElementsByTagName(tagNm).item(0).getChildNodes();
Node nValue = (Node) nList.item(0);
if(nValue != null){
return nValue.getNodeValue();
}else{
return "";
}
}
public void ResendData(Map<String, String> map) throws Exception{
cntcDAO.deleteRecvData(map);
cntcDAO.deleteSendData(map);
insertdata(map);
}
public void resetAuth(Map<String, String> map) throws Exception {
cntcDAO.deleteRecv(map);
cntcDAO.deleteSend(map);
cntcDAO.deleteSSNData(map);
}
@Override
public List<CntcListVO> selectCntcList(CntcListVO clistvo) throws Exception{
return cntcDAO.selectCntcList(clistvo);
}
@Override
public int selectCntcListTotCnt(CntcListVO clistvo) throws Exception{
return cntcDAO.selectCntcListTotCnt(clistvo);
}
/*
@Override
public void msgIdMonitor(String path, String fileNm) throws Exception{
try {
File file = new File(path+"/"+fileNm);
FileReader freader = new FileReader(file);
BufferedReader bufreader = new BufferedReader(freader);
String line = "";
while((line = bufreader.readLine()) != null){
System.out.println("-----------------------");
System.out.println(line);
}
bufreader.close();
Path originFile = Paths.get(path+"/"+fileNm);
Path moveFile = Paths.get(path+"/CLEAR/");
SimpleDateFormat formatter = new SimpleDateFormat ( "yyyyMMddHHmmss", Locale.KOREA );
Date currentTime = new Date ( );
String dTime = formatter.format ( currentTime );
Files.move(originFile, moveFile.resolve(dTime+".lst"));
//FileUtils.moveDirectoryToDirectory(file, new File(path+"/SUCCESS/"+fileNm), true);
} catch (Exception e) {
e.printStackTrace();
}
}*/
public void printLog(CntcSendVO sendVO) throws Exception{
logger.info(sendVO.getActseq());
logger.info(sendVO.getFromtime());
logger.info(sendVO.getTotime());
logger.info(sendVO.getActhr());
logger.info(sendVO.getActmin());
logger.info(sendVO.getActsj());
logger.info(sendVO.getCreatedate());
logger.info(sendVO.getCnsmrname());
logger.info(sendVO.getClcode());
logger.info(sendVO.getWorkFg());
logger.info(sendVO.getNanumresno());
}
/**
* 관리자페이지 1365 상세연계 수신결과
*/
public List<CntcListVO> selectCntcResPop(HashMap<String, String> map) {
return cntcDAO.selectCntcResPop(map);
}
/**
* 관리자페이지 1365연계 이전버전 수신결과
*/
public List<CntcListVO> selectCntcResPop2(HashMap<String, String> map) {
return cntcDAO.selectCntcResPop2(map);
}
}

View File

@ -0,0 +1,107 @@
package egovframework.com.cntc.web;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.servlet.ModelAndView;
import egovframework.com.cmm.LoginVO;
import egovframework.com.cmm.util.EgovUserDetailsHelper;
import egovframework.com.cntc.service.CntcListVO;
import egovframework.com.cntc.service.CntcService;
import egovframework.com.uss.umt.service.EgovMberManageService;
import egovframework.com.uss.umt.service.MberManageVO;
import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo;
import kr.or.arko.cmm.service.AjaxXmlView;
import kr.or.arko.cmm.service.GlobalConst;
import kr.or.arko.mnt.biz.appconfirm.service.AppconfirmDetailVO;
import kr.or.arko.mnt.biz.appconfirm.service.BizAppconfirmService;
/** 1365 연계 관련 controller */
@Controller
public class CntcController {
@Resource(name="CntcService")
private CntcService cntcService;
/** mberManageService */
@Resource(name = "mberManageService")
private EgovMberManageService mberManageService;
@RequestMapping(value= GlobalConst.ADMIN_PATH + "/biz/cntc/selectCntcList.do")
public String selectCntcList(
@ModelAttribute("CntcListVO") CntcListVO clistvo
, ModelMap model
, HttpServletRequest request
, HttpSession session
) throws Exception{
session.setAttribute("page", "9400010");
PaginationInfo paginationInfo = new PaginationInfo();
paginationInfo.setCurrentPageNo(clistvo.getPageIndex());
paginationInfo.setRecordCountPerPage(clistvo.getPageUnit());
paginationInfo.setPageSize(clistvo.getPageSize());
clistvo.setFirstIndex(paginationInfo.getFirstRecordIndex());
clistvo.setLastIndex(paginationInfo.getLastRecordIndex());
clistvo.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
int totCnt = cntcService.selectCntcListTotCnt(clistvo);
paginationInfo.setTotalRecordCount(totCnt);
List<CntcListVO> resultList = cntcService.selectCntcList(clistvo);
model.addAttribute("totCnt", totCnt);
model.addAttribute("paginationInfo", paginationInfo);
model.addAttribute("resultList", resultList);
return GlobalConst.SITE_ADMIN_ROOT_PATH + "/biz/cntc/cntcList";
}
@RequestMapping(value= GlobalConst.ADMIN_PATH + "/biz/cntc/selectCntcResPop.do")
public String selectCntcResPop(
@ModelAttribute("CntcListVO") CntcListVO clistvo
, ModelMap model
, HttpServletRequest request) throws Exception{
ModelAndView mav = new ModelAndView(new AjaxXmlView());
// 로그인 정보
LoginVO loginVO = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser();
String volunteerId = request.getParameter("volunteerId");
String volunteerTitle = request.getParameter("volunteerTitle");
String mberId = request.getParameter("mberId");
String volunteerSeqId = request.getParameter("volunteerSeqId");
HashMap<String, String> map = new HashMap<String, String>();
map.put("mberId", mberId);
map.put("volunteerId", volunteerId);
map.put("volunteerSeqId", volunteerSeqId);
List<CntcListVO> list = cntcService.selectCntcResPop(map);
if(list.size() == 0){
list = cntcService.selectCntcResPop2(map);
}
model.addAttribute("list", list);
model.addAttribute("volunteerTitle", volunteerTitle);
model.addAttribute("mberId", mberId);
model.addAttribute("volunteerSeqId", volunteerSeqId);
return GlobalConst.SITE_ADMIN_ROOT_PATH + "/biz/cntc/cntcResPop";
}
}

View File

@ -0,0 +1,853 @@
package egovframework.com.cop.bbs.service;
import java.io.Serializable;
import java.util.List;
import org.apache.commons.lang.builder.ToStringBuilder;
/**
* @Class Name : Board.java
* @Description : 게시물에 대한 데이터 처리 모델
* @Modification Information
*
* 수정일 수정자 수정내용
* ------- -------- ---------------------------
* 2009.03.06 이삼섭 최초 생성
*
* @author 공통 서비스 개발팀 이삼섭
* @since 2009. 02. 13
* @version 1.0
* @see
*
*/
@SuppressWarnings("serial")
public class Board implements Serializable {
/**
* 게시물 첨부파일 아이디
*/
private String atchFileId = "";
/**
* 게시판 아이디
*/
private String bbsId = "";
/**
* 최초등록자 아이디
*/
private String frstRegisterId = "";
/**
* 최초등록시점
*/
private String frstRegisterPnttm = "";
/**
* 최종수정자 아이디
*/
private String lastUpdusrId = "";
/**
* 최종수정시점
*/
private String lastUpdusrPnttm = "";
/**
* 게시시작일
*/
private String ntceBgnde = "";
/**
* 게시종료일
*/
private String ntceEndde = "";
/**
* 게시자 아이디
*/
private String ntcrId = "";
/**
* 게시자명
*/
private String ntcrNm = "";
/**
* 게시물 내용
*/
private String nttCn = "";
/**
* 게시물 아이디
*/
private long nttId = 0L;
/**
* 게시물 번호
*/
private long nttNo = 0L;
/**
* 게시물 제목
*/
private String nttSj = "";
/**
* 부모글번호
*/
private String parnts = "0";
/**
* 패스워드
*/
private String password = "";
/**
* 조회수
*/
private int inqireCo = 0;
/**
* 답장여부
*/
private String replyAt = "";
/**
* 답장위치
*/
private String replyLc = "0";
/**
* 정렬순서
*/
private long sortOrdr = 0L;
/**
* 사용여부
*/
private String useAt = "";
/**
* 게시 종료일
*/
private String ntceEnddeView = "";
/**
* 게시 시작일
*/
private String ntceBgndeView = "";
/** 공개여부 */
private String othbcAt = "N";
/** 메인노출여부 */
private String mainExpsrAt = "N";
/** top고정여부 */
private String topFixAt = "N";
/** 비밀글여부 */
private String secretAt = "N";
/** 공통코드1 data */
private String code1 = "";
/** 공통코드2 data */
private String code2 = "";
/** 공통코드3 data */
private String code3 = "";
/** 기타필드1 data */
private String etcFld1 = "";
/** 기타필드2 data */
private String etcFld2 = "";
/** 기타필드3 data */
private String etcFld3 = "";
/** 공통코드명1 data */
private String codeNm1 = "";
/** 공통코드명2 data */
private String codeNm2 = "";
/** 공통코드명3 data */
private String codeNm3 = "";
/** 새글여부 */
private String isNew = "";
/** 답변수 */
private int replyCnt = 0;
/** 댓글수 */
private int commentCnt = 0;
/** 대표이미지ID */
private String reprsntImageId = "";
/** 링크필드 data */
private String linkFld = "";
/** 연구발간물 보고서 ID */
private String pblcteId = "";
/** 요청구분(mnt:관리자 frt:사용자) */
private String requestFlag = "frt";
/** 시도 */
private String activeSidoArea;
/** 구군 */
private String activeGugunArea;
/** 활동영역 (대분류) */
private String workArea;
/** 활동영역 (중분류) */
private String workMajorArea;
/** 활동영역 (소분류) */
private String workMinorArea;
/** 성인/청소년 */
private String adult;
/** 성인/청소년 */
private String activityCount;
/** 재능공개여부 */
private String publicYn;
/** 사용자구분 */
private String userSe;
private String mobYn;
private String replyCheck;
public String getReplyCheck() {
return replyCheck;
}
public void setReplyCheck(String replyCheck) {
this.replyCheck = replyCheck;
}
private String type;
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getMobYn() {
return mobYn;
}
public void setMobYn(String mobYn) {
this.mobYn = mobYn;
}
public String getUserSe() {
return userSe;
}
public void setUserSe(String userSe) {
this.userSe = userSe;
}
/** multiSearch */
private List<String> searchList1;
/**
* atchFileId attribute를 리턴한다.
* @return the atchFileId
*/
public String getAtchFileId() {
return atchFileId;
}
/**
* atchFileId attribute 값을 설정한다.
* @param atchFileId the atchFileId to set
*/
public void setAtchFileId(String atchFileId) {
this.atchFileId = atchFileId;
}
/**
* bbsId attribute를 리턴한다.
* @return the bbsId
*/
public String getBbsId() {
return bbsId;
}
/**
* bbsId attribute 값을 설정한다.
* @param bbsId the bbsId to set
*/
public void setBbsId(String bbsId) {
this.bbsId = bbsId;
}
/**
* frstRegisterId attribute를 리턴한다.
* @return the frstRegisterId
*/
public String getFrstRegisterId() {
return frstRegisterId;
}
/**
* frstRegisterId attribute 값을 설정한다.
* @param frstRegisterId the frstRegisterId to set
*/
public void setFrstRegisterId(String frstRegisterId) {
this.frstRegisterId = frstRegisterId;
}
/**
* frstRegisterPnttm attribute를 리턴한다.
* @return the frstRegisterPnttm
*/
public String getFrstRegisterPnttm() {
return frstRegisterPnttm;
}
/**
* frstRegisterPnttm attribute 값을 설정한다.
* @param frstRegisterPnttm the frstRegisterPnttm to set
*/
public void setFrstRegisterPnttm(String frstRegisterPnttm) {
this.frstRegisterPnttm = frstRegisterPnttm;
}
/**
* lastUpdusrId attribute를 리턴한다.
* @return the lastUpdusrId
*/
public String getLastUpdusrId() {
return lastUpdusrId;
}
/**
* lastUpdusrId attribute 값을 설정한다.
* @param lastUpdusrId the lastUpdusrId to set
*/
public void setLastUpdusrId(String lastUpdusrId) {
this.lastUpdusrId = lastUpdusrId;
}
/**
* lastUpdusrPnttm attribute를 리턴한다.
* @return the lastUpdusrPnttm
*/
public String getLastUpdusrPnttm() {
return lastUpdusrPnttm;
}
/**
* lastUpdusrPnttm attribute 값을 설정한다.
* @param lastUpdusrPnttm the lastUpdusrPnttm to set
*/
public void setLastUpdusrPnttm(String lastUpdusrPnttm) {
this.lastUpdusrPnttm = lastUpdusrPnttm;
}
/**
* ntceBgnde attribute를 리턴한다.
* @return the ntceBgnde
*/
public String getNtceBgnde() {
return ntceBgnde;
}
/**
* ntceBgnde attribute 값을 설정한다.
* @param ntceBgnde the ntceBgnde to set
*/
public void setNtceBgnde(String ntceBgnde) {
this.ntceBgnde = ntceBgnde;
}
/**
* ntceEndde attribute를 리턴한다.
* @return the ntceEndde
*/
public String getNtceEndde() {
return ntceEndde;
}
/**
* ntceEndde attribute 값을 설정한다.
* @param ntceEndde the ntceEndde to set
*/
public void setNtceEndde(String ntceEndde) {
this.ntceEndde = ntceEndde;
}
/**
* ntcrId attribute를 리턴한다.
* @return the ntcrId
*/
public String getNtcrId() {
return ntcrId;
}
/**
* ntcrId attribute 값을 설정한다.
* @param ntcrId the ntcrId to set
*/
public void setNtcrId(String ntcrId) {
this.ntcrId = ntcrId;
}
/**
* ntcrNm attribute를 리턴한다.
* @return the ntcrNm
*/
public String getNtcrNm() {
return ntcrNm;
}
/**
* ntcrNm attribute 값을 설정한다.
* @param ntcrNm the ntcrNm to set
*/
public void setNtcrNm(String ntcrNm) {
this.ntcrNm = ntcrNm;
}
/**
* nttCn attribute를 리턴한다.
* @return the nttCn
*/
public String getNttCn() {
return nttCn;
}
/**
* nttCn attribute 값을 설정한다.
* @param nttCn the nttCn to set
*/
public void setNttCn(String nttCn) {
this.nttCn = nttCn;
}
/**
* nttId attribute를 리턴한다.
* @return the nttId
*/
public long getNttId() {
return nttId;
}
/**
* nttId attribute 값을 설정한다.
* @param nttId the nttId to set
*/
public void setNttId(long nttId) {
this.nttId = nttId;
}
/**
* nttNo attribute를 리턴한다.
* @return the nttNo
*/
public long getNttNo() {
return nttNo;
}
/**
* nttNo attribute 값을 설정한다.
* @param nttNo the nttNo to set
*/
public void setNttNo(long nttNo) {
this.nttNo = nttNo;
}
/**
* nttSj attribute를 리턴한다.
* @return the nttSj
*/
public String getNttSj() {
return nttSj;
}
/**
* nttSj attribute 값을 설정한다.
* @param nttSj the nttSj to set
*/
public void setNttSj(String nttSj) {
this.nttSj = nttSj;
}
/**
* parnts attribute를 리턴한다.
* @return the parnts
*/
public String getParnts() {
return parnts;
}
/**
* parnts attribute 값을 설정한다.
* @param parnts the parnts to set
*/
public void setParnts(String parnts) {
this.parnts = parnts;
}
/**
* password attribute를 리턴한다.
* @return the password
*/
public String getPassword() {
return password;
}
/**
* password attribute 값을 설정한다.
* @param password the password to set
*/
public void setPassword(String password) {
this.password = password;
}
/**
* inqireCo attribute를 리턴한다.
* @return the inqireCo
*/
public int getInqireCo() {
return inqireCo;
}
/**
* inqireCo attribute 값을 설정한다.
* @param inqireCo the inqireCo to set
*/
public void setInqireCo(int inqireCo) {
this.inqireCo = inqireCo;
}
/**
* replyAt attribute를 리턴한다.
* @return the replyAt
*/
public String getReplyAt() {
return replyAt;
}
/**
* replyAt attribute 값을 설정한다.
* @param replyAt the replyAt to set
*/
public void setReplyAt(String replyAt) {
this.replyAt = replyAt;
}
/**
* replyLc attribute를 리턴한다.
* @return the replyLc
*/
public String getReplyLc() {
return replyLc;
}
/**
* replyLc attribute 값을 설정한다.
* @param replyLc the replyLc to set
*/
public void setReplyLc(String replyLc) {
this.replyLc = replyLc;
}
/**
* sortOrdr attribute를 리턴한다.
* @return the sortOrdr
*/
public long getSortOrdr() {
return sortOrdr;
}
/**
* sortOrdr attribute 값을 설정한다.
* @param sortOrdr the sortOrdr to set
*/
public void setSortOrdr(long sortOrdr) {
this.sortOrdr = sortOrdr;
}
/**
* useAt attribute를 리턴한다.
* @return the useAt
*/
public String getUseAt() {
return useAt;
}
/**
* useAt attribute 값을 설정한다.
* @param useAt the useAt to set
*/
public void setUseAt(String useAt) {
this.useAt = useAt;
}
/**
* ntceEnddeView attribute를 리턴한다.
* @return the ntceEnddeView
*/
public String getNtceEnddeView() {
return ntceEnddeView;
}
/**
* ntceEnddeView attribute 값을 설정한다.
* @param ntceEnddeView the ntceEnddeView to set
*/
public void setNtceEnddeView(String ntceEnddeView) {
this.ntceEnddeView = ntceEnddeView;
}
/**
* ntceBgndeView attribute를 리턴한다.
* @return the ntceBgndeView
*/
public String getNtceBgndeView() {
return ntceBgndeView;
}
/**
* ntceBgndeView attribute 값을 설정한다.
* @param ntceBgndeView the ntceBgndeView to set
*/
public void setNtceBgndeView(String ntceBgndeView) {
this.ntceBgndeView = ntceBgndeView;
}
public String getOthbcAt() {
return othbcAt;
}
public void setOthbcAt(String othbcAt) {
this.othbcAt = othbcAt;
}
public String getMainExpsrAt() {
return mainExpsrAt;
}
public void setMainExpsrAt(String mainExpsrAt) {
this.mainExpsrAt = mainExpsrAt;
}
public String getTopFixAt() {
return topFixAt;
}
public void setTopFixAt(String topFixAt) {
this.topFixAt = topFixAt;
}
public String getSecretAt() {
return secretAt;
}
public void setSecretAt(String secretAt) {
this.secretAt = secretAt;
}
public String getCode1() {
return code1;
}
public void setCode1(String code1) {
this.code1 = code1;
}
public String getCode2() {
return code2;
}
public void setCode2(String code2) {
this.code2 = code2;
}
public String getCode3() {
return code3;
}
public void setCode3(String code3) {
this.code3 = code3;
}
public String getEtcFld1() {
return etcFld1;
}
public void setEtcFld1(String etcFld1) {
this.etcFld1 = etcFld1;
}
public String getEtcFld2() {
return etcFld2;
}
public void setEtcFld2(String etcFld2) {
this.etcFld2 = etcFld2;
}
public String getEtcFld3() {
return etcFld3;
}
public void setEtcFld3(String etcFld3) {
this.etcFld3 = etcFld3;
}
public String getCodeNm1() {
return codeNm1;
}
public void setCodeNm1(String codeNm1) {
this.codeNm1 = codeNm1;
}
public String getCodeNm2() {
return codeNm2;
}
public void setCodeNm2(String codeNm2) {
this.codeNm2 = codeNm2;
}
public String getCodeNm3() {
return codeNm3;
}
public void setCodeNm3(String codeNm3) {
this.codeNm3 = codeNm3;
}
public String getIsNew() {
return isNew;
}
public void setIsNew(String isNew) {
this.isNew = isNew;
}
public int getReplyCnt() {
return replyCnt;
}
public void setReplyCnt(int replyCnt) {
this.replyCnt = replyCnt;
}
public int getCommentCnt() {
return commentCnt;
}
public void setCommentCnt(int commentCnt) {
this.commentCnt = commentCnt;
}
public String getReprsntImageId() {
return reprsntImageId;
}
public void setReprsntImageId(String reprsntImageId) {
this.reprsntImageId = reprsntImageId;
}
public String getLinkFld() {
return linkFld;
}
public void setLinkFld(String linkFld) {
this.linkFld = linkFld;
}
public String getRequestFlag() {
return requestFlag;
}
public String getPblcteId() {
return pblcteId;
}
public void setPblcteId(String pblcteId) {
this.pblcteId = pblcteId;
}
public void setRequestFlag(String requestFlag) {
this.requestFlag = requestFlag;
}
public List<String> getSearchList1() {
return searchList1;
}
public void setSearchList1(List<String> searchList1) {
this.searchList1 = searchList1;
}
public String getPublicYn() {
return publicYn;
}
public void setPublicYn(String publicYn) {
this.publicYn = publicYn;
}
public String getActiveSidoArea() {
return activeSidoArea;
}
public void setActiveSidoArea(String activeSidoArea) {
this.activeSidoArea = activeSidoArea;
}
public String getActiveGugunArea() {
return activeGugunArea;
}
public void setActiveGugunArea(String activeGugunArea) {
this.activeGugunArea = activeGugunArea;
}
public String getWorkArea() {
return workArea;
}
public void setWorkArea(String workArea) {
this.workArea = workArea;
}
public String getWorkMajorArea() {
return workMajorArea;
}
public void setWorkMajorArea(String workMajorArea) {
this.workMajorArea = workMajorArea;
}
public String getWorkMinorArea() {
return workMinorArea;
}
public void setWorkMinorArea(String workMinorArea) {
this.workMinorArea = workMinorArea;
}
public String getAdult() {
return adult;
}
public void setAdult(String adult) {
this.adult = adult;
}
public String getActivityCount() {
return activityCount;
}
public void setActivityCount(String activityCount) {
this.activityCount = activityCount;
}
/**
* toString 메소드를 대치한다.
*/
public String toString(){
return ToStringBuilder.reflectionToString(this);
}
}

View File

@ -0,0 +1,867 @@
package egovframework.com.cop.bbs.service;
import java.io.Serializable;
import org.apache.commons.lang.builder.ToStringBuilder;
/**
* 게시판 속성정보를 담기위한 엔티티 클래스
* @author 공통서비스개발팀 이삼섭
* @since 2009.06.01
* @version 1.0
* @see
*
* <pre>
* << 개정이력(Modification Information) >>
*
* 수정일 수정자 수정내용
* ------- -------- ---------------------------
* 2009.03.12 이삼섭 최초 생성
* 2009.06.26 한성곤 2단계 기능 추가 (댓글관리, 만족도조사)
*
* </pre>
*/
@SuppressWarnings("serial")
public class BoardMaster implements Serializable {
/** 게시판 속성코드 */
private String bbsAttrbCode = "";
/** 게시판 아이디 */
private String bbsId = "";
/** 게시판 소개 */
private String bbsIntrcn = "";
/** 게시판 명 */
private String bbsNm = "";
/** 게시판 유형코드 */
private String bbsTyCode = "";
/** 파일첨부가능여부 */
private String fileAtchPosblAt = "";
/** 최초등록자 아이디 */
private String frstRegisterId = "";
/** 최초등록시점 */
private String frstRegisterPnttm = "";
/** 최종수정자 아이디 */
public String lastUpdusrId = "";
/** 최종수정시점 */
private String lastUpdusrPnttm = "";
/** 첨부가능파일숫자 */
private int posblAtchFileNumber = 0;
/** 첨부가능파일사이즈 */
private String posblAtchFileSize = null;
/** 답장가능여부 */
private String replyPosblAt = "";
/** 템플릿 아이디 */
private String tmplatId = "";
/** 사용여부 */
private String useAt = "";
/** 사용플래그 */
private String bbsUseFlag = "";
/** 대상 아이디 */
private String trgetId = "";
/** 등록구분코드 */
private String registSeCode = "";
/** 유일 아이디 */
private String uniqId = "";
/** 템플릿 명 */
private String tmplatNm = "";
//---------------------------------
// 2009.06.26 : 2단계 기능 추가
//---------------------------------
/** 추가 option (댓글-comment, 만족도조사-stsfdg) */
private String option = "";
/** 댓글 여부 */
private String commentAt = "";
/** 만족도조사 */
private String stsfdgAt = "";
////-------------------------------
//---------------------------------
// 2013.02.14 : 게시판속성 추가
//---------------------------------
/** Top고정여부 사용여부 */
private String topFixUseAt = "";
/** 공통코드 사용여부1 */
private String codeUseAt1 = "";
/** 공통코드 사용여부2 */
private String codeUseAt2 = "";
/** 공통코드 사용여부3 */
private String codeUseAt3 = "";
/** 공통코드1 */
private String codeId1 = "";
/** 공통코드2 */
private String codeId2 = "";
/** 공통코드3 */
private String codeId3 = "";
/** 메인노출 사용가능여부 */
private String mainExpsrUseAt = "";
/** 공개여부 사용가능여부 */
private String othbcUseAt = "";
/** 비밀글 사용가능여부 */
private String secretUseAt = "";
/** 에디터 사용가능여부 */
private String editorUseAt = "";
/** HTML태그 사용가능여부 */
private String htmlTagUseAt = "";
/** 게시판 읽기권한 */
private String bbsRoleRead = "";
/** 게시판 쓰기권한 */
private String bbsRoleWrite = "";
/** 게시판 답변권한 */
private String bbsRoleAnswer = "";
/** 게시판 담당자 */
private String bbsCharger = "";
/** 게시판 담당자명 */
private String bbsChargerNm = "";
/** 기타필드 사용여부1 */
private String etcFldUseAt1 = "";
/** 기타필드 사용여부2 */
private String etcFldUseAt2 = "";
/** 기타필드 사용여부3 */
private String etcFldUseAt3 = "";
/** 기타필드명1 */
private String etcFldNm1 = "";
/** 기타필드명2 */
private String etcFldNm2 = "";
/** 기타필드명3 */
private String etcFldNm3 = "";
/** 코드필드명1 */
private String codeFldNm1 = "";
/** 코드필드명2 */
private String codeFldNm2 = "";
/** 코드필드명3 */
private String codeFldNm3 = "";
/** 답변정보 노출방식 */
private String replyExpsrMthd = "";
/** 링크필드 사용가능여부 */
private String linkFldUseAt = "";
/** 지역정보 사용가능여부 */
private String orgnzinfoUseAt = "";
/** 활동영역 사용가능여부 */
private String workAreaUseAt = "";
/**
* bbsAttrbCode attribute를 리턴한다.
*
* @return the bbsAttrbCode
*/
public String getBbsAttrbCode() {
return bbsAttrbCode;
}
/**
* bbsAttrbCode attribute 값을 설정한다.
*
* @param bbsAttrbCode
* the bbsAttrbCode to set
*/
public void setBbsAttrbCode(String bbsAttrbCode) {
this.bbsAttrbCode = bbsAttrbCode;
}
/**
* bbsId attribute를 리턴한다.
*
* @return the bbsId
*/
public String getBbsId() {
return bbsId;
}
/**
* bbsId attribute 값을 설정한다.
*
* @param bbsId
* the bbsId to set
*/
public void setBbsId(String bbsId) {
this.bbsId = bbsId;
}
/**
* bbsIntrcn attribute를 리턴한다.
*
* @return the bbsIntrcn
*/
public String getBbsIntrcn() {
return bbsIntrcn;
}
/**
* bbsIntrcn attribute 값을 설정한다.
*
* @param bbsIntrcn
* the bbsIntrcn to set
*/
public void setBbsIntrcn(String bbsIntrcn) {
this.bbsIntrcn = bbsIntrcn;
}
/**
* bbsNm attribute를 리턴한다.
*
* @return the bbsNm
*/
public String getBbsNm() {
return bbsNm;
}
/**
* bbsNm attribute 값을 설정한다.
*
* @param bbsNm
* the bbsNm to set
*/
public void setBbsNm(String bbsNm) {
this.bbsNm = bbsNm;
}
/**
* bbsTyCode attribute를 리턴한다.
*
* @return the bbsTyCode
*/
public String getBbsTyCode() {
return bbsTyCode;
}
/**
* bbsTyCode attribute 값을 설정한다.
*
* @param bbsTyCode
* the bbsTyCode to set
*/
public void setBbsTyCode(String bbsTyCode) {
this.bbsTyCode = bbsTyCode;
}
/**
* fileAtchPosblAt attribute를 리턴한다.
*
* @return the fileAtchPosblAt
*/
public String getFileAtchPosblAt() {
return fileAtchPosblAt;
}
/**
* fileAtchPosblAt attribute 값을 설정한다.
*
* @param fileAtchPosblAt
* the fileAtchPosblAt to set
*/
public void setFileAtchPosblAt(String fileAtchPosblAt) {
this.fileAtchPosblAt = fileAtchPosblAt;
}
/**
* frstRegisterId attribute를 리턴한다.
*
* @return the frstRegisterId
*/
public String getFrstRegisterId() {
return frstRegisterId;
}
/**
* frstRegisterId attribute 값을 설정한다.
*
* @param frstRegisterId
* the frstRegisterId to set
*/
public void setFrstRegisterId(String frstRegisterId) {
this.frstRegisterId = frstRegisterId;
}
/**
* frstRegisterPnttm attribute를 리턴한다.
*
* @return the frstRegisterPnttm
*/
public String getFrstRegisterPnttm() {
return frstRegisterPnttm;
}
/**
* frstRegisterPnttm attribute 값을 설정한다.
*
* @param frstRegisterPnttm
* the frstRegisterPnttm to set
*/
public void setFrstRegisterPnttm(String frstRegisterPnttm) {
this.frstRegisterPnttm = frstRegisterPnttm;
}
/**
* lastUpdusrId attribute를 리턴한다.
*
* @return the lastUpdusrId
*/
public String getLastUpdusrId() {
return lastUpdusrId;
}
/**
* lastUpdusrId attribute 값을 설정한다.
*
* @param lastUpdusrId
* the lastUpdusrId to set
*/
public void setLastUpdusrId(String lastUpdusrId) {
this.lastUpdusrId = lastUpdusrId;
}
/**
* lastUpdusrPnttm attribute를 리턴한다.
*
* @return the lastUpdusrPnttm
*/
public String getLastUpdusrPnttm() {
return lastUpdusrPnttm;
}
/**
* lastUpdusrPnttm attribute 값을 설정한다.
*
* @param lastUpdusrPnttm
* the lastUpdusrPnttm to set
*/
public void setLastUpdusrPnttm(String lastUpdusrPnttm) {
this.lastUpdusrPnttm = lastUpdusrPnttm;
}
/**
* posblAtchFileNumber attribute를 리턴한다.
*
* @return the posblAtchFileNumber
*/
public int getPosblAtchFileNumber() {
return posblAtchFileNumber;
}
/**
* posblAtchFileNumber attribute 값을 설정한다.
*
* @param posblAtchFileNumber
* the posblAtchFileNumber to set
*/
public void setPosblAtchFileNumber(int posblAtchFileNumber) {
this.posblAtchFileNumber = posblAtchFileNumber;
}
/**
* posblAtchFileSize attribute를 리턴한다.
*
* @return the posblAtchFileSize
*/
public String getPosblAtchFileSize() {
return posblAtchFileSize;
}
/**
* posblAtchFileSize attribute 값을 설정한다.
*
* @param posblAtchFileSize
* the posblAtchFileSize to set
*/
public void setPosblAtchFileSize(String posblAtchFileSize) {
this.posblAtchFileSize = posblAtchFileSize;
}
/**
* replyPosblAt attribute를 리턴한다.
*
* @return the replyPosblAt
*/
public String getReplyPosblAt() {
return replyPosblAt;
}
/**
* replyPosblAt attribute 값을 설정한다.
*
* @param replyPosblAt
* the replyPosblAt to set
*/
public void setReplyPosblAt(String replyPosblAt) {
this.replyPosblAt = replyPosblAt;
}
/**
* tmplatId attribute를 리턴한다.
*
* @return the tmplatId
*/
public String getTmplatId() {
return tmplatId;
}
/**
* tmplatId attribute 값을 설정한다.
*
* @param tmplatId
* the tmplatId to set
*/
public void setTmplatId(String tmplatId) {
this.tmplatId = tmplatId;
}
/**
* useAt attribute를 리턴한다.
*
* @return the useAt
*/
public String getUseAt() {
return useAt;
}
/**
* useAt attribute 값을 설정한다.
*
* @param useAt
* the useAt to set
*/
public void setUseAt(String useAt) {
this.useAt = useAt;
}
/**
* bbsUseFlag attribute를 리턴한다.
*
* @return the bbsUseFlag
*/
public String getBbsUseFlag() {
return bbsUseFlag;
}
/**
* bbsUseFlag attribute 값을 설정한다.
*
* @param bbsUseFlag
* the bbsUseFlag to set
*/
public void setBbsUseFlag(String bbsUseFlag) {
this.bbsUseFlag = bbsUseFlag;
}
/**
* trgetId attribute를 리턴한다.
*
* @return the trgetId
*/
public String getTrgetId() {
return trgetId;
}
/**
* trgetId attribute 값을 설정한다.
*
* @param trgetId
* the trgetId to set
*/
public void setTrgetId(String trgetId) {
this.trgetId = trgetId;
}
/**
* registSeCode attribute를 리턴한다.
*
* @return the registSeCode
*/
public String getRegistSeCode() {
return registSeCode;
}
/**
* registSeCode attribute 값을 설정한다.
*
* @param registSeCode
* the registSeCode to set
*/
public void setRegistSeCode(String registSeCode) {
this.registSeCode = registSeCode;
}
/**
* uniqId attribute를 리턴한다.
*
* @return the uniqId
*/
public String getUniqId() {
return uniqId;
}
/**
* uniqId attribute 값을 설정한다.
*
* @param uniqId
* the uniqId to set
*/
public void setUniqId(String uniqId) {
this.uniqId = uniqId;
}
/**
* tmplatNm attribute를 리턴한다.
*
* @return the tmplatNm
*/
public String getTmplatNm() {
return tmplatNm;
}
/**
* tmplatNm attribute 값을 설정한다.
*
* @param tmplatNm
* the tmplatNm to set
*/
public void setTmplatNm(String tmplatNm) {
this.tmplatNm = tmplatNm;
}
/**
* option attribute를 리턴한다.
* @return the option
*/
public String getOption() {
return option;
}
/**
* option attribute 값을 설정한다.
* @param option the option to set
*/
public void setOption(String option) {
this.option = option;
}
/**
* commentAt attribute를 리턴한다.
* @return the commentAt
*/
public String getCommentAt() {
return commentAt;
}
/**
* commentAt attribute 값을 설정한다.
* @param commentAt the commentAt to set
*/
public void setCommentAt(String commentAt) {
this.commentAt = commentAt;
}
/**
* stsfdgAt attribute를 리턴한다.
* @return the stsfdgAt
*/
public String getStsfdgAt() {
return stsfdgAt;
}
/**
* stsfdg attribute 값을 설정한다.
* @param stsfdgAt the stsfdgAt to set
*/
public void setStsfdgAt(String stsfdgAt) {
this.stsfdgAt = stsfdgAt;
}
/**
* toString 메소드를 대치한다.
*/
public String toString() {
return ToStringBuilder.reflectionToString(this);
}
public String getTopFixUseAt() {
return topFixUseAt;
}
public void setTopFixUseAt(String topFixUseAt) {
this.topFixUseAt = topFixUseAt;
}
public String getCodeUseAt1() {
return codeUseAt1;
}
public void setCodeUseAt1(String codeUseAt1) {
this.codeUseAt1 = codeUseAt1;
}
public String getCodeUseAt2() {
return codeUseAt2;
}
public void setCodeUseAt2(String codeUseAt2) {
this.codeUseAt2 = codeUseAt2;
}
public String getCodeUseAt3() {
return codeUseAt3;
}
public void setCodeUseAt3(String codeUseAt3) {
this.codeUseAt3 = codeUseAt3;
}
public String getCodeId1() {
return codeId1;
}
public void setCodeId1(String codeId1) {
this.codeId1 = codeId1;
}
public String getCodeId2() {
return codeId2;
}
public void setCodeId2(String codeId2) {
this.codeId2 = codeId2;
}
public String getCodeId3() {
return codeId3;
}
public void setCodeId3(String codeId3) {
this.codeId3 = codeId3;
}
public String getMainExpsrUseAt() {
return mainExpsrUseAt;
}
public void setMainExpsrUseAt(String mainExpsrUseAt) {
this.mainExpsrUseAt = mainExpsrUseAt;
}
public String getOthbcUseAt() {
return othbcUseAt;
}
public void setOthbcUseAt(String othbcUseAt) {
this.othbcUseAt = othbcUseAt;
}
public String getSecretUseAt() {
return secretUseAt;
}
public void setSecretUseAt(String secretUseAt) {
this.secretUseAt = secretUseAt;
}
public String getEditorUseAt() {
return editorUseAt;
}
public void setEditorUseAt(String editorUseAt) {
this.editorUseAt = editorUseAt;
}
public String getHtmlTagUseAt() {
return htmlTagUseAt;
}
public void setHtmlTagUseAt(String htmlTagUseAt) {
this.htmlTagUseAt = htmlTagUseAt;
}
public String getBbsRoleRead() {
return bbsRoleRead;
}
public void setBbsRoleRead(String bbsRoleRead) {
this.bbsRoleRead = bbsRoleRead;
}
public String getBbsRoleWrite() {
return bbsRoleWrite;
}
public void setBbsRoleWrite(String bbsRoleWrite) {
this.bbsRoleWrite = bbsRoleWrite;
}
public String getBbsRoleAnswer() {
return bbsRoleAnswer;
}
public void setBbsRoleAnswer(String bbsRoleAnswer) {
this.bbsRoleAnswer = bbsRoleAnswer;
}
public String getBbsCharger() {
return bbsCharger;
}
public void setBbsCharger(String bbsCharger) {
this.bbsCharger = bbsCharger;
}
public String getBbsChargerNm() {
return bbsChargerNm;
}
public void setBbsChargerNm(String bbsChargerNm) {
this.bbsChargerNm = bbsChargerNm;
}
public String getEtcFldUseAt1() {
return etcFldUseAt1;
}
public void setEtcFldUseAt1(String etcFldUseAt1) {
this.etcFldUseAt1 = etcFldUseAt1;
}
public String getEtcFldUseAt2() {
return etcFldUseAt2;
}
public void setEtcFldUseAt2(String etcFldUseAt2) {
this.etcFldUseAt2 = etcFldUseAt2;
}
public String getEtcFldUseAt3() {
return etcFldUseAt3;
}
public void setEtcFldUseAt3(String etcFldUseAt3) {
this.etcFldUseAt3 = etcFldUseAt3;
}
public String getEtcFldNm1() {
return etcFldNm1;
}
public void setEtcFldNm1(String etcFldNm1) {
this.etcFldNm1 = etcFldNm1;
}
public String getEtcFldNm2() {
return etcFldNm2;
}
public void setEtcFldNm2(String etcFldNm2) {
this.etcFldNm2 = etcFldNm2;
}
public String getEtcFldNm3() {
return etcFldNm3;
}
public void setEtcFldNm3(String etcFldNm3) {
this.etcFldNm3 = etcFldNm3;
}
public String getCodeFldNm1() {
return codeFldNm1;
}
public void setCodeFldNm1(String codeFldNm1) {
this.codeFldNm1 = codeFldNm1;
}
public String getCodeFldNm2() {
return codeFldNm2;
}
public void setCodeFldNm2(String codeFldNm2) {
this.codeFldNm2 = codeFldNm2;
}
public String getCodeFldNm3() {
return codeFldNm3;
}
public void setCodeFldNm3(String codeFldNm3) {
this.codeFldNm3 = codeFldNm3;
}
public String getReplyExpsrMthd() {
return replyExpsrMthd;
}
public void setReplyExpsrMthd(String replyExpsrMthd) {
this.replyExpsrMthd = replyExpsrMthd;
}
public String getLinkFldUseAt() {
return linkFldUseAt;
}
public void setLinkFldUseAt(String linkFldUseAt) {
this.linkFldUseAt = linkFldUseAt;
}
public String getOrgnzinfoUseAt() {
return orgnzinfoUseAt;
}
public void setOrgnzinfoUseAt(String orgnzinfoUseAt) {
this.orgnzinfoUseAt = orgnzinfoUseAt;
}
public String getWorkAreaUseAt() {
return workAreaUseAt;
}
public void setWorkAreaUseAt(String workAreaUseAt) {
this.workAreaUseAt = workAreaUseAt;
}
}

View File

@ -0,0 +1,483 @@
package egovframework.com.cop.bbs.service;
import java.io.Serializable;
import org.apache.commons.lang.builder.ToStringBuilder;
/**
* 게시판 속성 정보를 관리하기 위한 VO 클래스
* @author 공통서비스개발팀 이삼섭
* @since 2009.06.01
* @version 1.0
* @see
*
* <pre>
* << 개정이력(Modification Information) >>
*
* 수정일 수정자 수정내용
* ------- -------- ---------------------------
* 2009.3.12 이삼섭 최초 생성
*
* </pre>
*/
@SuppressWarnings("serial")
public class BoardMasterVO extends BoardMaster implements Serializable {
/** 검색시작일 */
private String searchBgnDe = "";
/** 검색조건 */
private String searchCnd = "";
/** 검색종료일 */
private String searchEndDe = "";
/** 검색단어 */
private String searchWrd = "";
/** 정렬순서(DESC,ASC) */
private String sortOrdr = "";
/** 검색사용여부 */
private String searchUseYn = "";
/** 현재페이지 */
private int pageIndex = 1;
/** 페이지갯수 */
private int pageUnit = 10;
/** 페이지사이즈 */
private int pageSize = 10;
/** firstIndex */
private int firstIndex = 1;
/** lastIndex */
private int lastIndex = 1;
/** recordCountPerPage */
private int recordCountPerPage = 10;
/** rowNo */
private int rowNo = 0;
/** 최초 등록자명 */
private String frstRegisterNm = "";
/** 게시판유형 코드명 */
private String bbsTyCodeNm = "";
/** 게시판속성 코드명 */
private String bbsAttrbCodeNm = "";
/** 템플릿 명 */
private String tmplatNm = "";
/** 최종 수정자명 */
private String lastUpdusrNm = "";
/** 권한지정 여부 */
private String authFlag = "";
/** 템플릿경로 */
private String tmplatCours = "";
/** 템플릿경로 */
private String type = "";
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
/**
* searchBgnDe attribute를 리턴한다.
*
* @return the searchBgnDe
*/
public String getSearchBgnDe() {
return searchBgnDe;
}
/**
* searchBgnDe attribute 값을 설정한다.
*
* @param searchBgnDe
* the searchBgnDe to set
*/
public void setSearchBgnDe(String searchBgnDe) {
this.searchBgnDe = searchBgnDe;
}
/**
* searchCnd attribute를 리턴한다.
*
* @return the searchCnd
*/
public String getSearchCnd() {
return searchCnd;
}
/**
* searchCnd attribute 값을 설정한다.
*
* @param searchCnd
* the searchCnd to set
*/
public void setSearchCnd(String searchCnd) {
this.searchCnd = searchCnd;
}
/**
* searchEndDe attribute를 리턴한다.
*
* @return the searchEndDe
*/
public String getSearchEndDe() {
return searchEndDe;
}
/**
* searchEndDe attribute 값을 설정한다.
*
* @param searchEndDe
* the searchEndDe to set
*/
public void setSearchEndDe(String searchEndDe) {
this.searchEndDe = searchEndDe;
}
/**
* searchWrd attribute를 리턴한다.
*
* @return the searchWrd
*/
public String getSearchWrd() {
return searchWrd;
}
/**
* searchWrd attribute 값을 설정한다.
*
* @param searchWrd
* the searchWrd to set
*/
public void setSearchWrd(String searchWrd) {
this.searchWrd = searchWrd;
}
/**
* sortOrdr attribute를 리턴한다.
*
* @return the sortOrdr
*/
public String getSortOrdr() {
return sortOrdr;
}
/**
* sortOrdr attribute 값을 설정한다.
*
* @param sortOrdr
* the sortOrdr to set
*/
public void setSortOrdr(String sortOrdr) {
this.sortOrdr = sortOrdr;
}
/**
* searchUseYn attribute를 리턴한다.
*
* @return the searchUseYn
*/
public String getSearchUseYn() {
return searchUseYn;
}
/**
* searchUseYn attribute 값을 설정한다.
*
* @param searchUseYn
* the searchUseYn to set
*/
public void setSearchUseYn(String searchUseYn) {
this.searchUseYn = searchUseYn;
}
/**
* pageIndex attribute를 리턴한다.
*
* @return the pageIndex
*/
public int getPageIndex() {
return pageIndex;
}
/**
* pageIndex attribute 값을 설정한다.
*
* @param pageIndex
* the pageIndex to set
*/
public void setPageIndex(int pageIndex) {
this.pageIndex = pageIndex;
}
/**
* pageUnit attribute를 리턴한다.
*
* @return the pageUnit
*/
public int getPageUnit() {
return pageUnit;
}
/**
* pageUnit attribute 값을 설정한다.
*
* @param pageUnit
* the pageUnit to set
*/
public void setPageUnit(int pageUnit) {
this.pageUnit = pageUnit;
}
/**
* pageSize attribute를 리턴한다.
*
* @return the pageSize
*/
public int getPageSize() {
return pageSize;
}
/**
* pageSize attribute 값을 설정한다.
*
* @param pageSize
* the pageSize to set
*/
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
/**
* firstIndex attribute를 리턴한다.
*
* @return the firstIndex
*/
public int getFirstIndex() {
return firstIndex;
}
/**
* firstIndex attribute 값을 설정한다.
*
* @param firstIndex
* the firstIndex to set
*/
public void setFirstIndex(int firstIndex) {
this.firstIndex = firstIndex;
}
/**
* lastIndex attribute를 리턴한다.
*
* @return the lastIndex
*/
public int getLastIndex() {
return lastIndex;
}
/**
* lastIndex attribute 값을 설정한다.
*
* @param lastIndex
* the lastIndex to set
*/
public void setLastIndex(int lastIndex) {
this.lastIndex = lastIndex;
}
/**
* recordCountPerPage attribute를 리턴한다.
*
* @return the recordCountPerPage
*/
public int getRecordCountPerPage() {
return recordCountPerPage;
}
/**
* recordCountPerPage attribute 값을 설정한다.
*
* @param recordCountPerPage
* the recordCountPerPage to set
*/
public void setRecordCountPerPage(int recordCountPerPage) {
this.recordCountPerPage = recordCountPerPage;
}
/**
* rowNo attribute를 리턴한다.
*
* @return the rowNo
*/
public int getRowNo() {
return rowNo;
}
/**
* rowNo attribute 값을 설정한다.
*
* @param rowNo
* the rowNo to set
*/
public void setRowNo(int rowNo) {
this.rowNo = rowNo;
}
/**
* frstRegisterNm attribute를 리턴한다.
*
* @return the frstRegisterNm
*/
public String getFrstRegisterNm() {
return frstRegisterNm;
}
/**
* frstRegisterNm attribute 값을 설정한다.
*
* @param frstRegisterNm
* the frstRegisterNm to set
*/
public void setFrstRegisterNm(String frstRegisterNm) {
this.frstRegisterNm = frstRegisterNm;
}
/**
* bbsTyCodeNm attribute를 리턴한다.
*
* @return the bbsTyCodeNm
*/
public String getBbsTyCodeNm() {
return bbsTyCodeNm;
}
/**
* bbsTyCodeNm attribute 값을 설정한다.
*
* @param bbsTyCodeNm
* the bbsTyCodeNm to set
*/
public void setBbsTyCodeNm(String bbsTyCodeNm) {
this.bbsTyCodeNm = bbsTyCodeNm;
}
/**
* bbsAttrbCodeNm attribute를 리턴한다.
*
* @return the bbsAttrbCodeNm
*/
public String getBbsAttrbCodeNm() {
return bbsAttrbCodeNm;
}
/**
* bbsAttrbCodeNm attribute 값을 설정한다.
*
* @param bbsAttrbCodeNm
* the bbsAttrbCodeNm to set
*/
public void setBbsAttrbCodeNm(String bbsAttrbCodeNm) {
this.bbsAttrbCodeNm = bbsAttrbCodeNm;
}
/**
* tmplatNm attribute를 리턴한다.
*
* @return the tmplatNm
*/
public String getTmplatNm() {
return tmplatNm;
}
/**
* tmplatNm attribute 값을 설정한다.
*
* @param tmplatNm
* the tmplatNm to set
*/
public void setTmplatNm(String tmplatNm) {
this.tmplatNm = tmplatNm;
}
/**
* lastUpdusrNm attribute를 리턴한다.
*
* @return the lastUpdusrNm
*/
public String getLastUpdusrNm() {
return lastUpdusrNm;
}
/**
* lastUpdusrNm attribute 값을 설정한다.
*
* @param lastUpdusrNm
* the lastUpdusrNm to set
*/
public void setLastUpdusrNm(String lastUpdusrNm) {
this.lastUpdusrNm = lastUpdusrNm;
}
/**
* authFlag attribute를 리턴한다.
*
* @return the authFlag
*/
public String getAuthFlag() {
return authFlag;
}
/**
* authFlag attribute 값을 설정한다.
*
* @param authFlag
* the authFlag to set
*/
public void setAuthFlag(String authFlag) {
this.authFlag = authFlag;
}
/**
* tmplatCours attribute를 리턴한다.
*
* @return the tmplatCours
*/
public String getTmplatCours() {
return tmplatCours;
}
/**
* tmplatCours attribute 값을 설정한다.
*
* @param tmplatCours
* the tmplatCours to set
*/
public void setTmplatCours(String tmplatCours) {
this.tmplatCours = tmplatCours;
}
/**
* toString 메소드를 대치한다.
*/
public String toString() {
return ToStringBuilder.reflectionToString(this);
}
}

View File

@ -0,0 +1,228 @@
package egovframework.com.cop.bbs.service;
import java.io.Serializable;
import org.apache.commons.lang.builder.ToStringBuilder;
/**
* 게시판의 이용정보를 관리하기 위한 모델 클래스
* @author 공통서비스개발팀 이삼섭
* @since 2009.06.01
* @version 1.0
* @see
*
* <pre>
* << 개정이력(Modification Information) >>
*
* 수정일 수정자 수정내용
* ------- -------- ---------------------------
* 2009.4.2 이삼섭 최초 생성
*
* </pre>
*/
@SuppressWarnings("serial")
public class BoardUseInf implements Serializable {
/** 게시판 아이디 */
private String bbsId = "";
/** 대상시스템 아이디 */
private String trgetId = "";
/** 대상 구분 (커뮤니티, 동호회) */
private String trgetType = "";
/** 최초 등록자 아이디 */
private String frstRegisterId = "";
/** 최초등록시점 */
private String frstRegisterPnttm = "";
/** 최종수정자 아이디 */
private String lastUpdusrId = "";
/** 최종수정시점 */
private String lastUpdusrPnttm = "";
/** 등록구분코드 */
private String registSeCode = "";
/** 사용여부 */
private String useAt = "";
/**
* bbsId attribute를 리턴한다.
*
* @return the bbsId
*/
public String getBbsId() {
return bbsId;
}
/**
* bbsId attribute 값을 설정한다.
*
* @param bbsId
* the bbsId to set
*/
public void setBbsId(String bbsId) {
this.bbsId = bbsId;
}
/**
* trgetId attribute를 리턴한다.
*
* @return the trgetId
*/
public String getTrgetId() {
return trgetId;
}
/**
* trgetId attribute 값을 설정한다.
*
* @param trgetId
* the trgetId to set
*/
public void setTrgetId(String trgetId) {
this.trgetId = trgetId;
}
/**
* frstRegisterId attribute를 리턴한다.
*
* @return the frstRegisterId
*/
public String getFrstRegisterId() {
return frstRegisterId;
}
/**
* frstRegisterId attribute 값을 설정한다.
*
* @param frstRegisterId
* the frstRegisterId to set
*/
public void setFrstRegisterId(String frstRegisterId) {
this.frstRegisterId = frstRegisterId;
}
/**
* frstRegisterPnttm attribute를 리턴한다.
*
* @return the frstRegisterPnttm
*/
public String getFrstRegisterPnttm() {
return frstRegisterPnttm;
}
/**
* frstRegisterPnttm attribute 값을 설정한다.
*
* @param frstRegisterPnttm
* the frstRegisterPnttm to set
*/
public void setFrstRegisterPnttm(String frstRegisterPnttm) {
this.frstRegisterPnttm = frstRegisterPnttm;
}
/**
* lastUpdusrId attribute를 리턴한다.
*
* @return the lastUpdusrId
*/
public String getLastUpdusrId() {
return lastUpdusrId;
}
/**
* lastUpdusrId attribute 값을 설정한다.
*
* @param lastUpdusrId
* the lastUpdusrId to set
*/
public void setLastUpdusrId(String lastUpdusrId) {
this.lastUpdusrId = lastUpdusrId;
}
/**
* lastUpdusrPnttm attribute를 리턴한다.
*
* @return the lastUpdusrPnttm
*/
public String getLastUpdusrPnttm() {
return lastUpdusrPnttm;
}
/**
* lastUpdusrPnttm attribute 값을 설정한다.
*
* @param lastUpdusrPnttm
* the lastUpdusrPnttm to set
*/
public void setLastUpdusrPnttm(String lastUpdusrPnttm) {
this.lastUpdusrPnttm = lastUpdusrPnttm;
}
/**
* registSeCode attribute를 리턴한다.
*
* @return the registSeCode
*/
public String getRegistSeCode() {
return registSeCode;
}
/**
* registSeCode attribute 값을 설정한다.
*
* @param registSeCode
* the registSeCode to set
*/
public void setRegistSeCode(String registSeCode) {
this.registSeCode = registSeCode;
}
/**
* useAt attribute를 리턴한다.
*
* @return the useAt
*/
public String getUseAt() {
return useAt;
}
/**
* useAt attribute 값을 설정한다.
*
* @param useAt
* the useAt to set
*/
public void setUseAt(String useAt) {
this.useAt = useAt;
}
/**
* trgetType attribute를 리턴한다.
* @return the trgetType
*/
public String getTrgetType() {
return trgetType;
}
/**
* trgetType attribute 값을 설정한다.
* @param trgetType the trgetType to set
*/
public void setTrgetType(String trgetType) {
this.trgetType = trgetType;
}
/**
* toString 메소드를 대치한다.
*/
public String toString() {
return ToStringBuilder.reflectionToString(this);
}
}

View File

@ -0,0 +1,558 @@
package egovframework.com.cop.bbs.service;
import java.io.Serializable;
import org.apache.commons.lang.builder.ToStringBuilder;
/**
* 게시판의 이용정보를 관리하기 위한 VO 클래스
* @author 공통서비스개발팀 이삼섭
* @since 2009.06.01
* @version 1.0
* @see
*
* <pre>
* << 개정이력(Modification Information) >>
*
* 수정일 수정자 수정내용
* ------- -------- ---------------------------
* 2009.4.2 이삼섭 최초 생성
*
* </pre>
*/
@SuppressWarnings("serial")
public class BoardUseInfVO extends BoardUseInf implements Serializable {
/** 검색시작일 */
private String searchBgnDe = "";
/** 검색조건 */
private String searchCnd = "";
/** 검색종료일 */
private String searchEndDe = "";
/** 검색단어 */
private String searchWrd = "";
/** 정렬순서(DESC,ASC) */
private long sortOrdr = 0L;
/** 검색사용여부 */
private String searchUseYn = "";
/** 현재페이지 */
private int pageIndex = 1;
/** 페이지갯수 */
private int pageUnit = 10;
/** 페이지사이즈 */
private int pageSize = 10;
/** 첫페이지 인덱스 */
private int firstIndex = 1;
/** 마지막페이지 인덱스 */
private int lastIndex = 1;
/** 페이지당 레코드 개수 */
private int recordCountPerPage = 10;
/** 레코드 번호 */
private int rowNo = 0;
/** 최초 등록자명 */
private String frstRegisterNm = "";
/** 최종 수정자명 */
private String lastUpdusrNm = "";
/** 등록구분 코드명 */
private String registSeCodeNm = "";
/** 커뮤니티 아이디 */
private String cmmntyId = "";
/** 커뮤니티 명 */
private String cmmntyNm = "";
/** 동호회 아이디 */
private String clbId = "";
/** 동호회 명 */
private String clbNm = "";
/** 게시판 명 */
private String bbsNm = "";
/** 사용자 명 */
private String userNm = "";
/** 제공 URL */
private String provdUrl = "";
/** 게시판 유형코드 */
private String bbsTyCode = "";
/**
* searchBgnDe attribute를 리턴한다.
*
* @return the searchBgnDe
*/
public String getSearchBgnDe() {
return searchBgnDe;
}
/**
* searchBgnDe attribute 값을 설정한다.
*
* @param searchBgnDe
* the searchBgnDe to set
*/
public void setSearchBgnDe(String searchBgnDe) {
this.searchBgnDe = searchBgnDe;
}
/**
* searchCnd attribute를 리턴한다.
*
* @return the searchCnd
*/
public String getSearchCnd() {
return searchCnd;
}
/**
* searchCnd attribute 값을 설정한다.
*
* @param searchCnd
* the searchCnd to set
*/
public void setSearchCnd(String searchCnd) {
this.searchCnd = searchCnd;
}
/**
* searchEndDe attribute를 리턴한다.
*
* @return the searchEndDe
*/
public String getSearchEndDe() {
return searchEndDe;
}
/**
* searchEndDe attribute 값을 설정한다.
*
* @param searchEndDe
* the searchEndDe to set
*/
public void setSearchEndDe(String searchEndDe) {
this.searchEndDe = searchEndDe;
}
/**
* searchWrd attribute를 리턴한다.
*
* @return the searchWrd
*/
public String getSearchWrd() {
return searchWrd;
}
/**
* searchWrd attribute 값을 설정한다.
*
* @param searchWrd
* the searchWrd to set
*/
public void setSearchWrd(String searchWrd) {
this.searchWrd = searchWrd;
}
/**
* sortOrdr attribute를 리턴한다.
*
* @return the sortOrdr
*/
public long getSortOrdr() {
return sortOrdr;
}
/**
* sortOrdr attribute 값을 설정한다.
*
* @param sortOrdr
* the sortOrdr to set
*/
public void setSortOrdr(long sortOrdr) {
this.sortOrdr = sortOrdr;
}
/**
* searchUseYn attribute를 리턴한다.
*
* @return the searchUseYn
*/
public String getSearchUseYn() {
return searchUseYn;
}
/**
* searchUseYn attribute 값을 설정한다.
*
* @param searchUseYn
* the searchUseYn to set
*/
public void setSearchUseYn(String searchUseYn) {
this.searchUseYn = searchUseYn;
}
/**
* pageIndex attribute를 리턴한다.
*
* @return the pageIndex
*/
public int getPageIndex() {
return pageIndex;
}
/**
* pageIndex attribute 값을 설정한다.
*
* @param pageIndex
* the pageIndex to set
*/
public void setPageIndex(int pageIndex) {
this.pageIndex = pageIndex;
}
/**
* pageUnit attribute를 리턴한다.
*
* @return the pageUnit
*/
public int getPageUnit() {
return pageUnit;
}
/**
* pageUnit attribute 값을 설정한다.
*
* @param pageUnit
* the pageUnit to set
*/
public void setPageUnit(int pageUnit) {
this.pageUnit = pageUnit;
}
/**
* pageSize attribute를 리턴한다.
*
* @return the pageSize
*/
public int getPageSize() {
return pageSize;
}
/**
* pageSize attribute 값을 설정한다.
*
* @param pageSize
* the pageSize to set
*/
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
/**
* firstIndex attribute를 리턴한다.
*
* @return the firstIndex
*/
public int getFirstIndex() {
return firstIndex;
}
/**
* firstIndex attribute 값을 설정한다.
*
* @param firstIndex
* the firstIndex to set
*/
public void setFirstIndex(int firstIndex) {
this.firstIndex = firstIndex;
}
/**
* lastIndex attribute를 리턴한다.
*
* @return the lastIndex
*/
public int getLastIndex() {
return lastIndex;
}
/**
* lastIndex attribute 값을 설정한다.
*
* @param lastIndex
* the lastIndex to set
*/
public void setLastIndex(int lastIndex) {
this.lastIndex = lastIndex;
}
/**
* recordCountPerPage attribute를 리턴한다.
*
* @return the recordCountPerPage
*/
public int getRecordCountPerPage() {
return recordCountPerPage;
}
/**
* recordCountPerPage attribute 값을 설정한다.
*
* @param recordCountPerPage
* the recordCountPerPage to set
*/
public void setRecordCountPerPage(int recordCountPerPage) {
this.recordCountPerPage = recordCountPerPage;
}
/**
* rowNo attribute를 리턴한다.
*
* @return the rowNo
*/
public int getRowNo() {
return rowNo;
}
/**
* rowNo attribute 값을 설정한다.
*
* @param rowNo
* the rowNo to set
*/
public void setRowNo(int rowNo) {
this.rowNo = rowNo;
}
/**
* frstRegisterNm attribute를 리턴한다.
*
* @return the frstRegisterNm
*/
public String getFrstRegisterNm() {
return frstRegisterNm;
}
/**
* frstRegisterNm attribute 값을 설정한다.
*
* @param frstRegisterNm
* the frstRegisterNm to set
*/
public void setFrstRegisterNm(String frstRegisterNm) {
this.frstRegisterNm = frstRegisterNm;
}
/**
* lastUpdusrNm attribute를 리턴한다.
*
* @return the lastUpdusrNm
*/
public String getLastUpdusrNm() {
return lastUpdusrNm;
}
/**
* lastUpdusrNm attribute 값을 설정한다.
*
* @param lastUpdusrNm
* the lastUpdusrNm to set
*/
public void setLastUpdusrNm(String lastUpdusrNm) {
this.lastUpdusrNm = lastUpdusrNm;
}
/**
* registSeCodeNm attribute를 리턴한다.
*
* @return the registSeCodeNm
*/
public String getRegistSeCodeNm() {
return registSeCodeNm;
}
/**
* registSeCodeNm attribute 값을 설정한다.
*
* @param registSeCodeNm
* the registSeCodeNm to set
*/
public void setRegistSeCodeNm(String registSeCodeNm) {
this.registSeCodeNm = registSeCodeNm;
}
/**
* cmmntyId attribute를 리턴한다.
*
* @return the cmmntyId
*/
public String getCmmntyId() {
return cmmntyId;
}
/**
* cmmntyId attribute 값을 설정한다.
*
* @param cmmntyId
* the cmmntyId to set
*/
public void setCmmntyId(String cmmntyId) {
this.cmmntyId = cmmntyId;
}
/**
* cmmntyNm attribute를 리턴한다.
*
* @return the cmmntyNm
*/
public String getCmmntyNm() {
return cmmntyNm;
}
/**
* cmmntyNm attribute 값을 설정한다.
*
* @param cmmntyNm
* the cmmntyNm to set
*/
public void setCmmntyNm(String cmmntyNm) {
this.cmmntyNm = cmmntyNm;
}
/**
* clbId attribute를 리턴한다.
*
* @return the clbId
*/
public String getClbId() {
return clbId;
}
/**
* clbId attribute 값을 설정한다.
*
* @param clbId
* the clbId to set
*/
public void setClbId(String clbId) {
this.clbId = clbId;
}
/**
* clbNm attribute를 리턴한다.
*
* @return the clbNm
*/
public String getClbNm() {
return clbNm;
}
/**
* clbNm attribute 값을 설정한다.
*
* @param clbNm
* the clbNm to set
*/
public void setClbNm(String clbNm) {
this.clbNm = clbNm;
}
/**
* bbsNm attribute를 리턴한다.
*
* @return the bbsNm
*/
public String getBbsNm() {
return bbsNm;
}
/**
* bbsNm attribute 값을 설정한다.
*
* @param bbsNm
* the bbsNm to set
*/
public void setBbsNm(String bbsNm) {
this.bbsNm = bbsNm;
}
/**
* userNm attribute를 리턴한다.
*
* @return the userNm
*/
public String getUserNm() {
return userNm;
}
/**
* userNm attribute 값을 설정한다.
*
* @param userNm
* the userNm to set
*/
public void setUserNm(String userNm) {
this.userNm = userNm;
}
/**
* provdUrl attribute를 리턴한다.
*
* @return the provdUrl
*/
public String getProvdUrl() {
return provdUrl;
}
/**
* provdUrl attribute 값을 설정한다.
*
* @param provdUrl
* the provdUrl to set
*/
public void setProvdUrl(String provdUrl) {
this.provdUrl = provdUrl;
}
/**
* bbsTyCode attribute를 리턴한다.
* @return the bbsTyCode
*/
public String getBbsTyCode() {
return bbsTyCode;
}
/**
* bbsTyCode attribute 값을 설정한다.
* @param bbsTyCode the bbsTyCode to set
*/
public void setBbsTyCode(String bbsTyCode) {
this.bbsTyCode = bbsTyCode;
}
/**
* toString 메소드를 대치한다.
*/
public String toString() {
return ToStringBuilder.reflectionToString(this);
}
}

View File

@ -0,0 +1,694 @@
package egovframework.com.cop.bbs.service;
import java.io.Serializable;
import org.apache.commons.lang.builder.ToStringBuilder;
/**
* 게시물 관리를 위한 VO 클래스
* @author 공통서비스개발팀 이삼섭
* @since 2009.06.01
* @version 1.0
* @see
*
* <pre>
* << 개정이력(Modification Information) >>
*
* 수정일 수정자 수정내용
* ------- -------- ---------------------------
* 2009.3.19 이삼섭 최초 생성
* 2009.06.29 한성곤 2단계 기능 추가 (댓글관리, 만족도조사)
*
* </pre>
*/
@SuppressWarnings("serial")
public class BoardVO extends Board implements Serializable {
/** 검색공통코드1 */
private String searchCode1 = "";
/** 검색공통코드2 */
private String searchCode2 = "";
/** 검색공통코드3 */
private String searchCode3 = "";
/** 검색시작일 */
private String searchBgnDe = "";
/** 검색조건 */
private String searchCnd = "";
/** 검색종료일 */
private String searchEndDe = "";
/** 검색단어 */
private String searchWrd = "";
/** 정렬순서(DESC,ASC) */
private long sortOrdr = 0L;
/** 검색사용여부 */
private String searchUseYn = "";
/** 현재페이지 */
private int pageIndex = 1;
/** 페이지갯수 */
private int pageUnit = 10;
/** 페이지사이즈 */
private int pageSize = 10;
/** 첫페이지 인덱스 */
private int firstIndex = 0;
/** 마지막페이지 인덱스 */
private int lastIndex = 1;
/** 페이지당 레코드 개수 */
private int recordCountPerPage = 10;
/** 레코드 번호 */
private int rowNo = 0;
/** 최초 등록자명 */
private String frstRegisterNm = "";
/** 최종 수정자명 */
private String lastUpdusrNm = "";
/** 유효여부 */
private String isExpired = "N";
/** 상위 정렬 순서 */
private String parntsSortOrdr = "";
/** 상위 답변 위치 */
private String parntsReplyLc = "";
/** 게시판 유형코드 */
private String bbsTyCode = "";
/** 게시판 속성코드 */
private String bbsAttrbCode = "";
/** 게시판 명 */
private String bbsNm = "";
/** 파일첨부가능여부 */
private String fileAtchPosblAt = "";
/** 첨부가능파일숫자 */
private int posblAtchFileNumber = 0;
/** 답장가능여부 */
private String replyPosblAt = "";
/** 조회 수 증가 여부 */
private boolean plusCount = false;
/**limit offset*/
private int startPoint;
/**limit limit*/
private int endPoint;
private String mobYn;
private String type;
private String resultCheck;
public String getResultCheck() {
return resultCheck;
}
public void setResultCheck(String resultCheck) {
this.resultCheck = resultCheck;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getMobYn() {
return mobYn;
}
public void setMobYn(String mobYn) {
this.mobYn = mobYn;
}
//---------------------------------
// 2009.06.29 : 2단계 기능 추가
//---------------------------------
/** 하위 페이지 인덱스 (댓글 및 만족도 조사 여부 확인용) */
private String subPageIndex = "";
////-------------------------------
public String getSearchCode1() {
return searchCode1;
}
public void setSearchCode1(String searchCode1) {
this.searchCode1 = searchCode1;
}
public String getSearchCode2() {
return searchCode2;
}
public void setSearchCode2(String searchCode2) {
this.searchCode2 = searchCode2;
}
public String getSearchCode3() {
return searchCode3;
}
public void setSearchCode3(String searchCode3) {
this.searchCode3 = searchCode3;
}
/**
* searchBgnDe attribute를 리턴한다.
*
* @return the searchBgnDe
*/
public String getSearchBgnDe() {
return searchBgnDe;
}
/**
* searchBgnDe attribute 값을 설정한다.
*
* @param searchBgnDe
* the searchBgnDe to set
*/
public void setSearchBgnDe(String searchBgnDe) {
this.searchBgnDe = searchBgnDe;
}
/**
* searchCnd attribute를 리턴한다.
*
* @return the searchCnd
*/
public String getSearchCnd() {
return searchCnd;
}
/**
* searchCnd attribute 값을 설정한다.
*
* @param searchCnd
* the searchCnd to set
*/
public void setSearchCnd(String searchCnd) {
this.searchCnd = searchCnd;
}
/**
* searchEndDe attribute를 리턴한다.
*
* @return the searchEndDe
*/
public String getSearchEndDe() {
return searchEndDe;
}
/**
* searchEndDe attribute 값을 설정한다.
*
* @param searchEndDe
* the searchEndDe to set
*/
public void setSearchEndDe(String searchEndDe) {
this.searchEndDe = searchEndDe;
}
/**
* searchWrd attribute를 리턴한다.
*
* @return the searchWrd
*/
public String getSearchWrd() {
return searchWrd;
}
/**
* searchWrd attribute 값을 설정한다.
*
* @param searchWrd
* the searchWrd to set
*/
public void setSearchWrd(String searchWrd) {
this.searchWrd = searchWrd;
}
/**
* sortOrdr attribute를 리턴한다.
*
* @return the sortOrdr
*/
public long getSortOrdr() {
return sortOrdr;
}
/**
* sortOrdr attribute 값을 설정한다.
*
* @param sortOrdr
* the sortOrdr to set
*/
public void setSortOrdr(long sortOrdr) {
this.sortOrdr = sortOrdr;
}
/**
* searchUseYn attribute를 리턴한다.
*
* @return the searchUseYn
*/
public String getSearchUseYn() {
return searchUseYn;
}
/**
* searchUseYn attribute 값을 설정한다.
*
* @param searchUseYn
* the searchUseYn to set
*/
public void setSearchUseYn(String searchUseYn) {
this.searchUseYn = searchUseYn;
}
/**
* pageIndex attribute를 리턴한다.
*
* @return the pageIndex
*/
public int getPageIndex() {
return pageIndex;
}
/**
* pageIndex attribute 값을 설정한다.
*
* @param pageIndex
* the pageIndex to set
*/
public void setPageIndex(int pageIndex) {
this.pageIndex = pageIndex;
}
/**
* pageUnit attribute를 리턴한다.
*
* @return the pageUnit
*/
public int getPageUnit() {
return pageUnit;
}
/**
* pageUnit attribute 값을 설정한다.
*
* @param pageUnit
* the pageUnit to set
*/
public void setPageUnit(int pageUnit) {
this.pageUnit = pageUnit;
}
/**
* pageSize attribute를 리턴한다.
*
* @return the pageSize
*/
public int getPageSize() {
return pageSize;
}
/**
* pageSize attribute 값을 설정한다.
*
* @param pageSize
* the pageSize to set
*/
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
/**
* firstIndex attribute를 리턴한다.
*
* @return the firstIndex
*/
public int getFirstIndex() {
return firstIndex;
}
/**
* firstIndex attribute 값을 설정한다.
*
* @param firstIndex
* the firstIndex to set
*/
public void setFirstIndex(int firstIndex) {
this.firstIndex = firstIndex;
}
/**
* lastIndex attribute를 리턴한다.
*
* @return the lastIndex
*/
public int getLastIndex() {
return lastIndex;
}
/**
* lastIndex attribute 값을 설정한다.
*
* @param lastIndex
* the lastIndex to set
*/
public void setLastIndex(int lastIndex) {
this.lastIndex = lastIndex;
}
/**
* recordCountPerPage attribute를 리턴한다.
*
* @return the recordCountPerPage
*/
public int getRecordCountPerPage() {
return recordCountPerPage;
}
/**
* recordCountPerPage attribute 값을 설정한다.
*
* @param recordCountPerPage
* the recordCountPerPage to set
*/
public void setRecordCountPerPage(int recordCountPerPage) {
this.recordCountPerPage = recordCountPerPage;
}
/**
* rowNo attribute를 리턴한다.
*
* @return the rowNo
*/
public int getRowNo() {
return rowNo;
}
/**
* rowNo attribute 값을 설정한다.
*
* @param rowNo
* the rowNo to set
*/
public void setRowNo(int rowNo) {
this.rowNo = rowNo;
}
/**
* frstRegisterNm attribute를 리턴한다.
*
* @return the frstRegisterNm
*/
public String getFrstRegisterNm() {
return frstRegisterNm;
}
/**
* frstRegisterNm attribute 값을 설정한다.
*
* @param frstRegisterNm
* the frstRegisterNm to set
*/
public void setFrstRegisterNm(String frstRegisterNm) {
this.frstRegisterNm = frstRegisterNm;
}
/**
* lastUpdusrNm attribute를 리턴한다.
*
* @return the lastUpdusrNm
*/
public String getLastUpdusrNm() {
return lastUpdusrNm;
}
/**
* lastUpdusrNm attribute 값을 설정한다.
*
* @param lastUpdusrNm
* the lastUpdusrNm to set
*/
public void setLastUpdusrNm(String lastUpdusrNm) {
this.lastUpdusrNm = lastUpdusrNm;
}
/**
* isExpired attribute를 리턴한다.
*
* @return the isExpired
*/
public String getIsExpired() {
return isExpired;
}
/**
* isExpired attribute 값을 설정한다.
*
* @param isExpired
* the isExpired to set
*/
public void setIsExpired(String isExpired) {
this.isExpired = isExpired;
}
/**
* parntsSortOrdr attribute를 리턴한다.
*
* @return the parntsSortOrdr
*/
public String getParntsSortOrdr() {
return parntsSortOrdr;
}
/**
* parntsSortOrdr attribute 값을 설정한다.
*
* @param parntsSortOrdr
* the parntsSortOrdr to set
*/
public void setParntsSortOrdr(String parntsSortOrdr) {
this.parntsSortOrdr = parntsSortOrdr;
}
/**
* parntsReplyLc attribute를 리턴한다.
*
* @return the parntsReplyLc
*/
public String getParntsReplyLc() {
return parntsReplyLc;
}
/**
* parntsReplyLc attribute 값을 설정한다.
*
* @param parntsReplyLc
* the parntsReplyLc to set
*/
public void setParntsReplyLc(String parntsReplyLc) {
this.parntsReplyLc = parntsReplyLc;
}
/**
* bbsTyCode attribute를 리턴한다.
*
* @return the bbsTyCode
*/
public String getBbsTyCode() {
return bbsTyCode;
}
/**
* bbsTyCode attribute 값을 설정한다.
*
* @param bbsTyCode
* the bbsTyCode to set
*/
public void setBbsTyCode(String bbsTyCode) {
this.bbsTyCode = bbsTyCode;
}
/**
* bbsAttrbCode attribute를 리턴한다.
*
* @return the bbsAttrbCode
*/
public String getBbsAttrbCode() {
return bbsAttrbCode;
}
/**
* bbsAttrbCode attribute 값을 설정한다.
*
* @param bbsAttrbCode
* the bbsAttrbCode to set
*/
public void setBbsAttrbCode(String bbsAttrbCode) {
this.bbsAttrbCode = bbsAttrbCode;
}
/**
* bbsNm attribute를 리턴한다.
*
* @return the bbsNm
*/
public String getBbsNm() {
return bbsNm;
}
/**
* bbsNm attribute 값을 설정한다.
*
* @param bbsNm
* the bbsNm to set
*/
public void setBbsNm(String bbsNm) {
this.bbsNm = bbsNm;
}
/**
* fileAtchPosblAt attribute를 리턴한다.
*
* @return the fileAtchPosblAt
*/
public String getFileAtchPosblAt() {
return fileAtchPosblAt;
}
/**
* fileAtchPosblAt attribute 값을 설정한다.
*
* @param fileAtchPosblAt
* the fileAtchPosblAt to set
*/
public void setFileAtchPosblAt(String fileAtchPosblAt) {
this.fileAtchPosblAt = fileAtchPosblAt;
}
/**
* posblAtchFileNumber attribute를 리턴한다.
*
* @return the posblAtchFileNumber
*/
public int getPosblAtchFileNumber() {
return posblAtchFileNumber;
}
/**
* posblAtchFileNumber attribute 값을 설정한다.
*
* @param posblAtchFileNumber
* the posblAtchFileNumber to set
*/
public void setPosblAtchFileNumber(int posblAtchFileNumber) {
this.posblAtchFileNumber = posblAtchFileNumber;
}
/**
* replyPosblAt attribute를 리턴한다.
*
* @return the replyPosblAt
*/
public String getReplyPosblAt() {
return replyPosblAt;
}
/**
* replyPosblAt attribute 값을 설정한다.
*
* @param replyPosblAt
* the replyPosblAt to set
*/
public void setReplyPosblAt(String replyPosblAt) {
this.replyPosblAt = replyPosblAt;
}
/**
* plusCount attribute를 리턴한다.
* @return the plusCount
*/
public boolean isPlusCount() {
return plusCount;
}
/**
* plusCount attribute 값을 설정한다.
* @param plusCount the plusCount to set
*/
public void setPlusCount(boolean plusCount) {
this.plusCount = plusCount;
}
/**
* subPageIndex attribute를 리턴한다.
* @return the subPageIndex
*/
public String getSubPageIndex() {
return subPageIndex;
}
/**
* subPageIndex attribute 값을 설정한다.
* @param subPageIndex the subPageIndex to set
*/
public void setSubPageIndex(String subPageIndex) {
this.subPageIndex = subPageIndex;
}
/**
* toString 메소드를 대치한다.
*/
public String toString() {
return ToStringBuilder.reflectionToString(this);
}
public int getStartPoint() {
return startPoint;
}
public void setStartPoint(int startPoint) {
this.startPoint = startPoint;
}
public int getEndPoint() {
return endPoint;
}
public void setEndPoint(int endPoint) {
this.endPoint = endPoint;
}
}

View File

@ -0,0 +1,331 @@
package egovframework.com.cop.bbs.service;
import java.io.Serializable;
import org.apache.commons.lang.builder.ToStringBuilder;
/**
* 댓글관리 서비스 데이터 처리 모델
* @author 공통컴포넌트개발팀 한성곤
* @since 2009.06.29
* @version 1.0
* @see
*
* <pre>
* << 개정이력(Modification Information) >>
*
* 수정일 수정자 수정내용
* ------- -------- ---------------------------
* 2009.06.29 한성곤 최초 생성
*
* </pre>
*/
@SuppressWarnings("serial")
public class Comment implements Serializable {
/** 댓글번호 */
private String commentNo = "";
/** 게시판 ID */
private String bbsId = "";
/** 게시물 번호 */
private long nttId = 0L;
/** 작성자 ID */
private String wrterId = "";
/** 작성자명 */
private String wrterNm = "";
/** 패스워드 */
private String commentPassword = "";
/** 댓글 내용 */
private String commentCn = "";
/** 댓글 개수 */
private int commentCnt = 0;
/** 사용 여부 */
private String useAt = "";
/** 최초등록자 아이디 */
private String frstRegisterId = "";
/** 최초 등록자명 */
private String frstRegisterNm = "";
/** 최초등록시점 */
private String frstRegisterPnttm = "";
/** 최종수정자 아이디 */
private String lastUpdusrId = "";
/** 최종수정시점 */
private String lastUpdusrPnttm = "";
/** 확인 패스워드 */
private String confirmPassword = "";
/** 댓글의 게시물제목 */
private String nttSj = "";
/**
* commentNo attribute를 리턴한다.
* @return the commentNo
*/
public String getCommentNo() {
return commentNo;
}
/**
* commentNo attribute 값을 설정한다.
* @param commentNo the commentNo to set
*/
public void setCommentNo(String commentNo) {
this.commentNo = commentNo;
}
/**
* bbsId attribute를 리턴한다.
* @return the bbsId
*/
public String getBbsId() {
return bbsId;
}
/**
* bbsId attribute 값을 설정한다.
* @param bbsId the bbsId to set
*/
public void setBbsId(String bbsId) {
this.bbsId = bbsId;
}
/**
* nttId attribute를 리턴한다.
* @return the nttId
*/
public long getNttId() {
return nttId;
}
/**
* nttId attribute 값을 설정한다.
* @param nttId the nttId to set
*/
public void setNttId(long nttId) {
this.nttId = nttId;
}
/**
* wrterId attribute를 리턴한다.
* @return the wrterId
*/
public String getWrterId() {
return wrterId;
}
/**
* wrterId attribute 값을 설정한다.
* @param wrterId the wrterId to set
*/
public void setWrterId(String wrterId) {
this.wrterId = wrterId;
}
/**
* wrterNm attribute를 리턴한다.
* @return the wrterNm
*/
public String getWrterNm() {
return wrterNm;
}
/**
* wrterNm attribute 값을 설정한다.
* @param wrterNm the wrterNm to set
*/
public void setWrterNm(String wrterNm) {
this.wrterNm = wrterNm;
}
/**
* commentPassword attribute를 리턴한다.
* @return the commentPassword
*/
public String getCommentPassword() {
return commentPassword;
}
/**
* commentPassword attribute 값을 설정한다.
* @param commentPassword the commentPassword to set
*/
public void setCommentPassword(String commentPassword) {
this.commentPassword = commentPassword;
}
/**
* commentCn attribute를 리턴한다.
* @return the commentCn
*/
public String getCommentCn() {
return commentCn;
}
/**
* commentCn attribute 값을 설정한다.
* @param commentCn the commentCn to set
*/
public void setCommentCn(String commentCn) {
this.commentCn = commentCn;
}
/**
* @return the commentCnt
*/
public int getCommentCnt() {
return commentCnt;
}
/**
* @param commentCnt the commentCnt to set
*/
public void setCommentCnt(int commentCnt) {
this.commentCnt = commentCnt;
}
/**
* useAt attribute를 리턴한다.
* @return the useAt
*/
public String getUseAt() {
return useAt;
}
/**
* useAt attribute 값을 설정한다.
* @param useAt the useAt to set
*/
public void setUseAt(String useAt) {
this.useAt = useAt;
}
/**
* frstRegisterId attribute를 리턴한다.
* @return the frstRegisterId
*/
public String getFrstRegisterId() {
return frstRegisterId;
}
/**
* frstRegisterId attribute 값을 설정한다.
* @param frstRegisterId the frstRegisterId to set
*/
public void setFrstRegisterId(String frstRegisterId) {
this.frstRegisterId = frstRegisterId;
}
/**
* frstRegisterPnttm attribute를 리턴한다.
* @return the frstRegisterPnttm
*/
public String getFrstRegisterPnttm() {
return frstRegisterPnttm;
}
/**
* frstRegisterPnttm attribute 값을 설정한다.
* @param frstRegisterPnttm the frstRegisterPnttm to set
*/
public void setFrstRegisterPnttm(String frstRegisterPnttm) {
this.frstRegisterPnttm = frstRegisterPnttm;
}
/**
* lastUpdusrId attribute를 리턴한다.
* @return the lastUpdusrId
*/
public String getLastUpdusrId() {
return lastUpdusrId;
}
/**
* lastUpdusrId attribute 값을 설정한다.
* @param lastUpdusrId the lastUpdusrId to set
*/
public void setLastUpdusrId(String lastUpdusrId) {
this.lastUpdusrId = lastUpdusrId;
}
/**
* lastUpdusrPnttm attribute를 리턴한다.
* @return the lastUpdusrPnttm
*/
public String getLastUpdusrPnttm() {
return lastUpdusrPnttm;
}
/**
* lastUpdusrPnttm attribute 값을 설정한다.
* @param lastUpdusrPnttm the lastUpdusrPnttm to set
*/
public void setLastUpdusrPnttm(String lastUpdusrPnttm) {
this.lastUpdusrPnttm = lastUpdusrPnttm;
}
/**
* frstRegisterNm attribute를 리턴한다.
* @return the frstRegisterNm
*/
public String getFrstRegisterNm() {
return frstRegisterNm;
}
/**
* frstRegisterNm attribute 값을 설정한다.
* @param frstRegisterNm the frstRegisterNm to set
*/
public void setFrstRegisterNm(String frstRegisterNm) {
this.frstRegisterNm = frstRegisterNm;
}
/**
* confirmPassword attribute를 리턴한다.
* @return the confirmPassword
*/
public String getConfirmPassword() {
return confirmPassword;
}
/**
* confirmPassword attribute 값을 설정한다.
* @param confirmPassword the confirmPassword to set
*/
public void setConfirmPassword(String confirmPassword) {
this.confirmPassword = confirmPassword;
}
/**
* @return the nttSj
*/
public String getNttSj() {
return nttSj;
}
/**
* @param nttSj the nttSj to set
*/
public void setNttSj(String nttSj) {
this.nttSj = nttSj;
}
/**
* toString 메소드를 대치한다.
*/
public String toString() {
return ToStringBuilder.reflectionToString(this);
}
}

View File

@ -0,0 +1,235 @@
package egovframework.com.cop.bbs.service;
import org.apache.commons.lang.builder.ToStringBuilder;
/**
* 댓글관리 서비스를 위한 VO 클래스
* @author 공통컴포넌트개발팀 한성곤
* @since 2009.06.29
* @version 1.0
* @see
*
* <pre>
* << 개정이력(Modification Information) >>
*
* 수정일 수정자 수정내용
* ------- -------- ---------------------------
* 2009.06.29 한성곤 최초 생성
*
* </pre>
*/
@SuppressWarnings("serial")
public class CommentVO extends Comment {
/** 정렬순서(DESC,ASC) */
private long sortOrdr = 0L;
/** 현재페이지 */
private int subPageIndex = 1;
/** 페이지갯수 */
private int subPageUnit = 10;
/** 페이지사이즈 */
private int subPageSize = 10;
/** 첫페이지 인덱스 */
private int subFirstIndex = 1;
/** 마지막페이지 인덱스 */
private int subLastIndex = 1;
/** 페이지당 레코드 개수 */
private int subRecordCountPerPage = 10;
/** 레코드 번호 */
private int subRowNo = 0;
/** 호출 TYPE (head or body)*/
private String type = "";
/** 수정 처리 여부 */
private boolean isModified = false;
private String userSe = "";
/**
* @return the userSe
*/
public String getUserSe() {
return userSe;
}
/**
* @param userSe the userSe to set
*/
public void setUserSe(String userSe) {
this.userSe = userSe;
}
/**
* sortOrdr attribute를 리턴한다.
* @return the sortOrdr
*/
public long getSortOrdr() {
return sortOrdr;
}
/**
* sortOrdr attribute 값을 설정한다.
* @param sortOrdr the sortOrdr to set
*/
public void setSortOrdr(long sortOrdr) {
this.sortOrdr = sortOrdr;
}
/**
* subPageIndex attribute를 리턴한다.
* @return the subPageIndex
*/
public int getSubPageIndex() {
return subPageIndex;
}
/**
* subPageIndex attribute 값을 설정한다.
* @param subPageIndex the subPageIndex to set
*/
public void setSubPageIndex(int subPageIndex) {
this.subPageIndex = subPageIndex;
}
/**
* subPageUnit attribute를 리턴한다.
* @return the subPageUnit
*/
public int getSubPageUnit() {
return subPageUnit;
}
/**
* subPageUnit attribute 값을 설정한다.
* @param subPageUnit the subPageUnit to set
*/
public void setSubPageUnit(int subPageUnit) {
this.subPageUnit = subPageUnit;
}
/**
* subPageSize attribute를 리턴한다.
* @return the subPageSize
*/
public int getSubPageSize() {
return subPageSize;
}
/**
* subPageSize attribute 값을 설정한다.
* @param subPageSize the subPageSize to set
*/
public void setSubPageSize(int subPageSize) {
this.subPageSize = subPageSize;
}
/**
* subFirstIndex attribute를 리턴한다.
* @return the subFirstIndex
*/
public int getSubFirstIndex() {
return subFirstIndex;
}
/**
* subFirstIndex attribute 값을 설정한다.
* @param subFirstIndex the subFirstIndex to set
*/
public void setSubFirstIndex(int subFirstIndex) {
this.subFirstIndex = subFirstIndex;
}
/**
* subLastIndex attribute를 리턴한다.
* @return the subLastIndex
*/
public int getSubLastIndex() {
return subLastIndex;
}
/**
* subLastIndex attribute 값을 설정한다.
* @param subLastIndex the subLastIndex to set
*/
public void setSubLastIndex(int subLastIndex) {
this.subLastIndex = subLastIndex;
}
/**
* subRecordCountPerPage attribute를 리턴한다.
* @return the subRecordCountPerPage
*/
public int getSubRecordCountPerPage() {
return subRecordCountPerPage;
}
/**
* subRecordCountPerPage attribute 값을 설정한다.
* @param subRecordCountPerPage the subRecordCountPerPage to set
*/
public void setSubRecordCountPerPage(int subRecordCountPerPage) {
this.subRecordCountPerPage = subRecordCountPerPage;
}
/**
* subRowNo attribute를 리턴한다.
* @return the subRowNo
*/
public int getSubRowNo() {
return subRowNo;
}
/**
* subRowNo attribute 값을 설정한다.
* @param subRowNo the subRowNo to set
*/
public void setSubRowNo(int subRowNo) {
this.subRowNo = subRowNo;
}
/**
* type attribute를 리턴한다.
* @return the type
*/
public String getType() {
return type;
}
/**
* type attribute 값을 설정한다.
* @param type the type to set
*/
public void setType(String type) {
this.type = type;
}
/**
* isModified attribute를 리턴한다.
* @return the isModified
*/
public boolean isModified() {
return isModified;
}
/**
* isModified attribute 값을 설정한다.
* @param isModified the isModified to set
*/
public void setModified(boolean isModified) {
this.isModified = isModified;
}
/**
* toString 메소드를 대치한다.
*/
public String toString() {
return ToStringBuilder.reflectionToString(this);
}
}

View File

@ -0,0 +1,103 @@
package egovframework.com.cop.bbs.service;
import java.util.List;
import java.util.Map;
import kr.or.arko.mnt.biz.data.service.DataVO;
/**
* 게시판 속성관리를 위한 서비스 인터페이스 클래스
* @author 공통서비스개발팀 이삼섭
* @since 2009.06.01
* @version 1.0
* @see
*
* <pre>
* << 개정이력(Modification Information) >>
*
* 수정일 수정자 수정내용
* ------- -------- ---------------------------
* 2009.3.12 이삼섭 최초 생성
*
*/
public interface EgovBBSAttributeManageService {
/**
* 등록된 게시판 속성정보를 삭제한다.
*
* @param BoardMaster
*/
public void deleteBBSMasterInf(BoardMaster boardMaster) throws Exception;
/**
* 신규 게시판 속성정보를 생성한다.
*
* @param BoardMaster
*/
public String insertBBSMastetInf(BoardMaster boardMaster) throws Exception;
/**
* 게시판 속성정보 건을 상세조회한다.
*
* @param BoardMasterVO
*/
public BoardMasterVO selectBBSMasterInf(BoardMaster searchVO) throws Exception;
/**
* 게시판 속성 정보의 목록을 조회 한다.
*
* @param BoardMasterVO
*/
public Map<String, Object> selectBBSMasterInfs(BoardMasterVO searchVO) throws Exception;
/**
* 게시판 속성정보를 수정한다.
*
* @param BoardMaster
*/
public void updateBBSMasterInf(BoardMaster boardMaster) throws Exception;
/**
* 템플릿의 유효여부를 점검한다.
*
* @param BoardMasterVO
*/
public void validateTemplate(BoardMasterVO searchVO) throws Exception;
/**
* 유효한 게시판 마스터 정보를 호출한다.
*
* @param searchVO
* @return
* @throws Exception
*/
public List<BoardMasterVO> selectAllBBSMasteInf(BoardMasterVO vo) throws Exception;
/**
* 사용중인 게시판 속성 정보의 목록을 조회 한다.
*
* @param BoardMasterVO
*/
public Map<String, Object> selectBdMstrListByTrget(BoardMasterVO vo) throws Exception;
/**
* 커뮤니티, 동호회에서 사용중인 게시판 속성 정보의 목록을 전체조회 한다.
*
* @param vo
* @return
* @throws Exception
*/
public List<BoardMasterVO> selectAllBdMstrByTrget(BoardMasterVO vo) throws Exception;
/**
* 사용중이지 않은 게시판 속성 정보의 목록을 조회 한다.
*
* @param vo
* @return
* @throws Exception
*/
public Map<String, Object> selectNotUsedBdMstrList(BoardMasterVO vo) throws Exception;
}

View File

@ -0,0 +1,101 @@
package egovframework.com.cop.bbs.service;
import java.util.List;
import java.util.Map;
/**
* 댓글관리를 위한 서비스 인터페이스 클래스
* @author 공통컴포넌트개발팀 한성곤
* @since 2009.06.29
* @version 1.0
* @see
*
* <pre>
* << 개정이력(Modification Information) >>
*
* 수정일 수정자 수정내용
* ------- -------- ---------------------------
* 2009.06.29 한성곤 최초 생성
*
* </pre>
*/
public interface EgovBBSCommentService {
/**
* 댓글 사용 가능 여부를 확인한다.
*
* @param bbsId
* @return
* @throws Exception
*/
public boolean canUseComment(String bbsId) throws Exception;
/**
* 댓글에 대한 목록을 조회 한다.
*
* @param commentVO
* @return
* @throws Exception
*/
public Map<String, Object> selectCommentList(CommentVO commentVO) throws Exception;
/**
* 커뮤니티 댓글에 대한 목록을 조회 한다.
*
* @param commentVO
* @return
* @throws Exception
*/
public Map<String, Object> selectCommCommentList(CommentVO commentVO) throws Exception;
/**
* 댓글을 등록한다.
*
* @param comment
* @throws Exception
*/
public void insertComment(Comment comment) throws Exception;
/**
* 댓글을 삭제한다.
*
* @param commentVO
* @throws Exception
*/
public void deleteComment(CommentVO commentVO) throws Exception;
/**
* 댓글에 대한 내용을 조회한다.
*
* @param commentVO
* @return
* @throws Exception
*/
public Comment selectComment(CommentVO commentVO) throws Exception;
/**
* 댓글에 대한 내용을 수정한다.
*
* @param comment
* @throws Exception
*/
public void updateComment(Comment comment) throws Exception;
/**
* 댓글 패스워드를 가져온다.
*
* @param comment
* @return
* @throws Exception
*/
public String getCommentPassword(Comment comment) throws Exception;
/**
* 최근등록된 댓글을 보여준다
*
* @param commentVO
* @return
* @throws Exception
*/
public List<CommentVO> selectNewCommentList(CommentVO commentVO) throws Exception;
}

View File

@ -0,0 +1,58 @@
package egovframework.com.cop.bbs.service;
import java.util.Map;
/**
* 게시판 속성관리를 위한 서비스 인터페이스 클래스
* @author 공통컴포넌트개발팀 한성곤
* @since 2009.08.25
* @version 1.0
* @see
*
* <pre>
* << 개정이력(Modification Information) >>
*
* 수정일 수정자 수정내용
* ------- -------- ---------------------------
* 2009.08.25 한성곤 최초 생성
*
* </pre>
*/
public interface EgovBBSLoneMasterService {
/**
* 등록된 게시판 속성정보를 삭제한다.
*
* @param BoardMaster
*/
public void deleteMaster(BoardMaster boardMaster) throws Exception;
/**
* 신규 게시판 속성정보를 생성한다.
*
* @param BoardMaster
*/
public String insertMaster(BoardMaster boardMaster) throws Exception;
/**
* 게시판 속성정보 건을 상세조회한다.
*
* @param BoardMasterVO
*/
public BoardMasterVO selectMaster(BoardMaster searchVO) throws Exception;
/**
* 게시판 속성 정보의 목록을 조회 한다.
*
* @param BoardMasterVO
*/
public Map<String, Object> selectMasterList(BoardMasterVO searchVO) throws Exception;
/**
* 게시판 속성정보를 수정한다.
*
* @param BoardMaster
*/
public void updateMaster(BoardMaster boardMaster) throws Exception;
}

View File

@ -0,0 +1,297 @@
package egovframework.com.cop.bbs.service;
import java.util.List;
import java.util.Map;
/**
* 게시물 관리를 위한 서비스 인터페이스 클래스
* @author 공통서비스개발팀 이삼섭
* @since 2009.06.01
* @version 1.0
* @see
*
* <pre>
* << 개정이력(Modification Information) >>
*
* 수정일 수정자 수정내용
* ------- -------- ---------------------------
* 2009.3.19 이삼섭 최초 생성
*
* </pre>
*/
public interface EgovBBSManageService {
/**
* 게시물 건을 삭제 한다.
*
* @param Board
* @throws Exception
*/
public void deleteBoardArticle(Board Board) throws Exception;
/**
* 임시 게시물 건을 삭제 한다.
*
* @param Board
* @throws Exception
*/
public void deleteMobBoardArticle(Board Board) throws Exception;
/**
* 게시판에 게시물 또는 답변 게시물을 등록 한다.
*
* @param Board
* @throws Exception
*/
public void insertBoardArticle(Board Board) throws Exception;
/**
* 게시물 대하여 상세 내용을 조회 한다.
*
* @param boardVO
* @return
* @throws Exception
*/
public BoardVO selectBoardArticle(BoardVO boardVO) throws Exception;
/**
* 공지사항 게시물 대하여 상세 내용을 조회 한다.
*
* @param boardVO
* @return
* @throws Exception
*/
public BoardVO selectNoticeBoardArticle(BoardVO boardVO) throws Exception;
/**
* 묻고답하기 게시물 대하여 상세 내용을 조회 한다.
*
* @param boardVO
* @return
* @throws Exception
*/
public BoardVO selectQnABoardArticle(BoardVO boardVO) throws Exception;
/**
* 커뮤니티 게시물 대하여 상세 내용을 조회 한다.
*
* @param boardVO
* @return
* @throws Exception
*/
public BoardVO selectCommBoardArticle(BoardVO boardVO) throws Exception;
/**
* 자주하는질문 게시물 대하여 상세 내용을 조회 한다.
*
* @param boardVO
* @return
* @throws Exception
*/
public BoardVO selectFAQBoardArticle(BoardVO boardVO) throws Exception;
/**
* 조건에 맞는 게시물 목록을 조회 한다.
*
* @param boardVO
* @return
* @throws Exception
*/
public Map<String, Object> selectBoardArticles(BoardVO boardVO, String attrbFlag) throws Exception;
/**
* 공지 게시물 목록을 조회 한다.
*
* @param boardVO
* @return
* @throws Exception
*/
public Map<String, Object> selectNoticeBoardArticles(BoardVO boardVO, String attrbFlag) throws Exception;
/**
* 묻고답하기 게시물 목록을 조회 한다.
*
* @param boardVO
* @return
* @throws Exception
*/
public Map<String, Object> selectQnABoardArticles(BoardVO boardVO, String attrbFlag) throws Exception;
/**
* 커뮤니티 게시물 목록을 조회 한다.
*
* @param boardVO
* @return
* @throws Exception
*/
public Map<String, Object> selectCommBoardArticles(BoardVO boardVO, String attrbFlag) throws Exception;
/**
* 자주하는질문 게시물 목록을 조회 한다.
*
* @param boardVO
* @return
* @throws Exception
*/
public Map<String, Object> selectFAQBoardArticles(BoardVO boardVO, String attrbFlag) throws Exception;
/**
* 게시물 건의 내용을 수정 한다.
*
* @param Board
* @throws Exception
*/
public void updateBoardArticle(Board Board) throws Exception;
/**
* 방명록에 대한 목록을 조회 한다.
*
* @param boardVO
* @return
* @throws Exception
*/
public Map<String, Object> selectGuestList(BoardVO boardVO) throws Exception;
/**
* 방명록 내용을 삭제 한다.
*
* @param boardVO
* @throws Exception
*/
public void deleteGuestList(BoardVO boardVO) throws Exception;
/**
* 방명록에 대한 패스워드를 조회 한다.
*
* @param Board
* @return
* @throws Exception
*/
public String getPasswordInf(Board Board) throws Exception;
/**
* 게시물 건에 대하여 이전글의 정보를 조회 한다.
*
* @param boardVO
* @return
* @throws Exception
*/
public BoardVO selectBoardArticlePrev(BoardVO boardVO) throws Exception;
/**
* 게시물 건에 대하여 다음글의 정보를 조회 한다.
*
* @param boardVO
* @return
* @throws Exception
*/
public BoardVO selectBoardArticleNext(BoardVO boardVO) throws Exception;
/**
* 공지사항 게시물 건에 대하여 이전글의 정보를 조회 한다.
*
* @param boardVO
* @return
* @throws Exception
*/
public BoardVO selectNoticeBoardArticlePrev(BoardVO boardVO) throws Exception;
/**
* 공지사항 게시물 건에 대하여 다음글의 정보를 조회 한다.
*
* @param boardVO
* @return
* @throws Exception
*/
public BoardVO selectNoticeBoardArticleNext(BoardVO boardVO) throws Exception;
/**
* 묻고답하기 게시물 건에 대하여 이전글의 정보를 조회 한다.
*
* @param boardVO
* @return
* @throws Exception
*/
public BoardVO selectQnABoardArticlePrev(BoardVO boardVO) throws Exception;
/**
* 묻고답하기 게시물 건에 대하여 다음글의 정보를 조회 한다.
*
* @param boardVO
* @return
* @throws Exception
*/
public BoardVO selectQnABoardArticleNext(BoardVO boardVO) throws Exception;
/**
* 커뮤니티 게시물 건에 대하여 이전글의 정보를 조회 한다.
*
* @param boardVO
* @return
* @throws Exception
*/
public BoardVO selectCommBoardArticlePrev(BoardVO boardVO) throws Exception;
/**
* 커뮤니티 게시물 건에 대하여 다음글의 정보를 조회 한다.
*
* @param boardVO
* @return
* @throws Exception
*/
public BoardVO selectCommBoardArticleNext(BoardVO boardVO) throws Exception;
/**
* 자주하는질문 게시물 건에 대하여 이전글의 정보를 조회 한다.
*
* @param boardVO
* @return
* @throws Exception
*/
public BoardVO selectFAQBoardArticlePrev(BoardVO boardVO) throws Exception;
/**
* 자주하는질문 게시물 건에 대하여 다음글의 정보를 조회 한다.
*
* @param boardVO
* @return
* @throws Exception
*/
public BoardVO selectFAQBoardArticleNext(BoardVO boardVO) throws Exception;
/**
* 조건에 맞는 게시물 답변 목록을 조회 한다.
*
* @param boardVO
* @return
* @throws Exception
*/
public List<BoardVO> selectBoardReplyArticleList(BoardVO boardVO) throws Exception;
/**
* 메인에 보여줄 게시물 목록을 조회 한다.
*
* @param boardVO
* @return
* @throws Exception
*/
public List<BoardVO> selectMainBoard(BoardVO boardVO) throws Exception;
/**
* 가장 많이 글을 조회 한다.
*
* @param boardVO
* @return
* @throws Exception
*/
public List<BoardVO> selectReadBoard(BoardVO boardVO) throws Exception;
/** 엑셀다운 */
public List<BoardVO> selectExcelBoardArticles(BoardVO boardVO) throws Exception;
/** 게시물카운트 */
public int selectBoardArticleListCnt(BoardVO boardVO) throws Exception;
public List<BoardVO> selectBoardArticleTopList(BoardVO boardVO) throws Exception;
}

View File

@ -0,0 +1,81 @@
package egovframework.com.cop.bbs.service;
import java.util.Map;
/**
* 만족도조사를 위한 서비스 인터페이스 클래스
* @author 공통컴포넌트개발팀 한성곤
* @since 2009.06.29
* @version 1.0
* @see
*
* <pre>
* << 개정이력(Modification Information) >>
*
* 수정일 수정자 수정내용
* ------- -------- ---------------------------
* 2009.06.29 한성곤 최초 생성
*
* </pre>
*/
public interface EgovBBSSatisfactionService {
/**
* 만족도조사 사용 가능 여부를 확인한다.
*
* @param bbsId
* @return
* @throws Exception
*/
public boolean canUseSatisfaction(String bbsId) throws Exception;
/**
* 만족도조사에 대한 목록을 조회 한다.
*
* @param satisfactionVO
* @return
* @throws Exception
*/
public Map<String, Object> selectSatisfactionList(SatisfactionVO satisfactionVO) throws Exception;
/**
* 만족도조사를 등록한다.
*
* @param satisfaction
* @throws Exception
*/
public void insertSatisfaction(Satisfaction satisfaction) throws Exception;
/**
* 만족도조사를 삭제한다.
*
* @param satisfactionVO
* @throws Exception
*/
public void deleteSatisfaction(SatisfactionVO satisfactionVO) throws Exception;
/**
* 만족도조사에 대한 내용을 조회한다.
*
* @param satisfactionVO
* @return
* @throws Exception
*/
public Satisfaction selectSatisfaction(SatisfactionVO satisfactionVO) throws Exception;
/**
* 만족도조사에 대한 내용을 수정한다.
*
* @param satisfaction
* @throws Exception
*/
public void updateSatisfaction(Satisfaction satisfaction) throws Exception;
/**
* 만족도조사 패스워드를 가져온다.
*
* @param satisfaction
* @return
* @throws Exception
*/
public String getSatisfactionPassword(Satisfaction satisfaction) throws Exception;
}

View File

@ -0,0 +1,71 @@
package egovframework.com.cop.bbs.service;
import java.util.Map;
/**
* 스크랩관리를 위한 서비스 인터페이스 클래스
* @author 공통컴포넌트개발팀 한성곤
* @since 2009.07.10
* @version 1.0
* @see
*
* <pre>
* << 개정이력(Modification Information) >>
*
* 수정일 수정자 수정내용
* ------- -------- ---------------------------
* 2009.07.10 한성곤 최초 생성
*
* </pre>
*/
public interface EgovBBSScrapService {
/**
* 스크랩 사용 가능 여부를 확인한다.
*
* @return
* @throws Exception
*/
public boolean canUseScrap() throws Exception;
/**
* 스크랩에 대한 목록을 조회 한다.
*
* @param scrapVO
* @return
* @throws Exception
*/
public Map<String, Object> selectScrapList(ScrapVO scrapVO) throws Exception;
/**
* 스크랩을 등록한다.
*
* @param scrap
* @throws Exception
*/
public void insertScrap(Scrap scrap) throws Exception;
/**
* 스크랩을 삭제한다.
*
* @param scrapVO
* @throws Exception
*/
public void deleteScrap(ScrapVO scrapVO) throws Exception;
/**
* 스크랩에 대한 내용을 조회한다.
*
* @param scrapVO
* @return
* @throws Exception
*/
public Scrap selectScrap(ScrapVO scrapVO) throws Exception;
/**
* 스크랩에 대한 내용을 수정한다.
*
* @param scrap
* @throws Exception
*/
public void updateScrap(Scrap scrap) throws Exception;
}

View File

@ -0,0 +1,91 @@
package egovframework.com.cop.bbs.service;
import java.util.Map;
/**
* 게시판 이용정보를 관리하기 위한 서비스 인터페이스 클래스
* @author 공통서비스개발팀 이삼섭
* @since 2009.06.01
* @version 1.0
* @see
*
* <pre>
* << 개정이력(Modification Information) >>
*
* 수정일 수정자 수정내용
* ------- -------- ---------------------------
* 2009.4.2 이삼섭 최초 생성
* 2011.7.27 안민정 동호회, 커뮤니티 로직 분리 (EgovBBSUseInfoManageService -> EgovCmyBBSUseInfoManageService)
* </pre>
*/
public interface EgovBBSUseInfoManageService {
/**
* 게시판 사용 정보를 삭제한다.
*
* @param bdUseInf
* @throws Exception
*/
public void deleteBBSUseInf(BoardUseInf bdUseInf) throws Exception;
/**
* 게시판 사용정보를 등록한다.
*
* @param bdUseInf
* @throws Exception
*/
public void insertBBSUseInf(BoardUseInf bdUseInf) throws Exception;
/**
* 게시판 사용정보 목록을 조회한다.
*
* @param bdUseVO
* @return
* @throws Exception
*/
public Map<String, Object> selectBBSUseInfs(BoardUseInfVO bdUseVO) throws Exception;
/**
* 게시판 사용정보를 수정한다.
*
* @param bdUseInf
* @throws Exception
*/
public void updateBBSUseInf(BoardUseInf bdUseInf) throws Exception;
/**
* 게시판 사용정보에 대한 상세정보를 조회한다.
*
* @param bdUseVO
* @return
* @throws Exception
*/
public BoardUseInfVO selectBBSUseInf(BoardUseInfVO bdUseVO) throws Exception;
/**
* 게시판에 대한 사용정보를 삭제한다.
*
* @param bdUseInf
* @throws Exception
*/
public void deleteBBSUseInfByBoardId(BoardUseInf bdUseInf) throws Exception;
/**
* 커뮤니티, 동호회에 사용되는 게시판 사용정보에 대한 목록을 조회한다.
*
* @param bdUseVO
* @return
* @throws Exception
*/
public Map<String, Object> selectBBSUseInfsByTrget(BoardUseInfVO bdUseVO) throws Exception;
/**
* 커뮤니티, 동호회에 사용되는 게시판 사용정보를 수정한다.
*
* @param bdUseInf
* @throws Exception
*/
public void updateBBSUseInfByTrget(BoardUseInf bdUseInf) throws Exception;
}

View File

@ -0,0 +1,316 @@
package egovframework.com.cop.bbs.service;
import java.io.Serializable;
import org.apache.commons.lang.builder.ToStringBuilder;
/**
* 만족도조사 서비스 데이터 처리 모델
* @author 공통컴포넌트개발팀 한성곤
* @since 2009.06.29
* @version 1.0
* @see
*
* <pre>
* << 개정이력(Modification Information) >>
*
* 수정일 수정자 수정내용
* ------- -------- ---------------------------
* 2009.06.29 한성곤 최초 생성
*
* </pre>
*/
@SuppressWarnings("serial")
public class Satisfaction implements Serializable {
/** 만족도 번호 */
private String stsfdgNo = "";
/** 게시판 ID */
private String bbsId = "";
/** 게시물 번호 */
private long nttId = 0L;
/** 작성자 ID */
private String wrterId = "";
/** 작성자명 */
private String wrterNm = "";
/** 패스워드 */
private String stsfdgPassword = "";
/** 만족도 내용 */
private String stsfdgCn = "";
/** 만족도 */
private int stsfdg = 0;
/** 사용 여부 */
private String useAt = "";
/** 최초등록자 아이디 */
private String frstRegisterId = "";
/** 최초 등록자명 */
private String frstRegisterNm = "";
/** 최초등록시점 */
private String frstRegisterPnttm = "";
/** 최종수정자 아이디 */
private String lastUpdusrId = "";
/** 최종수정시점 */
private String lastUpdusrPnttm = "";
/** 확인 패스워드 */
private String confirmPassword = "";
/**
* stsfdgNo attribute를 리턴한다.
* @return the stsfdgNo
*/
public String getStsfdgNo() {
return stsfdgNo;
}
/**
* stsfdgNo attribute 값을 설정한다.
* @param stsfdgNo the stsfdgNo to set
*/
public void setStsfdgNo(String stsfdgNo) {
this.stsfdgNo = stsfdgNo;
}
/**
* bbsId attribute를 리턴한다.
* @return the bbsId
*/
public String getBbsId() {
return bbsId;
}
/**
* bbsId attribute 값을 설정한다.
* @param bbsId the bbsId to set
*/
public void setBbsId(String bbsId) {
this.bbsId = bbsId;
}
/**
* nttId attribute를 리턴한다.
* @return the nttId
*/
public long getNttId() {
return nttId;
}
/**
* nttId attribute 값을 설정한다.
* @param nttId the nttId to set
*/
public void setNttId(long nttId) {
this.nttId = nttId;
}
/**
* wrterId attribute를 리턴한다.
* @return the wrterId
*/
public String getWrterId() {
return wrterId;
}
/**
* wrterId attribute 값을 설정한다.
* @param wrterId the wrterId to set
*/
public void setWrterId(String wrterId) {
this.wrterId = wrterId;
}
/**
* wrterNm attribute를 리턴한다.
* @return the wrterNm
*/
public String getWrterNm() {
return wrterNm;
}
/**
* wrterNm attribute 값을 설정한다.
* @param wrterNm the wrterNm to set
*/
public void setWrterNm(String wrterNm) {
this.wrterNm = wrterNm;
}
/**
* stsfdgPassword attribute를 리턴한다.
* @return the stsfdgPassword
*/
public String getStsfdgPassword() {
return stsfdgPassword;
}
/**
* stsfdgPassword attribute 값을 설정한다.
* @param stsfdgPassword the stsfdgPassword to set
*/
public void setStsfdgPassword(String stsfdgPassword) {
this.stsfdgPassword = stsfdgPassword;
}
/**
* stsfdgCn attribute를 리턴한다.
* @return the stsfdgCn
*/
public String getStsfdgCn() {
return stsfdgCn;
}
/**
* stsfdgCn attribute 값을 설정한다.
* @param stsfdgCn the stsfdgCn to set
*/
public void setStsfdgCn(String stsfdgCn) {
this.stsfdgCn = stsfdgCn;
}
/**
* stsfdg attribute를 리턴한다.
* @return the stsfdg
*/
public int getStsfdg() {
return stsfdg;
}
/**
* stsfdg attribute 값을 설정한다.
* @param stsfdg the stsfdg to set
*/
public void setStsfdg(int stsfdg) {
this.stsfdg = stsfdg;
}
/**
* useAt attribute를 리턴한다.
* @return the useAt
*/
public String getUseAt() {
return useAt;
}
/**
* useAt attribute 값을 설정한다.
* @param useAt the useAt to set
*/
public void setUseAt(String useAt) {
this.useAt = useAt;
}
/**
* frstRegisterId attribute를 리턴한다.
* @return the frstRegisterId
*/
public String getFrstRegisterId() {
return frstRegisterId;
}
/**
* frstRegisterId attribute 값을 설정한다.
* @param frstRegisterId the frstRegisterId to set
*/
public void setFrstRegisterId(String frstRegisterId) {
this.frstRegisterId = frstRegisterId;
}
/**
* frstRegisterNm attribute를 리턴한다.
* @return the frstRegisterNm
*/
public String getFrstRegisterNm() {
return frstRegisterNm;
}
/**
* frstRegisterNm attribute 값을 설정한다.
* @param frstRegisterNm the frstRegisterNm to set
*/
public void setFrstRegisterNm(String frstRegisterNm) {
this.frstRegisterNm = frstRegisterNm;
}
/**
* frstRegisterPnttm attribute를 리턴한다.
* @return the frstRegisterPnttm
*/
public String getFrstRegisterPnttm() {
return frstRegisterPnttm;
}
/**
* frstRegisterPnttm attribute 값을 설정한다.
* @param frstRegisterPnttm the frstRegisterPnttm to set
*/
public void setFrstRegisterPnttm(String frstRegisterPnttm) {
this.frstRegisterPnttm = frstRegisterPnttm;
}
/**
* lastUpdusrId attribute를 리턴한다.
* @return the lastUpdusrId
*/
public String getLastUpdusrId() {
return lastUpdusrId;
}
/**
* lastUpdusrId attribute 값을 설정한다.
* @param lastUpdusrId the lastUpdusrId to set
*/
public void setLastUpdusrId(String lastUpdusrId) {
this.lastUpdusrId = lastUpdusrId;
}
/**
* lastUpdusrPnttm attribute를 리턴한다.
* @return the lastUpdusrPnttm
*/
public String getLastUpdusrPnttm() {
return lastUpdusrPnttm;
}
/**
* lastUpdusrPnttm attribute 값을 설정한다.
* @param lastUpdusrPnttm the lastUpdusrPnttm to set
*/
public void setLastUpdusrPnttm(String lastUpdusrPnttm) {
this.lastUpdusrPnttm = lastUpdusrPnttm;
}
/**
* confirmPassword attribute를 리턴한다.
* @return the confirmPassword
*/
public String getConfirmPassword() {
return confirmPassword;
}
/**
* confirmPassword attribute 값을 설정한다.
* @param confirmPassword the confirmPassword to set
*/
public void setConfirmPassword(String confirmPassword) {
this.confirmPassword = confirmPassword;
}
/**
* toString 메소드를 대치한다.
*/
public String toString() {
return ToStringBuilder.reflectionToString(this);
}
}

View File

@ -0,0 +1,219 @@
package egovframework.com.cop.bbs.service;
import org.apache.commons.lang.builder.ToStringBuilder;
/**
* 만족도조사 서비스를 위한 VO 클래스
* @author 공통컴포넌트개발팀 한성곤
* @since 2009.06.29
* @version 1.0
* @see
*
* <pre>
* << 개정이력(Modification Information) >>
*
* 수정일 수정자 수정내용
* ------- -------- ---------------------------
* 2009.06.29 한성곤 최초 생성
*
* </pre>
*/
@SuppressWarnings("serial")
public class SatisfactionVO extends Satisfaction {
/** 정렬순서(DESC,ASC) */
private long sortOrdr = 0L;
/** 현재페이지 */
private int subPageIndex = 1;
/** 페이지갯수 */
private int subPageUnit = 10;
/** 페이지사이즈 */
private int subPageSize = 10;
/** 첫페이지 인덱스 */
private int subFirstIndex = 1;
/** 마지막페이지 인덱스 */
private int subLastIndex = 1;
/** 페이지당 레코드 개수 */
private int subRecordCountPerPage = 10;
/** 레코드 번호 */
private int subRowNo = 0;
/** 호출 TYPE (head or body)*/
private String type = "";
/** 수정 처리 여부 */
private boolean isModified = false;
/**
* sortOrdr attribute를 리턴한다.
* @return the sortOrdr
*/
public long getSortOrdr() {
return sortOrdr;
}
/**
* sortOrdr attribute 값을 설정한다.
* @param sortOrdr the sortOrdr to set
*/
public void setSortOrdr(long sortOrdr) {
this.sortOrdr = sortOrdr;
}
/**
* subPageIndex attribute를 리턴한다.
* @return the subPageIndex
*/
public int getSubPageIndex() {
return subPageIndex;
}
/**
* subPageIndex attribute 값을 설정한다.
* @param subPageIndex the subPageIndex to set
*/
public void setSubPageIndex(int subPageIndex) {
this.subPageIndex = subPageIndex;
}
/**
* subPageUnit attribute를 리턴한다.
* @return the subPageUnit
*/
public int getSubPageUnit() {
return subPageUnit;
}
/**
* subPageUnit attribute 값을 설정한다.
* @param subPageUnit the subPageUnit to set
*/
public void setSubPageUnit(int subPageUnit) {
this.subPageUnit = subPageUnit;
}
/**
* subPageSize attribute를 리턴한다.
* @return the subPageSize
*/
public int getSubPageSize() {
return subPageSize;
}
/**
* subPageSize attribute 값을 설정한다.
* @param subPageSize the subPageSize to set
*/
public void setSubPageSize(int subPageSize) {
this.subPageSize = subPageSize;
}
/**
* subFirstIndex attribute를 리턴한다.
* @return the subFirstIndex
*/
public int getSubFirstIndex() {
return subFirstIndex;
}
/**
* subFirstIndex attribute 값을 설정한다.
* @param subFirstIndex the subFirstIndex to set
*/
public void setSubFirstIndex(int subFirstIndex) {
this.subFirstIndex = subFirstIndex;
}
/**
* subLastIndex attribute를 리턴한다.
* @return the subLastIndex
*/
public int getSubLastIndex() {
return subLastIndex;
}
/**
* subLastIndex attribute 값을 설정한다.
* @param subLastIndex the subLastIndex to set
*/
public void setSubLastIndex(int subLastIndex) {
this.subLastIndex = subLastIndex;
}
/**
* subRecordCountPerPage attribute를 리턴한다.
* @return the subRecordCountPerPage
*/
public int getSubRecordCountPerPage() {
return subRecordCountPerPage;
}
/**
* subRecordCountPerPage attribute 값을 설정한다.
* @param subRecordCountPerPage the subRecordCountPerPage to set
*/
public void setSubRecordCountPerPage(int subRecordCountPerPage) {
this.subRecordCountPerPage = subRecordCountPerPage;
}
/**
* subRowNo attribute를 리턴한다.
* @return the subRowNo
*/
public int getSubRowNo() {
return subRowNo;
}
/**
* subRowNo attribute 값을 설정한다.
* @param subRowNo the subRowNo to set
*/
public void setSubRowNo(int subRowNo) {
this.subRowNo = subRowNo;
}
/**
* type attribute를 리턴한다.
* @return the type
*/
public String getType() {
return type;
}
/**
* type attribute 값을 설정한다.
* @param type the type to set
*/
public void setType(String type) {
this.type = type;
}
/**
* isModified attribute를 리턴한다.
* @return the isModified
*/
public boolean isModified() {
return isModified;
}
/**
* isModified attribute 값을 설정한다.
* @param isModified the isModified to set
*/
public void setModified(boolean isModified) {
this.isModified = isModified;
}
/**
* toString 메소드를 대치한다.
*/
public String toString() {
return ToStringBuilder.reflectionToString(this);
}
}

View File

@ -0,0 +1,240 @@
package egovframework.com.cop.bbs.service;
import java.io.Serializable;
import org.apache.commons.lang.builder.ToStringBuilder;
/**
* 스크랩 서비스 데이터 처리 모델
* @author 공통컴포넌트개발팀 한성곤
* @since 2009.07.10
* @version 1.0
* @see
*
* <pre>
* << 개정이력(Modification Information) >>
*
* 수정일 수정자 수정내용
* ------- -------- ---------------------------
* 2009.07.10 한성곤 최초 생성
*
* </pre>
*/
@SuppressWarnings("serial")
public class Scrap implements Serializable {
/** 스크랩 ID */
private String scrapId = "";
/** 게시판 ID */
private String bbsId = "";
/** 게시물 번호 */
private long nttId = 0L;
/** 스크랩명 */
private String scrapNm = "";
/** 사용 여부 */
private String useAt = "";
/** 유일 아이디 */
private String uniqId = "";
/** 최초등록자 아이디 */
private String frstRegisterId = "";
/** 최초 등록자명 */
private String frstRegisterNm = "";
/** 최초등록시점 */
private String frstRegisterPnttm = "";
/** 최종수정자 아이디 */
private String lastUpdusrId = "";
/** 최종수정시점 */
private String lastUpdusrPnttm = "";
/**
* scrapId attribute를 리턴한다.
* @return the scrapId
*/
public String getScrapId() {
return scrapId;
}
/**
* scrapId attribute 값을 설정한다.
* @param scrapId the scrapId to set
*/
public void setScrapId(String scrapId) {
this.scrapId = scrapId;
}
/**
* bbsId attribute를 리턴한다.
* @return the bbsId
*/
public String getBbsId() {
return bbsId;
}
/**
* bbsId attribute 값을 설정한다.
* @param bbsId the bbsId to set
*/
public void setBbsId(String bbsId) {
this.bbsId = bbsId;
}
/**
* nttId attribute를 리턴한다.
* @return the nttId
*/
public long getNttId() {
return nttId;
}
/**
* nttId attribute 값을 설정한다.
* @param nttId the nttId to set
*/
public void setNttId(long nttId) {
this.nttId = nttId;
}
/**
* scrapNm attribute를 리턴한다.
* @return the scrapNm
*/
public String getScrapNm() {
return scrapNm;
}
/**
* scrapNm attribute 값을 설정한다.
* @param scrapNm the scrapNm to set
*/
public void setScrapNm(String scrapNm) {
this.scrapNm = scrapNm;
}
/**
* useAt attribute를 리턴한다.
* @return the useAt
*/
public String getUseAt() {
return useAt;
}
/**
* useAt attribute 값을 설정한다.
* @param useAt the useAt to set
*/
public void setUseAt(String useAt) {
this.useAt = useAt;
}
/**
* frstRegisterId attribute를 리턴한다.
* @return the frstRegisterId
*/
public String getFrstRegisterId() {
return frstRegisterId;
}
/**
* frstRegisterId attribute 값을 설정한다.
* @param frstRegisterId the frstRegisterId to set
*/
public void setFrstRegisterId(String frstRegisterId) {
this.frstRegisterId = frstRegisterId;
}
/**
* frstRegisterNm attribute를 리턴한다.
* @return the frstRegisterNm
*/
public String getFrstRegisterNm() {
return frstRegisterNm;
}
/**
* frstRegisterNm attribute 값을 설정한다.
* @param frstRegisterNm the frstRegisterNm to set
*/
public void setFrstRegisterNm(String frstRegisterNm) {
this.frstRegisterNm = frstRegisterNm;
}
/**
* frstRegisterPnttm attribute를 리턴한다.
* @return the frstRegisterPnttm
*/
public String getFrstRegisterPnttm() {
return frstRegisterPnttm;
}
/**
* frstRegisterPnttm attribute 값을 설정한다.
* @param frstRegisterPnttm the frstRegisterPnttm to set
*/
public void setFrstRegisterPnttm(String frstRegisterPnttm) {
this.frstRegisterPnttm = frstRegisterPnttm;
}
/**
* lastUpdusrId attribute를 리턴한다.
* @return the lastUpdusrId
*/
public String getLastUpdusrId() {
return lastUpdusrId;
}
/**
* lastUpdusrId attribute 값을 설정한다.
* @param lastUpdusrId the lastUpdusrId to set
*/
public void setLastUpdusrId(String lastUpdusrId) {
this.lastUpdusrId = lastUpdusrId;
}
/**
* lastUpdusrPnttm attribute를 리턴한다.
* @return the lastUpdusrPnttm
*/
public String getLastUpdusrPnttm() {
return lastUpdusrPnttm;
}
/**
* lastUpdusrPnttm attribute 값을 설정한다.
* @param lastUpdusrPnttm the lastUpdusrPnttm to set
*/
public void setLastUpdusrPnttm(String lastUpdusrPnttm) {
this.lastUpdusrPnttm = lastUpdusrPnttm;
}
/**
* uniqId attribute를 리턴한다.
* @return the uniqId
*/
public String getUniqId() {
return uniqId;
}
/**
* uniqId attribute 값을 설정한다.
* @param uniqId the uniqId to set
*/
public void setUniqId(String uniqId) {
this.uniqId = uniqId;
}
/**
* toString 메소드를 대치한다.
*/
public String toString() {
return ToStringBuilder.reflectionToString(this);
}
}

View File

@ -0,0 +1,276 @@
package egovframework.com.cop.bbs.service;
import org.apache.commons.lang.builder.ToStringBuilder;
/**
* 스크랩 서비스를 위한 VO 클래스
* @author 공통컴포넌트개발팀 한성곤
* @since 2009.07.10
* @version 1.0
* @see
*
* <pre>
* << 개정이력(Modification Information) >>
*
* 수정일 수정자 수정내용
* ------- -------- ---------------------------
* 2009.07.10 한성곤 최초 생성
*
* </pre>
*/
@SuppressWarnings("serial")
public class ScrapVO extends Scrap {
/** 검색조건 */
private String searchCnd = "";
/** 검색단어 */
private String searchWrd = "";
/** 정렬순서(DESC,ASC) */
private long sortOrdr = 0L;
/** 검색사용여부 */
private String searchUseYn = "";
/** 현재페이지 */
private int pageIndex = 1;
/** 페이지갯수 */
private int pageUnit = 10;
/** 페이지사이즈 */
private int pageSize = 10;
/** 첫페이지 인덱스 */
private int firstIndex = 1;
/** 마지막페이지 인덱스 */
private int lastIndex = 1;
/** 페이지당 레코드 개수 */
private int recordCountPerPage = 10;
/** 레코드 번호 */
private int rowNo = 0;
/** 최초 등록자명 */
private String frstRegisterNm = "";
/** 최종 수정자명 */
private String lastUpdusrNm = "";
/**
* searchCnd attribute를 리턴한다.
* @return the searchCnd
*/
public String getSearchCnd() {
return searchCnd;
}
/**
* searchCnd attribute 값을 설정한다.
* @param searchCnd the searchCnd to set
*/
public void setSearchCnd(String searchCnd) {
this.searchCnd = searchCnd;
}
/**
* searchWrd attribute를 리턴한다.
* @return the searchWrd
*/
public String getSearchWrd() {
return searchWrd;
}
/**
* searchWrd attribute 값을 설정한다.
* @param searchWrd the searchWrd to set
*/
public void setSearchWrd(String searchWrd) {
this.searchWrd = searchWrd;
}
/**
* sortOrdr attribute를 리턴한다.
* @return the sortOrdr
*/
public long getSortOrdr() {
return sortOrdr;
}
/**
* sortOrdr attribute 값을 설정한다.
* @param sortOrdr the sortOrdr to set
*/
public void setSortOrdr(long sortOrdr) {
this.sortOrdr = sortOrdr;
}
/**
* searchUseYn attribute를 리턴한다.
* @return the searchUseYn
*/
public String getSearchUseYn() {
return searchUseYn;
}
/**
* searchUseYn attribute 값을 설정한다.
* @param searchUseYn the searchUseYn to set
*/
public void setSearchUseYn(String searchUseYn) {
this.searchUseYn = searchUseYn;
}
/**
* pageIndex attribute를 리턴한다.
* @return the pageIndex
*/
public int getPageIndex() {
return pageIndex;
}
/**
* pageIndex attribute 값을 설정한다.
* @param pageIndex the pageIndex to set
*/
public void setPageIndex(int pageIndex) {
this.pageIndex = pageIndex;
}
/**
* pageUnit attribute를 리턴한다.
* @return the pageUnit
*/
public int getPageUnit() {
return pageUnit;
}
/**
* pageUnit attribute 값을 설정한다.
* @param pageUnit the pageUnit to set
*/
public void setPageUnit(int pageUnit) {
this.pageUnit = pageUnit;
}
/**
* pageSize attribute를 리턴한다.
* @return the pageSize
*/
public int getPageSize() {
return pageSize;
}
/**
* pageSize attribute 값을 설정한다.
* @param pageSize the pageSize to set
*/
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
/**
* firstIndex attribute를 리턴한다.
* @return the firstIndex
*/
public int getFirstIndex() {
return firstIndex;
}
/**
* firstIndex attribute 값을 설정한다.
* @param firstIndex the firstIndex to set
*/
public void setFirstIndex(int firstIndex) {
this.firstIndex = firstIndex;
}
/**
* lastIndex attribute를 리턴한다.
* @return the lastIndex
*/
public int getLastIndex() {
return lastIndex;
}
/**
* lastIndex attribute 값을 설정한다.
* @param lastIndex the lastIndex to set
*/
public void setLastIndex(int lastIndex) {
this.lastIndex = lastIndex;
}
/**
* recordCountPerPage attribute를 리턴한다.
* @return the recordCountPerPage
*/
public int getRecordCountPerPage() {
return recordCountPerPage;
}
/**
* recordCountPerPage attribute 값을 설정한다.
* @param recordCountPerPage the recordCountPerPage to set
*/
public void setRecordCountPerPage(int recordCountPerPage) {
this.recordCountPerPage = recordCountPerPage;
}
/**
* rowNo attribute를 리턴한다.
* @return the rowNo
*/
public int getRowNo() {
return rowNo;
}
/**
* rowNo attribute 값을 설정한다.
* @param rowNo the rowNo to set
*/
public void setRowNo(int rowNo) {
this.rowNo = rowNo;
}
/**
* frstRegisterNm attribute를 리턴한다.
* @return the frstRegisterNm
*/
public String getFrstRegisterNm() {
return frstRegisterNm;
}
/**
* frstRegisterNm attribute 값을 설정한다.
* @param frstRegisterNm the frstRegisterNm to set
*/
public void setFrstRegisterNm(String frstRegisterNm) {
this.frstRegisterNm = frstRegisterNm;
}
/**
* lastUpdusrNm attribute를 리턴한다.
* @return the lastUpdusrNm
*/
public String getLastUpdusrNm() {
return lastUpdusrNm;
}
/**
* lastUpdusrNm attribute 값을 설정한다.
* @param lastUpdusrNm the lastUpdusrNm to set
*/
public void setLastUpdusrNm(String lastUpdusrNm) {
this.lastUpdusrNm = lastUpdusrNm;
}
/**
* toString 메소드를 대치한다.
*/
public String toString() {
return ToStringBuilder.reflectionToString(this);
}
}

View File

@ -0,0 +1,54 @@
package egovframework.com.cop.bbs.service.impl;
import org.springframework.stereotype.Repository;
import egovframework.com.cmm.service.impl.EgovComAbstractDAO;
import egovframework.com.cop.bbs.service.BoardMaster;
import egovframework.com.cop.bbs.service.BoardMasterVO;
/**
* 2단계 기능 추가 (댓글관리, 만족도조사) 관리를 위한 데이터 접근 클래스
* @author 공통컴포넌트개발팀 한성곤
* @since 2009.06.26
* @version 1.0
* @see
*
* <pre>
* << 개정이력(Modification Information) >>
*
* 수정일 수정자 수정내용
* ------- -------- ---------------------------
* 2009.06.26 한성곤 최초 생성
*
* </pre>
*/
@Repository("BBSAddedOptionsDAO")
public class BBSAddedOptionsDAO extends EgovComAbstractDAO {
/**
* 신규 게시판 추가기능 정보를 등록한다.
*
* @param BoardMaster
*/
public String insertAddedOptionsInf(BoardMaster boardMaster) throws Exception {
return (String)insert("BBSAddedOptionsDAO.insertAddedOptionsInf", boardMaster);
}
/**
* 게시판 추가기능 정보 건을 상세조회 한다.
*
* @param BoardMasterVO
*/
public BoardMasterVO selectAddedOptionsInf(BoardMaster vo) throws Exception {
return (BoardMasterVO)selectByPk("BBSAddedOptionsDAO.selectAddedOptionsInf", vo);
}
/**
* 게시판 추가기능 정보를 수정한다.
*
* @param BoardMaster
*/
public void updateAddedOptionsInf(BoardMaster boardMaster) throws Exception {
update("BBSAddedOptionsDAO.updateAddedOptionsInf", boardMaster);
}
}

View File

@ -0,0 +1,162 @@
package egovframework.com.cop.bbs.service.impl;
import java.util.List;
import org.springframework.stereotype.Repository;
import egovframework.com.cmm.service.impl.EgovComAbstractDAO;
import egovframework.com.cop.bbs.service.BoardMaster;
import egovframework.com.cop.bbs.service.BoardMasterVO;
/**
* 게시판 속성정보 관리를 위한 데이터 접근 클래스
* @author 공통서비스개발팀 이삼섭
* @since 2009.06.01
* @version 1.0
* @see
*
* <pre>
* << 개정이력(Modification Information) >>
*
* 수정일 수정자 수정내용
* ------- -------- ---------------------------
* 2009.3.12 이삼섭 최초 생성
*
* </pre>
*/
@Repository("BBSAttributeManageDAO")
public class BBSAttributeManageDAO extends EgovComAbstractDAO {
/**
* 등록된 게시판 속성정보를 삭제한다.
*
* @param BoardMaster
*/
public void deleteBBSMasterInf(BoardMaster boardMaster) throws Exception {
update("BBSAttributeManageDAO.deleteBBSMasterInf", boardMaster);
}
/**
* 신규 게시판 속성정보를 등록한다.
*
* @param BoardMaster
*/
public String insertBBSMasterInf(BoardMaster boardMaster) throws Exception {
return (String)insert("BBSAttributeManageDAO.insertBBSMasterInf", boardMaster);
}
/**
* 게시판 속성정보 건을 상세조회 한다.
*
* @param BoardMasterVO
*/
public BoardMasterVO selectBBSMasterInf(BoardMaster vo) throws Exception {
return (BoardMasterVO)selectByPk("BBSAttributeManageDAO.selectBBSMasterInf", vo);
}
/**
* 게시판 속성정보 목록을 조회한다.
*
* @param BoardMasterVO
*/
@SuppressWarnings("unchecked")
public List<BoardMasterVO> selectBBSMasterInfs(BoardMasterVO vo) throws Exception {
return list("BBSAttributeManageDAO.selectBBSMasterInfs", vo);
}
/**
* 게시판 속성정보 목록 숫자를 조회한다
*
* @param vo
* @return
* @throws Exception
*/
public int selectBBSMasterInfsCnt(BoardMasterVO vo) throws Exception {
return (Integer)getSqlMapClientTemplate().queryForObject("BBSAttributeManageDAO.selectBBSMasterInfsCnt", vo);
}
/**
* 게시판 속성정보를 수정한다.
*
* @param BoardMaster
*/
public void updateBBSMasterInf(BoardMaster boardMaster) throws Exception {
update("BBSAttributeManageDAO.updateBBSMasterInf", boardMaster);
}
/**
* 템플릿의 유효여부를 점검한다.
*
* @param BoardMasterVO
*/
public boolean validateTemplate(BoardMasterVO vo) throws Exception {
return true;
}
/**
* 유효한 게시판 목록을 불러온다.
*
* @param vo
* @return
* @throws Exception
*/
@SuppressWarnings("unchecked")
public List<BoardMasterVO> selectAllBBSMasteInf(BoardMasterVO vo) throws Exception {
// 커뮤니티, 동호회의 게시판이 나오지 않도록 COMTNBBSUSE 테이블과 Join 필요
return list("BBSAttributeManageDAO.selectAllBBSMaster", vo);
}
/**
* 사용중인 게시판 속성정보 목록을 조회한다.
*
* @param BoardMasterVO
*/
@SuppressWarnings("unchecked")
public List<BoardMasterVO> selectBdMstrListByTrget(BoardMasterVO vo) throws Exception {
return list("BBSAttributeManageDAO.selectBdMstrListByTrget", vo);
}
/**
* 사용중인 게시판 속성정보 목록 숫자를 조회한다
*
* @param vo
* @return
* @throws Exception
*/
public int selectBdMstrListCntByTrget(BoardMasterVO vo) throws Exception {
return (Integer)getSqlMapClientTemplate().queryForObject("BBSAttributeManageDAO.selectBdMstrListCntByTrget", vo);
}
/**
* 커뮤니티, 동호회등 게시판 사용등록이 게시판 목록 전체를 불러온다.
*
* @param vo
* @return
* @throws Exception
*/
@SuppressWarnings("unchecked")
public List<BoardMasterVO> selectAllBdMstrByTrget(BoardMasterVO vo) throws Exception {
return list("BBSAttributeManageDAO.selectAllBdMstrByTrget", vo);
}
/**
* 사용 중이지 않은 게시판 속성정보 목록을 조회한다.
*
* @param BoardMasterVO
*/
@SuppressWarnings("unchecked")
public List<BoardMasterVO> selectNotUsedBdMstrList(BoardMasterVO vo) throws Exception {
return list("BBSAttributeManageDAO.selectNotUsedBdMstrList", vo);
}
/**
* 사용 중이지 않은 게시판 속성정보 목록 숫자를 조회한다
*
* @param vo
* @return
* @throws Exception
*/
public int selectNotUsedBdMstrListCnt(BoardMasterVO vo) throws Exception {
return (Integer)getSqlMapClientTemplate().queryForObject("BBSAttributeManageDAO.selectNotUsedBdMstrListCnt", vo);
}
}

View File

@ -0,0 +1,86 @@
package egovframework.com.cop.bbs.service.impl;
import java.util.List;
import org.springframework.stereotype.Repository;
import egovframework.com.cmm.service.impl.EgovComAbstractDAO;
import egovframework.com.cop.bbs.service.BoardMaster;
import egovframework.com.cop.bbs.service.BoardMasterVO;
/**
* 게시판 속성정보 관리를 위한 데이터 접근 클래스
* @author 공통컴포넌트개발팀 한성곤
* @since 2009.08.25
* @version 1.0
* @see
*
* <pre>
* << 개정이력(Modification Information) >>
*
* 수정일 수정자 수정내용
* ------- -------- ---------------------------
* 2009.08.25 한성곤 최초 생성
*
* </pre>
*/
@Repository("BBSLoneMasterDAO")
public class BBSLoneMasterDAO extends EgovComAbstractDAO {
/**
* 등록된 게시판 속성정보를 삭제한다.
*
* @param BoardMaster
*/
public void deleteMaster(BoardMaster boardMaster) throws Exception {
update("BBSLoneMasterDAO.deleteMaster", boardMaster);
}
/**
* 신규 게시판 속성정보를 등록한다.
*
* @param BoardMaster
*/
public String insertMaster(BoardMaster boardMaster) throws Exception {
return (String)insert("BBSLoneMasterDAO.insertMaster", boardMaster);
}
/**
* 게시판 속성정보 건을 상세조회 한다.
*
* @param BoardMasterVO
*/
public BoardMasterVO selectMaster(BoardMaster vo) throws Exception {
return (BoardMasterVO)selectByPk("BBSLoneMasterDAO.selectMaster", vo);
}
/**
* 게시판 속성정보 목록을 조회한다.
*
* @param BoardMasterVO
*/
@SuppressWarnings("unchecked")
public List<BoardMasterVO> selectMasterList(BoardMasterVO vo) throws Exception {
return list("BBSLoneMasterDAO.selectMasterList", vo);
}
/**
* 게시판 속성정보 목록 숫자를 조회한다
*
* @param vo
* @return
* @throws Exception
*/
public int selectMasterListCnt(BoardMasterVO vo) throws Exception {
return (Integer)getSqlMapClientTemplate().queryForObject("BBSLoneMasterDAO.selectMasterListCnt", vo);
}
/**
* 게시판 속성정보를 수정한다.
*
* @param BoardMaster
*/
public void updateMaster(BoardMaster boardMaster) throws Exception {
update("BBSLoneMasterDAO.updateMaster", boardMaster);
}
}

View File

@ -0,0 +1,580 @@
package egovframework.com.cop.bbs.service.impl;
import java.util.Iterator;
import java.util.List;
import kr.or.arko.mnt.biz.data.service.DataVO;
import org.springframework.stereotype.Repository;
import egovframework.com.cmm.service.impl.EgovComAbstractDAO;
import egovframework.com.cop.bbs.service.Board;
import egovframework.com.cop.bbs.service.BoardVO;
/**
* 게시물 관리를 위한 데이터 접근 클래스
* @author 공통서비스개발팀 이삼섭
* @since 2009.06.01
* @version 1.0
* @see
*
* <pre>
* << 개정이력(Modification Information) >>
*
* 수정일 수정자 수정내용
* ------- -------- ---------------------------
* 2009.3.19 이삼섭 최초 생성
* 2011.09.22 서준식 nttId IdGen 서비스로 변경
* </pre>
*/
@Repository("BBSManageDAO")
public class BBSManageDAO extends EgovComAbstractDAO {
/**
* 게시판에 게시물을 등록 한다.
*
* @param board
* @throws Exception
*/
public void insertBoardArticle(Board board) throws Exception {
//long nttId = (Long)getSqlMapClientTemplate().queryForObject("BBSManageDAO.selectMaxNttId");//2011.09.22
//board.setNttId(nttId);//2011.09.22
insert("BBSManageDAO.insertBoardArticle", board);
}
/**
* 게시판에 답변 게시물을 등록 한다.
*
* @param board
* @throws Exception
*/
public long replyBoardArticle(Board board) throws Exception {
long nttId = (Long)getSqlMapClientTemplate().queryForObject("BBSManageDAO.selectMaxNttId");
board.setNttId(nttId);
insert("BBSManageDAO.replyBoardArticle", board);
//----------------------------------------------------------
// 현재 이후 게시물에 대한 NTT_NO를 증가 (정렬을 추가하기 위해)
//----------------------------------------------------------
//String parentId = board.getParnts();
long nttNo = (Long)getSqlMapClientTemplate().queryForObject("BBSManageDAO.getParentNttNo", board);
board.setNttNo(nttNo);
update("BBSManageDAO.updateOtherNttNo", board);
board.setNttNo(nttNo + 1);
update("BBSManageDAO.updateNttNo", board);
return nttId;
}
/**
* 게시물 건에 대하여 상세 내용을 조회 한다.
*
* @param boardVO
* @return
* @throws Exception
*/
public BoardVO selectBoardArticle(BoardVO boardVO) throws Exception {
return (BoardVO)selectByPk("BBSManageDAO.selectBoardArticle", boardVO);
}
/**
* 공지사항 게시물 건에 대하여 상세 내용을 조회 한다.
*
* @param boardVO
* @return
* @throws Exception
*/
public BoardVO selectNoticeBoardArticle(BoardVO boardVO) throws Exception {
return (BoardVO)selectByPk("BBSManageDAO.selectNoticeBoardArticle", boardVO);
}
/**
* 묻고답하기 게시물 건에 대하여 상세 내용을 조회 한다.
*
* @param boardVO
* @return
* @throws Exception
*/
public BoardVO selectQnABoardArticle(BoardVO boardVO) throws Exception {
return (BoardVO)selectByPk("BBSManageDAO.selectQnABoardArticle", boardVO);
}
/**
* 커뮤니티 게시물 건에 대하여 상세 내용을 조회 한다.
*
* @param boardVO
* @return
* @throws Exception
*/
public BoardVO selectCommBoardArticle(BoardVO boardVO) throws Exception {
return (BoardVO)selectByPk("BBSManageDAO.selectCommBoardArticle", boardVO);
}
/**
* 자주하는질문 게시물 건에 대하여 상세 내용을 조회 한다.
*
* @param boardVO
* @return
* @throws Exception
*/
public BoardVO selectFAQBoardArticle(BoardVO boardVO) throws Exception {
return (BoardVO)selectByPk("BBSManageDAO.selectFAQBoardArticle", boardVO);
}
/**
* 조건에 맞는 게시물 목록을 조회 한다.
*
* @param boardVO
* @return
* @throws Exception
*/
@SuppressWarnings("unchecked")
public List<BoardVO> selectBoardArticleList(BoardVO boardVO) throws Exception {
return list("BBSManageDAO.selectBoardArticleList", boardVO);
}
@SuppressWarnings("unchecked")
public List<BoardVO> selectBoardArticleTopList(BoardVO boardVO) throws Exception {
return list("BBSManageDAO.selectBoardArticleTopList", boardVO);
}
/**
* 공지사항 게시물 목록을 조회 한다.
*
* @param boardVO
* @return
* @throws Exception
*/
@SuppressWarnings("unchecked")
public List<BoardVO> selectNoticeBoardArticleList(BoardVO boardVO) throws Exception {
return list("BBSManageDAO.selectNoticeBoardArticleList", boardVO);
}
/**
* 묻고답하기 게시물 목록을 조회 한다.
*
* @param boardVO
* @return
* @throws Exception
*/
@SuppressWarnings("unchecked")
public List<BoardVO> selectQnABoardArticleList(BoardVO boardVO) throws Exception {
return list("BBSManageDAO.selectQnABoardArticleList", boardVO);
}
/**
* 커뮤니티 게시물 목록을 조회 한다.
*
* @param boardVO
* @return
* @throws Exception
*/
@SuppressWarnings("unchecked")
public List<BoardVO> selectCommBoardArticleList(BoardVO boardVO) throws Exception {
return list("BBSManageDAO.selectCommBoardArticleList", boardVO);
}
/**
* 자주하는질문 게시물 목록을 조회 한다.
*
* @param boardVO
* @return
* @throws Exception
*/
@SuppressWarnings("unchecked")
public List<BoardVO> selectFAQBoardArticleList(BoardVO boardVO) throws Exception {
return list("BBSManageDAO.selectFAQBoardArticleList", boardVO);
}
/**
* 조건에 맞는 게시물 목록에 대한 전체 건수를 조회 한다.
*
* @param boardVO
* @return
* @throws Exception
*/
public int selectBoardArticleListCnt(BoardVO boardVO) throws Exception {
return (Integer)getSqlMapClientTemplate().queryForObject("BBSManageDAO.selectBoardArticleListCnt", boardVO);
}
/**
* 공지사항 게시물 목록에 대한 전체 건수를 조회 한다.
*
* @param boardVO
* @return
* @throws Exception
*/
public int selectNoticeBoardArticleListCnt(BoardVO boardVO) throws Exception {
return (Integer)getSqlMapClientTemplate().queryForObject("BBSManageDAO.selectNoticeBoardArticleListCnt", boardVO);
}
/**
* 묻고답하기 게시물 목록에 대한 전체 건수를 조회 한다.
*
* @param boardVO
* @return
* @throws Exception
*/
public int selectQnABoardArticleListCnt(BoardVO boardVO) throws Exception {
return (Integer)getSqlMapClientTemplate().queryForObject("BBSManageDAO.selectQnABoardArticleListCnt", boardVO);
}
/**
* 커뮤니티 게시물 목록에 대한 전체 건수를 조회 한다.
*
* @param boardVO
* @return
* @throws Exception
*/
public int selectCommBoardArticleListCnt(BoardVO boardVO) throws Exception {
return (Integer)getSqlMapClientTemplate().queryForObject("BBSManageDAO.selectCommBoardArticleListCnt", boardVO);
}
/**
* 자주하는질문 게시물 목록에 대한 전체 건수를 조회 한다.
*
* @param boardVO
* @return
* @throws Exception
*/
public int selectFAQBoardArticleListCnt(BoardVO boardVO) throws Exception {
return (Integer)getSqlMapClientTemplate().queryForObject("BBSManageDAO.selectFAQBoardArticleListCnt", boardVO);
}
/**
* 게시물 건의 내용을 수정 한다.
*
* @param board
* @throws Exception
*/
public void updateBoardArticle(Board board) throws Exception {
update("BBSManageDAO.updateBoardArticle", board);
}
/**
* 게시물 건을 삭제 한다.
*
* @param board
* @throws Exception
*/
public void deleteBoardArticle(Board board) throws Exception {
update("BBSManageDAO.deleteBoardArticle", board);
}
/**
* 임시 게시물 건을 삭제 한다.
*
* @param board
* @throws Exception
*/
public void deleteMobBoardArticle(Board board) throws Exception {
update("BBSManageDAO.deleteMobBoardArticle", board);
}
/**
* 게시물에 대한 조회 건수를 수정 한다.
*
* @param board
* @throws Exception
*/
public void updateInqireCo(BoardVO boardVO) throws Exception {
update("BBSManageDAO.updateInqireCo", boardVO);
}
/**
* 게시물에 대한 현재 조회 건수를 조회 한다.
*
* @param boardVO
* @return
* @throws Exception
*/
public int selectMaxInqireCo(BoardVO boardVO) throws Exception {
return (Integer)getSqlMapClientTemplate().queryForObject("BBSManageDAO.selectMaxInqireCo", boardVO);
}
/**
* 게시판에 대한 목록을 정렬 순서로 조회 한다.
*
* @param boardVO
* @return
* @throws Exception
*/
@SuppressWarnings("unchecked")
public List<BoardVO> selectNoticeListForSort(Board board) throws Exception {
return list("BBSManageDAO.selectNoticeListForSort", board);
}
/**
* 게사판에 대한 정렬 순서를 수정 한다.
*
* @param sortList
* @throws Exception
*/
public void updateSortOrder(List<BoardVO> sortList) throws Exception {
BoardVO vo;
Iterator<BoardVO> iter = sortList.iterator();
while (iter.hasNext()) {
vo = (BoardVO)iter.next();
update("BBSManageDAO.updateSortOrder", vo);
}
}
/**
* 게시판에 대한 현재 게시물 번호의 최대값을 구한다.
*
* @param boardVO
* @return
* @throws Exception
*/
public long selectNoticeItemForSort(Board board) throws Exception {
return (Long)getSqlMapClientTemplate().queryForObject("BBSManageDAO.selectNoticeItemForSort", board);
}
/**
* 방명록에 대한 목록을 조회 한다.
*
* @param boardVO
* @return
* @throws Exception
*/
@SuppressWarnings("unchecked")
public List<BoardVO> selectGuestList(BoardVO boardVO) throws Exception {
return list("BBSManageDAO.selectGuestList", boardVO);
}
/**
* 방명록에 대한 목록 건수를 조회 한다.
*
* @param boardVO
* @return
* @throws Exception
*/
public int selectGuestListCnt(BoardVO boardVO) throws Exception {
return (Integer)getSqlMapClientTemplate().queryForObject("BBSManageDAO.selectGuestListCnt", boardVO);
}
/**
* 방명록 내용을 삭제 한다.
*
* @param boardVO
* @throws Exception
*/
public void deleteGuestList(BoardVO boardVO) throws Exception {
update("BBSManageDAO.deleteGuestList", boardVO);
}
/**
* 방명록에 대한 패스워드를 조회 한다.
*
* @param board
* @return
* @throws Exception
*/
public String getPasswordInf(Board board) throws Exception {
return (String)getSqlMapClientTemplate().queryForObject("BBSManageDAO.getPasswordInf", board);
}
/**
* 조건에 맞는 top공지 게시물 목록을 조회 한다.
*
* @param boardVO
* @return
* @throws Exception
*/
@SuppressWarnings("unchecked")
public List<BoardVO> selectBoardTopArticleList(BoardVO boardVO) throws Exception {
return list("BBSManageDAO.selectBoardTopArticleList", boardVO);
}
/**
* 공지사항 top공지 게시물 목록을 조회 한다.
*
* @param boardVO
* @return
* @throws Exception
*/
@SuppressWarnings("unchecked")
public List<BoardVO> selectNoticeBoardTopArticleList(BoardVO boardVO) throws Exception {
return list("BBSManageDAO.selectNoticeBoardTopArticleList", boardVO);
}
/**
* 조건에 맞는 top공지 게시물 목록에 대한 전체 건수를 조회 한다.
*
* @param boardVO
* @return
* @throws Exception
*/
public int selectBoardTopArticleListCnt(BoardVO boardVO) throws Exception {
return (Integer)getSqlMapClientTemplate().queryForObject("BBSManageDAO.selectBoardTopArticleListCnt", boardVO);
}
/**
* 공지사항 top공지 게시물 목록에 대한 전체 건수를 조회 한다.
*
* @param boardVO
* @return
* @throws Exception
*/
public int selectNoticeBoardTopArticleListCnt(BoardVO boardVO) throws Exception {
return (Integer)getSqlMapClientTemplate().queryForObject("BBSManageDAO.selectNoticeBoardTopArticleListCnt", boardVO);
}
/**
* 게시물 건에 대하여 이전글의 정보를 조회 한다.
*
* @param boardVO
* @return
* @throws Exception
*/
public BoardVO selectBoardArticlePrev(BoardVO boardVO) throws Exception {
return (BoardVO)selectByPk("BBSManageDAO.selectBoardArticlePrev", boardVO);
}
/**
* 게시물 건에 대하여 다음글의 정보를 조회 한다.
*
* @param boardVO
* @return
* @throws Exception
*/
public BoardVO selectBoardArticleNext(BoardVO boardVO) throws Exception {
return (BoardVO)selectByPk("BBSManageDAO.selectBoardArticleNext", boardVO);
}
/**
* 공지사항 게시물 건에 대하여 이전글의 정보를 조회 한다.
*
* @param boardVO
* @return
* @throws Exception
*/
public BoardVO selectNoticeBoardArticlePrev(BoardVO boardVO) throws Exception {
return (BoardVO)selectByPk("BBSManageDAO.selectNoticeBoardArticlePrev", boardVO);
}
/**
* 공지사항 게시물 건에 대하여 다음글의 정보를 조회 한다.
*
* @param boardVO
* @return
* @throws Exception
*/
public BoardVO selectNoticeBoardArticleNext(BoardVO boardVO) throws Exception {
return (BoardVO)selectByPk("BBSManageDAO.selectNoticeBoardArticleNext", boardVO);
}
/**
* 묻고답하기 게시물 건에 대하여 이전글의 정보를 조회 한다.
*
* @param boardVO
* @return
* @throws Exception
*/
public BoardVO selectQnABoardArticlePrev(BoardVO boardVO) throws Exception {
return (BoardVO)selectByPk("BBSManageDAO.selectQnABoardArticlePrev", boardVO);
}
/**
* 묻고답하기 게시물 건에 대하여 다음글의 정보를 조회 한다.
*
* @param boardVO
* @return
* @throws Exception
*/
public BoardVO selectQnABoardArticleNext(BoardVO boardVO) throws Exception {
return (BoardVO)selectByPk("BBSManageDAO.selectQnABoardArticleNext", boardVO);
}
/**
* 커뮤니티 게시물 건에 대하여 이전글의 정보를 조회 한다.
*
* @param boardVO
* @return
* @throws Exception
*/
public BoardVO selectCommBoardArticlePrev(BoardVO boardVO) throws Exception {
return (BoardVO)selectByPk("BBSManageDAO.selectCommBoardArticlePrev", boardVO);
}
/**
* 커뮤니티 게시물 건에 대하여 다음글의 정보를 조회 한다.
*
* @param boardVO
* @return
* @throws Exception
*/
public BoardVO selectCommBoardArticleNext(BoardVO boardVO) throws Exception {
return (BoardVO)selectByPk("BBSManageDAO.selectCommBoardArticleNext", boardVO);
}
/**
* 자주하는질문 게시물 건에 대하여 이전글의 정보를 조회 한다.
*
* @param boardVO
* @return
* @throws Exception
*/
public BoardVO selectFAQBoardArticlePrev(BoardVO boardVO) throws Exception {
return (BoardVO)selectByPk("BBSManageDAO.selectFAQBoardArticlePrev", boardVO);
}
/**
* 자주하는질문 게시물 건에 대하여 다음글의 정보를 조회 한다.
*
* @param boardVO
* @return
* @throws Exception
*/
public BoardVO selectFAQBoardArticleNext(BoardVO boardVO) throws Exception {
return (BoardVO)selectByPk("BBSManageDAO.selectFAQBoardArticleNext", boardVO);
}
/**
* 조건에 맞는 게시물 답변 목록을 조회 한다.
*
* @param boardVO
* @return
* @throws Exception
*/
@SuppressWarnings("unchecked")
public List<BoardVO> selectBoardReplyArticleList(BoardVO boardVO) throws Exception {
return list("BBSManageDAO.selectBoardReplyArticleList", boardVO);
}
/**
* 메인에 보여줄 게시물 목록을 조회 한다.
*
* @param boardVO
* @return
* @throws Exception
*/
@SuppressWarnings("unchecked")
public List<BoardVO> selectMainBoard(BoardVO boardVO) throws Exception {
return list("BBSManageDAO.selectMainBoard", boardVO);
}
/**
* 가장많이 본글을 조회 한다.
*
* @param boardVO
* @return
* @throws Exception
*/
@SuppressWarnings("unchecked")
public List<BoardVO> selectReadBoard(BoardVO boardVO) throws Exception {
return list("BBSManageDAO.selectReadBoard", boardVO);
}
/** 엑셀 다운 */
@SuppressWarnings("unchecked")
public List<BoardVO> selectExcelBoardArticles(BoardVO boardVO) throws Exception {
return list("BBSManageDAO.selectExcelBoardArticleList", boardVO);
}
}

View File

@ -0,0 +1,136 @@
package egovframework.com.cop.bbs.service.impl;
import java.util.List;
import org.springframework.stereotype.Repository;
import egovframework.com.cmm.service.impl.EgovComAbstractDAO;
import egovframework.com.cop.bbs.service.BoardUseInf;
import egovframework.com.cop.bbs.service.BoardUseInfVO;
/**
* 게시판 이용정보를 관리하기 위한 데이터 접근 클래스
* @author 공통서비스개발팀 이삼섭
* @since 2009.06.01
* @version 1.0
* @see
*
* <pre>
* << 개정이력(Modification Information) >>
*
* 수정일 수정자 수정내용
* ------- -------- ---------------------------
* 2009.4.2 이삼섭 최초 생성
* 2011.07.27 안민정 동호회, 커뮤니티 로직 분리 (BBSUseInfoManageDAO -> BBSCmyUseInfoManageDAO)
*
* </pre>
*/
@Repository("BBSUseInfoManageDAO")
public class BBSUseInfoManageDAO extends EgovComAbstractDAO {
/**
* 게시판 사용 정보를 삭제한다.
*
* @param bdUseInf
* @throws Exception
*/
public void deleteBBSUseInf(BoardUseInf bdUseInf) throws Exception {
update("BBSUseInfoManageDAO.deleteBBSUseInf", bdUseInf);
}
/**
* 게시판 사용정보를 등록한다.
*
* @param bdUseInf
* @throws Exception
*/
public void insertBBSUseInf(BoardUseInf bdUseInf) throws Exception {
insert("BBSUseInfoManageDAO.insertBBSUseInf", bdUseInf);
}
/**
* 게시판 사용정보 목록을 조회한다.
*
* @param bdUseVO
* @return
* @throws Exception
*/
@SuppressWarnings("unchecked")
public List<BoardUseInfVO> selectBBSUseInfs(BoardUseInfVO bdUseVO) throws Exception {
return list("BBSUseInfoManageDAO.selectBBSUseInfs", bdUseVO);
}
/**
*
* @param bdUseVO
* @return
* @throws Exception
*/
public int selectBBSUseInfsCnt(BoardUseInfVO bdUseVO) throws Exception {
return (Integer)getSqlMapClientTemplate().queryForObject("BBSUseInfoManageDAO.selectBBSUseInfsCnt", bdUseVO);
}
/**
* 게시판 사용정보에 대한 상세정보를 조회한다.
*
* @param bdUseVO
* @return
* @throws Exception
*/
public BoardUseInfVO selectBBSUseInf(BoardUseInfVO bdUseVO) throws Exception {
return (BoardUseInfVO)selectByPk("BBSUseInfoManageDAO.selectBBSUseInf", bdUseVO);
}
/**
* 게시판 사용정보를 수정한다.
*
* @param bdUseInf
* @throws Exception
*/
public void updateBBSUseInf(BoardUseInf bdUseInf) throws Exception {
update("BBSUseInfoManageDAO.updateBBSUseInf", bdUseInf);
}
/**
* 게시판에 대한 사용정보를 삭제한다.
*
* @param bdUseInf
* @throws Exception
*/
public void deleteBBSUseInfByBoardId(BoardUseInf bdUseInf) throws Exception {
update("BBSUseInfoManageDAO.deleteBBSUseInfByBoardId", bdUseInf);
}
/**
* 커뮤니티, 동호회에 사용되는 게시판 사용정보에 대한 목록을 조회한다.
*
* @param bdUseVO
* @return
* @throws Exception
*/
@SuppressWarnings("unchecked")
public List<BoardUseInfVO> selectBBSUseInfsByTrget(BoardUseInfVO bdUseVO) throws Exception {
return list("BBSUseInfoManageDAO.selectBBSUseInfsByTrget", bdUseVO);
}
/**
* 커뮤니티, 동호회에 사용되는 게시판 사용정보에 대한 전체 건수를 조회한다.
*
* @param bdUseVO
* @return
* @throws Exception
*/
public int selectBBSUseInfsCntByTrget(BoardUseInfVO bdUseVO) throws Exception {
return (Integer)getSqlMapClientTemplate().queryForObject("BBSUseInfoManageDAO.selectBBSUseInfsCntByTrget", bdUseVO);
}
/**
* 커뮤니티, 동호회에 사용되는 게시판 사용정보를 수정한다.
*
* @param bdUseInf
* @throws Exception
*/
public void updateBBSUseInfByTrget(BoardUseInf bdUseInf) throws Exception {
update("BBSUseInfoManageDAO.updateBBSUseInfByTrget", bdUseInf);
}
}

View File

@ -0,0 +1,284 @@
package egovframework.com.cop.bbs.service.impl;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import egovframework.com.cmm.EgovComponentChecker;
import egovframework.com.cop.bbs.service.BoardMaster;
import egovframework.com.cop.bbs.service.BoardMasterVO;
import egovframework.com.cop.bbs.service.BoardUseInf;
import egovframework.com.cop.bbs.service.EgovBBSAttributeManageService;
import egovframework.com.cop.com.service.EgovUserInfManageService;
import egovframework.com.cop.com.service.UserInfVO;
import egovframework.rte.fdl.cmmn.AbstractServiceImpl;
import egovframework.rte.fdl.idgnr.EgovIdGnrService;
/**
* 게시판 속성관리를 위한 서비스 구현 클래스
* @author 공통서비스개발팀 이삼섭
* @since 2009.06.01
* @version 1.0
* @see
*
* <pre>
* << 개정이력(Modification Information) >>
*
* 수정일 수정자 수정내용
* ------- -------- ---------------------------
* 2009.3.24 이삼섭 최초 생성
* 2009.06.26 한성곤 2단계 기능 추가 (댓글관리, 만족도조사)
* 2011.09.15 서준식 댓글, 만족도 조사 적용 방법 변경
* </pre>
*/
@Service("EgovBBSAttributeManageService")
public class EgovBBSAttributeManageServiceImpl extends AbstractServiceImpl implements EgovBBSAttributeManageService {
@Resource(name = "BBSAttributeManageDAO")
private BBSAttributeManageDAO attrbMngDAO;
@Resource(name = "BBSUseInfoManageDAO")
private BBSUseInfoManageDAO bbsUseDAO;
@Resource(name = "EgovUserInfManageService")
private EgovUserInfManageService userService;
@Resource(name = "egovBBSMstrIdGnrService")
private EgovIdGnrService idgenService;
//---------------------------------
// 2009.06.26 : 2단계 기능 추가
//---------------------------------
@Resource(name = "BBSAddedOptionsDAO")
private BBSAddedOptionsDAO addedOptionsDAO;
////-------------------------------
/**
* 등록된 게시판 속성정보를 삭제한다.
*
* @see egovframework.com.cop.bbs.brd.service.EgovBBSAttributeManageService#deleteBBSMasterInf(egovframework.com.cop.bbs.brd.service.BoardMaster)
*/
public void deleteBBSMasterInf(BoardMaster boardMaster) throws Exception {
attrbMngDAO.deleteBBSMasterInf(boardMaster);
BoardUseInf bdUseInf = new BoardUseInf();
bdUseInf.setBbsId(boardMaster.getBbsId());
bdUseInf.setLastUpdusrId(boardMaster.getLastUpdusrId());
bbsUseDAO.deleteBBSUseInfByBoardId(bdUseInf);
}
/**
* 신규 게시판 속성정보를 생성한다.
*
* @see egovframework.com.cop.bbs.brd.service.EgovBBSAttributeManageService#insertBBSMastetInf(egovframework.com.cop.bbs.brd.service.BoardMaster)
*/
public String insertBBSMastetInf(BoardMaster boardMaster) throws Exception {
String bbsId = idgenService.getNextStringId();
boardMaster.setBbsId(bbsId);
attrbMngDAO.insertBBSMasterInf(boardMaster);
//---------------------------------
// 2009.06.26 : 2단계 기능 추가
//---------------------------------
if (boardMaster.getOption().equals("comment") || boardMaster.getOption().equals("stsfdg")) {
addedOptionsDAO.insertAddedOptionsInf(boardMaster);
}
////-------------------------------
if ("Y".equals(boardMaster.getBbsUseFlag())) {
BoardUseInf bdUseInf = new BoardUseInf();
bdUseInf.setBbsId(bbsId);
bdUseInf.setTrgetId(boardMaster.getTrgetId());
bdUseInf.setRegistSeCode(boardMaster.getRegistSeCode());
bdUseInf.setFrstRegisterId(boardMaster.getFrstRegisterId());
bdUseInf.setUseAt("Y");
bbsUseDAO.insertBBSUseInf(bdUseInf);
UserInfVO userVO = new UserInfVO();
userVO.setTrgetId(boardMaster.getTrgetId());
List<UserInfVO> tmpList = null;
Iterator<UserInfVO> iter = null;
if ("REGC05".equals(boardMaster.getRegistSeCode())) {
tmpList = userService.selectAllClubUser(userVO);
iter = tmpList.iterator();
while (iter.hasNext()) {
bdUseInf = new BoardUseInf();
bdUseInf.setBbsId(bbsId);
bdUseInf.setTrgetId(((UserInfVO)iter.next()).getUniqId());
bdUseInf.setRegistSeCode("REGC07");
bdUseInf.setUseAt("Y");
bdUseInf.setFrstRegisterId(boardMaster.getFrstRegisterId());
bbsUseDAO.insertBBSUseInf(bdUseInf);
}
} else if ("REGC06".equals(boardMaster.getRegistSeCode())) {
tmpList = userService.selectAllCmmntyUser(userVO);
iter = tmpList.iterator();
while (iter.hasNext()) {
bdUseInf = new BoardUseInf();
bdUseInf.setBbsId(bbsId);
bdUseInf.setTrgetId(((UserInfVO)iter.next()).getUniqId());
bdUseInf.setRegistSeCode("REGC07");
bdUseInf.setUseAt("Y");
bdUseInf.setFrstRegisterId(boardMaster.getFrstRegisterId());
bbsUseDAO.insertBBSUseInf(bdUseInf);
}
}
}
return bbsId;
}
/**
* 게시판 속성 정보의 목록을 조회 한다.
*
* @see egovframework.com.cop.bbs.brd.service.EgovBBSAttributeManageService#selectAllBBSMasteInf(egovframework.com.cop.bbs.brd.service.BoardMasterVO)
*/
public List<BoardMasterVO> selectAllBBSMasteInf(BoardMasterVO vo) throws Exception {
return attrbMngDAO.selectAllBBSMasteInf(vo);
}
/**
* 게시판 속성정보 건을 상세조회한다.
*
* @see egovframework.com.cop.bbs.brd.service.EgovBBSAttributeManageService#selectBBSMasterInf(egovframework.com.cop.bbs.brd.service.BoardMasterVO)
*/
public BoardMasterVO selectBBSMasterInf(BoardMaster searchVO) throws Exception {
//---------------------------------
// 2009.06.26 : 2단계 기능 추가
//---------------------------------
//return attrbMngDAO.selectBBSMasterInf(searchVO);
BoardMasterVO result = attrbMngDAO.selectBBSMasterInf(searchVO);
//String flag = EgovProperties.getProperty("Globals.addedOptions");
//if (flag != null && flag.trim().equalsIgnoreCase("true")) {
if(EgovComponentChecker.hasComponent("EgovBBSCommentService") || EgovComponentChecker.hasComponent("EgovBBSSatisfactionService")){//2011.09.15
BoardMasterVO options = addedOptionsDAO.selectAddedOptionsInf(searchVO);
if (options != null) {
if (options.getCommentAt().equals("Y")) {
result.setOption("comment");
}
if (options.getStsfdgAt().equals("Y")) {
result.setOption("stsfdg");
}
} else {
result.setOption("na"); // 미지정 상태로 수정 가능 (이미 지정된 경우는 수정 불가로 처리)
}
}
return result;
////-------------------------------
}
/**
* 게시판 속성 정보의 목록을 조회 한다.
*
* @see egovframework.com.cop.bbs.brd.service.EgovBBSAttributeManageService#selectBBSMasterInfs(egovframework.com.cop.bbs.brd.service.BoardMasterVO)
*/
public Map<String, Object> selectBBSMasterInfs(BoardMasterVO searchVO) throws Exception {
List<BoardMasterVO> result = attrbMngDAO.selectBBSMasterInfs(searchVO);
int cnt = attrbMngDAO.selectBBSMasterInfsCnt(searchVO);
Map<String, Object> map = new HashMap<String, Object>();
map.put("resultList", result);
map.put("resultCnt", Integer.toString(cnt));
return map;
}
/**
* 게시판 속성정보를 수정한다.
*
* @see egovframework.com.cop.bbs.brd.service.EgovBBSAttributeManageService#updateBBSMasterInf(egovframework.com.cop.bbs.brd.service.BoardMaster)
*/
public void updateBBSMasterInf(BoardMaster boardMaster) throws Exception {
attrbMngDAO.updateBBSMasterInf(boardMaster);
//---------------------------------
// 2009.06.26 : 2단계 기능 추가
//---------------------------------
if (boardMaster.getOption().equals("comment") || boardMaster.getOption().equals("stsfdg")) {
if (boardMaster.getOption().equals("na")) {
return;
}
BoardMasterVO options = addedOptionsDAO.selectAddedOptionsInf(boardMaster);
if (options == null) {
boardMaster.setFrstRegisterId(boardMaster.getLastUpdusrId());
addedOptionsDAO.insertAddedOptionsInf(boardMaster);
} else {
//수정 기능 제외 (새롭게 선택사항을 지정한 insert만 처리함)
//addedOptionsDAO.updateAddedOptionsInf(boardMaster);
log.debug("BBS Master update ignored...");
}
}
////-------------------------------
}
/**
* 템플릿의 유효여부를 점검한다.
*
* @see egovframework.com.cop.bbs.brd.service.EgovBBSAttributeManageService#validateTemplate(egovframework.com.cop.bbs.brd.service.BoardMasterVO)
*/
public void validateTemplate(BoardMasterVO searchVO) throws Exception {
log.debug("validateTemplate method ignored...");
}
/**
* 사용중인 게시판 속성 정보의 목록을 조회 한다.
*/
public Map<String, Object> selectBdMstrListByTrget(BoardMasterVO vo) throws Exception {
List<BoardMasterVO> result = attrbMngDAO.selectBdMstrListByTrget(vo);
int cnt = attrbMngDAO.selectBdMstrListCntByTrget(vo);
Map<String, Object> map = new HashMap<String, Object>();
map.put("resultList", result);
map.put("resultCnt", Integer.toString(cnt));
return map;
}
/**
* 커뮤니티, 동호회에서 사용중인 게시판 속성 정보의 목록을 전체조회 한다.
*/
public List<BoardMasterVO> selectAllBdMstrByTrget(BoardMasterVO vo) throws Exception {
return attrbMngDAO.selectAllBdMstrByTrget(vo);
}
/**
* 사용중이지 않은 게시판 속성 정보의 목록을 조회 한다.
*/
public Map<String, Object> selectNotUsedBdMstrList(BoardMasterVO searchVO) throws Exception {
List<BoardMasterVO> result = attrbMngDAO.selectNotUsedBdMstrList(searchVO);
int cnt = attrbMngDAO.selectNotUsedBdMstrListCnt(searchVO);
Map<String, Object> map = new HashMap<String, Object>();
map.put("resultList", result);
map.put("resultCnt", Integer.toString(cnt));
return map;
}
}

View File

@ -0,0 +1,114 @@
package egovframework.com.cop.bbs.service.impl;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import egovframework.com.cop.bbs.service.BoardMaster;
import egovframework.com.cop.bbs.service.BoardMasterVO;
import egovframework.com.cop.bbs.service.BoardUseInf;
import egovframework.com.cop.bbs.service.EgovBBSLoneMasterService;
import egovframework.rte.fdl.cmmn.AbstractServiceImpl;
import egovframework.rte.fdl.idgnr.EgovIdGnrService;
/**
* 게시판 속성관리를 위한 서비스 구현 클래스
* @author 공통컴포넌트개발팀 한성곤
* @since 2009.08.25
* @version 1.0
* @see
*
* <pre>
* << 개정이력(Modification Information) >>
*
* 수정일 수정자 수정내용
* ------- -------- ---------------------------
* 2009.08.25 한성곤 최초 생성
*
* </pre>
*/
@Service("EgovBBSLoneMasterService")
public class EgovBBSLoneMasterServiceImpl extends AbstractServiceImpl implements EgovBBSLoneMasterService {
@Resource(name = "BBSLoneMasterDAO")
private BBSLoneMasterDAO masterDAO;
@Resource(name = "BBSUseInfoManageDAO")
private BBSUseInfoManageDAO bbsUseDAO;
@Resource(name = "egovBBSMstrIdGnrService")
private EgovIdGnrService idgenService;
/**
* 등록된 게시판 속성정보를 삭제한다.
*/
public void deleteMaster(BoardMaster boardMaster) throws Exception {
masterDAO.deleteMaster(boardMaster);
BoardUseInf bdUseInf = new BoardUseInf();
bdUseInf.setBbsId(boardMaster.getBbsId());
bdUseInf.setLastUpdusrId(boardMaster.getLastUpdusrId());
bbsUseDAO.deleteBBSUseInfByBoardId(bdUseInf);
}
/**
* 신규 게시판 속성정보를 생성한다.
*/
public String insertMaster(BoardMaster boardMaster) throws Exception {
String bbsId = idgenService.getNextStringId();
boardMaster.setBbsId(bbsId);
masterDAO.insertMaster(boardMaster);
//----------------------------------------------
// 게시판 사용 등록 (시스템)
//----------------------------------------------
BoardUseInf bdUseInf = new BoardUseInf();
bdUseInf.setBbsId(bbsId);
bdUseInf.setTrgetId("SYSTEM_DEFAULT_BOARD");
bdUseInf.setRegistSeCode("REGC01");
bdUseInf.setFrstRegisterId(boardMaster.getFrstRegisterId());
bdUseInf.setUseAt("Y");
bbsUseDAO.insertBBSUseInf(bdUseInf);
return bbsId;
}
/**
* 게시판 속성정보 건을 상세조회한다.
*/
public BoardMasterVO selectMaster(BoardMaster searchVO) throws Exception {
return masterDAO.selectMaster(searchVO);
}
/**
* 게시판 속성 정보의 목록을 조회 한다.
*/
public Map<String, Object> selectMasterList(BoardMasterVO searchVO) throws Exception {
List<BoardMasterVO> result = masterDAO.selectMasterList(searchVO);
int cnt = masterDAO.selectMasterListCnt(searchVO);
Map<String, Object> map = new HashMap<String, Object>();
map.put("resultList", result);
map.put("resultCnt", Integer.toString(cnt));
return map;
}
/**
* 게시판 속성정보를 수정한다.
*/
public void updateMaster(BoardMaster boardMaster) throws Exception {
masterDAO.updateMaster(boardMaster);
}
}

View File

@ -0,0 +1,694 @@
package egovframework.com.cop.bbs.service.impl;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
import kr.or.arko.mnt.biz.data.service.DataVO;
import org.apache.log4j.Logger;
import org.springframework.stereotype.Service;
import egovframework.com.cmm.service.EgovFileMngService;
import egovframework.com.cmm.service.FileVO;
import egovframework.com.cop.bbs.service.Board;
import egovframework.com.cop.bbs.service.BoardVO;
import egovframework.com.cop.bbs.service.EgovBBSManageService;
import egovframework.com.utl.fcc.service.EgovDateUtil;
import egovframework.rte.fdl.cmmn.AbstractServiceImpl;
import egovframework.rte.fdl.idgnr.EgovIdGnrService;
import egovframework.rte.fdl.property.EgovPropertyService;
/**
* 게시물 관리를 위한 서비스 구현 클래스
* @author 공통서비스개발팀 이삼섭
* @since 2009.06.01
* @version 1.0
* @see
*
* <pre>
* << 개정이력(Modification Information) >>
*
* 수정일 수정자 수정내용
* ------- -------- ---------------------------
* 2009.3.19 이삼섭 최초 생성
* 2011.09.22 서준식 nttId IdGen 서비스로 변경
* </pre>
*/
@Service("EgovBBSManageService")
public class EgovBBSManageServiceImpl extends AbstractServiceImpl implements EgovBBSManageService {
@Resource(name = "BBSManageDAO")
private BBSManageDAO bbsMngDAO;
@Resource(name = "EgovFileMngService")
private EgovFileMngService fileService;
@Resource(name = "propertiesService")
protected EgovPropertyService propertyService;
@Resource(name = "egovNttIdGnrService")
private EgovIdGnrService nttIdgenService;
private static final Logger LOG = Logger.getLogger(EgovBBSManageServiceImpl.class.getClass());
/**
* 게시물 건을 삭제 한다.
*
* @see egovframework.com.cop.bbs.brd.service.EgovBBSManageService#deleteBoardArticle(egovframework.com.cop.bbs.brd.service.Board)
*/
public void deleteBoardArticle(Board board) throws Exception {
FileVO fvo = new FileVO();
fvo.setAtchFileId(board.getAtchFileId());
//board.setNttSj("이 글은 작성자에 의해서 삭제되었습니다.");
bbsMngDAO.deleteBoardArticle(board);
if (!"".equals(fvo.getAtchFileId()) || fvo.getAtchFileId() != null) {
fileService.deleteAllFileInf(fvo);
}
}
/**
* 임시
*/
public void deleteMobBoardArticle(Board board) throws Exception {
FileVO fvo = new FileVO();
fvo.setAtchFileId(board.getAtchFileId());
//board.setNttSj("이 글은 작성자에 의해서 삭제되었습니다.");
bbsMngDAO.deleteMobBoardArticle(board);
}
/**
* 게시판에 게시물 또는 답변 게시물을 등록 한다.
*
* @see egovframework.com.cop.bbs.brd.service.EgovBBSManageService#insertBoardArticle(egovframework.com.cop.bbs.brd.service.Board)
*/
public void insertBoardArticle(Board board) throws Exception {
// SORT_ORDR는 부모글의 소트 오더와 같게, NTT_NO는 순서대로 부여
if ("Y".equals(board.getReplyAt())) {
// 답글인 경우 1. Parnts를 세팅, 2.Parnts의 sortOrdr을 현재글의 sortOrdr로 가져오도록, 3.nttNo는 현재 게시판의 순서대로
// replyLc는 부모글의 ReplyLc + 1
//String tmpParnts = board.getParnts();
@SuppressWarnings("unused")
long tmpNttId = 0L; // 답글 게시물 ID
tmpNttId = bbsMngDAO.replyBoardArticle(board);
} else {
// 답글이 아닌경우 Parnts = 0, replyLc는 = 0, sortOrdr = nttNo(Query에서 처리)
board.setParnts("0");
board.setReplyLc("0");
board.setReplyAt("N");
board.setNttId(nttIdgenService.getNextIntegerId());//2011.09.22
bbsMngDAO.insertBoardArticle(board);
}
}
/**
* 게시물 대하여 상세 내용을 조회 한다.
*
* @see egovframework.com.cop.bbs.brd.service.EgovBBSManageService#selectBoardArticle(egovframework.com.cop.bbs.brd.service.BoardVO)
*/
public BoardVO selectBoardArticle(BoardVO boardVO) throws Exception {
if (boardVO.isPlusCount()) {
int iniqireCo = bbsMngDAO.selectMaxInqireCo(boardVO);
boardVO.setInqireCo(iniqireCo);
bbsMngDAO.updateInqireCo(boardVO);
}
return bbsMngDAO.selectBoardArticle(boardVO);
}
/**
* 공지사항 게시물 대하여 상세 내용을 조회 한다.
*
* @see egovframework.com.cop.bbs.brd.service.EgovBBSManageService#selectBoardArticle(egovframework.com.cop.bbs.brd.service.BoardVO)
*/
public BoardVO selectNoticeBoardArticle(BoardVO boardVO) throws Exception {
if (boardVO.isPlusCount()) {
int iniqireCo = bbsMngDAO.selectMaxInqireCo(boardVO);
boardVO.setInqireCo(iniqireCo);
bbsMngDAO.updateInqireCo(boardVO);
}
return bbsMngDAO.selectNoticeBoardArticle(boardVO);
}
/**
* 묻고답하기 게시물에 대하여 상세 내용을 조회 한다.
*
* @see egovframework.com.cop.bbs.brd.service.EgovBBSManageService#selectBoardArticle(egovframework.com.cop.bbs.brd.service.BoardVO)
*/
public BoardVO selectQnABoardArticle(BoardVO boardVO) throws Exception {
if (boardVO.isPlusCount()) {
int iniqireCo = bbsMngDAO.selectMaxInqireCo(boardVO);
boardVO.setInqireCo(iniqireCo);
bbsMngDAO.updateInqireCo(boardVO);
}
return bbsMngDAO.selectQnABoardArticle(boardVO);
}
/**
* 커뮤니티 게시물에 대하여 상세 내용을 조회 한다.
*
* @see egovframework.com.cop.bbs.brd.service.EgovBBSManageService#selectBoardArticle(egovframework.com.cop.bbs.brd.service.BoardVO)
*/
public BoardVO selectCommBoardArticle(BoardVO boardVO) throws Exception {
if (boardVO.isPlusCount()) {
int iniqireCo = bbsMngDAO.selectMaxInqireCo(boardVO);
boardVO.setInqireCo(iniqireCo);
bbsMngDAO.updateInqireCo(boardVO);
}
return bbsMngDAO.selectCommBoardArticle(boardVO);
}
/**
* 자주하는질문 게시물에 대하여 상세 내용을 조회 한다.
*
* @see egovframework.com.cop.bbs.brd.service.EgovBBSManageService#selectFAQBoardArticle(egovframework.com.cop.bbs.brd.service.BoardVO)
*/
public BoardVO selectFAQBoardArticle(BoardVO boardVO) throws Exception {
if (boardVO.isPlusCount()) {
int iniqireCo = bbsMngDAO.selectMaxInqireCo(boardVO);
boardVO.setInqireCo(iniqireCo);
bbsMngDAO.updateInqireCo(boardVO);
}
return bbsMngDAO.selectFAQBoardArticle(boardVO);
}
/**
* 조건에 맞는 게시물 목록을 조회 한다.
*
* @see egovframework.com.cop.bbs.brd.service.EgovBBSManageService#selectBoardArticles(egovframework.com.cop.bbs.brd.service.BoardVO)
*/
public Map<String, Object> selectBoardArticles(BoardVO boardVO, String attrbFlag) throws Exception {
//페이징을 위한
int firstIndex = boardVO.getFirstIndex();
int recordCntPerPage = boardVO.getRecordCountPerPage();
boardVO.setStartPoint(firstIndex);
boardVO.setEndPoint(recordCntPerPage);
List<BoardVO> list = bbsMngDAO.selectBoardArticleList(boardVO);
List<BoardVO> topList = bbsMngDAO.selectBoardTopArticleList(boardVO);
List<BoardVO> result = new ArrayList<BoardVO>();
List<BoardVO> topResult = new ArrayList<BoardVO>();
String today = EgovDateUtil.getToday();
if ("BBSA01".equals(attrbFlag)) {
// 유효게시판
BoardVO vo;
Iterator<BoardVO> iter = list.iterator();
while (iter.hasNext()) {
vo = (BoardVO)iter.next();
if (!"".equals(vo.getNtceBgnde().trim()) || !"".equals(vo.getNtceEndde().trim())) {
if (EgovDateUtil.getDaysDiff(today, vo.getNtceBgnde().trim()) > 0 || EgovDateUtil.getDaysDiff(today, vo.getNtceEndde().trim()) < 0) {
// 시작일이 오늘날짜보다 크거나, 종료일이 오늘 날짜보다 작은 경우
vo.setIsExpired("Y");
}
}
result.add(vo);
}
} else {
result = list;
}
int cnt = bbsMngDAO.selectBoardArticleListCnt(boardVO);
// Top공지 게시물
BoardVO topVo;
Iterator<BoardVO> topIter = topList.iterator();
while (topIter.hasNext()) {
topVo = (BoardVO)topIter.next();
if (!"".equals(topVo.getNtceBgnde().trim()) || !"".equals(topVo.getNtceEndde().trim())) {
if (EgovDateUtil.getDaysDiff(today, topVo.getNtceBgnde().trim()) > 0 || EgovDateUtil.getDaysDiff(today, topVo.getNtceEndde().trim()) < 0) {
// 시작일이 오늘날짜보다 크거나, 종료일이 오늘 날짜보다 작은 경우
topVo.setIsExpired("Y");
}
}
topResult.add(topVo);
}
int topCnt = bbsMngDAO.selectBoardTopArticleListCnt(boardVO);
Map<String, Object> map = new HashMap<String, Object>();
map.put("resultList", result);
map.put("resultTopList", topResult);
map.put("resultCnt", Integer.toString(cnt));
map.put("resultTopCnt", Integer.toString(topCnt));
return map;
}
/**
* 공지사항 게시물 목록을 조회 한다.
*
* @see egovframework.com.cop.bbs.brd.service.EgovBBSManageService#selectBoardArticles(egovframework.com.cop.bbs.brd.service.BoardVO)
*/
public Map<String, Object> selectNoticeBoardArticles(BoardVO boardVO, String attrbFlag) throws Exception {
//페이징을 위한
int firstIndex = boardVO.getFirstIndex();
int recordCntPerPage = boardVO.getRecordCountPerPage();
boardVO.setStartPoint(firstIndex);
boardVO.setEndPoint(recordCntPerPage);
List<BoardVO> list = bbsMngDAO.selectNoticeBoardArticleList(boardVO);
List<BoardVO> topList = bbsMngDAO.selectNoticeBoardTopArticleList(boardVO);
List<BoardVO> result = new ArrayList<BoardVO>();
List<BoardVO> topResult = new ArrayList<BoardVO>();
String today = EgovDateUtil.getToday();
if ("BBSA01".equals(attrbFlag)) {
// 유효게시판
BoardVO vo;
Iterator<BoardVO> iter = list.iterator();
while (iter.hasNext()) {
vo = (BoardVO)iter.next();
if (!"".equals(vo.getNtceBgnde().trim()) || !"".equals(vo.getNtceEndde().trim())) {
if (EgovDateUtil.getDaysDiff(today, vo.getNtceBgnde().trim()) > 0 || EgovDateUtil.getDaysDiff(today, vo.getNtceEndde().trim()) < 0) {
// 시작일이 오늘날짜보다 크거나, 종료일이 오늘 날짜보다 작은 경우
vo.setIsExpired("Y");
}
}
result.add(vo);
}
} else {
result = list;
}
int cnt = bbsMngDAO.selectNoticeBoardArticleListCnt(boardVO);
// Top공지 게시물
BoardVO topVo;
Iterator<BoardVO> topIter = topList.iterator();
while (topIter.hasNext()) {
topVo = (BoardVO)topIter.next();
if (!"".equals(topVo.getNtceBgnde().trim()) || !"".equals(topVo.getNtceEndde().trim())) {
if (EgovDateUtil.getDaysDiff(today, topVo.getNtceBgnde().trim()) > 0 || EgovDateUtil.getDaysDiff(today, topVo.getNtceEndde().trim()) < 0) {
// 시작일이 오늘날짜보다 크거나, 종료일이 오늘 날짜보다 작은 경우
topVo.setIsExpired("Y");
}
}
topResult.add(topVo);
}
int topCnt = bbsMngDAO.selectNoticeBoardTopArticleListCnt(boardVO);
Map<String, Object> map = new HashMap<String, Object>();
map.put("resultList", result);
map.put("resultTopList", topResult);
map.put("resultCnt", Integer.toString(cnt));
map.put("resultTopCnt", Integer.toString(topCnt));
return map;
}
/**
* 묻고답하기 게시물 목록을 조회 한다.
*
* @see egovframework.com.cop.bbs.brd.service.EgovBBSManageService#selectQnABoardArticles(egovframework.com.cop.bbs.brd.service.BoardVO)
*/
public Map<String, Object> selectQnABoardArticles(BoardVO boardVO, String attrbFlag) throws Exception {
//페이징을 위한
int firstIndex = boardVO.getFirstIndex();
int recordCntPerPage = boardVO.getRecordCountPerPage();
boardVO.setStartPoint(firstIndex);
boardVO.setEndPoint(recordCntPerPage);
List<BoardVO> list = bbsMngDAO.selectQnABoardArticleList(boardVO);
List<BoardVO> result = new ArrayList<BoardVO>();
String today = EgovDateUtil.getToday();
if ("BBSA01".equals(attrbFlag)) {
// 유효게시판
BoardVO vo;
Iterator<BoardVO> iter = list.iterator();
while (iter.hasNext()) {
vo = (BoardVO)iter.next();
if (!"".equals(vo.getNtceBgnde().trim()) || !"".equals(vo.getNtceEndde().trim())) {
if (EgovDateUtil.getDaysDiff(today, vo.getNtceBgnde().trim()) > 0 || EgovDateUtil.getDaysDiff(today, vo.getNtceEndde().trim()) < 0) {
// 시작일이 오늘날짜보다 크거나, 종료일이 오늘 날짜보다 작은 경우
vo.setIsExpired("Y");
}
}
result.add(vo);
}
} else {
result = list;
}
int cnt = bbsMngDAO.selectQnABoardArticleListCnt(boardVO);
Map<String, Object> map = new HashMap<String, Object>();
map.put("resultList", result);
map.put("resultCnt", Integer.toString(cnt));
return map;
}
/**
* 커뮤니티 게시물 목록을 조회 한다.
*
* @see egovframework.com.cop.bbs.brd.service.EgovBBSManageService#selectCommBoardArticles(egovframework.com.cop.bbs.brd.service.BoardVO)
*/
public Map<String, Object> selectCommBoardArticles(BoardVO boardVO, String attrbFlag) throws Exception {
//페이징을 위한
int firstIndex = boardVO.getFirstIndex();
int recordCntPerPage = boardVO.getRecordCountPerPage();
boardVO.setStartPoint(firstIndex);
boardVO.setEndPoint(recordCntPerPage);
List<BoardVO> list = bbsMngDAO.selectCommBoardArticleList(boardVO);
List<BoardVO> result = new ArrayList<BoardVO>();
String today = EgovDateUtil.getToday();
if ("BBSA01".equals(attrbFlag)) {
// 유효게시판
BoardVO vo;
Iterator<BoardVO> iter = list.iterator();
while (iter.hasNext()) {
vo = (BoardVO)iter.next();
if (!"".equals(vo.getNtceBgnde().trim()) || !"".equals(vo.getNtceEndde().trim())) {
if (EgovDateUtil.getDaysDiff(today, vo.getNtceBgnde().trim()) > 0 || EgovDateUtil.getDaysDiff(today, vo.getNtceEndde().trim()) < 0) {
// 시작일이 오늘날짜보다 크거나, 종료일이 오늘 날짜보다 작은 경우
vo.setIsExpired("Y");
}
}
result.add(vo);
}
} else {
result = list;
}
int cnt = bbsMngDAO.selectCommBoardArticleListCnt(boardVO);
Map<String, Object> map = new HashMap<String, Object>();
map.put("resultList", result);
map.put("resultCnt", Integer.toString(cnt));
return map;
}
/**
* 자주하는질문 게시물 목록을 조회 한다.
*
* @see egovframework.com.cop.bbs.brd.service.EgovBBSManageService#selectFAQBoardArticles(egovframework.com.cop.bbs.brd.service.BoardVO)
*/
public Map<String, Object> selectFAQBoardArticles(BoardVO boardVO, String attrbFlag) throws Exception {
//페이징을 위한
int firstIndex = boardVO.getFirstIndex();
int recordCntPerPage = boardVO.getRecordCountPerPage();
boardVO.setStartPoint(firstIndex);
boardVO.setEndPoint(recordCntPerPage);
List<BoardVO> list = bbsMngDAO.selectFAQBoardArticleList(boardVO);
List<BoardVO> result = new ArrayList<BoardVO>();
String today = EgovDateUtil.getToday();
if ("BBSA01".equals(attrbFlag)) {
// 유효게시판
BoardVO vo;
Iterator<BoardVO> iter = list.iterator();
while (iter.hasNext()) {
vo = (BoardVO)iter.next();
if (!"".equals(vo.getNtceBgnde().trim()) || !"".equals(vo.getNtceEndde().trim())) {
if (EgovDateUtil.getDaysDiff(today, vo.getNtceBgnde().trim()) > 0 || EgovDateUtil.getDaysDiff(today, vo.getNtceEndde().trim()) < 0) {
// 시작일이 오늘날짜보다 크거나, 종료일이 오늘 날짜보다 작은 경우
vo.setIsExpired("Y");
}
}
result.add(vo);
}
} else {
result = list;
}
int cnt = bbsMngDAO.selectFAQBoardArticleListCnt(boardVO);
Map<String, Object> map = new HashMap<String, Object>();
map.put("resultList", result);
map.put("resultCnt", Integer.toString(cnt));
return map;
}
/**
* 게시물 건의 내용을 수정 한다.
*
* @see egovframework.com.cop.bbs.brd.service.EgovBBSManageService#updateBoardArticle(egovframework.com.cop.bbs.brd.service.Board)
*/
public void updateBoardArticle(Board board) throws Exception {
bbsMngDAO.updateBoardArticle(board);
}
/**
* 방명록 내용을 삭제 한다.
*
* @see egovframework.com.cop.bbs.brd.service.EgovBBSManageService#deleteGuestList(egovframework.com.cop.bbs.brd.service.BoardVO)
*/
public void deleteGuestList(BoardVO boardVO) throws Exception {
bbsMngDAO.deleteGuestList(boardVO);
}
/**
* 방명록에 대한 목록을 조회 한다.
*
* @see egovframework.com.cop.bbs.brd.service.EgovBBSManageService#selectGuestList(egovframework.com.cop.bbs.brd.service.BoardVO)
*/
public Map<String, Object> selectGuestList(BoardVO boardVO) throws Exception {
List<BoardVO> result = bbsMngDAO.selectGuestList(boardVO);
int cnt = bbsMngDAO.selectGuestListCnt(boardVO);
Map<String, Object> map = new HashMap<String, Object>();
map.put("resultList", result);
map.put("resultCnt", Integer.toString(cnt));
return map;
}
/**
* 방명록에 대한 패스워드를 조회 한다.
*
* @param board
* @return
* @throws Exception
*/
public String getPasswordInf(Board board) throws Exception {
return bbsMngDAO.getPasswordInf(board);
}
/**
* 게시물 건에 대하여 이전글의 정보를 조회 한다.
*
* @param boardVO
* @return
* @throws Exception
*/
public BoardVO selectBoardArticlePrev(BoardVO boardVO) throws Exception {
return bbsMngDAO.selectBoardArticlePrev(boardVO);
}
/**
* 게시물 건에 대하여 다음글의 정보를 조회 한다.
*
* @param boardVO
* @return
* @throws Exception
*/
public BoardVO selectBoardArticleNext(BoardVO boardVO) throws Exception {
return bbsMngDAO.selectBoardArticleNext(boardVO);
}
/**
* 공지사항 게시물 건에 대하여 이전글의 정보를 조회 한다.
*
* @param boardVO
* @return
* @throws Exception
*/
public BoardVO selectNoticeBoardArticlePrev(BoardVO boardVO) throws Exception {
return bbsMngDAO.selectNoticeBoardArticlePrev(boardVO);
}
/**
* 공지사항 게시물 건에 대하여 다음글의 정보를 조회 한다.
*
* @param boardVO
* @return
* @throws Exception
*/
public BoardVO selectNoticeBoardArticleNext(BoardVO boardVO) throws Exception {
return bbsMngDAO.selectNoticeBoardArticleNext(boardVO);
}
/**
* 묻고답하기 게시물 건에 대하여 이전글의 정보를 조회 한다.
*
* @param boardVO
* @return
* @throws Exception
*/
public BoardVO selectQnABoardArticlePrev(BoardVO boardVO) throws Exception {
return bbsMngDAO.selectQnABoardArticlePrev(boardVO);
}
/**
* 묻고답하기 게시물 건에 대하여 다음글의 정보를 조회 한다.
*
* @param boardVO
* @return
* @throws Exception
*/
public BoardVO selectQnABoardArticleNext(BoardVO boardVO) throws Exception {
return bbsMngDAO.selectQnABoardArticleNext(boardVO);
}
/**
* 커뮤니티 게시물 건에 대하여 이전글의 정보를 조회 한다.
*
* @param boardVO
* @return
* @throws Exception
*/
public BoardVO selectCommBoardArticlePrev(BoardVO boardVO) throws Exception {
return bbsMngDAO.selectCommBoardArticlePrev(boardVO);
}
/**
* 커뮤니티 게시물 건에 대하여 다음글의 정보를 조회 한다.
*
* @param boardVO
* @return
* @throws Exception
*/
public BoardVO selectCommBoardArticleNext(BoardVO boardVO) throws Exception {
return bbsMngDAO.selectCommBoardArticleNext(boardVO);
}
/**
* 자주하는질문 게시물 건에 대하여 이전글의 정보를 조회 한다.
*
* @param boardVO
* @return
* @throws Exception
*/
public BoardVO selectFAQBoardArticlePrev(BoardVO boardVO) throws Exception {
return bbsMngDAO.selectFAQBoardArticlePrev(boardVO);
}
/**
* 자주하는질문 게시물 건에 대하여 다음글의 정보를 조회 한다.
*
* @param boardVO
* @return
* @throws Exception
*/
public BoardVO selectFAQBoardArticleNext(BoardVO boardVO) throws Exception {
return bbsMngDAO.selectFAQBoardArticleNext(boardVO);
}
/**
* 조건에 맞는 게시물 답변 목록을 조회 한다.
*
* @param boardVO
* @return
* @throws Exception
*/
public List<BoardVO> selectBoardReplyArticleList(BoardVO boardVO) throws Exception {
List<BoardVO> list = bbsMngDAO.selectBoardReplyArticleList(boardVO);
if (list == null) {
list = new ArrayList<BoardVO>();
}
return list;
}
/**
* 메인에 보여줄 게시물 목록을 조회 한다.
*
* @param boardVO
* @return
* @throws Exception
*/
public List<BoardVO> selectMainBoard(BoardVO boardVO) throws Exception {
return bbsMngDAO.selectMainBoard(boardVO);
}
/**
* 가장 많이 글을 조회 한다.
*
* @param boardVO
* @return
* @throws Exception
*/
public List<BoardVO> selectReadBoard(BoardVO boardVO) throws Exception {
return bbsMngDAO.selectReadBoard(boardVO);
}
/** 엑셀 다운 */
@Override
public List<BoardVO> selectExcelBoardArticles(BoardVO boardVO) throws Exception {
return bbsMngDAO.selectExcelBoardArticles(boardVO);
}
public int selectBoardArticleListCnt(BoardVO boardVO) throws Exception {
return bbsMngDAO.selectBoardArticleListCnt(boardVO);
}
@Override
public List<BoardVO> selectBoardArticleTopList(BoardVO boardVO) throws Exception {
return bbsMngDAO.selectBoardArticleTopList(boardVO);
}
}

View File

@ -0,0 +1,125 @@
package egovframework.com.cop.bbs.service.impl;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import egovframework.com.cop.bbs.service.BoardUseInf;
import egovframework.com.cop.bbs.service.BoardUseInfVO;
import egovframework.com.cop.bbs.service.EgovBBSUseInfoManageService;
import egovframework.rte.fdl.cmmn.AbstractServiceImpl;
/**
* 게시판 이용정보를 관리하기 위한 서비스 구현 클래스
* @author 공통서비스개발팀 이삼섭
* @since 2009.06.01
* @version 1.0
* @see
*
* <pre>
* << 개정이력(Modification Information) >>
*
* 수정일 수정자 수정내용
* ------- -------- ---------------------------
* 2009.4.2 이삼섭 최초 생성
* 2011.7.27 안민정 동호회, 커뮤니티 로직 분리 (EgovBBSUseInfoManageServiceImpl -> EgovCmyBBSUseInfoManageServiceImpl)
*
* </pre>
*/
@Service("EgovBBSUseInfoManageService")
public class EgovBBSUseInfoManageServiceImpl extends AbstractServiceImpl implements EgovBBSUseInfoManageService {
@Resource(name = "BBSUseInfoManageDAO")
private BBSUseInfoManageDAO bbsUseDAO;
/**
* 게시판 사용 정보를 삭제한다.
*
* @see egovframework.com.cop.bbs.service.com.service.EgovBBSUseInfoManageService#deleteBBSUseInf(egovframework.com.cop.bbs.service.com.service.BoardUseInf)
*/
public void deleteBBSUseInf(BoardUseInf bdUseInf) throws Exception {
bbsUseDAO.deleteBBSUseInf(bdUseInf);
}
/**
* 게시판 사용정보를 등록한다.
*
* @see egovframework.com.cop.bbs.service.com.service.EgovBBSUseInfoManageService#insertBBSUseInf(egovframework.com.cop.bbs.service.com.service.BoardUseInf)
*/
public void insertBBSUseInf(BoardUseInf bdUseInf) throws Exception {
bbsUseDAO.insertBBSUseInf(bdUseInf);
}
/**
* 게시판 사용정보 목록을 조회한다.
*
* @see egovframework.com.cop.bbs.service.com.service.EgovBBSUseInfoManageService#selectBBSUseInfs(egovframework.com.cop.bbs.service.com.service.BoardUseInfVO)
*/
public Map<String, Object> selectBBSUseInfs(BoardUseInfVO bdUseVO) throws Exception {
List<BoardUseInfVO> result = bbsUseDAO.selectBBSUseInfs(bdUseVO);
int cnt = bbsUseDAO.selectBBSUseInfsCnt(bdUseVO);
Map<String, Object> map = new HashMap<String, Object>();
map.put("resultList", result);
map.put("resultCnt", Integer.toString(cnt));
return map;
}
/**
* 게시판 사용정보를 수정한다.
*
* @see egovframework.com.cop.bbs.service.com.service.EgovBBSUseInfoManageService#updateBBSUseInf(egovframework.com.cop.bbs.service.com.service.BoardUseInf)
*/
public void updateBBSUseInf(BoardUseInf bdUseInf) throws Exception {
bbsUseDAO.updateBBSUseInf(bdUseInf);
}
/**
* 게시판 사용정보에 대한 상세정보를 조회한다.
*
* @see egovframework.com.cop.bbs.service.com.service.EgovBBSUseInfoManageService#selectBBSUseInf(egovframework.com.cop.bbs.service.com.service.BoardUseInfVO)
*/
public BoardUseInfVO selectBBSUseInf(BoardUseInfVO bdUseVO) throws Exception {
return bbsUseDAO.selectBBSUseInf(bdUseVO);
}
/**
* 게시판에 대한 사용정보를 삭제한다.
*
* @see egovframework.com.cop.bbs.service.EgovBBSUseInfoManageService#deleteBBSUseInfByBoardId(egovframework.com.cop.bbs.service.BoardUseInf)
*/
public void deleteBBSUseInfByBoardId(BoardUseInf bdUseInf) throws Exception {
bbsUseDAO.deleteBBSUseInfByBoardId(bdUseInf);
}
/**
* 커뮤니티, 동호회에 사용되는 게시판 사용정보에 대한 목록을 조회한다.
*
* @see egovframework.com.cop.bbs.service.EgovBBSUseInfoManageService#selectBBSUseInfsByTrget(egovframework.com.cop.bbs.service.BoardUseInfVO)
*/
public Map<String, Object> selectBBSUseInfsByTrget(BoardUseInfVO bdUseVO) throws Exception {
List<BoardUseInfVO> result = bbsUseDAO.selectBBSUseInfsByTrget(bdUseVO);
int cnt = bbsUseDAO.selectBBSUseInfsCntByTrget(bdUseVO);
Map<String, Object> map = new HashMap<String, Object>();
map.put("resultList", result);
map.put("resultCnt", Integer.toString(cnt));
return map;
}
/**
* 커뮤니티, 동호회에 사용되는 게시판 사용정보를 수정한다.
*/
public void updateBBSUseInfByTrget(BoardUseInf bdUseInf) throws Exception {
bbsUseDAO.updateBBSUseInfByTrget(bdUseInf);
}
}

View File

@ -0,0 +1,374 @@
package egovframework.com.cop.bbs.web;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
import javax.servlet.http.HttpSession;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.support.SessionStatus;
import org.springmodules.validation.commons.DefaultBeanValidator;
import egovframework.com.cmm.ComDefaultCodeVO;
import egovframework.com.cmm.EgovComponentChecker;
import egovframework.com.cmm.LoginVO;
import egovframework.com.cmm.annotation.IncludedInfo;
import egovframework.com.cmm.service.EgovCmmUseService;
import egovframework.com.cmm.util.EgovUserDetailsHelper;
import egovframework.com.cop.bbs.service.BoardMaster;
import egovframework.com.cop.bbs.service.BoardMasterVO;
import egovframework.com.cop.bbs.service.EgovBBSAttributeManageService;
import egovframework.rte.fdl.property.EgovPropertyService;
import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo;
/**
* 게시판 속성관리를 위한 컨트롤러 클래스
* @author 공통서비스개발팀 이삼섭
* @since 2009.06.01
* @version 1.0
* @see
*
* <pre>
* << 개정이력(Modification Information) >>
*
* 수정일 수정자 수정내용
* ------- -------- ---------------------------
* 2009.3.12 이삼섭 최초 생성
* 2009.06.26 한성곤 2단계 기능 추가 (댓글관리, 만족도조사)
* 2011.07.21 안민정 커뮤니티 관련 메소드 분리 (->EgovBBSAttributeManageController)
* 2011.8.26 정진오 IncludedInfo annotation 추가
* 2011.09.15 서준식 2단계 기능 추가 (댓글관리, 만족도조사) 적용방법 변경
* </pre>
*/
@Controller
public class EgovBBSAttributeManageController {
@Resource(name = "EgovBBSAttributeManageService")
private EgovBBSAttributeManageService bbsAttrbService;
@Resource(name = "EgovCmmUseService")
private EgovCmmUseService cmmUseService;
@Resource(name = "propertiesService")
protected EgovPropertyService propertyService;
@Autowired
private DefaultBeanValidator beanValidator;
//Logger log = Logger.getLogger(this.getClass());
/**
* 신규 게시판 마스터 등록을 위한 등록페이지로 이동한다.
*
* @param boardMasterVO
* @param model
* @return
* @throws Exception
*/
@SuppressWarnings("unchecked")
@RequestMapping("/cop/bbs/addBBSMaster.do")
public String addBBSMaster(@ModelAttribute("searchVO") BoardMasterVO boardMasterVO, ModelMap model) throws Exception {
BoardMaster boardMaster = new BoardMaster();
ComDefaultCodeVO vo = new ComDefaultCodeVO();
vo.setCodeId("COM004");
List codeResult = cmmUseService.selectCmmCodeDetail(vo);
model.addAttribute("typeList", codeResult);
vo.setCodeId("COM009");
codeResult = cmmUseService.selectCmmCodeDetail(vo);
model.addAttribute("attrbList", codeResult);
model.addAttribute("boardMaster", boardMaster);
//---------------------------------
// 2009.06.26 : 2단계 기능 추가
//---------------------------------
//String flag = EgovProperties.getProperty("Globals.addedOptions");
//if (flag != null && flag.trim().equalsIgnoreCase("true")) {
// model.addAttribute("addedOptions", "true");
//}
////-------------------------------
//---------------------------------
// 2011.09.15 : 2단계 기능 추가 반영 방법 변경
//---------------------------------
if(EgovComponentChecker.hasComponent("EgovBBSCommentService")){
model.addAttribute("useComment", "true");
}
if(EgovComponentChecker.hasComponent("EgovBBSSatisfactionService")){
model.addAttribute("useSatisfaction", "true");
}
////-------------------------------
// 게시판권한 코드리스트 추가
ComDefaultCodeVO codeVO = new ComDefaultCodeVO();
codeVO.setCodeId("BIZ010");
List bbsRoleList = cmmUseService.selectCmmCodeDetail(codeVO);
model.addAttribute("bbsRoleList", bbsRoleList);
// 게시판 답변정보 노츨방식 코드리스트 추가
codeVO = new ComDefaultCodeVO();
codeVO.setCodeId("BIZ011");
List bbsReList = cmmUseService.selectCmmCodeDetail(codeVO);
model.addAttribute("bbsReList", bbsReList);
return "egovframework/com/cop/bbs/EgovBoardMstrRegist";
}
/**
* 신규 게시판 마스터 정보를 등록한다.
*
* @param boardMasterVO
* @param boardMaster
* @param status
* @return
* @throws Exception
*/
@SuppressWarnings("unchecked")
@RequestMapping("/cop/bbs/insertBBSMasterInf.do")
public String insertBBSMasterInf(@ModelAttribute("searchVO") BoardMasterVO boardMasterVO, @ModelAttribute("boardMaster") BoardMaster boardMaster,
BindingResult bindingResult, SessionStatus status, ModelMap model) throws Exception {
LoginVO user = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser();
Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated();
beanValidator.validate(boardMaster, bindingResult);
if (bindingResult.hasErrors()) {
ComDefaultCodeVO vo = new ComDefaultCodeVO();
vo.setCodeId("COM004");
List codeResult = cmmUseService.selectCmmCodeDetail(vo);
model.addAttribute("typeList", codeResult);
vo.setCodeId("COM009");
codeResult = cmmUseService.selectCmmCodeDetail(vo);
model.addAttribute("attrbList", codeResult);
return "egovframework/com/cop/bbs/EgovBoardMstrRegist";
}
if (isAuthenticated) {
boardMaster.setFrstRegisterId(user.getUniqId());
boardMaster.setUseAt("Y");
boardMaster.setTrgetId("SYSTEMDEFAULT_REGIST");
bbsAttrbService.insertBBSMastetInf(boardMaster);
}
return "forward:/cop/bbs/SelectBBSMasterInfs.do?page=9100041";
}
/**
* 게시판 마스터 목록을 조회한다.
*
* @param boardMasterVO
* @param model
* @return
* @throws Exception
*/
@IncludedInfo(name="게시판속성관리",order = 180 ,gid = 40)
@RequestMapping("/cop/bbs/SelectBBSMasterInfs.do")
public String selectBBSMasterInfs(
@ModelAttribute("searchVO") BoardMasterVO boardMasterVO,
HttpSession session,
ModelMap model) throws Exception {
session.removeAttribute("page");
boardMasterVO.setPageUnit(propertyService.getInt("pageUnit"));
boardMasterVO.setPageSize(propertyService.getInt("pageSize"));
PaginationInfo paginationInfo = new PaginationInfo();
paginationInfo.setCurrentPageNo(boardMasterVO.getPageIndex());
paginationInfo.setRecordCountPerPage(boardMasterVO.getPageUnit());
paginationInfo.setPageSize(boardMasterVO.getPageSize());
boardMasterVO.setFirstIndex(paginationInfo.getFirstRecordIndex());
boardMasterVO.setLastIndex(paginationInfo.getLastRecordIndex());
boardMasterVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
Map<String, Object> map = bbsAttrbService.selectBBSMasterInfs(boardMasterVO);
int totCnt = Integer.parseInt((String)map.get("resultCnt"));
paginationInfo.setTotalRecordCount(totCnt);
model.addAttribute("resultList", map.get("resultList"));
model.addAttribute("resultCnt", map.get("resultCnt"));
model.addAttribute("paginationInfo", paginationInfo);
return "egovframework/com/cop/bbs/EgovBoardMstrList";
}
/**
* 게시판 마스터 상세내용을 조회한다.
*
* @param boardMasterVO
* @param model
* @return
* @throws Exception
*/
@RequestMapping("/cop/bbs/SelectBBSMasterInf.do")
public String selectBBSMasterInf(@ModelAttribute("searchVO") BoardMasterVO searchVO, ModelMap model) throws Exception {
BoardMasterVO vo = bbsAttrbService.selectBBSMasterInf(searchVO);
model.addAttribute("result", vo);
//---------------------------------
// 2009.06.26 : 2단계 기능 추가
//---------------------------------
//String flag = EgovProperties.getProperty("Globals.addedOptions");
//if (flag != null && flag.trim().equalsIgnoreCase("true")) {
// model.addAttribute("addedOptions", "true");
//}
////-------------------------------
//---------------------------------
// 2011.09.15 : 2단계 기능 추가 반영 방법 변경
//---------------------------------
if(EgovComponentChecker.hasComponent("EgovBBSCommentService")){
model.addAttribute("useComment", "true");
}
if(EgovComponentChecker.hasComponent("EgovBBSSatisfactionService")){
model.addAttribute("useSatisfaction", "true");
}
////-------------------------------
// 게시판권한 코드리스트 추가
ComDefaultCodeVO codeVO = new ComDefaultCodeVO();
codeVO.setCodeId("BIZ010");
List bbsRoleList = cmmUseService.selectCmmCodeDetail(codeVO);
model.addAttribute("bbsRoleList", bbsRoleList);
// 게시판 답변정보 노츨방식 코드리스트 추가
codeVO = new ComDefaultCodeVO();
codeVO.setCodeId("BIZ011");
List bbsReList = cmmUseService.selectCmmCodeDetail(codeVO);
model.addAttribute("bbsReList", bbsReList);
model.addAttribute("boardMaster", vo);
return "egovframework/com/cop/bbs/EgovBoardMstrUpdt";
}
/**
* 게시판 마스터 정보를 수정한다.
*
* @param boardMasterVO
* @param boardMaster
* @param model
* @return
* @throws Exception
*/
@RequestMapping("/cop/bbs/UpdateBBSMasterInf.do")
public String updateBBSMasterInf(@ModelAttribute("searchVO") BoardMasterVO boardMasterVO, @ModelAttribute("boardMaster") BoardMaster boardMaster,
BindingResult bindingResult, ModelMap model) throws Exception {
LoginVO user = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser();
Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated();
beanValidator.validate(boardMaster, bindingResult);
if (bindingResult.hasErrors()) {
BoardMasterVO vo = bbsAttrbService.selectBBSMasterInf(boardMasterVO);
model.addAttribute("result", vo);
return "egovframework/com/cop/bbs/EgovBoardMstrUpdt";
}
if (isAuthenticated) {
boardMaster.setLastUpdusrId(user.getUniqId());
bbsAttrbService.updateBBSMasterInf(boardMaster);
}
return "forward:/cop/bbs/SelectBBSMasterInfs.do?page=9100041";
}
/**
* 게시판 마스터 정보를 삭제한다.
*
* @param boardMasterVO
* @param boardMaster
* @param status
* @return
* @throws Exception
*/
@RequestMapping("/cop/bbs/DeleteBBSMasterInf.do")
public String deleteBBSMasterInf(@ModelAttribute("searchVO") BoardMasterVO boardMasterVO, @ModelAttribute("boardMaster") BoardMaster boardMaster,
SessionStatus status) throws Exception {
LoginVO user = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser();
Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated();
if (isAuthenticated) {
boardMaster.setLastUpdusrId(user.getUniqId());
bbsAttrbService.deleteBBSMasterInf(boardMaster);
}
// status.setComplete();
return "forward:/cop/bbs/SelectBBSMasterInfs.do?page=9100041";
}
/**
* 게시판 마스터 선택 팝업을 위한 목록을 조회한다.
*
* @param boardMasterVO
* @param model
* @return
* @throws Exception
*/
@RequestMapping("/cop/bbs/SelectBBSMasterInfsPop.do")
public String selectBBSMasterInfsPop(@ModelAttribute("searchVO") BoardMasterVO boardMasterVO, ModelMap model) throws Exception {
boardMasterVO.setPageUnit(propertyService.getInt("pageUnit"));
boardMasterVO.setPageSize(propertyService.getInt("pageSize"));
PaginationInfo paginationInfo = new PaginationInfo();
paginationInfo.setCurrentPageNo(boardMasterVO.getPageIndex());
paginationInfo.setRecordCountPerPage(boardMasterVO.getPageUnit());
paginationInfo.setPageSize(boardMasterVO.getPageSize());
boardMasterVO.setFirstIndex(paginationInfo.getFirstRecordIndex());
boardMasterVO.setLastIndex(paginationInfo.getLastRecordIndex());
boardMasterVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
boardMasterVO.setUseAt("Y");
Map<String, Object> map = bbsAttrbService.selectNotUsedBdMstrList(boardMasterVO);
int totCnt = Integer.parseInt((String)map.get("resultCnt"));
paginationInfo.setTotalRecordCount(totCnt);
model.addAttribute("resultList", map.get("resultList"));
model.addAttribute("resultCnt", map.get("resultCnt"));
model.addAttribute("paginationInfo", paginationInfo);
return "egovframework/com/cop/bbs/EgovBoardMstrListPop";
}
}

View File

@ -0,0 +1,269 @@
package egovframework.com.cop.bbs.web;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.support.SessionStatus;
import org.springmodules.validation.commons.DefaultBeanValidator;
import egovframework.com.cmm.ComDefaultCodeVO;
import egovframework.com.cmm.LoginVO;
import egovframework.com.cmm.service.EgovCmmUseService;
import egovframework.com.cmm.util.EgovUserDetailsHelper;
import egovframework.com.cop.bbs.service.BoardMaster;
import egovframework.com.cop.bbs.service.BoardMasterVO;
import egovframework.com.cop.bbs.service.EgovBBSLoneMasterService;
import egovframework.rte.fdl.property.EgovPropertyService;
import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo;
/**
* 게시판 속성관리를 위한 컨트롤러 클래스
* @author 공통컴포넌트개발팀 한성곤
* @since 2009.08.25
* @version 1.0
* @see
*
* <pre>
* << 개정이력(Modification Information) >>
*
* 수정일 수정자 수정내용
* ------- -------- ---------------------------
* 2009.08.25 한성곤 최초 생성
* 2011.8.26 정진오 IncludedInfo annotation 추가
* 2011.9.7 정진오 익명 게시판의 경우 provdUrl이 관련된 사항으로 표출되도록 수정
*
* </pre>
*/
@Controller
public class EgovBBSLoneMasterController {
@Resource(name = "EgovBBSLoneMasterService")
private EgovBBSLoneMasterService bbsLoneService;
@Resource(name = "EgovCmmUseService")
private EgovCmmUseService cmmUseService;
@Resource(name = "propertiesService")
protected EgovPropertyService propertyService;
@Autowired
private DefaultBeanValidator beanValidator;
//protected Logger log = Logger.getLogger(this.getClass());
/**
* 신규 게시판 마스터 등록을 위한 등록페이지로 이동한다.
*
* @param boardMasterVO
* @param model
* @return
* @throws Exception
*/
@SuppressWarnings("unchecked")
@RequestMapping("/cop/bbs/addBoardMaster.do")
public String addBoardMaster(@ModelAttribute("searchVO") BoardMasterVO boardMasterVO, ModelMap model) throws Exception {
BoardMaster boardMaster = new BoardMaster();
ComDefaultCodeVO vo = new ComDefaultCodeVO();
vo.setCodeId("COM004");
List codeResult = cmmUseService.selectCmmCodeDetail(vo);
model.addAttribute("typeList", codeResult);
vo.setCodeId("COM009");
codeResult = cmmUseService.selectCmmCodeDetail(vo);
model.addAttribute("attrbList", codeResult);
model.addAttribute("boardMaster", boardMaster);
return "egovframework/com/cop/bbs/EgovBBSLoneMstrRegist";
}
/**
* 신규 게시판 마스터 정보를 등록한다.
*
* @param boardMasterVO
* @param boardMaster
* @param status
* @return
* @throws Exception
*/
@SuppressWarnings("unchecked")
@RequestMapping("/cop/bbs/insertBoardMaster.do")
public String insertBoardMaster(@ModelAttribute("searchVO") BoardMasterVO boardMasterVO, @ModelAttribute("boardMaster") BoardMaster boardMaster,
BindingResult bindingResult, SessionStatus status, ModelMap model) throws Exception {
LoginVO user = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser();
Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated();
beanValidator.validate(boardMaster, bindingResult);
if (bindingResult.hasErrors()) {
ComDefaultCodeVO vo = new ComDefaultCodeVO();
vo.setCodeId("COM004");
List codeResult = cmmUseService.selectCmmCodeDetail(vo);
model.addAttribute("typeList", codeResult);
vo.setCodeId("COM009");
codeResult = cmmUseService.selectCmmCodeDetail(vo);
model.addAttribute("attrbList", codeResult);
return "egovframework/com/cop/bbs/EgovBBSLoneMstrRegist";
}
if (isAuthenticated) {
boardMaster.setFrstRegisterId(user.getUniqId());
boardMaster.setUseAt("Y");
boardMaster.setTrgetId("SYSTEMDEFAULT_REGIST");
bbsLoneService.insertMaster(boardMaster);
}
return "forward:/cop/bbs/selectBoardMasterList.do";
}
/**
* 게시판 마스터 목록을 조회한다.
*
* @param boardMasterVO
* @param model
* @return
* @throws Exception
*/
// @IncludedInfo(name="게시판관리", order = 170 ,gid = 40)
@RequestMapping("/cop/bbs/selectBoardMasterList.do")
public String selectBoardMasterList(@ModelAttribute("searchVO") BoardMasterVO boardMasterVO, ModelMap model) throws Exception {
boardMasterVO.setPageUnit(propertyService.getInt("pageUnit"));
boardMasterVO.setPageSize(propertyService.getInt("pageSize"));
PaginationInfo paginationInfo = new PaginationInfo();
paginationInfo.setCurrentPageNo(boardMasterVO.getPageIndex());
paginationInfo.setRecordCountPerPage(boardMasterVO.getPageUnit());
paginationInfo.setPageSize(boardMasterVO.getPageSize());
boardMasterVO.setFirstIndex(paginationInfo.getFirstRecordIndex());
boardMasterVO.setLastIndex(paginationInfo.getLastRecordIndex());
boardMasterVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
Map<String, Object> map = bbsLoneService.selectMasterList(boardMasterVO);
int totCnt = Integer.parseInt((String)map.get("resultCnt"));
paginationInfo.setTotalRecordCount(totCnt);
model.addAttribute("resultList", map.get("resultList"));
model.addAttribute("resultCnt", map.get("resultCnt"));
model.addAttribute("paginationInfo", paginationInfo);
return "egovframework/com/cop/bbs/EgovBBSLoneMstrList";
}
/**
* 게시판 마스터 상세내용을 조회한다.
*
* @param boardMasterVO
* @param model
* @return
* @throws Exception
*/
@RequestMapping("/cop/bbs/selectBoardMaster.do")
public String selectBoardMaster(@ModelAttribute("searchVO") BoardMasterVO searchVO, ModelMap model, HttpServletRequest request) throws Exception {
BoardMasterVO vo = bbsLoneService.selectMaster(searchVO);
/*2011.9.7 수정부분 시작*/
String provideUrl;
if (vo.getBbsTyCode().equals("BBST02")){ // 익명게시판인 경우
provideUrl = "/cop/bbs/anonymous/selectBoardList.do?bbsId=" + vo.getBbsId();
}
else {
provideUrl = "/cop/bbs/selectBoardList.do?bbsId=" + vo.getBbsId();
}
/*2011.9.7 수정부분 종료*/
model.addAttribute("result", vo);
model.addAttribute("provdUrl", provideUrl);
return "egovframework/com/cop/bbs/EgovBBSLoneMstrUpdt";
}
/**
* 게시판 마스터 정보를 수정한다.
*
* @param boardMasterVO
* @param boardMaster
* @param model
* @return
* @throws Exception
*/
@RequestMapping("/cop/bbs/updateBoardMaster.do")
public String updateBoardMaster(@ModelAttribute("searchVO") BoardMasterVO boardMasterVO, @ModelAttribute("boardMaster") BoardMaster boardMaster,
BindingResult bindingResult, ModelMap model) throws Exception {
LoginVO user = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser();
Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated();
beanValidator.validate(boardMaster, bindingResult);
if (bindingResult.hasErrors()) {
BoardMasterVO vo = bbsLoneService.selectMaster(boardMasterVO);
model.addAttribute("result", vo);
return "egovframework/com/cop/bbs/EgovBBSLoneMstrUpdt";
}
if (isAuthenticated) {
boardMaster.setLastUpdusrId(user.getUniqId());
bbsLoneService.updateMaster(boardMaster);
}
return "forward:/cop/bbs/selectBoardMasterList.do";
}
/**
* 게시판 마스터 정보를 삭제한다.
*
* @param boardMasterVO
* @param boardMaster
* @param status
* @return
* @throws Exception
*/
@RequestMapping("/cop/bbs/deleteBoardMaster.do")
public String deleteBoardMaster(@ModelAttribute("searchVO") BoardMasterVO boardMasterVO, @ModelAttribute("boardMaster") BoardMaster boardMaster,
SessionStatus status) throws Exception {
LoginVO user = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser();
Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated();
if (isAuthenticated) {
boardMaster.setLastUpdusrId(user.getUniqId());
bbsLoneService.deleteMaster(boardMaster);
}
// status.setComplete();
return "forward:/cop/bbs/selectBoardMasterList.do";
}
}

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,257 @@
package egovframework.com.cop.bbs.web;
import java.util.Map;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.ModelMap;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.support.SessionStatus;
import org.springmodules.validation.commons.DefaultBeanValidator;
import egovframework.com.cmm.EgovComponentChecker;
import egovframework.com.cmm.LoginVO;
import egovframework.com.cmm.annotation.IncludedInfo;
import egovframework.com.cmm.util.EgovUserDetailsHelper;
import egovframework.com.cop.bbs.service.BoardUseInf;
import egovframework.com.cop.bbs.service.BoardUseInfVO;
import egovframework.com.cop.bbs.service.EgovBBSUseInfoManageService;
import egovframework.rte.fdl.property.EgovPropertyService;
import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo;
/**
* 게시판의 이용정보를 관리하기 위한 컨트롤러 클래스
* @author 공통서비스개발팀 이삼섭
* @since 2009.06.01
* @version 1.0
* @see
*
* <pre>
* << 개정이력(Modification Information) >>
*
* 수정일 수정자 수정내용
* ------- -------- ---------------------------
* 2009.4.2 이삼섭 최초 생성
* 2011.07.21 안민정 커뮤니티 관련 메소드 분리 (-> EgovCmyUserInfController)
* 2011.8.26 정진오 IncludedInfo annotation 추가
* 2011.09.15 서준식 커뮤니티, 동호회 컴포넌트 사용여부 체크 로직 추가
* </pre>
*/
@Controller
public class EgovBBSUseInfoManageController {
@Resource(name = "EgovBBSUseInfoManageService")
private EgovBBSUseInfoManageService bbsUseService;
@Resource(name = "propertiesService")
protected EgovPropertyService propertyService;
@Autowired
private DefaultBeanValidator beanValidator;
//protected Logger log = Logger.getLogger(this.getClass());
/**
* 게시판 사용 정보를 삭제한다.
*
* @param bdUseVO
* @param bdUseInf
* @param sessionVO
* @param status
* @param model
* @return
* @throws Exception
*/
@RequestMapping("/cop/com/deleteBBSUseInf.do")
public String deleteBBSUseInf(@ModelAttribute("searchVO") BoardUseInfVO bdUseVO, @ModelAttribute("bdUseInf") BoardUseInf bdUseInf,
SessionStatus status, ModelMap model) throws Exception {
//LoginVO user = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser();
Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated();
if (isAuthenticated) {
bbsUseService.deleteBBSUseInf(bdUseInf);
}
return "forward:/cop/com/selectBBSUseInfs.do";
}
/**
* 게사판 사용정보 등록을 위한 등록페이지로 이동한다.
*
* @param bdUseVO
* @param sessionVO
* @param model
* @return
* @throws Exception
*/
@RequestMapping("/cop/com/addBBSUseInf.do")
public String addBBSUseInf(@ModelAttribute("searchVO") BoardUseInfVO bdUseVO, ModelMap model) throws Exception {
if(EgovComponentChecker.hasComponent("EgovCommunityManageService")){//2011.09.15
model.addAttribute("useCommunity", "true");
}
if(EgovComponentChecker.hasComponent("EgovClubManageService")){//2011.09.15
model.addAttribute("useClub", "true");
}
return "egovframework/com/cop/com/EgovBoardUseInfRegist";
}
/**
* 게시판 사용정보를 등록한다.
*
* @param bdUseVO
* @param bdUseInf
* @param sessionVO
* @param status
* @param model
* @return
* @throws Exception
*/
@RequestMapping("/cop/com/insertBBSUseInf.do")
public String insertBBSUseInf(@ModelAttribute("searchVO") BoardUseInfVO bdUseVO, @ModelAttribute("boardUseInf") BoardUseInf boardUseInf,
BindingResult bindingResult, Map<String, Object> commandMap, SessionStatus status, ModelMap model) throws Exception {
LoginVO user = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser();
Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated();
beanValidator.validate(boardUseInf, bindingResult);
if (bindingResult.hasErrors()) {
return "egovframework/com/cop/com/EgovBoardUseInfRegist";
}
String trgetType = (String)commandMap.get("param_trgetType");
String registSeCode = "";
// CMMNTY 06/CLUB 05/SYSTEM(REGC01)
if ("CMMNTY".equals(trgetType)) {
registSeCode = "REGC06";
} else if ("CLUB".equals(trgetType)) {
registSeCode = "REGC05";
} else {
registSeCode = "REGC01";
}
boardUseInf.setUseAt("Y");
boardUseInf.setFrstRegisterId(user.getUniqId());
boardUseInf.setRegistSeCode(registSeCode);
if (isAuthenticated) {
bbsUseService.insertBBSUseInf(boardUseInf);
}
return "forward:/cop/com/selectBBSUseInfs.do?page=9100042";
}
/**
* 게시판 사용정보 목록을 조회한다.
*
* @param bdUseVO
* @param sessionVO
* @param model
* @return
* @throws Exception
*/
@IncludedInfo(name="게시판사용정보", order = 190 ,gid = 40)
@RequestMapping("/cop/com/selectBBSUseInfs.do")
public String selectBBSUseInfs(@ModelAttribute("searchVO") BoardUseInfVO bdUseVO, ModelMap model, HttpSession session) throws Exception {
session.removeAttribute("page");
bdUseVO.setPageUnit(propertyService.getInt("pageUnit"));
bdUseVO.setPageSize(propertyService.getInt("pageSize"));
PaginationInfo paginationInfo = new PaginationInfo();
paginationInfo.setCurrentPageNo(bdUseVO.getPageIndex());
paginationInfo.setRecordCountPerPage(bdUseVO.getPageUnit());
paginationInfo.setPageSize(bdUseVO.getPageSize());
bdUseVO.setFirstIndex(paginationInfo.getFirstRecordIndex());
bdUseVO.setLastIndex(paginationInfo.getLastRecordIndex());
bdUseVO.setRecordCountPerPage(paginationInfo.getRecordCountPerPage());
Map<String, Object> map = bbsUseService.selectBBSUseInfs(bdUseVO);
int totCnt = Integer.parseInt((String)map.get("resultCnt"));
paginationInfo.setTotalRecordCount(totCnt);
model.addAttribute("resultList", map.get("resultList"));
model.addAttribute("resultCnt", map.get("resultCnt"));
model.addAttribute("paginationInfo", paginationInfo);
if(EgovComponentChecker.hasComponent("EgovCommunityManageService")){//2011.09.15
model.addAttribute("useCommunity", "true");
}
if(EgovComponentChecker.hasComponent("EgovClubManageService")){//2011.09.15
model.addAttribute("useClub", "true");
}
return "egovframework/com/cop/com/EgovBoardUseInfList";
}
/**
* 게시판 사용정보를 수정한다.
*
* @param bdUseVO
* @param bdUseInf
* @param sessionVO
* @param status
* @param model
* @return
* @throws Exception
*/
@RequestMapping("/cop/com/updateBBSUseInf.do")
public String updateBBSUseInf(@ModelAttribute("searchVO") BoardUseInfVO bdUseVO, @ModelAttribute("boardUseInf") BoardUseInf boardUseInf,
SessionStatus status, ModelMap model) throws Exception {
//LoginVO user = (LoginVO)EgovUserDetailsHelper.getAuthenticatedUser();
Boolean isAuthenticated = EgovUserDetailsHelper.isAuthenticated();
if (isAuthenticated) {
bbsUseService.updateBBSUseInf(boardUseInf);
}
return "forward:/cop/com/selectBBSUseInfs.do?page=9100042";
}
/**
* 게시판 사용정보에 대한 상세정보를 조회한다.
*
* @param bdUseVO
* @param sessionVO
* @param model
* @return
* @throws Exception
*/
@RequestMapping("/cop/com/selectBBSUseInf.do")
public String selectBBSUseInf(@ModelAttribute("searchVO") BoardUseInfVO bdUseVO, ModelMap model, HttpServletRequest request) throws Exception {
BoardUseInfVO vo = bbsUseService.selectBBSUseInf(bdUseVO);
// 시스템 사용 게시판의 경우 URL 표시
if ("SYSTEM_DEFAULT_BOARD".equals(vo.getTrgetId())) {
if (vo.getBbsTyCode().equals("BBST02")) { // 익명게시판
vo.setProvdUrl(request.getContextPath()+ "/cop/bbs/anonymous/selectBoardList.do?bbsId=" + vo.getBbsId());
} else {
vo.setProvdUrl(request.getContextPath()+ "/cop/bbs/selectBoardList.do?bbsId=" + vo.getBbsId());
}
}
model.addAttribute("bdUseVO", vo);
return "egovframework/com/cop/com/EgovBoardUseInfInqire";
}
}

View File

@ -0,0 +1,142 @@
package egovframework.com.cop.cmt.service.impl;
import java.util.List;
import org.springframework.stereotype.Repository;
import egovframework.com.cmm.service.impl.EgovComAbstractDAO;
import egovframework.com.cop.bbs.service.BoardVO;
import egovframework.com.cop.bbs.service.Comment;
import egovframework.com.cop.bbs.service.CommentVO;
/**
* 댓글관리를 위한 데이터 접근 클래스
* @author 공통컴포넌트개발팀 한성곤
* @since 2009.06.29
* @version 1.0
* @see
*
* <pre>
* << 개정이력(Modification Information) >>
*
* 수정일 수정자 수정내용
* ------- -------- ---------------------------
* 2009.06.29 한성곤 최초 생성
*
* </pre>
*/
@Repository("BBSCommentDAO")
public class BBSCommentDAO extends EgovComAbstractDAO {
/**
* 댓글에 대한 목록을 조회 한다.
*
* @param commentVO
* @return
* @throws Exception
*/
@SuppressWarnings("unchecked")
public List<CommentVO> selectCommentList(CommentVO commentVO) throws Exception {
return list("BBSCommentDAO.selectCommentList", commentVO);
}
/**
* 커뮤니티 댓글에 대한 목록을 조회 한다.
*
* @param commentVO
* @return
* @throws Exception
*/
@SuppressWarnings("unchecked")
public List<CommentVO> selectCommCommentList(CommentVO commentVO) throws Exception {
return list("BBSCommentDAO.selectCommCommentList", commentVO);
}
/**
* 댓글에 대한 목록 건수를 조회 한다.
*
* @param commentVO
* @return
* @throws Exception
*/
public int selectCommentListCnt(CommentVO commentVO) throws Exception {
return (Integer)getSqlMapClientTemplate().queryForObject("BBSCommentDAO.selectCommentListCnt", commentVO);
}
/**
* 커뮤니티 댓글에 대한 목록 건수를 조회 한다.
*
* @param commentVO
* @return
* @throws Exception
*/
public int selectCommentCommListCnt(CommentVO commentVO) throws Exception {
return (Integer)getSqlMapClientTemplate().queryForObject("BBSCommentDAO.selectCommCommentListCnt", commentVO);
}
/**
* 댓글을 등록한다.
*
* @param comment
* @throws Exception
*/
public void insertComment(Comment comment) throws Exception {
insert("BBSCommentDAO.insertComment", comment);
}
/**
* 댓글을 삭제한다.
*
* @param commentVO
* @throws Exception
*/
public void deleteComment(CommentVO commentVO) throws Exception {
update("BBSCommentDAO.deleteComment", commentVO);
}
/**
* 댓글에 대한 내용을 조회한다.
*
* @param commentVO
* @return
* @throws Exception
*/
public Comment selectComment(CommentVO commentVO) throws Exception {
return (Comment)selectByPk("BBSCommentDAO.selectComment", commentVO);
}
/**
* 댓글에 대한 내용을 수정한다.
*
* @param comment
* @throws Exception
*/
public void updateComment(Comment comment) throws Exception {
insert("BBSCommentDAO.updateComment", comment);
}
/**
* 댓글에 대한 패스워드를 조회 한다.
*
* @param comment
* @return
* @throws Exception
*/
public String getCommentPassword(Comment comment) throws Exception {
return (String)getSqlMapClientTemplate().queryForObject("BBSCommentDAO.getCommentPassword", comment);
}
/**
* 최근 댓글을 가져온다
*
* @param CommentVO
* @return
* @throws Exception
*/
@SuppressWarnings("unchecked")
public List<CommentVO> selectNewCommentList(CommentVO commentVO) throws Exception {
return list("BBSCommentDAO.selectNewCommentList", commentVO);
}
}

View File

@ -0,0 +1,146 @@
package egovframework.com.cop.cmt.service.impl;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import egovframework.com.cop.bbs.service.BoardMaster;
import egovframework.com.cop.bbs.service.BoardMasterVO;
import egovframework.com.cop.bbs.service.BoardVO;
import egovframework.com.cop.bbs.service.Comment;
import egovframework.com.cop.bbs.service.CommentVO;
import egovframework.com.cop.bbs.service.EgovBBSCommentService;
import egovframework.com.cop.bbs.service.impl.BBSAddedOptionsDAO;
import egovframework.rte.fdl.cmmn.AbstractServiceImpl;
import egovframework.rte.fdl.idgnr.EgovIdGnrService;
/**
* 댓글관리를 위한 서비스 구현 클래스
* @author 공통컴포넌트개발팀 한성곤
* @since 2009.06.29
* @version 1.0
* @see
*
* <pre>
* << 개정이력(Modification Information) >>
*
* 수정일 수정자 수정내용
* ------- -------- ---------------------------
* 2009.06.29 한성곤 최초 생성
* 2011.09.15 서준식 addedOptions 적용 방법 수정
* 2011.10.18 서준식 AnswerNo 자동 생성 방식으로 변경
* </pre>
*/
@Service("EgovBBSCommentService")
public class EgovBBSCommentServiceImpl extends AbstractServiceImpl implements EgovBBSCommentService {
@Resource(name = "BBSAddedOptionsDAO")
private BBSAddedOptionsDAO addedOptionsDAO;
@Resource(name = "BBSCommentDAO")
private BBSCommentDAO bbsCommentDAO;
@Resource(name = "egovAnswerNoGnrService")
private EgovIdGnrService egovAnswerNoGnrService;
/**
* 댓글 사용 가능 여부를 확인한다.
*/
public boolean canUseComment(String bbsId) throws Exception {
//String flag = EgovProperties.getProperty("Globals.addedOptions");
//if (flag != null && flag.trim().equalsIgnoreCase("true")) {//2011.09.15
BoardMaster vo = new BoardMaster();
vo.setBbsId(bbsId);
BoardMasterVO options = addedOptionsDAO.selectAddedOptionsInf(vo);
if (options == null) {
return false;
}
if (options.getCommentAt().equals("Y")) {
return true;
}
//}
return false;
}
/**
* 댓글에 대한 목록을 조회 한다.
*/
public Map<String, Object> selectCommentList(CommentVO commentVO) throws Exception {
List<CommentVO> result = bbsCommentDAO.selectCommentList(commentVO);
int cnt = bbsCommentDAO.selectCommentListCnt(commentVO);
Map<String, Object> map = new HashMap<String, Object>();
map.put("resultList", result);
map.put("resultCnt", Integer.toString(cnt));
return map;
}
/**
* 커뮤니티 댓글에 대한 목록을 조회 한다.
*/
public Map<String, Object> selectCommCommentList(CommentVO commentVO) throws Exception {
List<CommentVO> result = bbsCommentDAO.selectCommCommentList(commentVO);
int cnt = bbsCommentDAO.selectCommentListCnt(commentVO);
Map<String, Object> map = new HashMap<String, Object>();
map.put("resultList", result);
map.put("resultCnt", Integer.toString(cnt));
return map;
}
/**
* 댓글을 등록한다.
*/
public void insertComment(Comment comment) throws Exception {
comment.setCommentNo(egovAnswerNoGnrService.getNextLongId() + "");//2011.10.18
bbsCommentDAO.insertComment(comment);
}
/**
* 댓글을 삭제한다.
*/
public void deleteComment(CommentVO commentVO) throws Exception {
bbsCommentDAO.deleteComment(commentVO);
}
/**
* 댓글에 대한 내용을 조회한다.
*/
public Comment selectComment(CommentVO commentVO) throws Exception {
return bbsCommentDAO.selectComment(commentVO);
}
/**
* 댓글에 대한 내용을 수정한다.
*/
public void updateComment(Comment comment) throws Exception {
bbsCommentDAO.updateComment(comment);
}
/**
* 댓글 패스워드를 가져온다.
*/
public String getCommentPassword(Comment comment) throws Exception {
return bbsCommentDAO.getCommentPassword(comment);
}
/**
* 최근 댓글을 가져온다
*/
public List<CommentVO> selectNewCommentList(CommentVO commentVO) throws Exception {
return bbsCommentDAO.selectNewCommentList(commentVO);
}
}

Some files were not shown because too many files have changed in this diff Show More