继续优化代码

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> isLock = createNumber("isLock", Integer.class);
public final NumberPath<Integer> isShow = createNumber("isShow", Integer.class);
public final StringPath moneyScId = createString("moneyScId");
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 stockName = createString("stockName");

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -9,7 +9,7 @@ import java.lang.Integer;
*
* @author rplees
* @email rplees.i.ly@gmail.com
* @created 2024/01/03
* @created 2024/01/06
*/
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.infrastructure.db.po.QMoneyStockPO;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
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))
.detailUrl(String.format("https://priceapi.moneycontrol.com/pricefeed/%s/equitycash/%s", exchangeValue.toLowerCase(), companyCodeId))
.selfUrl(linkAttribute)
.selfDispId(extractDispId(linkAttribute))
.moneyScId(companyCodeId).saveTime(new Date()).build();
List<MoneyStock> all = moneyStockRepository.findAll(QMoneyStockPO.moneyStockPO.stockName.eq(textContent), QMoneyStockPO.moneyStockPO.stockType.eq(exchangeValue.toLowerCase(Locale.ROOT)));
if(CollectionUtil.isEmpty(all)){
@@ -238,6 +240,7 @@ public class MoneyScraper {
MoneyStock build = MoneyStock.builder().stockName(textContent)
.detailUrl(String.format("https://priceapi.moneycontrol.com/pricefeed/%s/equitycash/%s", exchangeValue.toLowerCase(), companyCodeId))
.selfUrl(linkAttribute)
.selfDispId(extractDispId(linkAttribute))
.moneyScId(companyCodeId).saveTime(new Date()).build();
List<MoneyStock> all = moneyStockRepository.findAll(QMoneyStockPO.moneyStockPO.stockName.eq(textContent));
if(CollectionUtil.isEmpty(all)){
@@ -248,7 +251,7 @@ public class MoneyScraper {
} else {
log.info("stockName: " + textContent + ", self_link: " + linkAttribute +
" 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();
List<MoneyStock> all = moneyStockRepository.findAll(QMoneyStockPO.moneyStockPO.stockName.eq(textContent));
if(CollectionUtil.isEmpty(all)){
@@ -259,7 +262,7 @@ public class MoneyScraper {
} else {
log.info(Thread.currentThread().getName()+",stockName: " + textContent + ", self_link: " + linkAttribute +
" 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();
List<MoneyStock> all = moneyStockRepository.findAll(QMoneyStockPO.moneyStockPO.stockName.eq(textContent));
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;
}