From eda8b6a7a2846c676070a28632a0932552da9dbe Mon Sep 17 00:00:00 2001 From: Omur Sahin Date: Fri, 28 Aug 2026 11:30:12 +0300 Subject: [PATCH] digitalbanking source code --- .../cs/rest/digitalbanking/.gitignore | 41 + jdk_17_maven/cs/rest/digitalbanking/README.md | 198 +++++ .../docker-compose-cassandra.yml | 25 + .../digitalbanking/docker-compose-kafka.yml | 147 ++++ .../cs/rest/digitalbanking/docker-compose.yml | 15 + .../rest/digitalbanking/images/Benchmark.png | Bin 0 -> 55317 bytes .../digitalbanking/images/DigitalBanking.png | Bin 0 -> 128996 bytes .../digitalbanking/images/Springindexes.png | Bin 0 -> 104009 bytes .../cs/rest/digitalbanking/images/Tables.png | Bin 0 -> 53027 bytes .../rest/digitalbanking/images/deployment.png | Bin 0 -> 223326 bytes jdk_17_maven/cs/rest/digitalbanking/pom.xml | 122 +++ jdk_17_maven/cs/rest/digitalbanking/runJob.sh | 1 + .../cs/rest/digitalbanking/scripts/addTag.sh | 3 + .../cs/rest/digitalbanking/scripts/addTag2.sh | 3 + .../scripts/createCassandraSink.sh | 18 + .../scripts/createCassandraTrans.sh | 3 + .../digitalbanking/scripts/createRedisSink.sh | 22 + .../rest/digitalbanking/scripts/customer.json | 1 + .../digitalbanking/scripts/customer1.json | 1 + .../digitalbanking/scripts/customer2.json | 1 + .../digitalbanking/scripts/customer3.json | 1 + .../digitalbanking/scripts/customer4.json | 1 + .../digitalbanking/scripts/customer5.json | 1 + .../digitalbanking/scripts/customer6.json | 1 + .../scripts/deleteCustomerEmail.sh | 3 + .../digitalbanking/scripts/deleteCustomers.sh | 3 + .../rest/digitalbanking/scripts/dispute.json | 1 + .../digitalbanking/scripts/disputeAccept.sh | 1 + .../scripts/disputeReasonCode.sh | 1 + .../digitalbanking/scripts/disputeResolved.sh | 1 + .../digitalbanking/scripts/generateData.sh | 7 + .../digitalbanking/scripts/generateLots.sh | 8 + .../digitalbanking/scripts/getByAccount.sh | 3 + .../digitalbanking/scripts/getByCreditCard.sh | 3 + .../digitalbanking/scripts/getByCustID.sh | 3 + .../rest/digitalbanking/scripts/getByEmail.sh | 3 + .../digitalbanking/scripts/getByMerchant.sh | 3 + .../scripts/getByMerchantCategory.sh | 2 + .../digitalbanking/scripts/getByNamePhone.sh | 2 + .../rest/digitalbanking/scripts/getByPhone.sh | 2 + .../digitalbanking/scripts/getByStateCity.sh | 2 + .../scripts/getByZipLastname.sh | 2 + .../rest/digitalbanking/scripts/getReturns.sh | 3 + .../scripts/getTaggedAccountTransactions.sh | 3 + .../digitalbanking/scripts/getTransaction.sh | 2 + .../scripts/getTransactionStatus.sh | 3 + .../scripts/getTransactionTags.sh | 3 + .../digitalbanking/scripts/putCustomer.sh | 7 + .../rest/digitalbanking/scripts/putDispute.sh | 1 + .../digitalbanking/scripts/saveAccount.sh | 2 + .../digitalbanking/scripts/saveCustomer.sh | 2 + .../digitalbanking/scripts/saveTransaction.sh | 2 + .../cs/rest/digitalbanking/scripts/search.txt | 2 + .../cs/rest/digitalbanking/scripts/setEnv.sh | 17 + .../digitalbanking/scripts/startAppServers.sh | 7 + .../rest/digitalbanking/scripts/testKafka.sh | 1 + .../cs/rest/digitalbanking/scripts/trans.cql | 1 + .../scripts/updateTransactionStatus.sh | 5 + .../java/com/jphaugla/DemoApplication.java | 25 + .../java/com/jphaugla/boot/CreateIndexes.java | 167 ++++ .../com/jphaugla/config/CassandraConfig.java | 56 ++ .../java/com/jphaugla/config/RedisConfig.java | 133 +++ .../controller/BankingController.java | 274 ++++++ .../java/com/jphaugla/data/BankGenerator.java | 355 ++++++++ .../java/com/jphaugla/domain/Account.java | 28 + .../jphaugla/domain/CassandraTransaction.java | 39 + .../java/com/jphaugla/domain/Customer.java | 42 + .../java/com/jphaugla/domain/Dispute.java | 22 + .../main/java/com/jphaugla/domain/Email.java | 15 + .../java/com/jphaugla/domain/Merchant.java | 20 + .../main/java/com/jphaugla/domain/Phone.java | 18 + .../java/com/jphaugla/domain/Transaction.java | 42 + .../jphaugla/domain/TransactionReturn.java | 18 + .../repository/AccountRepository.java | 86 ++ .../repository/CassandraTransRepository.java | 12 + .../repository/CustomerRepository.java | 69 ++ .../repository/DisputeRepository.java | 85 ++ .../jphaugla/repository/EmailRepository.java | 89 ++ .../repository/MerchantRepository.java | 68 ++ .../jphaugla/repository/PhoneRepository.java | 61 ++ .../repository/TransactionRepository.java | 117 +++ .../TransactionReturnRepository.java | 67 ++ .../com/jphaugla/service/AsyncService.java | 71 ++ .../com/jphaugla/service/BankService.java | 822 ++++++++++++++++++ .../com/jphaugla/service/TopicProducer.java | 36 + .../src/main/resources/application.properties | 44 + .../main/resources/ssl/generatekeystore.sh | 5 + .../src/main/resources/ssl/generatepems.sh | 7 + .../src/main/resources/ssl/generatetrust.sh | 8 + .../src/main/resources/ssl/importkey.sh | 4 + 90 files changed, 3621 insertions(+) create mode 100644 jdk_17_maven/cs/rest/digitalbanking/.gitignore create mode 100644 jdk_17_maven/cs/rest/digitalbanking/README.md create mode 100644 jdk_17_maven/cs/rest/digitalbanking/docker-compose-cassandra.yml create mode 100644 jdk_17_maven/cs/rest/digitalbanking/docker-compose-kafka.yml create mode 100644 jdk_17_maven/cs/rest/digitalbanking/docker-compose.yml create mode 100644 jdk_17_maven/cs/rest/digitalbanking/images/Benchmark.png create mode 100644 jdk_17_maven/cs/rest/digitalbanking/images/DigitalBanking.png create mode 100644 jdk_17_maven/cs/rest/digitalbanking/images/Springindexes.png create mode 100644 jdk_17_maven/cs/rest/digitalbanking/images/Tables.png create mode 100644 jdk_17_maven/cs/rest/digitalbanking/images/deployment.png create mode 100644 jdk_17_maven/cs/rest/digitalbanking/pom.xml create mode 100644 jdk_17_maven/cs/rest/digitalbanking/runJob.sh create mode 100644 jdk_17_maven/cs/rest/digitalbanking/scripts/addTag.sh create mode 100644 jdk_17_maven/cs/rest/digitalbanking/scripts/addTag2.sh create mode 100644 jdk_17_maven/cs/rest/digitalbanking/scripts/createCassandraSink.sh create mode 100644 jdk_17_maven/cs/rest/digitalbanking/scripts/createCassandraTrans.sh create mode 100644 jdk_17_maven/cs/rest/digitalbanking/scripts/createRedisSink.sh create mode 100644 jdk_17_maven/cs/rest/digitalbanking/scripts/customer.json create mode 100644 jdk_17_maven/cs/rest/digitalbanking/scripts/customer1.json create mode 100644 jdk_17_maven/cs/rest/digitalbanking/scripts/customer2.json create mode 100644 jdk_17_maven/cs/rest/digitalbanking/scripts/customer3.json create mode 100644 jdk_17_maven/cs/rest/digitalbanking/scripts/customer4.json create mode 100644 jdk_17_maven/cs/rest/digitalbanking/scripts/customer5.json create mode 100644 jdk_17_maven/cs/rest/digitalbanking/scripts/customer6.json create mode 100644 jdk_17_maven/cs/rest/digitalbanking/scripts/deleteCustomerEmail.sh create mode 100644 jdk_17_maven/cs/rest/digitalbanking/scripts/deleteCustomers.sh create mode 100644 jdk_17_maven/cs/rest/digitalbanking/scripts/dispute.json create mode 100644 jdk_17_maven/cs/rest/digitalbanking/scripts/disputeAccept.sh create mode 100644 jdk_17_maven/cs/rest/digitalbanking/scripts/disputeReasonCode.sh create mode 100644 jdk_17_maven/cs/rest/digitalbanking/scripts/disputeResolved.sh create mode 100644 jdk_17_maven/cs/rest/digitalbanking/scripts/generateData.sh create mode 100644 jdk_17_maven/cs/rest/digitalbanking/scripts/generateLots.sh create mode 100644 jdk_17_maven/cs/rest/digitalbanking/scripts/getByAccount.sh create mode 100644 jdk_17_maven/cs/rest/digitalbanking/scripts/getByCreditCard.sh create mode 100644 jdk_17_maven/cs/rest/digitalbanking/scripts/getByCustID.sh create mode 100644 jdk_17_maven/cs/rest/digitalbanking/scripts/getByEmail.sh create mode 100644 jdk_17_maven/cs/rest/digitalbanking/scripts/getByMerchant.sh create mode 100644 jdk_17_maven/cs/rest/digitalbanking/scripts/getByMerchantCategory.sh create mode 100644 jdk_17_maven/cs/rest/digitalbanking/scripts/getByNamePhone.sh create mode 100644 jdk_17_maven/cs/rest/digitalbanking/scripts/getByPhone.sh create mode 100644 jdk_17_maven/cs/rest/digitalbanking/scripts/getByStateCity.sh create mode 100644 jdk_17_maven/cs/rest/digitalbanking/scripts/getByZipLastname.sh create mode 100644 jdk_17_maven/cs/rest/digitalbanking/scripts/getReturns.sh create mode 100644 jdk_17_maven/cs/rest/digitalbanking/scripts/getTaggedAccountTransactions.sh create mode 100644 jdk_17_maven/cs/rest/digitalbanking/scripts/getTransaction.sh create mode 100644 jdk_17_maven/cs/rest/digitalbanking/scripts/getTransactionStatus.sh create mode 100644 jdk_17_maven/cs/rest/digitalbanking/scripts/getTransactionTags.sh create mode 100644 jdk_17_maven/cs/rest/digitalbanking/scripts/putCustomer.sh create mode 100644 jdk_17_maven/cs/rest/digitalbanking/scripts/putDispute.sh create mode 100644 jdk_17_maven/cs/rest/digitalbanking/scripts/saveAccount.sh create mode 100644 jdk_17_maven/cs/rest/digitalbanking/scripts/saveCustomer.sh create mode 100644 jdk_17_maven/cs/rest/digitalbanking/scripts/saveTransaction.sh create mode 100644 jdk_17_maven/cs/rest/digitalbanking/scripts/search.txt create mode 100644 jdk_17_maven/cs/rest/digitalbanking/scripts/setEnv.sh create mode 100644 jdk_17_maven/cs/rest/digitalbanking/scripts/startAppServers.sh create mode 100644 jdk_17_maven/cs/rest/digitalbanking/scripts/testKafka.sh create mode 100644 jdk_17_maven/cs/rest/digitalbanking/scripts/trans.cql create mode 100644 jdk_17_maven/cs/rest/digitalbanking/scripts/updateTransactionStatus.sh create mode 100644 jdk_17_maven/cs/rest/digitalbanking/src/main/java/com/jphaugla/DemoApplication.java create mode 100644 jdk_17_maven/cs/rest/digitalbanking/src/main/java/com/jphaugla/boot/CreateIndexes.java create mode 100644 jdk_17_maven/cs/rest/digitalbanking/src/main/java/com/jphaugla/config/CassandraConfig.java create mode 100644 jdk_17_maven/cs/rest/digitalbanking/src/main/java/com/jphaugla/config/RedisConfig.java create mode 100644 jdk_17_maven/cs/rest/digitalbanking/src/main/java/com/jphaugla/controller/BankingController.java create mode 100644 jdk_17_maven/cs/rest/digitalbanking/src/main/java/com/jphaugla/data/BankGenerator.java create mode 100644 jdk_17_maven/cs/rest/digitalbanking/src/main/java/com/jphaugla/domain/Account.java create mode 100644 jdk_17_maven/cs/rest/digitalbanking/src/main/java/com/jphaugla/domain/CassandraTransaction.java create mode 100644 jdk_17_maven/cs/rest/digitalbanking/src/main/java/com/jphaugla/domain/Customer.java create mode 100644 jdk_17_maven/cs/rest/digitalbanking/src/main/java/com/jphaugla/domain/Dispute.java create mode 100644 jdk_17_maven/cs/rest/digitalbanking/src/main/java/com/jphaugla/domain/Email.java create mode 100644 jdk_17_maven/cs/rest/digitalbanking/src/main/java/com/jphaugla/domain/Merchant.java create mode 100644 jdk_17_maven/cs/rest/digitalbanking/src/main/java/com/jphaugla/domain/Phone.java create mode 100644 jdk_17_maven/cs/rest/digitalbanking/src/main/java/com/jphaugla/domain/Transaction.java create mode 100644 jdk_17_maven/cs/rest/digitalbanking/src/main/java/com/jphaugla/domain/TransactionReturn.java create mode 100644 jdk_17_maven/cs/rest/digitalbanking/src/main/java/com/jphaugla/repository/AccountRepository.java create mode 100644 jdk_17_maven/cs/rest/digitalbanking/src/main/java/com/jphaugla/repository/CassandraTransRepository.java create mode 100644 jdk_17_maven/cs/rest/digitalbanking/src/main/java/com/jphaugla/repository/CustomerRepository.java create mode 100644 jdk_17_maven/cs/rest/digitalbanking/src/main/java/com/jphaugla/repository/DisputeRepository.java create mode 100644 jdk_17_maven/cs/rest/digitalbanking/src/main/java/com/jphaugla/repository/EmailRepository.java create mode 100644 jdk_17_maven/cs/rest/digitalbanking/src/main/java/com/jphaugla/repository/MerchantRepository.java create mode 100644 jdk_17_maven/cs/rest/digitalbanking/src/main/java/com/jphaugla/repository/PhoneRepository.java create mode 100644 jdk_17_maven/cs/rest/digitalbanking/src/main/java/com/jphaugla/repository/TransactionRepository.java create mode 100644 jdk_17_maven/cs/rest/digitalbanking/src/main/java/com/jphaugla/repository/TransactionReturnRepository.java create mode 100644 jdk_17_maven/cs/rest/digitalbanking/src/main/java/com/jphaugla/service/AsyncService.java create mode 100644 jdk_17_maven/cs/rest/digitalbanking/src/main/java/com/jphaugla/service/BankService.java create mode 100644 jdk_17_maven/cs/rest/digitalbanking/src/main/java/com/jphaugla/service/TopicProducer.java create mode 100644 jdk_17_maven/cs/rest/digitalbanking/src/main/resources/application.properties create mode 100644 jdk_17_maven/cs/rest/digitalbanking/src/main/resources/ssl/generatekeystore.sh create mode 100644 jdk_17_maven/cs/rest/digitalbanking/src/main/resources/ssl/generatepems.sh create mode 100644 jdk_17_maven/cs/rest/digitalbanking/src/main/resources/ssl/generatetrust.sh create mode 100644 jdk_17_maven/cs/rest/digitalbanking/src/main/resources/ssl/importkey.sh diff --git a/jdk_17_maven/cs/rest/digitalbanking/.gitignore b/jdk_17_maven/cs/rest/digitalbanking/.gitignore new file mode 100644 index 000000000..ab7355873 --- /dev/null +++ b/jdk_17_maven/cs/rest/digitalbanking/.gitignore @@ -0,0 +1,41 @@ +HELP.md +target/ +!.mvn/wrapper/maven-wrapper.jar +!**/src/main/**/target/ +!**/src/test/**/target/ + +### STS ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache + +### IntelliJ IDEA ### +.idea +*.iws +*.iml +*.ipr + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ +build/ +!**/src/main/**/build/ +!**/src/test/**/build/ + +### VS Code ### +.vscode/ + +### ds_store +**/.DS_Store + +### docker directories +/cassandra/cassandra +/cassandra/redis_data/ +/redis_data diff --git a/jdk_17_maven/cs/rest/digitalbanking/README.md b/jdk_17_maven/cs/rest/digitalbanking/README.md new file mode 100644 index 000000000..2366922c0 --- /dev/null +++ b/jdk_17_maven/cs/rest/digitalbanking/README.md @@ -0,0 +1,198 @@ +# Redisearch-Digital-Banking-redistemplate + +Provides a quick-start example of using Redis with springBoot with Banking structures. Digital Banking uses an API microservices approach to enable high speed requests for account, customer and transaction information. As seen below, this data is useful for a variety of business purposes in the bank. + + +### Note: This is the same as Redisearch-Digital-Banking but uses redistemplate instead of any of the crudrepository indexes. redisearch 2.0 indexes will be used. This is not using the crudrepository for the basic redis data. + +## Overview +In this tutorial, a java spring boot application is run through a jar file to support typical API calls to a REDIS banking data layer. A redis docker configuration is included. + +## Redis Advantages for Digital Banking + * Redis easily handles high write transaction volume + * Redis has no tombstone issues and can upsert posted transactions over pending + * Redis Enterprise scales vertically (large nodes) and horizontally (many nodes) + * Redisearch 2.0 automatically indexes the hash structure created by Spring Java CRUD repository + +## Requirements +* Docker installed on your local system, see [Docker Installation Instructions](https://docs.docker.com/engine/installation/). +* Alternatively, can run Redis Enterprise and set the redis host and port in the application.properties file +* When using Docker for Mac or Docker for Windows, the default resources allocated to the linux VM running docker are 2GB RAM and 2 CPU's. Make sure to adjust these resources to meet the resource requirements for the containers you will be running. More information can be found here on adjusting the resources allocated to docker. + +[Docker for mac](https://docs.docker.com/docker-for-mac/#advanced) +[Docker for windows](https://docs.docker.com/docker-for-windows/#advanced) + +## Links that help! + + * [Redis Stack](https://redis.com/blog/introducing-redis-stack/) + * [Redis Search](https://redis.io/docs/stack/search/) + * [Redis Insight](https://redis.io/docs/stack/insight/) + * [Spring Data for Redis github](https://github.com/spring-projects/spring-data-examples/tree/master/redis/repositories) + * [Spring Data for Cassandra](https://www.baeldung.com/spring-data-cassandra-tutorial) + * [Spring Data for Kafka](https://www.baeldung.com/spring-kafka) + * [spring data Reference in domain](https://github.com/spring-projects/spring-data-examples/blob/master/redis/repositories/src/main/java/example/springdata/redis/repositories/Person.java) + * [spring async tips](https://dzone.com/articles/effective-advice-on-spring-async-part-1) + * [swagger-ui with spring](https://www.baeldung.com/spring-rest-openapi-documentation) + * + + +## Technical Overview + +This github java code uses jedis library for redis. The jedis library supports RediSearch, RedisJSON, and RedisTimeSeries. The original github only used spring java without redisearch. That repository is still intact at [this github location](https://github.com/jphaugla/Redis-Digital-Banking). Another subsequent version uses crud repository and search at [this github location](https://github.com/jphaugla/Redisearch-Digital-Banking) +All of the Spring Java indexes have been removed in this version. The crud repository has been removed. +### The spring java code +This is basic spring links +* [Spring Redis](https://docs.spring.io/spring-data/data-redis/docs/current/reference/html/#redis.repositories.indexes) +* *boot*-Contains index creation for each of the four redisearch indexes used in this solution: Account, Customer, Merchant, and Transaction +* *config*-Initial configuration module using autoconfiguration and a threadpool sizing to adjust based on machine size +* *controller*-http API call interfaces +* *data*-code to generate POC type of customer, account, and transaction code +* *domain*-has each of the java objects with their columns. Enables all the getter/setter methods +* *repository*-has repository definitions. With transition to redisearch 2.0, not used as heavily as previously. This is where the redistemplate code is added if crud repository is no longer used. Cassandra transaction repository is also here. +* *service*-asyncservice, topicproducer (kafka) and bankservice doing the interaction with redis +### +The java code demonstrates common API actions with the data layer in REDIS. The java spring Boot framework minimizes the amount of code to build and maintain this solution. Maven is used to build the java code and the code is deployed to the tomcat server. + +### Data Structures in use + + +## Using Docker for non-application components +This option uses docker to support all of the non-application components (kafka, cassandra, redis) with the java application running on the local mac. +* Prepare Docker environment-see the Prerequisites section above... +* Pull this github into a directory +```bash +git clone https://github.com/jphaugla/Redisearch-Digital-Banking.git +``` +* Refer to the notes for redis Docker images used but don't get too bogged down as docker compose handles everything except for a few admin steps on tomcat. + * [Redis stack docker instructions](https://redis.io/docs/stack/get-started/install/docker/) +* Open terminal and change to the github home where you will see the docker-compose.yml file, then: +```bash +docker-compose -f docker-compose-kafka.yml -f docker-compose.yml -f docker-compose-cassandra.yml up -d +``` +## Deploying java application on local mac with Kafka non-application components +* ensure maven and java are deployed on the local machine + * have been running with java 17 or java 18 but other versions should work as well + * have been runing with 3.9.4 and 3.9.5 +* Set up the environment and run the java application locally + * edit the [environment file](scripts/setEnv.sh) to use localhost for non-application components + * source this environment file + * run the application +```bash +source scripts/setEnv.sh +java -jar target/redis-0.0.1-SNAPSHOT.jar +``` + +## Using terraform on azure for all components + +* Use [this github](https://github.com/jphaugla/tfmodule-azure-redis-enterprise) to deploy all of the components (including the application) +* Check the [readme](https://github.com/jphaugla/tfmodule-azure-redis-enterprise/README.md) for the details on deploying this github including the cloning the github and working with Azure. Completely deploy the terraform github for all deployments. This will also deploy [this github](https://github.com/jphaugla/Redisearch-Digital-Banking-redisTemplate) inside the tester node. The later application deployment instructions will be deployed within the tester node using ssh +* maven and java will be installed by the ansible jobs for the tester node +* the ip and dns information is shared in a [temp directory](https://github.com/jphaugla/tfmodule-azure-redis-enterprise/provisioners/temp) within the terraform/ansible repository. Go to the files here to see private (internal) and public (external) kafka node, cassandra node and testinnode IP addresses. The redis internal and external database connection dns names are also available. These dns names will also give an internal and external redis enterprise node IP. +* log into the tester node using the testernode IP and the ssh key defined in test/main.tf and go to github home +```bash +ssh -i redislabs@ +cd Redisearch-Digital-Banking-redisTemplate +``` +* edit the [environment file](scripts/setEnv.sh) using only the internal connection addresses. NOTE: kafka will only connect from local azure IP addresses and not any public IP addresses. Using public and private Kafka addresses is possible but not configured currently +* These steps can all be done from client machine local browser using the kafka node public IP address and port 9021. [http://172.172.133.201:9021/](http://172.172.133.201:9021/) From this home screen, pause the currently running connectors: datagen-pageviews, cassanddra-sink, and redis-sink-json using the Kafka Control Center. This will just remove the noise of a second application running. +* Consider cleaning both the redis (use flushdb) and cassandra databases as well (drop keyspace pageviews) +* Create transaction table in cassandra using provided script +```bash +cd scripts +# edit the CQLSH_HOST variable inside the script for the cassandra host pubic IP address +./createCassandraTrans.sh +``` +* start the application after logging in to the testernode +```bash +ssh -i ~/.ssh/ redislabs@ +cd Redisearch-Digital-Banking-redisTemplate +mvn clean package +# edit scripts/setEnv.sh for current nodes - REDIS_HOST, REDIS_PORT, and KAFKA_HOST must all change to match current environment. *IMPORTANT* only use private/internal IP addresses-DO NOT USE *localhost*. Additional note, redis password is different in local docker version and in ansible created version-verify redis password! +source scripts/setEnv.sh +java -jar target/redis-0.0.1-SNAPSHOT.jar +``` +* get a second terminal window to the tester node and write a test message to kafka-this will cause the topic to be created. Name can be changed in [application.properties](src/main/resources/application.properites) but default topic name is *transactions* +```bash +ssh -i ~/.ssh/ redislabs@ +cd Redisearch-Digital-Banking-redisTemplate/scripts +# make sure saveTransaction script says doKafka=true +./saveTransaction.sh +``` +* verify transactions topic is created using kafka control center + * in control center click on topics and then on the topics page, click messages + * if you run saveTransaction.sh again while looking at the control center topic pane, the message will be visible. If you put offset of 0, both messages will be visible. + * application will create the kafka topic on first usage of the topic. +* Call kafka API to create the RedisSink using provided script. DO THIS FROM your local Mac +```bash +cd Redisearch-Digital-Banking-redisTemplate/scripts +# change localhost to the external/public ip address for the kafka node in the last line. +# Make sure this is the public kafka IP and not the private +# Verify the redis.uri and redis.password. (the redis.uri must be INTERNAL) +./createRedisSink.sh +ssh -i ~/.ssh/ redislabs@ +./saveTransaction.sh +``` +verify data flowed in to redis using redis-cli +```bash +redis-cli -h -p -a redis123 +>keys Trans* + + +* Call an Api to create the cassandra sink using provided script +```bash +# on local mac +cd Redisearch-Digital-Banking-redisTemplate/scripts +# change localhost to the public ip address for the kafka node in the last line. +# Set the contactPoints to the local IP address for the cassandra node. +./createCassandraSink.sh +ssh -i ~/.ssh/ redislabs@ +./saveTransaction.sh +``` +verify data flowed in to cassandra using cqlsh + +## process larger record set +verify generateData.sh says doKafkfa=true +```bash +./scripts/generateData.sh +``` +Will see large number of records now in cassandra and redis + +Shows a benchmark test run of generateData.sh on GCP servers. Although, this test run is using redisearch 1.0 code base. Need to rerun this test. + + +### Investigate the APIs +#### Use swagger UI +* [open api docs](http://localhost:8080/v3/api-docs) +* [use swagger ui](http://localhost:8080/swagger-ui/index.html) +#### run bash scripts in ./scripts. Adding the redisearch queries behind each script here also... + * addTag.sh - add a tag to a transaction. Tags allow user to mark transactions to be in a buckets such as Travel or Food for budgetary tracking purposes + * deleteCustomer.sh - delete all customers matching a string + * generateData.sh - simple API to generate default customer, accounts, merchants, phone numbers, emails and transactions + * generateLots.sh - for server testing to generate higher load levels. Use with startAppservers.sh. Not for use with docker setup. This is load testing with redis enterprise and client application running in same network in the cloud. + * getByAccount.sh - find transactions for an account between a date range + * getByCreditCard.sh - find transactions for a credit card between a date range + * getByCustID.sh - retrieve transactions for customer + * getByEmail.sh - retrieve customer record using email address + * getByMerchant.sh - find all transactions for an account from one merchant for date range + * getByMerchantCategory.sh - find all transactions for an account from merchant category for date range + * getByNamePhone.sh - get customers by phone and full name. + * getByPhone.sh - get customers by phone only + * getByStateCity.sh - get customers by city and state + * getByZipLastname.sh - get customers by zipcode and lastname. + * getReturns.sh - get returned transactions count by reason code + * getTags.sh - get all tags on an account + * getTaggedAccountTransactions.sh - find transactions for an account with a particular tag + * getTransaction.sh - get one transaction by its transaction ID + * getTransactionStatus.sh - see count of transactions by account status of PENDING, AUTHORIZED, SETTLED + * putCustomer.sh - put a set of json customer records + * saveAccount.sh - save a sample account + * saveCustomer.sh - save a sample customer + * saveTransaction.sh - save a sample Transaction + * startAppservers.sh - start multiple app server instances for load testing + * testPipeline.sh - test pipelining + * updateTransactionStatus.sh - generate new transactions to move all transactions from one transaction Status up to the next transaction status. Parameter is target status. Can choose SETTLED or POSTED. Will move 100,000 transactions per call + * putDispute.sh - put the dispute specified in dispute.sh + * disputeReasonCode.sh - set the dispute reason code + * disputeAccept.sh - accept the dispute + * disputeResolved.sh - charge back the dispute + diff --git a/jdk_17_maven/cs/rest/digitalbanking/docker-compose-cassandra.yml b/jdk_17_maven/cs/rest/digitalbanking/docker-compose-cassandra.yml new file mode 100644 index 000000000..cf39a4b1d --- /dev/null +++ b/jdk_17_maven/cs/rest/digitalbanking/docker-compose-cassandra.yml @@ -0,0 +1,25 @@ +version: '3.9' + +services: + + cassandra1: + image: 'cassandra:latest' + environment: + - CASSANDRA_CLUSTER_NAME=test + - CASSANDRA_SEEDS=cassandra1 +# this is actually hardcoded with SIMPLE Snitch + - CASSANDRA_DC=datacenter1 + - CASSANDRA_ENDPOINT_SNITCH=SimpleSnitch + - CASSANDRA_BROADCAST_ADDRESS=cassandra1 + container_name: cassandra1 + hostname: cassandra1 + ports: + - '9042:9042' + - '9160:9160' + + cassandra-load-keyspace: + container_name: cassandra-load-keyspace + image: 'cassandra:latest' + volumes: + - ./cassandra_init:/cassandra_init/ + entrypoint: [ "bash", "/cassandra_init/init.sh" ] diff --git a/jdk_17_maven/cs/rest/digitalbanking/docker-compose-kafka.yml b/jdk_17_maven/cs/rest/digitalbanking/docker-compose-kafka.yml new file mode 100644 index 000000000..d302c857d --- /dev/null +++ b/jdk_17_maven/cs/rest/digitalbanking/docker-compose-kafka.yml @@ -0,0 +1,147 @@ +--- +version: '2' +services: + zookeeper: + image: confluentinc/cp-zookeeper:7.2.0 + hostname: zookeeper + container_name: zookeeper + ports: + - "2181:2181" + environment: + ZOOKEEPER_CLIENT_PORT: 2181 + ZOOKEEPER_TICK_TIME: 2000 + + broker: + image: confluentinc/cp-server:7.2.0 + hostname: broker + container_name: broker + depends_on: + - zookeeper + ports: + - "9092:9092" + - "9101:9101" + environment: + KAFKA_BROKER_ID: 1 + KAFKA_ZOOKEEPER_CONNECT: 'zookeeper:2181' + KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: PLAINTEXT:PLAINTEXT,PLAINTEXT_HOST:PLAINTEXT + KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://broker:29092,PLAINTEXT_HOST://localhost:9092 + KAFKA_METRIC_REPORTERS: io.confluent.metrics.reporter.ConfluentMetricsReporter + KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1 + KAFKA_GROUP_INITIAL_REBALANCE_DELAY_MS: 0 + KAFKA_CONFLUENT_LICENSE_TOPIC_REPLICATION_FACTOR: 1 + KAFKA_CONFLUENT_BALANCER_TOPIC_REPLICATION_FACTOR: 1 + KAFKA_TRANSACTION_STATE_LOG_MIN_ISR: 1 + KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: 1 + KAFKA_JMX_PORT: 9101 + KAFKA_JMX_HOSTNAME: localhost + KAFKA_CONFLUENT_SCHEMA_REGISTRY_URL: http://schema-registry:8081 + CONFLUENT_METRICS_REPORTER_BOOTSTRAP_SERVERS: broker:29092 + CONFLUENT_METRICS_REPORTER_TOPIC_REPLICAS: 1 + CONFLUENT_METRICS_ENABLE: 'true' + CONFLUENT_SUPPORT_CUSTOMER_ID: 'anonymous' + + schema-registry: + image: confluentinc/cp-schema-registry:7.2.0 + hostname: schema-registry + container_name: schema-registry + depends_on: + - broker + ports: + - "8081:8081" + environment: + SCHEMA_REGISTRY_HOST_NAME: schema-registry + SCHEMA_REGISTRY_KAFKASTORE_BOOTSTRAP_SERVERS: 'broker:29092' + SCHEMA_REGISTRY_LISTENERS: http://0.0.0.0:8081 + + connect: + image: fieldengineering/redis-kafka-connect + hostname: connect + container_name: connect + depends_on: + - broker + - schema-registry + ports: + - "8083:8083" + volumes: + - ./confluent-hub-components:/usr/share/confluent-hub-components/ + environment: + CONNECT_BOOTSTRAP_SERVERS: 'broker:29092' + CONNECT_REST_ADVERTISED_HOST_NAME: connect + CONNECT_GROUP_ID: compose-connect-group + CONNECT_CONFIG_STORAGE_TOPIC: docker-connect-configs + CONNECT_CONFIG_STORAGE_REPLICATION_FACTOR: 1 + CONNECT_OFFSET_FLUSH_INTERVAL_MS: 10000 + CONNECT_OFFSET_STORAGE_TOPIC: docker-connect-offsets + CONNECT_OFFSET_STORAGE_REPLICATION_FACTOR: 1 + CONNECT_STATUS_STORAGE_TOPIC: docker-connect-status + CONNECT_STATUS_STORAGE_REPLICATION_FACTOR: 1 + CONNECT_KEY_CONVERTER: org.apache.kafka.connect.storage.StringConverter + CONNECT_VALUE_CONVERTER: io.confluent.connect.avro.AvroConverter + CONNECT_VALUE_CONVERTER_SCHEMA_REGISTRY_URL: http://schema-registry:8081 + # CLASSPATH required due to CC-2422 + CLASSPATH: /usr/share/java/monitoring-interceptors/monitoring-interceptors-7.2.0.jar + CONNECT_PRODUCER_INTERCEPTOR_CLASSES: "io.confluent.monitoring.clients.interceptor.MonitoringProducerInterceptor" + CONNECT_CONSUMER_INTERCEPTOR_CLASSES: "io.confluent.monitoring.clients.interceptor.MonitoringConsumerInterceptor" + CONNECT_PLUGIN_PATH: "/usr/share/java,/usr/share/confluent-hub-components" + CONNECT_LOG4J_LOGGERS: org.apache.zookeeper=ERROR,org.I0Itec.zkclient=ERROR,org.reflections=ERROR + + control-center: + image: confluentinc/cp-enterprise-control-center:7.2.0 + hostname: control-center + container_name: control-center + depends_on: + - broker + - schema-registry + - connect + - ksqldb-server + ports: + - "9021:9021" + environment: + CONTROL_CENTER_BOOTSTRAP_SERVERS: 'broker:29092' + CONTROL_CENTER_CONNECT_CONNECT-DEFAULT_CLUSTER: 'connect:8083' + CONTROL_CENTER_KSQL_KSQLDB1_URL: "http://ksqldb-server:8088" + CONTROL_CENTER_KSQL_KSQLDB1_ADVERTISED_URL: "http://localhost:8088" + CONTROL_CENTER_SCHEMA_REGISTRY_URL: "http://schema-registry:8081" + CONTROL_CENTER_REPLICATION_FACTOR: 1 + CONTROL_CENTER_INTERNAL_TOPICS_PARTITIONS: 1 + CONTROL_CENTER_MONITORING_INTERCEPTOR_TOPIC_PARTITIONS: 1 + CONFLUENT_METRICS_TOPIC_REPLICATION: 1 + PORT: 9021 + + ksqldb-server: + image: confluentinc/cp-ksqldb-server:7.2.0 + hostname: ksqldb-server + container_name: ksqldb-server + depends_on: + - broker + - connect + ports: + - "8088:8088" + environment: + KSQL_CONFIG_DIR: "/etc/ksql" + KSQL_BOOTSTRAP_SERVERS: "broker:29092" + KSQL_HOST_NAME: ksqldb-server + KSQL_LISTENERS: "http://0.0.0.0:8088" + KSQL_CACHE_MAX_BYTES_BUFFERING: 0 + KSQL_KSQL_SCHEMA_REGISTRY_URL: "http://schema-registry:8081" + KSQL_PRODUCER_INTERCEPTOR_CLASSES: "io.confluent.monitoring.clients.interceptor.MonitoringProducerInterceptor" + KSQL_CONSUMER_INTERCEPTOR_CLASSES: "io.confluent.monitoring.clients.interceptor.MonitoringConsumerInterceptor" + KSQL_KSQL_CONNECT_URL: "http://connect:8083" + KSQL_KSQL_LOGGING_PROCESSING_TOPIC_REPLICATION_FACTOR: 1 + KSQL_KSQL_LOGGING_PROCESSING_TOPIC_AUTO_CREATE: 'true' + KSQL_KSQL_LOGGING_PROCESSING_STREAM_AUTO_CREATE: 'true' + + rest-proxy: + image: confluentinc/cp-kafka-rest:7.2.0 + depends_on: + - broker + - schema-registry + ports: + - 8082:8082 + hostname: rest-proxy + container_name: rest-proxy + environment: + KAFKA_REST_HOST_NAME: rest-proxy + KAFKA_REST_BOOTSTRAP_SERVERS: 'broker:29092' + KAFKA_REST_LISTENERS: "http://0.0.0.0:8082" + KAFKA_REST_SCHEMA_REGISTRY_URL: 'http://schema-registry:8081' diff --git a/jdk_17_maven/cs/rest/digitalbanking/docker-compose.yml b/jdk_17_maven/cs/rest/digitalbanking/docker-compose.yml new file mode 100644 index 000000000..9618dcd5d --- /dev/null +++ b/jdk_17_maven/cs/rest/digitalbanking/docker-compose.yml @@ -0,0 +1,15 @@ +version: '3.9' +services: + + redis: + image: redis/redis-stack:latest + container_name: redis + hostname: redis + environment: + REDIS_ARGS: "--requirepass jasonrocks" + ports: + - "6379:6379" + - "8001:8001" + volumes: + - ./redis_data:/data + diff --git a/jdk_17_maven/cs/rest/digitalbanking/images/Benchmark.png b/jdk_17_maven/cs/rest/digitalbanking/images/Benchmark.png new file mode 100644 index 0000000000000000000000000000000000000000..21080b65abaf167391eb28d2bd9f47783e59c022 GIT binary patch literal 55317 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�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 ?tyQPCd!}REw)y^kr?}8P98 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 + + 4.0.0 + + org.springframework.boot + spring-boot-starter-parent + 3.1.4 + + + com.jphaugla + redis + 0.0.1-SNAPSHOT + redis + Demo project for Spring Boot with Redis + jar + + + com.jphaugla.DemoApplication + 4.4.3 + 4.17.0 + + + + + org.springframework.boot + spring-boot-starter-data-redis + + + redis.clients + jedis + ${version.jedis} + + + org.apache.commons + commons-pool2 + + + org.springframework.boot + spring-boot-starter-data-rest + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-test + test + + + org.projectlombok + lombok + 1.18.30 + provided + + + joda-time + joda-time + 2.12.5 + + + org.apache.kafka + kafka-streams + + + org.springframework.boot + spring-boot-starter-data-cassandra + + + org.springframework.kafka + spring-kafka + + + org.springdoc + springdoc-openapi-starter-webmvc-ui + 2.2.0 + + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + + + + spring-milestones + Spring Milestones + https://repo.spring.io/milestone + + + spring-snapshots + Spring Snapshots + https://repo.spring.io/snapshot + + true + + + + + + spring-milestones + Spring Milestones + https://repo.spring.io/milestone + + + spring-snapshots + Spring Snapshots + https://repo.spring.io/snapshot + + true + + + + + diff --git a/jdk_17_maven/cs/rest/digitalbanking/runJob.sh b/jdk_17_maven/cs/rest/digitalbanking/runJob.sh new file mode 100644 index 000000000..48dd1d5c7 --- /dev/null +++ b/jdk_17_maven/cs/rest/digitalbanking/runJob.sh @@ -0,0 +1 @@ +java -Djavax.net.debug=ssl -Djavax.net.ssl.keyStore=src/main/resources/ssl/client-keystore.p12 -Djavax.net.ssl.keyStorePassword=${KEYSTORE_PASSWORD} -Djavax.net.ssl.trustStore=src/main/resources/ssl/client-truststore.p12 -Djavax.net.ssl.trustStorePassword=${TRUSTSTORE_PASSWORD} -jar target/redis-0.0.1-SNAPSHOT.jar diff --git a/jdk_17_maven/cs/rest/digitalbanking/scripts/addTag.sh b/jdk_17_maven/cs/rest/digitalbanking/scripts/addTag.sh new file mode 100644 index 000000000..2b5318247 --- /dev/null +++ b/jdk_17_maven/cs/rest/digitalbanking/scripts/addTag.sh @@ -0,0 +1,3 @@ +# add a tag to a transaction. Tags allow user to mark transactions to be in a buckets such as Travel or Food for budgetary tracking purposes +# date can be looked up and put in range +curl -X GET -H "Content-Type: application/json" 'http://localhost:8080/addTag?transactionID=379369J&tag=Travel&operation=ADD' diff --git a/jdk_17_maven/cs/rest/digitalbanking/scripts/addTag2.sh b/jdk_17_maven/cs/rest/digitalbanking/scripts/addTag2.sh new file mode 100644 index 000000000..71aad435c --- /dev/null +++ b/jdk_17_maven/cs/rest/digitalbanking/scripts/addTag2.sh @@ -0,0 +1,3 @@ +# add a tag to a transaction. Tags allow user to mark transactions to be in a buckets such as Travel or Food for budgetary tracking purposes +# date can be looked up and put in range +curl -X GET -H "Content-Type: application/json" 'http://localhost:8080/addTag?transactionID=4484J&tag=Food&operation=ADD' diff --git a/jdk_17_maven/cs/rest/digitalbanking/scripts/createCassandraSink.sh b/jdk_17_maven/cs/rest/digitalbanking/scripts/createCassandraSink.sh new file mode 100644 index 000000000..6c96b75da --- /dev/null +++ b/jdk_17_maven/cs/rest/digitalbanking/scripts/createCassandraSink.sh @@ -0,0 +1,18 @@ +curl -X POST -H "Content-Type: application/json" --data ' +{ + "name": "cassandra-sink-trans", + "config": { + "topic.transactions.banking.transaction.mapping": "tranid=value.tranid, accountno=value.accountno, amounttype=value.amounttype, merchant=value.merchant, referencekeytype=value.referencekeytype, referencekeyvalue=value.referencekeyvalue, originalamount=value.originalamount, amount=value.amount, trancd=value.trancd, description=value.description, initialdate=value.initialdate, settlementdate=value.settlementdate, postingdate=value.postingdate, status=value.status, location=value.location", + "key.converter.schemas.enable": "false", + "value.converter.schemas.enable": "false", + "name": "cassandra-sink-trans", + "connector.class": "com.datastax.kafkaconnector.DseSinkConnector", + "tasks.max": "1", + "key.converter": "org.apache.kafka.connect.storage.StringConverter", + "value.converter": "org.apache.kafka.connect.json.JsonConverter", + "topics": "transactions", + "contactPoints": "10.0.11.7", + "loadBalancing.localDc": "datacenter1" + } +} +} ' http://172.191.110.145:8083/connectors -w "\n" diff --git a/jdk_17_maven/cs/rest/digitalbanking/scripts/createCassandraTrans.sh b/jdk_17_maven/cs/rest/digitalbanking/scripts/createCassandraTrans.sh new file mode 100644 index 000000000..b43fca83c --- /dev/null +++ b/jdk_17_maven/cs/rest/digitalbanking/scripts/createCassandraTrans.sh @@ -0,0 +1,3 @@ +export CQLSH_HOST=4.236.143.55 +cqlsh -e "create keyspace if not exists banking with replication = { 'class' : 'SimpleStrategy', 'replication_factor' : 1 } ;" +cqlsh < trans.cql diff --git a/jdk_17_maven/cs/rest/digitalbanking/scripts/createRedisSink.sh b/jdk_17_maven/cs/rest/digitalbanking/scripts/createRedisSink.sh new file mode 100644 index 000000000..450de22e6 --- /dev/null +++ b/jdk_17_maven/cs/rest/digitalbanking/scripts/createRedisSink.sh @@ -0,0 +1,22 @@ +curl -X POST -H "Content-Type: application/json" --data ' +{ + "name": "redis-sink-trans", + "config": { + "value.converter.schemas.enable": "false", + "name": "redis-sink-trans", + "connector.class": "com.redis.kafka.connect.RedisSinkConnector", + "tasks.max": "1", + "key.converter": "org.apache.kafka.connect.storage.StringConverter", + "value.converter": "org.apache.kafka.connect.json.JsonConverter", + "transforms": "Cast", + "topics": "transactions", + "transforms.Cast.type": "org.apache.kafka.connect.transforms.Cast$Key", + "transforms.Cast.spec": "string", + "redis.uri": "redis://redis-19716.int.jph.jphaugla.demo-rlec.redislabs.com:19716", + "redis.password": "redis123", + "redis.type": "HASH", + "redis.key": "Trans", + "redis.separator": ":" + } +} +} ' http://172.191.110.145:8083/connectors -w "\n" diff --git a/jdk_17_maven/cs/rest/digitalbanking/scripts/customer.json b/jdk_17_maven/cs/rest/digitalbanking/scripts/customer.json new file mode 100644 index 000000000..dd78cb80d --- /dev/null +++ b/jdk_17_maven/cs/rest/digitalbanking/scripts/customer.json @@ -0,0 +1 @@ +{ "customerId": "cust001", "addressLine1": "4744 17th av s", "addressLine2": "", "addressType": "home", "billPayEnrolled": "", "city": "Minneapolis", "countryCode":"00", "createdBy":"jph", "customerOriginSystem":"IDR", "customerStatus":"A", "customerType":"BANK", "dateOfBirth":"1949.01.23", "firstName":"Bruno", "fullName":"Bruno Waldo Emerson", "gender":"M", "governmentId":"8887778989", "governmentIdType":"SSN", "lastName":"Emerson", "lastUpdatedBy":"jph", "middleName":"Waldo", "prefix":"MR", "queryHelperColumn":"help", "stateAbbreviation":"MN", "zipcode":"55444", "zipcode4":"55444-3322" } diff --git a/jdk_17_maven/cs/rest/digitalbanking/scripts/customer1.json b/jdk_17_maven/cs/rest/digitalbanking/scripts/customer1.json new file mode 100644 index 000000000..bf12db900 --- /dev/null +++ b/jdk_17_maven/cs/rest/digitalbanking/scripts/customer1.json @@ -0,0 +1 @@ +{ "customerId": "cust005", "addressLine1": "4744 17th av s", "addressLine2": "", "addressType": "home", "billPayEnrolled": "", "city": "Minneapolis", "countryCode":"00", "createdBy":"jph", "customerOriginSystem":"IDR", "customerStatus":"A", "customerType":"BANK", "dateOfBirth":"1949.01.23", "firstName":"Jorge", "fullName":"Jorge Waldo Emerson", "gender":"M", "governmentId":"8887778989", "governmentIdType":"SSN", "lastName":"Emerson", "lastUpdatedBy":"jph", "middleName":"Waldo", "prefix":"MR", "queryHelperColumn":"help", "stateAbbreviation":"MN", "zipcode":"55444", "zipcode4":"55444-3322" } diff --git a/jdk_17_maven/cs/rest/digitalbanking/scripts/customer2.json b/jdk_17_maven/cs/rest/digitalbanking/scripts/customer2.json new file mode 100644 index 000000000..1df7a587a --- /dev/null +++ b/jdk_17_maven/cs/rest/digitalbanking/scripts/customer2.json @@ -0,0 +1 @@ +{ "customerId": "cust004", "addressLine1": "4744 17th av s", "addressLine2": "", "addressType": "home", "billPayEnrolled": "", "city": "Minneapolis", "countryCode":"00", "createdBy":"jph", "customerOriginSystem":"IDR", "customerStatus":"A", "customerType":"BANK", "dateOfBirth":"1949.01.23", "firstName":"Edward", "fullName":"Edward Waldo Emerson", "gender":"M", "governmentId":"8887778989", "governmentIdType":"SSN", "lastName":"Emerson", "lastUpdatedBy":"jph", "middleName":"Waldo", "prefix":"MR", "queryHelperColumn":"help", "stateAbbreviation":"MN", "zipcode":"55444", "zipcode4":"55444-3322" } diff --git a/jdk_17_maven/cs/rest/digitalbanking/scripts/customer3.json b/jdk_17_maven/cs/rest/digitalbanking/scripts/customer3.json new file mode 100644 index 000000000..cb5aaf482 --- /dev/null +++ b/jdk_17_maven/cs/rest/digitalbanking/scripts/customer3.json @@ -0,0 +1 @@ +{ "customerId": "cust002", "addressLine1": "4744 17th av s", "addressLine2": "", "addressType": "home", "billPayEnrolled": "", "city": "Minneapolis", "countryCode":"00", "createdBy":"jph", "customerOriginSystem":"IDR", "customerStatus":"A", "customerType":"BANK", "dateOfBirth":"1949.01.23", "firstName":"Susan", "fullName":"Susan Waldo Emerson", "gender":"M", "governmentId":"8887778989", "governmentIdType":"SSN", "lastName":"Emerson", "lastUpdatedBy":"jph", "middleName":"Waldo", "prefix":"MR", "queryHelperColumn":"help", "stateAbbreviation":"MN", "zipcode":"55444", "zipcode4":"55444-3322" } diff --git a/jdk_17_maven/cs/rest/digitalbanking/scripts/customer4.json b/jdk_17_maven/cs/rest/digitalbanking/scripts/customer4.json new file mode 100644 index 000000000..87a18635d --- /dev/null +++ b/jdk_17_maven/cs/rest/digitalbanking/scripts/customer4.json @@ -0,0 +1 @@ +{ "customerId": "cust003", "addressLine1": "4745 17th av s", "addressLine2": "", "addressType": "home", "billPayEnrolled": "", "city": "Minneapolis", "countryCode":"00", "createdBy":"jph", "customerOriginSystem":"IDR", "customerStatus":"A", "customerType":"BANK", "dateOfBirth":"1949.01.23", "firstName":"George", "fullName":"George Waldo Emerson", "gender":"M", "governmentId":"8887778989", "governmentIdType":"SSN", "lastName":"Emerson", "lastUpdatedBy":"jph", "middleName":"Waldo", "prefix":"MR", "queryHelperColumn":"help", "stateAbbreviation":"MN", "zipcode":"55444", "zipcode4":"55444-3322" } diff --git a/jdk_17_maven/cs/rest/digitalbanking/scripts/customer5.json b/jdk_17_maven/cs/rest/digitalbanking/scripts/customer5.json new file mode 100644 index 000000000..ef346f925 --- /dev/null +++ b/jdk_17_maven/cs/rest/digitalbanking/scripts/customer5.json @@ -0,0 +1 @@ +{ "customerId": "cust006", "addressLine1": "4744 17th av s", "addressLine2": "", "addressType": "home", "billPayEnrolled": "", "city": "Minneapolis", "countryCode":"00", "createdBy":"jph", "customerOriginSystem":"IDR", "customerStatus":"A", "customerType":"BANK", "dateOfBirth":"1949.01.23", "firstName":"Robert", "fullName":"Robert Waldo Emerson", "gender":"M", "governmentId":"8887778989", "governmentIdType":"SSN", "lastName":"Emerson", "lastUpdatedBy":"jph", "middleName":"Waldo", "prefix":"MR", "queryHelperColumn":"help", "stateAbbreviation":"MN", "zipcode":"55444", "zipcode4":"55444-3322" } diff --git a/jdk_17_maven/cs/rest/digitalbanking/scripts/customer6.json b/jdk_17_maven/cs/rest/digitalbanking/scripts/customer6.json new file mode 100644 index 000000000..8cc0f6c81 --- /dev/null +++ b/jdk_17_maven/cs/rest/digitalbanking/scripts/customer6.json @@ -0,0 +1 @@ +{ "customerId": "cust007", "addressLine1": "4744 17th av s", "addressLine2": "", "addressType": "home", "billPayEnrolled": "", "city": "Minneapolis", "countryCode":"00", "createdBy":"jph", "customerOriginSystem":"IDR", "customerStatus":"A", "customerType":"BANK", "dateOfBirth":"1949.01.23", "firstName":"Oliver", "fullName":"Oliver Waldo Emerson", "gender":"M", "governmentId":"8887778989", "governmentIdType":"SSN", "lastName":"Emerson", "lastUpdatedBy":"jph", "middleName":"Waldo", "prefix":"MR", "queryHelperColumn":"help", "stateAbbreviation":"MN", "zipcode":"55444", "zipcode4":"55444-3322" } diff --git a/jdk_17_maven/cs/rest/digitalbanking/scripts/deleteCustomerEmail.sh b/jdk_17_maven/cs/rest/digitalbanking/scripts/deleteCustomerEmail.sh new file mode 100644 index 000000000..8675cf3f0 --- /dev/null +++ b/jdk_17_maven/cs/rest/digitalbanking/scripts/deleteCustomerEmail.sh @@ -0,0 +1,3 @@ +# retrieve transations for customer +# get using a customer id. Use redisinsight's search to find a good custid +curl -X GET -H "Content-Type: application/json" 'http://localhost:8080/deleteCustomerEmail?customerId=cust006' diff --git a/jdk_17_maven/cs/rest/digitalbanking/scripts/deleteCustomers.sh b/jdk_17_maven/cs/rest/digitalbanking/scripts/deleteCustomers.sh new file mode 100644 index 000000000..ffd098435 --- /dev/null +++ b/jdk_17_maven/cs/rest/digitalbanking/scripts/deleteCustomers.sh @@ -0,0 +1,3 @@ +# retrieve transations for customer +# get using a customer id. Use redisinsight's search to find a good custid +curl -X GET -H "Content-Type: application/json" 'http://localhost:8080/deleteCustomer?customerString=cust0*' diff --git a/jdk_17_maven/cs/rest/digitalbanking/scripts/dispute.json b/jdk_17_maven/cs/rest/digitalbanking/scripts/dispute.json new file mode 100644 index 000000000..cb58d0e11 --- /dev/null +++ b/jdk_17_maven/cs/rest/digitalbanking/scripts/dispute.json @@ -0,0 +1 @@ +{ "disputeId": "668123", "tranId": "1234", "filingDate": "2023/07/27", "status": "Initiated" } diff --git a/jdk_17_maven/cs/rest/digitalbanking/scripts/disputeAccept.sh b/jdk_17_maven/cs/rest/digitalbanking/scripts/disputeAccept.sh new file mode 100644 index 000000000..d367d04c6 --- /dev/null +++ b/jdk_17_maven/cs/rest/digitalbanking/scripts/disputeAccept.sh @@ -0,0 +1 @@ +curl -X PUT -H "Content-Type: application/json" 'http://localhost:8080/acceptDispute?disputeId=668123' diff --git a/jdk_17_maven/cs/rest/digitalbanking/scripts/disputeReasonCode.sh b/jdk_17_maven/cs/rest/digitalbanking/scripts/disputeReasonCode.sh new file mode 100644 index 000000000..a50fe3800 --- /dev/null +++ b/jdk_17_maven/cs/rest/digitalbanking/scripts/disputeReasonCode.sh @@ -0,0 +1 @@ +curl -X PUT -H "Content-Type: application/json" 'http://localhost:8080/putDisputeChargeBackReason?disputeId=668123&reasonCode=11.1' diff --git a/jdk_17_maven/cs/rest/digitalbanking/scripts/disputeResolved.sh b/jdk_17_maven/cs/rest/digitalbanking/scripts/disputeResolved.sh new file mode 100644 index 000000000..31d92439c --- /dev/null +++ b/jdk_17_maven/cs/rest/digitalbanking/scripts/disputeResolved.sh @@ -0,0 +1 @@ +curl -X PUT -H "Content-Type: application/json" 'http://localhost:8080/resolvedDispute?disputeId=668123' diff --git a/jdk_17_maven/cs/rest/digitalbanking/scripts/generateData.sh b/jdk_17_maven/cs/rest/digitalbanking/scripts/generateData.sh new file mode 100644 index 000000000..5cf80e46a --- /dev/null +++ b/jdk_17_maven/cs/rest/digitalbanking/scripts/generateData.sh @@ -0,0 +1,7 @@ +# This script uses an API call to generate sample banking customers, +# accounts and transactions. It uses Spring ASYNC techniques to +# generate higher load. A flag chooses between running the transactions +# pipelined in Redis or in normal non-pipelined method. +curl 'http://localhost:8080/generateData?noOfCustomers=500&noOfTransactions=100000&noOfDays=5&key_suffix=J&doKafka=true' +# with ssl +# curl -cacert='..//src/main/resources/ssl/proxy-cert.pem' 'http://localhost:8080/generateData?noOfCustomers=500&noOfTransactions=100000&noOfDays=5&key_suffix=J' diff --git a/jdk_17_maven/cs/rest/digitalbanking/scripts/generateLots.sh b/jdk_17_maven/cs/rest/digitalbanking/scripts/generateLots.sh new file mode 100644 index 000000000..af3676a14 --- /dev/null +++ b/jdk_17_maven/cs/rest/digitalbanking/scripts/generateLots.sh @@ -0,0 +1,8 @@ +# for server testing to generate higher load levels. +# Use with startAppservers.sh +nohup curl 'http://localhost:8080/generateData?noOfCustomers=5000&noOfTransactions=100000&noOfDays=10&key_suffix=J' > /tmp/generateJ.out 2>&1 & +nohup curl 'http://localhost:8081/generateData?noOfCustomers=5000&noOfTransactions=100000&noOfDays=10&key_suffix=P' > /tmp/generateP.out 2>&1 & +nohup curl 'http://localhost:8082/generateData?noOfCustomers=5000&noOfTransactions=100000&noOfDays=10&key_suffix=H' > /tmp/generateH.out 2>&1 & +nohup curl 'http://localhost:8083/generateData?noOfCustomers=5000&noOfTransactions=100000&noOfDays=10&key_suffix=C' > /tmp/generateC.out 2>&1 & +nohup curl 'http://localhost:8084/generateData?noOfCustomers=5000&noOfTransactions=100000&noOfDays=10&key_suffix=A' > /tmp/generateA.out 2>&1 & +nohup curl 'http://localhost:8085/generateData?noOfCustomers=5000&noOfTransactions=100000&noOfDays=10&key_suffix=G' > /tmp/generateG.out 2>&1 & diff --git a/jdk_17_maven/cs/rest/digitalbanking/scripts/getByAccount.sh b/jdk_17_maven/cs/rest/digitalbanking/scripts/getByAccount.sh new file mode 100644 index 000000000..abe9d0406 --- /dev/null +++ b/jdk_17_maven/cs/rest/digitalbanking/scripts/getByAccount.sh @@ -0,0 +1,3 @@ +# easiest to look up an account using redinsight and edit this script to find an existing account +# date can be looked up and put in range +curl -X GET -H "Content-Type: application/json" 'http://localhost:8080/accountTransactions?accountNo=Acct1076J&from=2023-07-21&to=2023-11-21' diff --git a/jdk_17_maven/cs/rest/digitalbanking/scripts/getByCreditCard.sh b/jdk_17_maven/cs/rest/digitalbanking/scripts/getByCreditCard.sh new file mode 100644 index 000000000..167a35c5f --- /dev/null +++ b/jdk_17_maven/cs/rest/digitalbanking/scripts/getByCreditCard.sh @@ -0,0 +1,3 @@ +# easiest to look up a credit card using redinsight and edit this script to find an existing credit card +# date can be looked up and put in range +curl -X GET -H "Content-Type: application/json" 'http://localhost:8080/creditCardTransactions?creditCard=9a3b56b5x5227x459fxa67dx36e157c400f7&account=Acct1076J&from=2023-07-27&to=2023-11-30' diff --git a/jdk_17_maven/cs/rest/digitalbanking/scripts/getByCustID.sh b/jdk_17_maven/cs/rest/digitalbanking/scripts/getByCustID.sh new file mode 100644 index 000000000..69b793401 --- /dev/null +++ b/jdk_17_maven/cs/rest/digitalbanking/scripts/getByCustID.sh @@ -0,0 +1,3 @@ +# retrieve transations for customer +# get using a customer id. Use redisinsight's search to find a good custid +curl -X GET -H "Content-Type: application/json" 'http://localhost:8080/customer?customerId=cust0001' diff --git a/jdk_17_maven/cs/rest/digitalbanking/scripts/getByEmail.sh b/jdk_17_maven/cs/rest/digitalbanking/scripts/getByEmail.sh new file mode 100644 index 000000000..3ca7ebb15 --- /dev/null +++ b/jdk_17_maven/cs/rest/digitalbanking/scripts/getByEmail.sh @@ -0,0 +1,3 @@ +# retrieve customer record using email address +# get by email only +curl -X GET -H "Content-Type: application/json" 'http://localhost:8080/customerByEmail?email=1000013J@gmail.com' diff --git a/jdk_17_maven/cs/rest/digitalbanking/scripts/getByMerchant.sh b/jdk_17_maven/cs/rest/digitalbanking/scripts/getByMerchant.sh new file mode 100644 index 000000000..118a233d2 --- /dev/null +++ b/jdk_17_maven/cs/rest/digitalbanking/scripts/getByMerchant.sh @@ -0,0 +1,3 @@ +# find all transactions for an account from one merchant in date range +# easiest to look up in Redisinsight and plug value +curl -X GET -H "Content-Type: application/json" 'http://localhost:8080/merchantTransactions?merchant=Walmart&account=Acct195J&from=2022-06-27&to=2023-11-23' diff --git a/jdk_17_maven/cs/rest/digitalbanking/scripts/getByMerchantCategory.sh b/jdk_17_maven/cs/rest/digitalbanking/scripts/getByMerchantCategory.sh new file mode 100644 index 000000000..a98dead1e --- /dev/null +++ b/jdk_17_maven/cs/rest/digitalbanking/scripts/getByMerchantCategory.sh @@ -0,0 +1,2 @@ +# find all transactions for an account from merchant category for date range +curl -X GET -H "Content-Type: application/json" 'http://localhost:8080/merchantCategoryTransactions?merchantCategory=5732&account=Acct450J&from=2022-07-27&to=2023-10-30' diff --git a/jdk_17_maven/cs/rest/digitalbanking/scripts/getByNamePhone.sh b/jdk_17_maven/cs/rest/digitalbanking/scripts/getByNamePhone.sh new file mode 100644 index 000000000..354170591 --- /dev/null +++ b/jdk_17_maven/cs/rest/digitalbanking/scripts/getByNamePhone.sh @@ -0,0 +1,2 @@ +# get by phone and full name. Notice the ascii string for the space +curl -X GET -H "Content-Type: application/json" 'http://localhost:8080/customerByPhone?phoneString=1000088Jw&full_name=Igor%20Golov%2000088' diff --git a/jdk_17_maven/cs/rest/digitalbanking/scripts/getByPhone.sh b/jdk_17_maven/cs/rest/digitalbanking/scripts/getByPhone.sh new file mode 100644 index 000000000..23d013f6f --- /dev/null +++ b/jdk_17_maven/cs/rest/digitalbanking/scripts/getByPhone.sh @@ -0,0 +1,2 @@ +# get customers by phone only +curl -X GET -H "Content-Type: application/json" 'http://localhost:8080/customerByPhone?phoneString=1000085Jh' diff --git a/jdk_17_maven/cs/rest/digitalbanking/scripts/getByStateCity.sh b/jdk_17_maven/cs/rest/digitalbanking/scripts/getByStateCity.sh new file mode 100644 index 000000000..28e4447a3 --- /dev/null +++ b/jdk_17_maven/cs/rest/digitalbanking/scripts/getByStateCity.sh @@ -0,0 +1,2 @@ +# get customers by city and state +curl -X GET -H "Content-Type: application/json" 'http://localhost:8080/customerByStateCity?state=IL&city=Chicago' diff --git a/jdk_17_maven/cs/rest/digitalbanking/scripts/getByZipLastname.sh b/jdk_17_maven/cs/rest/digitalbanking/scripts/getByZipLastname.sh new file mode 100644 index 000000000..30232a175 --- /dev/null +++ b/jdk_17_maven/cs/rest/digitalbanking/scripts/getByZipLastname.sh @@ -0,0 +1,2 @@ +# get by zipcode and lastname. Lastname is a generated integer +curl -X GET -H "Content-Type: application/json" 'http://localhost:8080/customerByZipcodeLastname?zipcode=55435&lastname=00097' diff --git a/jdk_17_maven/cs/rest/digitalbanking/scripts/getReturns.sh b/jdk_17_maven/cs/rest/digitalbanking/scripts/getReturns.sh new file mode 100644 index 000000000..fd2c64165 --- /dev/null +++ b/jdk_17_maven/cs/rest/digitalbanking/scripts/getReturns.sh @@ -0,0 +1,3 @@ +# get all returned transactions +# +curl -X GET -H "Content-Type: application/json" 'http://localhost:8080/returned_transactions' diff --git a/jdk_17_maven/cs/rest/digitalbanking/scripts/getTaggedAccountTransactions.sh b/jdk_17_maven/cs/rest/digitalbanking/scripts/getTaggedAccountTransactions.sh new file mode 100644 index 000000000..b17cd2964 --- /dev/null +++ b/jdk_17_maven/cs/rest/digitalbanking/scripts/getTaggedAccountTransactions.sh @@ -0,0 +1,3 @@ +# get all tags on an account +# +curl -X GET -H "Content-Type: application/json" 'http://localhost:8080/getTaggedTransactions?accountNo=Acct1179J&tag=Travel' diff --git a/jdk_17_maven/cs/rest/digitalbanking/scripts/getTransaction.sh b/jdk_17_maven/cs/rest/digitalbanking/scripts/getTransaction.sh new file mode 100644 index 000000000..a7b7e89a6 --- /dev/null +++ b/jdk_17_maven/cs/rest/digitalbanking/scripts/getTransaction.sh @@ -0,0 +1,2 @@ +# get one transaction by ID +curl -X GET -H "Content-Type: application/json" 'http://localhost:8080/getTransaction?transactionID=45115J' diff --git a/jdk_17_maven/cs/rest/digitalbanking/scripts/getTransactionStatus.sh b/jdk_17_maven/cs/rest/digitalbanking/scripts/getTransactionStatus.sh new file mode 100644 index 000000000..c431ebff2 --- /dev/null +++ b/jdk_17_maven/cs/rest/digitalbanking/scripts/getTransactionStatus.sh @@ -0,0 +1,3 @@ +# see count of transactions by account status of PENDING, AUTHORIZED, SETTLED +# not working +curl -X GET -H "Content-Type: application/json" 'http://localhost:8080/transactionStatusReport' diff --git a/jdk_17_maven/cs/rest/digitalbanking/scripts/getTransactionTags.sh b/jdk_17_maven/cs/rest/digitalbanking/scripts/getTransactionTags.sh new file mode 100644 index 000000000..7f3ef6ccc --- /dev/null +++ b/jdk_17_maven/cs/rest/digitalbanking/scripts/getTransactionTags.sh @@ -0,0 +1,3 @@ +# get all tags on an account +# +curl -X GET -H "Content-Type: application/json" 'http://localhost:8080/getTags?transactionID=379369J' diff --git a/jdk_17_maven/cs/rest/digitalbanking/scripts/putCustomer.sh b/jdk_17_maven/cs/rest/digitalbanking/scripts/putCustomer.sh new file mode 100644 index 000000000..de2cc4ce4 --- /dev/null +++ b/jdk_17_maven/cs/rest/digitalbanking/scripts/putCustomer.sh @@ -0,0 +1,7 @@ +curl -X POST -H "Content-Type: application/json" http://localhost:8080/postCustomer?customer --data @customer.json +curl -X POST -H "Content-Type: application/json" http://localhost:8080/postCustomer?customer --data @customer1.json +curl -X POST -H "Content-Type: application/json" http://localhost:8080/postCustomer?customer --data @customer2.json +curl -X POST -H "Content-Type: application/json" http://localhost:8080/postCustomer?customer --data @customer3.json +curl -X POST -H "Content-Type: application/json" http://localhost:8080/postCustomer?customer --data @customer4.json +curl -X POST -H "Content-Type: application/json" http://localhost:8080/postCustomer?customer --data @customer5.json +curl -X POST -H "Content-Type: application/json" http://localhost:8080/postCustomer?customer --data @customer6.json diff --git a/jdk_17_maven/cs/rest/digitalbanking/scripts/putDispute.sh b/jdk_17_maven/cs/rest/digitalbanking/scripts/putDispute.sh new file mode 100644 index 000000000..4aac0ce77 --- /dev/null +++ b/jdk_17_maven/cs/rest/digitalbanking/scripts/putDispute.sh @@ -0,0 +1 @@ +curl -X POST -H "Content-Type: application/json" http://localhost:8080/postDispute?dispute --data @dispute.json diff --git a/jdk_17_maven/cs/rest/digitalbanking/scripts/saveAccount.sh b/jdk_17_maven/cs/rest/digitalbanking/scripts/saveAccount.sh new file mode 100644 index 000000000..706a95815 --- /dev/null +++ b/jdk_17_maven/cs/rest/digitalbanking/scripts/saveAccount.sh @@ -0,0 +1,2 @@ +# save a sample account +curl http://localhost:8080/save_account diff --git a/jdk_17_maven/cs/rest/digitalbanking/scripts/saveCustomer.sh b/jdk_17_maven/cs/rest/digitalbanking/scripts/saveCustomer.sh new file mode 100644 index 000000000..d4ebf8c49 --- /dev/null +++ b/jdk_17_maven/cs/rest/digitalbanking/scripts/saveCustomer.sh @@ -0,0 +1,2 @@ +# save a sample customer +curl http://localhost:8080/save_customer diff --git a/jdk_17_maven/cs/rest/digitalbanking/scripts/saveTransaction.sh b/jdk_17_maven/cs/rest/digitalbanking/scripts/saveTransaction.sh new file mode 100644 index 000000000..6280fb341 --- /dev/null +++ b/jdk_17_maven/cs/rest/digitalbanking/scripts/saveTransaction.sh @@ -0,0 +1,2 @@ +# save a sample transaction +curl http://localhost:8080/save_transaction?doKafka=true diff --git a/jdk_17_maven/cs/rest/digitalbanking/scripts/search.txt b/jdk_17_maven/cs/rest/digitalbanking/scripts/search.txt new file mode 100644 index 000000000..976341297 --- /dev/null +++ b/jdk_17_maven/cs/rest/digitalbanking/scripts/search.txt @@ -0,0 +1,2 @@ +ft.search Customer "@stateAbbreviation:MN @city:Edina" +ft.search Customer "@stateAbbreviation:MN @city:Edina" return 2 fullName customerId diff --git a/jdk_17_maven/cs/rest/digitalbanking/scripts/setEnv.sh b/jdk_17_maven/cs/rest/digitalbanking/scripts/setEnv.sh new file mode 100644 index 000000000..c29567321 --- /dev/null +++ b/jdk_17_maven/cs/rest/digitalbanking/scripts/setEnv.sh @@ -0,0 +1,17 @@ +# redis enterprise example +# export REDIS_HOST=redis-17794.jph.jphaugla.demo-rlec.redislabs.com +# export REDIS_PORT=17794 +export REDIS_HOST=localhost +export REDIS_PORT=6379 +export REDIS_PASSWORD=jasonrocks +export USE_SSL=false +# substitue in actual KAFKA_HOST internal IP +# this will not run using a public ip-use the private ip on app node. Did not set up the advertized listeners in kafka to make this work +export KAFKA_HOST=localhost +export KAFKA_PORT=9092 +export SPRING_CASSANDRA_HOST=localhost +export SPRING_CASSANDRA_PORT=9042 +# export SPRING_CASSANDRA_USER=cassandra +# export SPRING_CASSANDRA_PASSWORD=jph +export SPRING_CASSANDRA_CLUSTER=test +export SPRING_CASSANDRA_DATACENTER=datacenter1 diff --git a/jdk_17_maven/cs/rest/digitalbanking/scripts/startAppServers.sh b/jdk_17_maven/cs/rest/digitalbanking/scripts/startAppServers.sh new file mode 100644 index 000000000..27d615730 --- /dev/null +++ b/jdk_17_maven/cs/rest/digitalbanking/scripts/startAppServers.sh @@ -0,0 +1,7 @@ +# start multiple app server instances for load testing +nohup java -DServer.port=8080 -jar ../target/redis-0.0.1-SNAPSHOT.jar > /tmp/appServer8080.out 2>&1 & +nohup java -DServer.port=8081 -jar ../target/redis-0.0.1-SNAPSHOT.jar > /tmp/appServer8081.out 2>&1 & +nohup java -DServer.port=8082 -jar ../target/redis-0.0.1-SNAPSHOT.jar > /tmp/appServer8082.out 2>&1 & +nohup java -DServer.port=8083 -jar ../target/redis-0.0.1-SNAPSHOT.jar > /tmp/appServer8083.out 2>&1 & +nohup java -DServer.port=8084 -jar ../target/redis-0.0.1-SNAPSHOT.jar > /tmp/appServer8084.out 2>&1 & +nohup java -DServer.port=8085 -jar ../target/redis-0.0.1-SNAPSHOT.jar > /tmp/appServer8085.out 2>&1 & diff --git a/jdk_17_maven/cs/rest/digitalbanking/scripts/testKafka.sh b/jdk_17_maven/cs/rest/digitalbanking/scripts/testKafka.sh new file mode 100644 index 000000000..2e5f6b2a3 --- /dev/null +++ b/jdk_17_maven/cs/rest/digitalbanking/scripts/testKafka.sh @@ -0,0 +1 @@ +curl -X GET -H "Content-Type: application/json" 'http://localhost:8080/send' diff --git a/jdk_17_maven/cs/rest/digitalbanking/scripts/trans.cql b/jdk_17_maven/cs/rest/digitalbanking/scripts/trans.cql new file mode 100644 index 000000000..fa37df2c9 --- /dev/null +++ b/jdk_17_maven/cs/rest/digitalbanking/scripts/trans.cql @@ -0,0 +1 @@ +create table if not exists banking.transaction ( tranid text, accountno text, amounttype text, merchant text, referencekeytype text, referencekeyvalue text, originalamount text, amount text, trancd text, description text, initialdate text, settlementdate text, postingdate text, status text, disputeid text, transactionreturn text, location text, transactiontags text, primary key (tranid)); diff --git a/jdk_17_maven/cs/rest/digitalbanking/scripts/updateTransactionStatus.sh b/jdk_17_maven/cs/rest/digitalbanking/scripts/updateTransactionStatus.sh new file mode 100644 index 000000000..0d3af3f1c --- /dev/null +++ b/jdk_17_maven/cs/rest/digitalbanking/scripts/updateTransactionStatus.sh @@ -0,0 +1,5 @@ +#not working +# generate new transactions to move all of one transaction +# Status up to the next transaction status. Parameter is target status. +# Can choose SETTLED or POSTED +curl -X GET -H "Content-Type: application/json" 'http://localhost:8080/statusChangeTransactions?transactionStatus=POSTED' diff --git a/jdk_17_maven/cs/rest/digitalbanking/src/main/java/com/jphaugla/DemoApplication.java b/jdk_17_maven/cs/rest/digitalbanking/src/main/java/com/jphaugla/DemoApplication.java new file mode 100644 index 000000000..3c52f4c0a --- /dev/null +++ b/jdk_17_maven/cs/rest/digitalbanking/src/main/java/com/jphaugla/DemoApplication.java @@ -0,0 +1,25 @@ +package com.jphaugla; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.EnableAutoConfiguration; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; +import org.springframework.kafka.annotation.EnableKafka; +import org.springframework.scheduling.annotation.EnableAsync; +import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; + +import java.util.concurrent.Executor; + +@EnableKafka +@SpringBootApplication + + +public class DemoApplication extends SpringBootServletInitializer { + + public static void main(String[] args) { + SpringApplication.run(DemoApplication.class, args); + } +} diff --git a/jdk_17_maven/cs/rest/digitalbanking/src/main/java/com/jphaugla/boot/CreateIndexes.java b/jdk_17_maven/cs/rest/digitalbanking/src/main/java/com/jphaugla/boot/CreateIndexes.java new file mode 100644 index 000000000..bda18d360 --- /dev/null +++ b/jdk_17_maven/cs/rest/digitalbanking/src/main/java/com/jphaugla/boot/CreateIndexes.java @@ -0,0 +1,167 @@ +package com.jphaugla.boot; + + +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.boot.CommandLineRunner; +import org.springframework.core.annotation.Order; +import org.springframework.core.env.Environment; +import org.springframework.stereotype.Component; +import redis.clients.jedis.ConnectionPoolConfig; +import redis.clients.jedis.HostAndPort; +import redis.clients.jedis.JedisPooled; +import redis.clients.jedis.UnifiedJedis; +import redis.clients.jedis.search.FieldName; +import redis.clients.jedis.search.IndexDefinition; +import redis.clients.jedis.search.IndexOptions; +import redis.clients.jedis.search.Schema; + +@Component +@Order(6) +@Slf4j +public class CreateIndexes implements CommandLineRunner { + + @Value("${app.accountSearchIndexName}") + private String accountSearchIndexName; + @Value("${app.customerSearchIndexName}") + private String customerSearchIndexName; + @Value("${app.emailSearchIndexName}") + private String emailSearchIndexName; + @Value("${app.merchantSearchIndexName}") + private String merchantSearchIndexName; + @Value("${app.phoneSearchIndexName}") + private String phoneSearchIndexName; + @Value("${app.transactionSearchIndexName}") + private String transactionSearchIndexName; + @Value("${app.transactionReturnSearchIndexName}") + private String transactionReturnSearchIndexName; + @Value("${app.disputeSearchIndexName}") + private String disputeSearchIndexName; + + @Autowired + private Environment env; + + UnifiedJedis client; + IndexDefinition.Type indexType = IndexDefinition.Type.HASH; + + @Override + @SuppressWarnings({ "unchecked" }) + public void run(String... args) throws Exception { + + client = jedis_connection(); + + Schema accountIndexSchema = new Schema() + .addField(new Schema.Field(FieldName.of("customerId").as("customerId"), Schema.FieldType.TAG)) + .addField(new Schema.Field(FieldName.of("accountType").as("accountType"), Schema.FieldType.TAG)) + // .addField(new Schema.Field(FieldName.of("accountOriginSystem").as("accountOriginSystem"), Schema.FieldType.TAG)) + .addField(new Schema.Field(FieldName.of("accountStatus").as("accountStatus"), Schema.FieldType.TAG)) + .addField(new Schema.Field(FieldName.of("cardNum").as("cardNum"), Schema.FieldType.TAG)) + .addField(new Schema.Field(FieldName.of("openDate").as("openDate"), Schema.FieldType.NUMERIC)) + // .addField(new Schema.Field(FieldName.of( "lastUpdated").as("lastUpdated"), Schema.FieldType.NUMERIC)) + ; + tryIndex(client, accountSearchIndexName, accountIndexSchema); + + Schema customerIndexSchema = new Schema() + .addField(new Schema.Field(FieldName.of("city").as("city"), Schema.FieldType.TAG)) + .addField(new Schema.Field(FieldName.of("firstName").as("firstName"), Schema.FieldType.TAG)) + .addField(new Schema.Field(FieldName.of("fullName").as("fullName"), Schema.FieldType.TAG)) + .addField(new Schema.Field(FieldName.of("lastName").as("lastName"), Schema.FieldType.TAG)) + .addField(new Schema.Field(FieldName.of("stateAbbreviation").as("stateAbbreviation"), Schema.FieldType.TAG)) + .addField(new Schema.Field(FieldName.of("zipcode").as("zipcode"), Schema.FieldType.TAG)) + // .addField(new Schema.Field(FieldName.of("customerId").as("customerId"), Schema.FieldType.TAG)) + ; + tryIndex(client, customerSearchIndexName, customerIndexSchema); + + + Schema emailIndexSchema = new Schema() + .addField(new Schema.Field(FieldName.of("emailAddress").as("emailAddress"), Schema.FieldType.TAG)) + .addField(new Schema.Field(FieldName.of("customerId").as("customerId"), Schema.FieldType.TAG)) + ; + tryIndex(client, emailSearchIndexName, emailIndexSchema); + + Schema merchantIndexSchema = new Schema() + .addField(new Schema.Field(FieldName.of("merchantName").as("merchantName"), Schema.FieldType.TAG)) + .addField(new Schema.Field(FieldName.of("categoryCode").as("categoryCode"), Schema.FieldType.TAG)) + .addField(new Schema.Field(FieldName.of("categoryDescription").as("categoryDescription"), Schema.FieldType.TAG)) + .addField(new Schema.Field(FieldName.of("merchantState").as("merchantState"), Schema.FieldType.TAG)) + .addField(new Schema.Field(FieldName.of("merchantCountry").as("merchantCountry"), Schema.FieldType.TAG)) + ; + tryIndex(client, merchantSearchIndexName, merchantIndexSchema); + + Schema phoneIndexSchema = new Schema() + .addField(new Schema.Field(FieldName.of("phoneNumber").as("phoneNumber"), Schema.FieldType.TAG)) + .addField(new Schema.Field(FieldName.of("customerId").as("customerId"), Schema.FieldType.TAG)) + ; + tryIndex(client, phoneSearchIndexName, phoneIndexSchema); + + Schema transactionIndexSchema = new Schema() + .addField(new Schema.Field(FieldName.of("accountno").as("accountno"), Schema.FieldType.TAG)) + // .addField(new Schema.Field(FieldName.of("amounttype").as("amounttype"), Schema.FieldType.TAG)) + .addField(new Schema.Field(FieldName.of("merchant").as("merchant"), Schema.FieldType.TAG)) + .addField(new Schema.Field(FieldName.of("status").as("status"), Schema.FieldType.TAG)) + // .addField(new Schema.Field(FieldName.of("description").as("description"), Schema.FieldType.TAG)) + // .addField(new Schema.Field(FieldName.of("referencekeytype").as("referencekeytype"), Schema.FieldType.TAG)) + // .addField(new Schema.Field(FieldName.of("referencevalue").as("referencevalue"), Schema.FieldType.TAG)) + .addField(new Schema.Field(FieldName.of("trancd").as("trancd"), Schema.FieldType.TAG)) + // .addField(new Schema.Field(FieldName.of("location").as("location"), Schema.FieldType.TAG)) + .addField(new Schema.Field(FieldName.of("transactionreturn").as("transactionreturn"), Schema.FieldType.TAG)) + .addField(new Schema.Field(FieldName.of("initialdate").as("initialdate"), Schema.FieldType.NUMERIC)) + .addField(new Schema.Field(FieldName.of( "settlementdate").as("settlementdate"), Schema.FieldType.NUMERIC)) + .addField(new Schema.Field(FieldName.of( "postingdate").as("postingdate"), Schema.FieldType.NUMERIC)) + .addField(new Schema.Field(FieldName.of("transactiontags").as("transactiontags"), Schema.FieldType.TAG)) + ; + tryIndex(client, transactionSearchIndexName, transactionIndexSchema); + + Schema transactionReturnIndexSchema = new Schema() + .addField(new Schema.Field(FieldName.of("reasonCode").as("reasonCode"), Schema.FieldType.TAG)) + .addField(new Schema.Field(FieldName.of("reasonDescription").as("reasonDescription"), Schema.FieldType.TAG)) + ; + tryIndex(client, transactionReturnSearchIndexName, transactionReturnIndexSchema); + Schema disputeIndexSchema = new Schema() + .addField(new Schema.Field(FieldName.of("reasonCode").as("reasonCode"), Schema.FieldType.TAG)) + .addField(new Schema.Field(FieldName.of("reasonDescription").as("reasonDescription"), Schema.FieldType.TAG)) + ; + tryIndex(client, disputeSearchIndexName, disputeIndexSchema); + } + public void tryIndex(UnifiedJedis jedis_client, String indexName, Schema schema) { + log.info("rebuilding index on " + indexName); + + IndexDefinition indexDefinition = new IndexDefinition(indexType).setPrefixes(indexName + ':'); + try { + jedis_client.ftCreate(indexName, IndexOptions.defaultOptions().setDefinition(indexDefinition), schema); + } catch (Exception e) { + jedis_client.ftDropIndex(indexName); + jedis_client.ftCreate(indexName, IndexOptions.defaultOptions().setDefinition(indexDefinition), schema); + } + + } + private UnifiedJedis jedis_connection() { + // Get the configuration from the application properties/environment + UnifiedJedis unifiedJedis; + String redisHost = "localhost"; // default name + int redisPort = 6379; + String redisPassword = ""; + + redisHost = env.getProperty("redis.host", "localhost"); + redisPort = Integer.parseInt(env.getProperty("redis.port", "6379")); + redisPassword = env.getProperty("spring.redis.password", ""); + + ConnectionPoolConfig poolConfig = new ConnectionPoolConfig(); + poolConfig.setMaxIdle(50); + poolConfig.setMaxTotal(50); + HostAndPort hostAndPort = new HostAndPort(redisHost, redisPort); + + log.info( "Host: " + redisHost + " Port " + String.valueOf(redisPort)); + if (!(redisPassword.isEmpty())) { + String redisURL = "redis://:" + redisPassword + '@' + redisHost + ':' + String.valueOf(redisPort); + log.info("redisURL is " + redisURL); + unifiedJedis = new JedisPooled(redisURL); + } else { + log.info(" no password"); + unifiedJedis = new JedisPooled(hostAndPort); + } + return unifiedJedis; + } + +} diff --git a/jdk_17_maven/cs/rest/digitalbanking/src/main/java/com/jphaugla/config/CassandraConfig.java b/jdk_17_maven/cs/rest/digitalbanking/src/main/java/com/jphaugla/config/CassandraConfig.java new file mode 100644 index 000000000..30d03bae6 --- /dev/null +++ b/jdk_17_maven/cs/rest/digitalbanking/src/main/java/com/jphaugla/config/CassandraConfig.java @@ -0,0 +1,56 @@ +package com.jphaugla.config; + +import lombok.Getter; +import lombok.Setter; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.data.cassandra.config.AbstractCassandraConfiguration; + +import org.springframework.data.cassandra.repository.config.EnableCassandraRepositories; +import org.springframework.data.cassandra.config.CqlSessionFactoryBean; + +import java.util.Arrays; +import java.util.List; + +@Configuration +@EnableCassandraRepositories(basePackages = {"com.jphaugla"}) +@ConfigurationProperties(prefix = "spring.data.cassandra") +@Getter +@Setter +@Slf4j +public class CassandraConfig extends AbstractCassandraConfiguration { + + @Value("${spring.data.cassandra.keyspace-name}") + private String keyspaceName; + @Value("${spring.data.cassandra.contact-points}") + private String contactPoints; + @Value("${spring.data.cassandra.port}") + private int port; + @Value("${spring.data.cassandra.local-datacenter}") + private String localDataCenter; + // @Value("${spring.data.cassandra.username}") + // private String username; + // @Value("${spring.data.cassandra.password}") + // private String password; + + + @Bean + @Override + public CqlSessionFactoryBean cassandraSession() { + CqlSessionFactoryBean cassandraSession = super.cassandraSession();//super session should be called only once + // cassandraSession.setUsername(username); + // cassandraSession.setPassword(password); + log.info("cassandra contact-points " + contactPoints); + log.info("cassandra data center " + localDataCenter); + // log.info("cassandra username " + username); + // log.info("cassandra password " + password); + log.info("cassandra keyspace " + keyspaceName); + log.info("cassandra port " + port); + return cassandraSession; + } + + +} diff --git a/jdk_17_maven/cs/rest/digitalbanking/src/main/java/com/jphaugla/config/RedisConfig.java b/jdk_17_maven/cs/rest/digitalbanking/src/main/java/com/jphaugla/config/RedisConfig.java new file mode 100644 index 000000000..1f6aac94b --- /dev/null +++ b/jdk_17_maven/cs/rest/digitalbanking/src/main/java/com/jphaugla/config/RedisConfig.java @@ -0,0 +1,133 @@ +package com.jphaugla.config; + + +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.pool2.impl.GenericObjectPoolConfig; +import org.apache.kafka.clients.admin.AdminClientConfig; +import org.apache.kafka.clients.admin.NewTopic; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.boot.autoconfigure.EnableAutoConfiguration; +import org.springframework.boot.autoconfigure.data.redis.RedisProperties; +import org.springframework.boot.context.properties.EnableConfigurationProperties; +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Primary; + +import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; +import org.springframework.data.redis.connection.RedisConnectionFactory; +import org.springframework.data.redis.connection.RedisStandaloneConfiguration; +import org.springframework.data.redis.connection.jedis.JedisClientConfiguration; +import org.springframework.data.redis.connection.jedis.JedisConnectionFactory; +import org.springframework.kafka.config.TopicBuilder; +import org.springframework.kafka.core.KafkaAdmin; +import redis.clients.jedis.JedisPoolConfig; + + +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.data.redis.core.StringRedisTemplate; +import org.springframework.beans.factory.annotation.Autowired; + +import org.springframework.data.redis.connection.RedisPassword; +import org.springframework.core.env.Environment; + +import org.springframework.data.redis.repository.configuration.EnableRedisRepositories; +import org.springframework.data.redis.serializer.GenericToStringSerializer; +import org.springframework.data.redis.serializer.StringRedisSerializer; +import org.springframework.scheduling.annotation.EnableAsync; +import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer; + +import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; +import org.springframework.core.task.TaskExecutor; +import org.springframework.context.annotation.Bean; + +import java.util.HashMap; +import java.util.Map; +import java.util.concurrent.Executor; +import java.time.Duration; +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; + +@Configuration +@EnableConfigurationProperties(RedisProperties.class) +@EnableAsync +@EnableRedisRepositories +@EnableAutoConfiguration +@ComponentScan("com.jphaugla") +@Slf4j +public class RedisConfig { + @Autowired + private Environment env; + private @Value("${spring.redis.timeout}") + Duration redisCommandTimeout; + + + @Bean(name = "redisConnectionFactory") + @Primary + public RedisConnectionFactory redisConnectionFactory() { + JedisPoolConfig poolConfig = new JedisPoolConfig(); + poolConfig.setMaxIdle(50); + poolConfig.setMaxTotal(50); + JedisClientConfiguration.JedisClientConfigurationBuilder clientConfig = JedisClientConfiguration.builder(); + clientConfig.usePooling().poolConfig(poolConfig); + JedisConnectionFactory jedisConnectionFactory; + RedisStandaloneConfiguration redisServerConf = new RedisStandaloneConfiguration(); + String hostname = env.getProperty("spring.redis.host", "localhost"); + String port = env.getProperty("spring.redis.port", "6379"); + String password = env.getProperty("spring.redis.password"); + redisServerConf.setHostName(hostname); + redisServerConf.setPort(Integer.parseInt(port)); + log.info("hostname is " + hostname + " port is " + port); + if(password != null && !password.isEmpty()) { + redisServerConf.setPassword(RedisPassword.of(password)); + log.info("password is " + password); + } + jedisConnectionFactory = new JedisConnectionFactory(redisServerConf, clientConfig.build()); + return jedisConnectionFactory; + } + + @Bean + @Primary + public RedisTemplate redisTemplateW1(@Qualifier("redisConnectionFactory") RedisConnectionFactory redisConnectionFactory) { + RedisTemplate redisTemplate = new RedisTemplate<>(); + redisTemplate.setConnectionFactory(redisConnectionFactory); + redisTemplate.setHashKeySerializer(new StringRedisSerializer()); + redisTemplate.setKeySerializer(new StringRedisSerializer()); + // redisTemplate.setHashValueSerializer(new GenericToStringSerializer(Long.class)); + // redisTemplate.setHashValueSerializer(new Jackson2JsonRedisSerializer<>(Object.class)); + redisTemplate.setHashValueSerializer(new StringRedisSerializer()); + redisTemplate.afterPropertiesSet(); + return redisTemplate; + } + + + @Bean("threadPoolTaskExecutor") + public TaskExecutor getAsyncExecutor() { + ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor(); +// on large 64 core machine, drove setCorePoolSize to 200 to really spike performance + executor.setCorePoolSize(100); + executor.setMaxPoolSize(1000); + executor.setWaitForTasksToCompleteOnShutdown(true); + executor.setThreadNamePrefix("Async-"); + return executor; + } + /* @Bean + public KafkaAdmin admin() + { + Map configs = new HashMap<>(); + String kafkaBootstrap = env.getProperty("spring.kafka.producer.bootstrap-servers"); + configs.put(AdminClientConfig.BOOTSTRAP_SERVERS_CONFIG, + kafkaBootstrap); + return new KafkaAdmin(configs); + } + @Bean + public NewTopic topic1() + { + String topic_name=env.getProperty("topic.name.producer"); + return TopicBuilder.name(topic_name) + .partitions(1) + .replicas(1) + .build(); + } + + */ +} diff --git a/jdk_17_maven/cs/rest/digitalbanking/src/main/java/com/jphaugla/controller/BankingController.java b/jdk_17_maven/cs/rest/digitalbanking/src/main/java/com/jphaugla/controller/BankingController.java new file mode 100644 index 000000000..af86560d4 --- /dev/null +++ b/jdk_17_maven/cs/rest/digitalbanking/src/main/java/com/jphaugla/controller/BankingController.java @@ -0,0 +1,274 @@ +package com.jphaugla.controller; + +import java.text.ParseException; +import java.util.*; +import java.util.concurrent.ExecutionException; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.jphaugla.domain.*; +import com.jphaugla.service.TopicProducer; +import lombok.RequiredArgsConstructor; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.format.annotation.DateTimeFormat; +import org.springframework.web.bind.annotation.*; + +import com.jphaugla.service.BankService; +import redis.clients.jedis.search.SearchResult; + + +@RequiredArgsConstructor +@RestController +public class BankingController { + + @Autowired + private BankService bankService = BankService.getInstance(); + + private static final Logger logger = LoggerFactory.getLogger(BankingController.class); + private final TopicProducer topicProducer; + // customer + @RequestMapping("/save_customer") + public String saveCustomer() throws ParseException { + bankService.saveSampleCustomer(); + return "Done"; + } +// test send message + @GetMapping (value = "/send") + public void send() throws ExecutionException, InterruptedException { + topicProducer.send("Mensagem de teste enviada ao tópico", "mensagem"); + } + // account + @RequestMapping("/save_account") + public String saveAccount() throws ParseException { + bankService.saveSampleAccount(); + return "Done"; + } + + // transaction + @RequestMapping("/save_transaction") + public String saveTransaction(@RequestParam Boolean doKafka) throws ParseException, JsonProcessingException { + logger.info("starting save transaction with doKafka:" + doKafka); + bankService.saveSampleTransaction(doKafka); + return "Done"; + } + + @GetMapping("/generateData") + @ResponseBody + public String generateData (@RequestParam Integer noOfCustomers, @RequestParam Integer noOfTransactions, + @RequestParam Integer noOfDays, @RequestParam String key_suffix, + @RequestParam Boolean doKafka) + throws ParseException, ExecutionException, InterruptedException, IllegalAccessException, JsonProcessingException { + logger.info("starting generate data with doKafka=" + doKafka); + bankService.generateData(noOfCustomers, noOfTransactions, noOfDays, key_suffix, doKafka); + + return "Done"; + } + + @GetMapping("/testPipeline") + @ResponseBody + public String testPipeline (@RequestParam Integer noOfRecords) + throws ParseException, ExecutionException, InterruptedException, IllegalAccessException { + + // bankService.testPipeline(noOfRecords); + + return "Done"; + } + @GetMapping("/customerByPhone") + + public Customer getCustomerByPhone(@RequestParam String phoneString) { + logger.debug("In get customerByPhone with phone as " + phoneString); + return bankService.getCustomerByPhone(phoneString); + } + + @GetMapping("/customerByEmail") + + public Customer getCustomerByEmail(@RequestParam String email) { + logger.debug("IN get customerByEmail, email is " + email); + return bankService.getCustomerByEmail(email); + } + + + @GetMapping("/customerByStateCity") + + public SearchResult getCustomerByStateCity(@RequestParam String state, @RequestParam String city) { + logger.debug("IN get customerByState with state as " + state + " and city=" + city); + return bankService.getCustomerByStateCity(state, city); + } + @GetMapping("/customerByZipcodeLastname") + + public SearchResult getCustomerIdsbyZipcodeLastname(@RequestParam String zipcode, @RequestParam String lastname) { + logger.debug("IN get getCustomerIdsbyZipcodeLastname with zipcode as " + zipcode + " and lastname=" + lastname); + return bankService.getCustomerIdsbyZipcodeLastname(zipcode, lastname); + } + @GetMapping("/merchantCategoryTransactions") + + public SearchResult getMerchantCategoryTransactions + (@RequestParam String merchantCategory, @RequestParam String account, + @RequestParam(name = "from") @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) Date startDate, + @RequestParam(name = "to") @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) Date endDate) + throws ParseException { + logger.debug("In getMerchantCategoryTransactions merchantCategory=" + merchantCategory + " account=" + account + + " from=" + startDate + " to=" + endDate); + return bankService.getMerchantCategoryTransactions(merchantCategory, account, startDate, endDate); + } + @GetMapping("/merchantTransactions") + + public SearchResult getMerchantTransactions + (@RequestParam String merchant, @RequestParam String account, + @RequestParam(name = "from") @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) Date startDate, + @RequestParam(name = "to") @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) Date endDate) + throws ParseException { + logger.info("In getMerchantTransactions merchant=" + merchant + " account=" + account + + " from=" + startDate + " to=" + endDate); + return bankService.getMerchantTransactions(merchant, account, startDate, endDate); + } + + + @GetMapping ("/transactionStatusReport") + + public List> transactionStatusReport () { + return bankService.transactionStatusReport(); + + } + + + @GetMapping("/returned_transactions") + + public SearchResult getReturnedTransaction () { + logger.info("in bankcontroller getReturnedTransaction"); + return bankService.getTransactionReturns(); + } + /* + + @GetMapping("/statusChangeTransactions") + + public AggregateResults generateStatusChangeTransactions(@RequestParam String transactionStatus) + throws ParseException, IllegalAccessException, ExecutionException, InterruptedException { + logger.info("generateStatusChangeTransactions transactionStatus=" + transactionStatus); + AggregateResults changeReport = new AggregateResults<>(); + + changeReport.addAll(transactionStatusReport()); + bankService.transactionStatusChange(transactionStatus); + changeReport.addAll(transactionStatusReport()); + + return changeReport; + + } + */ + + @GetMapping("/creditCardTransactions") + + public SearchResult getCreditCardTransactions + (@RequestParam String creditCard, + @RequestParam(name = "from") @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) Date startDate, + @RequestParam(name = "to") @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) Date endDate) + throws ParseException { + logger.debug("getCreditCardTransactions creditCard=" + creditCard + + " startDate=" + startDate + " endDate=" + endDate); + return bankService.getCreditCardTransactions(creditCard, startDate, endDate); + } + + @GetMapping("/accountTransactions") + + public SearchResult getAccountTransactions + (@RequestParam String accountNo, + @RequestParam(name = "from") @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) Date startDate, + @RequestParam(name = "to") @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) Date endDate) + throws ParseException { + logger.debug("getCreditCardTransactions creditCard=" + accountNo + + " startDate=" + startDate + " endDate=" + endDate); + return bankService.getAccountTransactions(accountNo, startDate, endDate); + + } + + @GetMapping("/addTag") + + public void addTag(@RequestParam String transactionID, + @RequestParam String tag, @RequestParam String operation) { + logger.debug("addTags with transactionID=" + transactionID + " tag is " + tag + " operation is " + operation); + bankService.addTag(transactionID, tag, operation); + } + + @GetMapping("/getTags") + public HashSet getTransactionTagList(@RequestParam String transactionID) { + logger.debug("getTags with transactionID=" + transactionID); + return bankService.getTransactionTagList(transactionID); + } + + @GetMapping("/getTaggedTransactions") + + public SearchResult getTaggedTransactions + (@RequestParam String accountNo, @RequestParam String tag) + throws ParseException { + logger.debug("In getTaggedTransactions accountNo=" + accountNo + " tag=" + tag ); + return bankService.getTaggedTransactions(accountNo, tag); + } + @GetMapping("/getTransaction") + public Transaction getTransaction(@RequestParam String transactionID) { + Transaction transaction = bankService.getTransaction(transactionID); + return transaction; + } + @GetMapping("/mostRecentTransactions") + + public SearchResult mostRecentTransactions + (@RequestParam String accountNo) + throws ParseException { + logger.debug("In mostRecentTransactions accountNo=" + accountNo ); + return bankService.mostRecentTransactions(accountNo); + } + + @GetMapping("/customer") + + public Optional getCustomer(@RequestParam String customerId) { + return bankService.getCustomer(customerId); + } + + @GetMapping("/deleteCustomer") + + public int deleteCustomer(@RequestParam String customerString) { + return bankService.deleteCustomer(customerString); + } + + @GetMapping("/deleteCustomerEmail") + + public int deleteCustomerEmail(@RequestParam String customerId) { + return bankService.deleteCustomerEmail(customerId); + } + + @PostMapping(value = "/postCustomer", consumes = "application/json", produces = "application/json") + public String postCustomer(@RequestBody Customer customer ) throws ParseException { + bankService.postCustomer(customer); + return "Done\n"; + } + + @PostMapping(value = "/postDispute", consumes = "application/json", produces = "application/json") + public String postDispute(@RequestBody Dispute dispute ) throws ParseException { + bankService.postDispute(dispute); + return "Done\n"; + } + + @PutMapping(value = "/putDisputeChargeBackReason", consumes = "application/json", produces = "application/json") + public String putDisputeChargeBackReason(@RequestParam String disputeId, @RequestParam String reasonCode ) { + bankService.putDisputeChargeBackReason(disputeId, reasonCode); + return "Done\n"; + } + + @PutMapping(value = "/acceptDispute", consumes = "application/json", produces = "application/json") + public String acceptDisputeChargeBack(@RequestParam String disputeId) { + bankService.acceptDisputeChargeBack(disputeId); + return "Done\n"; + } + + @PutMapping(value = "/resolvedDispute", consumes = "application/json", produces = "application/json") + public String resolvedDispute(@RequestParam String disputeId ) { + bankService.resolvedDispute(disputeId); + return "Done\n"; + } + @GetMapping("/getDispute") + + public Dispute getDispute(@RequestParam String disputeId) { + return bankService.getDispute(disputeId); + } + +} diff --git a/jdk_17_maven/cs/rest/digitalbanking/src/main/java/com/jphaugla/data/BankGenerator.java b/jdk_17_maven/cs/rest/digitalbanking/src/main/java/com/jphaugla/data/BankGenerator.java new file mode 100644 index 000000000..ed3868ace --- /dev/null +++ b/jdk_17_maven/cs/rest/digitalbanking/src/main/java/com/jphaugla/data/BankGenerator.java @@ -0,0 +1,355 @@ +package com.jphaugla.data; + +import java.text.SimpleDateFormat; +import java.util.*; +import java.util.concurrent.atomic.AtomicInteger; + +import com.jphaugla.domain.*; +import org.joda.time.DateTime; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class BankGenerator { + // private static final Logger logger = LoggerFactory.getLogger(BankGenerator.class); + private static final int BASE = 1000000; + private static final int DAY_MILLIS = 1000 * 60 *60 * 24; + private static AtomicInteger customerIdGenerator = new AtomicInteger(1); + private static AtomicInteger accountNoGenerator = new AtomicInteger(1); + private static List accountTypes = Arrays.asList("Current", "Joint Current", "Saving", "Mortgage", + "E-Saving", "Deposit"); + private static List accountIds = new ArrayList(); + private static Map> accountsMap = new HashMap>(); + + //We can change this from the Main + public static DateTime date = new DateTime().minusDays(180).withTimeAtStartOfDay(); + public static Date currentDate = new Date(); + public static String timeStamp = new SimpleDateFormat("yyyy.MM.dd.HH.mm.ss").format(currentDate); + + public static List whiteList = new ArrayList(); + + public static String getRandomCustomerId(int noOfCustomers){ + int max = noOfCustomers + 1; + int min = 1; + int random_int = (int)Math.floor(Math.random() * (max - min +1) + min); + return BASE + Integer.toString(random_int); + // return BASE + new Double(Math.random()*noOfCustomers).intValue() + ""; + } + + public static List createEmail (String customerId) { + Email home_email = new Email(customerId + "@gmail.com","home", customerId); + Email work_email = new Email(customerId + "@BigCompany.com","work", customerId); + List emailList; + emailList = new ArrayList(); + emailList.add(home_email); + emailList.add(work_email); + return emailList; + } + + public static List createPhone (String customerId) { + Phone home_phone = new Phone(customerId + "h", "home", customerId); + Phone cell_phone = new Phone(customerId + "c", "cell", customerId); + Phone workPhone = new Phone(customerId + "w", "work", customerId); + List phoneList; + phoneList = new ArrayList(); + phoneList.add(home_phone); + phoneList.add(cell_phone); + phoneList.add(workPhone); + return phoneList; + } + + public static Customer createRandomCustomer(String key_suffix) { + + String customerIdInt = BASE + customerIdGenerator.getAndIncrement() + ""; + String customerId = customerIdInt + key_suffix; + + Customer customer = new Customer(); + customer.setCustomerId(customerId); + + customer.setAddressLine1("Line1-" + customerId); + customer.setCreatedBy("Java Test"); + customer.setLastUpdatedBy("Java Test"); + customer.setCustomerType("Retail"); + + customer.setCreatedDatetime(Long.toString(currentDate.getTime())); + customer.setLastUpdated(Long.toString(currentDate.getTime())); + + customer.setCustomerOriginSystem("RCIF"); + customer.setCustomerStatus("A"); + customer.setCountryCode("00"); + customer.setGovernmentId("TIN"); + customer.setGovernmentIdType(customerIdInt.substring(1)); + + int lastDigit = Integer.parseInt(customerIdInt.substring(6)); + if (lastDigit>7) { + customer.setAddressLine2("Apt " + customerId); + customer.setAddressType("Apartment"); + customer.setBillPayEnrolled("false"); + } + else if (lastDigit==3){ + customer.setBillPayEnrolled("false"); + customer.setAddressType("Mobile"); + } + else { + customer.setAddressType("Residence"); + customer.setBillPayEnrolled("true"); + } + customer.setCity(locations.get(lastDigit)); + customer.setStateAbbreviation(States[lastDigit]); + customer.setDateOfBirth(dob.get(lastDigit)); + String lastName = customerId.substring(2,7); + String firstName = firstList.get(lastDigit); + String middleName = middleList.get(lastDigit); + customer.setGender(genderList[lastDigit]); + if (genderList[lastDigit]=="F"){ + customer.setPrefix("Ms"); + } + else { + customer.setPrefix("Mr"); + } + String zipChar = zipcodeList.get(lastDigit).toString(); + customer.setZipcode(zipChar); + customer.setZipcode4(zipChar + "-1234"); + customer.setFirstName(firstName); + customer.setLastName(lastName); + customer.setMiddleName(middleName); + customer.setFullName(firstName + " " + middleName + " " + lastName); + + + return customer; + } + public static List createMerchantList () { + List merchants = new ArrayList<>(); + int iterations = issuers.length; + for (int i=0; i < iterations; i++) { + merchants.add(new Merchant(issuers[i], issuersCD[i], issuersCDdesc[i], States[i],"US")); + } + return merchants; + }; + public static List createMerchantName () { + List merchants = new ArrayList<>(); + // for(String merchant:issuers) { + merchants = Arrays.asList(issuers); + return merchants; + } + + public static List createTransactionReturnList() { + List transactionReturns = new ArrayList<>(); + transactionReturns.add(new TransactionReturn("1345","incorrect amount recorded")); + transactionReturns.add(new TransactionReturn("1554","not authorized transaction")); + transactionReturns.add(new TransactionReturn("6555","wrong account")); + return transactionReturns; + }; + + public static List createRandomAccountsForCustomer(Customer customer, String key_suffix) { + + int noOfAccounts = Math.random() < .1 ? 4 : 3; + List accounts = new ArrayList(); + + + for (int i = 0; i < noOfAccounts; i++){ + + Account account = new Account(); + String accountNumber = "Acct" + accountNoGenerator.getAndIncrement() + "" + key_suffix; + // String accountNumber = "Acct" + Integer.toString(i) + key_suffix; + account.setCardNum( UUID.randomUUID().toString().replace('-','x')); + account.setCustomerId(customer.getCustomerId()); + account.setAccountNo(accountNumber); + account.setAccountType(accountTypes.get(i)); + account.setAccountStatus("Open"); + account.setLastUpdatedBy("Java Test"); + account.setLastUpdated(Long.toString(currentDate.getTime())); + account.setCreatedDatetime(Long.toString(currentDate.getTime())); + account.setCreatedBy("Java Test"); + + + accounts.add(account); + + //Keep a list of all Account Nos to create the transactions + accountIds.add(account.getAccountNo()); + } + + return accounts; + } + public static Transaction createRandomTransaction(int noOfDays, Integer idx, Account account, + String key_suffix, List merchants, + List transactionReturns) { + + int noOfMillis = noOfDays * DAY_MILLIS; + // create time by adding a random no of millis + double v = Math.random() * noOfMillis; + int intValue = (int) v; + DateTime newDate = date.plusMillis(intValue); + + return createRandomTransaction(newDate, idx, account, key_suffix, merchants, transactionReturns); + } + public static Transaction createRandomTransaction(DateTime newDate, Integer idx, Account account, + String key_suffix,List merchants, + List transactionReturns) { + double v = Math.random() * locations.size(); + int intValue = (int) v; + String location = locations.get(intValue); + v = Math.ceil(Math.random() * 3); + int noOfItems = (int) v; + v = Math.random() * issuers.length; + int randomLocation = (int) v; + + Date aNewDate = newDate.toDate(); + Date oldDate = new Date(0); + Calendar calendar = Calendar.getInstance(); + calendar.setTime(aNewDate); + calendar.add(Calendar.DATE, -1); + Date date_minus_one =calendar.getTime(); + calendar.add(Calendar.DATE, -1); + Date date_minus_two = calendar.getTime(); + + Transaction transaction = new Transaction(); + createItemsAndAmount(noOfItems, transaction); + transaction.setAccountno(account.getAccountNo()); + // String tran_id = "{" + account.getAccountNo() + "}" + idx.toString() + key_suffix; + String tran_id = idx.toString() + key_suffix; + transaction.setTranid(tran_id); + String transactionStat = transactionStatus[randomLocation]; + transaction.setStatus(transactionStat); + if(transactionStat == "POSTED") { + transaction.setPostingdate(Long.toString(aNewDate.getTime())); + transaction.setSettlementdate(Long.toString(date_minus_one.getTime())); + transaction.setInitialdate(Long.toString(date_minus_two.getTime())); + } else if (transactionStat == "SETTLED") { + transaction.setSettlementdate(Long.toString(aNewDate.getTime())); + transaction.setInitialdate(Long.toString(date_minus_one.getTime())); + transaction.setPostingdate(Long.toString(oldDate.getTime())); + } else { + transaction.setInitialdate(Long.toString(aNewDate.getTime())); + transaction.setPostingdate(Long.toString(oldDate.getTime())); + transaction.setSettlementdate(Long.toString(oldDate.getTime())); + } + transaction.setLocation(location); + if(randomLocation<5) { + transaction.setAmounttype("Debit"); + } + else{ + transaction.setAmounttype("Credit"); + } + transaction.setMerchant(merchants.get(randomLocation).getName()); + + transaction.setReferencekeytype("reftype"); + transaction.setReferencekeyvalue("thisRef"); + + transaction.setTrancd(issuersCD[randomLocation]); + transaction.setDescription("description" + issuersCD[randomLocation] + genderList[randomLocation/3 + 1]); + if(randomLocation==8) { + transaction.setTransactionreturn(transactionReturns.get(0).getReasonCode()); + } else if (randomLocation == 13) { + transaction.setTransactionreturn(transactionReturns.get(1).getReasonCode()); + } + return transaction; + } + + /** + * Creates a random transaction with some skew for some accounts. + * @return + */ + + private static void createItemsAndAmount(int noOfItems, Transaction transaction) { + Map items = new HashMap(); + double totalAmount = 0; + + for (int i = 0; i < noOfItems; i++) { + + double amount = Math.random() * 100; + items.put("item" + i, amount); + + totalAmount += amount; + } + transaction.setAmount(String.valueOf(totalAmount)); + transaction.setOriginalamount(String.valueOf(totalAmount)); + } + + + public static class Timer { + + private long timeTaken; + private long start; + + public Timer(){ + start(); + } + public void start(){ + this.start = System.currentTimeMillis(); + } + public void end(){ + this.timeTaken = System.currentTimeMillis() - start; + } + + public long getTimeTakenMillis(){ + return this.timeTaken; + } + + public int getTimeTakenSeconds(){ + double v = (double) this.timeTaken / 1000; + return ((int) v); + } + + public String getTimeTakenMinutes(){ + double v = (double) this.timeTaken / (1000*60); + return String.format("%1$,.2f", v); + } + + } + + + public static List locations = Arrays.asList("Chicago", "Minneapolis", "St. Paul", "Plymouth", "Edina", + "Duluth", "Bloomington", "Bloomington", "Rockford", "Champaign"); + public static List zipcodeList = Arrays.asList(60601, 55401, 55101, 55441, 55435, + 55802, 61704, 55435, 61101, 16821); + public static List dob = Arrays.asList("08/19/1964", "07/14/1984", "01/20/2000", "06/10/1951", "11/22/1995", + "12/13/1954", "08/12/1943", "11/29/1964", "02/01/1994", "07/12/1944"); + public static String[] transactionStatus = {"POSTED", "AUTHORIZED", "SETTLED", "POSTED", "POSTED", "POSTED", + "POSTED", "POSTED", "POSTED", "POSTED", "POSTED", "POSTED", + "POSTED", "POSTED", "POSTED", "POSTED", "POSTED", "POSTED", + "AUTHORIZED", "SETTLED","POSTED","AUTHORIZED","SETTLED","POSTED","POSTED","POSTED"}; + public static String[] States = {"IL", "MN", "MN", "MN", "MN","CA", "AZ", "AL", "AK", "TX", "WY", "PR", + "MN", "IL", "MN", "MN", "IL", "IA", "WI", "SD", "ND", "MD", "CT", "WI", "KS", "IN","DE","TN" + }; + + public static String[] genderList = {"M", "F", "F", "M", "F", "F", "M", "M", "M", "F"}; + + public static List middleList = Arrays.asList("Paul", "Ann", "Mary", "Joseph", "Amy", + "Elizabeth", "John", "Javier", "Golov", "Eliza"); + + public static List firstList = Arrays.asList("Jason", "Catherine", "Esmeralda", "Marcus", "Louisa", + "Julia", "Miles", "Luis", "Igor", "Angela"); + + public static String[] issuers = {"Tesco", "Sainsbury", "Wal-Mart Stores", "Morrisons", + "Marks & Spencer", "Walmart", "John Lewis", "Cub Foods", "Argos", "Co-op", "Currys", "PC World", "B&Q", + "Somerfield", "Next", "Spar", "Amazon", "Costa", "Starbucks", "BestBuy", "Lowes", "BarnesNoble", + "Carlson Wagonlit Travel", "Pizza Hut", "Local Pub"}; + + public static String[] issuersCD = {"5411", "5411", "5310", "5499", + "5310", "5912", "5311", "5411", "5961", "5300", "5732", "5964", "5719", + "5411", "5651", "5411", "5310", "5691", "5814", "5732", "5211", "5942", "5962", + "5814", "5813"}; + + public static String[] issuersCDdesc = {"Grocery Stores", "Grocery Stores", + "Discount Stores", "Misc Food Stores Convenience Stores and Specialty Markets", + "Discount Stores", "Drug Stores and Pharmacies", "Department Stores", "Supermarkets", "Mail Order Houses", + "Wholesale Clubs", "Electronic Sales", + "Direct Marketing Catalog Merchant", "Miscellaneous Home Furnishing Specialty Stores", + "Grocery Stores", "Family Clothing Stores", "Grocery Stores", "Discount Stores", + "Mens and Womens Clothing Stores", + "Fast Food Restaurants", + "Electronic Sales", + "Lumber and Building Materials Stores", + "Book Stores", "Direct Marketing Travel Related Services", + "Fast Food Restaurants", "Drinking Places, Bars, Taverns, Cocktail lounges, Nightclubs and Discos"}; + + + public static List notes = Arrays.asList("Shopping", "Shopping", "Shopping", "Shopping", "Shopping", + "Pharmacy", "HouseHold", "Shopping", "Household", "Shopping", "Tech", "Tech", "Diy", "Shopping", "Clothes", + "Shopping", "Amazon", "Coffee", "Coffee", "Tech", "Diy", "Travel", "Travel", "Eating out", "Eating out"); + + public static List tagList = Arrays.asList("Home", "Home", "Home", "Home", "Home", "Home", "Home", "Home", + "Work", "Work", "Work", "Home", "Home", "Home", "Work", "Work", "Home", "Work", "Work", "Work", "Work", + "Work", "Work", "Work", "Work", "Expenses", "Luxury", "Entertaining", "School"); + +} diff --git a/jdk_17_maven/cs/rest/digitalbanking/src/main/java/com/jphaugla/domain/Account.java b/jdk_17_maven/cs/rest/digitalbanking/src/main/java/com/jphaugla/domain/Account.java new file mode 100644 index 000000000..abd29e35d --- /dev/null +++ b/jdk_17_maven/cs/rest/digitalbanking/src/main/java/com/jphaugla/domain/Account.java @@ -0,0 +1,28 @@ +package com.jphaugla.domain; + +import lombok.*; + +import java.io.Serializable; + + +@Data +@AllArgsConstructor +@NoArgsConstructor +@Getter +@Setter + + +public class Account implements Serializable { + private String accountNo; + private String customerId; + private String accountType; + private String accountOriginSystem; + private String accountStatus; + private String cardNum; + private String openDatetime; + private String lastUpdated; + private String lastUpdatedBy; + private String createdBy; + private String createdDatetime; +} + diff --git a/jdk_17_maven/cs/rest/digitalbanking/src/main/java/com/jphaugla/domain/CassandraTransaction.java b/jdk_17_maven/cs/rest/digitalbanking/src/main/java/com/jphaugla/domain/CassandraTransaction.java new file mode 100644 index 000000000..48ce60672 --- /dev/null +++ b/jdk_17_maven/cs/rest/digitalbanking/src/main/java/com/jphaugla/domain/CassandraTransaction.java @@ -0,0 +1,39 @@ +package com.jphaugla.domain; + +import lombok.*; +import org.springframework.data.cassandra.core.mapping.PrimaryKey; +import org.springframework.data.cassandra.core.mapping.Table; + +import java.io.Serializable; + +@Data +@Table +@AllArgsConstructor +@NoArgsConstructor +@Getter +@Setter + +public class CassandraTransaction implements Serializable { + @PrimaryKey + private String tranid; + private String accountno; + // debit or credit + private String amounttype; + private String merchant; + private String referencekeytype; + private String referencekeyValue; + private String originalamount; + private String amount; + private String trancd ; + private String description; + private String initialdate; + private String settlementdate; + private String postingdate; + // this is authorized, posted, settled + private String status ; + private String disputeid; + private String transactionreturn; + private String location; + private String transactiontags; + +} diff --git a/jdk_17_maven/cs/rest/digitalbanking/src/main/java/com/jphaugla/domain/Customer.java b/jdk_17_maven/cs/rest/digitalbanking/src/main/java/com/jphaugla/domain/Customer.java new file mode 100644 index 000000000..785323fec --- /dev/null +++ b/jdk_17_maven/cs/rest/digitalbanking/src/main/java/com/jphaugla/domain/Customer.java @@ -0,0 +1,42 @@ +package com.jphaugla.domain; + +import lombok.*; +import java.io.Serializable; + + +@Data +@AllArgsConstructor +@NoArgsConstructor +@Getter +@Setter + + +public class Customer implements Serializable { + private String customerId; + private String addressLine1; + private String addressLine2; + private String addressType; + private String billPayEnrolled; + private String city; + private String countryCode; + private String createdBy; + private String createdDatetime; + private String customerOriginSystem; + private String customerStatus; + private String customerType; + private String dateOfBirth; + private String firstName; + private String fullName; + private String gender; + private String governmentId; + private String governmentIdType; + private String lastName; + private String lastUpdated; + private String lastUpdatedBy; + private String middleName; + private String prefix; + private String queryHelperColumn; + private String stateAbbreviation; + private String zipcode; + private String zipcode4; +} diff --git a/jdk_17_maven/cs/rest/digitalbanking/src/main/java/com/jphaugla/domain/Dispute.java b/jdk_17_maven/cs/rest/digitalbanking/src/main/java/com/jphaugla/domain/Dispute.java new file mode 100644 index 000000000..389c1b81e --- /dev/null +++ b/jdk_17_maven/cs/rest/digitalbanking/src/main/java/com/jphaugla/domain/Dispute.java @@ -0,0 +1,22 @@ +package com.jphaugla.domain; + +import lombok.*; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@Getter +@Setter +public class Dispute { + private String disputeId; + private String tranId; + private String filingDate; + private String reviewDate; + private String reasonCode; + private String acceptanceChargeBackDate; + private String resolutionDate; + private String lastUpdateDate; + private String status; + private String chargeBackAmount; + +} diff --git a/jdk_17_maven/cs/rest/digitalbanking/src/main/java/com/jphaugla/domain/Email.java b/jdk_17_maven/cs/rest/digitalbanking/src/main/java/com/jphaugla/domain/Email.java new file mode 100644 index 000000000..d8528fa55 --- /dev/null +++ b/jdk_17_maven/cs/rest/digitalbanking/src/main/java/com/jphaugla/domain/Email.java @@ -0,0 +1,15 @@ +package com.jphaugla.domain; +import lombok.*; +import java.io.Serializable; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@Getter +@Setter + +public class Email implements Serializable { + private String emailAddress; + private String emailLabel; + private String customerId; +} diff --git a/jdk_17_maven/cs/rest/digitalbanking/src/main/java/com/jphaugla/domain/Merchant.java b/jdk_17_maven/cs/rest/digitalbanking/src/main/java/com/jphaugla/domain/Merchant.java new file mode 100644 index 000000000..bd3118607 --- /dev/null +++ b/jdk_17_maven/cs/rest/digitalbanking/src/main/java/com/jphaugla/domain/Merchant.java @@ -0,0 +1,20 @@ +package com.jphaugla.domain; + +import lombok.*; + +import java.io.Serializable; + +@Data +@AllArgsConstructor +@NoArgsConstructor +@Getter +@Setter + +public class Merchant implements Serializable { + + private String name; + private String categoryCode; + private String categoryDescription; + private String state; + private String countryCode; +} diff --git a/jdk_17_maven/cs/rest/digitalbanking/src/main/java/com/jphaugla/domain/Phone.java b/jdk_17_maven/cs/rest/digitalbanking/src/main/java/com/jphaugla/domain/Phone.java new file mode 100644 index 000000000..527f6dff7 --- /dev/null +++ b/jdk_17_maven/cs/rest/digitalbanking/src/main/java/com/jphaugla/domain/Phone.java @@ -0,0 +1,18 @@ +package com.jphaugla.domain; +import lombok.*; + +import java.io.Serializable; + + +@Data +@AllArgsConstructor +@NoArgsConstructor +@Getter +@Setter + +public class Phone implements Serializable { + + private String phoneNumber; + private String phoneLabel; + private String customerId; +} diff --git a/jdk_17_maven/cs/rest/digitalbanking/src/main/java/com/jphaugla/domain/Transaction.java b/jdk_17_maven/cs/rest/digitalbanking/src/main/java/com/jphaugla/domain/Transaction.java new file mode 100644 index 000000000..d8977b810 --- /dev/null +++ b/jdk_17_maven/cs/rest/digitalbanking/src/main/java/com/jphaugla/domain/Transaction.java @@ -0,0 +1,42 @@ +package com.jphaugla.domain; + +import com.fasterxml.jackson.annotation.JsonInclude; +import lombok.*; +import org.springframework.data.cassandra.core.mapping.PrimaryKey; +import org.springframework.data.cassandra.core.mapping.Table; + + +import java.io.Serializable; + +@Data +@Table +@AllArgsConstructor +@NoArgsConstructor +@Getter +@Setter + + +public class Transaction implements Serializable { + @PrimaryKey + private String tranid; + private String accountno; + // debit or credit + private String amounttype; + private String merchant; + private String referencekeytype; + private String referencekeyvalue; + private String originalamount; + private String amount; + private String trancd; + private String description; + private String initialdate; + private String settlementdate; + private String postingdate; + // this is authorized, posted, settled + private String status ; + private String disputeid; + private String transactionreturn; + private String location; + private String transactiontags; + +} diff --git a/jdk_17_maven/cs/rest/digitalbanking/src/main/java/com/jphaugla/domain/TransactionReturn.java b/jdk_17_maven/cs/rest/digitalbanking/src/main/java/com/jphaugla/domain/TransactionReturn.java new file mode 100644 index 000000000..44cb72b03 --- /dev/null +++ b/jdk_17_maven/cs/rest/digitalbanking/src/main/java/com/jphaugla/domain/TransactionReturn.java @@ -0,0 +1,18 @@ +package com.jphaugla.domain; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + + +import java.io.Serializable; + +@Data +@AllArgsConstructor +@NoArgsConstructor + +public class TransactionReturn implements Serializable { + + private String reasonCode; + private String reasonDescription; +} diff --git a/jdk_17_maven/cs/rest/digitalbanking/src/main/java/com/jphaugla/repository/AccountRepository.java b/jdk_17_maven/cs/rest/digitalbanking/src/main/java/com/jphaugla/repository/AccountRepository.java new file mode 100644 index 000000000..e5ebd5970 --- /dev/null +++ b/jdk_17_maven/cs/rest/digitalbanking/src/main/java/com/jphaugla/repository/AccountRepository.java @@ -0,0 +1,86 @@ +package com.jphaugla.repository; +import com.jphaugla.domain.Account; + +import com.fasterxml.jackson.databind.ObjectMapper; + +import com.jphaugla.domain.Account; +import lombok.extern.slf4j.Slf4j; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + + +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.data.redis.core.StringRedisTemplate; +import org.springframework.stereotype.Repository; + +@Slf4j +@Repository +public class AccountRepository { + + @Autowired + ObjectMapper objectMapper; + + @Autowired + @Qualifier("redisTemplateW1") + private RedisTemplate redisTemplateW1; + + @Autowired + private StringRedisTemplate stringRedisTemplate; + @Value("${app.accountSearchIndexName}") + private String accountSearchIndexName; + + public AccountRepository() { + + log.info("AccountRepository constructor"); + } + + public String create(Account account) { + log.info("AccountRepository create with index=" + accountSearchIndexName); + log.info(" account " + account.toString()); + if (account.getCreatedDatetime() == null) { + long currentTimeMillis = System.currentTimeMillis(); + String stringMillis = Long.toString(currentTimeMillis); + account.setCreatedDatetime(stringMillis); + account.setOpenDatetime(stringMillis); + account.setLastUpdated(stringMillis); + } + + Map AccountHash = objectMapper.convertValue(account, Map.class); + // while (AccountHash.values().remove(null)); + // logger.info( "before null removal with AccountHash " + AccountHash.toString()); + AccountHash.values().removeIf(Objects::isNull); + + // logger.info( "before putall with AccountHash " + AccountHash.toString()); + stringRedisTemplate.opsForHash().putAll(makeKey(account.getAccountNo()), AccountHash); + // redisTemplate.opsForHash().putAll("Account:" + Account.getAccountId(), AccountHash); + // logger.info(String.format("Account with ID %s saved", account.getAccountNo())); + return "Success\n"; + } + + public Account get(String accountId) { + log.info("in AccountRepository.get with Account id=" + accountId); + String fullKey = makeKey(accountId); + Map AccountHash = stringRedisTemplate.opsForHash().entries(fullKey); + Account account = objectMapper.convertValue(AccountHash, Account.class); + return (account); + } + + + public void createAll(List accounts) { + for (Account account : accounts) { + create(account); + } + } + + private String makeKey(String accountId) { + return accountSearchIndexName + ':' + accountId; + } +} \ No newline at end of file diff --git a/jdk_17_maven/cs/rest/digitalbanking/src/main/java/com/jphaugla/repository/CassandraTransRepository.java b/jdk_17_maven/cs/rest/digitalbanking/src/main/java/com/jphaugla/repository/CassandraTransRepository.java new file mode 100644 index 000000000..61ea83522 --- /dev/null +++ b/jdk_17_maven/cs/rest/digitalbanking/src/main/java/com/jphaugla/repository/CassandraTransRepository.java @@ -0,0 +1,12 @@ +package com.jphaugla.repository; + +import com.jphaugla.domain.CassandraTransaction; +import com.jphaugla.domain.Transaction; +import org.springframework.data.cassandra.repository.CassandraRepository; + + +import java.util.UUID; + +public interface CassandraTransRepository extends CassandraRepository { + +} \ No newline at end of file diff --git a/jdk_17_maven/cs/rest/digitalbanking/src/main/java/com/jphaugla/repository/CustomerRepository.java b/jdk_17_maven/cs/rest/digitalbanking/src/main/java/com/jphaugla/repository/CustomerRepository.java new file mode 100644 index 000000000..1713420e1 --- /dev/null +++ b/jdk_17_maven/cs/rest/digitalbanking/src/main/java/com/jphaugla/repository/CustomerRepository.java @@ -0,0 +1,69 @@ +package com.jphaugla.repository; + +import com.jphaugla.domain.Customer; + +import com.fasterxml.jackson.databind.ObjectMapper; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + + +import java.util.Map; +import java.util.Objects; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.data.redis.core.RedisTemplate; + +import org.springframework.data.redis.core.StringRedisTemplate; +import org.springframework.stereotype.Repository; + +@Repository + +public class CustomerRepository{ + + + final Logger logger = LoggerFactory.getLogger(CustomerRepository.class); + @Autowired + ObjectMapper objectMapper; + + @Value("${app.customerSearchIndexName}") + private String customerSearchIndexName; + + @Autowired + private StringRedisTemplate stringRedisTemplate; + + public CustomerRepository() { + + logger.info("CustomerRepository constructor"); + } + + public String create(Customer customer) { + if (customer.getCreatedDatetime() == null) { + Long currentTimeMillis = System.currentTimeMillis(); + customer.setCreatedDatetime(Long.toString(currentTimeMillis)); + customer.setLastUpdated(Long.toString(currentTimeMillis)); + } + + Map customerHash = objectMapper.convertValue(customer, Map.class); + customerHash.values().removeIf(Objects::isNull); + + stringRedisTemplate.opsForHash().putAll(makeKey(customer.getCustomerId()), customerHash); + // redisTemplate.opsForHash().putAll("Customer:" + customer.getCustomerId(), customerHash); + // logger.info(String.format("Customer with ID %s saved", customer.getCustomerId())); + return "Success\n"; + } + + public Customer get(String customerId) { + // logger.info("in CustomerRepository.get with customer id=" + customerId); + String fullKey = makeKey(customerId); + Map customerHash = stringRedisTemplate.opsForHash().entries(fullKey); + Customer customer = objectMapper.convertValue(customerHash, Customer.class); + return (customer); + } + private String makeKey(String customerId) { + return customerSearchIndexName + ':' + customerId; + } + +} diff --git a/jdk_17_maven/cs/rest/digitalbanking/src/main/java/com/jphaugla/repository/DisputeRepository.java b/jdk_17_maven/cs/rest/digitalbanking/src/main/java/com/jphaugla/repository/DisputeRepository.java new file mode 100644 index 000000000..34c64555b --- /dev/null +++ b/jdk_17_maven/cs/rest/digitalbanking/src/main/java/com/jphaugla/repository/DisputeRepository.java @@ -0,0 +1,85 @@ +package com.jphaugla.repository; + +import com.fasterxml.jackson.databind.ObjectMapper; + +import com.jphaugla.domain.Dispute; +import lombok.extern.slf4j.Slf4j; + + +import java.util.Map; +import java.util.Objects; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; + +import org.springframework.data.redis.core.StringRedisTemplate; +import org.springframework.stereotype.Repository; + +@Slf4j +@Repository + +public class DisputeRepository{ + + + @Autowired + ObjectMapper objectMapper; + + @Value("${app.disputeSearchIndexName}") + private String disputeSearchIndexName; + + @Autowired + private StringRedisTemplate stringRedisTemplate; + + public DisputeRepository() { + + log.info("DisputeRepository constructor"); + } + + private String makeKey(String disputeId) { + return (disputeSearchIndexName + ':' + disputeId); + } + + public String create(Dispute dispute) { + if (dispute.getFilingDate() == null) { + Long currentTimeMillis = System.currentTimeMillis(); + dispute.setFilingDate(Long.toString(currentTimeMillis)); + dispute.setLastUpdateDate(Long.toString(currentTimeMillis)); + } + + Map DisputeHash = objectMapper.convertValue(dispute, Map.class); + DisputeHash.values().removeIf(Objects::isNull); + String fullKey = makeKey(dispute.getDisputeId()); + stringRedisTemplate.opsForHash().putAll(makeKey(dispute.getDisputeId()), DisputeHash); + log.info(String.format("Dispute with ID %s saved", fullKey)); + return "Success\n"; + } + + public Dispute get(String disputeId) { + // logger.info("in DisputeRepository.get with Dispute id=" + DisputeId); + Map DisputeHash = stringRedisTemplate.opsForHash().entries(makeKey(disputeId)); + Dispute dispute = objectMapper.convertValue(DisputeHash, Dispute.class); + return (dispute); + } + + public void setChargeBackReason(String disputeId, String chargeBackReason) { + Long currentTimeMillis = System.currentTimeMillis(); + stringRedisTemplate.opsForHash().put(makeKey(disputeId),"lastUpdateDate", Long.toString(currentTimeMillis)); + stringRedisTemplate.opsForHash().put(makeKey(disputeId),"reasonCode", chargeBackReason); + stringRedisTemplate.opsForHash().put(makeKey(disputeId),"reviewDate", Long.toString(currentTimeMillis)); + stringRedisTemplate.opsForHash().put(makeKey(disputeId),"status", "Investigate"); + } + + public void acceptChargeBack(String disputeId) { + Long currentTimeMillis = System.currentTimeMillis(); + stringRedisTemplate.opsForHash().put(makeKey(disputeId),"lastUpdateDate", Long.toString(currentTimeMillis)); + stringRedisTemplate.opsForHash().put(makeKey(disputeId),"acceptChargeBackDate", Long.toString(currentTimeMillis)); + stringRedisTemplate.opsForHash().put(makeKey(disputeId),"status", "ChargedBack"); + } + public void resolved(String disputeId) { + Long currentTimeMillis = System.currentTimeMillis(); + stringRedisTemplate.opsForHash().put(makeKey(disputeId),"lastUpdateDate", Long.toString(currentTimeMillis)); + stringRedisTemplate.opsForHash().put(makeKey(disputeId),"resolutionDate", Long.toString(currentTimeMillis)); + stringRedisTemplate.opsForHash().put(makeKey(disputeId),"status", "Resolved"); + } + +} diff --git a/jdk_17_maven/cs/rest/digitalbanking/src/main/java/com/jphaugla/repository/EmailRepository.java b/jdk_17_maven/cs/rest/digitalbanking/src/main/java/com/jphaugla/repository/EmailRepository.java new file mode 100644 index 000000000..3953be6d5 --- /dev/null +++ b/jdk_17_maven/cs/rest/digitalbanking/src/main/java/com/jphaugla/repository/EmailRepository.java @@ -0,0 +1,89 @@ +package com.jphaugla.repository; + +import com.jphaugla.domain.Email; + +import com.fasterxml.jackson.databind.ObjectMapper; + +import lombok.extern.slf4j.Slf4j; + + +import java.util.Map; +import java.util.Set; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.data.redis.core.RedisTemplate; + +import org.springframework.data.redis.core.StringRedisTemplate; +import org.springframework.stereotype.Repository; + + +@Slf4j +@Repository + +public class EmailRepository{ + + @Autowired + ObjectMapper objectMapper; + + @Autowired + @Qualifier("redisTemplateW1") + private RedisTemplate redisTemplateW1; + @Value("${app.emailSearchIndexName}") + private String emailSearchIndexName; + @Value("${app.customerSearchIndexName}") + private String customerSearchIndexName; + + @Autowired + private StringRedisTemplate stringRedisTemplate; + + public EmailRepository() { + + log.info("EmailRepository constructor"); + } + + public String create(Email email) { + + Map emailHash = objectMapper.convertValue(email, Map.class); + stringRedisTemplate.opsForHash().putAll(makeKey( email.getEmailAddress()), emailHash); + // for demo purposed add a member to the set for the Customer + stringRedisTemplate.opsForSet().add("CustEmail:" + email.getCustomerId(), email.getEmailAddress()); + // redisTemplate.opsForHash().putAll("Email:" + email.getEmailId(), emailHash); + // logger.info(String.format("Email with ID %s saved", email.getEmailAddress())); + return "Success\n"; + } + + public Email get(String emailId) { + log.info("in EmailRepository.get with email id=" + emailId); + String fullKey = makeKey(emailId); + Map emailHash = stringRedisTemplate.opsForHash().entries(fullKey); + Email email = objectMapper.convertValue(emailHash, Email.class); + return (email); + } + // this is sample code demonstrating removing all the emails for a customer without using redisearch + public void delete(String emailId) { + log.info("in emailrepository.delete with emailId " + emailId); + String fullKey = makeKey(emailId); + stringRedisTemplate.delete(fullKey); + } + + public int deleteCustomerEmails (String customerId) { + log.info("in EmailRepository.deleteCustomerEmails with custid " + customerId); + String custEmailKey = "CustEmail" + ':' + customerId; + String fullEmailKey; + Set emailsToDelete = stringRedisTemplate.opsForSet().members(custEmailKey); + int emailCount = emailsToDelete.size(); + for (String emailKey : emailsToDelete) { + fullEmailKey = makeKey(emailKey); + log.info("emailKey to delete is " + fullEmailKey); + stringRedisTemplate.delete(fullEmailKey); + } + stringRedisTemplate.delete(custEmailKey); + return emailCount; + } + private String makeKey(String emailKey) { + return emailSearchIndexName + ':' + emailKey; + } + +} diff --git a/jdk_17_maven/cs/rest/digitalbanking/src/main/java/com/jphaugla/repository/MerchantRepository.java b/jdk_17_maven/cs/rest/digitalbanking/src/main/java/com/jphaugla/repository/MerchantRepository.java new file mode 100644 index 000000000..023a39bff --- /dev/null +++ b/jdk_17_maven/cs/rest/digitalbanking/src/main/java/com/jphaugla/repository/MerchantRepository.java @@ -0,0 +1,68 @@ +package com.jphaugla.repository; + +import com.jphaugla.domain.Merchant; + +import com.fasterxml.jackson.databind.ObjectMapper; + +import com.jphaugla.domain.Transaction; +import lombok.extern.slf4j.Slf4j; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + + +import java.util.List; +import java.util.Map; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.data.redis.core.RedisTemplate; + +import org.springframework.data.redis.core.StringRedisTemplate; +import org.springframework.stereotype.Repository; +@Slf4j +@Repository + +public class MerchantRepository{ + @Value("${app.merchantSearchIndexName}") + private String merchantSearchIndexName; + + @Autowired + ObjectMapper objectMapper; + + @Autowired + private StringRedisTemplate stringRedisTemplate; + + public MerchantRepository() { + + log.info("MerchantRepository constructor"); + } + + public String create(Merchant merchant) { + + Map merchantHash = objectMapper.convertValue(merchant, Map.class); + stringRedisTemplate.opsForHash().putAll(makeKey( merchant.getName()), merchantHash); + // redisTemplate.opsForHash().putAll("Merchant:" + merchant.getMerchantId(), merchantHash); + // logger.info(String.format("Merchant with ID %s saved", merchant.getName())); + return "Success\n"; + } + + public Merchant get(String merchantId) { + log.info("in MerchantRepository.get with merchant id=" + merchantId); + String fullKey = makeKey(merchantId); + Map merchantHash = stringRedisTemplate.opsForHash().entries(fullKey); + Merchant merchant = objectMapper.convertValue(merchantHash, Merchant.class); + return (merchant); + } + public String createAll(List merchantList) { + for (Merchant merchant : merchantList) { + create(merchant); + } + return "Success\n"; + } + + private String makeKey(String merchantId) { + return merchantSearchIndexName + ':' + merchantId; + } +} + diff --git a/jdk_17_maven/cs/rest/digitalbanking/src/main/java/com/jphaugla/repository/PhoneRepository.java b/jdk_17_maven/cs/rest/digitalbanking/src/main/java/com/jphaugla/repository/PhoneRepository.java new file mode 100644 index 000000000..c300985f3 --- /dev/null +++ b/jdk_17_maven/cs/rest/digitalbanking/src/main/java/com/jphaugla/repository/PhoneRepository.java @@ -0,0 +1,61 @@ +package com.jphaugla.repository; + +import com.jphaugla.domain.Phone; + +import com.fasterxml.jackson.databind.ObjectMapper; + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + + +import java.util.Map; +import java.util.Optional; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.data.redis.core.RedisTemplate; + +import org.springframework.data.redis.core.StringRedisTemplate; +import org.springframework.stereotype.Repository; +@Repository + +public class PhoneRepository{ + @Value("${app.phoneSearchIndexName}") + private String phoneSearchIndexName; + + final Logger logger = LoggerFactory.getLogger(com.jphaugla.repository.PhoneRepository.class); + @Autowired + ObjectMapper objectMapper; + + @Autowired + private StringRedisTemplate stringRedisTemplate; + + public PhoneRepository() { + + logger.info("PhoneRepository constructor"); + } + + public String create(Phone phone) { + + Map phoneHash = objectMapper.convertValue(phone, Map.class); + stringRedisTemplate.opsForHash().putAll(makeKey(phone.getPhoneNumber()), phoneHash); + // redisTemplate.opsForHash().putAll("Phone:" + phone.getPhoneId(), phoneHash); + // logger.info(String.format("Phone with ID %s saved", phone.getPhoneNumber())); + return "Success\n"; + } + + public Optional get(String phoneId) { + logger.info("in Phone Repository.get with phone id=" + phoneId); + String fullKey = makeKey(phoneId); + Map phoneHash = stringRedisTemplate.opsForHash().entries(fullKey); + logger.info("Full key is " + fullKey + " phoneHash is " + phoneHash); + Phone phone = objectMapper.convertValue(phoneHash, Phone.class); + logger.info("return phone " + phone.getPhoneNumber() + ":" + phone.getPhoneLabel() + ":" + phone.getCustomerId()); + return Optional.ofNullable((phone)); + } + + private String makeKey(String phoneId) { + return phoneSearchIndexName + ':' + phoneId; + } +} diff --git a/jdk_17_maven/cs/rest/digitalbanking/src/main/java/com/jphaugla/repository/TransactionRepository.java b/jdk_17_maven/cs/rest/digitalbanking/src/main/java/com/jphaugla/repository/TransactionRepository.java new file mode 100644 index 000000000..9b365f8a6 --- /dev/null +++ b/jdk_17_maven/cs/rest/digitalbanking/src/main/java/com/jphaugla/repository/TransactionRepository.java @@ -0,0 +1,117 @@ +package com.jphaugla.repository; + +import com.jphaugla.domain.Transaction; + +import com.fasterxml.jackson.databind.ObjectMapper; + +import lombok.extern.slf4j.Slf4j; + + +import java.time.Duration; +import java.util.List; +import java.util.Map; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; + +import org.springframework.data.redis.core.StringRedisTemplate; +import org.springframework.stereotype.Repository; +@Repository +@Slf4j +public class TransactionRepository{ + @Value("${app.transactionSearchIndexName}") + private String transactionSearchIndexName; + + @Autowired + ObjectMapper objectMapper; + + @Autowired + private StringRedisTemplate stringRedisTemplate; + + public TransactionRepository() { + + log.info("TransactionRepository constructor"); + } + + public String create(Transaction transaction) { + log.info("entering TransactionReposistory create transaction " + transaction.toString()); + if (transaction.getInitialdate() == null) { + long currentTimeMillis = System.currentTimeMillis(); + transaction.setInitialdate(Long.toString(currentTimeMillis)); + } + + Map transactionHash = objectMapper.convertValue(transaction, Map.class); + // remove null map values + while (transactionHash.values().remove(null)); + String fullKey = makeKey(transaction.getTranid()); + log.info("full key is " + fullKey); + stringRedisTemplate.opsForHash().putAll(fullKey, transactionHash); + // redisTemplate.opsForHash().putAll("Transaction:" + transaction.getTransactionId(), transactionHash); + // logger.info(String.format("Transaction with ID %s saved", transaction.getTranId())); + return fullKey; + } + + public String create (Transaction transaction, Boolean doExpire) { + String returnKey = create(transaction); + stringRedisTemplate.expire(returnKey, Duration.ofDays(2)); + return returnKey; + } + + public String createAll(List transactionList) { + for (Transaction transaction : transactionList) { + create(transaction); + } + return "Success\n"; + } + + public Transaction get(String tranId) { + log.info("in TransactionRepository.get with transaction id=" + tranId); + String fullKey = makeKey(tranId); + Map transactionHash = stringRedisTemplate.opsForHash().entries(fullKey); + Transaction transaction = objectMapper.convertValue(transactionHash, Transaction.class); + return (transaction); + } + + public String getAmount(String tranId) { + log.info("in TransactionRepository.getAmount with transaction id=" + tranId); + String fullKey = makeKey(tranId); + String amount = (String) stringRedisTemplate.opsForHash().get(fullKey, "amount"); + return amount; + } + public void updateStatus(String tranId, String targetStatus, String timeString) { + stringRedisTemplate.opsForHash().put(makeKey(tranId), + "status", targetStatus); + if (targetStatus.equals("POSTED")) { + updateDate(tranId, "postingDate", timeString); + } else { + updateDate(tranId, "settlementDate", timeString); + } + } + + public void updateDate(String tranId, String dateField, String timeString) { + stringRedisTemplate.opsForHash().put(makeKey(tranId), dateField, + timeString); + } + + public void addTags(String tranId, String tagDelimitedString) { + stringRedisTemplate.opsForHash().put(makeKey(tranId), "transactionTags", + tagDelimitedString); + } + public String getTags(String tranId) { + log.info("in getTransactionTagList with transactionID=" + tranId); + // hold set of transactions for a tag on an account + String transactionKey = makeKey(tranId); + String existingTags = (String) stringRedisTemplate.opsForHash().get(transactionKey, + "transactionTags"); + return existingTags; + } + + public void addDispute(String tranId, String disputeId) { + String transactionKey = makeKey(tranId); + stringRedisTemplate.opsForHash().put(transactionKey, "disputeid", disputeId); + + } + public String makeKey(String tranId) { + return transactionSearchIndexName + ":" + tranId; + } +} diff --git a/jdk_17_maven/cs/rest/digitalbanking/src/main/java/com/jphaugla/repository/TransactionReturnRepository.java b/jdk_17_maven/cs/rest/digitalbanking/src/main/java/com/jphaugla/repository/TransactionReturnRepository.java new file mode 100644 index 000000000..dc20d7d57 --- /dev/null +++ b/jdk_17_maven/cs/rest/digitalbanking/src/main/java/com/jphaugla/repository/TransactionReturnRepository.java @@ -0,0 +1,67 @@ +package com.jphaugla.repository; + +import com.jphaugla.domain.Transaction; +import com.jphaugla.domain.TransactionReturn; + +import com.fasterxml.jackson.databind.ObjectMapper; + +import lombok.extern.slf4j.Slf4j; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + + +import java.util.List; +import java.util.Map; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.data.redis.core.RedisTemplate; + +import org.springframework.data.redis.core.StringRedisTemplate; +import org.springframework.stereotype.Repository; +@Slf4j +@Repository + +public class TransactionReturnRepository{ + + @Autowired + ObjectMapper objectMapper; + + @Value("${app.transactionReturnSearchIndexName}") + private String transactionReturnSearchIndexName; + + @Autowired + private StringRedisTemplate stringRedisTemplate; + + public TransactionReturnRepository() { + + log.info("TransactionReturnRepository constructor"); + } + + public String create(TransactionReturn transactionReturn) { + Map transactionReturnHash = objectMapper.convertValue(transactionReturn, Map.class); + stringRedisTemplate.opsForHash().putAll(makeKey(transactionReturn.getReasonCode()), transactionReturnHash); + // redisTemplate.opsForHash().putAll("TransactionReturn:" + transactionReturn.getTransactionReturnId(), transactionReturnHash); + log.info(String.format("TransactionReturn with ID %s saved", transactionReturn.getReasonCode())); + return "Success\n"; + } + public String createAll(List transactionReturnList) { + for (TransactionReturn transactionReturn : transactionReturnList) { + create(transactionReturn); + } + return "Success\n"; + } + + public TransactionReturn get(String transactionReturnId) { + log.info("in TransactionReturnRepository.get with transactionReturn id=" + transactionReturnId); + String fullKey = makeKey(transactionReturnId); + Map transactionReturnHash = stringRedisTemplate.opsForHash().entries(fullKey); + TransactionReturn transactionReturn = objectMapper.convertValue(transactionReturnHash, TransactionReturn.class); + return (transactionReturn); + } + private String makeKey(String transactionReturnId) { + return transactionReturnSearchIndexName + ':' + transactionReturnId; + } + +} diff --git a/jdk_17_maven/cs/rest/digitalbanking/src/main/java/com/jphaugla/service/AsyncService.java b/jdk_17_maven/cs/rest/digitalbanking/src/main/java/com/jphaugla/service/AsyncService.java new file mode 100644 index 000000000..9977c78d4 --- /dev/null +++ b/jdk_17_maven/cs/rest/digitalbanking/src/main/java/com/jphaugla/service/AsyncService.java @@ -0,0 +1,71 @@ +package com.jphaugla.service; + +import com.jphaugla.domain.*; +import com.jphaugla.repository.*; +import org.springframework.beans.factory.annotation.Autowired; + +import org.springframework.scheduling.annotation.Async; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.concurrent.CompletableFuture; + + +@Service +public class AsyncService { + + @Autowired + private AccountRepository accountRepository; + @Autowired + private CustomerRepository customerRepository; + @Autowired + private TransactionRepository transactionRepository; + @Autowired + private PhoneRepository phoneRepository; + @Autowired + private EmailRepository emailRepository; + + @Async("threadPoolTaskExecutor") + public CompletableFuture writeAllTransaction(List transactions) { + transactionRepository.createAll(transactions); + return CompletableFuture.completedFuture(0); + } + @Async("threadPoolTaskExecutor") + public CompletableFuture writeTransaction(Transaction transaction) { + transactionRepository.create(transaction); + return CompletableFuture.completedFuture(0); + } + + @Async("threadPoolTaskExecutor") + public CompletableFuture writeAllAccounts(List accounts){ + // Integer count = accounts.size(); + accountRepository.createAll(accounts); + return CompletableFuture.completedFuture(0); + } + + @Async("threadPoolTaskExecutor") + public CompletableFuture writeAccounts(Account account){ + // Integer count = accounts.size(); + accountRepository.create(account); + return CompletableFuture.completedFuture(0); + } + + @Async("threadPoolTaskExecutor") + public CompletableFuture writeCustomer(Customer customer) { + customerRepository.create(customer); + return CompletableFuture.completedFuture(0); + } + + @Async("threadPoolTaskExecutor") + public CompletableFuture writePhone(Phone phoneNumber) { + phoneRepository.create(phoneNumber); + return CompletableFuture.completedFuture(0); + } + + @Async("threadPoolTaskExecutor") + public CompletableFuture writeEmail(Email email) { + emailRepository.create(email); + return CompletableFuture.completedFuture(0); + } + +} diff --git a/jdk_17_maven/cs/rest/digitalbanking/src/main/java/com/jphaugla/service/BankService.java b/jdk_17_maven/cs/rest/digitalbanking/src/main/java/com/jphaugla/service/BankService.java new file mode 100644 index 000000000..e5b3e9f5e --- /dev/null +++ b/jdk_17_maven/cs/rest/digitalbanking/src/main/java/com/jphaugla/service/BankService.java @@ -0,0 +1,822 @@ +package com.jphaugla.service; + +import java.text.ParseException; +import java.text.SimpleDateFormat; +import java.util.*; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.ExecutionException; +import java.util.concurrent.atomic.AtomicLong; + + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.jphaugla.data.BankGenerator; +import com.jphaugla.domain.*; +import com.jphaugla.repository.*; + +import io.lettuce.core.RedisCommandExecutionException; + +import lombok.extern.slf4j.Slf4j; +import org.joda.time.DateTime; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; + +import org.springframework.core.env.Environment; + +import org.springframework.data.redis.core.StringRedisTemplate; + +import org.springframework.kafka.support.SendResult; +import org.springframework.stereotype.Service; +import redis.clients.jedis.ConnectionPoolConfig; +import redis.clients.jedis.HostAndPort; +import redis.clients.jedis.JedisPooled; +import redis.clients.jedis.UnifiedJedis; +import redis.clients.jedis.search.Document; +import redis.clients.jedis.search.Query; +import redis.clients.jedis.search.SearchResult; +import redis.clients.jedis.search.aggr.AggregationBuilder; +import redis.clients.jedis.search.aggr.AggregationResult; +import redis.clients.jedis.search.aggr.Reducers; + + +@Service +@Slf4j + +public class BankService { + + private static BankService bankService = new BankService(); + @Autowired + private AsyncService asyncService; + @Autowired + private TopicProducer topicProducer; + @Autowired + private CassandraTransRepository cassandraTransRepository; + @Autowired + private AccountRepository accountRepository; + @Autowired + private PhoneRepository phoneRepository; + @Autowired + private EmailRepository emailRepository; + @Autowired + private MerchantRepository merchantRepository; + @Autowired + private TransactionReturnRepository transactionReturnRepository; + @Autowired + private TransactionRepository transactionRepository; + @Autowired + private DisputeRepository disputeRepository; + @Autowired + private CustomerRepository customerRepository; + @Autowired + private StringRedisTemplate redisTemplate; + @Autowired + ObjectMapper objectMapper; + + + @Value("${app.transactionSearchIndexName}") + private String transactionSearchIndexName; + @Value("${app.transactionReturnSearchIndexName}") + private String transactionReturnSearchIndexName; + @Value("${app.customerSearchIndexName}") + private String customerSearchIndexName; + @Value("${app.merchantSearchIndexName}") + private String merchantSearchIndexName; + @Value("${app.accountSearchIndexName}") + private String accountSearchIndexName; + @Value("${app.disputeSearchIndexName}") + private String disputeSearchIndexName; + + private long timerSum = 0; + private AtomicLong timerCount = new AtomicLong(); + @Autowired + private Environment env; + + UnifiedJedis client; + + public static BankService getInstance() { + return bankService; + } + // + // Customer + // + public Optional getCustomer(String customerId) { + log.info("in bankservice.getCustomer with ID " + customerId); + Customer returnCustomer = customerRepository.get(customerId); + log.info("returned customer " + returnCustomer); + return Optional.of(returnCustomer); + } + + + public void saveSampleCustomer() throws ParseException, RedisCommandExecutionException { + Date create_date = new SimpleDateFormat("yyyy-MM-dd").parse("2020-03-28"); + Date last_update = new SimpleDateFormat("yyyy-MM-dd").parse("2020-03-29"); + String cust = "cust0001"; + Email home_email = new Email("jasonhaugland@gmail.com", "home", cust); + Email work_email = new Email("jason.haugland@redislabs.com", "work", cust); + Phone cell_phone = new Phone("612-408-4394", "cell", cust); + emailRepository.create(home_email); + emailRepository.create(work_email); + phoneRepository.create(cell_phone); + Customer customer = new Customer(cust, "4744 17th av s", "", + "Home", "N", "Minneapolis", "00", + "jph", Long.toString(create_date.getTime()), "IDR", + "A", "BANK", "1949.01.23", + "Ralph", "Ralph Waldo Emerson", "M", + "887778989", "SSN", "Emerson", Long.toString(last_update.getTime()), + "jph", "Waldo", "MR", + "help", "MN", "55444", "55444-3322" + ); + customerRepository.create(customer); + } + + public void postCustomer(Customer customer) { + log.info("in postCustomer with Customer =" + customer); + customerRepository.create(customer); + Email home_email = new Email(customer.getCustomerId() + "@gmail.com", "home", customer.getCustomerId()); + Email work_email = new Email(customer.getCustomerId() + "@redislabs.com", "work", customer.getCustomerId()); + Phone cell_phone = new Phone("612-408-4394", "cell", customer.getCustomerId()); + emailRepository.create(home_email); + emailRepository.create(work_email); + phoneRepository.create(cell_phone); + } + + public SearchResult search(String indexName, String queryString, int offset, int limit, String sortBy, boolean ascending) { + // Let's put all the informations in a Map top make it easier to return JSON object + // no need to have "predefine mapping" + client = jedis_connection(); + Map returnValue = new HashMap<>(); + Map resultMeta = new HashMap<>(); + log.info("starting search with querystring" + queryString); + // Create a simple query + Query query = new Query(queryString) + .setWithScores() + .limit(offset, limit); + // if sort by parameter add it to the query + if (sortBy != null && !sortBy.isEmpty()) { + query.setSortBy(sortBy, ascending); // Ascending by default + } + + // Execute the query + + return client.ftSearch(indexName, query); + } + + + public SearchResult search(String indexName, String queryString) { + return search(indexName, queryString, 0, 10, null, true); + } + + + public int deleteCustomer(String customerString) { + // List customerIDList = customerRepository.findByStateAbbreviationAndCity(state, city); + // client = jedis_connection(); + String queryString = buildTagQuery("customerId", customerString); + log.info("query string is " + queryString); + int returnValue = 0; + SearchResult results = search(customerSearchIndexName, queryString); + List docs = results.getDocuments(); + for (Document document : docs) { + String fullKey = (String) document.getId(); + redisTemplate.delete(fullKey); + returnValue++; + // logger.warn("adding to transaction list string=" + onlyID + " fullKey is " + fullKey) + } + return (returnValue); + } + + public SearchResult getCustomerByStateCity(String state, String city) { + + // List customerIDList = customerRepository.findByStateAbbreviationAndCity(state, city); + String stateQuery = buildTagQuery("stateAbbreviation", state); + String cityQuery = buildTagQuery("city", city); + String queryString = stateQuery + " " + cityQuery; + log.info("query string is " + queryString); + return search(customerSearchIndexName, queryString); + } + + public SearchResult getCustomerIdsbyZipcodeLastname(String zipcode, String lastName) { + String zipString = buildTagQuery("zipcode", zipcode); + String lastNameStaring = buildTagQuery("lastName", lastName); + String queryString = zipString + " " + lastNameStaring; + return search(customerSearchIndexName, queryString); + } + + // + // Phone + // + public Optional getPhoneNumber(String phoneString) { + return phoneRepository.get(phoneString); + } + + public Customer getCustomerByPhone(String phoneString) { + // get list of customers having this phone number + // first, get phone hash with this phone number + // next, get the customer id with this phone number + // third, use the customer id to get the customer + Optional optPhone = getPhoneNumber(phoneString); + Optional returnCustomer = null; + Customer returnCust = null; + log.info("in bankservice.getCustomerByPhone optphone is" + optPhone.isPresent()); + if (optPhone.isPresent()) { + Phone onePhone = optPhone.get(); + String customerId = onePhone.getCustomerId(); + log.info(" onePhone is " + onePhone.getPhoneNumber() + ":" + onePhone.getPhoneLabel() + ":" + onePhone.getCustomerId()); + returnCustomer = Optional.ofNullable(customerRepository.get(customerId)); + } + + if ((returnCustomer != null) && (returnCustomer.isPresent())) { + returnCust = returnCustomer.get(); + // log.info("customer is " + returnCust); + + } + return returnCust; + } + + // + // Email + // + public Optional getEmail(String email) { + return Optional.ofNullable(emailRepository.get(email)); + } + + public Customer getCustomerByEmail(String emailString) { + // get list of customers having this email number + // first, get email hash with this email number + // next, get the customer id with this email number + // third, use the customer id to get the customer + Optional optionalEmail = getEmail(emailString); + Optional returnCustomer = Optional.empty(); + Customer returnCust = null; + log.info("in bankservice.getCustomerByEmail optEmail is" + optionalEmail.isPresent()); + if (optionalEmail.isPresent()) { + Email oneEmail = optionalEmail.get(); + String customerId = oneEmail.getCustomerId(); + // log.info("customer is " + customerId); + returnCustomer = Optional.ofNullable(customerRepository.get(customerId)); + } + + if ((returnCustomer.isPresent())) { + returnCust = returnCustomer.get(); + log.info("customer is " + returnCust); + + } + return returnCust; + } + + public int deleteCustomerEmail(String customerID) { + log.info("in bankservice.deleteCustomerEmail with CustomerID " + customerID); + return emailRepository.deleteCustomerEmails(customerID); + } + + // + // Utility methods + // + private void sleep(int i) { + try { + Thread.sleep(i); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + + public String getDateFullDayQueryString(String stringDate) throws ParseException { + Date inDate = new SimpleDateFormat("MM/dd/yyyy").parse(stringDate); + long inUnix = inDate.getTime(); + // since the transaction ID is also in the query can take a larger reach around the date column + long startUnix = inUnix - 86400 * 1000; + long endUnix = inUnix + 86400 * 1000; + return " @postingDate:[" + startUnix + " " + endUnix + "]"; + } + + public String getDateToFromQueryString(Date startDate, Date endDate) throws ParseException { + + long startUnix = startDate.getTime(); + long endUnix = endDate.getTime(); + return " @postingDate:[" + startUnix + " " + endUnix + "]"; + } + + // + // Transaction + // + + public Transaction getTransaction(String transactionID) { + + Transaction returnTransaction = transactionRepository.get(transactionID); + if ((returnTransaction != null) && (returnTransaction.getTranid() != null) ) { + log.info("found transaction in redis"); + } else { + log.info("transaction not found in redis, looking in cassandra"); + Optional optionalTransaction = cassandraTransRepository.findById(transactionID); + if (optionalTransaction.isPresent()) { + Transaction cassandraTransaction = optionalTransaction.get(); + if (cassandraTransaction.getTranid() != null) { + log.info("cassandra has the data "); + // returnTransaction = cassandraTransactionCopytoTransaction(cassandraTransaction); + // write it back to redis + returnTransaction = cassandraTransaction; + writeTransaction(cassandraTransaction, true); + } + } + } + if ((returnTransaction != null) && (returnTransaction.getTranid() != null) ) + return returnTransaction; + else { + log.info("cassandra doesn't have it either"); + return null; + } + } +/* + + private Transaction cassandraTransactionCopytoTransaction(CassandraTransaction cassandraTransaction) { + Transaction returnTransaction= new Transaction(); + returnTransaction.setTranid(cassandraTransaction.getTranid()); + returnTransaction.setAmount(cassandraTransaction.getAmount()); + returnTransaction.setDescription(cassandraTransaction.getDescription()); + returnTransaction.setLocation(cassandraTransaction.getLocation()); + returnTransaction.setTransactionTags(cassandraTransaction.getTransactiontags()); + returnTransaction.setAccountno(cassandraTransaction.getAccountno()); + returnTransaction.setAmounttype(cassandraTransaction.getAmounttype()); + returnTransaction.setDisputeId(cassandraTransaction.getDisputeid()); + returnTransaction.setInitialDate(cassandraTransaction.getInitialdate()); + returnTransaction.setMerchant(cassandraTransaction.getMerchant()); + returnTransaction.setOriginalamount(cassandraTransaction.getOriginalamount()); + returnTransaction.setPostingDate(cassandraTransaction.getPostingdate()); + returnTransaction.setReferencekeytype(cassandraTransaction.getReferencekeytype()); + returnTransaction.setReferencekeyvalue(cassandraTransaction.getReferencekeyValue()); + returnTransaction.setSettlementDate(cassandraTransaction.getSettlementdate()); + returnTransaction.setStatus(cassandraTransaction.getStatus()); + returnTransaction.setTransactionReturn(cassandraTransaction.getTransactionreturn()); + returnTransaction.setTrancd(cassandraTransaction.getTrancd()); + return returnTransaction; + } +*/ + + private List getTransactionByStatus(String transactionStatus) throws ExecutionException, InterruptedException { + String queryString = buildTagQuery("status", transactionStatus); + SearchResult results = search(transactionSearchIndexName, queryString, 0, 10000, null, true); + // this code snippet get converts results to List of Transaction IDs + List transIdList = new ArrayList(); + List docs = results.getDocuments(); + + for (Document document : docs) { + String fullKey = (String) document.getId(); + String onlyID = fullKey.replace(transactionSearchIndexName + ':', ""); + transIdList.add(onlyID); + // logger.warn("adding to transaction list string=" + onlyID + " fullKey is " + fullKey); + } + return transIdList; + } + + public void transactionStatusChange(String targetStatus) throws IllegalAccessException, ExecutionException, InterruptedException { + // move target from authorized->settled->posted + log.info("transactionStatusChange targetStatus is " + targetStatus); + CompletableFuture transaction_cntr = null; + List transIdList = new ArrayList(); + long unixTime = System.currentTimeMillis(); + String stringUnixTime = String.valueOf(unixTime); + if (targetStatus.equals("POSTED")) { + transIdList = getTransactionByStatus("SETTLED"); + } else { + transIdList = getTransactionByStatus("AUTHORIZED"); + } + log.info("number of transactions " + transIdList.size()); + + for (String tranID : transIdList) { + transactionRepository.updateStatus(tranID, targetStatus, stringUnixTime); + } + log.info("Finished updating " + transIdList.size()); + } + + + // writeTransaction using crud without future + private void writeTransaction(Transaction transaction, boolean doExpire) { + // log.info("writing a transaction " + transaction); + transactionRepository.create(transaction, doExpire); + } + + // writeTransaction using crud with Future + private CompletableFuture writeTransactionFuture(Transaction transaction) throws IllegalAccessException { + + CompletableFuture transaction_cntr = null; + transaction_cntr = asyncService.writeTransaction(transaction); + // writes a sorted set to be used as the posted date index + + return transaction_cntr; + } + + public List> transactionStatusReport() { + client = jedis_connection(); + // AggregateResults aggregateResults = commands.ftAggregate((transactionSearchIndexName, "*", + // AggregateOptions.builder().load("status").operation(MRangeOptions.GroupBy.properties("status").reducer(Reducers.Count.as("COUNT")).build()).build()); + AggregationBuilder aggregation = new AggregationBuilder() + .groupBy("@status", Reducers.count().as("COUNT")); + log.info("aggregation is" + aggregation.toString()); + AggregationResult aggrResult = client.ftAggregate(transactionSearchIndexName, aggregation); + int resultSize = aggrResult.getResults().size(); + log.info("result size is " + resultSize); + log.info(aggrResult.getResults().toString()); + List> docsToReturn = new ArrayList<>(); + + // AggregateOptions groupByOptions = AggregateOptions.operation(Group.by("status").reducer(Reducers.Count.as("COUNT")).build()).build(); + // AggregateResults aggregateResults = commands.ftAggregate(transactionSearchIndexName, "*", groupByOptions); + return (aggrResult.getResults()); + } + + public void saveSampleTransaction(Boolean doKafka) throws ParseException, RedisCommandExecutionException, JsonProcessingException { + Date settle_date = new SimpleDateFormat("yyyy/MM/dd").parse("2021/07/28"); + Date post_date = new SimpleDateFormat("yyyy/MM/dd").parse("2021/07/28"); + Date init_date = new SimpleDateFormat("yyyy/MM/dd").parse("2021/07/27"); + + Merchant merchant = new Merchant("Cub Foods", "5411", + "Grocery Stores", "MN", "US"); + log.info("before save merchant"); + merchantRepository.create(merchant); + + Transaction transaction = new Transaction("1234","acct01", + "Debit", merchant.getName() + ":" + "acct01", "referenceKeyType", + "referenceKeyValue", "323.23", "323.22", "1631", + "Test Transaction", Long.toString(init_date.getTime()), Long.toString(settle_date.getTime()), + Long.toString(post_date.getTime()), "POSTED", null, null, "ATM665", "Outdoor"); + log.info("before save transaction"); + if (doKafka) { + writeTransactionKafka(transaction); + } else { + writeTransaction(transaction, false); + } + } + + public void addTag(String transactionID, String tag, String operation) { + log.info("in addTag with transID=" + transactionID + " and tag " + tag); + // hold set of transactions for a tag on an account + HashSet tagHash = getTransactionTagList(transactionID); + + if (operation.equals("ADD")) { + tagHash.add(tag); + } else { + tagHash.remove(tag); + } + String tagDelimitedString = String.join(":", tagHash); + transactionRepository.addTags(transactionID, tagDelimitedString); + + } + + public HashSet getTransactionTagList(String transactionID) { + log.info("in getTransactionTagList with transactionID=" + transactionID); + // hold set of transactions for a tag on an account + String existingTags = transactionRepository.getTags(transactionID); + HashSet tagHash = new HashSet(); + if (existingTags != null) { + String[] tagArray = existingTags.split(":"); + List tagList = Arrays.asList(tagArray); + tagHash = new HashSet(tagList); + } + return tagHash; + } + + + public SearchResult getTaggedTransactions(String accountNo, String tag) { + log.info("in getTaggedTransactions with accountNo=" + accountNo + " and tag " + tag); + String accountNoString = buildTagQuery("accountNo", accountNo); + String tranTagString = buildTagQuery("transactionTags", tag); + String queryString = accountNoString + " " + tranTagString; + log.info("query is " + queryString); + + return search(transactionSearchIndexName, queryString); + } + + /* + public String testPipeline(Integer noOfRecords) { + BankGenerator.Timer pipelineTimer = new BankGenerator.Timer(); + this.redisTemplate.executePipelined(new RedisCallback() { + @Override + public Object doInRedis(RedisConnection connection) + throws DataAccessException { + connection.openPipeline(); + String keyAndValue=null; + for (int index=0;index accounts = createCustomerAccount(noOfCustomers, key_suffix); + log.info("after accounts"); + BankGenerator.date = new DateTime().minusDays(noOfDays).withTimeAtStartOfDay(); + BankGenerator.Timer transTimer = new BankGenerator.Timer(); + + int totalTransactions = noOfTransactions * noOfDays; + + log.info("Writing " + totalTransactions + " transactions for " + noOfCustomers + + " customers. suffix is " + key_suffix); + int account_size = accounts.size(); + int transactionsPerAccount = noOfDays * noOfTransactions / account_size; + log.info("number of accounts generated is " + account_size + " transactionsPerAccount " + + transactionsPerAccount); + List merchants = BankGenerator.createMerchantList(); + List transactionReturns = BankGenerator.createTransactionReturnList(); + merchantRepository.createAll(merchants); + log.info("completed merchant next is transactionReturn"); + transactionReturnRepository.createAll(transactionReturns); + CompletableFuture> kafka_cntr = null; + CompletableFuture transaction_cntr = null; + int transactionIndex = 0; + List transactionList = new ArrayList<>(); + for (Account account : accounts) { + log.info("writing account " + account.getAccountNo()); + for (int i = 0; i < transactionsPerAccount; i++) { + transactionIndex++; + Transaction randomTransaction = BankGenerator.createRandomTransaction(noOfDays, transactionIndex, account, key_suffix, + merchants, transactionReturns); + if (doKafka) + writeTransactionKafka(randomTransaction); + else + transaction_cntr = writeTransactionFuture(randomTransaction); + } + } + if (!doKafka) { + transaction_cntr.get(); + } + transTimer.end(); + log.info("Finished writing " + totalTransactions + " created in " + + transTimer.getTimeTakenSeconds() + " seconds."); + } + + private void writeTransactionKafka(Transaction randomTransaction) throws JsonProcessingException { + try { + String jsonStr = objectMapper.writeValueAsString(randomTransaction); + String key = randomTransaction.getTranid(); + topicProducer.send(jsonStr, randomTransaction.getTranid()); + } catch (JsonProcessingException e) { + throw new RuntimeException(e); + } + + } + + ; + + // + // Account + // + public void saveSampleAccount() throws ParseException, RedisCommandExecutionException { + Date create_date = new SimpleDateFormat("yyyy/MM/dd").parse("2010/03/28"); + log.info("saveSampleAccount with create_date " + create_date.getTime()); + Account account = new Account("cust001", "acct001", + "credit", "teller", "active", + "ccnumber666655", Long.toString(create_date.getTime()), + null, null, "jason", null); + accountRepository.create(account); + } + + ; + + public SearchResult getAccountTransactions(String account, Date startDate, Date endDate) + throws ParseException, RedisCommandExecutionException { + log.info("in getAccountTransactions account is " + account); + log.info("startdate is " + startDate + " endDate is" + endDate); + String tofromQuery = getDateToFromQueryString(startDate, endDate); + String accountString = buildTagQuery("accountNo", account); + String queryString = accountString + " " + tofromQuery; + log.info("query is " + queryString); + + return search(transactionSearchIndexName, queryString); + } + + ; + + public SearchResult getCreditCardTransactions(String creditCard, Date startDate, Date endDate) + throws ParseException, RedisCommandExecutionException { + log.info("credit card is " + creditCard + " start is " + startDate + " end is " + endDate); + + SearchResult transactionResults = null; + String queryString = buildTagQuery("cardNum", creditCard); + SearchResult accountResults = search(accountSearchIndexName, queryString); + List docs = accountResults.getDocuments(); + // result set has all accounts with a credit card + // build a query to match any of these merchants + if (docs != null) { + int i = 0; + String accountListQueryString = "@accountNo:"; + for (Document document : docs) { + if (i > 0) accountListQueryString = accountListQueryString + "|"; + String accountNo = (String) document.getId(); + String onlyID = accountNo.replace(accountSearchIndexName + ':', ""); + accountListQueryString = accountListQueryString + "{" + onlyID + "}"; + i += 1; + } + accountListQueryString = accountListQueryString; + log.info("accountListQueryString is " + accountListQueryString); + String tofromQuery = getDateToFromQueryString(startDate, endDate); + queryString = accountListQueryString + tofromQuery; + log.info("queryString is " + queryString); + transactionResults = search(transactionSearchIndexName, queryString); + } + return transactionResults; + } + + ; + + + private List createCustomerAccount(int noOfCustomers, String key_suffix) throws ExecutionException, InterruptedException, RedisCommandExecutionException { + + log.info("Creating " + noOfCustomers + " customers with accounts and suffix " + key_suffix); + BankGenerator.Timer custTimer = new BankGenerator.Timer(); + List accounts = null; + List allAccounts = new ArrayList<>(); + List emails = null; + List phoneNumbers = null; + CompletableFuture account_cntr = null; + CompletableFuture customer_cntr = null; + CompletableFuture email_cntr = null; + CompletableFuture phone_cntr = null; + int totalAccounts = 0; + int totalEmails = 0; + int totalPhone = 0; + log.info("before the big for loop"); + for (int i = 0; i < noOfCustomers; i++) { + // log.info("int noOfCustomer for loop i=" + i); + Customer customer = BankGenerator.createRandomCustomer(key_suffix); + List emailList = BankGenerator.createEmail(customer.getCustomerId()); + List phoneList = BankGenerator.createPhone(customer.getCustomerId()); + for (Phone phoneNumber : phoneNumbers = phoneList) { + phone_cntr = asyncService.writePhone(phoneNumber); + } + totalPhone = totalPhone + phoneNumbers.size(); + for (Email email : emails = emailList) { + email_cntr = asyncService.writeEmail(email); + } + totalEmails = totalEmails + emails.size(); + accounts = BankGenerator.createRandomAccountsForCustomer(customer, key_suffix); + totalAccounts = totalAccounts + accounts.size(); + for (Account account : accounts) { + account_cntr = asyncService.writeAccounts(account); + } + customer_cntr = asyncService.writeCustomer(customer); + if (!accounts.isEmpty()) { + allAccounts.addAll(accounts); + } + } + // log.info("before the gets"); + assert account_cntr != null; + account_cntr.get(); + assert customer_cntr != null; + customer_cntr.get(); + assert email_cntr != null; + email_cntr.get(); + assert phone_cntr != null; + phone_cntr.get(); + custTimer.end(); + log.info("Customers=" + noOfCustomers + " Accounts=" + totalAccounts + + " Emails=" + totalEmails + " Phones=" + totalPhone + " in " + + custTimer.getTimeTakenSeconds() + " secs"); + return allAccounts; + } + + // + // TransactionReturns + // + + public SearchResult getTransactionReturns() { + log.info("in getTransactionReturns "); + String queryString = "*"; + + return search(transactionReturnSearchIndexName, queryString); + } + + // + // Merchant + // + public SearchResult getMerchantCategoryTransactions(String in_merchantCategory, String account, + Date startDate, Date endDate) throws ParseException, RedisCommandExecutionException { + String queryString = buildTagQuery("categoryCode", in_merchantCategory); + SearchResult merchantResults = search(merchantSearchIndexName, queryString); + SearchResult transactionResults = null; + List docs = merchantResults.getDocuments(); + // result set has all merchants with a category code + // build a query to match any of these merchants + if (docs != null) { + int i = 0; + StringBuilder merchantListQueryString = new StringBuilder("@merchant:{"); + for (Document document : docs) { + if (i > 0) merchantListQueryString.append("|"); + String merchantKey = (String) document.getId(); + log.info(merchantKey); + String onlyID = merchantKey.replace(merchantSearchIndexName + ':', ""); + log.info(onlyID); + merchantListQueryString.append(onlyID); + i += 1; + } + merchantListQueryString = new StringBuilder(merchantListQueryString.append("}").toString()); + log.info("merchantListQueryString is " + merchantListQueryString); + String tofromQuery = getDateToFromQueryString(startDate, endDate); + String accountString = buildTagQuery("accountNo", account); + queryString = accountString + " " + merchantListQueryString + tofromQuery; + log.info("queryString is " + queryString); + transactionResults = search(transactionSearchIndexName, queryString); + } + return transactionResults; + } + + public SearchResult getMerchantTransactions(String in_merchant, String account, Date startDate, Date endDate) + throws ParseException, RedisCommandExecutionException { + log.info("in getMerchantTransactions merchant is " + in_merchant + " and account is " + account); + log.info("startdate is " + startDate + " endDate is" + endDate); + String tofromQuery = getDateToFromQueryString(startDate, endDate); + String merchantString = buildTagQuery("merchant", in_merchant); + String accountString = buildTagQuery("accountNo", account); + String queryString = merchantString + " " + accountString + " " + tofromQuery; + log.info("query is " + queryString); + + return search(transactionSearchIndexName, queryString); + } + + ; + + private UnifiedJedis jedis_connection() { + // Get the configuration from the application properties/environment + UnifiedJedis unifiedJedis; + String redisHost = "localhost"; // default name + int redisPort = 6379; + String redisPassword = ""; + + redisHost = env.getProperty("redis.host", "localhost"); + redisPort = Integer.parseInt(env.getProperty("redis.port", "6379")); + redisPassword = env.getProperty("spring.redis.password", ""); + + ConnectionPoolConfig poolConfig = new ConnectionPoolConfig(); + poolConfig.setMaxIdle(50); + poolConfig.setMaxTotal(50); + HostAndPort hostAndPort = new HostAndPort(redisHost, redisPort); + + log.info("Host: " + redisHost + " Port " + String.valueOf(redisPort)); + if (!(redisPassword.isEmpty())) { + String redisURL = "redis://:" + redisPassword + '@' + redisHost + ':' + String.valueOf(redisPort); + log.info("redisURL is " + redisURL); + unifiedJedis = new JedisPooled(redisURL); + } else { + log.info(" no password"); + unifiedJedis = new JedisPooled(hostAndPort); + } + return unifiedJedis; + } + + private String buildTagQuery(String fieldName, String fieldValue) { + return ("@" + fieldName + ":{" + fieldValue + "}"); + } + + + public void postDispute(Dispute dispute) throws ParseException { + log.info("in bs.postDispute with Dispute =" + dispute); + long unixTime = System.currentTimeMillis(); + + String stringUnixTime = String.valueOf(unixTime); + // incoming is only a date and not a timestampe, change to a timestamp + Date use_date = new SimpleDateFormat("yyyy/MM/dd").parse(dispute.getFilingDate()); + String filingDateTime = Long.toString(use_date.getTime()); + dispute.setFilingDate(filingDateTime); + dispute.setLastUpdateDate(String.valueOf(stringUnixTime)); + Transaction transaction = transactionRepository.get(dispute.getTranId()); + dispute.setChargeBackAmount(transaction.getAmount()); + log.info("before create with Dispute =" + dispute); + disputeRepository.create(dispute); + transactionRepository.addDispute(dispute.getTranId(),dispute.getDisputeId()); + } + + public void putDisputeChargeBackReason(String disputeId, String reasonCode) { + + + disputeRepository.setChargeBackReason(disputeId, reasonCode ); + } + + + public void acceptDisputeChargeBack(String disputeId) { + disputeRepository.acceptChargeBack(disputeId); + } + + public void resolvedDispute(String disputeId) { + disputeRepository.resolved(disputeId); + } + + public Dispute getDispute(String disputeId) { + return disputeRepository.get(disputeId); + } + + public SearchResult mostRecentTransactions(String account) { + log.info("in bs.mostrecentTransactions with account=" + account); + String accountString = buildTagQuery("accountNo", account); + return search(transactionSearchIndexName, accountString, 0, 20, "postingDate", + false); + } +} diff --git a/jdk_17_maven/cs/rest/digitalbanking/src/main/java/com/jphaugla/service/TopicProducer.java b/jdk_17_maven/cs/rest/digitalbanking/src/main/java/com/jphaugla/service/TopicProducer.java new file mode 100644 index 000000000..7af4c922d --- /dev/null +++ b/jdk_17_maven/cs/rest/digitalbanking/src/main/java/com/jphaugla/service/TopicProducer.java @@ -0,0 +1,36 @@ +package com.jphaugla.service; + +import lombok.RequiredArgsConstructor; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Value; +import lombok.extern.slf4j.Slf4j; +import org.springframework.kafka.core.KafkaTemplate; +import org.springframework.kafka.support.SendResult; +import org.springframework.stereotype.Service; + +import java.util.concurrent.CompletableFuture; + +@Slf4j +@Service +@RequiredArgsConstructor +public class TopicProducer { + private static final Logger logger = LoggerFactory.getLogger(TopicProducer.class); + + @Value("${topic.name.producer}") + private String topicName; + + private final KafkaTemplate kafkaTemplate; + + public void send(String message, String key) { + CompletableFuture> future = kafkaTemplate.send(topicName, key, message); + future.whenComplete((result, ex) -> { + if (ex == null) { + // logger.info("Sent message=[" + message + "] with offset=[" + result.getRecordMetadata().offset() + "]"); + } else { + logger.info("Unable to send message=[" + + message + "] due to : " + ex.getMessage()); + } + }); + } +} diff --git a/jdk_17_maven/cs/rest/digitalbanking/src/main/resources/application.properties b/jdk_17_maven/cs/rest/digitalbanking/src/main/resources/application.properties new file mode 100644 index 000000000..7a2d3eb66 --- /dev/null +++ b/jdk_17_maven/cs/rest/digitalbanking/src/main/resources/application.properties @@ -0,0 +1,44 @@ +spring.redis.host=${REDIS_HOST} +spring.redis.port=${REDIS_PORT} +spring.redis.password=${REDIS_PASSWORD} +spring.redis.ssl=false +spring.redis.timeout=1000ms +spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration + +# Producer properties +spring.kafka.producer.bootstrap-servers=${KAFKA_HOST}:${KAFKA_PORT} +spring.kafka.producer.key-serializer=org.apache.kafka.common.serialization.StringSerializer +spring.kafka.producer.value-serializer=org.apache.kafka.common.serialization.StringSerializer +spring.kafka.producer.group-id=group_id +topic.name.producer=transactions + +spring.data.cassandra.keyspace-name=banking +spring.data.cassandra.contact-points=${SPRING_CASSANDRA_HOST} +spring.data.cassandra.port=${SPRING_CASSANDRA_PORT} +# spring.data.cassandra.username=${SPRING_CASSANDRA_USER} +# spring.data.cassandra.password=${SPRING_CASSANDRA_PASSWORD} +spring.data.cassandra.cluster_name=${SPRING_CASSANDRA_CLUSTER} +spring.data.cassandra.local-datacenter=${SPRING_CASSANDRA_DATACENTER} + + +# Common Kafka Properties +auto.create.topics.enable=true +app.numberOfRatings=5000 +app.ratingStars=5 +app.numberOfCarts=2500 +app.transactionSearchIndexName=Trans +app.customerSearchIndexName=Cust +app.merchantSearchIndexName=Merch +app.accountSearchIndexName=Acct +app.emailSearchIndexName=Eml +app.phoneSearchIndexName=Phne +app.transactionReturnSearchIndexName=TransRet +app.disputeSearchIndexName=Disp +logging.level.org.springframework=INFO +logging.level.com.jphaugla=DEBUG +logging.pattern.console=%d{yyyy-MM-dd HH:mm:ss} - %msg%n +#server.ssl.key-store=./src/main/resources/ssl/client-keystore.p12 +#server.ssl.key-store-password=${KEYSTORE_PASSWORD} +#server.ssl.trust-store=./src/main/resources/ssl/client-truststore.p12 +#server.ssl.trust-store-password=${TRUSTSTORE_PASSWORD} + diff --git a/jdk_17_maven/cs/rest/digitalbanking/src/main/resources/ssl/generatekeystore.sh b/jdk_17_maven/cs/rest/digitalbanking/src/main/resources/ssl/generatekeystore.sh new file mode 100644 index 000000000..9e4bdc8f1 --- /dev/null +++ b/jdk_17_maven/cs/rest/digitalbanking/src/main/resources/ssl/generatekeystore.sh @@ -0,0 +1,5 @@ +openssl pkcs12 -export \ + -in ./client_cert_app_001.pem \ + -inkey ./client_key_app_001.pem \ + -out client-keystore.p12 \ + -name "APP_01_P12" diff --git a/jdk_17_maven/cs/rest/digitalbanking/src/main/resources/ssl/generatepems.sh b/jdk_17_maven/cs/rest/digitalbanking/src/main/resources/ssl/generatepems.sh new file mode 100644 index 000000000..f7f975da8 --- /dev/null +++ b/jdk_17_maven/cs/rest/digitalbanking/src/main/resources/ssl/generatepems.sh @@ -0,0 +1,7 @@ +openssl req \ + -nodes \ + -newkey rsa:2048 \ + -keyout client_key_app_001.pem \ + -x509 \ + -days 36500 \ + -out client_cert_app_001.pem diff --git a/jdk_17_maven/cs/rest/digitalbanking/src/main/resources/ssl/generatetrust.sh b/jdk_17_maven/cs/rest/digitalbanking/src/main/resources/ssl/generatetrust.sh new file mode 100644 index 000000000..052afc9d7 --- /dev/null +++ b/jdk_17_maven/cs/rest/digitalbanking/src/main/resources/ssl/generatetrust.sh @@ -0,0 +1,8 @@ +keytool -genkey \ + -dname "cn=CLIENT_APP_01" \ + -alias truststorekey \ + -keyalg RSA \ + -keystore ./client-truststore.p12 \ + -keypass ${KEYSTORE_PASSWORD} \ + -storepass ${TRUSTSTORE_PASSWORD} \ + -storetype pkcs12 diff --git a/jdk_17_maven/cs/rest/digitalbanking/src/main/resources/ssl/importkey.sh b/jdk_17_maven/cs/rest/digitalbanking/src/main/resources/ssl/importkey.sh new file mode 100644 index 000000000..6bca0032f --- /dev/null +++ b/jdk_17_maven/cs/rest/digitalbanking/src/main/resources/ssl/importkey.sh @@ -0,0 +1,4 @@ +keytool -import \ + -keystore ./client-truststore.p12 \ + -file ./proxy_cert.pem \ + -alias redis-cluster-crt

fQ*`r1WD+n0a!ge_QBXP^AhL-yqh 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 literal 0 HcmV?d00001 diff --git a/jdk_17_maven/cs/rest/digitalbanking/images/Springindexes.png b/jdk_17_maven/cs/rest/digitalbanking/images/Springindexes.png new file mode 100644 index 0000000000000000000000000000000000000000..ce9f89bedd0fa1d8d0c52a39f6968eef1225a3e0 GIT binary patch literal 104009 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 F@NW~gFMI$1 literal 0 HcmV?d00001 diff --git a/jdk_17_maven/cs/rest/digitalbanking/images/deployment.png b/jdk_17_maven/cs/rest/digitalbanking/images/deployment.png new file mode 100644 index 0000000000000000000000000000000000000000..a4d9028cab8b293bc33bfe420411ed1ef3c3ac18 GIT binary patch literal 223326 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