package com.product.mobile.core.service; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.Map; import com.product.common.lang.StringUtils; import com.product.core.dao.BaseDao; import com.product.core.entity.DataTableEntity; import com.product.core.entity.FieldSetEntity; import com.product.core.exception.BaseException; import com.product.core.service.support.AbstractBaseService; import com.product.util.BaseUtil; /** * 手机端,获取用户所有应用 * @author Administrator * */ @Component public class SystemTableMetaService extends AbstractBaseService{ @Autowired public BaseDao baseDao; /** * 数据表结构信息 * @param cpage * @param pagesize * @return * @throws BaseException */ public FieldSetEntity getSystemTableMeta(FieldSetEntity fse) throws BaseException{ Map vs=fse.getValues(); StringBuilder b=new StringBuilder(); b.append("select t.table_name,f.field_name,f.field_length,f.field_show_name,f.field_type,f.field_reference,f.is_required from product_sys_datamodel_field f left join product_sys_datamodel_table t on f.table_uuid=t.uuid"); List ps=new ArrayList<>(); if(vs!=null && vs.size()>0) { b.append(" where "); Iterator keys=vs.keySet().iterator(); int c=0; while(keys.hasNext()) { Object key=keys.next(); Object field=vs.get(key); // if(StringUtils.isEmpty(field)) { // continue; // } if(c>0) { b.append(" or "); } Object fp[]=BaseUtil.buildQuestionMarkFilter("f.field_name","in",field.toString()); b.append("(t.table_name=? "); ps.add(key); if(fp!=null && fp.length>1) { b.append(" and "); b.append(fp[0]); ps.addAll((List)fp[1]); } b.append(")"); c++; } b.append(" order by t.table_name "); FieldSetEntity fs=new FieldSetEntity("product_sys_datamodel_field"); DataTableEntity dt=baseDao.listTable(b.toString(), ps.toArray()); String table=null; DataTableEntity sub=new DataTableEntity(); for(int i=0;i