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.Map;
|
||||
import java.util.Optional;
|
||||
import java.util.function.Function;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
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.delete.render.DeleteStatementProvider;
|
||||
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.where.WhereApplier;
|
||||
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.ContractInfoStatusScribeMapper;
|
||||
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.ContractInfoStatusDynamicSqlSupport;
|
||||
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.FutDailyDynamicSqlSupport;
|
||||
import jj.tech.finance.repository.mybatis.entity.ContractInfo;
|
||||
import jj.tech.finance.repository.mybatis.entity.ContractInfoStatusScribe;
|
||||
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.utils.Page;
|
||||
import jj.tech.finance.utils.R;
|
||||
@ -66,6 +72,7 @@ public class ContractInfoController {
|
||||
@Autowired ContractInfoUserMapper contractInfoUserMapper;
|
||||
@Autowired ContractInfoSelectMapper contractInfoSelectMapper;
|
||||
@Autowired ContractInfoStatusScribeMapper contractInfoStatusScribeMapper;
|
||||
@Autowired FutDailyMapper futDailyMapper;
|
||||
@Autowired SelectMapper selectMapper;
|
||||
|
||||
@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_number.qualifiedWith("contract_info_status")
|
||||
);
|
||||
|
||||
|
||||
BasicColumn[] basic = ArrayUtils.addAll(allContractInfo,store);
|
||||
|
||||
String isLikeTsCode = null;
|
||||
String isLikeSymbol = null;
|
||||
if(StringUtils.isNotBlank(parm.getTs_code())) {
|
||||
@ -106,16 +112,24 @@ public class ContractInfoController {
|
||||
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();
|
||||
where.and(
|
||||
ContractInfoStatusDynamicSqlSupport.contract_status.qualifiedWith("contract_info_status"), isNull(),
|
||||
@ -127,34 +141,33 @@ public class ContractInfoController {
|
||||
where.and(ContractInfoDynamicSqlSupport.contractInfo.exchange, isEqualToWhenPresent(parm.getExchange()));
|
||||
|
||||
WhereApplier applier = where.toWhereApplier();
|
||||
SelectStatementProvider provider = from
|
||||
|
||||
SelectStatementProvider provider = function.apply(select(basic))
|
||||
.applyWhere(applier)
|
||||
.limit(p.getPageSize())
|
||||
.limit(p.getPageSize())
|
||||
.offset(p.limitStart())
|
||||
.build()
|
||||
.render(RenderingStrategies.MYBATIS3);
|
||||
.build()
|
||||
.render(RenderingStrategies.MYBATIS3);
|
||||
|
||||
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")
|
||||
.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")))
|
||||
.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);
|
||||
|
||||
SelectStatementProvider count = function.apply(select(count()))
|
||||
.applyWhere(applier)
|
||||
.build().render(RenderingStrategies.MYBATIS3);
|
||||
|
||||
long total = selectMapper.count(count);
|
||||
p.setList(list);
|
||||
|
||||
@ -1,8 +1,11 @@
|
||||
package jj.tech.finance.biz.webadmin.vo;
|
||||
|
||||
import jj.tech.finance.repository.mybatis.entity.FutDaily;
|
||||
|
||||
public class ContractInfoStatuScribeStore extends ContractInfoStatuScribe {
|
||||
public Integer store;
|
||||
|
||||
public FutDaily futDaily;
|
||||
|
||||
public Integer getStore() {
|
||||
return store;
|
||||
@ -10,6 +13,12 @@ public class ContractInfoStatuScribeStore extends ContractInfoStatuScribe {
|
||||
public void setStore(Integer 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