package seed.manager.bbs.service; import java.util.Date; import java.util.List; import java.util.Map; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import egovframework.rte.fdl.cmmn.AbstractServiceImpl; import seed.dao.BbsItemDAO; import seed.map.T_BBS_ITEM; import seed.map.T_MEMBER; @Service public class ManagerBbsItemServiceImpl extends AbstractServiceImpl implements ManagerBbsItemService{ @Autowired private BbsItemDAO bbsItemDAO; //ManagerBbsController public List> getBbsItemMiniList(Integer bbsSetIdx, String[] qryColumns){ return bbsItemDAO.getBbsItemMiniList(bbsSetIdx, qryColumns); } //ManagerBbsController public List getBbsItemViewOrderList(Integer bbsSetIdx, String[] qryColumns){ return bbsItemDAO.getBbsItemViewOrderList(bbsSetIdx, qryColumns); } //ManagerBbsController public List getBbsItemMiniOrderList(Integer bbsSetIdx, String[] qryColumns){ return bbsItemDAO.getBbsItemMiniOrderList(bbsSetIdx, qryColumns); } //ManagerBbsController public List> getBbsItemList(Integer bbsSetIdx, String orderType, String[] qryColumns){ return bbsItemDAO.getBbsItemList(bbsSetIdx, orderType, qryColumns); } //ManagerBbsController public List getBbsItemValuesList(Integer bbsSetIdx, String orderType, String[] qryColumns){ return bbsItemDAO.getBbsItemValuesList(bbsSetIdx, orderType, qryColumns); } //ManagerBbsController public List getBbsItemValuesGroupList(Integer bbsSetIdx, String bbsItemGroup, String[] qryColumns){ return bbsItemDAO.getBbsItemValuesGroupList(bbsSetIdx, bbsItemGroup, qryColumns); } //ManagerBbsController public Long getBbsItemListCnt(Integer bbsSetIdx){ return bbsItemDAO.getBbsItemListCnt(bbsSetIdx); } //ManagerBbsController public T_BBS_ITEM getBbsItemValueForm(Integer bbsSetIdx, String bbsItemGroup){ return bbsItemDAO.getBbsItemValueForm(bbsSetIdx, bbsItemGroup); } //ManagerBbsController public T_BBS_ITEM getBbsItemForm(Integer bbsSetIdx, String bbsItemGroup){ return bbsItemDAO.getBbsItemForm(bbsSetIdx, bbsItemGroup); } //ManagerBbsController @Transactional public String setBbsItemRegProc(T_BBS_ITEM tBbsItem, Integer[] bbsItemWidth, Integer[] bbsItemHeight, String[] bbsItemValues, Integer memberIdx){ String bbsItemGroup = ""; T_MEMBER tMember = new T_MEMBER(); tMember.setMemberIdx(memberIdx); String[] qryColumns = {"groupBy", "bbsItemGroup"}; List> tBbsItemMapList = bbsItemDAO.getBbsItemGroupList(tBbsItem.gettBbsSet().getBbsSetIdx(), qryColumns); String[] bbsItemGroups = {"bbsDataItemA1", "bbsDataItemB2", "bbsDataItemC3", "bbsDataItemD4", "bbsDataItemE5", "bbsDataItemF6", "bbsDataItemG7", "bbsDataItemH8", "bbsDataItemI9", "bbsDataItemJ10"}; if(tBbsItemMapList.size() > 0){ for(int g=0; g tBbsItemMapDB = tBbsItemMapList.get(g); if(!tBbsItemMapDB.get("_bbsItemGroup").equals(bbsItemGroups[g])){ bbsItemGroup = bbsItemGroups[g]; break; } } if(bbsItemGroup.equals("")){ bbsItemGroup = bbsItemGroups[tBbsItemMapList.size()]; } }else{ bbsItemGroup = bbsItemGroups[0]; } Integer bbsItemMiniOrder = bbsItemDAO.getBbsItemMiniOrderFormCnt(tBbsItem.gettBbsSet().getBbsSetIdx())+1; Integer bbsItemListOrder = bbsItemDAO.getBbsItemListOrderFormCnt(tBbsItem.gettBbsSet().getBbsSetIdx())+1; Integer bbsItemViewOrder = bbsItemDAO.getBbsItemViewOrderFormCnt(tBbsItem.gettBbsSet().getBbsSetIdx())+1; if(bbsItemValues.length == 0){ tBbsItem.settMember(tMember); tBbsItem.setBbsItemValue(""); tBbsItem.setBbsItemWidth(bbsItemWidth[0]); if(bbsItemHeight.length > 0){ //TEXTAREA 인 경우에만 적용 tBbsItem.setBbsItemHeight(bbsItemHeight[0]); } tBbsItem.setBbsItemGroup(bbsItemGroup); if(tBbsItem.getBbsItemMiniList() != null && tBbsItem.getBbsItemMiniList().equals("Y")){ tBbsItem.setBbsItemMiniOrder(bbsItemMiniOrder); } tBbsItem.setBbsItemListOrder(bbsItemListOrder); tBbsItem.setBbsItemViewOrder(bbsItemViewOrder); tBbsItem.setBbsItemType("A"); tBbsItem.setBbsItemStatus("U"); tBbsItem.setBbsItemCount(1); tBbsItem.setBbsItemRegDate(new Date()); if(bbsItemDAO.setBbsItemRegProc(tBbsItem).getBbsItemIdx() == 0){ bbsItemGroup = ""; } }else{ for(int i=0; i 1){ //TEXT, LINK, TEXTAREA 인 경우에만 적용 tBbsItem.setBbsItemWidth(bbsItemWidth[i]); } if(bbsItemHeight.length > 0){ //TEXTAREA 인 경우에만 적용 tBbsItem.setBbsItemHeight(bbsItemHeight[i]); } tBbsItem.setBbsItemValue(bbsItemValues[i]); tBbsItem.setBbsItemGroup(bbsItemGroup); if(tBbsItem.getBbsItemMiniList() != null && tBbsItem.getBbsItemMiniList().equals("Y")){ tBbsItem.setBbsItemMiniOrder(bbsItemMiniOrder); } tBbsItem.setBbsItemListOrder(bbsItemListOrder); tBbsItem.setBbsItemViewOrder(bbsItemViewOrder); tBbsItem.setBbsItemType("A"); tBbsItem.setBbsItemStatus("U"); tBbsItem.setBbsItemRegDate(new Date()); if(bbsItemDAO.setBbsItemRegProc(tBbsItem).getBbsItemIdx() == 0){ bbsItemGroup = ""; break; } } } return bbsItemGroup; } //ManagerBbsController @Transactional public boolean setBbsItemModProc(T_BBS_ITEM tBbsItem, Integer[] bbsItemWidth, Integer[] bbsItemHeight, String[] bbsItemValues, Integer[] bbsItemIdxs){ boolean success = true; Integer bbsItemMiniOrder = null; if(bbsItemValues.length > 0 && bbsItemIdxs.length > 0){//bbsItemValues와 bbsItemIdxs의 값이 있으면 기존값 수정 for(int i=0; i 1){ //TEXT, LINK, TEXTAREA 인 경우에만 적용 tBbsItemDB.setBbsItemWidth(bbsItemWidth[i]); } if(bbsItemHeight.length > 0){ //TEXTAREA 인 경우에만 적용 tBbsItemDB.setBbsItemHeight(bbsItemHeight[i]); } tBbsItemDB.setBbsItemName(tBbsItem.getBbsItemName()); tBbsItemDB.setBbsItemPattern(tBbsItem.getBbsItemPattern()); tBbsItemDB.setBbsItemWL(tBbsItem.getBbsItemWL()); tBbsItemDB.setBbsItemText(tBbsItem.getBbsItemText()); tBbsItemDB.setBbsItemEssential(tBbsItem.getBbsItemEssential()); tBbsItemDB.setBbsItemColWidth(tBbsItem.getBbsItemColWidth()); tBbsItemDB.setBbsItemCount(tBbsItem.getBbsItemCount()); if(tBbsItem.getBbsItemDataMiniLength() == null){ tBbsItemDB.setBbsItemDataMiniLength(0); }else{ tBbsItemDB.setBbsItemDataMiniLength(tBbsItem.getBbsItemDataMiniLength()); } if(tBbsItem.getBbsItemDataLength() == null){ tBbsItemDB.setBbsItemDataLength(0); }else{ tBbsItemDB.setBbsItemDataLength(tBbsItem.getBbsItemDataLength()); } tBbsItemDB.setBbsItemMiniList(tBbsItem.getBbsItemMiniList()); tBbsItemDB.setBbsItemList(tBbsItem.getBbsItemList()); tBbsItemDB.setBbsItemView(tBbsItem.getBbsItemView()); tBbsItemDB.setBbsItemLink(tBbsItem.getBbsItemLink()); tBbsItemDB.setBbsItemSearch(tBbsItem.getBbsItemSearch()); tBbsItemDB.setBbsItemActiveHidden(tBbsItem.getBbsItemActiveHidden()); tBbsItemDB.setBbsItemMiniOrder(bbsItemMiniOrder); if(!bbsItemDAO.setBbsItemModProc(tBbsItemDB)){ success = false; break; } } }else if(bbsItemValues.length > 0){//bbsItemValues에만 값이 있으면 비교하여 수정 및 삭제 또는 추가 T_BBS_ITEM tBbsItemDB = bbsItemDAO.getBbsItemForm(tBbsItem.getBbsItemIdx()); String[] qryColumns = null; List tBbsItemList = bbsItemDAO.getBbsItemValuesGroupList(tBbsItemDB.gettBbsSet().getBbsSetIdx(), tBbsItemDB.getBbsItemGroup(), qryColumns); if(tBbsItemList.size() > bbsItemValues.length){//기존의 row수가 현재보다 크면 수정 후 삭제 for(int i=0; i 1){ //TEXT, LINK, TEXTAREA 인 경우에만 적용 tBbsItemTmp.setBbsItemWidth(bbsItemWidth[i]); } if(bbsItemHeight.length > 0){ //TEXTAREA 인 경우에만 적용 tBbsItemTmp.setBbsItemHeight(bbsItemHeight[i]); } tBbsItemTmp.setBbsItemName(tBbsItem.getBbsItemName()); tBbsItemTmp.setBbsItemPattern(tBbsItem.getBbsItemPattern()); tBbsItemTmp.setBbsItemWL(tBbsItem.getBbsItemWL()); tBbsItemTmp.setBbsItemText(tBbsItem.getBbsItemText()); tBbsItemTmp.setBbsItemEssential(tBbsItem.getBbsItemEssential()); tBbsItemTmp.setBbsItemColWidth(tBbsItem.getBbsItemColWidth()); tBbsItemTmp.setBbsItemCount(tBbsItem.getBbsItemCount()); if(tBbsItem.getBbsItemDataMiniLength() == null){ tBbsItemTmp.setBbsItemDataMiniLength(0); }else{ tBbsItemTmp.setBbsItemDataMiniLength(tBbsItem.getBbsItemDataMiniLength()); } if(tBbsItem.getBbsItemDataLength() == null){ tBbsItemTmp.setBbsItemDataLength(0); }else{ tBbsItemTmp.setBbsItemDataLength(tBbsItem.getBbsItemDataLength()); } tBbsItemTmp.setBbsItemMiniList(tBbsItem.getBbsItemMiniList()); tBbsItemTmp.setBbsItemList(tBbsItem.getBbsItemList()); tBbsItemTmp.setBbsItemView(tBbsItem.getBbsItemView()); tBbsItemTmp.setBbsItemLink(tBbsItem.getBbsItemLink()); tBbsItemTmp.setBbsItemSearch(tBbsItem.getBbsItemSearch()); tBbsItemTmp.setBbsItemActiveHidden(tBbsItem.getBbsItemActiveHidden()); tBbsItemTmp.setBbsItemMiniOrder(bbsItemMiniOrder); if(!bbsItemDAO.setBbsItemModProc(tBbsItemTmp)){ success = false; break; } }else{ if(!bbsItemDAO.setBbsItemDelProc(tBbsItemTmp)){ success = false; break; } } } }else{//기존의 row수가 현재보다 작거나 같으면 수정 후 추가 또는 수정 for(int i=0; i 1){ //TEXT, LINK, TEXTAREA 인 경우에만 적용 tBbsItemTmp.setBbsItemWidth(bbsItemWidth[i]); } if(bbsItemHeight.length > 0){ //TEXTAREA 인 경우에만 적용 tBbsItemTmp.setBbsItemHeight(bbsItemHeight[i]); } tBbsItemTmp.setBbsItemName(tBbsItem.getBbsItemName()); tBbsItemTmp.setBbsItemPattern(tBbsItem.getBbsItemPattern()); tBbsItemTmp.setBbsItemWL(tBbsItem.getBbsItemWL()); tBbsItemTmp.setBbsItemText(tBbsItem.getBbsItemText()); tBbsItemTmp.setBbsItemEssential(tBbsItem.getBbsItemEssential()); tBbsItemTmp.setBbsItemColWidth(tBbsItem.getBbsItemColWidth()); tBbsItemTmp.setBbsItemCount(tBbsItem.getBbsItemCount()); if(tBbsItem.getBbsItemDataMiniLength() == null){ tBbsItemTmp.setBbsItemDataMiniLength(0); }else{ tBbsItemTmp.setBbsItemDataMiniLength(tBbsItem.getBbsItemDataMiniLength()); } if(tBbsItem.getBbsItemDataLength() == null){ tBbsItemTmp.setBbsItemDataLength(0); }else{ tBbsItemTmp.setBbsItemDataLength(tBbsItem.getBbsItemDataLength()); } tBbsItemTmp.setBbsItemMiniList(tBbsItem.getBbsItemMiniList()); tBbsItemTmp.setBbsItemList(tBbsItem.getBbsItemList()); tBbsItemTmp.setBbsItemView(tBbsItem.getBbsItemView()); tBbsItemTmp.setBbsItemLink(tBbsItem.getBbsItemLink()); tBbsItemTmp.setBbsItemSearch(tBbsItem.getBbsItemSearch()); tBbsItemTmp.setBbsItemActiveHidden(tBbsItem.getBbsItemActiveHidden()); tBbsItemTmp.setBbsItemMiniOrder(bbsItemMiniOrder); if(!bbsItemDAO.setBbsItemModProc(tBbsItemTmp)){ success = false; break; } }else{ T_BBS_ITEM tBbsItemTmp = new T_BBS_ITEM(); tBbsItemTmp.setBbsItemValue(bbsItemValues[i]); if(bbsItemWidth.length == 1){ tBbsItemTmp.setBbsItemWidth(bbsItemWidth[0]); }else if(bbsItemWidth.length > 1){ //TEXT, LINK, TEXTAREA 인 경우에만 적용 tBbsItemTmp.setBbsItemWidth(bbsItemWidth[i]); } if(bbsItemHeight.length > 0){ //TEXTAREA 인 경우에만 적용 tBbsItemTmp.setBbsItemHeight(bbsItemHeight[i]); } tBbsItemTmp.setBbsItemName(tBbsItem.getBbsItemName()); tBbsItemTmp.setBbsItemPattern(tBbsItem.getBbsItemPattern()); tBbsItemTmp.setBbsItemWL(tBbsItem.getBbsItemWL()); tBbsItemTmp.setBbsItemText(tBbsItem.getBbsItemText()); tBbsItemTmp.setBbsItemEssential(tBbsItem.getBbsItemEssential()); tBbsItemTmp.setBbsItemColWidth(tBbsItem.getBbsItemColWidth()); tBbsItemTmp.setBbsItemCount(tBbsItem.getBbsItemCount()); if(tBbsItem.getBbsItemDataMiniLength() == null){ tBbsItemTmp.setBbsItemDataMiniLength(0); }else{ tBbsItemTmp.setBbsItemDataMiniLength(tBbsItem.getBbsItemDataMiniLength()); } if(tBbsItem.getBbsItemDataLength() == null){ tBbsItemTmp.setBbsItemDataLength(0); }else{ tBbsItemTmp.setBbsItemDataLength(tBbsItem.getBbsItemDataLength()); } tBbsItemTmp.setBbsItemMiniList(tBbsItem.getBbsItemMiniList()); tBbsItemTmp.setBbsItemList(tBbsItem.getBbsItemList()); tBbsItemTmp.setBbsItemView(tBbsItem.getBbsItemView()); tBbsItemTmp.setBbsItemLink(tBbsItem.getBbsItemLink()); tBbsItemTmp.setBbsItemSearch(tBbsItem.getBbsItemSearch()); tBbsItemTmp.setBbsItemActiveHidden(tBbsItem.getBbsItemActiveHidden()); tBbsItemTmp.setBbsItemMiniOrder(bbsItemMiniOrder); tBbsItemTmp.setBbsItemType(tBbsItemDB.getBbsItemType()); tBbsItemTmp.setBbsItemStatus("U"); tBbsItemTmp.settBbsSet(tBbsItemDB.gettBbsSet()); tBbsItemTmp.settMember(tBbsItemDB.gettMember()); tBbsItemTmp.setBbsItemGroup(tBbsItemDB.getBbsItemGroup()); tBbsItemTmp.setBbsItemListOrder(tBbsItemDB.getBbsItemListOrder()); tBbsItemTmp.setBbsItemViewOrder(tBbsItemDB.getBbsItemViewOrder()); tBbsItemTmp.setBbsItemRegDate(tBbsItemDB.getBbsItemRegDate()); if(bbsItemDAO.setBbsItemRegProc(tBbsItemTmp).getBbsItemIdx() == 0){ success = false; break; } } } } }else{ T_BBS_ITEM tBbsItemTmpDB = bbsItemDAO.getBbsItemForm(tBbsItem.getBbsItemIdx()); if(tBbsItemTmpDB.getBbsItemMiniList() != null && tBbsItemTmpDB.getBbsItemMiniList().equals("Y")){ //기존에 미니리스트 목록 사용을 한경우 if(tBbsItem.getBbsItemMiniList() == null){//기존에 미니리스트를 사용 하다가 사용안한경우 //현재 bbsItemMiniOrder보다 큰 bbsItemMiniOrder를 -1 bbsItemDAO.setBbsItemMiniOrderProc(tBbsItem.gettBbsSet().getBbsSetIdx(), tBbsItemTmpDB.getBbsItemMiniOrder()); }else{ //기존의 미니리스트를 사용하고 현재도 사용한경우 bbsItemMiniOrder = tBbsItemTmpDB.getBbsItemMiniOrder(); } }else{ //기존에 미니리스트 목록 사용을 안한경우 if(tBbsItem.getBbsItemMiniList() != null && tBbsItem.getBbsItemMiniList().equals("Y")){//기존에 미니리스트를 사용안하다가 사용한 경우 //MAX bbsItemMiniOrder를 가져옴 bbsItemMiniOrder = bbsItemDAO.getBbsItemMiniOrderFormCnt(tBbsItem.gettBbsSet().getBbsSetIdx())+1; } } String[] qryColumns = null; List tBbsItemList = bbsItemDAO.getBbsItemValuesGroupList(tBbsItemTmpDB.gettBbsSet().getBbsSetIdx(), tBbsItemTmpDB.getBbsItemGroup(), qryColumns); if(tBbsItemList.size() > 1){ //SELECT, RADIO, CHECKBOX였다가 TEXT, LINK, TEXTAREA로 변경되었을때 추가 항목 삭제 (1개 이상일때) for(int i=0; i 0){ //TEXTAREA 인 경우에만 적용 tBbsItemDB.setBbsItemHeight(bbsItemHeight[0]); } tBbsItemDB.setBbsItemCount(tBbsItem.getBbsItemCount()); } if(!bbsItemDAO.setBbsItemModProc(tBbsItemDB)){ success = false; } } } return success; } //ManagerBbsController @Transactional public boolean setBbsItemDelProc(Integer bbsSetIdx, String bbsItemGroup){ boolean success = true; String[] qryColumns = null; List tBbsItemList = bbsItemDAO.getBbsItemValuesGroupList(bbsSetIdx, bbsItemGroup, qryColumns); for(int d=0; d 1){ bbsItemDAO.setBbsItemListOrderProc(tBbsItemTmp.gettBbsSet().getBbsSetIdx(), tBbsItemTmp.getBbsItemListOrder()); bbsItemDAO.setBbsItemViewOrderProc(tBbsItemTmp.gettBbsSet().getBbsSetIdx(), tBbsItemTmp.getBbsItemViewOrder()); if(tBbsItemTmp.getBbsItemMiniOrder() != null && tBbsItemTmp.getBbsItemMiniOrder() > 0){ bbsItemDAO.setBbsItemMiniOrderProc(tBbsItemTmp.gettBbsSet().getBbsSetIdx(), tBbsItemTmp.getBbsItemMiniOrder()); } } } if(!bbsItemDAO.setBbsItemDelProc(tBbsItemTmp)){ success = false; } } return success; } //ManagerBbsController @Transactional public boolean setBbsItemStatusProc(Integer bbsSetIdx, String bbsItemGroup, String status){ boolean success = true; String[] qryColumns = null; List tBbsItemList = bbsItemDAO.getBbsItemValuesGroupList(bbsSetIdx, bbsItemGroup, qryColumns); for(int m=0; m tBbsItemMiniOrderList = bbsItemDAO.getBbsItemMiniOrderList(bbsSetIdx, bbsItemMiniOrder, qryColumns); List tBbsItemMiniList = bbsItemDAO.getBbsItemMiniOrderList(bbsSetIdx, bbsItemMiniOrderTmp, qryColumns); for(int i=0; i tBbsItemOrderList = bbsItemDAO.getBbsItemListOrderList(bbsSetIdx, bbsItemListOrder, qryColumns); List tBbsItemList = bbsItemDAO.getBbsItemListOrderList(bbsSetIdx, bbsItemListOrderTmp, qryColumns); for(int i=0; i tBbsItemOrderList = bbsItemDAO.getBbsItemViewOrderList(bbsSetIdx, bbsItemViewOrder, qryColumns); List tBbsItemList = bbsItemDAO.getBbsItemViewOrderList(bbsSetIdx, bbsItemViewOrderTmp, qryColumns); for(int i=0; i