diff --git a/src/main/generated/cn/stock/market/infrastructure/db/po/QTwelveStockPO.java b/src/main/generated/cn/stock/market/infrastructure/db/po/QTwelveStockPO.java new file mode 100644 index 0000000..1df94b5 --- /dev/null +++ b/src/main/generated/cn/stock/market/infrastructure/db/po/QTwelveStockPO.java @@ -0,0 +1,49 @@ +package cn.stock.market.infrastructure.db.po; + +import static com.querydsl.core.types.PathMetadataFactory.*; + +import com.querydsl.core.types.dsl.*; + +import com.querydsl.core.types.PathMetadata; +import javax.annotation.Generated; +import com.querydsl.core.types.Path; + + +/** + * QTwelveStockPO is a Querydsl query type for TwelveStockPO + */ +@Generated("com.querydsl.codegen.EntitySerializer") +public class QTwelveStockPO extends EntityPathBase { + + private static final long serialVersionUID = -100071895L; + + public static final QTwelveStockPO twelveStockPO = new QTwelveStockPO("twelveStockPO"); + + public final NumberPath id = createNumber("id", Integer.class); + + public final NumberPath isLock = createNumber("isLock", Integer.class); + + public final NumberPath isShow = createNumber("isShow", Integer.class); + + public final DateTimePath saveTime = createDateTime("saveTime", java.util.Date.class); + + public final StringPath stockCode = createString("stockCode"); + + public final StringPath stockName = createString("stockName"); + + public final StringPath stockType = createString("stockType"); + + public QTwelveStockPO(String variable) { + super(TwelveStockPO.class, forVariable(variable)); + } + + public QTwelveStockPO(Path path) { + super(path.getType(), path.getMetadata()); + } + + public QTwelveStockPO(PathMetadata metadata) { + super(TwelveStockPO.class, metadata); + } + +} + diff --git a/src/main/java/cn/stock/market/application/assembler/TwelveStockAssembler.java b/src/main/java/cn/stock/market/application/assembler/TwelveStockAssembler.java new file mode 100644 index 0000000..b361d44 --- /dev/null +++ b/src/main/java/cn/stock/market/application/assembler/TwelveStockAssembler.java @@ -0,0 +1,35 @@ +package cn.stock.market.application.assembler; + +import cn.qutaojing.common.utils.Beans; +import cn.qutaojing.common.utils.SpringUtils; +import cn.stock.market.domain.basic.entity.TwelveStock; +import cn.stock.market.dto.TwelveStockDTO; +import org.springframework.context.annotation.Lazy; +import org.springframework.stereotype.Component; + +/** + * TwelveStockAssembler + * + * @author rplees + * @email rplees.i.ly@gmail.com + * @created 2024/05/30 + */ +@Component +@Lazy +public class TwelveStockAssembler { + public TwelveStockDTO toDTO(TwelveStock e) { + TwelveStockDTO dto = Beans.mapper(e, TwelveStockDTO.class); + if(dto == null) return dto; + fill(e, dto); + return dto; + } + + protected void fill(TwelveStock e, TwelveStockDTO dto) { + if(dto == null) return; + return; + } + + public static TwelveStockAssembler of() { + return SpringUtils.getBean(TwelveStockAssembler.class); + } +} diff --git a/src/main/java/cn/stock/market/domain/basic/convert/TwelveStockConvert.java b/src/main/java/cn/stock/market/domain/basic/convert/TwelveStockConvert.java new file mode 100644 index 0000000..749bda2 --- /dev/null +++ b/src/main/java/cn/stock/market/domain/basic/convert/TwelveStockConvert.java @@ -0,0 +1,23 @@ +package cn.stock.market.domain.basic.convert; + +import cn.qutaojing.common.domain.convert.SimpleEntityPOConvert; +import cn.qutaojing.common.utils.SpringUtils; +import cn.stock.market.domain.basic.entity.TwelveStock; +import cn.stock.market.infrastructure.db.po.TwelveStockPO; +import org.springframework.context.annotation.Lazy; +import org.springframework.stereotype.Component; + +/** + * TwelveStockConvert + * + * @author rplees + * @email rplees.i.ly@gmail.com + * @created 2024/05/30 + */ +@Component +@Lazy +public class TwelveStockConvert extends SimpleEntityPOConvert { + public static TwelveStockConvert of() { + return SpringUtils.getBean(TwelveStockConvert.class); + } +} diff --git a/src/main/java/cn/stock/market/domain/basic/entity/TwelveStock.java b/src/main/java/cn/stock/market/domain/basic/entity/TwelveStock.java new file mode 100644 index 0000000..86d7773 --- /dev/null +++ b/src/main/java/cn/stock/market/domain/basic/entity/TwelveStock.java @@ -0,0 +1,28 @@ +package cn.stock.market.domain.basic.entity; + +import cn.qutaojing.common.utils.Beans; +import cn.stock.market.dto.command.TwelveStockCreateCommand; +import cn.stock.market.infrastructure.db.po.TwelveStockPO; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +/** + * TwelveStock + * + * @author rplees + * @email rplees.i.ly@gmail.com + * @created 2024/05/30 + */ +@Data +@NoArgsConstructor +@SuperBuilder +@EqualsAndHashCode( + callSuper = false +) +public class TwelveStock extends TwelveStockPO { + public void update(TwelveStockCreateCommand cmd) { + Beans.copyProperties(cmd, this); + } +} diff --git a/src/main/java/cn/stock/market/domain/basic/factory/TwelveStockFactory.java b/src/main/java/cn/stock/market/domain/basic/factory/TwelveStockFactory.java new file mode 100644 index 0000000..a2e9abf --- /dev/null +++ b/src/main/java/cn/stock/market/domain/basic/factory/TwelveStockFactory.java @@ -0,0 +1,28 @@ +package cn.stock.market.domain.basic.factory; + +import cn.qutaojing.common.utils.SpringUtils; +import cn.stock.market.domain.basic.entity.TwelveStock; +import cn.stock.market.dto.command.TwelveStockCreateCommand; +import org.springframework.context.annotation.Lazy; +import org.springframework.stereotype.Component; + +/** + * TwelveStockFactory + * + * @author rplees + * @email rplees.i.ly@gmail.com + * @created 2024/05/30 + */ +@Component +@Lazy +public class TwelveStockFactory { + public static TwelveStockFactory of() { + return SpringUtils.getBean(TwelveStockFactory.class); + } + + public TwelveStock from(TwelveStockCreateCommand cmd) { + TwelveStock e = TwelveStock.builder().build(); + e.update(cmd); + return e; + } +} diff --git a/src/main/java/cn/stock/market/domain/basic/repository/TwelveStockRepository.java b/src/main/java/cn/stock/market/domain/basic/repository/TwelveStockRepository.java new file mode 100644 index 0000000..f4650bd --- /dev/null +++ b/src/main/java/cn/stock/market/domain/basic/repository/TwelveStockRepository.java @@ -0,0 +1,46 @@ +package cn.stock.market.domain.basic.repository; + +import cn.qutaojing.common.domain.convert.IEntityPOConvert; +import cn.qutaojing.common.domain.respostory.SimplePoConvertEntityRepository; +import cn.qutaojing.common.utils.SpringUtils; +import cn.stock.market.domain.basic.convert.TwelveStockConvert; +import cn.stock.market.domain.basic.entity.TwelveStock; +import cn.stock.market.infrastructure.db.po.TwelveStockPO; +import cn.stock.market.infrastructure.db.repo.TwelveStockRepo; +import com.rp.spring.jpa.GenericJpaRepository; +import java.lang.Integer; +import java.lang.Override; +import lombok.RequiredArgsConstructor; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Repository; + +/** + * TwelveStockRepository + * + * @author rplees + * @email rplees.i.ly@gmail.com + * @created 2024/05/30 + */ +@Repository +@RequiredArgsConstructor( + onConstructor = @__(@Autowired) +) +public class TwelveStockRepository extends SimplePoConvertEntityRepository { + final TwelveStockRepo repo; + + final TwelveStockConvert convert; + + @Override + public GenericJpaRepository repo() { + return repo; + } + + @Override + public IEntityPOConvert convert() { + return convert; + } + + public static TwelveStockRepository of() { + return SpringUtils.getBean(TwelveStockRepository.class); + } +} diff --git a/src/main/java/cn/stock/market/domain/basic/service/TwelveStockService.java b/src/main/java/cn/stock/market/domain/basic/service/TwelveStockService.java new file mode 100644 index 0000000..c91e2bc --- /dev/null +++ b/src/main/java/cn/stock/market/domain/basic/service/TwelveStockService.java @@ -0,0 +1,33 @@ +package cn.stock.market.domain.basic.service; + +import cn.qutaojing.common.utils.SpringUtils; +import cn.stock.market.domain.basic.factory.TwelveStockFactory; +import cn.stock.market.domain.basic.repository.TwelveStockRepository; +import lombok.RequiredArgsConstructor; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +/** + * TwelveStockService + * + * @author rplees + * @email rplees.i.ly@gmail.com + * @created 2024/05/30 + */ +@Service +@RequiredArgsConstructor( + onConstructor = @__(@Autowired) +) +public class TwelveStockService { + final TwelveStockRepository repository; + + final TwelveStockFactory factory; + + public TwelveStockRepository repository() { + return repository; + } + + public static TwelveStockService of() { + return SpringUtils.getBean(TwelveStockService.class); + } +} diff --git a/src/main/java/cn/stock/market/dto/TwelveStockDTO.java b/src/main/java/cn/stock/market/dto/TwelveStockDTO.java new file mode 100644 index 0000000..26fe715 --- /dev/null +++ b/src/main/java/cn/stock/market/dto/TwelveStockDTO.java @@ -0,0 +1,23 @@ +package cn.stock.market.dto; + +import cn.stock.market.infrastructure.db.po.TwelveStockPO; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +/** + * TwelveStockDTO + * + * @author rplees + * @email rplees.i.ly@gmail.com + * @created 2024/05/30 + */ +@Data +@NoArgsConstructor +@SuperBuilder +@EqualsAndHashCode( + callSuper = false +) +public class TwelveStockDTO extends TwelveStockPO { +} diff --git a/src/main/java/cn/stock/market/dto/command/TwelveStockCreateCommand.java b/src/main/java/cn/stock/market/dto/command/TwelveStockCreateCommand.java new file mode 100644 index 0000000..642bedc --- /dev/null +++ b/src/main/java/cn/stock/market/dto/command/TwelveStockCreateCommand.java @@ -0,0 +1,48 @@ +package cn.stock.market.dto.command; + +import java.lang.Integer; +import java.lang.String; +import java.util.Date; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +/** + * TwelveStockCreateCommand + * + * @author rplees + * @email rplees.i.ly@gmail.com + * @created 2024/05/30 + */ +@Data +@SuperBuilder +@NoArgsConstructor +public class TwelveStockCreateCommand { + /** + * 主键 */ + Integer id; + + /** + * 股票code */ + String stockCode; + + /** + * 股票名称 */ + String stockName; + + /** + * BSE or NSE */ + String stockType; + + /** + * 保存时间 */ + Date saveTime; + + /** + * 是否锁定 0否 1是 */ + Integer isLock; + + /** + * 是否展示 0是 1否 */ + Integer isShow; +} diff --git a/src/main/java/cn/stock/market/dto/command/TwelveStockModifyCommand.java b/src/main/java/cn/stock/market/dto/command/TwelveStockModifyCommand.java new file mode 100644 index 0000000..079b2f7 --- /dev/null +++ b/src/main/java/cn/stock/market/dto/command/TwelveStockModifyCommand.java @@ -0,0 +1,24 @@ +package cn.stock.market.dto.command; + +import java.lang.Integer; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; + +/** + * TwelveStockModifyCommand + * + * @author rplees + * @email rplees.i.ly@gmail.com + * @created 2024/05/30 + */ +@Data +@SuperBuilder +@NoArgsConstructor +@EqualsAndHashCode( + callSuper = false +) +public class TwelveStockModifyCommand extends TwelveStockCreateCommand { + Integer id; +} diff --git a/src/main/java/cn/stock/market/infrastructure/db/po/TwelveStockPO.java b/src/main/java/cn/stock/market/infrastructure/db/po/TwelveStockPO.java new file mode 100644 index 0000000..568adb1 --- /dev/null +++ b/src/main/java/cn/stock/market/infrastructure/db/po/TwelveStockPO.java @@ -0,0 +1,66 @@ +package cn.stock.market.infrastructure.db.po; + +import java.lang.Integer; +import java.lang.String; +import java.util.Date; +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.Id; +import javax.persistence.Table; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.experimental.SuperBuilder; +import org.hibernate.annotations.DynamicInsert; +import org.hibernate.annotations.DynamicUpdate; + +/** + * TwelveStockPO + * + * @author rplees + * @email rplees.i.ly@gmail.com + * @created 2024/05/30 + */ +@SuperBuilder +@Data +@NoArgsConstructor +@AllArgsConstructor +@Entity +@DynamicInsert +@DynamicUpdate +@Table( + name = "twelve_stock" +) +public class TwelveStockPO { + /** + * 主键 */ + @Id + @GeneratedValue( + strategy = javax.persistence.GenerationType.IDENTITY + ) + Integer id; + + /** + * 股票code */ + String stockCode; + + /** + * 股票名称 */ + String stockName; + + /** + * BSE or NSE */ + String stockType; + + /** + * 保存时间 */ + Date saveTime; + + /** + * 是否锁定 0否 1是 */ + Integer isLock; + + /** + * 是否展示 0是 1否 */ + Integer isShow; +} diff --git a/src/main/java/cn/stock/market/infrastructure/db/repo/TwelveStockRepo.java b/src/main/java/cn/stock/market/infrastructure/db/repo/TwelveStockRepo.java new file mode 100644 index 0000000..6396f9f --- /dev/null +++ b/src/main/java/cn/stock/market/infrastructure/db/repo/TwelveStockRepo.java @@ -0,0 +1,15 @@ +package cn.stock.market.infrastructure.db.repo; + +import cn.stock.market.infrastructure.db.po.TwelveStockPO; +import com.rp.spring.jpa.GenericJpaRepository; +import java.lang.Integer; + +/** + * TwelveStockRepo + * + * @author rplees + * @email rplees.i.ly@gmail.com + * @created 2024/05/30 + */ +public interface TwelveStockRepo extends GenericJpaRepository { +} diff --git a/src/main/java/cn/stock/market/web/TwelveApiController.java b/src/main/java/cn/stock/market/web/TwelveApiController.java new file mode 100644 index 0000000..8632d11 --- /dev/null +++ b/src/main/java/cn/stock/market/web/TwelveApiController.java @@ -0,0 +1,57 @@ +package cn.stock.market.web; + +import cn.hutool.core.date.DateUtil; +import cn.stock.market.MoneyStockSuggestDTO; +import cn.stock.market.domain.basic.entity.MoneyStock; +import cn.stock.market.domain.basic.repository.MoneyStockRepository; +import cn.stock.market.dto.StockHistoryRequest; +import cn.stock.market.dto.StockHistoryResponse; +import cn.stock.market.infrastructure.db.po.QMoneyStockPO; +import cn.stock.market.utils.RequestCacheUtils; +import cn.stock.market.utils.ServerResponse; +import cn.stock.market.web.annotations.EncryptFilter; +import com.alibaba.fastjson.JSONObject; +import com.google.common.cache.Cache; +import com.google.common.cache.CacheBuilder; +import com.google.common.collect.Lists; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiResponse; +import io.swagger.annotations.ApiResponses; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.lang3.StringUtils; +import org.jsoup.Jsoup; +import org.jsoup.nodes.Document; +import org.jsoup.nodes.Element; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpMethod; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.client.RestClientException; +import org.springframework.web.client.RestTemplate; + +import java.io.IOException; +import java.util.*; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.TimeUnit; +import java.util.function.Function; +import java.util.function.Predicate; +import java.util.stream.Collectors; + +/** + * twelvedata数据源接口 + */ +@RestController +@Api(value = "/TwelveApiController", tags = "twelvedata股票行情") +@Slf4j +public class TwelveApiController { + + +} diff --git a/src/test/java/rp/lee/jpa/JpaDDDGen.java b/src/test/java/rp/lee/jpa/JpaDDDGen.java index 98b0b7d..49f8743 100644 --- a/src/test/java/rp/lee/jpa/JpaDDDGen.java +++ b/src/test/java/rp/lee/jpa/JpaDDDGen.java @@ -31,9 +31,9 @@ public class JpaDDDGen { */ public static DataSource getMySQLDataSource() { MysqlDataSource mysqlDS = new MysqlDataSource(); - mysqlDS.setURL("jdbc:mysql://43.132.212.180:33306/india_stock?useUnicode=true&characterEncoding=utf-8"); + mysqlDS.setURL("jdbc:mysql://149.88.86.7:33306/india_stock?useUnicode=true&characterEncoding=utf-8"); mysqlDS.setUser("root"); - mysqlDS.setPassword("33BsUUcnXRYgwt"); + mysqlDS.setPassword("33BsUUcnXRYgwtIND"); return mysqlDS; } @@ -50,7 +50,7 @@ public class JpaDDDGen { /** * cs_statistic - 要生成的数据库表 */ - Cons.tableNameToEntiyMapping.put("money_stock", null); + Cons.tableNameToEntiyMapping.put("twelve_stock", null); ToolDDD.g(getMySQLDataSource().getConnection()); }