|
@ -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();
|
|
|
}
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 获取账户信息
|
|
|
*
|