xgg
This commit is contained in:
parent
5855944018
commit
b38264a5ed
@ -7,6 +7,7 @@ import java.util.HashMap;
|
|||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
|
import java.util.function.Function;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
import org.apache.commons.beanutils.BeanUtils;
|
import org.apache.commons.beanutils.BeanUtils;
|
||||||
@ -17,6 +18,8 @@ import org.mybatis.dynamic.sql.BasicColumn;
|
|||||||
import org.mybatis.dynamic.sql.SqlBuilder;
|
import org.mybatis.dynamic.sql.SqlBuilder;
|
||||||
import org.mybatis.dynamic.sql.delete.render.DeleteStatementProvider;
|
import org.mybatis.dynamic.sql.delete.render.DeleteStatementProvider;
|
||||||
import org.mybatis.dynamic.sql.render.RenderingStrategies;
|
import org.mybatis.dynamic.sql.render.RenderingStrategies;
|
||||||
|
import org.mybatis.dynamic.sql.select.QueryExpressionDSL;
|
||||||
|
import org.mybatis.dynamic.sql.select.SelectModel;
|
||||||
import org.mybatis.dynamic.sql.select.render.SelectStatementProvider;
|
import org.mybatis.dynamic.sql.select.render.SelectStatementProvider;
|
||||||
import org.mybatis.dynamic.sql.where.WhereApplier;
|
import org.mybatis.dynamic.sql.where.WhereApplier;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
@ -44,13 +47,16 @@ import jj.tech.finance.biz.webadmin.vo.parm.P;
|
|||||||
import jj.tech.finance.repository.mybatis.dao.ContractInfoMapper;
|
import jj.tech.finance.repository.mybatis.dao.ContractInfoMapper;
|
||||||
import jj.tech.finance.repository.mybatis.dao.ContractInfoStatusScribeMapper;
|
import jj.tech.finance.repository.mybatis.dao.ContractInfoStatusScribeMapper;
|
||||||
import jj.tech.finance.repository.mybatis.dao.ContractInfoUserMapper;
|
import jj.tech.finance.repository.mybatis.dao.ContractInfoUserMapper;
|
||||||
|
import jj.tech.finance.repository.mybatis.dao.FutDailyMapper;
|
||||||
import jj.tech.finance.repository.mybatis.dao.support.ContractInfoDynamicSqlSupport;
|
import jj.tech.finance.repository.mybatis.dao.support.ContractInfoDynamicSqlSupport;
|
||||||
import jj.tech.finance.repository.mybatis.dao.support.ContractInfoStatusDynamicSqlSupport;
|
import jj.tech.finance.repository.mybatis.dao.support.ContractInfoStatusDynamicSqlSupport;
|
||||||
import jj.tech.finance.repository.mybatis.dao.support.ContractInfoStatusScribeDynamicSqlSupport;
|
import jj.tech.finance.repository.mybatis.dao.support.ContractInfoStatusScribeDynamicSqlSupport;
|
||||||
import jj.tech.finance.repository.mybatis.dao.support.ContractInfoUserDynamicSqlSupport;
|
import jj.tech.finance.repository.mybatis.dao.support.ContractInfoUserDynamicSqlSupport;
|
||||||
|
import jj.tech.finance.repository.mybatis.dao.support.FutDailyDynamicSqlSupport;
|
||||||
import jj.tech.finance.repository.mybatis.entity.ContractInfo;
|
import jj.tech.finance.repository.mybatis.entity.ContractInfo;
|
||||||
import jj.tech.finance.repository.mybatis.entity.ContractInfoStatusScribe;
|
import jj.tech.finance.repository.mybatis.entity.ContractInfoStatusScribe;
|
||||||
import jj.tech.finance.repository.mybatis.entity.ContractInfoUser;
|
import jj.tech.finance.repository.mybatis.entity.ContractInfoUser;
|
||||||
|
import jj.tech.finance.repository.mybatis.entity.FutDaily;
|
||||||
import jj.tech.finance.repository.mybatis.entity.UserInfo;
|
import jj.tech.finance.repository.mybatis.entity.UserInfo;
|
||||||
import jj.tech.finance.utils.Page;
|
import jj.tech.finance.utils.Page;
|
||||||
import jj.tech.finance.utils.R;
|
import jj.tech.finance.utils.R;
|
||||||
@ -66,6 +72,7 @@ public class ContractInfoController {
|
|||||||
@Autowired ContractInfoUserMapper contractInfoUserMapper;
|
@Autowired ContractInfoUserMapper contractInfoUserMapper;
|
||||||
@Autowired ContractInfoSelectMapper contractInfoSelectMapper;
|
@Autowired ContractInfoSelectMapper contractInfoSelectMapper;
|
||||||
@Autowired ContractInfoStatusScribeMapper contractInfoStatusScribeMapper;
|
@Autowired ContractInfoStatusScribeMapper contractInfoStatusScribeMapper;
|
||||||
|
@Autowired FutDailyMapper futDailyMapper;
|
||||||
@Autowired SelectMapper selectMapper;
|
@Autowired SelectMapper selectMapper;
|
||||||
|
|
||||||
@Operation(summary = "合约信息列表", description = " contract_status=1为禁用,其他是启用,scribe_status=1为禁用,其他是启用, store=null是未收藏,有值为已收藏"
|
@Operation(summary = "合约信息列表", description = " contract_status=1为禁用,其他是启用,scribe_status=1为禁用,其他是启用, store=null是未收藏,有值为已收藏"
|
||||||
@ -94,9 +101,8 @@ public class ContractInfoController {
|
|||||||
ContractInfoStatusDynamicSqlSupport.scribe_update_time.qualifiedWith("contract_info_status"),
|
ContractInfoStatusDynamicSqlSupport.scribe_update_time.qualifiedWith("contract_info_status"),
|
||||||
ContractInfoStatusDynamicSqlSupport.scribe_number.qualifiedWith("contract_info_status")
|
ContractInfoStatusDynamicSqlSupport.scribe_number.qualifiedWith("contract_info_status")
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
BasicColumn[] basic = ArrayUtils.addAll(allContractInfo,store);
|
BasicColumn[] basic = ArrayUtils.addAll(allContractInfo,store);
|
||||||
|
|
||||||
String isLikeTsCode = null;
|
String isLikeTsCode = null;
|
||||||
String isLikeSymbol = null;
|
String isLikeSymbol = null;
|
||||||
if(StringUtils.isNotBlank(parm.getTs_code())) {
|
if(StringUtils.isNotBlank(parm.getTs_code())) {
|
||||||
@ -106,16 +112,24 @@ public class ContractInfoController {
|
|||||||
isLikeSymbol = "%"+parm.getSymbol()+"%";
|
isLikeSymbol = "%"+parm.getSymbol()+"%";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Function<QueryExpressionDSL.FromGatherer<SelectModel>, QueryExpressionDSL<SelectModel>.JoinSpecificationFinisher> function =
|
||||||
|
s -> {
|
||||||
|
|
||||||
|
var from = s
|
||||||
|
.from(ContractInfoDynamicSqlSupport.contractInfo, "contractInfo")
|
||||||
|
.leftJoin(contractInfoUser,"contractInfoUser")
|
||||||
|
.on(ContractInfoDynamicSqlSupport.ts_code.qualifiedWith("contractInfo"),
|
||||||
|
equalTo(ContractInfoUserDynamicSqlSupport.ts_code.qualifiedWith("contractInfoUser")))
|
||||||
|
.leftJoin(ContractInfoStatusDynamicSqlSupport.contractInfoStatus)
|
||||||
|
.on(ContractInfoDynamicSqlSupport.ts_code.qualifiedWith("contractInfo"),
|
||||||
|
equalTo(ContractInfoStatusDynamicSqlSupport.ts_code.qualifiedWith("contract_info_status")))
|
||||||
|
;
|
||||||
|
|
||||||
|
return from;
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
var from = select(basic)
|
|
||||||
.from(ContractInfoDynamicSqlSupport.contractInfo, "contractInfo")
|
|
||||||
.leftJoin(contractInfoUser,"contractInfoUser")
|
|
||||||
.on(ContractInfoDynamicSqlSupport.ts_code.qualifiedWith("contractInfo"),
|
|
||||||
equalTo(ContractInfoUserDynamicSqlSupport.ts_code.qualifiedWith("contractInfoUser")))
|
|
||||||
.leftJoin(ContractInfoStatusDynamicSqlSupport.contractInfoStatus)
|
|
||||||
.on(ContractInfoDynamicSqlSupport.ts_code.qualifiedWith("contractInfo"),
|
|
||||||
equalTo(ContractInfoStatusDynamicSqlSupport.ts_code.qualifiedWith("contract_info_status")))
|
|
||||||
;
|
|
||||||
var where = SqlBuilder.where();
|
var where = SqlBuilder.where();
|
||||||
where.and(
|
where.and(
|
||||||
ContractInfoStatusDynamicSqlSupport.contract_status.qualifiedWith("contract_info_status"), isNull(),
|
ContractInfoStatusDynamicSqlSupport.contract_status.qualifiedWith("contract_info_status"), isNull(),
|
||||||
@ -127,34 +141,33 @@ public class ContractInfoController {
|
|||||||
where.and(ContractInfoDynamicSqlSupport.contractInfo.exchange, isEqualToWhenPresent(parm.getExchange()));
|
where.and(ContractInfoDynamicSqlSupport.contractInfo.exchange, isEqualToWhenPresent(parm.getExchange()));
|
||||||
|
|
||||||
WhereApplier applier = where.toWhereApplier();
|
WhereApplier applier = where.toWhereApplier();
|
||||||
SelectStatementProvider provider = from
|
|
||||||
|
SelectStatementProvider provider = function.apply(select(basic))
|
||||||
.applyWhere(applier)
|
.applyWhere(applier)
|
||||||
.limit(p.getPageSize())
|
.limit(p.getPageSize())
|
||||||
.offset(p.limitStart())
|
.offset(p.limitStart())
|
||||||
.build()
|
.build()
|
||||||
.render(RenderingStrategies.MYBATIS3);
|
.render(RenderingStrategies.MYBATIS3);
|
||||||
|
|
||||||
List<ContractInfoStatuScribeStore> list = contractInfoSelectMapper.selectStroeMany(provider);
|
List<ContractInfoStatuScribeStore> list = contractInfoSelectMapper.selectStroeMany(provider);
|
||||||
|
|
||||||
|
|
||||||
|
List<String> ids = list.stream()
|
||||||
|
.map(ContractInfoStatuScribeStore::getTs_code)
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
|
||||||
|
List<FutDaily> futs =
|
||||||
|
futDailyMapper.select(s->
|
||||||
|
s.where(FutDailyDynamicSqlSupport.ts_code,SqlBuilder.isIn(ids))
|
||||||
|
.groupBy(FutDailyDynamicSqlSupport.ts_code)
|
||||||
|
.orderBy(FutDailyDynamicSqlSupport.trade_date.descending())
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
var count = select(count())
|
|
||||||
.from(ContractInfoDynamicSqlSupport.contractInfo, "contractInfo")
|
SelectStatementProvider count = function.apply(select(count()))
|
||||||
.leftJoin(contractInfoUser,"contractInfoUser")
|
.applyWhere(applier)
|
||||||
.on(ContractInfoDynamicSqlSupport.ts_code.qualifiedWith("contractInfo"),
|
.build().render(RenderingStrategies.MYBATIS3);
|
||||||
equalTo(ContractInfoUserDynamicSqlSupport.ts_code.qualifiedWith("contractInfoUser")))
|
|
||||||
.leftJoin(ContractInfoStatusDynamicSqlSupport.contractInfoStatus)
|
|
||||||
.on(ContractInfoDynamicSqlSupport.ts_code.qualifiedWith("contractInfo"),
|
|
||||||
equalTo(ContractInfoStatusDynamicSqlSupport.ts_code.qualifiedWith("contract_info_status")))
|
|
||||||
.where(
|
|
||||||
ContractInfoStatusDynamicSqlSupport.contract_status.qualifiedWith("contract_info_status"), isNull(),
|
|
||||||
or(ContractInfoStatusDynamicSqlSupport.contract_status.qualifiedWith("contract_info_status"), isEqualTo(0)))
|
|
||||||
.and(ContractInfoDynamicSqlSupport.contractInfo.ts_code, isLikeWhenPresent(isLikeTsCode),
|
|
||||||
or(ContractInfoDynamicSqlSupport.contractInfo.symbol, isLikeWhenPresent(isLikeSymbol)))
|
|
||||||
.and(ContractInfoDynamicSqlSupport.contractInfo.exchange, isEqualToWhenPresent(parm.getExchange()))
|
|
||||||
.build()
|
|
||||||
.render(RenderingStrategies.MYBATIS3);
|
|
||||||
|
|
||||||
long total = selectMapper.count(count);
|
long total = selectMapper.count(count);
|
||||||
p.setList(list);
|
p.setList(list);
|
||||||
|
|||||||
@ -1,8 +1,11 @@
|
|||||||
package jj.tech.finance.biz.webadmin.vo;
|
package jj.tech.finance.biz.webadmin.vo;
|
||||||
|
|
||||||
|
import jj.tech.finance.repository.mybatis.entity.FutDaily;
|
||||||
|
|
||||||
public class ContractInfoStatuScribeStore extends ContractInfoStatuScribe {
|
public class ContractInfoStatuScribeStore extends ContractInfoStatuScribe {
|
||||||
public Integer store;
|
public Integer store;
|
||||||
|
|
||||||
|
public FutDaily futDaily;
|
||||||
|
|
||||||
public Integer getStore() {
|
public Integer getStore() {
|
||||||
return store;
|
return store;
|
||||||
@ -10,6 +13,12 @@ public class ContractInfoStatuScribeStore extends ContractInfoStatuScribe {
|
|||||||
public void setStore(Integer store) {
|
public void setStore(Integer store) {
|
||||||
this.store = store;
|
this.store = store;
|
||||||
}
|
}
|
||||||
|
public FutDaily getFutDaily() {
|
||||||
|
return futDaily;
|
||||||
|
}
|
||||||
|
public void setFutDaily(FutDaily futDaily) {
|
||||||
|
this.futDaily = futDaily;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user