From 06d7ab73f063e394e3f48b88e7c58365c8812f57 Mon Sep 17 00:00:00 2001 From: Mikhail Trofimov Date: Mon, 2 Jun 2025 15:08:57 +0300 Subject: [PATCH] initial commit --- .idea/.gitignore | 8 ++++ .idea/compiler.xml | 22 +++++++++ .idea/dataSources.xml | 17 +++++++ .idea/encodings.xml | 6 +++ .idea/jarRepositories.xml | 25 +++++++++++ .idea/misc.xml | 12 +++++ .idea/vcs.xml | 4 ++ HELP.md | 26 +++++++++++ target/classes/application.properties | 15 +++++++ target/classes/credit_tracker_db.ddl | 42 ++++++++++++++++++ .../CreditTrackerApplication.class | Bin 0 -> 772 bytes .../datasource/IndicDataSourceConfig.class | Bin 0 -> 4008 bytes .../datasource/SignalDataSourceConfig.class | Bin 0 -> 4010 bytes .../settings/CreditTrackerSettings.class | Bin 0 -> 1462 bytes .../config/settings/DataSourceSettings.class | Bin 0 -> 1988 bytes 15 files changed, 177 insertions(+) create mode 100644 .idea/.gitignore create mode 100644 .idea/compiler.xml create mode 100644 .idea/dataSources.xml create mode 100644 .idea/encodings.xml create mode 100644 .idea/jarRepositories.xml create mode 100644 .idea/misc.xml create mode 100644 .idea/vcs.xml create mode 100644 HELP.md create mode 100644 target/classes/application.properties create mode 100644 target/classes/credit_tracker_db.ddl create mode 100644 target/classes/ru/nbch/credit_tracker/CreditTrackerApplication.class create mode 100644 target/classes/ru/nbch/credit_tracker/config/datasource/IndicDataSourceConfig.class create mode 100644 target/classes/ru/nbch/credit_tracker/config/datasource/SignalDataSourceConfig.class create mode 100644 target/classes/ru/nbch/credit_tracker/config/settings/CreditTrackerSettings.class create mode 100644 target/classes/ru/nbch/credit_tracker/config/settings/DataSourceSettings.class diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..13566b8 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/.idea/compiler.xml b/.idea/compiler.xml new file mode 100644 index 0000000..7f597d6 --- /dev/null +++ b/.idea/compiler.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/dataSources.xml b/.idea/dataSources.xml new file mode 100644 index 0000000..fe7be77 --- /dev/null +++ b/.idea/dataSources.xml @@ -0,0 +1,17 @@ + + + + + postgresql + true + org.postgresql.Driver + jdbc:postgresql://10.200.200.133:5432/credit_tracker + + + + + + $ProjectFileDir$ + + + \ No newline at end of file diff --git a/.idea/encodings.xml b/.idea/encodings.xml new file mode 100644 index 0000000..63e9001 --- /dev/null +++ b/.idea/encodings.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml new file mode 100644 index 0000000..dca7785 --- /dev/null +++ b/.idea/jarRepositories.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..67e1e61 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,12 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..d843f34 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/HELP.md b/HELP.md new file mode 100644 index 0000000..782152b --- /dev/null +++ b/HELP.md @@ -0,0 +1,26 @@ +# Getting Started + +### Reference Documentation +For further reference, please consider the following sections: + +* [Official Apache Maven documentation](https://maven.apache.org/guides/index.html) +* [Spring Boot Maven Plugin Reference Guide](https://docs.spring.io/spring-boot/3.4.6/maven-plugin) +* [Create an OCI image](https://docs.spring.io/spring-boot/3.4.6/maven-plugin/build-image.html) +* [Spring Web](https://docs.spring.io/spring-boot/3.4.6/reference/web/servlet.html) +* [MyBatis Framework](https://mybatis.org/spring-boot-starter/mybatis-spring-boot-autoconfigure/) + +### Guides +The following guides illustrate how to use some features concretely: + +* [Building a RESTful Web Service](https://spring.io/guides/gs/rest-service/) +* [Serving Web Content with Spring MVC](https://spring.io/guides/gs/serving-web-content/) +* [Building REST services with Spring](https://spring.io/guides/tutorials/rest/) +* [MyBatis Quick Start](https://github.com/mybatis/spring-boot-starter/wiki/Quick-Start) + +### Maven Parent overrides + +Due to Maven's design, elements are inherited from the parent POM to the project POM. +While most of the inheritance is fine, it also inherits unwanted elements like `` and `` from the parent. +To prevent this, the project POM contains empty overrides for these elements. +If you manually switch to a different parent and actually want the inheritance, you need to remove those overrides. + diff --git a/target/classes/application.properties b/target/classes/application.properties new file mode 100644 index 0000000..2e2b862 --- /dev/null +++ b/target/classes/application.properties @@ -0,0 +1,15 @@ +spring.application.name=credit_tracker + + +# datasources +# indic +ct.indic-data-source-settings.driver=com.ibm.db2.jcc.DB2Driver +ct.indic-data-source-settings.url=jdbc:db2://10.230.227.100:2668/cprosd22:currentSchema=INDIC; +ct.indic-data-source-settings.username=ros9appl +ct.indic-data-source-settings.password=R0s9Appl + +# signal +ct.signal-data-source-settings.driver=org.postgresql.Driver +ct.signal-data-source-settings.url=jdbc:postgresql://10.200.200.133:5432/credit_tracker +ct.signal-data-source-settings.username=credit_tracker_user +ct.signal-data-source-settings.password= diff --git a/target/classes/credit_tracker_db.ddl b/target/classes/credit_tracker_db.ddl new file mode 100644 index 0000000..3fc3c32 --- /dev/null +++ b/target/classes/credit_tracker_db.ddl @@ -0,0 +1,42 @@ +-- Create signals_user_packages +-- Хранит основную информацию о каждом пакете мониторинга, установленном клиентом +CREATE TABLE signals_user_packages ( + id SERIAL PRIMARY KEY, -- внутренний идентификатор в таблице + membercode VARCHAR(255), -- логин клиента + package_name VARCHAR(255), -- имя пакета + created_at TIMESTAMP, -- дата и время первичной регистрации пакета + status VARCHAR(255), -- статус пакета: ON_MONITORING, REJECTED, PROCESSING, DELETED, ERROR + deactivated_at TIMESTAMP, -- дата и время удаления пакета + last_downloaded_report VARCHAR(255) -- имя последнего успешно загруженного отчёта из оф. сервиса по пакету +); + +-- Create signals_phone_fid_map +CREATE TABLE signals_phone_fid_map ( + id SERIAL PRIMARY KEY, -- внутренний идентификатор в таблице + package_id INTEGER NOT NULL, -- идентификатор пакета + subject_id VARCHAR(255), -- идентификатор субъекта из XML + phone VARCHAR(255), -- номер телефона + fid VARCHAR(255), -- найденный FID или NULL + flag_debt5000 SMALLINT, -- 1, если есть активная просрочка > 5000 руб., иначе 0 + flag_90_12 SMALLINT, -- 1, если по субъекту когда-либо была просрочка 90+ дней за последний год, иначе – 0 + calculated_at TIMESTAMP, -- дата последнего расчёта флагов + CONSTRAINT fk_signals_user_packages + FOREIGN KEY (package_id) + REFERENCES signals_user_packages(id) +); + +-- Create signals_hits +CREATE TABLE signals_hits ( + id SERIAL PRIMARY KEY, -- внутренний идентификатор в таблице + package_id INTEGER NOT NULL, -- идентификатор пакета + subject_id VARCHAR(255), -- идентификатор субъекта, по которому сработал сигнал + signal_type INTEGER, -- тип сигнала + response_sent_at TIMESTAMP, -- дата и время формирования отчета с данным сигналом + report_file_name VARCHAR(255), -- имя XML-файла отчёта, в который вошел данный сигнал + CONSTRAINT fk_signals_user_packages + FOREIGN KEY (package_id) + REFERENCES signals_user_packages(id) +); + +-- Create index on response_sent_at +CREATE INDEX idx_signals_hits_response_sent_at ON signals_hits(response_sent_at); \ No newline at end of file diff --git a/target/classes/ru/nbch/credit_tracker/CreditTrackerApplication.class b/target/classes/ru/nbch/credit_tracker/CreditTrackerApplication.class new file mode 100644 index 0000000000000000000000000000000000000000..6607eff8e685194f7b960224facad0488704ae26 GIT binary patch literal 772 zcmb7CO-~y!5Pc2_8$u{Fd{a1Z3pv#4rI%2o5{c9DA%enzL*?C=jbUR)UN7*sdTPai zAJ89#7%xcdAso8W&S+*lZ|wKx-}B=WfFIatpn{nI)h23~WmviqcY>!vC;T+Jk+EZ# z-B((<1BRLQ-XK7of!mzxC?4_H%As<=aLVWg8ki5zY+?bQ z7&^u#JeydhlWQx+^4{269vS0!zetukX{gOLL(~r6FV;&%mUXX6nZEO2-Mw%ca%{Ad z503YYzE(+YMU=|Y2uk~Mm!aA-L&>lhDlJd)aU|`9Kg-YxO)S!Zu*%18$*LQvjNx1O zpJez!W1;9#Ywc-o7*Ji~~RKBJ0bbmd|9HuLsb=GDUM(!773H=I;dR literal 0 HcmV?d00001 diff --git a/target/classes/ru/nbch/credit_tracker/config/datasource/IndicDataSourceConfig.class b/target/classes/ru/nbch/credit_tracker/config/datasource/IndicDataSourceConfig.class new file mode 100644 index 0000000000000000000000000000000000000000..b9099c5fe1f86a91ccb8264520c0065ae199bdcd GIT binary patch literal 4008 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 Xh3tp8dW+w`=lc(#^?$^leBAyYonn4d literal 0 HcmV?d00001 diff --git a/target/classes/ru/nbch/credit_tracker/config/settings/CreditTrackerSettings.class b/target/classes/ru/nbch/credit_tracker/config/settings/CreditTrackerSettings.class new file mode 100644 index 0000000000000000000000000000000000000000..29f4a666f22ac47db2cbae30a282bac9d9992f65 GIT binary patch literal 1462 zcmbtTZEq4m5S~5WEFRLL))st!3)IB@<_Bp>48DW}Yf~D&n!URPw!kjgTWbARnrKY? z;1BRe8E5a%1~?*#xn%ctXXlw`o|*ai>-!G?IDp4_a3Ga~v`l}wa+gs_4b;`%g%Mn@rnyYOK>L?eaS}4uL$fOPo)uK z-W8$nM*M}8$}l683<Wy!nF}Rq=!5-JZMHa zPj!TG6k9*m38b4U-~@_oA^G8S>~Vd@sZz0tqzM%|B6Dj9Tt< z(^{qOLAACn{<3liUYSYPl4l9xmD(dU_SBHR;gX{qJg_dvr?avaW$cudY#Y`8AY1EV zQ@`bApn@Z2D`~h!eJdDnHJyCij<1C+Q#n!Mr*=>XJWFhpKRv?!_7t7#4%FjSqT{L# zoAaLa7Iq%uWG9;U#5n=SH*gO--@&8%G#@h_R!zRr0yps%HSQkF7 e!3@5*0PnzEjO$<_ZQ+XecOUl$DAL0a9{mRJ!e=c2 literal 0 HcmV?d00001 diff --git a/target/classes/ru/nbch/credit_tracker/config/settings/DataSourceSettings.class b/target/classes/ru/nbch/credit_tracker/config/settings/DataSourceSettings.class new file mode 100644 index 0000000000000000000000000000000000000000..cb979ab6dae58e7f988a5641e36cf48e89887847 GIT binary patch literal 1988 zcmbtVTT|0e5dIFmq?BMwxk*Jp1#QD6qIkg|Dxf1H3L^{;`rxGLkp@aqPf{HJlMgZ@ z;|ve}0DqL@o+gDbREB|vbkFYDZ*OOJ`{(cBZvap6GL1IG6vR~|kYvbin|r2SHJvT} zJ-1v@W=PK2j_uDg#0tgDcBIg*Ag!VUD#NU(>rTn4=$7DR+yCSX)7s%ew_NA5y`_8H z_ibm()0a%&TzBij;_IP^AyxOdaLirKkXt!+yY35u7}C)d6&dLzRWm*BD+MEkT`F=? z7^{n_SRRSXc$cLQq-tA&*dhiVj0hbP@!Q!$9^_ZTx^)7YU5d5%dBpi!j^m}jQbUvvNA659@M69xnFV1Yo?(7@wp&_J%tv})M(me zhTdqxkwP%{Wb=hr4C$a-U)eH`{?qL{B^#C=sW~Ls1=saGYX4dgnU_i8ei}1)px~j3 zM|jLIeB9)s?)dgD*8_hcgrU9Ew8F3-4cT_~+#Rk5imy$lT;<;AitFywYsQ%m7XmlF z)%X(kEMeDtS41I;Rhq4+AZ&+^5wk74pO}fTYAHNn7;H|p(HvTX2Gt0LGsB?J*GXTN zzHSC}*>SjN1i?K8FBry-tJK18GiwEl3`1wD((?o*!ZhuPHkz$Ctq$5-bjr!i(x9|V z8kCj@(G(ah!keUhi?}M$1kt?q3rrh7fTB$tpi`SXKvo-wAE0}mZrd; oI