All Downloads are FREE. Search and download functionalities are using the official Maven repository.

tp.ms.base.rest.resource.service.impl.BasicOprationServiceImpl Maven / Gradle / Ivy

The newest version!
//package tp.ms.base.rest.resource.service.impl;
//
//import java.lang.reflect.InvocationTargetException;
//import java.lang.reflect.Method;
//import java.lang.reflect.ParameterizedType;
//import java.lang.reflect.Type;
//import java.util.ArrayList;
//import java.util.List;
//
//import org.springframework.util.ReflectionUtils;
//
//import com.alibaba.fastjson.JSON;
//import com.github.pagehelper.PageHelper;
//import com.github.pagehelper.PageInfo;
//
//import tp.ms.base.rest.resource.http.Pager;
//import tp.ms.base.rest.resource.service.BasicRefService;
//import tp.ms.base.rest.resource.vo.RefQueryConditionVO;
//import tp.ms.common.bean.http.Symbol;
//import tp.ms.common.bean.utils.ObjectUtilms;
//import tp.ms.common.bean.utils.ReplaceNull;
//import tp.ms.common.bean.utils.StringUtilms;
//import tp.ms.common.bean.vo.BaseExample;
//import tp.ms.common.bean.vo.BaseVO;
//import tp.ms.common.data.mybatis.mapper.DaoMapper;
//
//public abstract class BasicOprationServiceImpl extends AbstractOprationService implements BasicRefService {
//
//	
//	@Override
//	public Pager executeReference(Pager pager) {
//		PageHelper.startPage(pager.getCurrent(), pager.getShowNum());
//		PageInfo data = new PageInfo(getDao().selectByReference(obtainExampleIfNeed(pager.getCondition())));
//		return new Pager(data);
//	}
//
//	@SuppressWarnings("unchecked")
//	private E obtainExampleIfNeed(Object condition){
//		List cond = analysisCondition(condition);
//		if(ObjectUtilms.isEmpty(cond))
//			return null;
//		
//		Type type = getClass().getGenericSuperclass();
//		//ParameterizedType参数化类型,即泛型  
//		ParameterizedType p = (ParameterizedType)type;
//
//		Class c = (Class) p.getActualTypeArguments()[1];
////		Class t = (Class) p.getActualTypeArguments()[0];
//
//		E example = null;
//		try {
//			example = c.newInstance();
//
//			example = resolveCondition(example, cond);
//			
//		} catch (InstantiationException | IllegalAccessException e) {
//		}
//		
//		return example;
//	}
//
//
//	/**
//	 * 
//	 * @param example 传入查询封装条件
//	 * @param condition 前台出入的条件数组 
//	 * @return example 封装好的条件返回
//	 */
//	private E resolveCondition(E example, List condition) {
//		Method createCriteriaMethod = ReflectionUtils.findMethod(example.getClass(), "createCriteria");
//
//		try {
//		Object criteria = createCriteriaMethod.invoke(example, new Object[0]);
//		
//		for(RefQueryConditionVO cond : condition) {
//			
//				String methodName = mergeJointMethodName(cond);
//				
//				Method criteriaMethod = ReflectionUtils.findMethod(criteria.getClass(), methodName);
//				
//				if(criteriaMethod != null) {
//					
//					Class[] parameterType = criteriaMethod.getParameterTypes();
//					
//					if(parameterType != null && parameterType.length > 0) {
//						Class clazz = parameterType[0];
//						Object value = JSON.parseObject(ReplaceNull.string(cond.getValue()), clazz);
//						criteriaMethod.invoke(criteria, value);
//					}
//				}
//				
//			}
//			
//		} catch (SecurityException | IllegalAccessException | IllegalArgumentException | InvocationTargetException e) {
//		}
//		return example;
//	}
//
//	/**
//	 * 拼接方法名
//	 * @param cond 传入前台解析后的查询定义
//	 * @return
//	 */
//	private String mergeJointMethodName(RefQueryConditionVO cond) {
//		StringBuilder result = new StringBuilder();
//		result.append("and")
//		.append(StringUtilms.translateUpperString(cond.getVariable(), ' '));
//		switch (cond.getSymbol()) {
//		case equal:
//			result.append("EqualTo");
//			break;
//		case like:
//			result.append("Like");
//			break;
//		case greater_than:
//			result.append("GreaterThan");
//			break;
//		case greater_than_equal:
//			result.append("GreaterThanOrEqualTo");
//			break;
//		case less_than:
//			result.append("LessThan");
//			break;
//		case less_than_equal:
//			result.append("LessThanOrEqualTo");
//			break;
//
//		default:
//			break;
//		}
//		return result.toString();
//	}
//
//	/**
//	 * 
//	 * @param condition 分解前台传入的条件
//	 * @return	返回封装好的条件对象组
//	 */
//	private List analysisCondition(Object condition) {
//		/**
//		 * ["pkUser,=,100025AA456009001",] 
//		 */
//		if(ObjectUtilms.isEmpty(condition))
//			return null;
//		String condiString = condition.toString();
//		try {
//			ArrayList list = JSON.parseObject(condiString, ArrayList.class);
//			if(ObjectUtilms.isEmpty(list))
//				return null;
//			
//			List result = new ArrayList();
//			
//			for(Object o : list) {
//				if(o instanceof String ) {
//					String[] arr = o.toString().split(",");
//					if(arr.length != 3) {
//						continue;
//					}
//					RefQueryConditionVO cond = new RefQueryConditionVO();
//					cond.setVariable(arr[0]);
//					cond.setSymbol(JSON.parseObject(arr[1], Symbol.class));
//					cond.setValue(arr[2]);
//					result.add(cond);
//				}
//			}
//			
//			return result;
//			
//			
//		} catch (Exception e) {
//			return null;
//		}
//	}
//}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy