| 
					
				 | 
			
			
				@ -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.*; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@ -93,6 +97,112 @@ public class CreditsDetailService extends BaseJpaService<CreditsDetailDO,Creditt 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        return MixEnvelop.getSuccessListWithPage(HealthBankMapping.api_success, creditsDetailDOS,page,size,count); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     *  find creditsLogInfo 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     *  带排序 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @return 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     * @throws ParseException 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    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")){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                TaskDO taskDO = taskDao.findOne(creditsDetailDO1.getTransactionId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                creditsDetailDO1.setTaskDO(taskDO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            }else if (creditsDetailDO1.getTradeType()!=null&&creditsDetailDO1.getTradeType().equals("EXCHANGE_GOODS")){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                ExchangeGoodsDO exchangeGoodsDO =exchangeGoodsDao.findOne(creditsDetailDO1.getTransactionId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                TaskGoodsDO taskGoodsDO = taskGoodsDao.selectById(exchangeGoodsDO.getActivityGoodsId()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                exchangeGoodsDO.setTaskGoodsDO(taskGoodsDO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                creditsDetailDO1.setExchangeGoodsDO(exchangeGoodsDO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        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){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            count = (Long) rstotal.get(0).get("total"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        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(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    /** 
			 |