public boolean deleteServiceClass(String serviceClassId) {
ServiceClass serviceClass = getServiceClassById(serviceClassId);
ServiceClass chServiceClass = new ServiceClass();
chServiceClass.setParentId(serviceClass.getId());
List<ServiceClass> chServiceClassList = findServiceClassList(chServiceClass,"null");
if(chServiceClassList!=null && chServiceClassList.size()!=0){
boolean isT = true;
for (int i = 0; i < chServiceClassList.size(); i++) {//循环遍历子节点执行删除子节点操作
if(!deleteServiceClass(chServiceClassList.get(i).getId()))
isT = false;
}
if(isT)//判断如果子节点删完后删除父节点
return serviceClassDao.deleteServiceClass(serviceClassId);
}else{
//删除之前判断该服务分类是否被使用
if(check(serviceClassId))
return serviceClassDao.deleteServiceClass(serviceClassId);
else
return false;
}
return true;
}
public boolean check(String serviceClassId){
// 实例化关联的五张表
UserSkill userSkill = new UserSkill();
ServiceItem serviceItem = new ServiceItem();
ServiceProperties serviceProperties = new ServiceProperties();
ServiceDemand serviceDemand = new ServiceDemand();
ShopInfo shopInfo = new ShopInfo();
// 设置级联删除对象中和主表关联的外键
userSkill.setServiceClassId(serviceClassId);
serviceItem.setServiceClassId(serviceClassId);
serviceProperties.setServiceClassId(serviceClassId);
serviceDemand.setServiceClassId(serviceClassId);
shopInfo.setServiceClassId(serviceClassId);
// 找出需要级联删除的list方法
List<UserSkill> userSkillList = userSkillService.findUserSkillList(
userSkill, null);
List<ServiceItem> serviceItemList = serviceItemService
.findServiceItemList(serviceItem, null);
List<ServiceProperties> servicePropertiesList = servicePropertiesService
.findServicePropertiesList(serviceProperties, null);
List<ServiceDemand> serviceDemandList = serviceDemandService
.findServiceDemandList(serviceDemand, null);
List<ShopInfo> shopInfoList = shopInfoService.findShopInfoList(
shopInfo, null);
boolean flag = true;
if (userSkillList.size() != 0 && userSkillList != null
|| serviceItemList.size() != 0 && serviceItemList != null
|| servicePropertiesList.size() != 0 && servicePropertiesList != null
|| serviceDemandList.size() != 0 && serviceDemandList != null
|| shopInfoList.size() != 0 && shopInfoList != null) {
flag = false;
}
return flag;
}