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

org.nbone.mvc.service.BaseServiceDtoDomain Maven / Gradle / Ivy

package org.nbone.mvc.service;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;

import javax.annotation.Resource;

import org.nbone.framework.spring.data.domain.PageImpl;
import org.nbone.lang.BaseObject;
import org.nbone.lang.MathOperation;
import org.nbone.persistence.BatchSqlSession;
import org.nbone.util.reflect.GenericsUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.data.domain.Page;

/**
 * 
 * @author thinking chenyicheng
 * @since 2016年3月25日下午3:39:45
 *
 * @param  DTOClass
 * @param 

DomainClass * @param */ @SuppressWarnings(value = "unchecked") public abstract class BaseServiceDtoDomain extends BaseObject implements SuperService{ private BaseServiceDomain baseServiceDomain = new BaseServiceDomain(); protected final Logger logger = LoggerFactory.getLogger(getClass()); private BatchSqlSession namedJdbcDao; private Class dtoClass; private Class

targetClass; /** * 泛型自动推断 */ @SuppressWarnings("unchecked") public BaseServiceDtoDomain() { this.dtoClass = (Class) GenericsUtils.getSuperClassGenricType(this.getClass(), 0); this.targetClass = (Class

) GenericsUtils.getSuperClassGenricType(this.getClass(), 1); baseServiceDomain.setTargetClass(targetClass); } @Resource(name="namedJdbcDao") public void setNamedJdbcDao(BatchSqlSession namedJdbcDao) { this.namedJdbcDao = namedJdbcDao; this.baseServiceDomain.setNamedJdbcDao(this.namedJdbcDao); } protected void setSuperMapper(Class dtoClass,Class

targetClass) { this.dtoClass = dtoClass; this.targetClass = targetClass; } /** * *

Discription:供子类继承使用泛型自动推断

* 注意: 使用此方法时子类继承此父类必须使用泛型,否则不能推断

* Created on 2016年4月7日 * @param namespace * @param id * @author:ChenYiCheng */ protected void initMybatisOrm(String namespace,String id,boolean lazyBuild) { baseServiceDomain.initMybatisOrm(namespace, id,lazyBuild); } protected void initMybatisOrm(Class namespace,String id,boolean lazyBuild) { this.initMybatisOrm(namespace.getName(), id,lazyBuild); } /* @Autowired @PostConstruct @Override protected void initMybatisOrm() { super.initMybatisOrm(TsProjectBeanDao.class,"BaseResultMap"); }*/ protected void initMybatisOrm(){ } //-------------------------------------------------------------------- @Override public Id save(T object) { P bean = this.copyProperties(object, targetClass); return baseServiceDomain.save(bean); } @Override public T add(T object) { P bean = this.copyProperties(object, targetClass); int row = 0; bean = baseServiceDomain.add(bean); if(row > 0){ BeanUtils.copyProperties(bean, object); } return object; } @Override public int insert(T object) { if(object == null){ return 0; } P bean = this.copyProperties(object, targetClass); int row = 0; row = baseServiceDomain.insert(bean); if(row > 0){ BeanUtils.copyProperties(bean, object); } logger.debug("insert {} rows .thinking",row); return row; } @Override public void update(T object) { if(object == null){ logger.warn("update object is null .thinking"); return ; } P bean = this.copyProperties(object, targetClass); baseServiceDomain.update(bean); } @Override public void updateSelective(T object) { if(object == null){ return ; } P bean = this.copyProperties(object, targetClass); baseServiceDomain.updateSelective(bean); } @Override public void delete(Id id,String tableName) { baseServiceDomain.delete(id,tableName); } @Override public T get(Id id,String tableName) { P pojo; pojo =baseServiceDomain.get(id,tableName); if(pojo == null){ return null; } T dto = this.copyProperties(pojo, dtoClass); return dto; } /** * transToDTOList/transToDomainList *

Discription:listBean to ListDto

* Created on 2016年4月1日 * @param beans 原始数据列表 * @return * @author:ChenYiCheng */ public List listBean2ListDto(List

beans){ return copyProperties(beans, dtoClass); } @Override public void saveOrUpdate(T object) { } @Override public int delete(T object) { P bean = this.copyProperties(object, targetClass); return baseServiceDomain.delete(bean); } @Override public void deleteByEntity(T object) { P bean = this.copyProperties(object, targetClass); baseServiceDomain.deleteByEntity(bean); } @Override public void delete(Id[] ids,String tableName) { baseServiceDomain.delete(ids,tableName); } @Override public void delete(Collection ids,String tableName) { baseServiceDomain.delete(ids,tableName); } @Override public List getAll(String tableName) { List

beans = baseServiceDomain.getAll(tableName); return listBean2ListDto(beans); } @Override public List getAll(Id[] ids,String tableName) { List

beans = baseServiceDomain.getAll(ids,tableName); return listBean2ListDto(beans); } @Override public List getAll(Collection ids,String tableName) { List

beans = baseServiceDomain.getAll(ids,tableName); return listBean2ListDto(beans); } @Override public long count() { return baseServiceDomain.count(); } @Override public long count(T object, String afterWhere) { P bean = this.copyProperties(object, targetClass); return baseServiceDomain.count(bean,afterWhere); } @Override public List getForList(T object) { return getForList(object,null); } @Override public List getForList(T object, String afterWhere) { P bean = this.copyProperties(object, targetClass); List

beans = baseServiceDomain.getForList(bean,afterWhere); return listBean2ListDto(beans); } @Override public List queryForList(T object) { return queryForList(object,null); } @Override public List queryForList(T object, String afterWhere) { if(object == null){ return new ArrayList(0); } P bean = this.copyProperties(object, targetClass); List

beans; beans = baseServiceDomain.queryForList(bean,afterWhere); List dtos = listBean2ListDto(beans); return dtos; } @Override public void batchInsert(T[] objects,boolean jdbcBatch) { List

beans = this.copyProperties(objects, targetClass); baseServiceDomain.batchInsert(beans,jdbcBatch); } @Override public void batchInsert(Collection objects,boolean jdbcBatch) { List

beans = this.copyProperties(objects, targetClass); baseServiceDomain.batchInsert(beans,jdbcBatch); } @Override public void batchUpdate(T[] objects,String...propertys) { List

beans = this.copyProperties(objects, targetClass); baseServiceDomain.batchUpdate(beans); } @Override public void batchUpdate(Collection objects,String...propertys) { List

beans = this.copyProperties(objects, targetClass); baseServiceDomain.batchUpdate(beans); } @Override public void batchDelete(Class clazz, Serializable[] ids) { baseServiceDomain.batchDelete(targetClass, ids); } @Override public void batchDelete(Class clazz, List ids) { baseServiceDomain.batchDelete(targetClass, ids); } @Override public Page getForPage(Object object,String[] fieldNames, int pageNum, int pageSize,String... afterWhere) { P bean = this.copyProperties(object, targetClass); Page

page = baseServiceDomain.getForPage(bean,fieldNames, pageNum, pageSize,afterWhere); List

beans = page.getContent(); List dtos = listBean2ListDto(beans); Page result = new PageImpl(dtos, null, page.getTotalElements()); return result; } @Override public Page queryForPage(Object object, int pageNum, int pageSize,String... afterWhere) { P bean = this.copyProperties(object, targetClass); Page

page = baseServiceDomain.queryForPage(bean, pageNum, pageSize,afterWhere); List

beans = page.getContent(); List dtos = listBean2ListDto(beans); Page result = new PageImpl(dtos, null, page.getTotalElements()); return result; } @Override public Page findForPage(Object object, int pageNum, int pageSize,String... afterWhere) { P bean = this.copyProperties(object, targetClass); Page

page = baseServiceDomain.findForPage(bean, pageNum, pageSize,afterWhere); List

beans = page.getContent(); List dtos = listBean2ListDto(beans); Page result = new PageImpl(dtos, null, page.getTotalElements()); return result; } @Override public List getForList(Object object, String fieldName,Class requiredType,String... afterWhere) { P bean = this.copyProperties(object, targetClass); return baseServiceDomain.getForList(bean, fieldName,requiredType,afterWhere); } @Override public int updateMathOperation(Object object,String property, MathOperation mathOperation) { P bean = this.copyProperties(object, targetClass); return baseServiceDomain.updateMathOperation(bean,property, mathOperation); } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy