package com.vci.server.framework.delegate;
|
|
import java.util.List;
|
import java.util.ArrayList;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import com.vci.common.objects.UserEntity;
|
import com.vci.common.utility.ObjectUtility;
|
import com.vci.corba.common.VCIError;
|
import com.vci.corba.framework.data.AppConfigDetailInfo;
|
import com.vci.corba.common.data.UserEntityInfo;
|
import com.vci.server.base.delegate.BaseDelegate;
|
import com.vci.server.cache.ConfigCacheProvider;
|
import com.vci.server.framework.appConfig.AppConfigCategory;
|
import com.vci.server.framework.appConfig.AppConfigCategoryService;
|
import com.vci.server.framework.appConfig.AppConfigDetail;
|
import com.vci.server.framework.appConfig.AppConfigDetailService;
|
import com.vci.server.framework.appConfig.AppConfigUtils;
|
import com.vci.server.framework.cache.AppConfigDetailCatch;
|
/**
|
* AppConfigDetail Delegate Server
|
*
|
*/
|
public class AppConfigDetailDelegate extends BaseDelegate {
|
AppConfigDetailService service = null;
|
|
|
public AppConfigDetailDelegate(UserEntityInfo userEntityInfo) {
|
super(userEntityInfo);
|
service = new AppConfigDetailService(this.getUserEntity());
|
}
|
|
|
/**
|
* 添加、保存 AppConfigDetail 对象
|
* @param info AppConfigDetailInfo 对象
|
*/
|
public String saveAppConfigDetail(AppConfigDetailInfo info) throws VCIError{
|
if (StringUtils.isBlank(info.id)) {
|
String id = ObjectUtility.getNewObjectID36();
|
info.id = id;
|
}
|
try {
|
//AppConfigDetail cInfo = service.getAppConfigDetailByKey(info.key);
|
AppConfigDetailInfo cInfo = ConfigCacheProvider.getAppConfig(info.key);
|
if (cInfo != null && !cInfo.id.equals("")) {
|
throw new VCIError("106001", new String[]{});
|
}
|
boolean success = service.saveAppConfigDetail(AppConfigUtils.convertConfigInfoToConfig(info));
|
if (success) {
|
AppConfigDetailCatch.setAppConfig(info);
|
}
|
} catch (VCIError ex) {
|
throw ex;
|
} catch (Exception ex){
|
//TODO 在此处设置正确的错误编码
|
throw new VCIError("106002", new String[]{});
|
}
|
return info.id;
|
}
|
|
/**
|
* 修改、更新 AppConfigDetail 对象
|
* @param info AppConfigDetailInfo 对象
|
*/
|
public boolean updateAppConfigDetail(AppConfigDetailInfo info) throws VCIError{
|
boolean res = false;
|
try{
|
//AppConfigDetail cInfo = service.getAppConfigDetailByKey(info.key);
|
AppConfigDetailInfo cInfo = ConfigCacheProvider.getAppConfig(info.key);
|
|
if (cInfo != null && !cInfo.id.equals(info.id)) {
|
throw new VCIError("106001", new String[]{});
|
}
|
res = service.updateAppConfigDetail(AppConfigUtils.convertConfigInfoToConfig(info));
|
if (res) {
|
AppConfigDetailCatch.setAppConfig(info);
|
}
|
} catch (VCIError ex) {
|
throw ex;
|
} catch (Exception ex){
|
//TODO 在此处设置正确的错误编码
|
throw new VCIError("106003", new String[]{});
|
}
|
return res;
|
}
|
|
/**
|
* 根据 ID 删除 AppConfigDetail 对象(批量)
|
* @param ids AppConfigDetail 对象的 ID 列表
|
*/
|
public boolean deleteAppConfigDetail(String[] ids) throws VCIError{
|
boolean res = false;
|
try{
|
res = service.deleteAppConfigDetail(ids);
|
if (res) {
|
for (int i = 0; i < ids.length; i++)
|
AppConfigDetailCatch.delConfigById(ids[i]);
|
}
|
}catch(Exception ex){
|
//TODO 在此处设置正确的错误编码
|
throw new VCIError("106004", new String[]{});
|
}
|
return res;
|
}
|
|
/**
|
* 返回全部的 AppConfigDetail 对象
|
*/
|
public AppConfigDetailInfo[] getAppConfigDetails() throws VCIError{
|
return ConfigCacheProvider.getAllConfig();
|
}
|
|
/**
|
* 返回全部的 AppConfigDetail 对象
|
*/
|
public AppConfigDetailInfo[] getAppConfigDetailsByCatId(String clsfId) throws VCIError{
|
try{
|
AppConfigDetailInfo[] infos = ConfigCacheProvider.getAllConfig();
|
|
List<AppConfigDetailInfo> list = new ArrayList<AppConfigDetailInfo>();
|
for (int i = 0; i < infos.length; i++) {
|
if (infos[i].categoryId.equals(clsfId)) {
|
list.add(infos[i]);
|
}
|
}
|
|
return list.toArray(new AppConfigDetailInfo[0]);
|
}catch(Exception ex){
|
//TODO 在此处设置正确的错误编码
|
throw new VCIError("106005", new String[]{});
|
}
|
}
|
|
|
public AppConfigDetailInfo[] getAppConfigDetailsByCategory(String catName) throws VCIError{
|
try{
|
AppConfigCategoryService catSrv = new AppConfigCategoryService(new UserEntity());
|
AppConfigCategory cat = catSrv.getAppConfigCategoryByName(catName);
|
|
AppConfigDetailInfo[] infos = ConfigCacheProvider.getAllConfig();
|
|
List<AppConfigDetailInfo> list = new ArrayList<AppConfigDetailInfo>();
|
for (int i = 0; i < infos.length; i++) {
|
if (infos[i].categoryId.equals(cat.getId())) {
|
list.add(infos[i]);
|
}
|
}
|
|
return list.toArray(new AppConfigDetailInfo[0]);
|
}catch(Exception ex){
|
//TODO 在此处设置正确的错误编码
|
throw new VCIError("106005", new String[]{});
|
}
|
}
|
|
/**
|
* 根据 ID 返回 AppConfigDetail 对象
|
* @param id AppConfigDetail
|
*/
|
public AppConfigDetailInfo getAppConfigDetailById(String id) throws VCIError{
|
try{
|
return ConfigCacheProvider.getAppConfigById(id);
|
}catch(Exception ex){
|
//TODO 在此处设置正确的错误编码
|
throw new VCIError("106006", new String[]{});
|
}
|
}
|
|
/**
|
* 根据 Key 返回 AppConfigDetail 对象
|
* @param key
|
*/
|
public AppConfigDetailInfo getAppConfigDetailByKey(String key) throws VCIError{
|
try{
|
return ConfigCacheProvider.getAppConfig(key);
|
}catch(Exception ex){
|
//TODO 在此处设置正确的错误编码
|
throw new VCIError("106006", new String[]{});
|
}
|
}
|
|
|
/**
|
* 根据 Name 返回 AppConfigDetail 对象
|
* @param key
|
*/
|
public AppConfigDetailInfo[] getAppConfigDetailsByName(String name) throws VCIError{
|
try{
|
AppConfigDetailInfo[] infos = ConfigCacheProvider.getAllConfig();
|
|
List<AppConfigDetailInfo> list = new ArrayList<AppConfigDetailInfo>();
|
for (int i = 0; i < infos.length; i++) {
|
if (infos[i].name.equals(name)) {
|
list.add(infos[i]);
|
}
|
}
|
|
return list.toArray(new AppConfigDetailInfo[0]);
|
}catch(Exception ex){
|
//TODO 在此处设置正确的错误编码
|
throw new VCIError("106005", new String[]{});
|
}
|
}
|
/************************* CORBA & HIBERNATE CONVERT **************************/
|
/**
|
* 对象转换(批量),从 Hibernate 对象转换到 Corba 对象
|
* @param objects
|
*/
|
public AppConfigDetailInfo[] convertConfigsToConfigInfos(AppConfigDetail[] objects){
|
AppConfigDetailInfo[] infos = new AppConfigDetailInfo[objects.length];
|
int i = 0;
|
for(AppConfigDetail obj : objects){
|
infos[i++] = AppConfigUtils.convertConfigToConfigInfo(obj);
|
}
|
return infos;
|
}
|
//
|
// /**
|
// * 对象转换,从 Hibernate 对象转换到 Corba 对象
|
// * @param object
|
// * @return
|
// */
|
// public AppConfigDetailInfo convertAppConfigDetailToAppConfigDetailInfo(AppConfigDetail object){
|
// AppConfigDetailInfo info = new AppConfigDetailInfo();
|
// info.id = object.getId() == null ? "" : object.getId();
|
// info.name = object.getName() == null ? "" : object.getName();
|
// info.desc = object.getDesc() == null ? "" : object.getDesc();
|
// info.key = object.getKey() == null ? "" : object.getKey();
|
// info.value = object.getValue() == null ? "" : object.getValue();
|
// info.categoryId = object.getCategoryId() == null ? "" : object.getCategoryId();
|
// return info;
|
// }
|
//
|
// /**
|
// * 对象转换(批量),从 Corba 对象转换到 Hibernate 对象
|
// * @param infos
|
// * @return
|
// */
|
// public AppConfigDetail[] convertAppConfigDetailInfosToAppConfigDetails(AppConfigDetailInfo[] infos){
|
// AppConfigDetail[] objects = new AppConfigDetail[infos.length];
|
// int i = 0;
|
// for(AppConfigDetailInfo info : infos){
|
// objects[i++] = this.convertConfigInfoToConfig(info);
|
// }
|
// return objects;
|
// }
|
//
|
// /**
|
// * 对象转换,从 Corba 对象转换到 Hibernate 对象
|
// * @param info
|
// * @return
|
// */
|
// public AppConfigDetail convertConfigInfoToConfig(AppConfigDetailInfo info){
|
// AppConfigDetail object = new AppConfigDetail();
|
// object.setId(info.id);
|
// object.setName(info.name);
|
// object.setDesc(info.desc);
|
// object.setKey(info.key);
|
// object.setValue(info.value);
|
// object.setCategoryId(info.categoryId);
|
// return object;
|
// }
|
}
|