dbms_primeidc/idcproject/src/idc/service/command/IdcServiceAdditionalCmd.java
2025-03-20 18:38:28 +09:00

427 lines
12 KiB
Java

package idc.service.command;
import java.sql.*;
import java.sql.Date;
import java.util.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import idc.model.*;
public class IdcServiceAdditionalCmd implements IdcCmd{
IdcDAO dao = new IdcDAO();
//부가서비스 정보 보여주기
public void execute(HttpServletRequest request, HttpServletResponse response) {
String service_code = request.getParameter("service_code");
IdcAdditionalServiceDTO iasd;
iasd = getClient_info(service_code);
//부가서비스추가부분
request.setAttribute("iasd", iasd);
//부가서비스 진행 내역
ArrayList<IpAddDTO> add_list;
add_list = getAddList(service_code);
request.setAttribute("add_list", add_list);
//부가서비스 시작일
IdcAdditionalStartDTO start_dto;
start_dto = getStartList(service_code);
request.setAttribute("start_dto", start_dto);
//1회성&기타 서비스 리스트
ArrayList<IdcServiceETCManageDTO> etc_list;
etc_list = getEtcList(service_code);
request.setAttribute("etc_list", etc_list);
String flag = request.getParameter("flag");
if(flag == null || flag == "") flag = "now";
request.setAttribute("flag", flag);
//서비스 가격정보
IdcAmountDTO amount_dto;
amount_dto = getAmountDTO(service_code);
request.setAttribute("amount_dto", amount_dto);
}
public IdcAdditionalServiceDTO getClient_info(String service_code){
Connection conn = null;
PreparedStatement pstmt = null, pstmt1 = null, pstmt2 = null;
ResultSet rs = null, rs1 = null, rs2 = null;
IdcAdditionalServiceDTO iasd = new IdcAdditionalServiceDTO();
String client_name = null;
String client_code = null;
String server_code = null;
String server_process = null;
String server_spec = null;
String server_cpuname = null;
String server_ram = null;
String server_hdd = null;
String service_amount = null;
String client_money = null;
try {
conn = dao.getConn();
String sql = "SELECT client_code, server_code, service_amount FROM serviceDB WHERE service_code=?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, service_code);
rs = pstmt.executeQuery();
if(rs.next()){
client_code = rs.getString("client_code");
server_code = rs.getString("server_code");
service_amount = rs.getString("service_amount");
iasd.setClient_code(client_code);
iasd.setServer_code(server_code);
iasd.setService_amount(service_amount);
iasd.setService_code(service_code);
}
if(client_code != null){
sql = "SELECT client_name, client_money FROM clientDB WHERE client_code=?";
pstmt1 = conn.prepareStatement(sql);
pstmt1.setString(1, client_code);
rs1 = pstmt1.executeQuery();
if(rs1.next()){
client_name = rs1.getString("client_name");
client_money = rs1.getString("client_money");
iasd.setClient_name(client_name);
iasd.setClient_money(client_money);
}
}
if(server_code != null){
sql = "SELECT server_process, server_spec, server_cpuname, server_ram, server_hdd FROM serverDB WHERE server_code=?";
pstmt2 = conn.prepareStatement(sql);
pstmt2.setString(1, server_code);
rs2 = pstmt2.executeQuery();
if(rs2.next()){
server_process = rs2.getString("server_process");
server_spec = rs2.getString("server_spec");
server_cpuname = rs2.getString("server_cpuname");
server_ram = rs2.getString("server_ram");
server_hdd = rs2.getString("server_hdd");
iasd.setServer_process(server_process);
iasd.setServer_spec(server_spec);
iasd.setServer_cpuname(server_cpuname);
iasd.setServer_ram(server_ram);
iasd.setServer_hdd(server_hdd);
}
}
} catch (Exception e) {
e.printStackTrace();
} finally{
try {
if(rs != null) rs.close();
if(pstmt != null) pstmt.close();
if(rs1 != null) rs1.close();
if(pstmt1 != null) pstmt1.close();
if(rs2 != null) rs2.close();
if(pstmt2 != null) pstmt2.close();
if(conn != null) conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
return iasd;
}
private ArrayList<IpAddDTO> getAddList(String service_code){
ArrayList<IpAddDTO> list = new ArrayList<IpAddDTO>();
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
try {
conn = dao.getConn();
String sql = "SELECT addDB_handle_date, addDB_case, addDB_ip, addDB_manager ";
sql +=" FROM addDB ";
sql +=" WHERE service_code=? ";
sql +=" ORDER BY addDB_num asc ";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, service_code);
rs = pstmt.executeQuery();
while(rs.next()){
Date addDB_handle_date = rs.getDate("addDB_handle_date");
String addDB_case = rs.getString("addDB_case");
String addDB_ip = rs.getString("addDB_ip");
String addDB_manager = rs.getString("addDB_manager");
IpAddDTO writing = new IpAddDTO();
writing.setAddDB_handle_date(addDB_handle_date);
writing.setAddDB_case(addDB_case);
writing.setAddDB_ip(addDB_ip);
writing.setAddDB_manager(addDB_manager);
list.add(writing);
}
} catch (Exception e) {
e.printStackTrace();
} finally{
try {
if(rs != null) rs.close();
if(pstmt != null) rs.close();
if(conn != null) conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
return list;
}
private IdcAdditionalStartDTO getStartList(String service_code){
IdcAdditionalStartDTO dto = new IdcAdditionalStartDTO();
Connection conn = null;
PreparedStatement pstmt = null, pstmt1 = null, pstmt2 = null, pstmt3 = null;
ResultSet rs = null, rs1 = null, rs2 = null, rs3 = null;
String sql;
try {
conn = dao.getConn();
sql = "SELECT addDB_handle_date, addDB_ip FROM addDB WHERE service_code=? and addDB_case='ip' order by addDB_handle_date desc, addDB_num desc limit 1";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, service_code);
rs = pstmt.executeQuery();
if(rs.next()){
Date addDB_handle_date = rs.getDate("addDB_handle_date");
String addDB_ip = rs.getString("addDB_ip");
dto.setIp(addDB_ip);
dto.setIp_date(addDB_handle_date);
}
sql = "SELECT addDB_handle_date, addDB_ip ";
sql += " FROM addDB ";
sql += " WHERE service_code=? and addDB_case='cs' ";
sql += " or service_code=? and addDB_case='kcs' ";
sql += " order by addDB_handle_date desc , addDB_num desc ";
sql += " limit 1";
pstmt1 = conn.prepareStatement(sql);
pstmt1.setString(1, service_code);
pstmt1.setString(2, service_code);
rs1 = pstmt1.executeQuery();
if(rs1.next()){
Date addDB_handle_date = rs1.getDate("addDB_handle_date");
String addDB_ip = rs1.getString("addDB_ip");
dto.setCs(addDB_ip);
dto.setCs_date(addDB_handle_date);
}
sql = "SELECT behavior_date, behavior FROM historyDB WHERE service_code=? and behavior='defence 수정' ";
sql += "ORDER BY behavior_date desc, history_num desc limit 0, 1";
pstmt2 = conn.prepareStatement(sql);
pstmt2.setString(1, service_code);
rs2 = pstmt2.executeQuery();
if(rs2.next()){
Date addDB_handle_date = rs2.getDate("behavior_date");
String addDB_ip = rs2.getString("behavior");
dto.setDefence(addDB_ip);
dto.setDefence_date(addDB_handle_date);
}
sql = "SELECT onetime_handle_date, onetime_case FROM onetimeDB WHERE service_code=? order by onetime_handle_date desc, onetime_num desc limit 0, 1";
pstmt3 = conn.prepareStatement(sql);
pstmt3.setString(1, service_code);
rs3 = pstmt3.executeQuery();
if(rs3.next()){
Date addDB_handle_date = rs3.getDate("onetime_handle_date");
String addDB_ip = rs3.getString("onetime_case");
dto.setOnetime(addDB_ip);
dto.setOnetime_date(addDB_handle_date);
}
} catch (Exception e) {
e.printStackTrace();
} finally{
try {
if(rs != null) rs.close();
if(pstmt != null) pstmt.close();
if(rs1 != null) rs1.close();
if(pstmt1 != null) pstmt1.close();
if(rs2 != null) rs2.close();
if(pstmt2 != null) pstmt2.close();
if(rs3 != null) rs3.close();
if(pstmt3 != null) pstmt3.close();
if(conn != null) conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
return dto;
}
private ArrayList<IdcServiceETCManageDTO> getEtcList(String service_code){
ArrayList<IdcServiceETCManageDTO> list = new ArrayList<IdcServiceETCManageDTO>();
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet rs = null;
try {
conn = dao.getConn();
String sql = "select onetime_handle_date, onetime_case, onetime_sub, onetime_manager from onetimeDB where service_code=?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, service_code);
rs = pstmt.executeQuery();
while(rs.next()){
Date onetime_handle_date = rs.getDate("onetime_handle_date");
String onetime_case = rs.getString("onetime_case");
String onetime_sub = rs.getString("onetime_sub");
String onetime_manager = rs.getString("onetime_manager");
IdcServiceETCManageDTO writing = new IdcServiceETCManageDTO();
writing.setOnetime_handle_date(onetime_handle_date);
writing.setOnetime_case(onetime_case);
writing.setOnetime_sub(onetime_sub);
writing.setOnetime_manager(onetime_manager);
list.add(writing);
}
} catch (Exception e) {
e.printStackTrace();
} finally{
try {
if(rs != null) rs.close();
if(pstmt != null) pstmt.close();
if(conn != null) conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
return list;
}
private IdcAmountDTO getAmountDTO(String service_code){
IdcAmountDTO writing = new IdcAmountDTO();
Connection conn = null;
PreparedStatement pstmt = null, pstmt1 = null, pstmt2 = null, pstmt3 = null;
ResultSet rs = null, rs1 = null, rs2 = null, rs3 = null;
String sql;
try{
conn = dao.getConn();
sql = "select amount_rack, amount_line, amount_cpu, amount_defence from amountDB where service_code=?";
pstmt = conn.prepareStatement(sql);
pstmt.setString(1, service_code);
rs = pstmt.executeQuery();
if(rs.next()){
String amount_rack = rs.getString("amount_rack");
String amount_line = rs.getString("amount_line");
String amount_cpu = rs.getString("amount_cpu");
String amount_defence = rs.getString("amount_defence");
writing.setAmount_rack(amount_rack);
writing.setAmount_line(amount_line);
writing.setAmount_cpu(amount_cpu);
writing.setAmount_defence(amount_defence);
}
writing.setAmount_ip("0");
writing.setAmount_cs("0");
writing.setAmount_vpn("0");
sql = "select addDB_amount from addDB where addDB_case='ip' and service_code=?";
pstmt1 = conn.prepareStatement(sql);
pstmt1.setString(1, service_code);
rs1 = pstmt1.executeQuery();
int ip_total = 0;
while(rs1.next()){
String addDB_amount = rs1.getString("addDB_amount");
if(addDB_amount != null && addDB_amount != ""){
ip_total += Integer.parseInt(addDB_amount);
}
}
writing.setAmount_ip(ip_total+"");
sql = "select addDB_amount from addDB where addDB_case='cs' and service_code=?";
pstmt2 = conn.prepareStatement(sql);
pstmt2.setString(1, service_code);
rs2 = pstmt2.executeQuery();
int cs_total = 0;
while(rs2.next()){
String addDB_amount = rs2.getString("addDB_amount");
if(addDB_amount != null && addDB_amount != ""){
cs_total += Integer.parseInt(addDB_amount);
}
}
writing.setAmount_cs(cs_total+"");
sql = "select addDB_amount from addDB where addDB_case='kcs' and service_code=?";
pstmt3 = conn.prepareStatement(sql);
pstmt3.setString(1, service_code);
rs3 = pstmt3.executeQuery();
int vpn_total = 0;
if(rs3.next()){
String addDB_amount = rs3.getString("addDB_amount");
if(addDB_amount != null && addDB_amount != ""){
vpn_total += Integer.parseInt(addDB_amount);
}
}
writing.setAmount_vpn(vpn_total+"");
} catch (Exception e) {
e.printStackTrace();
} finally{
try {
if(rs != null) rs.close();
if(pstmt != null) pstmt.close();
if(rs1 != null) rs1.close();
if(pstmt1 != null) pstmt1.close();
if(rs2 != null) rs2.close();
if(pstmt2 != null) pstmt2.close();
if(rs3 != null) rs3.close();
if(pstmt3 != null) pstmt3.close();
if(conn != null) conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
return writing;
}
}