继续优化代码

This commit is contained in:
Achilles
2024-01-06 15:25:38 +08:00
parent bf81ef6a44
commit c056454b1d
13 changed files with 60 additions and 13 deletions

View File

@@ -23,10 +23,16 @@ public class QMoneyStockPO extends EntityPathBase<MoneyStockPO> {
public final NumberPath<Integer> id = createNumber("id", Integer.class); public final NumberPath<Integer> id = createNumber("id", Integer.class);
public final NumberPath<Integer> isLock = createNumber("isLock", Integer.class);
public final NumberPath<Integer> isShow = createNumber("isShow", Integer.class);
public final StringPath moneyScId = createString("moneyScId"); public final StringPath moneyScId = createString("moneyScId");
public final DateTimePath<java.util.Date> saveTime = createDateTime("saveTime", java.util.Date.class); public final DateTimePath<java.util.Date> saveTime = createDateTime("saveTime", java.util.Date.class);
public final StringPath selfDispId = createString("selfDispId");
public final StringPath selfUrl = createString("selfUrl"); public final StringPath selfUrl = createString("selfUrl");
public final StringPath stockName = createString("stockName"); public final StringPath stockName = createString("stockName");

View File

@@ -12,7 +12,7 @@ import org.springframework.stereotype.Component;
* *
* @author rplees * @author rplees
* @email rplees.i.ly@gmail.com * @email rplees.i.ly@gmail.com
* @created 2024/01/03 * @created 2024/01/06
*/ */
@Component @Component
@Lazy @Lazy

View File

@@ -12,7 +12,7 @@ import org.springframework.stereotype.Component;
* *
* @author rplees * @author rplees
* @email rplees.i.ly@gmail.com * @email rplees.i.ly@gmail.com
* @created 2024/01/03 * @created 2024/01/06
*/ */
@Component @Component
@Lazy @Lazy

View File

@@ -13,7 +13,7 @@ import lombok.experimental.SuperBuilder;
* *
* @author rplees * @author rplees
* @email rplees.i.ly@gmail.com * @email rplees.i.ly@gmail.com
* @created 2024/01/03 * @created 2024/01/06
*/ */
@Data @Data
@NoArgsConstructor @NoArgsConstructor

View File

@@ -11,7 +11,7 @@ import org.springframework.stereotype.Component;
* *
* @author rplees * @author rplees
* @email rplees.i.ly@gmail.com * @email rplees.i.ly@gmail.com
* @created 2024/01/03 * @created 2024/01/06
*/ */
@Component @Component
@Lazy @Lazy

View File

@@ -19,7 +19,7 @@ import org.springframework.stereotype.Repository;
* *
* @author rplees * @author rplees
* @email rplees.i.ly@gmail.com * @email rplees.i.ly@gmail.com
* @created 2024/01/03 * @created 2024/01/06
*/ */
@Repository @Repository
@RequiredArgsConstructor( @RequiredArgsConstructor(

View File

@@ -12,7 +12,7 @@ import org.springframework.stereotype.Service;
* *
* @author rplees * @author rplees
* @email rplees.i.ly@gmail.com * @email rplees.i.ly@gmail.com
* @created 2024/01/03 * @created 2024/01/06
*/ */
@Service @Service
@RequiredArgsConstructor( @RequiredArgsConstructor(

View File

@@ -11,7 +11,7 @@ import lombok.experimental.SuperBuilder;
* *
* @author rplees * @author rplees
* @email rplees.i.ly@gmail.com * @email rplees.i.ly@gmail.com
* @created 2024/01/03 * @created 2024/01/06
*/ */
@Data @Data
@NoArgsConstructor @NoArgsConstructor

View File

@@ -12,7 +12,7 @@ import lombok.experimental.SuperBuilder;
* *
* @author rplees * @author rplees
* @email rplees.i.ly@gmail.com * @email rplees.i.ly@gmail.com
* @created 2024/01/03 * @created 2024/01/06
*/ */
@Data @Data
@SuperBuilder @SuperBuilder
@@ -34,6 +34,10 @@ public class MoneyStockCreateCommand {
* money Control的id */ * money Control的id */
String moneyScId; String moneyScId;
/**
* 展示表示 */
String selfDispId;
/** /**
* 自有self_url */ * 自有self_url */
String selfUrl; String selfUrl;
@@ -45,4 +49,12 @@ public class MoneyStockCreateCommand {
/** /**
* 保存时间 */ * 保存时间 */
Date saveTime; Date saveTime;
/**
* 是否锁定 0否 1是 */
Integer isLock;
/**
* 是否展示 0是 1否 */
Integer isShow;
} }

View File

@@ -11,7 +11,7 @@ import lombok.experimental.SuperBuilder;
* *
* @author rplees * @author rplees
* @email rplees.i.ly@gmail.com * @email rplees.i.ly@gmail.com
* @created 2024/01/03 * @created 2024/01/06
*/ */
@Data @Data
@SuperBuilder @SuperBuilder

View File

@@ -19,7 +19,7 @@ import org.hibernate.annotations.DynamicUpdate;
* *
* @author rplees * @author rplees
* @email rplees.i.ly@gmail.com * @email rplees.i.ly@gmail.com
* @created 2024/01/03 * @created 2024/01/06
*/ */
@SuperBuilder @SuperBuilder
@Data @Data
@@ -52,6 +52,10 @@ public class MoneyStockPO {
* money Control的id */ * money Control的id */
String moneyScId; String moneyScId;
/**
* 展示表示 */
String selfDispId;
/** /**
* 自有self_url */ * 自有self_url */
String selfUrl; String selfUrl;
@@ -63,4 +67,12 @@ public class MoneyStockPO {
/** /**
* 保存时间 */ * 保存时间 */
Date saveTime; Date saveTime;
/**
* 是否锁定 0否 1是 */
Integer isLock;
/**
* 是否展示 0是 1否 */
Integer isShow;
} }

View File

@@ -9,7 +9,7 @@ import java.lang.Integer;
* *
* @author rplees * @author rplees
* @email rplees.i.ly@gmail.com * @email rplees.i.ly@gmail.com
* @created 2024/01/03 * @created 2024/01/06
*/ */
public interface MoneyStockRepo extends GenericJpaRepository<MoneyStockPO, Integer> { public interface MoneyStockRepo extends GenericJpaRepository<MoneyStockPO, Integer> {
} }

View File

@@ -5,6 +5,7 @@ import cn.stock.market.domain.basic.entity.MoneyStock;
import cn.stock.market.domain.basic.repository.MoneyStockRepository; import cn.stock.market.domain.basic.repository.MoneyStockRepository;
import cn.stock.market.infrastructure.db.po.QMoneyStockPO; import cn.stock.market.infrastructure.db.po.QMoneyStockPO;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.apache.http.HttpResponse; import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient; import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet; import org.apache.http.client.methods.HttpGet;
@@ -227,6 +228,7 @@ public class MoneyScraper {
MoneyStock build = MoneyStock.builder().stockName(textContent).stockType(exchangeValue.toLowerCase(Locale.ROOT)) MoneyStock build = MoneyStock.builder().stockName(textContent).stockType(exchangeValue.toLowerCase(Locale.ROOT))
.detailUrl(String.format("https://priceapi.moneycontrol.com/pricefeed/%s/equitycash/%s", exchangeValue.toLowerCase(), companyCodeId)) .detailUrl(String.format("https://priceapi.moneycontrol.com/pricefeed/%s/equitycash/%s", exchangeValue.toLowerCase(), companyCodeId))
.selfUrl(linkAttribute) .selfUrl(linkAttribute)
.selfDispId(extractDispId(linkAttribute))
.moneyScId(companyCodeId).saveTime(new Date()).build(); .moneyScId(companyCodeId).saveTime(new Date()).build();
List<MoneyStock> all = moneyStockRepository.findAll(QMoneyStockPO.moneyStockPO.stockName.eq(textContent), QMoneyStockPO.moneyStockPO.stockType.eq(exchangeValue.toLowerCase(Locale.ROOT))); List<MoneyStock> all = moneyStockRepository.findAll(QMoneyStockPO.moneyStockPO.stockName.eq(textContent), QMoneyStockPO.moneyStockPO.stockType.eq(exchangeValue.toLowerCase(Locale.ROOT)));
if(CollectionUtil.isEmpty(all)){ if(CollectionUtil.isEmpty(all)){
@@ -238,6 +240,7 @@ public class MoneyScraper {
MoneyStock build = MoneyStock.builder().stockName(textContent) MoneyStock build = MoneyStock.builder().stockName(textContent)
.detailUrl(String.format("https://priceapi.moneycontrol.com/pricefeed/%s/equitycash/%s", exchangeValue.toLowerCase(), companyCodeId)) .detailUrl(String.format("https://priceapi.moneycontrol.com/pricefeed/%s/equitycash/%s", exchangeValue.toLowerCase(), companyCodeId))
.selfUrl(linkAttribute) .selfUrl(linkAttribute)
.selfDispId(extractDispId(linkAttribute))
.moneyScId(companyCodeId).saveTime(new Date()).build(); .moneyScId(companyCodeId).saveTime(new Date()).build();
List<MoneyStock> all = moneyStockRepository.findAll(QMoneyStockPO.moneyStockPO.stockName.eq(textContent)); List<MoneyStock> all = moneyStockRepository.findAll(QMoneyStockPO.moneyStockPO.stockName.eq(textContent));
if(CollectionUtil.isEmpty(all)){ if(CollectionUtil.isEmpty(all)){
@@ -248,7 +251,7 @@ public class MoneyScraper {
} else { } else {
log.info("stockName: " + textContent + ", self_link: " + linkAttribute + log.info("stockName: " + textContent + ", self_link: " + linkAttribute +
" has no current exchange types"); " has no current exchange types");
MoneyStock build = MoneyStock.builder().stockName(textContent).selfUrl(linkAttribute) MoneyStock build = MoneyStock.builder().stockName(textContent).selfUrl(linkAttribute) .selfDispId(extractDispId(linkAttribute))
.moneyScId(companyCodeId).saveTime(new Date()).build(); .moneyScId(companyCodeId).saveTime(new Date()).build();
List<MoneyStock> all = moneyStockRepository.findAll(QMoneyStockPO.moneyStockPO.stockName.eq(textContent)); List<MoneyStock> all = moneyStockRepository.findAll(QMoneyStockPO.moneyStockPO.stockName.eq(textContent));
if(CollectionUtil.isEmpty(all)){ if(CollectionUtil.isEmpty(all)){
@@ -259,7 +262,7 @@ public class MoneyScraper {
} else { } else {
log.info(Thread.currentThread().getName()+",stockName: " + textContent + ", self_link: " + linkAttribute + log.info(Thread.currentThread().getName()+",stockName: " + textContent + ", self_link: " + linkAttribute +
" cannot find corresponding stock id"); " cannot find corresponding stock id");
MoneyStock build = MoneyStock.builder().stockName(textContent).selfUrl(linkAttribute) MoneyStock build = MoneyStock.builder().stockName(textContent).selfUrl(linkAttribute) .selfDispId(extractDispId(linkAttribute))
.saveTime(new Date()).build(); .saveTime(new Date()).build();
List<MoneyStock> all = moneyStockRepository.findAll(QMoneyStockPO.moneyStockPO.stockName.eq(textContent)); List<MoneyStock> all = moneyStockRepository.findAll(QMoneyStockPO.moneyStockPO.stockName.eq(textContent));
if(CollectionUtil.isEmpty(all)){ if(CollectionUtil.isEmpty(all)){
@@ -270,7 +273,21 @@ public class MoneyScraper {
} }
} }
private static String extractDispId(String selfUrl) {
if(StringUtils.isBlank(selfUrl)||!StringUtils.startsWith(selfUrl,"http")){
return null;
}
// 找到最后一个斜杠的位置
int lastSlashIndex = selfUrl.lastIndexOf('/');
// 如果找到了斜杠,就提取它之后的部分
if (lastSlashIndex != -1 && lastSlashIndex < selfUrl.length() - 1) {
return selfUrl.substring(lastSlashIndex + 1);
}
// 如果没有斜杠,或者斜杠位于字符串的末尾,则返回原始字符串
return selfUrl;
}