geek-custom-api-core 0.0.45 → 0.0.47

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/.history/{package_20260115025656.json → package_20260219172011.json} +3 -3
  2. package/.history/{package_20260115025802.json → package_20260219172015.json} +3 -3
  3. package/.history/package_20260219173525.json +97 -0
  4. package/.history/sql/deposit_20260214030527.sql +122 -0
  5. package/.history/sql/deposit_20260214050226.sql +120 -0
  6. package/.history/sql/deposit_20260215014103.sql +121 -0
  7. package/.history/sql/deposit_20260215030109.sql +122 -0
  8. package/.history/sql/deposit_20260215040258.sql +123 -0
  9. package/.history/sql/deposit_20260215043546.sql +124 -0
  10. package/.history/sql/deposit_20260215045642.sql +125 -0
  11. package/dist/api/app/deposit/deposit.batch.service.d.ts +4 -0
  12. package/dist/api/app/deposit/deposit.batch.service.js +46 -0
  13. package/dist/api/app/deposit/deposit.batch.service.js.map +1 -0
  14. package/dist/api/app/deposit/deposit.controller.d.ts +16 -3
  15. package/dist/api/app/deposit/deposit.controller.js +167 -26
  16. package/dist/api/app/deposit/deposit.controller.js.map +1 -1
  17. package/dist/api/app/deposit/deposit.module.js +2 -1
  18. package/dist/api/app/deposit/deposit.module.js.map +1 -1
  19. package/dist/api/app/deposit/deposit.service.d.ts +18 -5
  20. package/dist/api/app/deposit/deposit.service.js +386 -229
  21. package/dist/api/app/deposit/deposit.service.js.map +1 -1
  22. package/dist/api/app/deposit/dto/depositCouponCodeSearch.dto.js.map +1 -1
  23. package/dist/api/app/deposit/dto/depositManager.dto.d.ts +1 -1
  24. package/dist/api/app/deposit/dto/depositManager.dto.js +3 -3
  25. package/dist/api/app/deposit/dto/depositManager.dto.js.map +1 -1
  26. package/dist/api/app/deposit/dto/depositOrderUse.dto.d.ts +1 -0
  27. package/dist/api/app/deposit/dto/depositOrderUse.dto.js +8 -7
  28. package/dist/api/app/deposit/dto/depositOrderUse.dto.js.map +1 -1
  29. package/dist/api/app/deposit/entity/depositOrder.entity.d.ts +1 -0
  30. package/dist/api/app/deposit/entity/depositOrder.entity.js +10 -0
  31. package/dist/api/app/deposit/entity/depositOrder.entity.js.map +1 -1
  32. package/dist/api/app/deposit/entity/depositOrderDetail.entity.d.ts +10 -4
  33. package/dist/api/app/deposit/entity/depositOrderDetail.entity.js +57 -12
  34. package/dist/api/app/deposit/entity/depositOrderDetail.entity.js.map +1 -1
  35. package/dist/common/config/load-secrets.js +5 -1
  36. package/dist/common/config/load-secrets.js.map +1 -1
  37. package/dist/tsconfig.build.tsbuildinfo +1 -1
  38. package/package.json +4 -3
  39. package/sql/deposit.sql +8 -4
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "name": "geek-custom-api-core",
3
- "version": "0.0.37",
3
+ "version": "0.0.45",
4
4
  "description": "",
5
5
  "author": "",
6
6
  "license": "UNLICENSED",
7
7
  "main": "dist/index.js",
8
8
  "types": "dist/index.d.ts",
9
9
  "engines": {
10
- "node": "18.x"
10
+ "node": ">=22.0.0"
11
11
  },
12
12
  "scripts": {
13
13
  "build": "nest build",
@@ -55,7 +55,7 @@
55
55
  "@types/express": "^4.17.13",
56
56
  "@types/jest": "^29.5.0",
57
57
  "@types/multer": "^2.0.0",
58
- "@types/node": "^18.19.0",
58
+ "@types/node": "^22.0.0",
59
59
  "@types/passport-jwt": "^3.0.9",
60
60
  "@types/supertest": "^2.0.12",
61
61
  "@typescript-eslint/eslint-plugin": "^7.18.0",
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "name": "geek-custom-api-core",
3
- "version": "0.0.38",
3
+ "version": "0.0.46",
4
4
  "description": "",
5
5
  "author": "",
6
6
  "license": "UNLICENSED",
7
7
  "main": "dist/index.js",
8
8
  "types": "dist/index.d.ts",
9
9
  "engines": {
10
- "node": "18.x"
10
+ "node": ">=22.0.0"
11
11
  },
12
12
  "scripts": {
13
13
  "build": "nest build",
@@ -55,7 +55,7 @@
55
55
  "@types/express": "^4.17.13",
56
56
  "@types/jest": "^29.5.0",
57
57
  "@types/multer": "^2.0.0",
58
- "@types/node": "^18.19.0",
58
+ "@types/node": "^22.0.0",
59
59
  "@types/passport-jwt": "^3.0.9",
60
60
  "@types/supertest": "^2.0.12",
61
61
  "@typescript-eslint/eslint-plugin": "^7.18.0",
@@ -0,0 +1,97 @@
1
+ {
2
+ "name": "geek-custom-api-core",
3
+ "version": "0.0.47",
4
+ "description": "",
5
+ "author": "",
6
+ "license": "UNLICENSED",
7
+ "main": "dist/index.js",
8
+ "types": "dist/index.d.ts",
9
+ "engines": {
10
+ "node": ">=22.0.0"
11
+ },
12
+ "scripts": {
13
+ "build": "nest build",
14
+ "format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"",
15
+ "lint": "eslint \"{src,apps,libs,test}/**/*.ts\"",
16
+ "lint:fix": "eslint \"{src,apps,libs,test}/**/*.ts\" --fix",
17
+ "start": "nest start"
18
+ },
19
+ "dependencies": {
20
+ "@aws-sdk/client-s3": "^3.400.0",
21
+ "@aws-sdk/client-secrets-manager": "^3.939.0",
22
+ "@nestjs/axios": "^3.0.2",
23
+ "@nestjs/common": "^10.3.9",
24
+ "@nestjs/config": "^3.2.2",
25
+ "@nestjs/core": "^10.3.9",
26
+ "@nestjs/jwt": "^10.1.0",
27
+ "@nestjs/mapped-types": "^2.0.2",
28
+ "@nestjs/passport": "^10.0.0",
29
+ "@nestjs/platform-express": "^10.3.9",
30
+ "@nestjs/schedule": "^6.1.1",
31
+ "@nestjs/swagger": "^7.4.2",
32
+ "@nestjs/typeorm": "^10.0.0",
33
+ "axios": "^1.4.0",
34
+ "bcrypt": "^5.1.0",
35
+ "class-transformer": "^0.5.1",
36
+ "class-validator": "^0.14.0",
37
+ "date-fns": "^2.30.0",
38
+ "dayjs": "^1.11.10",
39
+ "fast-xml-parser": "^4.3.6",
40
+ "ioredis": "^5.4.1",
41
+ "moment": "^2.29.4",
42
+ "moment-timezone": "^0.5.46",
43
+ "multer-s3": "^3.0.1",
44
+ "mysql2": "^3.6.0",
45
+ "passport-jwt": "^4.0.1",
46
+ "reflect-metadata": "^0.1.13",
47
+ "rxjs": "^7.8.1",
48
+ "typeorm": "^0.3.17",
49
+ "uuid": "^9.0.1",
50
+ "xlsx": "^0.18.5"
51
+ },
52
+ "devDependencies": {
53
+ "@nestjs/cli": "^10.0.0",
54
+ "@nestjs/schematics": "^9.0.0",
55
+ "@types/bcrypt": "^5.0.0",
56
+ "@types/express": "^4.17.13",
57
+ "@types/jest": "^29.5.0",
58
+ "@types/multer": "^2.0.0",
59
+ "@types/node": "^22.0.0",
60
+ "@types/passport-jwt": "^3.0.9",
61
+ "@types/supertest": "^2.0.12",
62
+ "@typescript-eslint/eslint-plugin": "^7.18.0",
63
+ "@typescript-eslint/parser": "^7.18.0",
64
+ "eslint": "^8.57.0",
65
+ "eslint-config-prettier": "^9.1.0",
66
+ "eslint-plugin-prettier": "^5.0.0",
67
+ "jest": "^29.7.0",
68
+ "prettier": "^3.2.5",
69
+ "source-map-support": "^0.5.21",
70
+ "supertest": "^7.1.3",
71
+ "ts-jest": "^29.1.2",
72
+ "ts-loader": "^9.5.1",
73
+ "ts-node": "^10.9.2",
74
+ "tsconfig-paths": "^4.2.0",
75
+ "typescript": "^5.3.3",
76
+ "webpack": "^5.90.0",
77
+ "webpack-cli": "^5.1.4",
78
+ "webpack-node-externals": "^3.0.0"
79
+ },
80
+ "jest": {
81
+ "moduleFileExtensions": [
82
+ "js",
83
+ "json",
84
+ "ts"
85
+ ],
86
+ "rootDir": "src",
87
+ "testRegex": ".*\\.spec\\.ts$",
88
+ "transform": {
89
+ "^.+\\.(t|j)s$": "ts-jest"
90
+ },
91
+ "collectCoverageFrom": [
92
+ "**/*.(t|j)s"
93
+ ],
94
+ "coverageDirectory": "../coverage",
95
+ "testEnvironment": "node"
96
+ }
97
+ }
@@ -0,0 +1,122 @@
1
+ CREATE TABLE gs_depositManager(
2
+ sno INT PRIMARY KEY AUTO_INCREMENT,
3
+ partnerSno INT NOT NULL COMMENT '고객사 번호',
4
+ memberNo INT NOT NULL COMMENT '회원번호',
5
+ memberId VARCHAR(50) NULL COMMENT '회원 아이디',
6
+ memberName VARCHAR(50) NULL COMMENT '회원명',
7
+ depositType ENUM('ISSUE', 'USE', 'REFUND', 'ADJUST', 'EXPIRED') NOT NULL COMMENT '거래유형',
8
+ source ENUM('ADMIN', 'ORDER', 'SYSTEM') NOT NULL DEFAULT 'ADMIN' COMMENT '발생 주체',
9
+ managerSno INT NOT NULL COMMENT '관리자 번호',
10
+ refType ENUM('JOB_DETAIL','ORDER','SYSTEM') NOT NULL COMMENT '참조 타입',
11
+ refSno INT NOT NULL COMMENT 'jobDetailSno 또는 주문 Sno',
12
+ depositAmount INT NOT NULL COMMENT '증감 금액 +,-',
13
+ balanceAfter INT NOT NULL COMMENT '거래 후 잔액',
14
+ reason VARCHAR(200) NOT NULL COMMENT '사유',
15
+ regDt TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
16
+ updateDt TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
17
+ INDEX idx_member_partner (partnerSno, memberNo, regDt)
18
+ )COMMENT='예치금 원장';
19
+
20
+ CREATE TABLE gs_depositJob(
21
+ sno INT PRIMARY KEY AUTO_INCREMENT,
22
+ jobName VARCHAR(100) NOT NULL COMMENT '작업명',
23
+ jobType ENUM('SINGLE','EXCEL') NOT NULL DEFAULT 'SINGLE' COMMENT '작업유형',
24
+ managerSno INT NOT NULL COMMENT '실행 관리자',
25
+ totalCount INT NOT NULL COMMENT '총 건수',
26
+ successCount INT NOT NULL COMMENT '성공 건수',
27
+ failCount INT NOT NULL COMMENT '실패 건수',
28
+ status ENUM('READY','PROCESSING','DONE') NOT NULL DEFAULT 'READY' COMMENT '작업 상태',
29
+ regDt TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
30
+ updateDt TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
31
+ )COMMENT='예치금 지급 작업';
32
+
33
+
34
+ CREATE TABLE gs_depositJobDetail(
35
+ sno INT PRIMARY KEY AUTO_INCREMENT,
36
+ jobSno INT NOT NULL COMMENT '작업 번호',
37
+ partnerSno INT NOT NULL COMMENT '고객사 번호',
38
+ memberNo INT NOT NULL COMMENT '회원번호',
39
+ memberId VARCHAR(50) NULL COMMENT '회원 아이디',
40
+ memberName VARCHAR(50) NULL COMMENT '회원명',
41
+ depositAmount INT NOT NULL COMMENT '증감 금액 +,-',
42
+ reason VARCHAR(200) NOT NULL COMMENT '사유',
43
+ result ENUM('SUCCESS', 'FAIL') NOT NULL DEFAULT 'SUCCESS' COMMENT '결과',
44
+ failReason TEXT NULL COMMENT '실패 사유',
45
+ expiredDt TIMESTAMP NULL COMMENT '만료일시',
46
+ couponSno INT NULL COMMENT '사용된 쿠폰 sno',
47
+ expireFl ENUM('Y','N') NOT NULL DEFAULT 'N' COMMENT '만료 처리 여부',
48
+ regDt TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
49
+ updateDt TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
50
+ INDEX idx_job (jobSno),
51
+ INDEX idx_member (memberNo),
52
+ INDEX idx_partner_member (partnerSno, memberNo),
53
+ INDEX idx_expire (expiredDt, expireFl)
54
+ )COMMENT='예치금 지급 단위';
55
+
56
+
57
+ CREATE TABLE gs_depositOrder (
58
+ sno INT PRIMARY KEY AUTO_INCREMENT,
59
+ orderNo VARCHAR(50) NOT NULL COMMENT '주문번호',
60
+ partnerSno INT NOT NULL COMMENT '고객사 번호',
61
+ memberNo INT NOT NULL COMMENT '회원번호',
62
+ memberId VARCHAR(50) NULL COMMENT '회원 아이디',
63
+ memberName VARCHAR(50) NULL COMMENT '회원명',
64
+ usedAmount INT NOT NULL COMMENT '사용 금액',
65
+ orderStatus ENUM('PENDING','DONE') NOT NULL DEFAULT 'PENDING' COMMENT '주문 상태',
66
+ regDt TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
67
+ updateDt TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
68
+ )COMMENT='주문 예치금 사용 요약';
69
+
70
+ CREATE TABLE gs_depositOrderDetail (
71
+ sno BIGINT AUTO_INCREMENT PRIMARY KEY,
72
+ orderSno INT NOT NULL COMMENT '주문 번호',
73
+ partnerSno INT NOT NULL COMMENT '고객사 번호',
74
+ memberNo INT NOT NULL COMMENT '회원번호',
75
+ memberId VARCHAR(50) NULL COMMENT '회원 아이디',
76
+ memberName VARCHAR(50) NULL COMMENT '회원명',
77
+ orderGoodsNo VARCHAR(50) NOT NULL,
78
+ orderGoodsName VARCHAR(200) NOT NULL,
79
+ orderAmount INT NOT NULL COMMENT '안분 기준 주문 금액',
80
+ issueDetailSno INT NOT NULL COMMENT 'gs_depositJobDetail.sno',
81
+ usedDepositAmount INT NOT NULL COMMENT '해당 지급건에서 차감된 금액',
82
+ allocatedRatio DECIMAL(10,6) NOT NULL COMMENT '안분 비율',
83
+ allocatedAmount INT NOT NULL COMMENT '주문에 배정된 예치금',
84
+ expireDt TIMESTAMP NULL COMMENT '지급건 만료일 스냅샷',
85
+ refundYn ENUM('Y','N') NOT NULL DEFAULT 'N' COMMENT '환불 여부',
86
+ refundDt TIMESTAMP NULL COMMENT '환불일시',
87
+ regDt TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
88
+ updateDt TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
89
+ INDEX idx_member (memberNo),
90
+ INDEX idx_order (orderSno),
91
+ INDEX idx_issue (issueDetailSno)
92
+ );
93
+
94
+ CREATE TABLE gs_depositCouponManager (
95
+ sno INT PRIMARY KEY AUTO_INCREMENT,
96
+ partnerSno INT NOT NULL COMMENT '고객사 번호',
97
+ title VARCHAR(100) NOT NULL COMMENT '쿠폰명',
98
+ depositAmount INT NOT NULL COMMENT '지급 예치금',
99
+ registerStartDt TIMESTAMP NOT NULL COMMENT '쿠폰 등록 시작일',
100
+ registerEndDt TIMESTAMP NOT NULL COMMENT '쿠폰 등록 종료일',
101
+ expireAfterDays INT NOT NULL COMMENT '등록 후 만료까지 일수 (n일)',
102
+ issueLimit INT NULL COMMENT '총 발급 수량 (NULL = 무제한)',
103
+ issueCount INT NOT NULL DEFAULT 0 COMMENT '발급된 수량',
104
+ usedFl ENUM('Y','N') NOT NULL DEFAULT 'N' COMMENT '사용 여부',
105
+ regDt TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
106
+ updateDt TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
107
+ ) COMMENT='예치금 쿠폰 정책';
108
+
109
+ CREATE TABLE gs_depositCoupon (
110
+ sno INT PRIMARY KEY AUTO_INCREMENT,
111
+ policySno INT NOT NULL COMMENT '쿠폰 정책 번호',
112
+ partnerSno INT NOT NULL COMMENT '고객사 번호',
113
+ couponCode VARCHAR(20) NOT NULL COMMENT '랜덤 숫자 쿠폰 코드',
114
+ usedFl ENUM('Y','N') NOT NULL DEFAULT 'N' COMMENT '사용 여부',
115
+ memberNo INT NULL COMMENT '사용 회원',
116
+ memberId VARCHAR(50) NULL COMMENT '회원 아이디',
117
+ memberName VARCHAR(50) NULL COMMENT '회원명',
118
+ regDt TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
119
+ updateDt TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '사용일',
120
+ UNIQUE KEY uk_coupon_member (sno, memberNo),
121
+ INDEX idx_policy (policySno)
122
+ ) COMMENT='예치금 랜덤 쿠폰';
@@ -0,0 +1,120 @@
1
+ CREATE TABLE gs_depositManager(
2
+ sno INT PRIMARY KEY AUTO_INCREMENT,
3
+ partnerSno INT NOT NULL COMMENT '고객사 번호',
4
+ memberNo INT NOT NULL COMMENT '회원번호',
5
+ memberId VARCHAR(50) NULL COMMENT '회원 아이디',
6
+ memberName VARCHAR(50) NULL COMMENT '회원명',
7
+ depositType ENUM('ISSUE', 'USE', 'REFUND', 'ADJUST', 'EXPIRED') NOT NULL COMMENT '거래유형',
8
+ source ENUM('ADMIN', 'ORDER', 'SYSTEM') NOT NULL DEFAULT 'ADMIN' COMMENT '발생 주체',
9
+ managerSno INT NOT NULL COMMENT '관리자 번호',
10
+ refType ENUM('JOB_DETAIL','ORDER','SYSTEM') NOT NULL COMMENT '참조 타입',
11
+ refSno INT NOT NULL COMMENT 'jobDetailSno 또는 주문 Sno',
12
+ depositAmount INT NOT NULL COMMENT '증감 금액 +,-',
13
+ balanceAfter INT NOT NULL COMMENT '거래 후 잔액',
14
+ reason VARCHAR(200) NOT NULL COMMENT '사유',
15
+ regDt TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
16
+ updateDt TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
17
+ INDEX idx_member_partner (partnerSno, memberNo, regDt)
18
+ )COMMENT='예치금 원장';
19
+
20
+ CREATE TABLE gs_depositJob(
21
+ sno INT PRIMARY KEY AUTO_INCREMENT,
22
+ jobName VARCHAR(100) NOT NULL COMMENT '작업명',
23
+ jobType ENUM('SINGLE','EXCEL') NOT NULL DEFAULT 'SINGLE' COMMENT '작업유형',
24
+ managerSno INT NOT NULL COMMENT '실행 관리자',
25
+ totalCount INT NOT NULL COMMENT '총 건수',
26
+ successCount INT NOT NULL COMMENT '성공 건수',
27
+ failCount INT NOT NULL COMMENT '실패 건수',
28
+ status ENUM('READY','PROCESSING','DONE') NOT NULL DEFAULT 'READY' COMMENT '작업 상태',
29
+ regDt TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
30
+ updateDt TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
31
+ )COMMENT='예치금 지급 작업';
32
+
33
+
34
+ CREATE TABLE gs_depositJobDetail(
35
+ sno INT PRIMARY KEY AUTO_INCREMENT,
36
+ jobSno INT NOT NULL COMMENT '작업 번호',
37
+ partnerSno INT NOT NULL COMMENT '고객사 번호',
38
+ memberNo INT NOT NULL COMMENT '회원번호',
39
+ memberId VARCHAR(50) NULL COMMENT '회원 아이디',
40
+ memberName VARCHAR(50) NULL COMMENT '회원명',
41
+ depositAmount INT NOT NULL COMMENT '증감 금액 +,-',
42
+ reason VARCHAR(200) NOT NULL COMMENT '사유',
43
+ result ENUM('SUCCESS', 'FAIL') NOT NULL DEFAULT 'SUCCESS' COMMENT '결과',
44
+ failReason TEXT NULL COMMENT '실패 사유',
45
+ expiredDt TIMESTAMP NULL COMMENT '만료일시',
46
+ couponSno INT NULL COMMENT '사용된 쿠폰 sno',
47
+ expireFl ENUM('Y','N') NOT NULL DEFAULT 'N' COMMENT '만료 처리 여부',
48
+ regDt TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
49
+ updateDt TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
50
+ INDEX idx_job (jobSno),
51
+ INDEX idx_member (memberNo),
52
+ INDEX idx_partner_member (partnerSno, memberNo),
53
+ INDEX idx_expire (expiredDt, expireFl)
54
+ )COMMENT='예치금 지급 단위';
55
+
56
+
57
+ CREATE TABLE gs_depositOrder (
58
+ sno INT PRIMARY KEY AUTO_INCREMENT,
59
+ orderNo VARCHAR(50) NOT NULL COMMENT '주문번호',
60
+ partnerSno INT NOT NULL COMMENT '고객사 번호',
61
+ memberNo INT NOT NULL COMMENT '회원번호',
62
+ memberId VARCHAR(50) NULL COMMENT '회원 아이디',
63
+ memberName VARCHAR(50) NULL COMMENT '회원명',
64
+ usedAmount INT NOT NULL COMMENT '사용 금액',
65
+ orderStatus ENUM('PENDING','DONE') NOT NULL DEFAULT 'PENDING' COMMENT '주문 상태',
66
+ regDt TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
67
+ updateDt TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
68
+ )COMMENT='주문 예치금 사용 요약';
69
+
70
+ CREATE TABLE gs_depositOrderDetail (
71
+ sno BIGINT AUTO_INCREMENT PRIMARY KEY,
72
+ orderSno INT NOT NULL COMMENT '주문 번호',
73
+ partnerSno INT NOT NULL COMMENT '고객사 번호',
74
+ memberNo INT NOT NULL COMMENT '회원번호',
75
+ orderProductNo VARCHAR(50) NOT NULL,
76
+ orderProductName VARCHAR(200) NOT NULL,
77
+ orderAmount INT NOT NULL COMMENT '안분 기준 주문 금액',
78
+ issueDetailSno INT NOT NULL COMMENT 'gs_depositJobDetail.sno',
79
+ usedDepositAmount INT NOT NULL COMMENT '해당 지급건에서 차감된 금액',
80
+ allocatedRatio DECIMAL(10,6) NOT NULL COMMENT '안분 비율',
81
+ allocatedAmount INT NOT NULL COMMENT '주문에 배정된 예치금',
82
+ expireDt TIMESTAMP NULL COMMENT '지급건 만료일 스냅샷',
83
+ refundYn ENUM('Y','N') NOT NULL DEFAULT 'N' COMMENT '환불 여부',
84
+ refundDt TIMESTAMP NULL COMMENT '환불일시',
85
+ regDt TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
86
+ updateDt TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
87
+ INDEX idx_member (memberNo),
88
+ INDEX idx_order (orderSno),
89
+ INDEX idx_issue (issueDetailSno)
90
+ );
91
+
92
+ CREATE TABLE gs_depositCouponManager (
93
+ sno INT PRIMARY KEY AUTO_INCREMENT,
94
+ partnerSno INT NOT NULL COMMENT '고객사 번호',
95
+ title VARCHAR(100) NOT NULL COMMENT '쿠폰명',
96
+ depositAmount INT NOT NULL COMMENT '지급 예치금',
97
+ registerStartDt TIMESTAMP NOT NULL COMMENT '쿠폰 등록 시작일',
98
+ registerEndDt TIMESTAMP NOT NULL COMMENT '쿠폰 등록 종료일',
99
+ expireAfterDays INT NOT NULL COMMENT '등록 후 만료까지 일수 (n일)',
100
+ issueLimit INT NULL COMMENT '총 발급 수량 (NULL = 무제한)',
101
+ issueCount INT NOT NULL DEFAULT 0 COMMENT '발급된 수량',
102
+ usedFl ENUM('Y','N') NOT NULL DEFAULT 'N' COMMENT '사용 여부',
103
+ regDt TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
104
+ updateDt TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
105
+ ) COMMENT='예치금 쿠폰 정책';
106
+
107
+ CREATE TABLE gs_depositCoupon (
108
+ sno INT PRIMARY KEY AUTO_INCREMENT,
109
+ policySno INT NOT NULL COMMENT '쿠폰 정책 번호',
110
+ partnerSno INT NOT NULL COMMENT '고객사 번호',
111
+ couponCode VARCHAR(20) NOT NULL COMMENT '랜덤 숫자 쿠폰 코드',
112
+ usedFl ENUM('Y','N') NOT NULL DEFAULT 'N' COMMENT '사용 여부',
113
+ memberNo INT NULL COMMENT '사용 회원',
114
+ memberId VARCHAR(50) NULL COMMENT '회원 아이디',
115
+ memberName VARCHAR(50) NULL COMMENT '회원명',
116
+ regDt TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
117
+ updateDt TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '사용일',
118
+ UNIQUE KEY uk_coupon_member (sno, memberNo),
119
+ INDEX idx_policy (policySno)
120
+ ) COMMENT='예치금 랜덤 쿠폰';
@@ -0,0 +1,121 @@
1
+ CREATE TABLE gs_depositManager(
2
+ sno INT PRIMARY KEY AUTO_INCREMENT,
3
+ partnerSno INT NOT NULL COMMENT '고객사 번호',
4
+ memberNo INT NOT NULL COMMENT '회원번호',
5
+ memberId VARCHAR(50) NULL COMMENT '회원 아이디',
6
+ memberName VARCHAR(50) NULL COMMENT '회원명',
7
+ depositType ENUM('ISSUE', 'USE', 'REFUND', 'ADJUST', 'EXPIRED') NOT NULL COMMENT '거래유형',
8
+ source ENUM('ADMIN', 'ORDER', 'SYSTEM') NOT NULL DEFAULT 'ADMIN' COMMENT '발생 주체',
9
+ managerSno INT NOT NULL COMMENT '관리자 번호',
10
+ refType ENUM('JOB_DETAIL','ORDER','SYSTEM') NOT NULL COMMENT '참조 타입',
11
+ refSno INT NOT NULL COMMENT 'jobDetailSno 또는 주문 Sno',
12
+ depositAmount INT NOT NULL COMMENT '증감 금액 +,-',
13
+ balanceAfter INT NOT NULL COMMENT '거래 후 잔액',
14
+ reason VARCHAR(200) NOT NULL COMMENT '사유',
15
+ regDt TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
16
+ updateDt TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
17
+ INDEX idx_member_partner (partnerSno, memberNo, regDt)
18
+ )COMMENT='예치금 원장';
19
+
20
+ CREATE TABLE gs_depositJob(
21
+ sno INT PRIMARY KEY AUTO_INCREMENT,
22
+ jobName VARCHAR(100) NOT NULL COMMENT '작업명',
23
+ jobType ENUM('SINGLE','EXCEL') NOT NULL DEFAULT 'SINGLE' COMMENT '작업유형',
24
+ managerSno INT NOT NULL COMMENT '실행 관리자',
25
+ totalCount INT NOT NULL COMMENT '총 건수',
26
+ successCount INT NOT NULL COMMENT '성공 건수',
27
+ failCount INT NOT NULL COMMENT '실패 건수',
28
+ status ENUM('READY','PROCESSING','DONE') NOT NULL DEFAULT 'READY' COMMENT '작업 상태',
29
+ regDt TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
30
+ updateDt TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
31
+ )COMMENT='예치금 지급 작업';
32
+
33
+
34
+ CREATE TABLE gs_depositJobDetail(
35
+ sno INT PRIMARY KEY AUTO_INCREMENT,
36
+ jobSno INT NOT NULL COMMENT '작업 번호',
37
+ partnerSno INT NOT NULL COMMENT '고객사 번호',
38
+ memberNo INT NOT NULL COMMENT '회원번호',
39
+ memberId VARCHAR(50) NULL COMMENT '회원 아이디',
40
+ memberName VARCHAR(50) NULL COMMENT '회원명',
41
+ depositAmount INT NOT NULL COMMENT '증감 금액 +,-',
42
+ reason VARCHAR(200) NOT NULL COMMENT '사유',
43
+ result ENUM('SUCCESS', 'FAIL') NOT NULL DEFAULT 'SUCCESS' COMMENT '결과',
44
+ failReason TEXT NULL COMMENT '실패 사유',
45
+ expiredDt TIMESTAMP NULL COMMENT '만료일시',
46
+ couponSno INT NULL COMMENT '사용된 쿠폰 sno',
47
+ expireFl ENUM('Y','N') NOT NULL DEFAULT 'N' COMMENT '만료 처리 여부',
48
+ regDt TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
49
+ updateDt TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
50
+ INDEX idx_job (jobSno),
51
+ INDEX idx_member (memberNo),
52
+ INDEX idx_partner_member (partnerSno, memberNo),
53
+ INDEX idx_expire (expiredDt, expireFl)
54
+ )COMMENT='예치금 지급 단위';
55
+
56
+
57
+ CREATE TABLE gs_depositOrder (
58
+ sno INT PRIMARY KEY AUTO_INCREMENT,
59
+ orderNo VARCHAR(50) NOT NULL COMMENT '주문번호',
60
+ partnerSno INT NOT NULL COMMENT '고객사 번호',
61
+ memberNo INT NOT NULL COMMENT '회원번호',
62
+ memberId VARCHAR(50) NULL COMMENT '회원 아이디',
63
+ memberName VARCHAR(50) NULL COMMENT '회원명',
64
+ usedAmount INT NOT NULL COMMENT '사용 금액',
65
+ orderStatus ENUM('PENDING','DONE') NOT NULL DEFAULT 'PENDING' COMMENT '주문 상태',
66
+ regDt TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
67
+ updateDt TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
68
+ )COMMENT='주문 예치금 사용 요약';
69
+
70
+ CREATE TABLE gs_depositOrderDetail (
71
+ sno BIGINT AUTO_INCREMENT PRIMARY KEY,
72
+ orderSno INT NOT NULL COMMENT '주문 번호',
73
+ partnerSno INT NOT NULL COMMENT '고객사 번호',
74
+ memberNo INT NOT NULL COMMENT '회원번호',
75
+ orderProductOptionNo VARCHAR(50) NOT NULL COMMENT '주문 상품 옵션 번호',
76
+ orderProductNo VARCHAR(50) NOT NULL,
77
+ orderProductName VARCHAR(200) NOT NULL,
78
+ orderAmount INT NOT NULL COMMENT '안분 기준 주문 금액',
79
+ issueDetailSno INT NOT NULL COMMENT 'gs_depositJobDetail.sno',
80
+ usedDepositAmount INT NOT NULL COMMENT '해당 지급건에서 차감된 금액',
81
+ allocatedRatio DECIMAL(10,6) NOT NULL COMMENT '안분 비율',
82
+ allocatedAmount INT NOT NULL COMMENT '주문에 배정된 예치금',
83
+ expireDt TIMESTAMP NULL COMMENT '지급건 만료일 스냅샷',
84
+ refundYn ENUM('Y','N') NOT NULL DEFAULT 'N' COMMENT '환불 여부',
85
+ refundDt TIMESTAMP NULL COMMENT '환불일시',
86
+ regDt TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
87
+ updateDt TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
88
+ INDEX idx_member (memberNo),
89
+ INDEX idx_order (orderSno),
90
+ INDEX idx_issue (issueDetailSno)
91
+ );
92
+
93
+ CREATE TABLE gs_depositCouponManager (
94
+ sno INT PRIMARY KEY AUTO_INCREMENT,
95
+ partnerSno INT NOT NULL COMMENT '고객사 번호',
96
+ title VARCHAR(100) NOT NULL COMMENT '쿠폰명',
97
+ depositAmount INT NOT NULL COMMENT '지급 예치금',
98
+ registerStartDt TIMESTAMP NOT NULL COMMENT '쿠폰 등록 시작일',
99
+ registerEndDt TIMESTAMP NOT NULL COMMENT '쿠폰 등록 종료일',
100
+ expireAfterDays INT NOT NULL COMMENT '등록 후 만료까지 일수 (n일)',
101
+ issueLimit INT NULL COMMENT '총 발급 수량 (NULL = 무제한)',
102
+ issueCount INT NOT NULL DEFAULT 0 COMMENT '발급된 수량',
103
+ usedFl ENUM('Y','N') NOT NULL DEFAULT 'N' COMMENT '사용 여부',
104
+ regDt TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
105
+ updateDt TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
106
+ ) COMMENT='예치금 쿠폰 정책';
107
+
108
+ CREATE TABLE gs_depositCoupon (
109
+ sno INT PRIMARY KEY AUTO_INCREMENT,
110
+ policySno INT NOT NULL COMMENT '쿠폰 정책 번호',
111
+ partnerSno INT NOT NULL COMMENT '고객사 번호',
112
+ couponCode VARCHAR(20) NOT NULL COMMENT '랜덤 숫자 쿠폰 코드',
113
+ usedFl ENUM('Y','N') NOT NULL DEFAULT 'N' COMMENT '사용 여부',
114
+ memberNo INT NULL COMMENT '사용 회원',
115
+ memberId VARCHAR(50) NULL COMMENT '회원 아이디',
116
+ memberName VARCHAR(50) NULL COMMENT '회원명',
117
+ regDt TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
118
+ updateDt TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '사용일',
119
+ UNIQUE KEY uk_coupon_member (sno, memberNo),
120
+ INDEX idx_policy (policySno)
121
+ ) COMMENT='예치금 랜덤 쿠폰';
@@ -0,0 +1,122 @@
1
+ CREATE TABLE gs_depositManager(
2
+ sno INT PRIMARY KEY AUTO_INCREMENT,
3
+ partnerSno INT NOT NULL COMMENT '고객사 번호',
4
+ memberNo INT NOT NULL COMMENT '회원번호',
5
+ memberId VARCHAR(50) NULL COMMENT '회원 아이디',
6
+ memberName VARCHAR(50) NULL COMMENT '회원명',
7
+ depositType ENUM('ISSUE', 'USE', 'REFUND', 'ADJUST', 'EXPIRED') NOT NULL COMMENT '거래유형',
8
+ source ENUM('ADMIN', 'ORDER', 'SYSTEM') NOT NULL DEFAULT 'ADMIN' COMMENT '발생 주체',
9
+ managerSno INT NOT NULL COMMENT '관리자 번호',
10
+ refType ENUM('JOB_DETAIL','ORDER','SYSTEM') NOT NULL COMMENT '참조 타입',
11
+ refSno INT NOT NULL COMMENT 'jobDetailSno 또는 주문 Sno',
12
+ depositAmount INT NOT NULL COMMENT '증감 금액 +,-',
13
+ balanceAfter INT NOT NULL COMMENT '거래 후 잔액',
14
+ reason VARCHAR(200) NOT NULL COMMENT '사유',
15
+ regDt TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
16
+ updateDt TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
17
+ INDEX idx_member_partner (partnerSno, memberNo, regDt)
18
+ )COMMENT='예치금 원장';
19
+
20
+ CREATE TABLE gs_depositJob(
21
+ sno INT PRIMARY KEY AUTO_INCREMENT,
22
+ jobName VARCHAR(100) NOT NULL COMMENT '작업명',
23
+ jobType ENUM('SINGLE','EXCEL') NOT NULL DEFAULT 'SINGLE' COMMENT '작업유형',
24
+ managerSno INT NOT NULL COMMENT '실행 관리자',
25
+ totalCount INT NOT NULL COMMENT '총 건수',
26
+ successCount INT NOT NULL COMMENT '성공 건수',
27
+ failCount INT NOT NULL COMMENT '실패 건수',
28
+ status ENUM('READY','PROCESSING','DONE') NOT NULL DEFAULT 'READY' COMMENT '작업 상태',
29
+ regDt TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
30
+ updateDt TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
31
+ )COMMENT='예치금 지급 작업';
32
+
33
+
34
+ CREATE TABLE gs_depositJobDetail(
35
+ sno INT PRIMARY KEY AUTO_INCREMENT,
36
+ jobSno INT NOT NULL COMMENT '작업 번호',
37
+ partnerSno INT NOT NULL COMMENT '고객사 번호',
38
+ memberNo INT NOT NULL COMMENT '회원번호',
39
+ memberId VARCHAR(50) NULL COMMENT '회원 아이디',
40
+ memberName VARCHAR(50) NULL COMMENT '회원명',
41
+ depositAmount INT NOT NULL COMMENT '증감 금액 +,-',
42
+ reason VARCHAR(200) NOT NULL COMMENT '사유',
43
+ result ENUM('SUCCESS', 'FAIL') NOT NULL DEFAULT 'SUCCESS' COMMENT '결과',
44
+ failReason TEXT NULL COMMENT '실패 사유',
45
+ expiredDt TIMESTAMP NULL COMMENT '만료일시',
46
+ couponSno INT NULL COMMENT '사용된 쿠폰 sno',
47
+ expireFl ENUM('Y','N') NOT NULL DEFAULT 'N' COMMENT '만료 처리 여부',
48
+ regDt TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
49
+ updateDt TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
50
+ INDEX idx_job (jobSno),
51
+ INDEX idx_member (memberNo),
52
+ INDEX idx_partner_member (partnerSno, memberNo),
53
+ INDEX idx_expire (expiredDt, expireFl)
54
+ )COMMENT='예치금 지급 단위';
55
+
56
+
57
+ CREATE TABLE gs_depositOrder (
58
+ sno INT PRIMARY KEY AUTO_INCREMENT,
59
+ orderNo VARCHAR(50) NOT NULL COMMENT '주문번호',
60
+ partnerSno INT NOT NULL COMMENT '고객사 번호',
61
+ memberNo INT NOT NULL COMMENT '회원번호',
62
+ memberId VARCHAR(50) NULL COMMENT '회원 아이디',
63
+ memberName VARCHAR(50) NULL COMMENT '회원명',
64
+ usedAmount INT NOT NULL COMMENT '사용 금액',
65
+ orderStatus ENUM('PENDING','DONE') NOT NULL DEFAULT 'PENDING' COMMENT '주문 상태',
66
+ regDt TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
67
+ updateDt TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
68
+ )COMMENT='주문 예치금 사용 요약';
69
+
70
+ CREATE TABLE gs_depositOrderDetail (
71
+ sno BIGINT AUTO_INCREMENT PRIMARY KEY,
72
+ orderSno INT NOT NULL COMMENT '주문 번호',
73
+ partnerSno INT NOT NULL COMMENT '고객사 번호',
74
+ memberNo INT NOT NULL COMMENT '회원번호',
75
+ orderProductOptionNo VARCHAR(50) NOT NULL COMMENT '주문 상품 옵션 번호',
76
+ orderProductNo VARCHAR(50) NOT NULL,
77
+ orderProductName VARCHAR(200) NOT NULL,
78
+ orderCnt INT NOT NULL DEFAULT 1 COMMENT '주문 수량',
79
+ orderAmount INT NOT NULL COMMENT '안분 기준 주문 금액',
80
+ issueDetailSno INT NOT NULL COMMENT 'gs_depositJobDetail.sno',
81
+ usedDepositAmount INT NOT NULL COMMENT '해당 지급건에서 차감된 금액',
82
+ allocatedRatio DECIMAL(10,6) NOT NULL COMMENT '안분 비율',
83
+ allocatedAmount INT NOT NULL COMMENT '주문에 배정된 예치금',
84
+ expireDt TIMESTAMP NULL COMMENT '지급건 만료일 스냅샷',
85
+ refundYn ENUM('Y','N') NOT NULL DEFAULT 'N' COMMENT '환불 여부',
86
+ refundDt TIMESTAMP NULL COMMENT '환불일시',
87
+ regDt TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
88
+ updateDt TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
89
+ INDEX idx_member (memberNo),
90
+ INDEX idx_order (orderSno),
91
+ INDEX idx_issue (issueDetailSno)
92
+ );
93
+
94
+ CREATE TABLE gs_depositCouponManager (
95
+ sno INT PRIMARY KEY AUTO_INCREMENT,
96
+ partnerSno INT NOT NULL COMMENT '고객사 번호',
97
+ title VARCHAR(100) NOT NULL COMMENT '쿠폰명',
98
+ depositAmount INT NOT NULL COMMENT '지급 예치금',
99
+ registerStartDt TIMESTAMP NOT NULL COMMENT '쿠폰 등록 시작일',
100
+ registerEndDt TIMESTAMP NOT NULL COMMENT '쿠폰 등록 종료일',
101
+ expireAfterDays INT NOT NULL COMMENT '등록 후 만료까지 일수 (n일)',
102
+ issueLimit INT NULL COMMENT '총 발급 수량 (NULL = 무제한)',
103
+ issueCount INT NOT NULL DEFAULT 0 COMMENT '발급된 수량',
104
+ usedFl ENUM('Y','N') NOT NULL DEFAULT 'N' COMMENT '사용 여부',
105
+ regDt TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
106
+ updateDt TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
107
+ ) COMMENT='예치금 쿠폰 정책';
108
+
109
+ CREATE TABLE gs_depositCoupon (
110
+ sno INT PRIMARY KEY AUTO_INCREMENT,
111
+ policySno INT NOT NULL COMMENT '쿠폰 정책 번호',
112
+ partnerSno INT NOT NULL COMMENT '고객사 번호',
113
+ couponCode VARCHAR(20) NOT NULL COMMENT '랜덤 숫자 쿠폰 코드',
114
+ usedFl ENUM('Y','N') NOT NULL DEFAULT 'N' COMMENT '사용 여부',
115
+ memberNo INT NULL COMMENT '사용 회원',
116
+ memberId VARCHAR(50) NULL COMMENT '회원 아이디',
117
+ memberName VARCHAR(50) NULL COMMENT '회원명',
118
+ regDt TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
119
+ updateDt TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '사용일',
120
+ UNIQUE KEY uk_coupon_member (sno, memberNo),
121
+ INDEX idx_policy (policySno)
122
+ ) COMMENT='예치금 랜덤 쿠폰';