继续优化代码
This commit is contained in:
@@ -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");
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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(
|
||||||
|
|||||||
@@ -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(
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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> {
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user