package com.gear.customer.swx.biz.impl;
|
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.gear.common.constant.SwxConstons;
|
import com.gear.common.core.redis.RedisCache;
|
import com.gear.customer.swx.biz.SwxBizIndex;
|
import com.gear.customer.swx.vo.response.SwxContentsVo;
|
import com.gear.customer.swx.vo.response.SwxIndexMarketInfoVo;
|
import com.gear.customer.swx.vo.response.SwxIndexQueryMarketVo;
|
import com.gear.swx.domain.*;
|
import com.gear.swx.service.*;
|
import com.gear.swx.vo.SyncKValueFromLdVo;
|
import org.springframework.beans.BeanUtils;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Component;
|
|
import java.math.BigDecimal;
|
import java.util.ArrayList;
|
import java.util.List;
|
|
@Component
|
public class SwxBizIndexImpl implements SwxBizIndex {
|
@Autowired
|
private ISwxMarketService swxMarketService;
|
|
@Autowired
|
private RedisCache redisCache;
|
|
@Autowired
|
private ISwxMarketContractsService swxMarketContractsService;
|
|
@Autowired
|
private ISwxMarketOptionsService swxMarketOptionsService;
|
|
@Autowired
|
private ISwxMarketSmartService swxMarketSmartService;
|
|
@Autowired
|
private ISwxSettingsService swxSettingsService;
|
|
@Autowired
|
private ISwxContentsService swxContentsService;
|
|
@Autowired
|
private ISwxNftService swxNftService;
|
|
@Override
|
public List<SwxIndexQueryMarketVo> listMarketByType(Integer type, Integer canSamrt) {
|
QueryWrapper<SwxMarket> queryWrapper = new QueryWrapper<>();
|
if(type == null){
|
queryWrapper.lambda().eq(SwxMarket::getShowIndex, SwxConstons.NOMARL_STATUS_YES);
|
}else{
|
queryWrapper.lambda().eq(SwxMarket::getType,type);
|
}
|
if(canSamrt != null){
|
queryWrapper.lambda().eq(SwxMarket::getCanSmart,SwxConstons.NOMARL_STATUS_YES);
|
}
|
queryWrapper.lambda().orderByAsc(SwxMarket::getSortNum);
|
List<SwxMarket> list = swxMarketService.list(queryWrapper);
|
List<SwxIndexQueryMarketVo> result = new ArrayList<>();
|
for (SwxMarket item : list){
|
SwxIndexQueryMarketVo vo = new SwxIndexQueryMarketVo();
|
BeanUtils.copyProperties(item,vo);
|
vo.setZdf(redisCache.getCacheObject(vo.getCode()+"CurrZdf") == null ? BigDecimal.ZERO : new BigDecimal(redisCache.getCacheObject(vo.getCode()+"CurrZdf")+""));
|
vo.setPrice(redisCache.getCacheObject(vo.getCode()+"CurrPrice") == null ? BigDecimal.ZERO : new BigDecimal(redisCache.getCacheObject(vo.getCode()+"CurrPrice")+""));
|
vo.setHundred(redisCache.getCacheList(item.getCode()+"Hundred"));
|
result.add(vo);
|
}
|
return result;
|
}
|
|
@Override
|
public SwxIndexMarketInfoVo getMarketInfo(String id) {
|
SwxMarket market = swxMarketService.getById(id);
|
SwxIndexMarketInfoVo result = new SwxIndexMarketInfoVo();
|
BeanUtils.copyProperties(market,result);
|
|
if(market != null){
|
if (market.getCanContracts() == SwxConstons.NOMARL_STATUS_YES){
|
SwxMarketContracts contracts = swxMarketContractsService.getOne(new QueryWrapper<SwxMarketContracts>().lambda().eq(SwxMarketContracts::getMId,market.getId()));
|
result.setContractsInfo(contracts);
|
}
|
if (market.getCanOptions() == SwxConstons.NOMARL_STATUS_YES){
|
SwxMarketOptions options = swxMarketOptionsService.getOne(new QueryWrapper<SwxMarketOptions>().lambda().eq(SwxMarketOptions::getMId,market.getId()));
|
result.setOptionsInfo(options);
|
}
|
if (market.getCanSmart() == SwxConstons.NOMARL_STATUS_YES){
|
SwxMarketSmart contracts = swxMarketSmartService.getOne(new QueryWrapper<SwxMarketSmart>().lambda().eq(SwxMarketSmart::getMId,market.getId()));
|
result.setSmartInfo(contracts);
|
}
|
result.setZdf(redisCache.getCacheObject(result.getCode()+"CurrZdf") == null ? BigDecimal.ZERO : new BigDecimal(redisCache.getCacheObject(result.getCode()+"CurrZdf")+""));
|
result.setPrice(redisCache.getCacheObject(result.getCode()+"CurrPrice") == null ? BigDecimal.ZERO : new BigDecimal(redisCache.getCacheObject(result.getCode()+"CurrPrice")+""));
|
result.setHundred(redisCache.getCacheList(market.getCode()+"Hundred"));
|
}
|
return result;
|
}
|
|
@Override
|
public SwxMarketContracts getContractsByMarket(String mId) {
|
QueryWrapper<SwxMarketContracts> queryWrapper = new QueryWrapper<>();
|
queryWrapper.lambda().eq(SwxMarketContracts::getMId,mId);
|
return swxMarketContractsService.getOne(queryWrapper);
|
}
|
|
@Override
|
public SwxMarketOptions getOptionsByMarket(String mId) {
|
QueryWrapper<SwxMarketOptions> queryWrapper = new QueryWrapper<>();
|
queryWrapper.lambda().eq(SwxMarketOptions::getMId,mId);
|
return swxMarketOptionsService.getOne(queryWrapper);
|
}
|
|
@Override
|
public SwxMarketSmart getSmartByMarket(String mId) {
|
QueryWrapper<SwxMarketSmart> queryWrapper = new QueryWrapper<>();
|
queryWrapper.lambda().eq(SwxMarketSmart::getMId,mId);
|
return swxMarketSmartService.getOne(queryWrapper);
|
}
|
|
@Override
|
public List<SyncKValueFromLdVo> getKValueByCodeAndDate(String code, String dateType) {
|
return redisCache.getCacheList(code+dateType+"KValue");
|
}
|
|
@Override
|
public SwxSettings getParamByKey(String key) {
|
return swxSettingsService.getOne(new QueryWrapper<SwxSettings>().lambda().eq(SwxSettings::getParamKey,key));
|
}
|
|
@Override
|
public List<SwxContentsVo> listContents(Integer language) {
|
QueryWrapper<SwxContents> queryWrapper = new QueryWrapper<>();
|
queryWrapper.lambda().eq(SwxContents::getStatus,SwxConstons.NOMARL_STATUS_YES);
|
queryWrapper.lambda().eq(SwxContents::getLanguage,language);
|
queryWrapper.lambda().orderByAsc(SwxContents::getSortNum);
|
List<SwxContents> list = swxContentsService.list(queryWrapper);
|
List<SwxContentsVo> result = new ArrayList<>();
|
for (SwxContents item :list){
|
SwxContentsVo vo = new SwxContentsVo();
|
BeanUtils.copyProperties(item,vo);
|
result.add(vo);
|
}
|
return result;
|
}
|
|
@Override
|
public SwxContents getContentsById(String id) {
|
return swxContentsService.getById(id);
|
}
|
|
@Override
|
public List<SwxNft> listNft() {
|
return swxNftService.list(new QueryWrapper<SwxNft>().lambda().eq(SwxNft::getStatus,SwxConstons.NOMARL_STATUS_YES));
|
}
|
}
|