|  | @ -22,8 +22,12 @@ import org.springframework.jdbc.core.JdbcTemplate;
 | 
	
		
			
				|  |  | import org.springframework.stereotype.Service;
 | 
	
		
			
				|  |  | import org.springframework.util.StringUtils;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | import javax.persistence.Column;
 | 
	
		
			
				|  |  | import javax.persistence.Table;
 | 
	
		
			
				|  |  | import javax.print.DocFlavor;
 | 
	
		
			
				|  |  | import javax.transaction.Transactional;
 | 
	
		
			
				|  |  | import java.lang.reflect.Field;
 | 
	
		
			
				|  |  | import java.lang.reflect.Method;
 | 
	
		
			
				|  |  | import java.text.ParseException;
 | 
	
		
			
				|  |  | import java.text.SimpleDateFormat;
 | 
	
		
			
				|  |  | import java.util.*;
 | 
	
	
		
			
				|  | @ -99,8 +103,8 @@ public class CreditsDetailService extends BaseJpaService<CreditsDetailDO,Creditt
 | 
	
		
			
				|  |  |      * @return
 | 
	
		
			
				|  |  |      * @throws ParseException
 | 
	
		
			
				|  |  |      */
 | 
	
		
			
				|  |  |     public MixEnvelop<CreditsDetailDO, CreditsDetailDO> findByConditionWithOrder(CreditsDetailDO creditsDetailDO, Integer OrderType, Integer page, Integer size) throws ParseException {
 | 
	
		
			
				|  |  |         String sql = new ISqlUtils().getSql(creditsDetailDO,page,size,"*");
 | 
	
		
			
				|  |  |     public MixEnvelop<CreditsDetailDO, CreditsDetailDO> findByConditionWithOrder(CreditsDetailDO creditsDetailDO, Integer orderType, Integer page, Integer size) throws ParseException {
 | 
	
		
			
				|  |  |         String sql = getCreditsLogInSqlWithOrder(creditsDetailDO,page,size,"*",orderType);
 | 
	
		
			
				|  |  |         List<CreditsDetailDO> creditsDetailDOS = jdbcTemplate.query(sql,new BeanPropertyRowMapper(CreditsDetailDO.class));
 | 
	
		
			
				|  |  |         for (CreditsDetailDO creditsDetailDO1 : creditsDetailDOS){
 | 
	
		
			
				|  |  |             if (creditsDetailDO1.getTradeType() != null && creditsDetailDO1.getTradeType().equalsIgnoreCase("ACTIVITY_TASK")){
 | 
	
	
		
			
				|  | @ -113,7 +117,7 @@ public class CreditsDetailService extends BaseJpaService<CreditsDetailDO,Creditt
 | 
	
		
			
				|  |  |                 creditsDetailDO1.setExchangeGoodsDO(exchangeGoodsDO);
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         String sqlcount = new ISqlUtils().getSql(creditsDetailDO,0,0,"count");
 | 
	
		
			
				|  |  |         String sqlcount = getCreditsLogInSqlWithOrder(creditsDetailDO,0,0,"count",orderType);
 | 
	
		
			
				|  |  |         List<Map<String,Object>> rstotal = jdbcTemplate.queryForList(sqlcount);
 | 
	
		
			
				|  |  |         Long count = 0L;
 | 
	
		
			
				|  |  |         if(rstotal!=null&&rstotal.size()>0){
 | 
	
	
		
			
				|  | @ -122,6 +126,85 @@ public class CreditsDetailService extends BaseJpaService<CreditsDetailDO,Creditt
 | 
	
		
			
				|  |  |         return MixEnvelop.getSuccessListWithPage(HealthBankMapping.api_success, creditsDetailDOS,page,size,count);
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     public  String getCreditsLogInSqlWithOrder(Object object,Integer page,Integer size,String isFlag,Integer orderType){
 | 
	
		
			
				|  |  |         StringBuffer sb = new StringBuffer();
 | 
	
		
			
				|  |  |         Class c =object.getClass();
 | 
	
		
			
				|  |  |         Table table = (Table)c.getAnnotation(Table.class);
 | 
	
		
			
				|  |  |         String tableName = table.name();
 | 
	
		
			
				|  |  |         if (isFlag.equalsIgnoreCase("count")){
 | 
	
		
			
				|  |  |             sb.append("select count(1) AS total from ").append(tableName).append(" where 1=1 and status=1 ");
 | 
	
		
			
				|  |  |         }else if(isFlag.equalsIgnoreCase("*")){
 | 
	
		
			
				|  |  |             sb.append("select * from ").append(tableName).append(" where 1=1 and status=1 ");
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         JSONObject object1  = (JSONObject) JSONObject.toJSON(object);
 | 
	
		
			
				|  |  |         if (object1.getString("id") !=null){
 | 
	
		
			
				|  |  |             sb.append(" and id = '" + object1.getString("id")+"' ");
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         Field[] fArray= c.getDeclaredFields();
 | 
	
		
			
				|  |  |         for(Field f:fArray){
 | 
	
		
			
				|  |  |             //拿到字段后与实体类中的属性匹配,并得到其get方法,用来获取他的属性值
 | 
	
		
			
				|  |  |             String getMethodName ="";
 | 
	
		
			
				|  |  |             boolean isCExist =f.isAnnotationPresent(Column.class);
 | 
	
		
			
				|  |  |             if(isCExist){
 | 
	
		
			
				|  |  |                 Column mc =f.getAnnotation(Column.class);
 | 
	
		
			
				|  |  |                 String columeName =mc.name();  //字段对应数据库名字
 | 
	
		
			
				|  |  |                 String name =f.getName();       //字段名字
 | 
	
		
			
				|  |  |                 Class a= f.getType();          //字段类型
 | 
	
		
			
				|  |  |                 Object value=null;              //字段值
 | 
	
		
			
				|  |  |                 getMethodName="get"+name.substring(0,1).toUpperCase()+name.substring(1);//拼接属性的get方法
 | 
	
		
			
				|  |  |                 try {
 | 
	
		
			
				|  |  |                     Method m =c.getMethod(getMethodName);
 | 
	
		
			
				|  |  |                     value =(Object)m.invoke(object);     //拿到属性的值
 | 
	
		
			
				|  |  |                     if(value == null || "".equals(value)){  //如果属性没值,不拼接sql
 | 
	
		
			
				|  |  |                         continue;
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  |                     else if(value instanceof String){
 | 
	
		
			
				|  |  |                         value ="'%"+value+"%'";
 | 
	
		
			
				|  |  |                         sb.append(" and ").append(columeName +" like " ).append(value+"");
 | 
	
		
			
				|  |  |                     }else if (value instanceof Integer){
 | 
	
		
			
				|  |  |                         value = value;
 | 
	
		
			
				|  |  |                         sb.append(" and ").append(columeName +" = " ).append(value+"");
 | 
	
		
			
				|  |  |                     }
 | 
	
		
			
				|  |  |                 } catch (Exception e) {
 | 
	
		
			
				|  |  |                     e.printStackTrace();
 | 
	
		
			
				|  |  |                 }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         JSONObject jsonObject = (JSONObject) JSONObject.toJSON(object);
 | 
	
		
			
				|  |  |         SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
 | 
	
		
			
				|  |  |         Date date1 = jsonObject.getDate("startTime");
 | 
	
		
			
				|  |  |         Date date2 = jsonObject.getDate("endTime");
 | 
	
		
			
				|  |  |         String startTime = null;
 | 
	
		
			
				|  |  |         String endTime = null;
 | 
	
		
			
				|  |  |         if (date1 != null){
 | 
	
		
			
				|  |  |             startTime = sdf.format(date1);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         if (date2 != null) {
 | 
	
		
			
				|  |  |             endTime = sdf.format(date2);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         if (org.apache.commons.lang3.StringUtils.isNoneBlank(startTime)&& org.apache.commons.lang3.StringUtils.isNoneBlank(endTime)){
 | 
	
		
			
				|  |  |             sb.append(" and start_time >= '"+startTime+"' and end_time <='"+endTime+"'");
 | 
	
		
			
				|  |  |         } else if (org.apache.commons.lang3.StringUtils.isNoneBlank(startTime)&&!org.apache.commons.lang3.StringUtils.isNoneBlank(endTime)) {
 | 
	
		
			
				|  |  |             sb.append(" and start_time >= '"+startTime+"'");
 | 
	
		
			
				|  |  |         }else if (org.apache.commons.lang3.StringUtils.isNoneBlank(endTime)&&!org.apache.commons.lang3.StringUtils.isNoneBlank(startTime)){
 | 
	
		
			
				|  |  |             sb.append(" and end_time <= '"+endTime+"'");
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         if(isFlag.equalsIgnoreCase("*")){
 | 
	
		
			
				|  |  |             if(orderType==0){
 | 
	
		
			
				|  |  |                 sb.append(" ORDER BY create_time DESC ").append("LIMIT ").append((page-1)*size+",").append(size);
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             else if(orderType==1){
 | 
	
		
			
				|  |  |                 sb.append(" ORDER BY trade_direction ASC,create_time DESC ").append("LIMIT ").append((page-1)*size+",").append(size);
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             else if(orderType==2){
 | 
	
		
			
				|  |  |                 sb.append(" ORDER BY trade_direction DESC,create_time DESC ").append("LIMIT ").append((page-1)*size+",").append(size);
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         return sb.toString();
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     /**
 | 
	
		
			
				|  |  |      * 获取账户信息
 | 
	
		
			
				|  |  |      *
 |