초기셋팅

This commit is contained in:
jazz
2025-12-18 10:04:46 +09:00
commit b68aa39bfb
387 changed files with 54028 additions and 0 deletions

View File

@@ -0,0 +1,258 @@
server:
port: 18210
spring:
security:
oauth2:
resourceserver:
jwt:
issuer-uri: http://172.31.21.12:18320/realms/ADMIN
main:
allow-bean-definition-overriding: true
datasource:
defaultdatasource:
jdbc-url: jdbc:mysql://172.31.16.11:3306/gcone?useSSL=false&useUnicode=true&serverTimezone=Asia/Seoul&autoReconnect=true&allowMultiQueries=true&characterEncoding=UTF-8&allowPublicKeyRetrieval=false&verifyServerCertificate=false
driver-class-name: com.mysql.cj.jdbc.Driver
username: winbit
password: dnlsqlxm1!
gconedatasource:
jdbc-url: jdbc:mysql://172.31.16.11:3306/gcone?useSSL=false&useUnicode=true&serverTimezone=Asia/Seoul&autoReconnect=true&allowMultiQueries=true&characterEncoding=UTF-8&allowPublicKeyRetrieval=false&verifyServerCertificate=false
driver-class-name: com.mysql.cj.jdbc.Driver
username: winbit
password: dnlsqlxm1!
crmdatasource:
jdbc-url: jdbc:mysql://172.31.17.11:3306/nutricore?useSSL=false&useUnicode=true&serverTimezone=Asia/Seoul&autoReconnect=true&allowMultiQueries=true&characterEncoding=UTF-8&allowPublicKeyRetrieval=false&verifyServerCertificate=false
driver-class-name: com.mysql.cj.jdbc.Driver
username: winbit
password: dnlsqlxm1!
mqdatasource:
jdbc-url: jdbc:mysql://172.31.17.11:3306/nutricore?useSSL=false&useUnicode=true&serverTimezone=Asia/Seoul&autoReconnect=true&allowMultiQueries=true&characterEncoding=UTF-8&allowPublicKeyRetrieval=false&verifyServerCertificate=false
driver-class-name: com.mysql.cj.jdbc.Driver
username: winbit
password: dnlsqlxm1!
suredatasource:
jdbc-url: jdbc:mysql://172.31.17.11:3306/nutricore?useSSL=false&useUnicode=true&serverTimezone=Asia/Seoul&autoReconnect=true&allowMultiQueries=true&characterEncoding=UTF-8&allowPublicKeyRetrieval=false&verifyServerCertificate=false
driver-class-name: com.mysql.cj.jdbc.Driver
username: winbit
password: dnlsqlxm1!
batch:
job:
enabled: true
mybatis:
mapper-locations: classpath*:mybatis/xml/mapper/**/*.xml
config-location: classpath:/mybatis/xml/config/mapper-config.xml
logging:
level:
org.springframework.web: debug
org.springframework.security: debug
org.springframework.security.oauth2: debug
com.wb.domainserver: debug
root: info
#Resource-server-url
url:
resource:
server:
gconebo: http://172.31.14.11:18210
# reviewbo: http://172.31.15.11:18220
#gconebo: http://127.0.0.1:18210
reviewbo: http://127.0.0.1:18220
pagination:
page-unit: 10
page-size: 10
# 스윗트래커 url, api key
parcel:
trackApiUrl: https://info.sweettracker.co.kr
trackApiKey: R0sYxkD9vCxSXPKpStOY2w
# 네이버 스마트스토어 api key
smartstore:
sopmal:
stores:
#참다한홍삼
CH:
clientId: 48f8YgF04wTnge6taw9bsM
clientSecret: $2a$04$9Lfn5as5Vv/ZW5PAoKBBr.
#더작
TZ:
clientId: 2sixJRyTxOyqdGnaGPyqD3
clientSecret: $2a$04$6504l9xbJeLpvSPtyNRedO
#라이프케어
LF:
clientId: 3nvOAoVAJFPBrtL1G0imIw
clientSecret: $2a$04$hTAy0ZDv61.dhY9bVdgbXO
#자담유
NB:
clientId: 15AkSpwqfBx14XFsaFuRWs
clientSecret: $2a$04$Lsu7.x0CNLUMaCVEoR6bce
#올프리
AF:
clientId: 6oImXKFhmztQ8FuVFNeF7J
clientSecret: $2a$04$lIKn8dPMP/W4qhPB2Dg//u
#프로스랩
PL:
clientId: 3duYo8WujBN28I7d5RGyA3
clientSecret: $2a$04$TyLI67x2NzZHzQWwj4bf4O
#바디닥터스
BD:
clientId: 0LlmJHa37TIu5kj9TWpF8
clientSecret: $2a$04$7oeI6P7F54fDGVwODSmMMO
#디디오랩
DL:
clientId: 2JnFtm1CnB1reMe7vqMYC3
clientSecret: $2a$04$mQQRwcbnmCIK/ZVXQrmKSu
HMALL:
clientId: 1cxAYZ9YSk6cqCDDvy5mp2
clientSecret: $2a$04$1o3njRHIwiwtn2Op8HhtTu
#뉴트리코어
NC:
clientId: 5tyKNRV7TKjFUl2ycD1rez
clientSecret: $2a$04$s.BKvRnaRvN.g8qn89813O
#닥터린
DT:
clientId: 5s8rYBUeAYouS0acj5BnEk
clientSecret: $2a$04$EV15WW/fSldraD9wSdwwm.
#스마트 스토어 api url
smartstoreurl:
tokenurl: https://api.commerce.naver.com/external/v1/oauth2/token
orderlisturl: https://api.commerce.naver.com/external/v1/pay-order/seller/product-orders/last-changed-statuses
orderdetailurl : https://api.commerce.naver.com/external/v1/pay-order/seller/product-orders/query
#슈어엠 법인별 정보
surem:
sopmal:
#참다한홍삼
CH:
code: GC
data: (주)지씨바이오
erpcode: 01
userid: gcbio02
deptcode: KT-26E-ZS
yellowkey: cd51453ccf40ef714cadd5a7dd0506cd7340a986
#더작
TZ:
code: TB
data: (주)트래디스바이오
erpcode: 02
userid: tradithbio02
deptcode: FO-5SP-HZ
yellowkey: c3218d5cf0e60ffd7ac2e0ba3674f3d29acd258c
#라이프케어
LF:
code: TB
data: (주)트래디스바이오
erpcode: 02
userid: tradithbio02
deptcode: FO-5SP-HZ
yellowkey: 7ef337e0f1fce8440aa896e9ca4e01ec6aa86f35
#닥터린
DT:
code: NP
data: (주)코스네이처
erpcode: 05
userid: cosnature02
deptcode: CQ-DSI-MO
yellowkey: 43dcab2777006643bfac640186cfaeebe97c7aff
#자담유
NB:
code: NP
data: (주)코스네이처
erpcode: 05
userid: cosnature02
deptcode: CQ-DSI-MO
yellowkey: ecca3323e0aec27b514429c1934f50468b8b7cf2
#올프리
AF:
code: NP
data: (주)코스네이처
erpcode: 05
userid: cosnature02
deptcode: CQ-DSI-MO
yellowkey: b813ceaa0837e5e4b5e0a7b8b17524138299d798
#뉴트리코어
NC:
code: SL
data: (주)에스엘바이오텍
erpcode: 03
userid: slbiotech02
deptcode: AR-TYO-OK
yellowkey: 8e5470e841a36882e1a3db87e6a791bcfed5c8d2
#프로스랩
PL:
code: NP
data: (주)네이처풀
erpcode: 04
userid: naturefull02
deptcode: W1-R3C-3K
yellowkey: 31166680c84494e86ffcb34668bba26398e7dd1e
#바디닥터스
BD:
code: DB
data: (주)디바인바이오
erpcode: 06
userid: divinebio02
deptcode: ZN-XCC-48
yellowkey: e7fbc154eb51da9bc99df26f8a5618377b854c8c
#디디오랩
DL:
code: DB
data: (주)디바인바이오
erpcode: 06
userid: divinebio02
deptcode: ZN-XCC-48
yellowkey: 94fd52576d658b42320ad2083e73e9ccf5ee24d1
#저스트마이데이
JM:
code: DB
data: (주)디바인바이오
erpcode: 06
userid: divinebio02
deptcode: ZN-XCC-48
yellowkey: ccf01eaa7ea9edc95c52178282cfb60b04f1520f
#아이엔에스소프트
IS:
code: IS
data: (주)아이엔에스 소프트
userid: inssoft02
deptcode: R8-S2A-JC
yellowkey: 8bcf6d41f62395e7f696385a7eb0a17c350cc083
#GC EP 파일 저장 경로
ep:
common:
fileupload:
uploaddirs:
path: /data/gcone/otrFile
naver: naver_third
google: googleEpXmlData
meta: metaEpXmlData
mobion: mobionEpXmlData
extensions:
xml: .xml
txt: .txt
cdnurl: http://img.groupit.co.kr
secret:
key: 1df5be2f7e90ae36
mail:
host: 10.100.238.11
port: 25
# SyncPos 요청경로
pos:
syncpos:
url: https://smart.easypos.net
uri: /servlet/EasyPosChannelSVL?cmd=TlxSyncHanamCMD
#kakao REST-API test key(AF-T 키임)
kakao:
restApi-key: "5376f8866ab47cc78095e00c00d00c3f"
#선물하기 URL
presenturl : dev.svc.gcone.co.kr

View File

@@ -0,0 +1,257 @@
server:
port: 18210
spring:
security:
oauth2:
resourceserver:
jwt:
issuer-uri: http://172.31.21.12:18320/realms/ADMIN
main:
allow-bean-definition-overriding: true
datasource:
defaultdatasource:
jdbc-url: jdbc:mysql://10.100.81.11:3306/gcone?useSSL=false&useUnicode=true&serverTimezone=Asia/Seoul&autoReconnect=true&allowMultiQueries=true&characterEncoding=UTF-8&allowPublicKeyRetrieval=false&verifyServerCertificate=false
driver-class-name: com.mysql.cj.jdbc.Driver
username: winbit
password: Roqkf13@$
gconedatasource:
jdbc-url: jdbc:mysql://10.100.81.11:3306/gcone?useSSL=false&useUnicode=true&serverTimezone=Asia/Seoul&autoReconnect=true&allowMultiQueries=true&characterEncoding=UTF-8&allowPublicKeyRetrieval=false&verifyServerCertificate=false
driver-class-name: com.mysql.cj.jdbc.Driver
username: winbit
password: Roqkf13@$
crmdatasource:
jdbc-url: jdbc:mysql://10.100.81.11:3306/gcone?useSSL=false&useUnicode=true&serverTimezone=Asia/Seoul&autoReconnect=true&allowMultiQueries=true&characterEncoding=UTF-8&allowPublicKeyRetrieval=false&verifyServerCertificate=false
driver-class-name: com.mysql.cj.jdbc.Driver
username: winbit1
password: Roqkf13@$
mqdatasource:
jdbc-url: jdbc:mysql://192.168.103.23:3306/mq?useSSL=false&useUnicode=true&serverTimezone=Asia/Seoul&autoReconnect=true&allowMultiQueries=true&characterEncoding=UTF-8&allowPublicKeyRetrieval=false&verifyServerCertificate=false
driver-class-name: com.mysql.cj.jdbc.Driver
username: winbit
password: winbit1!
suredatasource:
jdbc-url: jdbc:mysql://10.100.238.11:3306/surem
driver-class-name: com.mysql.cj.jdbc.Driver
username: winbit
password: winbit1!
batch:
job:
enabled: true
mybatis:
mapper-locations: classpath*:mybatis/xml/mapper/**/*.xml
config-location: classpath:/mybatis/xml/config/mapper-config.xml
logging:
level:
org.springframework.web: debug
org.springframework.security: debug
org.springframework.security.oauth2: debug
com.wb.domainserver: debug
root: info
#Resource-server-url
url:
resource:
server:
gconebo: http://10.100.50.148:18210
reviewbo: http://127.0.0.1:18220
pagination:
page-unit: 10
page-size: 10
# 스윗트래커 url, api key
parcel:
trackApiUrl: https://info.sweettracker.co.kr
trackApiKey: R0sYxkD9vCxSXPKpStOY2w
smartstore:
sopmal:
stores:
#참다한홍삼
CH:
clientId: 48f8YgF04wTnge6taw9bsM
clientSecret: $2a$04$9Lfn5as5Vv/ZW5PAoKBBr.
#더작
TZ:
clientId: 2sixJRyTxOyqdGnaGPyqD3
clientSecret: $2a$04$6504l9xbJeLpvSPtyNRedO
#라이프케어
LF:
clientId: 3nvOAoVAJFPBrtL1G0imIw
clientSecret: $2a$04$hTAy0ZDv61.dhY9bVdgbXO
#자담유
NB:
clientId: 15AkSpwqfBx14XFsaFuRWs
clientSecret: $2a$04$Lsu7.x0CNLUMaCVEoR6bce
#올프리
AF:
clientId: 6oImXKFhmztQ8FuVFNeF7J
clientSecret: $2a$04$lIKn8dPMP/W4qhPB2Dg//u
#프로스랩
PL:
clientId: 3duYo8WujBN28I7d5RGyA3
clientSecret: $2a$04$TyLI67x2NzZHzQWwj4bf4O
#바디닥터스
BD:
clientId: 0LlmJHa37TIu5kj9TWpF8
clientSecret: $2a$04$7oeI6P7F54fDGVwODSmMMO
#디디오랩
DL:
clientId: 2JnFtm1CnB1reMe7vqMYC3
clientSecret: $2a$04$mQQRwcbnmCIK/ZVXQrmKSu
HMALL:
clientId: 1cxAYZ9YSk6cqCDDvy5mp2
clientSecret: $2a$04$1o3njRHIwiwtn2Op8HhtTu
#뉴트리코어
NC:
clientId: 5tyKNRV7TKjFUl2ycD1rez
clientSecret: $2a$04$s.BKvRnaRvN.g8qn89813O
#닥터린
DT:
clientId: 5s8rYBUeAYouS0acj5BnEk
clientSecret: $2a$04$EV15WW/fSldraD9wSdwwm.
#스마트 스토어 api url
smartstoreurl:
tokenurl: https://api.commerce.naver.com/external/v1/oauth2/token
orderlisturl: https://api.commerce.naver.com/external/v1/pay-order/seller/product-orders/last-changed-statuses
orderdetailurl : https://api.commerce.naver.com/external/v1/pay-order/seller/product-orders/query
#슈어엠 법인별 정보
surem:
sopmal:
#참다한홍삼
CH:
code: GC
data: (주)지씨바이오
erpcode: 01
userid: gcbio02
deptcode: KT-26E-ZS
yellowkey: cd51453ccf40ef714cadd5a7dd0506cd7340a986
#더작
TZ:
code: TB
data: (주)트래디스바이오
erpcode: 02
userid: tradithbio02
deptcode: FO-5SP-HZ
yellowkey: c3218d5cf0e60ffd7ac2e0ba3674f3d29acd258c
#라이프케어
LF:
code: TB
data: (주)트래디스바이오
erpcode: 02
userid: tradithbio02
deptcode: FO-5SP-HZ
yellowkey: 7ef337e0f1fce8440aa896e9ca4e01ec6aa86f35
#닥터린
DT:
code: NP
data: (주)코스네이처
erpcode: 05
userid: cosnature02
deptcode: CQ-DSI-MO
yellowkey: 43dcab2777006643bfac640186cfaeebe97c7aff
#자담유
NB:
code: NP
data: (주)코스네이처
erpcode: 05
userid: cosnature02
deptcode: CQ-DSI-MO
yellowkey: ecca3323e0aec27b514429c1934f50468b8b7cf2
#올프리
AF:
code: NP
data: (주)코스네이처
erpcode: 05
userid: cosnature02
deptcode: CQ-DSI-MO
yellowkey: b813ceaa0837e5e4b5e0a7b8b17524138299d798
#뉴트리코어
NC:
code: SL
data: (주)에스엘바이오텍
erpcode: 03
userid: slbiotech02
deptcode: AR-TYO-OK
yellowkey: 8e5470e841a36882e1a3db87e6a791bcfed5c8d2
#프로스랩
PL:
code: NP
data: (주)네이처풀
erpcode: 04
userid: naturefull02
deptcode: W1-R3C-3K
yellowkey: 31166680c84494e86ffcb34668bba26398e7dd1e
#바디닥터스
BD:
code: DB
data: (주)디바인바이오
erpcode: 06
userid: divinebio02
deptcode: ZN-XCC-48
yellowkey: e7fbc154eb51da9bc99df26f8a5618377b854c8c
#디디오랩
DL:
code: DB
data: (주)디바인바이오
erpcode: 06
userid: divinebio02
deptcode: ZN-XCC-48
yellowkey: 94fd52576d658b42320ad2083e73e9ccf5ee24d1
#저스트마이데이
JM:
code: DB
data: (주)디바인바이오
erpcode: 06
userid: divinebio02
deptcode: ZN-XCC-48
yellowkey: ccf01eaa7ea9edc95c52178282cfb60b04f1520f
#아이엔에스소프트
IS:
code: IS
data: (주)아이엔에스 소프트
userid: inssoft02
deptcode: R8-S2A-JC
yellowkey: 8bcf6d41f62395e7f696385a7eb0a17c350cc083
#GC EP 파일 저장 경로
ep:
common:
fileupload:
uploaddirs:
path: /data/gcone/otrFile
naver: naver_third
google: googleEpXmlData
meta: metaEpXmlData
mobion: mobionEpXmlData
extensions:
xml: .xml
txt: .txt
cdnurl: https://img.gcone.co.kr
secret:
key: 1df5be2f7e90ae36
mail:
host: 10.100.238.11
port: 25
# SyncPos 요청경로
pos:
syncpos:
url: https://smart.easypos.net
uri: /servlet/EasyPosChannelSVL?cmd=TlxSyncHanamCMD
#kakao REST-API key (뉴트리코어 키)
kakao:
restApi-key: "2d1fa2155bc36878a45c65e45e23a990"
#선물하기 URL
presenturl : svc.gcone.co.kr

View File

@@ -0,0 +1,13 @@
{
"type": "service_account",
"project_id": "doctorleaneventapp",
"private_key_id": "3e5496cb84b583edde49b1a56f163c762e27e768",
"private_key": "-----BEGIN PRIVATE KEY-----\nMIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQC2mPSt5uteMuvq\nygikRImrIwkfQ6Wt6sZ6Eeb89sU5NP+OYzNS/5hUXwREiApHJVxFOi6akSNtVI1H\nC5ICjnsMncwIP8VBg3dm02Vfn+vxj2olTDsYODLTjIkrIQ+qJR0yNWqbzAUlkaOd\nj2UGRygSUGfX9N+kKvFQiBNcFFYVYeELAYUHwqqwdx7GGOdA78+n6NCJmDfaJaQS\nF3HztQRARRdi2JOtzpXNiISdf2h4DGvBJt3gzZKffg4y39BaBn98AWhUzD59NCj1\nKzutzRK8eesZaoW+TqG5CHt8phTV3uYUvVK9HcGkEPI0vS0RjGe1r7+7XOIjuevB\nLBiQC8thAgMBAAECggEAFSf3L3/yFNW3DlrOsgOr5Lt4NtpeY55wVRvmZLhNxRFO\nK8f0HiF1m47vvmX5tOEQBghV9nwq++OgQ9NEHU43VRCiX3FOEEdkafJDzFbJ3lDU\nxlIFBcsbHnYpvWjE+Rx4O8VDHx5+GSp858hBtv6/FpIg2f1p/QopsAA4KALGL49X\nx1RP4NrhKPdsDSutdq668Naclm6UGOf+LUmvFsBsnLx7jJGoc3QIhGQ3pZW2QZzQ\n+clIigY6D8HDg7RMGM5XobjvuqGJk4IYeCsLvcxP0dQIyNPmqsfVP0NBDVFiJ1Oz\nvuQ8hLfJfOKuJswjMiNYiVdf4fT6Lg7klNyS9IKYPQKBgQDdhnzfWF56EfxA1HgJ\nD5H9E+EuaCyMTErHnN6VYoQd+uS7rwp9v39Cap8/Vw1iTzlcp05k6l0QDgtqzZKa\n3NJRoHK1bmamrdV9PLztNVsbgQfMd9s5p+rBan/ZBB3DQehDarlITQ16T3zm2hFR\nkUJz54dOP4qmMvPf2B1QYuZknQKBgQDTA5eYkrebTeRVKZPme5k5BlpNjHdCJbeg\nh6sffe5tnpbbH46RSYhP5Bzgk+IWOu0vOiKQtDL2QkJXjopUuu2Vc1yM+CNsB9oh\n/T2vcjKlh5gYR9cTJ61UeV4V0B2Y88I1G1i1XruOc/gMNvMpwDWiOkPyTX6IvXvH\nKJyzDTVslQKBgFQU1tLDLODycKd+vazavxOq9v5xRe9eiceoMAfNY84pS6Y9MyM1\niyz/YUBeX1MgNOqJCkVde0M7wXOhYXLsO9wFpWRd6hJ7ypuFcUQry0/uMrKWD5yb\nsowFS09os49INctY98iMjoANKaBJxucJ1oo9p+q4TXz1vAELe1zmnQI1AoGBAKZT\nrIi9DTDDgvmF3mjMgAgs870wvUhMhqNojQAzuV56pRpvk2b9+Q5QFlsG9izjodWa\nE2jQQWNO8xAk8PC8r00gM5GCfhlHTy9/d8H1V+qWKNLqvaMBoWR2jizPcKUBbtGB\njrjXxSsSSjEGl0EPmrcXCjvRza1m/kwLvQh9nuDJAoGAJVTjo2MdQprx+cyty0ZT\nZzo+l1F2zk7LBLB80TXgXZO+BcYguFxb25cNlsydy5yzMldrzKlt/YeiiA8/Z8kG\nWDT9P/O2r0AubHfMMZ7cC1VH/0pxoOrFYDUsofJ1ySKX/jiFi8kuklZkly50Eu2T\nH/GxM9D1V3XxH1HCo8+xoRc=\n-----END PRIVATE KEY-----\n",
"client_email": "firebase-adminsdk-ysdbz@doctorleaneventapp.iam.gserviceaccount.com",
"client_id": "104855938912009098248",
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
"token_uri": "https://oauth2.googleapis.com/token",
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
"client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/firebase-adminsdk-ysdbz%40doctorleaneventapp.iam.gserviceaccount.com",
"universe_domain": "googleapis.com"
}

View File

@@ -0,0 +1,13 @@
{
"type": "service_account",
"project_id": "nutricoreeventapp",
"private_key_id": "bd9d39ca9c3d3d15b11cafe3df474af1c23161ca",
"private_key": "-----BEGIN PRIVATE KEY-----\nMIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDR9UkVOX8fGDai\nGLJdlBsv/sHkTDX+VXREXY1Hs4Ak7tyDKaUYvgDEfmPxQIgHa4lT6Q6xAi40tj/j\nYRc8Gt8f4PeZkOANIB5W5RUBis4Okj54Ly0NQITF0+UglwWzOz4K8fUQ2lBEZSWn\n72QCQQkQRyPVA3upDs75fyKvFC8+5lAxAJFuIRyB36IRohkbXdkIqwYj9CmWKutG\nu22E5Gy9X5Mpe9par2aji2T0TeIr0hnB/rvhewnoLVxB/kdWz5vBUS11JPATaQ41\nAkbehSzjyapM83IFNgqezNYNQE28uc8mykBUrMPi0oTyuDYuYBq4wqKf9+TmbvR8\n6NL6Flt3AgMBAAECggEAC/gHqoYUkRk4RBVUVbFTu3CybOlLSqxkbGFI5IV/EJvt\nRizhlH+AW7M4z0/2cTXYJkhq5fxR1f9ttPCb+nktrwuMEd0IaLckA6AbinL3PC1q\nEj/eOZsr9nsV3L2/PXBrIQSaC9PmL3/0nZYwBVDfy2XCzSndqs2FTwPIXmKwLs2n\n4EV17q5PnDzxpvxr2yby9wM2IidlVRdzPo/vYYLL9JH+iRBP04jllJlNGsvwpNkT\n9kHqfInLGMk+2v7+nqobrSW1V12lSBDYfZisWxA5e5gcP0Cp9Fu2MQKigO1eENdB\nuh+k4VrK35UB0vR+mUI20DALfHDN5Q7aj4EUI7n8AQKBgQDxb75kVWNcfBWZtG7z\nUKObALOKECAmMPnr4DoJeMThsX2suu/aZQctlfCgALxUFg0nES3dkzrYG1fYjzeI\nj1gFUZ3KVOprGFShgDXc+WZHytm8L4mfnVA8hG2B0FLKkA+uVgkJBg7EsLwcuaP5\nF7VdTruSvJc1DbWFyr056zkJNwKBgQDen3QvAW1I5JYZovNdL/LVd+ueyxbtKRyx\nJZozKQcMddJWmWJG9ZuJzqP4v2t+rpfxF3iPeUOCNLDPms3Cxt58LLpX0Imv5Ufq\nWJ/gmA/IVJRlHROsyRXexeVkcHcsr1CZUgf/31vs8WkV/6Kor42ucuBwD3x76n0o\npDdofS1fwQKBgQDEU4WSuQyvLAe0kVCXcr9XT96vKiW6aKER+ae4BAi1LktvpiNc\niEKqAv9EXNTH25aeag3N2+dBzBpG807JMSb2TEPvP9XPeF15ZnRmWDefsYgUyuMy\ndA3G6DjUEr8AEN1vem6mc9KWhtCw2xRHfcvxMBC/ZbPfZGJzhUUSUAB1SQKBgQCv\n75IxR85nSgd5sTblUWx22bQDJXsz6Ea9lPr9LZJdfYvCVqu9aoMGcKFTh2vbjP2V\nUjg8ItiAQUXue+fa47GWrv6BQdRehzPDd1C6fVITvwwbsNQIvE4lZX45V0xHqzFm\nSdb6lzmd0td6xDF3YG33DOBkj0iQ4asSAF2tnSfLwQKBgBLTZpfd+btX7932YtkG\nNmk7Tl7JRKj0rnRIyQom2UIIWNxJl1zotI02wE3y6/+MD9T1WX5KBRgi0jDPFBoP\niTDoOJ1lzqcHMc7BkUQiGlFOoWCOuj5AqWvo6YMkP7Q+scgc67I2yHFUPTJt5FEd\nlWr3Ul6VDP57cgPGdGyazIfS\n-----END PRIVATE KEY-----\n",
"client_email": "firebase-adminsdk-iliil@nutricoreeventapp.iam.gserviceaccount.com",
"client_id": "117259015808547426598",
"auth_uri": "https://accounts.google.com/o/oauth2/auth",
"token_uri": "https://oauth2.googleapis.com/token",
"auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
"client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/firebase-adminsdk-iliil%40nutricoreeventapp.iam.gserviceaccount.com",
"universe_domain": "googleapis.com"
}

View File

@@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<!--Mybatis 설정 -->
<settings>
<!-- 전통적인 데이터베이스 컬럼명 형태인 A_COLUMN을 CamelCase형태의 자바 프로퍼티명 형태인 aColumn으로 자동으로 매핑하도록 함 -->
<setting name="mapUnderscoreToCamelCase" value="true"></setting>
<!-- 파라미터에 Null 값이 있을 경우 에러 처리 -->
<setting name="jdbcTypeForNull" value="VARCHAR"></setting>
<setting name="callSettersOnNulls" value="true"/>
</settings>
<!-- Type Aliases 설정-->
<typeAliases>
<typeAlias alias="dataMap" type="com.wb.domainserver.util.dataaccess.DataMap" />
</typeAliases>
</configuration>

View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.wb.domainserver.mapper.crm.SampleCrmMapper">
<insert id="insertCrmCheck" parameterType="com.wb.domainserver.sample.vo.BbsmngrVO">
INSERT INTO tmp_order (member_seq, order_seq) VALUES(#{bbsId},#{bbsNm})
</insert>
</mapper>

View File

@@ -0,0 +1,121 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.wb.domainserver.mapper.gcone.AnalysisMapper">
<!-- 자사몰 모든 결제 완료된 주문 정보 조회 -->
<select id="selectShoppingMallOrderList" >
SELECT GO.ORDR_INNB, GOIO.SOPMAL_CD as sopmal_cd,
CASE
WHEN GOIO.ORDR_STTUS_CD IN ('25','35','40','45') THEN '25'
WHEN GOIO.ORDR_STTUS_CD IN ('50','55','60','65') THEN '65'
WHEN GOIO.ORDR_STTUS_CD IN ('70','75') THEN '75'
WHEN GOIO.ORDR_STTUS_CD IN ('85') THEN '85'
ELSE ''
END as ordr_sttus_cd,
GOIO.OPTN_CD_1 as barcode, GOIO.ORDR_QY as goods_qy,
DATE(GO.SETLE_COMPT_DT) as payment_dt, GOI.GOODS_KND_CD, '자사몰' AS sopmal_dv,
GOI.GOODS_NM as goods_nm,
(GOIO.SLEPRIC * GOIO.ORDR_QY) - FN_GET_ORDER_GOODS_DSCNT_AMT(GOIO.SOPMAL_CD, GOIO.ORDR_GOODS_INNB, GOIO.ORDR_GOODS_OPTN_INNB) AS rl_setle_amt,
GOS.RL_DLVY_AMT AS baesongBi
FROM GC_ORDER GO
LEFT JOIN GC_ORDER_ITEM GOI ON GOI.ORDR_INNB = GO.ORDR_INNB AND GOI.SOPMAL_CD = GO.SOPMAL_CD
LEFT JOIN GC_ORDER_ITEM_OPTION GOIO ON GOIO.ORDR_GOODS_INNB = GOI.ORDR_GOODS_INNB AND GOIO.SOPMAL_CD = GOI.SOPMAL_CD
LEFT JOIN GC_ORDER_SHIPPING GOS ON GO.ORDR_INNB = GOS.ORDR_INNB AND GO.SOPMAL_CD = GOS.SOPMAL_CD
WHERE GO.ORDR_STTUS_CD between 25 and 85
AND (go.REGIST_DT between #{eDate} and #{sDate} or go.UPDT_DT between #{eDate} and #{sDate})
ORDER BY GO.ORDR_INNB desc
</select>
<insert id="insertErpGoods">
INSERT IGNORE INTO GC_ANALYSIS_ERP_GOODS (BARCODE, SOPMAL_CD, GOODS_NM,GOODS_PRICE,REGIST_DT)
VALUES
<foreach collection="list" item="item" separator=",">
(#{item.barcode}, #{item.sopmalCd}, #{item.goodsNm}, #{item.goodsPrice}, NOW())
</foreach>
</insert>
<insert id="insertErpSetGoods">
INSERT IGNORE INTO GC_ANALYSIS_ERP_SET_GOODS (SET_CODE,SOPMAL_CD, BARCODE, BARCODE_QY,GIFT_YN,SET_GOODS_NM,GOODS_NM,REGIST_DT)
VALUES
<foreach collection="list" item="item" separator=",">
(#{item.setCode},#{item.sopmalCd}, #{item.barcode}, #{item.barcodeQy}, #{item.giftYn}, #{item.setGoodsNm}, #{item.goodsNm}, NOW())
</foreach>
</insert>
<insert id="insertAnalysisOrderList">
INSERT IGNORE INTO GC_ANALYSIS_ORDER_HISTORY (ORDR_INNB,SOPMAL_CD,ORDR_STTUS_CD,BARCODE,GOODS_QY,RL_SETLE_AMT,PAYMENT_DT,REGIST_DT,GIFT_YN,SOPMAL_DV,GOODS_NM,SHIP_NO_SEQ,SHOP_SET_CD)
VALUES
<foreach collection="list" item="item" separator=",">
(#{item.ordrInnb}, #{item.sopmalCd}, #{item.ordrSttusCd}, #{item.barcode}, #{item.goodsQy}, #{item.rlSetleAmt}, #{item.paymentDt}, NOW(), #{item.giftYn}, #{item.sopmalDv}, #{item.goodsNm}, #{item.shipNoSeq}, #{item.shopSetCd})
</foreach>
</insert>
<select id="selectbarcodeGoodsInfo" >
SELECT BARCODE as barcode,SOPMAL_CD AS sopmalCd
FROM GC_ANALYSIS_ERP_GOODS
WHERE BARCODE = #{goodsCode}
</select>
<select id="selectsetCodeGoodsInfo" >
SELECT SET_CODE as setCode,SOPMAL_CD as sopmalCd, BARCODE as barcode, BARCODE_QY as barcodeQy
FROM GC_ANALYSIS_ERP_SET_GOODS
WHERE SET_CODE = #{goodsCode}
</select>
<insert id="insertOrderList">
INSERT INTO GC_ANALYSIS_ORDER_HISTORY
( PRODUCT_ORDR_INNB,ORDR_INNB, SOPMAL_CD, ORDR_STTUS_CD, BARCODE, GOODS_QY, RL_SETLE_AMT,TOTAL_PAYMENT_AMOUNT, PAYMENT_DT, REGIST_DT, GIFT_YN, SOPMAL_DV, GOODS_NM, SHIP_NO_SEQ, SHOP_SET_CD, BARCODE_QY,LAST_CHANGED_DATE,PRODUCT_OPTION,CLAIM_STATUS,DECISION_DATE,MISSING_FLAG)
VALUES
<foreach collection="list" item="item" separator=",">
(#{item.productOrdrInnb},#{item.ordrInnb}, #{item.sopmalCd}, #{item.ordrSttusCd}, #{item.barcode}, #{item.goodsQy}, #{item.rlSetleAmt},#{item.totalPaymentAmount}, #{item.paymentDt}, NOW(), #{item.giftYn}, #{item.sopmalDv}, #{item.goodsNm}, #{item.shipNoSeq}, #{item.shopSetCd}, #{item.barcodeQy}, #{item.lastChangedDate},#{item.productOption},#{item.claimStatus},#{item.decisionDate},#{item.missingFlag})
</foreach>
ON DUPLICATE KEY UPDATE
ORDR_STTUS_CD = VALUES(ORDR_STTUS_CD),
GOODS_QY = VALUES(GOODS_QY),
RL_SETLE_AMT = VALUES(RL_SETLE_AMT),
TOTAL_PAYMENT_AMOUNT = VALUES(TOTAL_PAYMENT_AMOUNT),
PAYMENT_DT = VALUES(PAYMENT_DT),
GIFT_YN = VALUES(GIFT_YN),
SOPMAL_DV = VALUES(SOPMAL_DV),
GOODS_NM = VALUES(GOODS_NM),
SHIP_NO_SEQ = VALUES(SHIP_NO_SEQ),
SHOP_SET_CD = VALUES(SHOP_SET_CD),
UPDATE_DT = NOW(),
LAST_CHANGED_DATE = VALUES(LAST_CHANGED_DATE),
BARCODE_QY = VALUES(BARCODE_QY),
PRODUCT_OPTION = VALUES(PRODUCT_OPTION),
CLAIM_STATUS = VALUES(CLAIM_STATUS),
DECISION_DATE = VALUES(DECISION_DATE),
MISSING_FLAG = VALUES(MISSING_FLAG);
</insert>
<delete id="deleteErpSetGoods">
TRUNCATE TABLE
GC_ANALYSIS_ERP_SET_GOODS
</delete>
<delete id="deleteErpGoods">
TRUNCATE TABLE
GC_ANALYSIS_ERP_GOODS
</delete>
<insert id="insertTotalList">
INSERT INTO GC_ERP_TOTAL_STATISTICS
(CO_CD, STRGRP1_CD, STRGRP2_CD, STRGRP3_CD, STRGRP4_CD, SALE_DT, BRAND_NM, ITM_NM, BARCODE, SAL_AMT, QTY, SAL_AMT2,ITM_ID, REGIST_DT,CANC_TYPE)
VALUES
<foreach collection="list" item="item" separator=",">
(#{item.coCd}, #{item.strgrp1Cd}, #{item.strgrp2Cd}, #{item.strgrp3Cd}, #{item.strgrp4Cd}, #{item.saleDt}, #{item.brandNm}, #{item.itmNm},#{item.barcode},#{item.salAmt},#{item.qty},#{item.salAmt2} , #{item.itmId}, NOW(),#{item.cancType})
</foreach>
ON DUPLICATE KEY UPDATE
SAL_AMT = VALUES(SAL_AMT),
QTY = VALUES(QTY),
SAL_AMT2 = VALUES(SAL_AMT2),
UPDATE_DT = NOW();
</insert>
</mapper>

View File

@@ -0,0 +1,230 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.wb.domainserver.mapper.gcone.AppPushMapper">
<!-- 푸시 대상 혜택 조회 -->
<select id="selectBOBnftPushTrgetList"
parameterType="com.wb.domainserver.app.vo.AppPushVO"
resultType="dataMap">
<![CDATA[
SELECT gbpes.BNF_PUSH_EVT_SETUP_INNB,
gbpes.BNF_PUSH_CND_DV_CD,
SUBSTR(gbpes.BNF_PUSH_CND_DV_CD, 1, 3) AS BNF_DV_CD,
gbpes.PUSH_SJ,
gbpes.PUSH_CN,
gbpes.PUSH_TME,
CASE WHEN EXISTS (
SELECT 1
FROM GC_BENEFIT_PUSH_SNDNG_DTLS
WHERE BNF_PUSH_EVT_SETUP_INNB = gbpes.BNF_PUSH_EVT_SETUP_INNB
AND SNDNG_AT = 'Y'
AND REGIST_DT >= CURDATE()
AND REGIST_DT < CURDATE() + INTERVAL 1 DAY
) THEN 'Y' ELSE 'N' END AS SNDNG_YN
FROM GC_BENEFIT_PUSH_EVT_SETUP gbpes
WHERE 1=1
AND gbpes.SOPMAL_CD = #{sopmalCd}
AND gbpes.PUSH_CYCLE_DV = 'd'
AND gbpes.USE_AT = 'Y'
AND (gbpes.PUSH_TME = '00' OR gbpes.PUSH_TME BETWEEN DATE_SUB(CURTIME(), INTERVAL 15 MINUTE) AND CURTIME())
]]>
</select>
<!-- 라이브쇼핑 푸시발송건 조회 -->
<select id="selectBOBnftPushLvshopInfo"
parameterType="com.wb.domainserver.app.vo.AppPushVO"
resultType="dataMap">
<![CDATA[
SELECT gb.BNF_INNB,
gbc.CN_BGN_DT
FROM GC_BENEFIT_CONTENT gbc
JOIN GC_BENEFIT gb ON gb.BNF_INNB = gbc.BNF_INNB
WHERE 1=1
AND gb.SOPMAL_CD = #{sopmalCd}
AND gb.BNF_DV_CD = '070'
AND gb.USE_AT = 'Y'
AND gbc.CN_BGN_DT >= CURDATE()
AND gbc.CN_BGN_DT < CURDATE() + INTERVAL 1 DAY
/*AND DATE_SUB(gbc.CN_BGN_DT, INTERVAL 15 MINUTE) <= NOW()*/
AND gbc.CN_BGN_DT BETWEEN DATE_SUB(NOW(), INTERVAL 15 MINUTE) AND NOW()
AND gbc.CN_END_DT > NOW()
AND NOT EXISTS (
SELECT 1 FROM GC_BENEFIT_PUSH_SNDNG_DTLS gbpsd
WHERE gbpsd.BNF_INNB = gb.BNF_INNB
AND gbpsd.SNDNG_AT = 'Y'
AND DATE(gbpsd.REGIST_DT) = CURDATE()
)
ORDER BY gbc.CN_BGN_DT
LIMIT 1
]]>
</select>
<!-- 섭취챌린지 푸시발송건 & 발송대상 푸시키 조회 -->
<select id="selectBOBnftPushNtakchlMbrList"
parameterType="com.wb.domainserver.app.vo.AppPushVO"
resultType="dataMap">
<![CDATA[
SELECT
gbnn.BNF_NTK_NTCN_INNB,
gbnn.NTCN_TME,
gbnn.MBR_INNB,
gmdi.FCM_TOKEN
FROM GC_BENEFIT_NTKCHL_NTCN gbnn
JOIN GC_BENEFIT gb ON gb.BNF_INNB = gbnn.BNF_INNB
JOIN GC_MEMBER_DEVICE_INFO gmdi ON gmdi.SOPMAL_CD = gb.SOPMAL_CD AND gmdi.MBR_INNB = gbnn.MBR_INNB
WHERE 1=1
AND gb.SOPMAL_CD = #{sopmalCd}
AND gb.USE_AT = 'Y'
AND gb.BNF_END_DT >= NOW()
AND gbnn.USE_AT = 'Y'
AND DATE(IFNULL(gbnn.PUSH_SEND_DT, CURDATE() - INTERVAL 1 DAY)) < CURDATE()
AND gbnn.NTCN_TME BETWEEN DATE_SUB(CURTIME(), INTERVAL 15 MINUTE) AND CURTIME()
AND gmdi.FCM_TOKEN IS NOT NULL
AND gmdi.FCM_TOKEN NOT IN (
SELECT FCM_TOKEN
FROM GC_BENEFIT_PUSH_SNDNG_ERRLOG
WHERE ERROR_CODE = 'UNREGISTERED'
)
ORDER BY gbnn.NTCN_TME
]]>
</select>
<!-- 섭취챌린지 마지막 푸시발송시간 수정 -->
<update id="updateBOBnftPushNtakchlSendDt"
parameterType="com.wb.domainserver.app.vo.AppPushVO">
<![CDATA[
UPDATE GC_BENEFIT_NTKCHL_NTCN
SET PUSH_SEND_DT = NOW()
WHERE BNF_NTK_NTCN_INNB = #{bnfNtkNtcnInnb}
]]>
</update>
<!-- 푸시 예약 발송건 조회 -->
<select id="selectBOBnftPushResveList"
parameterType="com.wb.domainserver.app.vo.AppPushVO"
resultType="dataMap">
<![CDATA[
SELECT gbpi.BNF_PUSH_INFO_INNB,
gbpi.BNF_PUSH_TRGET_DV_CD,
gbpi.PUSH_SEND_DT,
gbpi.PUSH_SJ,
gbpi.PUSH_CN,
(CASE WHEN gbpi.IMG_FIL_COURS IS NOT NULL THEN CONCAT(gbpi.IMG_CDNURL, gbpi.IMG_FIL_COURS) ELSE '' END) AS IMG_FIL_COURS,
gbpi.IMG_FIL_NM,
gbpi.DATA_URL,
gbpi.DATA_KEY,
gbpi.DATA_EXT
FROM GC_BENEFIT_PUSH_INFO gbpi
WHERE 1=1
AND gbpi.SOPMAL_CD = #{sopmalCd}
AND gbpi.DEL_AT = 'N'
AND gbpi.PUSH_SEND_DT IS NOT NULL
AND gbpi.PUSH_SEND_DT BETWEEN DATE_SUB(NOW(), INTERVAL 15 MINUTE) AND NOW()
AND NOT EXISTS (
SELECT 1
FROM GC_BENEFIT_PUSH_SNDNG_DTLS gbpsd
WHERE gbpsd.BNF_PUSH_INFO_INNB = gbpi.BNF_PUSH_INFO_INNB
AND gbpsd.SNDNG_AT = 'Y'
)
]]>
</select>
<!-- 혜택별 발송대상 푸시키 조회 -->
<select id="selectBOBnftPushMbrList"
parameterType="com.wb.domainserver.app.vo.AppPushVO"
resultType="dataMap">
SELECT
gmdi.MBR_INNB,
gmdi.FCM_TOKEN
FROM GC_MEMBER_DEVICE_INFO gmdi
JOIN GC_BENEFIT_AGREE gba
ON gmdi.SOPMAL_CD = gba.SOPMAL_CD
AND gmdi.MBR_INNB = gba.MBR_INNB
AND gmdi.MBR_DV_CD = gba.MBR_DV_CD
WHERE 1=1
AND gmdi.SOPMAL_CD = #{sopmalCd}
AND gmdi.PUSH_AGRE_AT = 'Y'
AND (#{bnfDvCd} = '000' OR gba.BNF_DV_CD = #{bnfDvCd}) /*대상 혜택*/
<if test='!"000".equals(bnfDvCd)'>
AND gba.BNF_AGRE_DV_CD = '010' /*알림동의*/
AND gba.AGRE_AT = 'Y'
</if>
AND gmdi.FCM_TOKEN IS NOT NULL
AND gmdi.FCM_TOKEN NOT IN (
SELECT FCM_TOKEN
FROM GC_BENEFIT_PUSH_SNDNG_ERRLOG
WHERE ERROR_CODE = 'UNREGISTERED'
)
GROUP BY gmdi.MBR_INNB, gmdi.FCM_TOKEN
</select>
<!-- 푸시발송내역 등록 -->
<insert id="insertBOBnftPushSndngDtls"
parameterType="com.wb.domainserver.app.vo.AppPushVO"
useGeneratedKeys="true"
keyProperty="bnfPushSndngDtlsInnb">
<![CDATA[
INSERT INTO GC_BENEFIT_PUSH_SNDNG_DTLS (
SOPMAL_CD,
BNF_PUSH_EVT_SETUP_INNB,
BNF_PUSH_INFO_INNB,
BNF_INNB,
SNDNG_AT,
SNDNG_TRGET_CNT,
REGIST_DT
) VALUES (
#{sopmalCd},
#{bnfPushEvtSetupInnb},
#{bnfPushInfoInnb},
#{bnfInnb},
#{sndngAt},
#{sndngTrgetCnt},
NOW()
)
]]>
</insert>
<!-- 푸시발송내역 수정 -->
<update id="updateBOBnftPushSndngDtls"
parameterType="com.wb.domainserver.app.vo.AppPushVO">
<![CDATA[
UPDATE GC_BENEFIT_PUSH_SNDNG_DTLS
SET BNF_INNB = #{bnfInnb},
SNDNG_AT = #{sndngAt},
SNDNG_TRGET_CNT = #{sndngTrgetCnt},
SNDNG_SUCCES_CNT = #{sndngSuccesCnt},
SNDNG_FAILR_CNT = #{sndngFailrCnt},
UPDT_DT = NOW()
WHERE BNF_PUSH_SNDNG_DTLS_INNB = #{bnfPushSndngDtlsInnb}
]]>
</update>
<!-- 푸시발송 에러내역 등록 -->
<insert id="insertBOBnftPushSndngErrlog"
parameterType="com.wb.domainserver.app.vo.AppPushVO"
useGeneratedKeys="true">
<![CDATA[
INSERT INTO GC_BENEFIT_PUSH_SNDNG_ERRLOG (
BNF_PUSH_SNDNG_DTLS_INNB,
ERROR_CODE,
FCM_TOKEN,
PUSH_SJ,
PUSH_CN,
PUSH_DATA,
IMG_FIL_COURS,
REGIST_DT
) VALUES (
#{bnfPushSndngDtlsInnb},
#{errorCode},
#{fcmToken},
#{pushSj},
#{pushCn},
#{pushData},
#{imgFilCours},
NOW()
)
]]>
</insert>
</mapper>

View File

@@ -0,0 +1,740 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.wb.domainserver.mapper.gcone.AtmcPurchsDcsnMapper">
<!-- ##############################################################################################
자동 구매확정 START
################################################################################################# -->
<!-- 대상 출고 상품 목록 조회 -->
<select id="selectTsExportOrderItemInqire">
<![CDATA[
SELECT GOR.RETURN_PROCS_STTUS_CD,
EXI.ORDR_GOODS_OPTN_INNB -- 주문상품옵션KEY
,EXI.DLIVY_GOODS_INNB
,EXI.OPTN_TY -- 주문상품옵션KEY
,EXI.SOPMAL_CD -- 주문상품옵션KEY
,(OIOP.STEP45 + OIOP.STEP55 + OIOP.STEP65 + OIOP.STEP75) AS QY
,0 AS PYMNT_PREARNGE_QY -- 지급예정수량
,(OIOP.ORDR_QY - OIOP.STEP85) AS ACCMLMNY_PYMNT_QY -- 적립금지급수량 5 ==> 구매확정
,OIOP.STEP85 AS PYMNT_PREARNGE_EXTSH_QY -- 지급예정소멸수량
,EX.ORDR_INNB -- 주문고유번호
,EX.DLIVY_CD_NB -- 출고 코드 번호
,EX.DLIVY_INNB -- 출고 고유번호
,OIOP.ORDR_DLVY_INNB -- 주문배송고유번호
,IFNULL(OIOP.MLG_VALID_PD, 36) AS MLG_VALID_PD
,IFNULL(OIOP.MLG_VALID_PD_AT, 'Y') AS MLG_VALID_PD_AT
,CASE
WHEN OIOP.STEP85 = 0 THEN ROUND(IFNULL(OIOP.MLG_ACCML_UNIT, 0) * ( OIOP.ORDR_QY - OIOP.STEP85 ) + IFNULL(OIOP.MLG_ACCML_REST, 0))
WHEN OIOP.STEP85 > 0 THEN ROUND(IFNULL(OIOP.MLG_ACCML_UNIT, 0) * ( OIOP.ORDR_QY - OIOP.STEP85 ))
END AS MLG_ACCML_AMT -- 지급 마일리지 금액
,O.MBR_INNB
,O.MBR_DV_CD
FROM GC_GOODS_EXPORT EX
INNER JOIN GC_GOODS_EXPORT_ITEM EXI
ON EXI.SOPMAL_CD = EX.SOPMAL_CD
AND EXI.DLIVY_INNB = EX.DLIVY_INNB
INNER JOIN GC_ORDER_ITEM_OPTION OIOP
ON EXI.SOPMAL_CD = OIOP.SOPMAL_CD
AND EXI.OPTN_TY = OIOP.OPTN_TY
AND EXI.ORDR_GOODS_OPTN_INNB = OIOP.ORDR_GOODS_OPTN_INNB
AND OIOP.ORDR_QY - OIOP.STEP85 - OIOP.PURCHS_DCSN_QY > 0
INNER JOIN GC_ORDER O
ON EX.SOPMAL_CD = O.SOPMAL_CD
AND EX.ORDR_INNB = O.ORDR_INNB
AND O.ORDR_STTUS_CD BETWEEN 55 AND 75
LEFT JOIN GC_ORDER_REFUND GOR
ON EX.SOPMAL_CD = GOR.SOPMAL_CD
AND EX.ORDR_INNB = GOR.ORDR_INNB
WHERE 1=1
AND EX.DLIVY_STTUS_CD BETWEEN 55 AND 75
AND EX.PURCHS_DCSN_DV_CD = '04'
AND EX.DLIVY_DT BETWEEN DATE_SUB(SYSDATE(), INTERVAL 2 MONTH) AND SYSDATE()
AND CASE WHEN 0 < (SELECT 1 FROM GC_SHOP SH
WHERE EX.SOPMAL_CD = SH.SOPMAL_CD
AND SH.ORDR_PURCHSR_DCSN_AT = 'Y')
THEN EX.DLIVY_COMPT_DT <= DATE_SUB(SYSDATE(), INTERVAL (SELECT SH.ORDR_ATMC_PURCHS_DCSN_PD FROM GC_SHOP SH
WHERE EX.SOPMAL_CD = SH.SOPMAL_CD) DAY)
ELSE 0
END
AND (GOR.RETURN_PROCS_STTUS_CD IS NULL OR GOR.RETURN_PROCS_STTUS_CD <> '01') -- 반품신청 상태 상품있을 경우 제외
]]>
</select>
<!-- 주문 상품 옵션 자동 구매 확정 -->
<update id="updateTsPurchsDcsnOrdrItemUpdt"
parameterType="dataMap">
<![CDATA[
UPDATE GC_ORDER_ITEM_OPTION SET
ORDR_STTUS_CD =
CASE
WHEN (ORDR_QY - STEP85) > #{qy} THEN '70'
WHEN (ORDR_QY - STEP85) <= #{qy} THEN '75'
ELSE ORDR_STTUS_CD
END
,STEP45 = 0
,STEP55 = 0
,STEP65 = 0
,STEP75 = #{qy}
,PURCHS_DCSN_AT =
CASE
WHEN #{accmlmnyPymntQy} > 0 THEN 'Y'
ELSE 'N'
END
,PURCHS_DCSN_DT =
CASE
WHEN #{accmlmnyPymntQy} > 0 THEN SYSDATE()
ELSE PURCHS_DCSN_DT
END
,PURCHS_DCSN_QY = #{accmlmnyPymntQy}
,UPDT_DT = SYSDATE()
WHERE SOPMAL_CD = #{sopmalCd}
AND OPTN_TY = #{optnTy}
AND ORDR_GOODS_OPTN_INNB = #{ordrGoodsOptnInnb}
]]>
</update>
<!-- 주문 배송 자동 구매 확정 -->
<update id="updateTsPurchsDcsnOrdrDlvyUpdt">
<![CDATA[
UPDATE GC_ORDER_SHIPPING SH SET
SH.ORDR_STTUS_CD =
CASE
WHEN (
SELECT COUNT(*)
FROM GC_ORDER_ITEM_OPTION OIOP
WHERE OIOP.SOPMAL_CD = SH.SOPMAL_CD
AND OIOP.ORDR_DLVY_INNB = SH.ORDR_DLVY_INNB
AND OIOP.PURCHS_DCSN_AT = 'Y'
AND (OIOP.ORDR_QY - OIOP.STEP85) = OIOP.STEP75
) = (
SELECT COUNT(*)
FROM GC_ORDER_ITEM_OPTION OIOP
WHERE OIOP.SOPMAL_CD = SH.SOPMAL_CD
AND OIOP.ORDR_DLVY_INNB = SH.ORDR_DLVY_INNB
) THEN '75'
ELSE SH.ORDR_STTUS_CD
END
,SH.UPDT_DT = SYSDATE()
WHERE SH.SOPMAL_CD = #{sopmalCd}
AND SH.ORDR_INNB = #{ordrInnb}
]]>
<choose>
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(ordrDlvyInnb)">
AND SH.ORDR_DLVY_INNB = #{ordrDlvyInnb}
</when>
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(ordrDlvyInnbArr)">
<![CDATA[
AND SH.ORDR_DLVY_INNB IN
]]>
<foreach collection="ordrDlvyInnbArr" item="ordrDlvyInnbArr" open="(" close=")" separator=",">
#{ordrDlvyInnbArr}
</foreach>
</when>
</choose>
<![CDATA[
AND SH.USE_AT = 'Y'
]]>
</update>
<!-- 주문 자동 구매 확정 -->
<update id="updateTsOrdrStatusUpdt6575">
<![CDATA[
UPDATE GC_ORDER O SET
O.ORDR_STTUS_CD =
CASE
WHEN (
SELECT COUNT(*)
FROM GC_ORDER_SHIPPING SH
WHERE O.SOPMAL_CD = SH.SOPMAL_CD
AND O.ORDR_INNB = SH.ORDR_INNB
AND SH.ORDR_STTUS_CD = '75'
) = (
SELECT COUNT(*)
FROM GC_ORDER_SHIPPING SH
WHERE O.SOPMAL_CD = SH.SOPMAL_CD
AND O.ORDR_INNB = SH.ORDR_INNB
) THEN '75'
WHEN (
SELECT COUNT(*)
FROM GC_ORDER_SHIPPING SH
WHERE O.SOPMAL_CD = SH.SOPMAL_CD
AND O.ORDR_INNB = SH.ORDR_INNB
AND SH.ORDR_STTUS_CD = '70'
) = (
SELECT COUNT(*)
FROM GC_ORDER_SHIPPING SH
WHERE O.SOPMAL_CD = SH.SOPMAL_CD
AND O.ORDR_INNB = SH.ORDR_INNB
) THEN '70'
WHEN (
SELECT COUNT(*)
FROM GC_ORDER_SHIPPING SH
WHERE O.SOPMAL_CD = SH.SOPMAL_CD
AND O.ORDR_INNB = SH.ORDR_INNB
AND SH.ORDR_STTUS_CD = '65'
) = (
SELECT COUNT(*)
FROM GC_ORDER_SHIPPING SH
WHERE O.SOPMAL_CD = SH.SOPMAL_CD
AND O.ORDR_INNB = SH.ORDR_INNB
) THEN '65'
WHEN (
SELECT COUNT(*)
FROM GC_ORDER_SHIPPING SH
WHERE O.SOPMAL_CD = SH.SOPMAL_CD
AND O.ORDR_INNB = SH.ORDR_INNB
AND SH.ORDR_STTUS_CD = '60'
) = (
SELECT COUNT(*)
FROM GC_ORDER_SHIPPING SH
WHERE O.SOPMAL_CD = SH.SOPMAL_CD
AND O.ORDR_INNB = SH.ORDR_INNB
) THEN '60'
ELSE (
SELECT
CASE
WHEN EXISTS (
SELECT 1
FROM GC_ORDER_SHIPPING SH
WHERE O.SOPMAL_CD = SH.SOPMAL_CD
AND O.ORDR_INNB = SH.ORDR_INNB
AND SH.ORDR_STTUS_CD = '70'
) THEN '70'
WHEN EXISTS (
SELECT 1
FROM GC_ORDER_SHIPPING SH
WHERE O.SOPMAL_CD = SH.SOPMAL_CD
AND O.ORDR_INNB = SH.ORDR_INNB
AND SH.ORDR_STTUS_CD = '60'
) THEN '60'
WHEN EXISTS (
SELECT 1
FROM GC_ORDER_SHIPPING SH
WHERE O.SOPMAL_CD = SH.SOPMAL_CD
AND O.ORDR_INNB = SH.ORDR_INNB
AND SH.ORDR_STTUS_CD = '65'
) THEN '65'
WHEN EXISTS (
SELECT 1
FROM GC_ORDER_SHIPPING SH
WHERE O.SOPMAL_CD = SH.SOPMAL_CD
AND O.ORDR_INNB = SH.ORDR_INNB
AND SH.ORDR_STTUS_CD = '75'
) THEN '75'
ELSE O.ORDR_STTUS_CD
END
FROM GC_ORDER_SHIPPING SH
WHERE O.SOPMAL_CD = SH.SOPMAL_CD
AND O.ORDR_INNB = SH.ORDR_INNB
LIMIT 1
)
END
,O.UPDT_DT = SYSDATE()
WHERE O.SOPMAL_CD = #{sopmalCd}
AND O.ORDR_INNB = #{ordrInnb}
AND O.USE_AT = 'Y'
]]>
</update>
<!-- 구매 확정 상태 수정 -->
<update id="updateTsPurchsDcsnSttusUpdt">
<![CDATA[
UPDATE GC_GOODS_EXPORT EX SET
EX.DLIVY_STTUS_CD =
CASE
WHEN (
SELECT COUNT(1)
FROM GC_GOODS_EXPORT_ITEM EXI
INNER JOIN GC_ORDER_ITEM_OPTION OIOP ON EXI.SOPMAL_CD = OIOP.SOPMAL_CD
AND EXI.OPTN_TY = OIOP.OPTN_TY
AND EXI.ORDR_GOODS_OPTN_INNB = OIOP.ORDR_GOODS_OPTN_INNB
AND OIOP.ORDR_STTUS_CD = '75'
WHERE 1=1
AND EXI.SOPMAL_CD = EX.SOPMAL_CD
AND EXI.DLIVY_INNB = EX.DLIVY_INNB
) = (
SELECT COUNT(1)
FROM GC_GOODS_EXPORT_ITEM EXI
INNER JOIN GC_ORDER_ITEM_OPTION OIOP ON EXI.SOPMAL_CD = OIOP.SOPMAL_CD
AND EXI.OPTN_TY = OIOP.OPTN_TY
AND EXI.ORDR_GOODS_OPTN_INNB = OIOP.ORDR_GOODS_OPTN_INNB
WHERE 1=1
AND EXI.SOPMAL_CD = EX.SOPMAL_CD
AND EXI.DLIVY_INNB = EX.DLIVY_INNB
) THEN '75'
WHEN (
SELECT COUNT(1)
FROM GC_GOODS_EXPORT_ITEM EXI
INNER JOIN GC_ORDER_ITEM_OPTION OIOP ON EXI.SOPMAL_CD = OIOP.SOPMAL_CD
AND EXI.OPTN_TY = OIOP.OPTN_TY
AND EXI.ORDR_GOODS_OPTN_INNB = OIOP.ORDR_GOODS_OPTN_INNB
AND OIOP.ORDR_STTUS_CD = '70'
WHERE 1=1
AND EXI.SOPMAL_CD = EX.SOPMAL_CD
AND EXI.DLIVY_INNB = EX.DLIVY_INNB
) = (
SELECT COUNT(1)
FROM GC_GOODS_EXPORT_ITEM EXI
INNER JOIN GC_ORDER_ITEM_OPTION OIOP ON EXI.SOPMAL_CD = OIOP.SOPMAL_CD
AND EXI.OPTN_TY = OIOP.OPTN_TY
AND EXI.ORDR_GOODS_OPTN_INNB = OIOP.ORDR_GOODS_OPTN_INNB
WHERE 1=1
AND EXI.SOPMAL_CD = EX.SOPMAL_CD
AND EXI.DLIVY_INNB = EX.DLIVY_INNB
) THEN '70'
ELSE DLIVY_STTUS_CD
END,
EX.STTUS_UPDT_DT = SYSDATE(),
EX.PURCHS_DCSN_DV_CD =
CASE
WHEN (
SELECT COUNT(1)
FROM GC_GOODS_EXPORT_ITEM EXI
INNER JOIN GC_ORDER_ITEM_OPTION OIOP ON EXI.SOPMAL_CD = OIOP.SOPMAL_CD
AND EXI.OPTN_TY = OIOP.OPTN_TY
AND EXI.ORDR_GOODS_OPTN_INNB = OIOP.ORDR_GOODS_OPTN_INNB
WHERE 1=1
AND OIOP.PURCHS_DCSN_AT = 'Y'
AND EXI.SOPMAL_CD = EX.SOPMAL_CD
AND EXI.DLIVY_INNB = EX.DLIVY_INNB
) = (
SELECT COUNT(1)
FROM GC_GOODS_EXPORT_ITEM EXI
INNER JOIN GC_ORDER_ITEM_OPTION OIOP ON EXI.SOPMAL_CD = OIOP.SOPMAL_CD
AND EXI.OPTN_TY = OIOP.OPTN_TY
AND EXI.ORDR_GOODS_OPTN_INNB = OIOP.ORDR_GOODS_OPTN_INNB
WHERE 1=1
AND EXI.SOPMAL_CD = EX.SOPMAL_CD
AND EXI.DLIVY_INNB = EX.DLIVY_INNB
) THEN #{purchsDcsnDvCd}
ELSE PURCHS_DCSN_DV_CD
END,
EX.PURCHS_DCSN_DT =
CASE
WHEN (
SELECT COUNT(1)
FROM GC_GOODS_EXPORT_ITEM EXI
INNER JOIN GC_ORDER_ITEM_OPTION OIOP ON EXI.SOPMAL_CD = OIOP.SOPMAL_CD
AND EXI.OPTN_TY = OIOP.OPTN_TY
AND EXI.ORDR_GOODS_OPTN_INNB = OIOP.ORDR_GOODS_OPTN_INNB
WHERE 1=1
AND OIOP.PURCHS_DCSN_AT = 'Y'
AND EXI.SOPMAL_CD = EX.SOPMAL_CD
AND EXI.DLIVY_INNB = EX.DLIVY_INNB
) = (
SELECT COUNT(1)
FROM GC_GOODS_EXPORT_ITEM EXI
INNER JOIN GC_ORDER_ITEM_OPTION OIOP ON EXI.SOPMAL_CD = OIOP.SOPMAL_CD
AND EXI.OPTN_TY = OIOP.OPTN_TY
AND EXI.ORDR_GOODS_OPTN_INNB = OIOP.ORDR_GOODS_OPTN_INNB
WHERE 1=1
AND EXI.SOPMAL_CD = EX.SOPMAL_CD
AND EXI.DLIVY_INNB = EX.DLIVY_INNB
) THEN SYSDATE()
ELSE EX.PURCHS_DCSN_DT
END
,EX.UPDT_DT = SYSDATE()
WHERE EX.SOPMAL_CD = #{sopmalCd}
AND EX.DLIVY_INNB = #{dlivyInnb}
]]>
</update>
<!-- 출고 상품 마일리지 적립 관련 수량 수정 -->
<update id="updateTsExportItemQyAllUpdt">
<![CDATA[
UPDATE GC_GOODS_EXPORT_ITEM EXI SET
EXI.PYMNT_PREARNGE_QY = #{pymntPrearngeQy}
,EXI.ACCMLMNY_PYMNT_QY = #{accmlmnyPymntQy}
,EXI.PYMNT_PREARNGE_EXTSH_QY = #{pymntPrearngeExtshQy}
WHERE 1 = 1
AND EXI.SOPMAL_CD = #{sopmalCd}
AND EXI.OPTN_TY = #{optnTy}
AND EXI.ORDR_GOODS_OPTN_INNB = #{ordrGoodsOptnInnb}
]]>
</update>
<!-- 출고 상품 마일리지 적립 관련 수량 수정 _ 마일리지 적립 실패했을 경우 -->
<update id="updateTsExportItemQyAllUpdtFail">
<![CDATA[
UPDATE GC_GOODS_EXPORT_ITEM EXI SET
EXI.PYMNT_PREARNGE_QY = #{pymntPrearngeQy}
,EXI.ACCMLMNY_PYMNT_QY = 0
,EXI.PYMNT_PREARNGE_EXTSH_QY = #{accmlmnyPymntQy}
WHERE 1 = 1
AND EXI.SOPMAL_CD = #{sopmalCd}
AND EXI.OPTN_TY = #{optnTy}
AND EXI.ORDR_GOODS_OPTN_INNB = #{ordrGoodsOptnInnb}
]]>
</update>
<!-- 출고 상품 마일리지 적립 관련 수량 수정 _ 마일리지 적립 금액이 없을 경우 -->
<update id="updateTsExportItemQyAllUpdtNoMlg">
<![CDATA[
UPDATE GC_GOODS_EXPORT_ITEM EXI SET
EXI.PYMNT_PREARNGE_EXTSH_QY = #{pymntPrearngeExtshQy}
WHERE EXI.DLIVY_GOODS_INNB = #{dlivyGoodsInnb}
]]>
</update>
<select id="selectBOShopInqire">
SELECT
*
FROM
GC_SHOP SHOP
WHERE 1=1
AND SHOP.SOPMAL_CD = #{sopmalCd}
</select>
<!-- 손실 조회 -->
<select id="selectBOLoss"
parameterType="com.wb.domainserver.export.vo.TsMlgVO"
resultType="dataMap">
SELECT
MLG_INNB
, LOSS
, MBR_INNB
, SOPMAL_CD
, MBR_DV_CD
, ORDR_INNB
, ACCMLMNY_AMT
FROM
GC_MILEAGE
WHERE 1=1
AND MBR_DV_CD = #{mbrDvCd}
AND MBR_INNB = #{mbrInnb}
AND LOSS > 0
ORDER BY MLG_INNB ASC
</select>
<select id="selectBOMlgLossAddCanclMlgInnb" resultType="java.math.BigInteger">
SELECT
MLG_INNB
FROM GC_MILEAGE GM
WHERE 1=1
AND GM.MBR_DV_CD = #{mbrDvCd}
AND GM.MBR_INNB = #{mbrInnb}
AND GM.ORDR_INNB = #{ordrInnb}
AND GM.MLG_ACCML_DV_CD = '_add'
LIMIT 1
</select>
<!-- 마일리지 손실 수정 -->
<update id="updateBOMlgLoss">
UPDATE
GC_MILEAGE
SET
LOSS = #{loss}
, UPDUSR = #{updusr}
, UPDT_DT = NOW()
, UPDUSR_DV_CD = #{updusrDvCd}
WHERE 1=1
AND MLG_INNB = #{mlgInnb}
</update>
<!-- 적립 마일리지 등록 -->
<insert id="insertBOMlgAdd"
keyProperty="mlgInnb"
useGeneratedKeys="true"
>
INSERT INTO GC_MILEAGE
(
SOPMAL_CD
,ORDR_INNB
,MBR_INNB
,MBR_DV_CD
,BBSCTT_INNB
,ORDR_CD
,MLG_DV_CD
,MLG_ACCML_DV_CD
,MLG_APPLC_DV_CD
,MLG_APPLC_RESN
,ACCMLMNY_AMT
,BLCE
,LOSS
,USE_POSBL_BGN_DT
,USE_POSBL_END_DT
,ORDR_INFO
,MANAGE_CD
,MANAGE_MEMO
,END_AT
,CANCL_AT
,EXTSH_BATCH_BUNDLE
,ONLINE_OFLNE_DV_CD
,STR_INNB
,STR_CD
,STRNM
,STR_DV_CD
,POS_CD
,REGUSR_DV_CD
,REGUSR
,REGIST_DT
)
VALUES
(
#{sopmalCd}
,#{ordrInnb}
,#{mbrInnb}
,#{mbrDvCd}
,#{bbscttInnb}
,#{ordrCd}
,#{mlgDvCd}
,#{mlgAccmlDvCd}
,#{mlgApplcDvCd}
,#{mlgApplcResn}
,#{accmlmnyAmt}
,#{blce}
,#{loss}
,CURDATE()
<choose>
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(mlgValidPdAt, 'Y')
and @com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(mlgValidPd)">
-- 마일리지 유효개월수가 입력된 경우
, DATE_ADD(LAST_DAY(DATE_ADD(CURDATE(), INTERVAL ${mlgValidPd} MONTH))
, INTERVAL '23:59:59' HOUR_SECOND)
</when>
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(mlgValidPd, 0)
and @com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(usePosblEndDt)">
-- 특정일자를 입력한 경우
, #{usePosblEndDt}
</when>
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(mlgValidPdAt, 'N')
and @com.wb.domainserver.util.dataaccess.MybaitsUtil@isEmpty(usePosblEndDt)">
-- 마일리지 유효개월수 제한 N인 경우
, '9999-12-31 23:59:59'
</when>
</choose>
,#{ordrInfo}
,#{manageCd}
,#{manageMemo}
,'N'
,'N'
,#{extshBatchBundle}
,#{onlineOflneDvCd}
,#{strInnb}
,#{strCd}
,#{strnm}
,#{strDvCd}
,#{posCd}
,#{regusrDvCd}
,#{regusr}
, NOW()
)
</insert>
<!-- 마일리지 손실 수정 -->
<select id="updateBOMlgLossList">
<foreach collection="list" item="mlg" separator=";">
UPDATE
GC_MILEAGE
SET
LOSS = #{mlg.loss}
, UPDUSR_DV_CD = '03'
, UPDUSR = #{mlg.mbrInnb}
, UPDT_DT = NOW()
WHERE 1=1
AND MLG_INNB = #{mlg.mlgInnb}
</foreach>
</select>
<!-- 마일리지 잔액 수정 -->
<update id="updateBOMlgBlce">
UPDATE
GC_MILEAGE
SET
BLCE = #{blce}
, UPDUSR = #{updusr}
, UPDT_DT = NOW()
, UPDUSR_DV_CD = #{updusrDvCd}
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(canclAt)">
, CANCL_AT = #{canclAt}
</if>
WHERE 1=1
AND MBR_DV_CD = #{mbrDvCd}
AND MBR_INNB = #{mbrInnb}
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(sopmalCd)">
AND SOPMAL_CD = #{sopmalCd}
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(bbscttInnb)">
AND BBSCTT_INNB = #{bbscttInnb}
</if>
AND MLG_INNB = #{mlgInnb}
AND MLG_DV_CD = '01'
AND END_AT = 'N'
AND CANCL_AT = 'N'
AND USE_POSBL_END_DT >= NOW()
</update>
<!-- 주문 로그 등록 -->
<insert id="insertOrderLog" >
INSERT INTO GC_ORDER_LOG (
ORDR_INNB
, SOPMAL_CD
, LOG_SJ
, LOG_DTL_CN
, ADIT_INFO_CN
, DLIVY_INNB
, ORDER_REFUND_INNB
, LOG_DV_CD
, DV_CD
, OPETR_NM
, QY
, AMT
, PROCS_DT
) VALUES (
#{ordrInnb}
, #{sopmalCd}
, #{logSj}
, #{logDtlCn}
, #{aditInfoCn}
, #{dlivyInnb}
, #{orderRefundInnb}
, #{logDvCd}
, #{dvCd}
, #{opetrNm}
, #{qy}
, #{amt}
, SYSDATE()
)
</insert>
<!-- 마일리지 지급 -->
<insert id="insertBOMlgDn"
useGeneratedKeys="true"
keyProperty="mlgInnb"
parameterType="com.wb.domainserver.export.vo.TsMlgVO">
INSERT INTO GC_MILEAGE
(
SOPMAL_CD
,ORDR_INNB
,MBR_INNB
,MBR_DV_CD
,BBSCTT_INNB
,ORDR_CD
,MLG_DV_CD
,MLG_ACCML_DV_CD
,MLG_APPLC_DV_CD
,MLG_APPLC_RESN
,ACCMLMNY_AMT
,BLCE
,LOSS
,USE_POSBL_BGN_DT
,USE_POSBL_END_DT
,ORDR_INFO
,MANAGE_CD
,MANAGE_MEMO
,END_AT
,CANCL_AT
,EXTSH_BATCH_BUNDLE
,ONLINE_OFLNE_DV_CD
,STR_INNB
,STR_CD
,STRNM
,STR_DV_CD
,POS_CD
,REGUSR_DV_CD
,REGUSR
,REGIST_DT
)
VALUES
(
#{sopmalCd}
,#{ordrInnb}
,#{mbrInnb}
,#{mbrDvCd}
,#{bbscttInnb}
,#{ordrCd}
,#{mlgDvCd}
,#{mlgAccmlDvCd}
,#{mlgApplcDvCd}
,#{mlgApplcResn}
,#{accmlmnyAmt}
,#{blce}
,#{loss}
,CURDATE()
, '9999-12-31 23:59:59'
,#{ordrInfo}
,#{manageCd}
,#{manageMemo}
,'N'
,'N'
,#{extshBatchBundle}
,#{onlineOflneDvCd}
,#{strInnb}
,#{strCd}
,#{strnm}
,#{strDvCd}
,#{posCd}
,#{regusrDvCd}
,#{regusr}
, NOW()
)
</insert>
<insert id="insertBOMlgUseDtlAddCancl"
useGeneratedKeys="true"
keyProperty="useCanclMlgInnb"
parameterType="com.wb.domainserver.export.vo.BOMlgUseDtlVO">
<![CDATA[
INSERT INTO GC_MILEAGE_USE_DTL
(
ACCML_MLG_INNB
,ACCML_SOPMAL_CD
,USE_SOPMAL_CD
,USE_MLG_INNB
,MLG_ACCML_DV_CD
,USE_AMT
,FRST_USE_AMT
,CANCL_AMT
,CANCL_AT
,UPPER_USE_CANCL_MLG_INNB
,LOSS_MLG_INNB
,REGUSR_DV_CD
,REGUSR
,REGIST_DT
)
VALUES
(
#{accmlMlgInnb}
,#{accmlSopmalCd}
,#{useSopmalCd}
,#{useMlgInnb}
,#{mlgAccmlDvCd}
,#{useAmt}
,#{frstUseAmt}
,#{canclAmt}
,#{canclAt}
,#{upperUseCanclMlgInnb}
,#{lossMlgInnb}
,#{regusrDvCd}
,#{regusr}
, NOW()
)
]]>
</insert>
<!--> ##############################################################################################
자동 구매확정 END
################################################################################################# -->
</mapper>

View File

@@ -0,0 +1,562 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.wb.domainserver.mapper.gcone.AtmcrcpmnyMapper">
<!-- 현금영수증 신청할 데이터 조회 -->
<select id = "selectCshRciptRegist"
resultType="dataMap">
<![CDATA[
SELECT
FS.SELNG_PRUF_INNB,
FS.SOPMAL_CD,
FS.ORDR_INNB,
FO.SETLE_COMPT_DT,
FS.ORDR_SETLE_INNB,
FS.ORDRR_NM,
IFNULL(CAST(AES_DECRYPT(UNHEX(FS.ORDRR_EMAIL) , '1df5be2f7e90ae36') AS CHAR(50)),'') AS ORDRR_EMAIL,
CASE WHEN IFNULL(FS.CRTNB,'') = '' THEN '0100001234' ELSE FS.CRTNB END AS CRTNB,
FS.GOODS_NM,
FS.ISSU_TRGET_DV_CD,
FS.ISSU_STTUS_CD,
ROUND(FS.AMT) AMT,
ROUND(FS.SPLPRIC) SPLPRIC,
ROUND(FS.VAT_AMT) VAT_AMT
FROM GC_SALES FS
INNER JOIN GC_ORDER_SETLE FOS
ON FS.SOPMAL_CD = FOS.SOPMAL_CD
AND FS.ORDR_SETLE_INNB = FOS.ORDR_SETLE_INNB
INNER JOIN GC_ORDER FO
ON FOS.SOPMAL_CD = FO.SOPMAL_CD
AND FOS.ORDR_INNB = FO.ORDR_INNB
WHERE 1=1
AND FS.AMT > 0
AND FS.REQST_DV_CD = '02'
AND FS.ISSU_STTUS_CD IN ('01','04') -- ('01'): 신청 ('04'):실패건
AND FOS.SETLE_TY_CD IN ('02', '03','04','05','06') -- ('02'): 무통장, ('03','04','05','06'): 무통장 외에 가상계좌와 실시간 계좌이체 누락분까지 포함
AND FO.ORDR_STTUS_CD BETWEEN '25' AND '75'
AND FO.SETLE_COMPT_DT > DATE_SUB(NOW(), INTERVAL 100 DAY)
]]>
</select>
<!-- 미입금 내역 조회 -->
<select id="selectDepositRequest"
parameterType = "com.wb.domainserver.atmcrcpmny.vo.TsDepositRequestVO"
resultType = "com.wb.domainserver.atmcrcpmny.vo.TsDepositRequestVO">
<![CDATA[
SELECT
*
FROM GC_ORDER
WHERE 1=1
AND ORDR_STTUS_CD = '15'
AND ORDR_RCEPT_DT <= DATE_SUB(CURDATE(), INTERVAL 4 DAY)
]]>
</select>
<!-- 자동주문취소 조회 -->
<select id="selectOrderCancel"
resultType = "DataMap">
<![CDATA[
SELECT
O.ORDR_INNB,
O.SOPMAL_CD,
O.ORDR_STTUS_CD AS CURR_ORDR_STTUS_CD,
O.MBR_INNB,
IFNULL(O.MBR_DV_CD, '') AS MBR_DV_CD,
GOS.SETLE_AMT,SMRT_SHOPNG_ORDRNB,
COALESCE(GM.ACCMLMNY_AMT, 0) AS ACCMLMNY_AMT
FROM GC_ORDER O
INNER JOIN GC_SHOP GS
ON O.SOPMAL_CD = GS.SOPMAL_CD
AND O.USE_AT = 'Y'
AND GS.ORDR_CANCL_ATMC_EXECUT_AT = 'Y'
LEFT JOIN GC_ORDER_SETLE GOS
ON O.SOPMAL_CD = GOS.SOPMAL_CD
AND O.ORDR_INNB = GOS.ORDR_INNB
AND GOS.SETLE_TY_CD IN ('02','04','05')
LEFT JOIN GC_MILEAGE GM
ON O.SOPMAL_CD = GM.SOPMAL_CD
AND O.ORDR_INNB = GM.ORDR_INNB
AND GM.END_AT = 'N'
AND GM.CANCL_AT = 'N'
AND GM.MLG_ACCML_DV_CD = 'use'
WHERE 1=1
AND O.USE_AT = 'Y'
AND O.ORDR_STTUS_CD = '15'
AND O.SMRT_SHOPNG_ORDRNB IS NULL
AND O.ORDR_RCEPT_DT <= DATE_SUB(DATE_FORMAT(CURDATE(), '%Y-%m-%d 23:59:59'), INTERVAL ORDR_CANCL_ATMC_PROCS_PD DAY)
]]>
</select>
<!-- 선물하기주문취소 조회 -->
<select id="selectGiftOrderCancel"
resultType = "DataMap">
<![CDATA[
SELECT
GOS.GIFT_STTUS_CD,
O.ORDR_INNB,
O.SOPMAL_CD,
IFNULL(O.ORDRR_NM, 0) AS MBR_NM,
IFNULL(O.MBR_INNB, 0) AS MBR_INNB,
IFNULL(O.MBR_DV_CD, '') AS MBR_DV_CD,
GOS.ORDR_DLVY_INNB,
'배송주소 미입력에 의한 자동취소' as RETURN_RESN_CN,
'' as RETURN_RESN_CD,
'시스템' as USER_NAME ,
0 as MNGR_INNB ,
0 as REGUSR,
0 as UPDUSR
FROM GC_ORDER O
INNER JOIN GC_SHOP GS
ON O.SOPMAL_CD = GS.SOPMAL_CD
AND O.USE_AT = 'Y'
AND GS.GIFT_DLVY_AT = 'Y'
INNER JOIN GC_ORDER_SHIPPING GOS
ON O.SOPMAL_CD = GOS.SOPMAL_CD
AND O.ORDR_INNB = GOS.ORDR_INNB
AND GOS.GIFT_STTUS_CD IN ('01','05') -- 01:배송지미입력, 05:배송지미입력 알림
WHERE 1=1
AND O.ORDR_TY_CD = '04' -- 선물하기
AND O.ORDR_STTUS_CD = '25' -- 결제확인
AND O.USE_AT = 'Y'
AND O.ORDR_RCEPT_DT <= DATE_SUB(DATE_FORMAT(CURDATE(), '%Y-%m-%d 23:59:59'), INTERVAL GS.GIFT_DLVY_ATMC_CANCL_PD+1 DAY)
UNION ALL
SELECT
GOS.GIFT_STTUS_CD,
O.ORDR_INNB,
O.SOPMAL_CD,
IFNULL(O.ORDRR_NM, 0) AS MBR_NM,
IFNULL(O.MBR_INNB, 0) AS MBR_INNB,
IFNULL(O.MBR_DV_CD, '') AS MBR_DV_CD,
GOS.ORDR_DLVY_INNB,
'선물거절 의한 자동취소' as RETURN_RESN_CN,
'' as RETURN_RESN_CD,
'시스템' as USER_NAME ,
0 as MNGR_INNB ,
0 as REGUSR,
0 as UPDUSR
FROM GC_ORDER O
INNER JOIN GC_SHOP GS
ON O.SOPMAL_CD = GS.SOPMAL_CD
AND O.USE_AT = 'Y'
AND GS.GIFT_DLVY_AT = 'Y'
INNER JOIN GC_ORDER_SHIPPING GOS
ON O.SOPMAL_CD = GOS.SOPMAL_CD
AND O.ORDR_INNB = GOS.ORDR_INNB
AND GOS.GIFT_STTUS_CD = '03' -- 03:선물거절
WHERE 1=1
AND O.ORDR_TY_CD = '04' -- 선물하기
AND O.ORDR_STTUS_CD = '25' -- 결제확인
AND O.USE_AT = 'Y'
]]>
</select>
<!-- 문자 발송 삭제 대상 조회 -->
<!-- <select id="selectGcSms" -->
<!-- parameterType = "com.wb.domainserver.atmcrcpmny.vo.TsUpdateClearPersonalInfoShopVO" -->
<!-- resultType = "DataMap"> -->
<!-- <![CDATA[ -->
<!-- SELECT -->
<!-- GST.SMS_TO_INNB -->
<!-- FROM GC_SMS_TO GST -->
<!-- LEFT JOIN GC_SMS GS -->
<!-- ON GST.SOPMAL_CD = GS.SOPMAL_CD -->
<!-- AND GST.SMS_INNB = GS.SMS_INNB -->
<!-- WHERE 1=1 -->
<!-- AND GS.SNDNG_DT < #{deleteDate} -->
<!-- AND ( -->
<!-- CSTMR_IDNB=0 OR CSTMR_IDNB IS NULL OR -->
<!-- CSTMR_IDNB IN ( SELECT MBR_INNB FROM GC_MEMBER WHERE USE_AT = 'N' ) -->
<!-- ) -->
<!-- ]]> -->
<!-- </select> -->
<!-- 문자 발송 대상 삭제 -->
<delete id="deleteGcSmsTo"
parameterType = "com.wb.domainserver.atmcrcpmny.vo.TsUpdateClearPersonalInfoShopVO">
<![CDATA[
DELETE FROM GC_SMS_TO
WHERE 1=1
AND SMS_TO_INNB IN (
SELECT
*
FROM (
SELECT
GST.SMS_TO_INNB
FROM GC_SMS_TO GST
LEFT JOIN GC_SMS GS
ON GST.SOPMAL_CD = GS.SOPMAL_CD
AND GST.SMS_INNB = GS.SMS_INNB
WHERE 1=1
AND GS.SNDNG_DT > DATE_ADD( DATE_ADD( NOW() , INTERVAL ${deleteMonths} MONTH) , INTERVAL ${bufferDays} DAY )
AND GS.SNDNG_DT < DATE_ADD( NOW() , INTERVAL ${deleteMonths} MONTH)
AND (
CSTMR_IDNB=0 OR CSTMR_IDNB IS NULL OR
CSTMR_IDNB IN ( SELECT MBR_INNB FROM GC_MEMBER WHERE USE_AT = 'N' )
)
ORDER BY SMS_TO_INNB LIMIT 500000
) AS A
)
]]>
</delete>
<!-- 이메일 발송로그 삭제 -->
<delete id="deleteGcEmailLog"
parameterType = "com.wb.domainserver.atmcrcpmny.vo.TsUpdateClearPersonalInfoShopVO">
<![CDATA[
DELETE FROM GC_EMAIL_LOG
WHERE 1=1
AND REGIST_DT > DATE_ADD( DATE_ADD( NOW() , INTERVAL ${deleteMonths} MONTH) , INTERVAL ${bufferDays} DAY )
AND REGIST_DT < DATE_ADD( NOW() , INTERVAL ${deleteMonths} MONTH)
AND (
MBR_INNB=0 OR MBR_INNB IS NULL OR
MBR_INNB IN ( SELECT MBR_INNB FROM GC_MEMBER WHERE USE_AT = 'N' )
)
ORDER BY EMAIL_LOG_INNB LIMIT 500000
]]>
</delete>
<!-- 이메일 대상관리 삭제 -->
<delete id="deleteGcEmailTo"
parameterType = "com.wb.domainserver.atmcrcpmny.vo.TsUpdateClearPersonalInfoShopVO">
<![CDATA[
DELETE FROM GC_EMAIL_TO
WHERE 1=1
AND SNDNG_DT > DATE_ADD( DATE_ADD( NOW() , INTERVAL ${deleteMonths} MONTH) , INTERVAL ${bufferDays} DAY )
AND SNDNG_DT < DATE_ADD( NOW() , INTERVAL ${deleteMonths} MONTH)
AND (
MBR_INNB=0 OR MBR_INNB IS NULL OR
MBR_INNB IN ( SELECT MBR_INNB FROM GC_MEMBER WHERE USE_AT = 'N' )
)
ORDER BY EMAIL_SNDNG_INNB LIMIT 500000
]]>
</delete>
<!-- update할 주문 고유번호 조회 -->
<!-- <select id="selectUpdateTrget" -->
<!-- parameterType = "com.wb.domainserver.atmcrcpmny.vo.TsUpdateClearPersonalInfoShopVO" -->
<!-- resultType = "com.wb.domainserver.atmcrcpmny.vo.TsUpdateClearPersonalInfoShopVO"> -->
<!-- <![CDATA[ -->
<!-- SELECT -->
<!-- O.ORDR_INNB -->
<!-- FROM GC_ORDER O -->
<!-- LEFT JOIN GC_MEMBER M -->
<!-- ON (M.MBR_INNB=O.MBR_INNB) -->
<!-- WHERE 1=1 -->
<!-- AND O.ORDR_RCEPT_DT < #{updateDate} -->
<!-- AND O.ORDRR_NM NOT IN('*삭제*') -->
<!-- AND (O.MBR_INNB IS NULL OR O.MBR_INNB = 0 OR M.USE_AT = 'N') -->
<!-- ORDER BY ORDR_INNB -->
<!-- LIMIT 100000 -->
<!-- ]]> -->
<!-- </select> -->
<!-- 배송 -->
<!-- <update id="updateGcOrderShipping" -->
<!-- parameterType = "com.wb.domainserver.atmcrcpmny.vo.TsUpdateClearPersonalInfoShopVO"> -->
<!-- <![CDATA[ -->
<!-- UPDATE GC_ORDER_SHIPPING SET -->
<!-- RECPNT_NM='*삭제*', RECPNT_TELNB='*삭제*', RECPNT_MBTLNB='*삭제*', -->
<!-- DLVYLC_ZIP='*삭제*', DLVYLC_LNB_ADRES='*삭제*', DLVYLC_RNM_ADRES='*삭제*', -->
<!-- DLVYLC_ADRES_DTL='*삭제*', TRACE_DLVYLC_ADRES='*삭제*' -->
<!-- WHERE 1=1 -->
<!-- ]]> -->
<!-- <if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(ordrInnb)"> -->
<!-- ORDR_INNB IN -->
<!-- <foreach collection="ordrInnb" item="ordrInnb" open="(" close=")" separator=","> -->
<!-- #{ordrInnb} -->
<!-- </foreach> -->
<!-- </if> -->
<!-- </update> -->
<!-- 반품 -->
<!-- <update id="updateGcOrderRefund" -->
<!-- parameterType = "com.wb.domainserver.atmcrcpmny.vo.TsUpdateClearPersonalInfoShopVO"> -->
<!-- <![CDATA[ -->
<!-- UPDATE GC_ORDER_REFUND SET -->
<!-- SENDER_ZIP='*삭제*', SENDER_LNB_ADRES='*삭제*', SENDER_RNM_ADRES='*삭제*', -->
<!-- SENDER_ADRES_DTL='*삭제*', RETURN_CSTMR_TELNB='*삭제*', RETURN_CSTMR_MBTLNB='*삭제*' -->
<!-- WHERE 1=1 -->
<!-- ]]> -->
<!-- <if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(ordrInnb)"> -->
<!-- ORDR_INNB IN -->
<!-- <foreach collection="ordrInnb" item="ordrInnb" open="(" close=")" separator=","> -->
<!-- #{ordrInnb} -->
<!-- </foreach> -->
<!-- </if> -->
<!-- </update> -->
<!-- 매출증빙 -->
<!-- <update id="updateGcSales" -->
<!-- parameterType = "com.wb.domainserver.atmcrcpmny.vo.TsUpdateClearPersonalInfoShopVO"> -->
<!-- <![CDATA[ -->
<!-- UPDATE GC_SALES SET -->
<!-- CRTNB='*삭제*', ORDRR_NM='*삭제*', ORDRR_EMAIL='*삭제*' -->
<!-- WHERE 1=1 -->
<!-- ]]> -->
<!-- <if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(ordrInnb)"> -->
<!-- ORDR_INNB IN -->
<!-- <foreach collection="ordrInnb" item="ordrInnb" open="(" close=")" separator=","> -->
<!-- #{ordrInnb} -->
<!-- </foreach> -->
<!-- </if> -->
<!-- </update> -->
<!-- 주문 -->
<!-- <update id="updateGcOrder" -->
<!-- parameterType = "com.wb.domainserver.atmcrcpmny.vo.TsUpdateClearPersonalInfoShopVO"> -->
<!-- <![CDATA[ -->
<!-- UPDATE GC_ORDER SET -->
<!-- ORDRR_NM='*삭제*', ORDRR_TELNB='*삭제*', ORDRR_MBTLNB='*삭제*', ORDRR_EMAIL='*삭제*' -->
<!-- WHERE 1=1 -->
<!-- ]]> -->
<!-- <if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(ordrInnb)"> -->
<!-- ORDR_INNB IN -->
<!-- <foreach collection="ordrInnb" item="ordrInnb" open="(" close=")" separator=","> -->
<!-- #{ordrInnb} -->
<!-- </foreach> -->
<!-- </if> -->
<!-- </update> -->
<!-- 주문결제 -->
<!-- <update id="updateGcOrderSetle" -->
<!-- parameterType = "com.wb.domainserver.atmcrcpmny.vo.TsUpdateClearPersonalInfoShopVO"> -->
<!-- <![CDATA[ -->
<!-- UPDATE GC_ORDER_SETLE SET -->
<!-- RCPMNYER_NM='*삭제*' -->
<!-- WHERE 1=1 -->
<!-- ]]> -->
<!-- <if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(ordrInnb)"> -->
<!-- ORDR_INNB IN -->
<!-- <foreach collection="ordrInnb" item="ordrInnb" open="(" close=")" separator=","> -->
<!-- #{ordrInnb} -->
<!-- </foreach> -->
<!-- </if> -->
<!-- </update> -->
<!-- 배송 -->
<update id="updateGcOrderShipping"
parameterType = "com.wb.domainserver.atmcrcpmny.vo.TsUpdateClearPersonalInfoShopVO">
<![CDATA[
UPDATE GC_ORDER_SHIPPING SET
RECPNT_NM='*삭제*', RECPNT_TELNB='*삭제*', RECPNT_MBTLNB='*삭제*',
DLVYLC_ZIP='*삭제*', DLVYLC_LNB_ADRES='*삭제*', DLVYLC_RNM_ADRES='*삭제*',
DLVYLC_ADRES_DTL='*삭제*', TRACE_DLVYLC_ADRES='*삭제*'
WHERE 1=1
AND ORDR_DLVY_INNB IN (
SELECT
*
FROM (
SELECT
GOS.ORDR_DLVY_INNB
FROM GC_ORDER_SHIPPING GOS
INNER JOIN (
SELECT
O.ORDR_INNB,
O.SOPMAL_CD
FROM GC_ORDER O
LEFT JOIN GC_MEMBER M
ON M.MBR_INNB=O.MBR_INNB
AND M.MAIN_SOPMAL_CD = O.SOPMAL_CD
WHERE 1=1
AND O.SOPMAL_CD > ''
AND O.ORDR_RCEPT_DT > DATE_ADD( DATE_ADD( NOW() , INTERVAL ${updateMonths} MONTH) , INTERVAL ${bufferDays} DAY )
AND O.ORDR_RCEPT_DT < DATE_ADD( NOW() , INTERVAL ${updateMonths} MONTH)
AND O.ORDRR_NM NOT IN ('*삭제*')
AND (O.MBR_INNB IS NULL OR O.MBR_INNB = 0 OR M.USE_AT = 'N')
) AS A
ON GOS.ORDR_INNB = A.ORDR_INNB
AND GOS.SOPMAL_CD = A.SOPMAL_CD
LIMIT 1000000
) AS B
)
]]>
</update>
<!-- 반품 -->
<update id="updateGcOrderRefund"
parameterType = "com.wb.domainserver.atmcrcpmny.vo.TsUpdateClearPersonalInfoShopVO">
<![CDATA[
UPDATE GC_ORDER_REFUND SET
SENDER_ZIP='*삭제*', SENDER_LNB_ADRES='*삭제*', SENDER_RNM_ADRES='*삭제*',
SENDER_ADRES_DTL='*삭제*', RETURN_CSTMR_TELNB='*삭제*', RETURN_CSTMR_MBTLNB='*삭제*'
WHERE 1=1
AND ORDER_REFUND_INNB IN (
SELECT
*
FROM (
SELECT
GOR.ORDER_REFUND_INNB
FROM GC_ORDER_REFUND GOR
INNER JOIN (
SELECT
O.ORDR_INNB,
O.SOPMAL_CD
FROM GC_ORDER O
LEFT JOIN GC_MEMBER M
ON M.MBR_INNB=O.MBR_INNB
AND M.MAIN_SOPMAL_CD = O.SOPMAL_CD
WHERE 1=1
AND O.SOPMAL_CD > ''
AND O.ORDR_RCEPT_DT > DATE_ADD( DATE_ADD( NOW() , INTERVAL ${updateMonths} MONTH) , INTERVAL ${bufferDays} DAY )
AND O.ORDR_RCEPT_DT < DATE_ADD( NOW() , INTERVAL ${updateMonths} MONTH)
AND O.ORDRR_NM NOT IN ('*삭제*')
AND (O.MBR_INNB IS NULL OR O.MBR_INNB = 0 OR M.USE_AT = 'N')
) AS A
ON GOR.ORDR_INNB = A.ORDR_INNB
AND GOR.SOPMAL_CD = A.SOPMAL_CD
LIMIT 100000
) AS B
)
]]>
</update>
<!-- 매출증빙 -->
<update id="updateGcSales"
parameterType = "com.wb.domainserver.atmcrcpmny.vo.TsUpdateClearPersonalInfoShopVO">
<![CDATA[
UPDATE GC_SALES SET
CRTNB='*삭제*', ORDRR_NM='*삭제*', ORDRR_EMAIL='*삭제*'
WHERE 1=1
AND SELNG_PRUF_INNB IN (
SELECT
*
FROM (
SELECT
GS.SELNG_PRUF_INNB
FROM GC_SALES GS
INNER JOIN (
SELECT
O.ORDR_INNB,
O.SOPMAL_CD
FROM GC_ORDER O
LEFT JOIN GC_MEMBER M
ON M.MBR_INNB=O.MBR_INNB
AND M.MAIN_SOPMAL_CD = O.SOPMAL_CD
WHERE 1=1
AND O.SOPMAL_CD > ''
AND O.ORDR_RCEPT_DT > DATE_ADD( DATE_ADD( NOW() , INTERVAL ${updateMonths} MONTH) , INTERVAL ${bufferDays} DAY )
AND O.ORDR_RCEPT_DT < DATE_ADD( NOW() , INTERVAL ${updateMonths} MONTH)
AND O.ORDRR_NM NOT IN ('*삭제*')
AND (O.MBR_INNB IS NULL OR O.MBR_INNB = 0 OR M.USE_AT = 'N')
) AS A
ON GS.ORDR_INNB = A.ORDR_INNB
AND GS.SOPMAL_CD = A.SOPMAL_CD
LIMIT 100000
) AS B
)
]]>
</update>
<!-- 주문 -->
<update id="updateGcOrder"
parameterType = "com.wb.domainserver.atmcrcpmny.vo.TsUpdateClearPersonalInfoShopVO">
<![CDATA[
UPDATE GC_ORDER SET
ORDRR_NM='*삭제*', ORDRR_TELNB='*삭제*', ORDRR_MBTLNB='*삭제*', ORDRR_EMAIL='*삭제*'
WHERE 1=1
AND ORDR_INNB IN (
SELECT
*
FROM (
SELECT
GO2.ORDR_INNB
FROM GC_ORDER GO2
INNER JOIN (
SELECT
O.ORDR_INNB,
O.SOPMAL_CD
FROM GC_ORDER O
LEFT JOIN GC_MEMBER M
ON M.MBR_INNB=O.MBR_INNB
AND M.MAIN_SOPMAL_CD = O.SOPMAL_CD
WHERE 1=1
AND O.SOPMAL_CD > ''
AND O.ORDR_RCEPT_DT > DATE_ADD( DATE_ADD( NOW() , INTERVAL ${updateMonths} MONTH) , INTERVAL ${bufferDays} DAY )
AND O.ORDR_RCEPT_DT < DATE_ADD( NOW() , INTERVAL ${updateMonths} MONTH)
AND O.ORDRR_NM NOT IN ('*삭제*')
AND (O.MBR_INNB IS NULL OR O.MBR_INNB = 0 OR M.USE_AT = 'N')
) AS A
ON GO2.ORDR_INNB = A.ORDR_INNB
AND GO2.SOPMAL_CD = A.SOPMAL_CD
LIMIT 100000
) AS B
)
]]>
</update>
<!-- 주문결제 -->
<update id="updateGcOrderSetle"
parameterType = "com.wb.domainserver.atmcrcpmny.vo.TsUpdateClearPersonalInfoShopVO">
<![CDATA[
UPDATE GC_ORDER_SETLE SET
RCPMNYER_NM='*삭제*'
WHERE 1=1
AND ORDR_SETLE_INNB IN (
SELECT
*
FROM (
SELECT
GOS.ORDR_SETLE_INNB
FROM GC_ORDER_SETLE GOS
INNER JOIN (
SELECT
O.ORDR_INNB,
O.SOPMAL_CD
FROM GC_ORDER O
LEFT JOIN GC_MEMBER M
ON M.MBR_INNB=O.MBR_INNB
AND M.MAIN_SOPMAL_CD = O.SOPMAL_CD
WHERE 1=1
AND O.SOPMAL_CD > ''
AND O.ORDR_RCEPT_DT > DATE_ADD( DATE_ADD( NOW() , INTERVAL ${updateMonths} MONTH) , INTERVAL ${bufferDays} DAY )
AND O.ORDR_RCEPT_DT < DATE_ADD( NOW() , INTERVAL ${updateMonths} MONTH)
AND O.ORDRR_NM NOT IN ('*삭제*')
AND (O.MBR_INNB IS NULL OR O.MBR_INNB = 0 OR M.USE_AT = 'N')
) AS A
ON GOS.ORDR_INNB = A.ORDR_INNB
AND GOS.SOPMAL_CD = A.SOPMAL_CD
LIMIT 100000
) AS B
)
]]>
</update>
</mapper>

View File

@@ -0,0 +1,865 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.wb.domainserver.mapper.gcone.CouponMapper">
<!-- 쿠폰(팩) 발송 상세 조회 ( 쿠폰 발급떄 발송 정보 조회 용도 ) -->
<select id="selectBOCouponPkSndngDtlInqire">
<![CDATA[
SELECT
SNDNG.COUPON_SNDNG_INNB
,SNDNG.EMAIL_SNDNG_FORM_INNB
,SNDNG.SMS_SNDNG_FORM_INNB
,SNDNG.NTCNTALK_SNDNG_FORM_INNB
,SNDNG.COUPON_SNDNG_DV_CD AS SNDNG_DV
,SNDNG.COUPON_SNDNG_TY_CD AS COUPON_SNDNG_TY
,SNDNG.COUPON_SNDNG_NM
,SNDNG.COUPON_SNDNG_DC
,SNDNG.COUPON_SNDNG_USE_AT
,SNDNG.DWLD_PD_LMTT_AT
,SNDNG.DWLD_BGN_DT
,SNDNG.DWLD_END_DT
,SNDNG.SNDNG_DT_DV_CD
,SNDNG.SNDNG_DT
,SNDNG.SNDNG_TRGET_DV_CD AS SNDNG_TRGET_DV
,SNDNG.USE_AT
,SNDNG.REGUSR
,SNDNG.REGIST_DT
,SNDNG.UPDUSR
,SNDNG.UPDT_DT
FROM GC_COUPON_SNDNG SNDNG
WHERE 1=1
]]>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(couponSndngInnb)">
AND SNDNG.COUPON_SNDNG_INNB = #{couponSndngInnb}
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(sopmalCd)">
AND SNDNG.SOPMAL_CD = #{sopmalCd}
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(sndngDtDvCd)">
AND SNDNG.SNDNG_DT_DV_CD = #{sndngDtDvCd}
</if>
</select>
<!-- 쿠폰(팩) 발송 상세 조회 ( 쿠폰 발급떄 발송 정보 조회 용도 ) -->
<select id="selectTsCouponPkSndngDtlInqire">
<![CDATA[
SELECT
SNDNG.COUPON_SNDNG_INNB
,SNDNG.SOPMAL_CD
,SNDNG.EMAIL_SNDNG_FORM_INNB
,SNDNG.SMS_SNDNG_FORM_INNB
,SNDNG.NTCNTALK_SNDNG_FORM_INNB
,SNDNG.COUPON_SNDNG_DV_CD AS SNDNG_DV
,SNDNG.COUPON_SNDNG_TY_CD AS COUPON_SNDNG_TY
,SNDNG.COUPON_SNDNG_NM
,SNDNG.COUPON_SNDNG_DC
,SNDNG.COUPON_SNDNG_USE_AT
,SNDNG.DWLD_PD_LMTT_AT
,SNDNG.DWLD_BGN_DT
,SNDNG.DWLD_END_DT
,SNDNG.SNDNG_DT_DV_CD
,SNDNG.SNDNG_DT
,SNDNG.SNDNG_TRGET_DV_CD AS SNDNG_TRGET_DV
,SNDNG.USE_AT
,SNDNG.REGUSR
,SNDNG.REGIST_DT
,SNDNG.UPDUSR
,SNDNG.UPDT_DT
FROM GC_COUPON_SNDNG SNDNG
WHERE 1=1
]]>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(couponSndngInnb)">
AND SNDNG.COUPON_SNDNG_INNB = #{couponSndngInnb}
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(dataList)">
AND SNDNG.SOPMAL_CD IN
<foreach collection="dataList" item="sopmalCd" open="(" separator="," close=")">
#{sopmalCd}
</foreach>
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(sndngDtDvCd)">
AND SNDNG.SNDNG_DT_DV_CD = #{sndngDtDvCd}
</if>
</select>
<!-- 발송 대상 쿠폰 조회 -->
<select id="selectBOTrgetCouponInqire">
<![CDATA[
SELECT
SNDNG_TRGET_INNB
,COUPON_SNDNG_INNB
,COUPON_INNB
,CUPNPK_INNB
,SOPMAL_CD
FROM
GC_COUPON_TRGET_MAPPING
WHERE 1=1
AND COUPON_SNDNG_INNB = #{couponSndngInnb}
]]>
</select>
<select id = "selectBOCouponIssueGoods"
resultType = "dataMap">
<![CDATA[
SELECT
COUPON.COUPON_INNB,
COUPON.SOPMAL_CD,
COUPON.GOODS_INNB,
COUPON.CTGRY_ID
FROM GC_COUPON_ISSUEGOODS COUPON
WHERE 1=1
AND COUPON.SOPMAL_CD = #{sopmalCd}
AND COUPON.COUPON_INNB = #{couponInnb}
]]>
</select>
<!-- 쿠폰 상세 적용상품 정보 조회 -->
<select id = "selectBOCouponIssueGoodsInfoInqire"
resultType = "dataMap">
<![CDATA[
SELECT
COUPON.COUPON_INNB
,COUPON.SOPMAL_CD
,MAX(G.GOODS_INNB) AS GOODS_INNB
,MAX(G.GOODS_NM) AS GOODS_NM
,ROUND(IFNULL(MAX(GOP.SLEPRIC), 0)) AS SLEPRIC
,ROUND(IFNULL(MAX(GOP.CNSMRPRIC), 0)) AS CNSMRPRIC
,MAX(G.GOODS_STTUS_CD) AS GOODS_STTUS_CD
,FN_GET_COMMCODE_NAME('GOODS_STTUS', MAX(G.GOODS_STTUS_CD)) AS GOODS_STTUS_NM
,MAX(IMG.IMG) AS GOODS_IMG_COURS
FROM GC_COUPON_ISSUEGOODS COUPON
INNER JOIN GC_GOODS G ON COUPON.SOPMAL_CD = G.SOPMAL_CD
AND COUPON.GOODS_INNB = G.GOODS_INNB
INNER JOIN GC_GOODS_OPTION GOP ON G.SOPMAL_CD = GOP.SOPMAL_CD
AND G.GOODS_INNB = GOP.GOODS_INNB
INNER JOIN GC_GOODS_IMAGE IMG ON G.SOPMAL_CD = IMG.SOPMAL_CD
AND G.GOODS_INNB = IMG.GOODS_INNB
AND IMG.IMG_KND = '02'
AND IMG.CUT_NB = 1
WHERE 1=1
AND COUPON.SOPMAL_CD = #{sopmalCd}
AND COUPON.COUPON_INNB = #{couponInnb}
GROUP BY COUPON.COUPON_INNB
,COUPON.SOPMAL_CD
,G.GOODS_INNB
,IMG.IMG
]]>
</select>
<!-- 다운로드 쿠폰 등록 -->
<insert id="insertBOCouponPkIssuRegist"
keyProperty="dwldCouponInnb"
useGeneratedKeys="true">
<![CDATA[
INSERT INTO GC_DOWNLOAD (
COUPON_INNB,
SOPMAL_CD,
MBR_INNB,
MBR_DV_CD,
CUPNPK_INNB,
OFLNE_COUPON_INNB,
COUPON_SNDNG_INNB,
COUPON_SNDNG_TY_CD,
CUPNPK_NM,
CUPNPK_DC,
COUP_NM,
COUPON_DC,
USE_ENVRN_CD,
OTR_COUPON_SMTM_USE_AT,
DPLCT_DWLD_AT,
DPLCT_DSCNT_AT,
USE_POSBL_AMT,
GOODS_APPLC_DV_CD,
VALIDPD_BGN_DT,
VALIDPD_END_DT,
OFLNE_COUPON_CRTNB,
COUPON_USE_AT,
COUPON_STTUS_CD,
RECOVRY_ORGINL_COUPON,
MBR_NM,
MBTLNB,
BNEF_DV_CD,
ADIT_DSCNT_CD,
ADIT_DSCNT_AMT,
DSCNT_MXMM_AMT,
DLVY_AMT_DSCNT_DV_CD,
DLVY_AMT_DSCNT_AMT,
DLVY_AMT_MXMM_DSCNT_AMT,
REGUSR,
REGIST_DT,
UPDUSR,
UPDT_DT
) SELECT
COUPON_INNB,
#{sopmalCd},
#{mbrInnb},
#{mbrDvCd},
#{cupnpkInnb},
#{oflneCouponInnb},
#{couponSndngInnb},
'02',
#{cupnpkNm},
#{cupnpkDc},
COUP_NM,
COUPON_DC,
USE_ENVRN_CD,
OTR_COUPON_SMTM_USE_AT,
DPLCT_DWLD_AT,
DPLCT_DSCNT_AT,
USE_POSBL_AMT,
GOODS_APPLC_DV_CD,
CASE
WHEN VALIDPD_KND_CD = '01' THEN VALIDPD_BGN_DT
WHEN VALIDPD_KND_CD = '02' THEN SYSDATE()
END AS START_DATE,
CASE
WHEN VALIDPD_KND_CD = '01' THEN VALIDPD_END_DT
WHEN VALIDPD_KND_CD = '02' THEN DATE_ADD(SYSDATE(), INTERVAL VALIDPD_DE_CNT DAY)
END AS END_DATE,
#{oflneCouponCrtnb},
'N',
#{couponSttusCd},
NULL,
#{mbrNm},
#{mbtlnb},
BNEF_DV_CD,
ADIT_DSCNT_CD,
ADIT_DSCNT_AMT,
DSCNT_MXMM_AMT,
DLVY_AMT_DSCNT_DV_CD,
DLVY_AMT_DSCNT_AMT,
DLVY_AMT_MXMM_DSCNT_AMT,
#{regusr},
SYSDATE(),
#{updusr},
SYSDATE()
FROM GC_COUPON
WHERE COUPON_INNB = #{couponInnb}
AND SOPMAL_CD = #{sopmalCd}
]]>
</insert>
<!-- 다운로드 쿠폰 발급 적용 상품 등록 ( 쿠폰 발급, 다운로드) -->
<insert id="insertBOCouponPkIssuGoodsRegist">
<selectKey order="BEFORE" keyProperty="dwldCouponApplcGoodsInnb" resultType="java.lang.Integer">
<![CDATA[
SELECT IFNULL(MAX(DWLD_COUPON_APPLC_GOODS_INNB), 0)+1
FROM GC_DOWNLOAD_ISSUEGOODS
]]>
</selectKey>
<![CDATA[
INSERT INTO GC_DOWNLOAD_ISSUEGOODS (
DWLD_COUPON_APPLC_GOODS_INNB
,DWLD_COUPON_INNB
,SOPMAL_CD
,GOODS_INNB
,CTGRY_ID
,REGUSR
,REGIST_DT
) VALUES (
#{dwldCouponApplcGoodsInnb},
#{dwldCouponInnb},
#{sopmalCd},
#{goodsInnb},
#{ctgryId},
${regusr},
SYSDATE()
)
]]>
</insert>
<!-- 인증번호 생성 -->
<insert id="insertBOMkCouponOflneCouponCrtnb">
<selectKey order="BEFORE" keyProperty="oflneCouponInnb" resultType="java.lang.Integer">
<![CDATA[
SELECT IFNULL(MAX(OFLNE_COUPON_INNB), 0)+1
FROM GC_OFFLINE_COUPON
]]>
</selectKey>
<![CDATA[
INSERT INTO GC_OFFLINE_COUPON (
OFLNE_COUPON_INNB,
SNDNG_TRGET_INNB,
COUPON_INNB,
OFLNE_COUPON_CREAT_NB,
OFLNE_COUPON_CRTNB,
OFLNE_COUPON_CRT_DV_CD,
SNDNG_TRGTER_NM,
SNDNG_TRGET_TELNB,
USECNT,
REGUSR,
REGIST_DT,
UPDUSR,
UPDT_DT,
SOPMAL_CD
) VALUES (
#{oflneCouponInnb},
#{sndngTrgetInnb},
#{couponInnb},
#{oflneCouponCreateNb},
#{oflneCouponCrtnb},
'02',
#{sndngTrgetrNm},
#{sndngTrgetTelnb},
#{useCnt},
#{regusr},
SYSDATE(),
#{updusr},
SYSDATE(),
#{sopmalCd}
)
]]>
</insert>
<!-- 인증번호 발행 쿠폰 쇼핑몰 번호 반환 -->
<select id="selectBOSopmalCouponNbInqire"
resultType="String">
SELECT
SOPMAL_NB
FROM GC_SHOP
WHERE SOPMAL_CD = #{sopmalCd}
</select>
<!-- 쿠폰 대상 매핑 조회-->
<select id="selectTsCouponTrgetListInqire">
<![CDATA[
SELECT
SNDNG_TRGET_INNB
,COUPON_SNDNG_INNB
,COUPON_INNB
,CUPNPK_INNB
,SOPMAL_CD
FROM
GC_COUPON_TRGET_MAPPING
WHERE 1=1
AND COUPON_SNDNG_INNB IN
]]>
<foreach collection="dwldCouponVOList" item="dwldCoupon" open="(" separator="," close=")">
#{dwldCoupon.couponSndngInnb}
</foreach>
</select>
<!--
###########################################################################################################################################
EXT 쿠폰 Start
###########################################################################################################################################
-->
<!-- 생일자 추출(전 쇼핑몰: 생일 쿠폰 운영중인) 쿠폰발급 -->
<insert id="insertCouponBirthdayDwld">
<![CDATA[
INSERT INTO GC_DOWNLOAD
( COUPON_INNB
,COUPON_SNDNG_INNB
,SOPMAL_CD
,MBR_INNB
,MBR_DV_CD
,CUPNPK_INNB
,OFLNE_COUPON_INNB
,COUPON_SNDNG_TY_CD
,CUPNPK_NM
,CUPNPK_DC
,COUP_NM
,COUPON_DC
,USE_ENVRN_CD
,OTR_COUPON_SMTM_USE_AT
,DPLCT_DWLD_AT
,DPLCT_DSCNT_AT
,USE_POSBL_AMT
,GOODS_APPLC_DV_CD
,VALIDPD_BGN_DT
,VALIDPD_END_DT
,OFLNE_COUPON_CRTNB
,USEPLC_DV_CD
,COUPON_STTUS_CD
,COUPON_USE_AT
,COUPON_USE_DT
,RECOVRY_ORGINL_COUPON
,MBR_NM
,MBTLNB
,BNEF_DV_CD
,ADIT_DSCNT_CD
,ADIT_DSCNT_AMT
,DSCNT_MXMM_AMT
,DLVY_AMT_DSCNT_DV_CD
,DLVY_AMT_DSCNT_AMT
,DLVY_AMT_MXMM_DSCNT_AMT
,USE_AT
,REGUSR
,REGIST_DT
,UPDUSR
,UPDT_DT
)
SELECT GC.COUPON_INNB
, SD.COUPON_SNDNG_INNB
, GMA.SOPMAL_CD
, GM.MBR_INNB
, GM.MBR_DV_CD
, NULL CUPNPK_INNB
, NULL OFLNE_COUPON_INNB
, SD.COUPON_SNDNG_TY_CD
, NULL CUPNPK_NM
, NULL CUPNPK_DC
, GC.COUP_NM
, GC.COUPON_DC
, GC.USE_ENVRN_CD
, GC.OTR_COUPON_SMTM_USE_AT
, GC.DPLCT_DWLD_AT
, GC.DPLCT_DSCNT_AT
, GC.USE_POSBL_AMT
, GC.GOODS_APPLC_DV_CD
, CASE
WHEN VALIDPD_KND_CD = '01' THEN VALIDPD_BGN_DT
WHEN VALIDPD_KND_CD = '02' THEN SYSDATE()
END AS START_DATE
, CASE
WHEN VALIDPD_KND_CD = '01' THEN VALIDPD_END_DT
WHEN VALIDPD_KND_CD = '02' THEN DATE_FORMAT(DATE_ADD(CURDATE(), INTERVAL VALIDPD_DE_CNT DAY), '%Y-%m-%d 23:59:59')
END AS END_DATE
, NULL OFLNE_COUPON_CRTNB
, NULL USEPLC_DV_CD
, '23' COUPON_STTUS_CD
, 'Y' COUPON_USE_AT
, NULL COUPON_USE_DT
, NULL RECOVRY_ORGINL_COUPON
, GM.MBR_NM
, GM.MBTLNB
, GC.BNEF_DV_CD
, GC.ADIT_DSCNT_CD
, GC.ADIT_DSCNT_AMT
, GC.DSCNT_MXMM_AMT
, GC.DLVY_AMT_DSCNT_DV_CD
, GC.DLVY_AMT_DSCNT_AMT
, GC.DLVY_AMT_MXMM_DSCNT_AMT
, 'Y' USE_AT
, 0 REGUSR
, NOW() REGIST_DT
, 0 AS UPDUSR
, NOW() UPDT_DT
FROM GC_MEMBER GM
INNER JOIN GC_MARKETING_AGREE GMA -- 마케팅 수신여부 동의, 통합몰의 경우 수신동의 숫자 만큼 멤버 생성
ON GM.MBR_INNB = GMA.MBR_INNB
AND GM.MBR_DV_CD = GMA.MBR_DV_CD
-- AND GMA.MARKT_RECPTN_AGRE_AT = 'Y' -- 마케팅 수신여부 동의 체크 할때는 필수
INNER JOIN GC_MEMBER_SITE MS
ON GMA.MBR_INNB = MS.MBR_INNB
AND GMA.MBR_DV_CD = MS.MBR_DV_CD
AND GMA.SOPMAL_CD = MS.SOPMAL_CD
INNER JOIN GC_COUPON_SNDNG SD -- 생일쿠폰은 사이트별로 1개만 유효함
ON SD.SOPMAL_CD = GMA.SOPMAL_CD
AND SD.SNDNG_DT_DV_CD = '03' -- '03' 은 생일자, '04' 는 등급변경 대상
AND SD.COUPON_SNDNG_TY_CD = '01' -- '01'은 직접발급, '03'은 인증쿠폰
AND SD.USE_AT = 'Y'
AND SD.COUPON_SNDNG_USE_AT = 'Y'
INNER JOIN GC_COUPON_TRGET_MAPPING TC -- 쿠폰수 만큼 뻥튀기
ON SD.COUPON_SNDNG_INNB = TC.COUPON_SNDNG_INNB
AND SD.SOPMAL_CD = TC.SOPMAL_CD
INNER JOIN GC_COUPON GC
ON TC.COUPON_INNB = GC.COUPON_INNB
AND TC.SOPMAL_CD = GC.SOPMAL_CD
AND GC.COUPON_USE_AT = 'Y'
AND GC.USE_AT = 'Y'
LEFT JOIN ( SELECT DWLD_COUPON_INNB, COUPON_SNDNG_INNB, SOPMAL_CD, MBR_INNB, MBR_DV_CD, COUPON_INNB
FROM GC_DOWNLOAD D
WHERE 1 =1
AND D.REGIST_DT > DATE_FORMAT(CURDATE(), '%Y-01-01') -- 올해 발급된
AND D.USE_AT = 'Y' -- COUPON_STTUS_CD = '04' 회수는 USE_AT=N 임
AND (D.COUPON_SNDNG_INNB, D.SOPMAL_CD) IN ( SELECT COUPON_SNDNG_INNB, SOPMAL_CD
FROM GC_COUPON_SNDNG CS
WHERE CS.SNDNG_DT_DV_CD = '03' -- '03' 은 생일자, '04' 는 등급변경 대상
)
) GD
ON GM.MBR_INNB = GD.MBR_INNB
AND GM.MBR_DV_CD = GD.MBR_DV_CD
AND SD.COUPON_SNDNG_INNB = GD.COUPON_SNDNG_INNB
AND SD.SOPMAL_CD = GD.SOPMAL_CD
WHERE 1 = 1
AND GM.USE_AT = 'Y'
AND GM.BRTH_DE IS NOT NULL -- 생일 데이터가 NULL이 아니고
-- AND MONTH(GM.BRTH_DE) = MONTH(CURDATE()) -- 이번달이 생일
AND GM.BRTH_DE LIKE CONCAT('%____', MONTH(CURDATE()), '__%') -- 이번달이 생일
AND GD.DWLD_COUPON_INNB IS NULL -- 중복 발급 제외
;
]]>
</insert>
<!-- 오프라인 쿠폰발급 -->
<insert id="insertOffCouponBirthdayDwld">
<![CDATA[
INSERT INTO GC_OFFLINE_COUPON ( COUPON_SNDNG_INNB
,COUPON_INNB
,SOPMAL_CD
,OFLNE_COUPON_CREAT_NB
,OFLNE_COUPON_CRTNB
,OFLNE_COUPON_CRT_DV_CD
,MBR_INNB
,MBR_DV_CD
,SNDNG_TRGTER_NM
,SNDNG_TRGET_TELNB
,USECNT
,REGUSR
,REGIST_DT
,UPDUSR
,UPDT_DT
)
SELECT SD.COUPON_SNDNG_INNB
,GC.COUPON_INNB
,SD.SOPMAL_CD
,#{sttus} AS OFLNE_COUPON_CREAT_NB
, CONCAT(GS.SOPMAL_NB, RIGHT(GC.COUPON_INNB, 3), DATE_FORMAT(CURDATE(), '%m%y%d'), fnc_get_cpn_no()) AS OFLNE_COUPON_CRTNB
,'02' AS OFLNE_COUPON_CRT_DV_CD
,GM.MBR_INNB
,GM.MBR_DV_CD
,GM.MBR_NM AS SNDNG_TRGTER_NM
,GM.MBTLNB AS SNDNG_TRGET_TELNB
,'1' AS USECNT
,0 AS REGUSR
,NOW() AS REGIST_DT
,0 AS UPDUSR
,NOW() AS UPDT_DT
FROM GC_MEMBER GM
INNER JOIN GC_MARKETING_AGREE GMA -- 마케팅 수신여부 동의, 통합몰의 경우 수신동의 숫자 만큼 멤버 생성
ON GM.MBR_INNB = GMA.MBR_INNB
AND GM.MBR_DV_CD = GMA.MBR_DV_CD
-- AND GMA.SOPMAL_CD = MS.SOPMAL_CD
-- AND GMA.MARKT_RECPTN_AGRE_AT = 'Y' -- 마케팅 수신여부 동의 체크 할때는 필수
INNER JOIN GC_SHOP GS
ON GS.SOPMAL_CD = GMA.SOPMAL_CD
INNER JOIN GC_COUPON_SNDNG SD -- 생일쿠폰은 사이트별로 1개만 유효함
ON SD.SOPMAL_CD = GMA.SOPMAL_CD
AND SD.SNDNG_DT_DV_CD = '03' -- '03' 은 생일자, '04' 는 등급변경 대상
AND SD.COUPON_SNDNG_TY_CD = '03' -- '01'은 직접발급, '03'은 인증쿠폰
AND SD.USE_AT = 'Y'
AND SD.COUPON_SNDNG_USE_AT = 'Y'
INNER JOIN GC_COUPON_TRGET_MAPPING TC -- 쿠폰수 만큼 뻥튀기
ON SD.COUPON_SNDNG_INNB = TC.COUPON_SNDNG_INNB
AND SD.SOPMAL_CD = TC.SOPMAL_CD
INNER JOIN GC_COUPON GC
ON TC.COUPON_INNB = GC.COUPON_INNB
AND TC.SOPMAL_CD = GC.SOPMAL_CD
AND GC.COUPON_USE_AT = 'Y'
AND GC.USE_AT = 'Y'
LEFT JOIN ( SELECT DWLD_COUPON_INNB, COUPON_SNDNG_INNB, SOPMAL_CD, MBR_INNB, MBR_DV_CD, COUPON_INNB
FROM GC_DOWNLOAD D
WHERE 1 =1
AND D.REGIST_DT > DATE_FORMAT(CURDATE(), '%Y-01-01') -- 올해 발급된
AND D.USE_AT = 'Y' -- COUPON_STTUS_CD = '04' 회수는 USE_AT=N 임
AND (D.COUPON_SNDNG_INNB, D.SOPMAL_CD) IN ( SELECT COUPON_SNDNG_INNB, SOPMAL_CD
FROM GC_COUPON_SNDNG CS
WHERE CS.SNDNG_DT_DV_CD = '03' -- '03' 은 생일자, '04' 는 등급변경 대상
)
) GD
ON GM.MBR_INNB = GD.MBR_INNB
AND GM.MBR_DV_CD = GD.MBR_DV_CD
AND SD.COUPON_SNDNG_INNB = GD.COUPON_SNDNG_INNB
AND SD.SOPMAL_CD = GD.SOPMAL_CD
WHERE 1 = 1
AND GM.USE_AT = 'Y'
AND GM.BRTH_DE IS NOT NULL -- 생일 데이터가 NULL이 아니고
-- AND MONTH(GM.BRTH_DE) = MONTH(CURDATE()) -- 이번달이 생일
AND GM.BRTH_DE LIKE CONCAT('%____', MONTH(CURDATE()), '__%') -- 이번달이 생일
AND GD.DWLD_COUPON_INNB IS NULL -- 중복 발급 제외
AND GM.MBR_DV_CD ='GC'
]]>
</insert>
<!-- 생일자 추출(전 쇼핑몰: 생일 인증쿠폰 운영중인) 인증쿠폰발급 -->
<insert id="insertCertCouponBirthdayDwld">
<![CDATA[
INSERT INTO GC_DOWNLOAD (
OFLNE_COUPON_INNB
,COUPON_INNB
,COUPON_SNDNG_INNB
,SOPMAL_CD
,MBR_INNB
,MBR_DV_CD
,CUPNPK_INNB
,COUPON_SNDNG_TY_CD
,CUPNPK_NM
,CUPNPK_DC
,COUP_NM
,COUPON_DC
,USE_ENVRN_CD
,OTR_COUPON_SMTM_USE_AT
,DPLCT_DWLD_AT
,DPLCT_DSCNT_AT
,USE_POSBL_AMT
,GOODS_APPLC_DV_CD
,VALIDPD_BGN_DT
,VALIDPD_END_DT
,OFLNE_COUPON_CRTNB
,USEPLC_DV_CD
,COUPON_STTUS_CD
,COUPON_USE_DT
,RECOVRY_ORGINL_COUPON
,MBR_NM
,MBTLNB
,BNEF_DV_CD
,ADIT_DSCNT_CD
,ADIT_DSCNT_AMT
,DSCNT_MXMM_AMT
,DLVY_AMT_DSCNT_DV_CD
,DLVY_AMT_DSCNT_AMT
,DLVY_AMT_MXMM_DSCNT_AMT
,USE_AT
,REGUSR
,REGIST_DT
,UPDUSR
,UPDT_DT
)
SELECT OFC.OFLNE_COUPON_INNB
,OFC.COUPON_INNB
,OFC.COUPON_SNDNG_INNB
,OFC.SOPMAL_CD
,GM.MBR_INNB
,GM.MBR_DV_CD
,NULL AS CUPNPK_INNB
,'03' AS COUPON_SNDN_TY_CD
,NULL AS CUPNPK_NM
,NULL AS CUPNPK_DC
,C.COUP_NM
,C.COUPON_DC
,C.USE_ENVRN_CD
,C.OTR_COUPON_SMTM_USE_AT
,C.DPLCT_DWLD_AT
,C.DPLCT_DSCNT_AT
,C.USE_POSBL_AMT
,C.GOODS_APPLC_DV_CD
,CASE WHEN VALIDPD_KND_CD = '01' THEN VALIDPD_BGN_DT
WHEN VALIDPD_KND_CD = '02' THEN SYSDATE()
END AS START_DATE
,CASE WHEN VALIDPD_KND_CD = '01' THEN VALIDPD_END_DT
WHEN VALIDPD_KND_CD = '02' THEN DATE_FORMAT(DATE_ADD(CURDATE(), INTERVAL VALIDPD_DE_CNT DAY), '%Y-%m-%d 23:59:59')
END AS END_DATE
,OFC.OFLNE_COUPON_CRTNB
,NULL USEPLC_DV_CD
,#{sttus} AS COUPON_STTUS_CD
, NULL COUPON_USE_DT
, NULL RECOVRY_ORGINL_COUPON
,OFC.SNDNG_TRGTER_NM AS MBR_NM
,OFC.SNDNG_TRGET_TELNB AS MBTLNB
,C.BNEF_DV_CD
,C.ADIT_DSCNT_CD
,C.ADIT_DSCNT_AMT
,C.DSCNT_MXMM_AMT
,C.DLVY_AMT_DSCNT_DV_CD
,C.DLVY_AMT_DSCNT_AMT
,C.DLVY_AMT_MXMM_DSCNT_AMT
,'Y' USE_AT
,OFC.REGUSR AS REGUSR
,NOW() REGIST_DT
,OFC.UPDUSR AS UPDUSR
,NOW() UPDT_DT
FROM GC_OFFLINE_COUPON OFC
INNER JOIN GC_COUPON C
ON OFC.SOPMAL_CD = C.SOPMAL_CD
AND OFC.COUPON_INNB = C.COUPON_INNB
INNER JOIN GC_MEMBER GM
ON GM.MBTLNB = OFC.SNDNG_TRGET_TELNB
AND GM.MBR_NM = OFC.SNDNG_TRGTER_NM
AND GM.MBR_INNB = OFC.MBR_INNB
AND GM.MBR_DV_CD = OFC.MBR_DV_CD
AND CASE WHEN (SELECT GS.SOPMAL_TY_CD FROM GC_SHOP GS WHERE GS.SOPMAL_CD = OFC.SOPMAL_CD) = '01' THEN 'GC' ELSE OFC.SOPMAL_CD END = GM.MBR_DV_CD
WHERE 1 = 1
AND OFC.OFLNE_COUPON_CREAT_NB = #{sttus};
]]>
</insert>
<!-- GC_SMS_TO 쿠폰 메세지 대상자 등록 -->
<insert id="insertCouponBirthdayDwldIssueGoods">
<![CDATA[
INSERT INTO GC_DOWNLOAD_ISSUEGOODS
( DWLD_COUPON_INNB
, DWLD_COUPON_APPLC_GOODS_INNB
, GOODS_INNB
, SOPMAL_CD
, CTGRY_ID
, REGUSR
, REGIST_DT
)
SELECT
GD.DWLD_COUPON_INNB
, CI.COUPON_APPLC_GOODS_INNB AS DWLD_COUPON_APPLC_GOODS_INNB
, CI.GOODS_INNB
, CI.SOPMAL_CD
, CI.CTGRY_ID
, 0 REGUSR
, NOW() REGIST_DT
FROM GC_DOWNLOAD GD
INNER JOIN GC_COUPON GC
ON GD.COUPON_INNB = GC.COUPON_INNB
AND GD.SOPMAL_CD = GC.SOPMAL_CD
INNER JOIN GC_COUPON_ISSUEGOODS CI
ON GC.COUPON_INNB = CI.COUPON_INNB
AND GC.SOPMAL_CD = CI.SOPMAL_CD
WHERE 1 = 1
AND GD.COUPON_STTUS_CD = #{sttus}
]]>
</insert>
<!-- 생일 쿠폰 상태값 업데이트 -->
<update id="updateOffCouponBirthdayDwldSttus">
<![CDATA[
UPDATE GC_OFFLINE_COUPON
SET OFLNE_COUPON_CREAT_NB = '31S'
WHERE OFLNE_COUPON_CREAT_NB = #{sttus}
]]>
</update>
<!-- 생일 쿠폰 상태값 업데이트 -->
<update id="updateCouponBirthdayDwldSttus">
<![CDATA[
UPDATE GC_DOWNLOAD
SET COUPON_STTUS_CD = '02'
WHERE 1 = 1
AND COUPON_STTUS_CD = #{sttus}
]]>
</update>
<!-- 등급 변경이 된 회원 쿠폰 발급 -->
<insert id="insertCouponMbrGradDwld">
<![CDATA[
INSERT INTO GC_DOWNLOAD
( COUPON_INNB
,COUPON_SNDNG_INNB
,SOPMAL_CD
,MBR_INNB
,MBR_DV_CD
,CUPNPK_INNB
,OFLNE_COUPON_INNB
,COUPON_SNDNG_TY_CD
,CUPNPK_NM
,CUPNPK_DC
,COUP_NM
,COUPON_DC
,USE_ENVRN_CD
,OTR_COUPON_SMTM_USE_AT
,DPLCT_DWLD_AT
,DPLCT_DSCNT_AT
,USE_POSBL_AMT
,GOODS_APPLC_DV_CD
,VALIDPD_BGN_DT
,VALIDPD_END_DT
,OFLNE_COUPON_CRTNB
,USEPLC_DV_CD
,COUPON_STTUS_CD
,COUPON_USE_AT
,COUPON_USE_DT
,RECOVRY_ORGINL_COUPON
,MBR_NM
,MBTLNB
,BNEF_DV_CD
,ADIT_DSCNT_CD
,ADIT_DSCNT_AMT
,DSCNT_MXMM_AMT
,DLVY_AMT_DSCNT_DV_CD
,DLVY_AMT_DSCNT_AMT
,DLVY_AMT_MXMM_DSCNT_AMT
,USE_AT
,REGUSR
,REGIST_DT
,UPDUSR
,UPDT_DT
)
SELECT GC.COUPON_INNB
, SD.COUPON_SNDNG_INNB
, GMA.SOPMAL_CD
, GM.MBR_INNB
, GM.MBR_DV_CD
, CP.CUPNPK_INNB
, NULL OFLNE_COUPON_INNB
, SD.COUPON_SNDNG_TY_CD
, CP.CUPNPK_NM
, CP.CUPNPK_DC
, GC.COUP_NM
, GC.COUPON_DC
, GC.USE_ENVRN_CD
, GC.OTR_COUPON_SMTM_USE_AT
, GC.DPLCT_DWLD_AT
, GC.DPLCT_DSCNT_AT
, GC.USE_POSBL_AMT
, GC.GOODS_APPLC_DV_CD
, CASE
WHEN VALIDPD_KND_CD = '01' THEN VALIDPD_BGN_DT
WHEN VALIDPD_KND_CD = '02' THEN SYSDATE()
END AS START_DATE
, CASE
WHEN VALIDPD_KND_CD = '01' THEN VALIDPD_END_DT
WHEN VALIDPD_KND_CD = '02' THEN DATE_ADD(SYSDATE(), INTERVAL VALIDPD_DE_CNT DAY)
END AS END_DATE
, NULL OFLNE_COUPON_CRTNB
, NULL USEPLC_DV_CD
, '19' COUPON_STTUS_CD
, 'Y' COUPON_USE_AT
, NULL COUPON_USE_DT
, NULL RECOVRY_ORGINL_COUPON
, GM.MBR_NM
, CAST(AES_DECRYPT(UNHEX(GM.MBTLNB) , #{secretKey}) AS CHAR(50)) MBTLNB
, GC.BNEF_DV_CD
, GC.ADIT_DSCNT_CD
, GC.ADIT_DSCNT_AMT
, GC.DSCNT_MXMM_AMT
, GC.DLVY_AMT_DSCNT_DV_CD
, GC.DLVY_AMT_DSCNT_AMT
, GC.DLVY_AMT_MXMM_DSCNT_AMT
, 'Y' USE_AT
, 0 REGUSR
, NOW() REGIST_DT
, 0 AS UPDUSR
, NOW() UPDT_DT
FROM GC_MEMBER GM
INNER JOIN GC_MARKETING_AGREE GMA -- 마케팅 수신여부 동의, 통합몰의 경우 수신동의 숫자 만큼 멤버 생성
ON GM.MBR_INNB = GMA.MBR_INNB
AND GM.MBR_DV_CD = GMA.MBR_DV_CD
-- AND GMA.MARKT_RECPTN_AGRE_AT = 'Y' -- 마케팅 수신여부 동의 체크 할때는 필수
INNER JOIN GC_GRADE_CHANGE_LOG GCL
ON GMA.MBR_INNB = GCL.MBR_INNB
AND GMA.MBR_DV_CD = GCL.MBR_DV_CD
AND GMA.SOPMAL_CD = GCL.SOPMAL_CD
AND GCL.CHNG_YM = DATE_FORMAT(CURDATE(), '%Y%m')
AND GCL.CHNG_GRAD_DV = 'UP'
AND GCL.USE_AT = 'Y'
INNER JOIN GC_COUPON_SNDNG SD -- 생일쿠폰은 사이트별로 1개만 유효함
ON GMA.SOPMAL_CD = SD.SOPMAL_CD
AND SD.SNDNG_DT_DV_CD = '04' -- '03' 은 생일자, '04' 는 등급변경 대상
AND SD.USE_AT = 'Y'
AND SD.COUPON_SNDNG_USE_AT = 'Y'
INNER JOIN GC_COUPON_TRGET_MAPPING TC -- 쿠폰수 만큼 뻥튀기
ON SD.COUPON_SNDNG_INNB = TC.COUPON_SNDNG_INNB
AND SD.SOPMAL_CD = TC.SOPMAL_CD
INNER JOIN GC_COUPON GC
ON TC.COUPON_INNB = GC.COUPON_INNB
AND TC.SOPMAL_CD = GC.SOPMAL_CD
AND GC.COUPON_USE_AT = 'Y'
AND GC.USE_AT = 'Y'
LEFT JOIN GC_COUPON_PACK CP
ON TC.CUPNPK_INNB = CP.CUPNPK_INNB
WHERE 1=1
AND GM.USE_AT = 'Y'
]]>
</insert>
<!-- 등급 갱신 폰혜택적용상품 -->
<insert id="insertCouponMbrGradDwldIssueGoods">
<![CDATA[
INSERT INTO GC_DOWNLOAD_ISSUEGOODS
( DWLD_COUPON_INNB
, DWLD_COUPON_APPLC_GOODS_INNB
, GOODS_INNB
, SOPMAL_CD
, CTGRY_ID
, REGUSR
, REGIST_DT
)
SELECT
GD.DWLD_COUPON_INNB
, CI.COUPON_APPLC_GOODS_INNB
, CI.GOODS_INNB
, CI.SOPMAL_CD
, CI.CTGRY_ID
, 0 REGUSR
, NOW() REGIST_DT
FROM GC_DOWNLOAD GD
INNER JOIN GC_COUPON GC
ON GD.COUPON_INNB = GC.COUPON_INNB
AND GD.SOPMAL_CD = GC.SOPMAL_CD
INNER JOIN GC_COUPON_ISSUEGOODS CI
ON GC.COUPON_INNB = CI.COUPON_INNB
AND GC.SOPMAL_CD = CI.SOPMAL_CD
WHERE 1 = 1
AND GD.COUPON_STTUS_CD = '19'
]]>
</insert>
</mapper>

View File

@@ -0,0 +1,573 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.wb.domainserver.mapper.gcone.EmailMapper">
<select id="selectBOEmailSndngTrgetSnb"
parameterType="java.lang.Integer"
resultType="java.lang.Integer">
<![CDATA[
SELECT
TRGET_SNB
FROM GC_EMAIL_TO
WHERE 1=1
AND EMAIL_SNDNG_INNB IN
]]>
<foreach collection="emailSndngList" item="item" open="(" separator="," close=")">
#{item.emailSndngInnb}
</foreach>
</select>
<!-- 회원 2년 메일 등록 -->
<insert id="insertMbrMarktAgreEmail">
<![CDATA[
INSERT INTO GC_EMAIL (
SOPMAL_CD
, SNDNG_LC
, SJ
, CN
, SNDR_EMAIL
, RECPTN_RJCT_URL
, REGUSR_DV -- 등록자 구분 코드, 01 - 회원, 02 - 관리자, 03 - 시스템
, REGUSR -- 등록자 고유번호
, REGIST_DT -- 등록일 현재 NOW()
, EMAIL_SNDNG_FORM_INNB
)
SELECT
S.SOPMAL_CD
, NULL SNDNG_LC
, EF.EMAIL_SJ
, EF.EMAIL_CN
, HEX(AES_ENCRYPT(S.EMAIL_ATMC_SNDNG_DSPTCH_ADRES, #{secretKey}))
, '/mngr/ntcn/email/updateMarktRecptnArgeAt'
, '03' REGUSR_DV
, 0 REGUSR
, NOW() REGIST_DT
, '3'
FROM GC_SHOP S
INNER JOIN GC_EMAIL_FORM EF
ON S.SOPMAL_CD = EF.SOPMAL_CD
AND EF.FORM_DV_CD = 'FORM_DV_CMMN'
AND EF.FORM_DTL_DV_CD = '01' -- 광고동의
AND EF.USE_AT = 'Y'
INNER JOIN GC_MESSAGE_SNDNG MS
ON S.SOPMAL_CD = MS.SOPMAL_CD
AND MS.FORM_DV_CD = 'FORM_DV_CMMN'
AND MS.FORM_DTL_DV_CD = '01'
AND MS.USE_AT = 'Y'
]]>
</insert>
<!-- 회원 2년 메일 대상자 -->
<insert id="insertMbrMarktAgreEmailTo">
INSERT INTO GC_EMAIL_TO (
EMAIL_SNDNG_INNB
, MBR_INNB
, RECPNT_EMAIL
, RECPNT_NM
, STTUS
, SNDNG_DT
, RSLT_CD
, SUBST_DATA
)
<![CDATA[
SELECT
GE.EMAIL_SNDNG_INNB
, MBR.MBR_INNB -- 회원번호
, MBR.EMAIL AS RECPTN_EMAIL -- 이메일
, MBR.MBR_NM
, '3'
, NOW()
, NULL RSLT_CD
, CONCAT('{"mbrid"', ':', '"', IFNULL(MBR.MBR_ID, ''), '"'
, ',"shopName"',':', '"', IFNULL(SHOP.SOPMAL_NM, ''), '"'
, ',"marktRecptnAgreAt"',':', '"', IFNULL( CASE
WHEN MA.MARKT_RECPTN_AGRE_AT = 'Y' THEN '동의함'
ELSE '미동의'
END, ''), '"'
, ',"marktRecptnAgreUpdtDt"',':', '"', IFNULL(DATE_FORMAT(MA.MARKT_RECPTN_AGRE_UPDT_DT, '%Y-%m-%d %H:%i:%s'), ''), '"'
, ',"cscTelnb"',':', '"', IFNULL(SHOP.SMS_ATMC_SNDNG_DSPTCH_NB, ''), '"'
, ',"rejectTelnb"',':', '"', IFNULL(SHOP.REJECT_TELNB, ''), '"'
, ',"shopDomain"',':', '"', IFNULL(SHOP.PC_DOMN_ADRES, ''), '"'
, ',"operBizrnb"',':', '"', IFNULL(COM.BIZRNB, ''), '"'
, ',"operMobDclNb"',':', '"', IFNULL(COM.MOB_DCL_NB, ''), '"'
, ',"operReprsntvnm"',':', '"', IFNULL(COM.REPRSNTVNM, ''), '"'
, ',"operRnmAdres"',':', '"', IFNULL(COM.RNM_ADRES, ''), '"'
, ',"operDtlAdres"',':', '"', IFNULL(COM.DTL_ADRES, ''), '"'
, ',"operTelnb"',':', '"', IFNULL(COM.TELNB, ''), '"'
'}')
FROM
GC_MEMBER MBR -- 회원테이블
INNER JOIN GC_MARKETING_AGREE MA -- 마케팅 동의
ON MBR.MBR_INNB = MA.MBR_INNB
AND MBR.MBR_DV_CD = MA.MBR_DV_CD
AND MA.MARKT_RECPTN_AGRE_AT = 'Y' -- 동의 대상자조회
INNER JOIN GC_SHOP SHOP -- 쇼핑몰 정보
ON MA.SOPMAL_CD = SHOP.SOPMAL_CD
INNER JOIN GC_SHOP_COMPANY SC -- 쇼핑몰운영사
ON SHOP.SOPMAL_CD = SC.SOPMAL_CD
AND SC.BSNM_DV_CD = '02'
INNER JOIN GC_COMPANY COM -- 법인
ON SC.BSNM_INNB = COM.BSNM_INNB
INNER JOIN GC_MESSAGE_SNDNG GMS -- 자동발송관리
ON GMS.SOPMAL_CD = SHOP.SOPMAL_CD
AND GMS.FORM_DV_CD = 'FORM_DV_CMMN'
AND GMS.FORM_DTL_DV_CD = '01'
INNER JOIN GC_EMAIL GE
ON GE.SOPMAL_CD = GMS.SOPMAL_CD
AND GE.EMAIL_SNDNG_FORM_INNB = '3'
WHERE 1=1
AND MBR.USE_AT = 'Y' -- 멤버 쿼리에는 다 들어가야 합니다. 중요***
AND MBR.EMAIL > '' -- 이메일 있는 경우만 이메일
AND TIMESTAMPDIFF(MONTH, IFNULL(MA.MARKT_RECPTN_AGRE_UPDT_DT, MA.UPDT_DT), CURDATE()) % 24 BETWEEN 22 AND 23
AND (TIMESTAMPDIFF(MONTH, IFNULL(MA.MARKT_RECPTN_AGRE_UPDT_DT, MA.UPDT_DT), CURDATE()) <= 24
OR TIMESTAMPDIFF(MONTH, MA.MARKT_RECPTN_AGRE_TRNSMIS_DT, CURDATE()) <=24 )
AND MARKT_RECPTN_AGRE_TRNSMIS_DT < DATE_SUB(CURDATE(), INTERVAL 18 MONTH) -- 넉넉하게 18개월 이내 문자 나간 애들은 제외
LIMIT 10000
]]>
</insert>
<select id="selectMarktAgreTrgtList"
resultType="dataMap">
</select>
<insert id="insertEmailLog">
<selectKey order="BEFORE" keyProperty="emailLogInnb" resultType="java.math.BigInteger">
<![CDATA[
SELECT IFNULL(MAX(EMAIL_LOG_INNB), 0)+1
FROM GC_EMAIL_LOG
]]>
</selectKey>
INSERT IGNORE INTO GC_EMAIL_LOG (
SOPMAL_CD
, MBR_INNB
, ATMC_SNDNG_AT
, SNDNG_CNT
, SNDER
, RCVER
, SJ
, CN
, EMAIL_SNDNG_FORM_INNB
, ORDR_INNB
, STTUS
, REGIST_DT
)
VALUES
<foreach collection="list" item="mssage" index="index" separator=",">
(
#{mssage.sopmalCd}
, #{mssage.mbrInnb}
, #{mssage.atmcSndngAt}
, #{mssage.sndngCnt}
, HEX(AES_ENCRYPT(#{mssage.snder}, #{mssage.secretKey}))
, HEX(AES_ENCRYPT(#{mssage.rcver}, #{mssage.secretKey}))
, #{mssage.sj}
, #{mssage.cn}
, #{mssage.emailSndngFormInnb}
, #{mssage.ordrInnb}
, #{mssage.sttus}
, NOW()
)
</foreach>
</insert>
<!-- 상태 수정 -->
<update id="updateMbrMarktAgreEmailSttus">
<![CDATA[
UPDATE GC_EMAIL AS EMAIL,
(SELECT
ET.EMAIL_SNDNG_INNB
FROM GC_EMAIL_TO ET
WHERE ET.STTUS = '3'
GROUP BY ET.EMAIL_SNDNG_INNB ) S
SET EMAIL.EMAIL_SNDNG_FORM_INNB = '0'
WHERE 1 = 1
AND EMAIL.EMAIL_SNDNG_FORM_INNB = '3'
AND EMAIL.EMAIL_SNDNG_INNB = S.EMAIL_SNDNG_INNB
]]>
</update>
<!-- 상태 삭제 -->
<delete id="deleteMbrMarktAgreEmail">
<![CDATA[
DELETE FROM GC_EMAIL
WHERE 1 = 1
AND EMAIL_SNDNG_FORM_INNB = '3'
]]>
</delete>
<!-- 상태 수정 -->
<update id="updateEmailSttus">
<![CDATA[
UPDATE GC_EMAIL AS EMAIL,
(SELECT
ET.EMAIL_SNDNG_INNB
FROM GC_EMAIL_TO ET
WHERE ET.STTUS = #{sttus}
GROUP BY ET.EMAIL_SNDNG_INNB ) S
SET EMAIL.EMAIL_SNDNG_FORM_INNB = '0'
WHERE 1 = 1
AND EMAIL.EMAIL_SNDNG_FORM_INNB = #{sttus}
AND EMAIL.EMAIL_SNDNG_INNB = S.EMAIL_SNDNG_INNB
]]>
</update>
<!-- 상태 삭제 -->
<delete id="deleteEmailNonTrgt">
<![CDATA[
DELETE FROM GC_EMAIL
WHERE 1 = 1
AND EMAIL_SNDNG_FORM_INNB = #{sttus}
]]>
</delete>
<!-- 이메일 발신 대상자 조회 -->
<select id="selectEmailVoList">
<![CDATA[
SELECT
GET2.EMAIL_SNDNG_INNB
, GET2.TRGET_SNB
, GET2.MBR_INNB
, CAST(AES_DECRYPT(UNHEX(GET2.RECPNT_EMAIL) , #{secretKey}) AS CHAR(50)) AS RECPNT_EMAIL
, GET2.RECPNT_NM
, GET2.STTUS
, GET2.SNDNG_DT
, GET2.RSLT_CD
, GE.SOPMAL_CD
, GE.SJ
, GE.CN
, CAST(AES_DECRYPT(UNHEX(GE.SNDR_EMAIL), #{secretKey}) AS CHAR(50)) AS SNDR_EMAIL
, GE.RECPTN_RJCT_URL
, GE.REGUSR_DV
, GE.REGIST_DT
, GE.EMAIL_SNDNG_FORM_INNB
, GET2.SUBST_DATA
, SHOP.SOPMAL_NM
FROM GC_EMAIL_TO GET2
INNER JOIN GC_EMAIL GE
ON GET2.EMAIL_SNDNG_INNB = GE.EMAIL_SNDNG_INNB
INNER JOIN GC_SHOP SHOP
ON SHOP.SOPMAL_CD = GE.SOPMAL_CD
WHERE 1=1
AND GET2.STTUS = #{sttus}
AND DATE(GE.REGIST_DT) = CURDATE()
ORDER BY GET2.EMAIL_SNDNG_INNB ASC
]]>
</select>
<!-- 이메일 발송여부 업데이트 -->
<update id="updateBOEmailSndng">
<foreach collection="list" item="dto" separator=";">
<![CDATA[
UPDATE GC_EMAIL_TO
SET
STTUS = #{dto.sttus}
, SNDNG_DT = SYSDATE()
, RSLT_CD = #{dto.rsltCd}
WHERE EMAIL_SNDNG_INNB = #{dto.emailSndngInnb}
AND TRGET_SNB = #{dto.trgetSnb}
]]>
</foreach>
</update>
<update id="updateEmailToSttus">
<![CDATA[
UPDATE GC_EMAIL_TO AS EMAILTO
SET EMAILTO.STTUS = 'REG'
WHERE 1 = 1
AND EMAILTO.STTUS = #{sttus}
]]>
</update>
<update id="updateMbrMarktAgreEmailToSttus">
<![CDATA[
UPDATE GC_EMAIL_TO AS EMAILTO
SET EMAILTO.STTUS = 'REG'
WHERE 1 = 1
AND EMAILTO.STTUS = '3'
]]>
</update>
<!-- 쿠폰 만료 -->
<!-- 비회원 2년 메일 등록 -->
<insert id="insertCouponEndEmail">
<![CDATA[
INSERT INTO GC_EMAIL (
SOPMAL_CD
, SNDNG_LC
, SJ
, CN
, SNDR_EMAIL
, RECPTN_RJCT_URL
, REGUSR_DV -- 등록자 구분 코드, 01 - 회원, 02 - 관리자, 03 - 시스템
, REGUSR -- 등록자 고유번호
, REGIST_DT -- 등록일 현재 NOW()
, EMAIL_SNDNG_FORM_INNB
)
SELECT
S.SOPMAL_CD
, NULL SNDNG_LC
, EF.EMAIL_SJ
, EF.EMAIL_CN
, S.EMAIL_ATMC_SNDNG_DSPTCH_ADRES
, '/mngr/ntcn/email/updateMarktRecptnArgeAt'
, '03' REGUSR_DV
, 0 REGUSR
, NOW() REGIST_DT
, '21'
FROM GC_SHOP S
INNER JOIN GC_EMAIL_FORM EF
ON S.SOPMAL_CD = EF.SOPMAL_CD
AND EF.FORM_DV_CD = 'FORM_DV_REMND'
AND EF.FORM_DTL_DV_CD = '03' -- 광고동의
AND EF.USE_AT = 'Y'
INNER JOIN GC_MESSAGE_SNDNG MS
ON S.SOPMAL_CD = MS.SOPMAL_CD
AND MS.FORM_DV_CD = 'FORM_DV_REMND'
AND MS.FORM_DTL_DV_CD = '03'
AND MS.USE_AT = 'Y'
]]>
</insert>
<insert id="insertCartEmail">
<![CDATA[
INSERT INTO GC_EMAIL (
SOPMAL_CD
, SNDNG_LC
, SJ
, CN
, SNDR_EMAIL
, RECPTN_RJCT_URL
, REGUSR_DV -- 등록자 구분 코드, 01 - 회원, 02 - 관리자, 03 - 시스템
, REGUSR -- 등록자 고유번호
, REGIST_DT -- 등록일 현재 NOW()
, EMAIL_SNDNG_FORM_INNB
)
SELECT
S.SOPMAL_CD
, NULL SNDNG_LC
, EF.EMAIL_SJ
, EF.EMAIL_CN
, S.EMAIL_ATMC_SNDNG_DSPTCH_ADRES
, '/mngr/ntcn/email/updateMarktRecptnArgeAt'
, '03' REGUSR_DV
, 0 REGUSR
, NOW() REGIST_DT
, '24'
FROM GC_SHOP S
INNER JOIN GC_EMAIL_FORM EF
ON S.SOPMAL_CD = EF.SOPMAL_CD
AND EF.FORM_DV_CD = 'FORM_DV_REMND'
AND EF.FORM_DTL_DV_CD = '06' -- 광고동의
AND EF.USE_AT = 'Y'
INNER JOIN GC_MESSAGE_SNDNG MS
ON S.SOPMAL_CD = MS.SOPMAL_CD
AND MS.FORM_DV_CD = 'FORM_DV_REMND'
AND MS.FORM_DTL_DV_CD = '06'
AND MS.USE_AT = 'Y'
]]>
</insert>
<insert id="insertCartSaleEmail">
<![CDATA[
INSERT INTO GC_EMAIL (
SOPMAL_CD
, SNDNG_LC
, SJ
, CN
, SNDR_EMAIL
, RECPTN_RJCT_URL
, REGUSR_DV -- 등록자 구분 코드, 01 - 회원, 02 - 관리자, 03 - 시스템
, REGUSR -- 등록자 고유번호
, REGIST_DT -- 등록일 현재 NOW()
, EMAIL_SNDNG_FORM_INNB
)
SELECT
S.SOPMAL_CD
, NULL SNDNG_LC
, EF.EMAIL_SJ
, EF.EMAIL_CN
, S.EMAIL_ATMC_SNDNG_DSPTCH_ADRES
, '/mngr/ntcn/email/updateMarktRecptnArgeAt'
, '03' REGUSR_DV
, 0 REGUSR
, NOW() REGIST_DT
, '25'
FROM GC_SHOP S
INNER JOIN GC_EMAIL_FORM EF
ON S.SOPMAL_CD = EF.SOPMAL_CD
AND EF.FORM_DV_CD = 'FORM_DV_REMND'
AND EF.FORM_DTL_DV_CD = '08' -- 광고동의
AND EF.USE_AT = 'Y'
INNER JOIN GC_MESSAGE_SNDNG MS
ON S.SOPMAL_CD = MS.SOPMAL_CD
AND MS.FORM_DV_CD = 'FORM_DV_REMND'
AND MS.FORM_DTL_DV_CD = '08'
AND MS.USE_AT = 'Y'
]]>
</insert>
<!-- 마일리지 만료 안내 -->
<select id="selectMlgTrgtListEmailInqire"
resultType="dataMap">
<![CDATA[
SELECT SHOP.SOPMAL_NM AS SHOP_NAME -- 쇼핑몰명
, CONCAT(REPLACE(SHOP.PC_DOMN_ADRES, 'https://',''), '/sopmal/mpage/mbr/selectMpageMainInqire') AS MYPAGE_SHORT_URL -- 마이페이지
, MLG.MBR_INNB -- 회원번호
, MLG.MBR_DV_CD -- 회원구분코드
, MBR.MBR_TY_CD -- 회원타입코드
, MBR.MBR_ID -- 회원 아이디
, MBR.MBR_NM AS USER_NAME -- 회원명 (템플릿위해 중복)
, MBR.MBR_NM AS USERNAME -- 회원명
, CURDATE() AS CURDATE -- 현재시간
, MBR.EMAIL AS RECPTN_EMAIL -- 수신 이메일
, MBR.MBTLNB AS RECPTN_NB -- 수신 번호
, MLG.SOPMAL_CD -- 쇼핑몰코드
, FORMAT(SUM(BLCE), 0) AS MILEAGE -- 현재 총 마일리지
, FORMAT(SUM( IF( DATE(MLG.USE_POSBL_END_DT) BETWEEN DATE_ADD(LAST_DAY(CURDATE()), INTERVAL 1 DAY)
AND LAST_DAY(DATE_ADD(CURDATE(), INTERVAL 1 MONTH)),
BLCE,
0
)
), 0
) AS EXP_MILEAGE -- 만료예상마일리지 (템플릿 위해 중복 조회)
, FORMAT(SUM( IF( DATE(MLG.USE_POSBL_END_DT) BETWEEN DATE_ADD(LAST_DAY(CURDATE()), INTERVAL 1 DAY)
AND LAST_DAY(DATE_ADD(CURDATE(), INTERVAL 1 MONTH)),
BLCE,
0
)
), 0
) AS MILEAGE_REST -- 만료예상마일리지 (템플릿 위해 중복 조회)
, GE.*
FROM GC_MILEAGE MLG
INNER JOIN GC_MEMBER MBR -- 회원테이블
ON MBR.MBR_INNB = MLG.MBR_INNB
AND MBR.MBR_DV_CD = MLG.MBR_DV_CD
INNER JOIN GC_MESSAGE_SNDNG GMS -- 자동발송테이블
ON GMS.SOPMAL_CD = GMA.SOPMAL_CD
AND GMS.FORM_DV_CD = #{formDvCd}
AND GMS.FORM_DTL_DV_CD = #{formDtlDvCd}
INNER JOIN GC_EMAIL_FORM GEF
ON GEF.SOPMAL_CD = GMS.SOPMAL_CD
AND GEF.EMAIL_SNDNG_FORM_INNB = GMS.EMAIL_SNDNG_FORM_INNB
AND GEF.USE_AT = 'Y'
INNER JOIN GC_SHOP SHOP -- 쇼핑몰
ON SHOP.SOPMAL_CD = MLG.SOPMAL_CD
INNER JOIN GC_EMAIL GE
ON GE.SOPMAL_CD = SHOP.SOPMAL_CD
AND GE.EMAIL_SNDNG_FORM_INNB = '22'
WHERE 1=1
AND MLG.BLCE > 0 -- 잔액 0 이상
AND MLG.CANCL_AT = 'N' -- 취소되지 않은 마일리지
AND MLG.END_AT = 'N' -- 만료되지 않은 마일리지
AND MLG.USE_POSBL_END_DT >= NOW() -- 만료기간 남아있는 마일리지
AND MBR.MBTLNB > ''
GROUP BY MLG.MBR_INNB, MLG.MBR_DV_CD, MLG.SOPMAL_CD, SHOP.SOPMAL_NM, SHOP.MBL_DOMN_ADRES, GE.EMAIL_SNDNG_INNB
HAVING SUM( IF( DATE(MLG.USE_POSBL_END_DT) BETWEEN DATE_ADD(LAST_DAY(CURDATE()), INTERVAL 1 DAY)
AND LAST_DAY(DATE_ADD(CURDATE(), INTERVAL 1 MONTH)),
BLCE,
0
)
) > 0 -- 만료 대상 마일리지가 남아있는 경우
]]>
</select>
<!-- 회원 2년 메일 등록 -->
<insert id="insertMlgExpEmail">
<![CDATA[
INSERT INTO GC_EMAIL (
SOPMAL_CD
, SNDNG_LC
, SJ
, CN
, SNDR_EMAIL
, RECPTN_RJCT_URL
, REGUSR_DV -- 등록자 구분 코드, 01 - 회원, 02 - 관리자, 03 - 시스템
, REGUSR -- 등록자 고유번호
, REGIST_DT -- 등록일 현재 NOW()
, EMAIL_SNDNG_FORM_INNB
)
SELECT
S.SOPMAL_CD
, NULL SNDNG_LC
, EF.EMAIL_SJ
, EF.EMAIL_CN
, S.EMAIL_ATMC_SNDNG_DSPTCH_ADRES
, '/mngr/ntcn/email/updateMarktRecptnArgeAt'
, '03' REGUSR_DV
, 0 REGUSR
, NOW() REGIST_DT
, '22'
FROM GC_SHOP S
INNER JOIN GC_EMAIL_FORM EF
ON S.SOPMAL_CD = EF.SOPMAL_CD
AND EF.FORM_DV_CD = 'FORM_DV_REMND'
AND EF.FORM_DTL_DV_CD = '04' -- 광고동의
AND EF.USE_AT = 'Y'
INNER JOIN GC_MESSAGE_SNDNG MS
ON S.SOPMAL_CD = MS.SOPMAL_CD
AND MS.FORM_DV_CD = 'FORM_DV_REMND'
AND MS.FORM_DTL_DV_CD = '04'
AND MS.USE_AT = 'Y'
]]>
</insert>
<!-- 이메일 발송 대상자 조회 -->
<select id="selectEmailLogOkList">
SELECT
LOG.SOPMAL_CD
, LOG.MBR_INNB
, LOG.RCVER
FROM GC_EMAIL_LOG LOG
WHERE 1=1
AND LOG.EMAIL_SNDNG_FORM_INNB = #{sttus}
AND LOG.STTUS = 'OK'
</select>
<!-- 회원 2년 이메일 대상자 업데이트 -->
<update id="updateMarktAgreTrnsmisDt">
UPDATE GC_MARKETING_AGREE GMA
INNER JOIN GC_MEMBER MBR
ON MBR.MBR_DV_CD = GMA.MBR_DV_CD
AND MBR.MBR_INNB = GMA.MBR_INNB
SET GMA.MARKT_RECPTN_AGRE_TRNSMIS_DT = NOW()
WHERE 1=1
AND GMA.SOPMAL_CD = #{sopmalCd}
AND GMA.MBR_INNB = #{mbrInnb}
AND MBR.EMAIL = HEX(AES_ENCRYPT(#{rcver}, #{secretKey}))
</update>
<!-- 이메일 발송 후 상태 수정 -->
<update id="updateEmailSendSttus">
UPDATE GC_EMAIL_TO
SET
STTUS = #{sttus}
, SNDNG_DT = NOW()
, RSLT_CD = #{rsltCd}
WHERE 1=1
AND EMAIL_SNDNG_INNB = #{emailSndngInnb}
AND TRGET_SNB = #{trgetSnb}
</update>
<!-- 이메일 로그 등록 -->
<insert id="insertEmailSendLog">
INSERT INTO GC_EMAIL_LOG (
SOPMAL_CD
, MBR_INNB
, ATMC_SNDNG_AT
, SNDNG_CNT
, SNDER
, RCVER
, SJ
, CN
, EMAIL_SNDNG_FORM_INNB
, ORDR_INNB
, STTUS
, REGIST_DT
)
VALUES
(
#{sopmalCd}
, #{mbrInnb}
, #{atmcSndngAt}
, #{sndngCnt}
, HEX(AES_ENCRYPT(#{snder}, '1df5be2f7e90ae36'))
, HEX(AES_ENCRYPT(#{rcver}, '1df5be2f7e90ae36'))
, #{sj}
, #{cn}
, #{emailSndngFormInnb}
, #{ordrInnb}
, #{sttus}
, SYSDATE()
)
</insert>
</mapper>

View File

@@ -0,0 +1,448 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.wb.domainserver.mapper.gcone.EpMapper">
<!--네이버 EP 조회-->
<select id="selectNaverEp" resultType="com.wb.domainserver.ep.vo.NaverEp">
<![CDATA[
SELECT
GG.SOPMAL_CD -- 쇼핑몰별 구분용
,GG.GOODS_INNB AS ID
,GG.GOODS_NM AS TITLE
,ROUND(GGO.SLEPRIC, 0) AS PRICE_PC
,CONCAT(GS.PC_DOMN_ADRES, '/sopmal/goods/selectGoodsDtl', '?goodsInnb=', GG.GOODS_INNB,'&amp;market=naver') AS LINK
,CONCAT(GS.MBL_DOMN_ADRES, '/sopmal/goods/selectGoodsDtl', '?goodsInnb=', GG.GOODS_INNB,'&amp;market=naver') AS MOBILE_LINK
,GGI.IMG AS IMAGE_LINK
,IFNULL(CTGY.FULL_PATH, '') AS CATEGORY_NAME
,GS.SOPMAL_NM AS BRAND
,CASE WHEN GGO.MLG_POLICY_CD = '01' THEN ROUND(IFNULL(GGO.SLEPRIC,0) * IFNULL(GS.MLG_PYMNT_RT, 0)/100, 0)
WHEN GGO.MLG_ACCML_CD = '01' THEN ROUND(IFNULL(GGO.SLEPRIC,0) * IFNULL(GGO.MLG_ACCML_AMT, 0)/100, 0)
ELSE ROUND(IFNULL(GGO.MLG_ACCML_AMT, 0), 0) END AS POINT -- 마일리지 적립금액 (통합정책/개별정책에 따라 대체적용_합산없음)
,IFNULL(CNT.GOODS_CNT, 0) AS REVIEW_COUNT
,ROUND(GSG.DFT_DLVY_AMT, 0) AS SHIPPING
FROM
GC_GOODS GG
INNER JOIN
GC_SHOP GS
ON GG.SOPMAL_CD = GS.SOPMAL_CD
AND GS.OPER_AT ='Y'
LEFT JOIN -- 기준 가격 관련 조인
GC_GOODS_OPTION GGO
ON GG.SOPMAL_CD = GGO.SOPMAL_CD
AND GG.GOODS_INNB = GGO.GOODS_INNB
AND GGO.STDR_DV_AT ='Y'
AND GGO.USE_AT ='Y'
LEFT JOIN ( -- 재고상태 관련 조인
SELECT
GGO.GOODS_INNB
,GGO.SOPMAL_CD
, CASE WHEN GG.INVNTRY_POLICY_CD= '01' THEN -- 01 재고가 있으면 판매
CASE WHEN IFNULL(SUM(GGO.INVNTRY_QY), 0) - IFNULL(SUM(GGO.USEFUL_INVNTRY_QY), 0) > IFNULL(GG.AVLINV_LMTT_QY, 0) THEN 'in stock' ELSE '' END
ELSE 'in stock' END AS IN_STOCK
FROM
GC_GOODS GG
LEFT JOIN GC_GOODS_OPTION GGO
ON GG.SOPMAL_CD = GGO.SOPMAL_CD
AND GG.GOODS_INNB = GGO.GOODS_INNB
WHERE
1 = 1
AND GGO.USE_AT = 'Y'
AND GGO.SOPMAL_CD IN (SELECT GS.SOPMAL_CD FROM GC_SHOP GS WHERE 1=1 AND GS.OPER_AT ='Y')
AND GGO.OPTN_TY IN('01', '02')
AND GG.USE_AT = 'Y'
GROUP BY
GGO.GOODS_INNB
,GGO.SOPMAL_CD
)STOCK
ON GG.GOODS_INNB = STOCK.GOODS_INNB
AND GG.SOPMAL_CD = STOCK.SOPMAL_CD
LEFT JOIN -- 상품이미지 조인
GC_GOODS_IMAGE GGI
ON GG.SOPMAL_CD = GGI.SOPMAL_CD
AND GG.GOODS_INNB = GGI.GOODS_INNB
AND IMG_KND ='01'
AND CUT_NB ='1'
LEFT JOIN ( -- 카테고리 조인
WITH RECURSIVE CATEGORY AS (
SELECT *
FROM (
SELECT
RANK () OVER (PARTITION BY CL.SOPMAL_CD, CL.GOODS_INNB
ORDER BY CL.REPRSNT_CTGRY_AT DESC, CC.CTGRY_DEPTH , CC.SORT_ORDR, CTGRY_ID DESC ) RNK
, CL.SOPMAL_CD, CL.GOODS_INNB, CL.REPRSNT_CTGRY_AT
, CC.CTGRY_ID, CC.UPPER_CTGRY_ID, CC.CTGRY_DEPTH, CC.CTGRY_NM AS FULL_PATH
FROM GC_CATEGORY CC
INNER JOIN GC_CATEGORY_LINK CL
ON CC.CTGRY_ID = CL.CTGRY_ID
AND CC.SOPMAL_CD = CL.SOPMAL_CD
WHERE 1 = 1
AND CL.SOPMAL_CD IN (SELECT GS.SOPMAL_CD FROM GC_SHOP GS WHERE 1=1 AND GS.OPER_AT ='Y')
AND CTGRY_DV_CD = '01'
) TGT
WHERE RNK = 1
UNION ALL
SELECT CAST(@ROWNUM:= CASE WHEN RNK = 1 THEN 2 ELSE 3 END AS UNSIGNED) AS RNK
, C.SOPMAL_CD, CH.GOODS_INNB, CH.REPRSNT_CTGRY_AT
, C.CTGRY_ID, C.UPPER_CTGRY_ID, C.CTGRY_DEPTH
, CASE WHEN CH.CTGRY_DEPTH <= 3 THEN CH.FULL_PATH ELSE CONCAT(C.CTGRY_NM, '| ', CH.FULL_PATH) END AS FULL_PATH
FROM GC_CATEGORY C
INNER JOIN CATEGORY CH
ON C.CTGRY_ID = CH.UPPER_CTGRY_ID
AND C.SOPMAL_CD = CH.SOPMAL_CD
WHERE (@ROWNUM:=1) >= 0
)
SELECT * FROM CATEGORY
WHERE RNK = 2
)CTGY
ON GG.GOODS_INNB = CTGY.GOODS_INNB
AND GG.SOPMAL_CD = CTGY.SOPMAL_CD
LEFT JOIN(
SELECT -- 상품평 갯수
count(*) AS GOODS_CNT
,GBG.SOPMAL_CD
,GBG.GOODS_INNB
FROM
GC_BOARDMANAGER GB
INNER JOIN
GC_BOARDDATA GB2
ON GB.BBS_ID = GB2.BBS_ID
AND GB.SOPMAL_CD = GB2.SOPMAL_CD
AND GB.USE_AT ='Y'
AND GB.BBS_TY_CD IN ('06', '07') -- 상품후기 게시판(06 : 상품후기, 07: 한달리뷰)
AND IFNULL(GB2.Npay_BBSCTT_SNB, '') != '' -- 네이버 후기가 아닌 리뷰
INNER JOIN
GC_BOARDDATA_GOODS GBG
ON GB2.BBSCTT_INNB = GBG.BBSCTT_INNB
AND GB2.SOPMAL_CD = GBG.SOPMAL_CD
AND GB2.USE_AT ='Y'
AND GB2.EXPSR_AT ='Y'
WHERE 1=1
GROUP BY
GBG.SOPMAL_CD
,GBG.GOODS_INNB )CNT
ON GG.SOPMAL_CD = CNT.SOPMAL_CD
AND GG.GOODS_INNB = CNT.GOODS_INNB
LEFT JOIN GC_SHIPPING_GROUPING GSG
ON GG.SOPMAL_CD = GSG.SOPMAL_CD
AND GG.DLVY_GROUP_INNB = GSG.DLVY_GROUP_INNB
WHERE
1 = 1
AND GG.GOODS_KND_CD = '01'
AND GG.GOODS_STTUS_CD = '01'
AND GG.USE_AT = 'Y'
AND STOCK.IN_STOCK != ''
AND GG.NAVER_EP_INTRLCK_AT ='Y'
ORDER BY GG.SOPMAL_CD, GG.GOODS_INNB ASC
]]>
</select>
<!--구글 EP 조회-->
<select id="selectGoogleEp" resultType="com.wb.domainserver.ep.vo.GoogleEp">
<![CDATA[
SELECT
GG.SOPMAL_CD
,GG.GOODS_INNB
,GG.GOODS_NM
,IFNULL(GG.REPRSNT_DC, '') AS REPRSNT_DC
,CONCAT(GS.PC_DOMN_ADRES, '/sopmal/goods/selectGoodsDtl', '?goodsInnb=', GG.GOODS_INNB,'&amp;market=google') AS PC_GOODS_LINK
-- ,CONCAT(GS.MBL_DOMN_ADRES, '/sopmal/goods/selectGoodsDtl', '?goodsInnb=', GG.GOODS_INNB) AS MBL_GOODS_LINK
,GS.PC_DOMN_ADRES
,GGI.IMG
,GS.SOPMAL_NM
,STOCK.IN_STOCK
,SUBSTRING_INDEX(IFNULL(CTGY.FULL_PATH, ''),'|',-1) AS PRODUCT_TYPE -- GOOGLE
,CONCAT(ROUND(GGO.CNSMRPRIC, 0), ' KRW') AS PRICE
,CONCAT(ROUND(GGO.SLEPRIC, 0), ' KRW') AS SALE_PRICE
FROM
GC_GOODS GG
INNER JOIN
GC_SHOP GS
ON GG.SOPMAL_CD = GS.SOPMAL_CD
AND GS.OPER_AT ='Y'
LEFT JOIN -- 기준 가격 관련 조인
GC_GOODS_OPTION GGO
ON GG.SOPMAL_CD = GGO.SOPMAL_CD
AND GG.GOODS_INNB = GGO.GOODS_INNB
AND GGO.STDR_DV_AT ='Y'
AND GGO.USE_AT ='Y'
LEFT JOIN ( -- 재고상태 관련 조인
SELECT
GGO.GOODS_INNB
,GGO.SOPMAL_CD
, CASE WHEN GG.INVNTRY_POLICY_CD= '01' THEN -- 01 재고가 있으면 판매
CASE WHEN IFNULL(SUM(GGO.INVNTRY_QY), 0) - IFNULL(SUM(GGO.USEFUL_INVNTRY_QY), 0) > IFNULL(GG.AVLINV_LMTT_QY, 0) THEN 'in stock' ELSE '' END
ELSE 'in stock' END AS IN_STOCK
FROM
GC_GOODS GG
LEFT JOIN GC_GOODS_OPTION GGO
ON GG.SOPMAL_CD = GGO.SOPMAL_CD
AND GG.GOODS_INNB = GGO.GOODS_INNB
WHERE
1 = 1
AND GGO.USE_AT = 'Y'
AND GGO.SOPMAL_CD IN (SELECT GS.SOPMAL_CD FROM GC_SHOP GS WHERE 1=1 AND GS.OPER_AT ='Y')
AND GGO.OPTN_TY IN('01', '02')
AND GG.USE_AT ='Y'
GROUP BY
GGO.GOODS_INNB
,GGO.SOPMAL_CD
)STOCK
ON GG.GOODS_INNB = STOCK.GOODS_INNB
AND GG.SOPMAL_CD = STOCK.SOPMAL_CD
LEFT JOIN -- 상품이미지 조인
GC_GOODS_IMAGE GGI
ON GG.SOPMAL_CD = GGI.SOPMAL_CD
AND GG.GOODS_INNB = GGI.GOODS_INNB
AND IMG_KND ='01'
AND CUT_NB ='1'
LEFT JOIN ( -- 카테고리 조인
WITH RECURSIVE CATEGORY AS (
SELECT *
FROM (
SELECT
RANK () OVER (PARTITION BY CL.SOPMAL_CD, CL.GOODS_INNB
ORDER BY CL.REPRSNT_CTGRY_AT DESC, CC.CTGRY_DEPTH , CC.SORT_ORDR, CTGRY_ID DESC ) RNK
, CL.SOPMAL_CD, CL.GOODS_INNB, CL.REPRSNT_CTGRY_AT
, CC.CTGRY_ID, CC.UPPER_CTGRY_ID, CC.CTGRY_DEPTH, CC.CTGRY_NM AS FULL_PATH
FROM GC_CATEGORY CC
INNER JOIN GC_CATEGORY_LINK CL
ON CC.CTGRY_ID = CL.CTGRY_ID
AND CC.SOPMAL_CD = CL.SOPMAL_CD
WHERE 1 = 1
AND CL.SOPMAL_CD IN (SELECT GS.SOPMAL_CD FROM GC_SHOP GS WHERE 1=1 AND GS.OPER_AT ='Y')
AND CTGRY_DV_CD = '01'
) TGT
WHERE RNK = 1
UNION ALL
SELECT CAST(@ROWNUM:= CASE WHEN RNK = 1 THEN 2 ELSE 3 END AS UNSIGNED) AS RNK
, C.SOPMAL_CD, CH.GOODS_INNB, CH.REPRSNT_CTGRY_AT
, C.CTGRY_ID, C.UPPER_CTGRY_ID, C.CTGRY_DEPTH
, CASE WHEN CH.CTGRY_DEPTH <= 3 THEN CH.FULL_PATH ELSE CONCAT(C.CTGRY_NM, '| ', CH.FULL_PATH) END AS FULL_PATH
FROM GC_CATEGORY C
INNER JOIN CATEGORY CH
ON C.CTGRY_ID = CH.UPPER_CTGRY_ID
AND C.SOPMAL_CD = CH.SOPMAL_CD
WHERE (@ROWNUM:=1) >= 0
)
SELECT * FROM CATEGORY
WHERE RNK = 2
)CTGY
ON GG.GOODS_INNB = CTGY.GOODS_INNB
AND GG.SOPMAL_CD = CTGY.SOPMAL_CD
WHERE
1 = 1
AND GG.GOODS_KND_CD = '01'
AND GG.GOODS_STTUS_CD = '01'
AND GG.USE_AT = 'Y'
AND STOCK.IN_STOCK != ''
AND GG.GOOGLE_EP_INTRLCK_AT ='Y' -- 구글 입접마케팅 여부
ORDER BY GG.SOPMAL_CD, GG.GOODS_INNB ASC
]]>
</select>
<!--메타 EP 조회-->
<select id="selectMetaEp" resultType="com.wb.domainserver.ep.vo.MetaEp">
<![CDATA[
SELECT
GG.SOPMAL_CD
,GG.GOODS_INNB
,GG.GOODS_NM
,IFNULL(GG.REPRSNT_DC, '') AS REPRSNT_DC
,CONCAT(GS.PC_DOMN_ADRES, '/sopmal/goods/selectGoodsDtl', '?goodsInnb=', GG.GOODS_INNB,'&amp;market=meta') AS PC_GOODS_LINK
-- ,CONCAT(GS.MBL_DOMN_ADRES, '/sopmal/goods/selectGoodsDtl', '?goodsInnb=', GG.GOODS_INNB) AS MBL_GOODS_LINK
,GS.PC_DOMN_ADRES
,GGI.IMG
,GS.SOPMAL_NM
,STOCK.IN_STOCK
,CONCAT(ROUND(GGO.CNSMRPRIC, 0), ' KRW') AS PRICE
,CONCAT(ROUND(GGO.SLEPRIC, 0), ' KRW') AS SALE_PRICE
FROM
GC_GOODS GG
INNER JOIN
GC_SHOP GS
ON GG.SOPMAL_CD = GS.SOPMAL_CD
AND GS.OPER_AT ='Y'
LEFT JOIN -- 기준 가격 관련 조인
GC_GOODS_OPTION GGO
ON GG.SOPMAL_CD = GGO.SOPMAL_CD
AND GG.GOODS_INNB = GGO.GOODS_INNB
AND GGO.STDR_DV_AT ='Y'
AND GGO.USE_AT ='Y'
LEFT JOIN ( -- 재고상태 관련 조인
SELECT
GGO.GOODS_INNB
,GGO.SOPMAL_CD
, CASE WHEN GG.INVNTRY_POLICY_CD= '01' THEN -- 01 재고가 있으면 판매
CASE WHEN IFNULL(SUM(GGO.INVNTRY_QY), 0) - IFNULL(SUM(GGO.USEFUL_INVNTRY_QY), 0) > IFNULL(GG.AVLINV_LMTT_QY, 0) THEN 'in stock' ELSE '' END
ELSE 'in stock' END AS IN_STOCK
FROM
GC_GOODS GG
LEFT JOIN GC_GOODS_OPTION GGO
ON GG.SOPMAL_CD = GGO.SOPMAL_CD
AND GG.GOODS_INNB = GGO.GOODS_INNB
WHERE
1 = 1
AND GGO.USE_AT = 'Y'
AND GGO.SOPMAL_CD IN (SELECT GS.SOPMAL_CD FROM GC_SHOP GS WHERE 1=1 AND GS.OPER_AT ='Y')
AND GGO.OPTN_TY IN('01', '02')
AND GG.USE_AT ='Y'
GROUP BY
GGO.GOODS_INNB
,GGO.SOPMAL_CD
)STOCK
ON GG.GOODS_INNB = STOCK.GOODS_INNB
AND GG.SOPMAL_CD = STOCK.SOPMAL_CD
LEFT JOIN -- 상품이미지 조인
GC_GOODS_IMAGE GGI
ON GG.SOPMAL_CD = GGI.SOPMAL_CD
AND GG.GOODS_INNB = GGI.GOODS_INNB
AND IMG_KND ='01'
AND CUT_NB ='1'
LEFT JOIN ( -- 카테고리 조인
WITH RECURSIVE CATEGORY AS (
SELECT *
FROM (
SELECT
RANK () OVER (PARTITION BY CL.SOPMAL_CD, CL.GOODS_INNB
ORDER BY CL.REPRSNT_CTGRY_AT DESC, CC.CTGRY_DEPTH , CC.SORT_ORDR, CTGRY_ID DESC ) RNK
, CL.SOPMAL_CD, CL.GOODS_INNB, CL.REPRSNT_CTGRY_AT
, CC.CTGRY_ID, CC.UPPER_CTGRY_ID, CC.CTGRY_DEPTH, CC.CTGRY_NM AS FULL_PATH
FROM GC_CATEGORY CC
INNER JOIN GC_CATEGORY_LINK CL
ON CC.CTGRY_ID = CL.CTGRY_ID
AND CC.SOPMAL_CD = CL.SOPMAL_CD
WHERE 1 = 1
AND CL.SOPMAL_CD IN (SELECT GS.SOPMAL_CD FROM GC_SHOP GS WHERE 1=1 AND GS.OPER_AT ='Y')
AND CTGRY_DV_CD = '01'
) TGT
WHERE RNK = 1
UNION ALL
SELECT CAST(@ROWNUM:= CASE WHEN RNK = 1 THEN 2 ELSE 3 END AS UNSIGNED) AS RNK
, C.SOPMAL_CD, CH.GOODS_INNB, CH.REPRSNT_CTGRY_AT
, C.CTGRY_ID, C.UPPER_CTGRY_ID, C.CTGRY_DEPTH
, CASE WHEN CH.CTGRY_DEPTH <= 3 THEN CH.FULL_PATH ELSE CONCAT(C.CTGRY_NM, '| ', CH.FULL_PATH) END AS FULL_PATH
FROM GC_CATEGORY C
INNER JOIN CATEGORY CH
ON C.CTGRY_ID = CH.UPPER_CTGRY_ID
AND C.SOPMAL_CD = CH.SOPMAL_CD
WHERE (@ROWNUM:=1) >= 0
)
SELECT * FROM CATEGORY
WHERE RNK = 2
)CTGY
ON GG.GOODS_INNB = CTGY.GOODS_INNB
AND GG.SOPMAL_CD = CTGY.SOPMAL_CD
WHERE
1 = 1
AND GG.GOODS_KND_CD = '01'
AND GG.GOODS_STTUS_CD = '01'
AND GG.USE_AT = 'Y'
AND STOCK.IN_STOCK != ''
AND GG.META_EP_INTRLCK_AT ='Y' -- 메타 입점마케팅 여부
ORDER BY GG.SOPMAL_CD, GG.GOODS_INNB ASC
]]>
</select>
<!--모비온 EP 조회-->
<select id="selectMobionEp" resultType="com.wb.domainserver.ep.vo.MobionEp">
<![CDATA[
SELECT
GG.SOPMAL_CD
,GG.GOODS_INNB
,GG.GOODS_NM
,CONCAT(GS.PC_DOMN_ADRES, '/sopmal/goods/selectGoodsDtl', '?goodsInnb=', GG.GOODS_INNB,'&market=mobion') AS PC_GOODS_LINK
,CONCAT(GS.MBL_DOMN_ADRES, '/sopmal/goods/selectGoodsDtl', '?goodsInnb=', GG.GOODS_INNB,'&market=mobion') AS MBL_GOODS_LINK
,IFNULL(GIMG.IMG, '') AS IMG
,ROUND(GGO.CNSMRPRIC, 0) AS PRICE
,ROUND(GGO.SLEPRIC, 0) AS SALE_PRICE
,IFNULL(CTGY.FULL_PATH, '') AS CATEGORY_NAME
FROM
GC_GOODS GG
INNER JOIN
GC_SHOP GS
ON GG.SOPMAL_CD = GS.SOPMAL_CD
AND GS.OPER_AT ='Y'
LEFT JOIN -- 기준 가격 관련 조인
GC_GOODS_OPTION GGO
ON GG.SOPMAL_CD = GGO.SOPMAL_CD
AND GG.GOODS_INNB = GGO.GOODS_INNB
AND GGO.STDR_DV_AT ='Y'
AND GGO.USE_AT ='Y'
LEFT JOIN ( -- 재고상태 관련 조인
SELECT
GGO.GOODS_INNB
,GGO.SOPMAL_CD
, CASE WHEN GG.INVNTRY_POLICY_CD= '01' THEN -- 01 재고가 있으면 판매
CASE WHEN IFNULL(SUM(GGO.INVNTRY_QY), 0) - IFNULL(SUM(GGO.USEFUL_INVNTRY_QY), 0) > IFNULL(GG.AVLINV_LMTT_QY, 0) THEN 'in stock' ELSE '' END
ELSE 'in stock' END AS IN_STOCK
FROM
GC_GOODS GG
LEFT JOIN GC_GOODS_OPTION GGO
ON GG.SOPMAL_CD = GGO.SOPMAL_CD
AND GG.GOODS_INNB = GGO.GOODS_INNB
WHERE
1 = 1
AND GGO.USE_AT = 'Y'
AND GGO.SOPMAL_CD IN (SELECT GS.SOPMAL_CD FROM GC_SHOP GS WHERE 1=1 AND GS.OPER_AT ='Y')
AND GGO.OPTN_TY IN('01', '02')
AND GG.USE_AT ='Y'
GROUP BY
GGO.GOODS_INNB
,GGO.SOPMAL_CD
)STOCK
ON GG.GOODS_INNB = STOCK.GOODS_INNB
AND GG.SOPMAL_CD = STOCK.SOPMAL_CD
LEFT JOIN -- 상품이미지 조인
(SELECT GG.SOPMAL_CD, GG.GOODS_INNB, GROUP_CONCAT(GGI.IMG SEPARATOR '|') AS IMG
FROM GC_GOODS GG
LEFT JOIN GC_GOODS_IMAGE GGI
ON GG.SOPMAL_CD = GGI.SOPMAL_CD
AND GG.GOODS_INNB = GGI.GOODS_INNB
AND IMG_KND ='01'
GROUP BY GG.SOPMAL_CD, GG.GOODS_INNB
) GIMG
ON GIMG.SOPMAL_CD = GG.SOPMAL_CD
AND GIMG.GOODS_INNB = GG.GOODS_INNB
LEFT JOIN ( -- 카테고리 조인
WITH RECURSIVE CATEGORY AS (
SELECT *
FROM (
SELECT
RANK () OVER (PARTITION BY CL.SOPMAL_CD, CL.GOODS_INNB
ORDER BY CL.REPRSNT_CTGRY_AT DESC, CC.CTGRY_DEPTH , CC.SORT_ORDR, CTGRY_ID DESC ) RNK
, CL.SOPMAL_CD, CL.GOODS_INNB, CL.REPRSNT_CTGRY_AT
, CC.CTGRY_ID, CC.UPPER_CTGRY_ID, CC.CTGRY_DEPTH, CC.CTGRY_NM AS FULL_PATH
FROM GC_CATEGORY CC
INNER JOIN GC_CATEGORY_LINK CL
ON CC.CTGRY_ID = CL.CTGRY_ID
AND CC.SOPMAL_CD = CL.SOPMAL_CD
WHERE 1 = 1
AND CL.SOPMAL_CD IN (SELECT GS.SOPMAL_CD FROM GC_SHOP GS WHERE 1=1 AND GS.OPER_AT ='Y')
AND CTGRY_DV_CD = '01'
) TGT
WHERE RNK = 1
UNION ALL
SELECT CAST(@ROWNUM:= CASE WHEN RNK = 1 THEN 2 ELSE 3 END AS UNSIGNED) AS RNK
, C.SOPMAL_CD, CH.GOODS_INNB, CH.REPRSNT_CTGRY_AT
, C.CTGRY_ID, C.UPPER_CTGRY_ID, C.CTGRY_DEPTH
, CASE WHEN CH.CTGRY_DEPTH <= 3 THEN CH.FULL_PATH ELSE CONCAT(C.CTGRY_NM, '|', CH.FULL_PATH) END AS FULL_PATH
FROM GC_CATEGORY C
INNER JOIN CATEGORY CH
ON C.CTGRY_ID = CH.UPPER_CTGRY_ID
AND C.SOPMAL_CD = CH.SOPMAL_CD
WHERE (@ROWNUM:=1) >= 0
)
SELECT * FROM CATEGORY
WHERE RNK = 2
)CTGY
ON GG.GOODS_INNB = CTGY.GOODS_INNB
AND GG.SOPMAL_CD = CTGY.SOPMAL_CD
WHERE
1 = 1
AND GG.GOODS_KND_CD = '01'
AND GG.GOODS_STTUS_CD = '01'
AND GG.USE_AT = 'Y'
AND STOCK.IN_STOCK != ''
AND GG.MOBION_EP_INTRLCK_AT ='Y' -- 모비온 입점마케팅 여부
ORDER BY GG.SOPMAL_CD, GG.GOODS_INNB ASC
]]>
</select>
</mapper>

View File

@@ -0,0 +1,50 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.wb.domainserver.mapper.gcone.ExtOrdrMapper">
<!-- GC_EXT_OREDER MAX값 조회-->
<select id = "selectExtOrdrMaxInnb" resultType="DataMap">
SELECT
IFNULL(MAX(ERP_ORDER_INNB),0) AS MAX_ERP_ORDER_INNB
FROM
GC_ERP_ORDER
</select>
<!-- GC_EXT_ORDER 등록 -->
<insert id = "insertExtOrdr">
INSERT INTO GC_ERP_ORDER
( ERP_ORDER_INNB,
CPR_CD,
BRAND_CD,
SOPMAL_DV,
SOPMAL,
ORDR_NB,
ORDR_DT,
DLIVY_DT,
MBTLNB,
NM,
ADRES,
EMAIL,
MEMO,
UPLOAD_GROUP,
REGIST_DT,
UPDT_DT
)
VALUES (
#{erpOrderInnb},
#{cprCd},
#{brandCd},
#{sopmalDv},
#{sopmal},
#{ordrNb},
#{ordrDt},
#{dlivyDt},
HEX(AES_ENCRYPT(#{mbtlnb}, '1df5be2f7e90ae36')),
#{nm},
#{adres},
HEX(AES_ENCRYPT(#{email}, '1df5be2f7e90ae36')),
#{memo},
#{uploadGroup},
NOW(),
NOW()
)
</insert>
</mapper>

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.wb.domainserver.mapper.gcone.SampleGconeMapper">
<insert id="insertGconeCheck" parameterType="com.wb.domainserver.sample.vo.BbsmngrVO">
INSERT INTO test (id, code) VALUES(#{bbsId},#{bbsNm})
</insert>
</mapper>

View File

@@ -0,0 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.wb.domainserver.mapper.gcone.LogMapper">
<!--삭제대상 기준정보 조회-->
<select id="selectSopmalAccessLogStdr" resultType="com.wb.domainserver.log.vo.AccessLogVO">
SELECT MAX(ACCESS_LOG_INNB) AS ACCESS_LOG_INNB
FROM GC_ACCESS_LOG2
WHERE 1 = 1
AND REGIST_DE <![CDATA[<=]]> DATE_SUB(NOW(), INTERVAL 7 DAY)
</select>
<!-- 삭제대상 정보 데이터 백업-->
<insert id="insertSopmalAccessLogBak" parameterType="com.wb.domainserver.log.vo.AccessLogVO">
INSERT IGNORE INTO
GC_ACCESS_LOG
SELECT
*
FROM GC_ACCESS_LOG2
WHERE 1=1
AND ACCESS_LOG_INNB <![CDATA[<=]]> #{accessLogInnb}
</insert>
<!-- 엑세스로그 삭제 -->
<delete id="deleteSopmalAccessLog" parameterType="com.wb.domainserver.log.vo.AccessLogVO">
DELETE
FROM
GC_ACCESS_LOG2
WHERE 1 = 1
AND ACCESS_LOG_INNB <![CDATA[<=]]> #{accessLogInnb}
</delete>
</mapper>

View File

@@ -0,0 +1,262 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.wb.domainserver.mapper.gcone.MbrGradMapper">
<insert id="insertGcGradChangeLog">
INSERT INTO GC_GRADE_CHANGE_LOG
( GRAD_CHNG_LOG_INNB
, CHNG_YM
, MBR_INNB
, MBR_DV_CD
, SOPMAL_CD
, MBR_GRAD_INNB
, MBR_GRAD_ORDR
, NEW_MBR_GRAD_INNB
, NEW_GRAD_ORDR
, CHNG_GRAD_DV
, CALC_PD_MT_CNT
, GRAD_MDAT_CYCLE_MT_CNT
, USE_AT
, REGUSR
, REGIST_DT)
SELECT CAST(@ROWNUM := @ROWNUM + 1 AS UNSIGNED) AS GRAD_CHNG_LOG_INNB
, DATE_FORMAT(CURDATE(), '%Y%m')
, CG.MBR_INNB
, CG.MBR_DV_CD
, CG.SOPMAL_CD
, CG.MBR_GRAD_INNB
, CG.OLD_GRAD_ORDR
, CG.NEW_MBR_GRAD_INNB
, CG.NEW_GRAD_ORDR
, CASE
WHEN CG.OLD_GRAD_ORDR <![CDATA[<]]> CG.NEW_GRAD_ORDR THEN 'UP'
WHEN CG.OLD_GRAD_ORDR <![CDATA[>]]> CG.NEW_GRAD_ORDR THEN 'DN'
ELSE 'EQ'
END CHNG_GRAD_DV
, CG.CALC_PD_MT_CNT
, CG.GRAD_MDAT_CYCLE_MT_CNT
, 'Y'
, 0
, SYSDATE()
FROM (SELECT GM2.MBR_INNB
, GM2.MBR_DV_CD
, GM2.MBR_ID
, GM2.MBR_NM
, GM2.SOPMAL_CD
, GM2.MBR_GRAD_INNB
, (SELECT MBR_GRAD_ORDR
FROM GC_MEMBER_GRAD MG
WHERE MG.MBR_GRAD_INNB = GM2.MBR_GRAD_INNB) OLD_GRAD_ORDR
, FN_GET_MEMBER_GRAD_NAME(GM2.SOPMAL_CD, GM2.MBR_DV_CD, GM2.MBR_INNB) MBR_GRAD_NM
, GM2.CALC_PD_MT_CNT
, GM2.GRAD_MDAT_CYCLE_MT_CNT
, GM2.CALC_BGN_DT
, GM2.CALC_END_DT
, IFNULL(ORDR.RL_SETLE_AMT, 0) RL_SETLE_AMT
, IFNULL(ORDR.REFUND_AMT, 0) REFUND_AMT
, (SELECT MAX(MBR_GRAD_INNB)
FROM GC_MEMBER_GRAD GMG
WHERE GMG.SOPMAL_CD = GM2.SOPMAL_CD
AND GMG.MBR_GRAD_AMT <![CDATA[<=]]>
IFNULL(ORDR.RL_SETLE_AMT, 0) - IFNULL(ORDR.REFUND_AMT, 0)) NEW_MBR_GRAD_INNB
, (SELECT MBR_GRAD_ORDR
FROM GC_MEMBER_GRAD MG2
WHERE MG2.MBR_GRAD_INNB = (SELECT MAX(MBR_GRAD_INNB)
FROM GC_MEMBER_GRAD GMG2
WHERE GMG2.SOPMAL_CD = GM2.SOPMAL_CD
AND GMG2.MBR_GRAD_AMT <![CDATA[<=]]> IFNULL(ORDR.RL_SETLE_AMT, 0) -
IFNULL(ORDR.REFUND_AMT, 0))) NEW_GRAD_ORDR
FROM (SELECT GM.MBR_INNB
, GM.MBR_DV_CD
, GM.MBR_ID
, GM.MBR_NM
, GMGM.SOPMAL_CD
, GMGM.MBR_GRAD_INNB
, FN_GET_MEMBER_GRAD_NAME(GMGM.SOPMAL_CD, GM.MBR_DV_CD, GM.MBR_INNB) MBR_GRAD_NM
, MGG.CALC_PD_MT_CNT
, MGG.GRAD_MDAT_CYCLE_MT_CNT
, MGG.CALC_BGN_DT
, MGG.CALC_END_DT
FROM GC_MEMBER GM
INNER JOIN GC_MEMBER_GRAD_MAPPING GMGM
ON GM.MBR_INNB = GMGM.MBR_INNB
AND GM.MBR_DV_CD = GMGM.MBR_DV_CD
AND GM.MBR_TY_CD = '01'
INNER JOIN (SELECT GMGG.SOPMAL_CD
, DATE_FORMAT(NOW(), '%Y-01-01') STD_DT
, GMGG.CALC_PD_MT_CNT -- 산정기간월수
, GMGG.GRAD_MDAT_CYCLE_MT_CNT -- 등급조정주기
, DATE_FORMAT(DATE_SUB(NOW(), INTERVAL CALC_PD_MT_CNT MONTH),
'%Y-%m-01 00:00:00') CALC_BGN_DT
, DATE_FORMAT(LAST_DAY(DATE_SUB(NOW(), INTERVAL 1 MONTH)),
'%Y-%m-%d 23:59:59') CALC_END_DT
FROM GC_MEMBER_GRAD_GROUP GMGG
WHERE GMGG.USE_AT = 'Y'
AND GMGG.GRAD_MDAT_AT = 'Y') MGG
ON GMGM.SOPMAL_CD = MGG.SOPMAL_CD) GM2
LEFT JOIN LATERAL
( SELECT GO2.MBR_INNB,
GO2.MBR_DV_CD,
GO2.SOPMAL_CD,
SUM(GO2.RL_SETLE_AMT) RL_SETLE_AMT,
IFNULL(SUM(RE.REFUND_AMT), 0) REFUND_AMT
FROM GC_ORDER GO2
LEFT JOIN
(SELECT GOR.ORDR_INNB, GOR.SOPMAL_CD, SUM(IFNULL(GOR.REFUND_AMT, 0)) REFUND_AMT
FROM GC_ORDER_REFUND GOR
WHERE 1 = 1
AND GOR.REFUND_PROCS_STTUS_CD = '03'
AND GOR.USE_AT = 'Y'
-- AND GOR.REFUND_REQST_DT BETWEEN GM.CALC_BGN_DT AND GM.CALC_END_DT
GROUP BY GOR.ORDR_INNB, GOR.SOPMAL_CD) RE
ON GO2.ORDR_INNB = RE.ORDR_INNB
AND GO2.SOPMAL_CD = RE.SOPMAL_CD
WHERE GO2.USE_AT = 'Y'
AND GO2.MBR_INNB > 0
AND GO2.ORDR_STTUS_CD = '75'
AND GO2.SOPMAL_CD = GM2.SOPMAL_CD
and GO2.MBR_INNB = GM2.MBR_INNB
AND GO2.ORDR_RCEPT_DT BETWEEN GM2.CALC_BGN_DT AND GM2.CALC_END_DT
GROUP BY GO2.MBR_INNB, GO2.MBR_DV_CD, GO2.SOPMAL_CD
) ORDR
ON GM2.MBR_INNB = ORDR.MBR_INNB
AND GM2.MBR_DV_CD = ORDR.MBR_DV_CD
AND GM2.SOPMAL_CD = ORDR.SOPMAL_CD
WHERE 1 = 1 #AND GM2.MBR_INNB IN (6, 11)
-- AND GM.MBR_TY_CD = '01'
-- AND GO2.SLE_ENVRN_CD = 판매환경 관계없이 다 포함(TM,POS 등 모두:금이사님~)
GROUP BY GM2.MBR_INNB
, GM2.MBR_DV_CD
, GM2.MBR_ID
, GM2.MBR_NM
, GM2.SOPMAL_CD
, GM2.MBR_GRAD_INNB
, GM2.CALC_PD_MT_CNT
, GM2.GRAD_MDAT_CYCLE_MT_CNT
, GM2.CALC_BGN_DT
, GM2.CALC_END_DT) CG
WHERE (@ROWNUM := (SELECT IFNULL(MAX(D.GRAD_CHNG_LOG_INNB), 0) FROM GC_GRADE_CHANGE_LOG D)) >= 0
AND MBR_GRAD_INNB <![CDATA[<>]]> NEW_MBR_GRAD_INNB
</insert>
<update id="updateGcGrad">
UPDATE
GC_MEMBER_GRAD_MAPPING as GGM,
(SELECT CG.MBR_INNB, CG.MBR_DV_CD, CG.SOPMAL_CD, CG.MBR_GRAD_INNB, CG.NEW_MBR_GRAD_INNB
FROM (
SELECT GM2.MBR_INNB
, GM2.MBR_DV_CD
, GM2.MBR_ID
, GM2.MBR_NM
, GM2.SOPMAL_CD
, GM2.MBR_GRAD_INNB
, (SELECT MBR_GRAD_ORDR FROM GC_MEMBER_GRAD MG WHERE MG.MBR_GRAD_INNB = GM2.MBR_GRAD_INNB) OLD_GRAD_ORDR
, FN_GET_MEMBER_GRAD_NAME(GM2.SOPMAL_CD,GM2.MBR_DV_CD,GM2.MBR_INNB)MBR_GRAD_NM
, GM2.CALC_PD_MT_CNT
, GM2.GRAD_MDAT_CYCLE_MT_CNT
, GM2.CALC_BGN_DT
, GM2.CALC_END_DT
, IFNULL(ORDR.RL_SETLE_AMT,0) RL_SETLE_AMT
, IFNULL(ORDR.REFUND_AMT,0) REFUND_AMT
, (SELECT MAX(MBR_GRAD_INNB)
FROM GC_MEMBER_GRAD GMG
WHERE GMG.SOPMAL_CD = GM2.SOPMAL_CD
AND GMG.MBR_GRAD_AMT <![CDATA[<=]]> IFNULL(ORDR.RL_SETLE_AMT,0) - IFNULL(ORDR.REFUND_AMT,0)
) NEW_MBR_GRAD_INNB
, (SELECT MBR_GRAD_ORDR
FROM GC_MEMBER_GRAD MG2
WHERE MG2.MBR_GRAD_INNB = (SELECT MAX(MBR_GRAD_INNB)
FROM GC_MEMBER_GRAD GMG2
WHERE GMG2.SOPMAL_CD = GM2.SOPMAL_CD
AND GMG2.MBR_GRAD_AMT <![CDATA[<=]]> IFNULL(ORDR.RL_SETLE_AMT,0) - IFNULL(ORDR.REFUND_AMT,0)
)
) NEW_GRAD_ORDR
FROM (
SELECT GM.MBR_INNB
, GM.MBR_DV_CD
, GM.MBR_ID
, GM.MBR_NM
, GMGM.SOPMAL_CD
, GMGM.MBR_GRAD_INNB
, FN_GET_MEMBER_GRAD_NAME(GMGM.SOPMAL_CD,GM.MBR_DV_CD,GM.MBR_INNB)MBR_GRAD_NM
, MGG.CALC_PD_MT_CNT
, MGG.GRAD_MDAT_CYCLE_MT_CNT
, MGG.CALC_BGN_DT
, MGG.CALC_END_DT
FROM GC_MEMBER GM
INNER JOIN GC_MEMBER_GRAD_MAPPING GMGM
ON GM.MBR_INNB = GMGM.MBR_INNB
AND GM.MBR_DV_CD = GMGM.MBR_DV_CD
AND GM.MBR_TY_CD = '01'
INNER JOIN (SELECT GMGG.SOPMAL_CD
, DATE_FORMAT(NOW(),'%Y-01-01') STD_DT
, GMGG.CALC_PD_MT_CNT -- 산정기간월수
, GMGG.GRAD_MDAT_CYCLE_MT_CNT -- 등급조정주기
, DATE_FORMAT(DATE_SUB(NOW(), INTERVAL CALC_PD_MT_CNT MONTH), '%Y-%m-01 00:00:00') CALC_BGN_DT
, DATE_FORMAT(LAST_DAY(DATE_SUB(NOW(), INTERVAL 1 MONTH)), '%Y-%m-%d 23:59:59') CALC_END_DT
FROM GC_MEMBER_GRAD_GROUP GMGG
WHERE GMGG.USE_AT ='Y'
AND GMGG.GRAD_MDAT_AT = 'Y'
) MGG
ON GMGM.SOPMAL_CD = MGG.SOPMAL_CD
) GM2
LEFT JOIN LATERAL
( SELECT GO2.MBR_INNB, GO2.MBR_DV_CD, GO2.SOPMAL_CD, SUM(GO2.RL_SETLE_AMT) RL_SETLE_AMT, IFNULL(SUM(RE.REFUND_AMT),0) REFUND_AMT
FROM GC_ORDER GO2
LEFT JOIN
( SELECT GOR.ORDR_INNB, GOR.SOPMAL_CD, SUM(IFNULL(GOR.REFUND_AMT,0)) REFUND_AMT
FROM GC_ORDER_REFUND GOR
WHERE 1 = 1
AND GOR.REFUND_PROCS_STTUS_CD = '03'
AND GOR.USE_AT ='Y'
-- AND GOR.REFUND_REQST_DT BETWEEN GM.CALC_BGN_DT AND GM.CALC_END_DT
GROUP BY GOR.ORDR_INNB, GOR.SOPMAL_CD
) RE
ON GO2.ORDR_INNB = RE.ORDR_INNB
AND GO2.SOPMAL_CD = RE.SOPMAL_CD
WHERE GO2.USE_AT = 'Y'
AND GO2.MBR_INNB <![CDATA[>]]> 0
AND GO2.ORDR_STTUS_CD = '75'
AND GO2.SOPMAL_CD = GM2.SOPMAL_CD
and GO2.MBR_INNB = GM2.MBR_INNB
AND GO2.ORDR_RCEPT_DT BETWEEN GM2.CALC_BGN_DT AND GM2.CALC_END_DT
GROUP BY GO2.MBR_INNB, GO2.MBR_DV_CD, GO2.SOPMAL_CD
) ORDR
ON GM2.MBR_INNB = ORDR.MBR_INNB
AND GM2.MBR_DV_CD = ORDR.MBR_DV_CD
AND GM2.SOPMAL_CD = ORDR.SOPMAL_CD
WHERE 1 = 1
#AND GM2.MBR_INNB IN (6, 11)
-- AND GM.MBR_TY_CD = '01'
-- AND GO2.SLE_ENVRN_CD = 판매환경 관계없이 다 포함(TM,POS 등 모두:금이사님~)
GROUP BY GM2.MBR_INNB
, GM2.MBR_DV_CD
, GM2.MBR_ID
, GM2.MBR_NM
, GM2.SOPMAL_CD
, GM2.MBR_GRAD_INNB
, GM2.CALC_PD_MT_CNT
, GM2.GRAD_MDAT_CYCLE_MT_CNT
, GM2.CALC_BGN_DT
, GM2.CALC_END_DT
) CG
WHERE 1 =1
AND MBR_GRAD_INNB <![CDATA[<>]]> NEW_MBR_GRAD_INNB) S
SET
GGM.MBR_GRAD_INNB = S.NEW_MBR_GRAD_INNB
, GGM.GRAD_MDAT_DT = NOW()
, GGM.REGUSR = 0
, GGM.REGIST_DT = SYSDATE()
WHERE 1 = 1
AND GGM.MBR_INNB = S.MBR_INNB
AND GGM.MBR_DV_CD = S.MBR_DV_CD
AND GGM.SOPMAL_CD = S.SOPMAL_CD
</update>
<update id="updateGcGradLogUseAt">
UPDATE GC_GRADE_CHANGE_LOG GCL
SET USE_AT = 'N'
WHERE 1 = 1
AND GCL.CHNG_YM = DATE_FORMAT(CURDATE(), '%Y%m')
AND GCL.USE_AT = 'Y'
</update>
</mapper>

View File

@@ -0,0 +1,171 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.wb.domainserver.mapper.gcone.MbrMapper">
<!--회원 검색 WHERE절-->
<sql id="mbrListInqireWhere">
<![CDATA[
WHERE 1=1
AND FM.MBR_DV_CD = (SELECT CASE WHEN SOPMAL_TY_CD = '01' THEN 'GC' ELSE SOPMAL_CD END MBR_DV_CD FROM GC_SHOP WHERE SOPMAL_CD = #{sopmalCd})
AND FM.MBR_TY_CD = '01'
AND FM.USE_AT = 'Y'
]]>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchMbrNm)">
<![CDATA[
AND FM.MBR_NM = #{srchMbrNm}
]]>
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchKywordID)">
<![CDATA[
AND FM.MBR_ID = #{srchKywordID}
]]>
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchKywordEmail)">
<![CDATA[
AND FM.EMAIL = (select HEX(AES_ENCRYPT(#{srchKywordEmail} , '1df5be2f7e90ae36')))
]]>
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(srchKywordMb)">
<![CDATA[
AND FM.MBTLNB = (select HEX(AES_ENCRYPT(#{srchKywordMb}, '1df5be2f7e90ae36')))
]]>
</if>
<if test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(actionDv)">
AND FMAG.MARKT_RECPTN_AGRE_AT = 'Y'
<choose>
<when test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(actionDv, 'email')">
AND FMAG.EMAIL_RECPTN_AT = 'Y'
</when>
<otherwise>
AND FMAG.SMS_RECPTN_AT = 'Y'
</otherwise>
</choose>
</if>
</sql>
<select id="selectBOMbrListInqire">
<![CDATA[
SELECT CAST(AES_DECRYPT(UNHEX(FM.MBTLNB), #{secretKey}) AS CHAR(50)) AS MBTLNB
, CAST(AES_DECRYPT(UNHEX(FM.MBTLNB), #{secretKey}) AS CHAR(50)) AS SNDNG_MBTLNB
, FM.MBR_DV_CD
, FM.INFLOW_COURS_DOMN
, SUBSTRING(FM.INFLOW_COURS_DOMN, 1, 1) AS SUM_INFOW_COURS
, FM.MBR_TY_CD
, FMG.MBR_GRAD_NM
, FM.MBR_ID
, FM.MBR_NM
, FM.MBR_NM AS RECPNT_NM
, FM.MBR_INNB
, CAST(AES_DECRYPT(UNHEX(FM.EMAIL), #{secretKey}) AS CHAR(50)) AS EMAIL
, DATE_FORMAT(FM.REGIST_DT, '%Y-%m-%d %H:%i:%s') REGIST_DT
, DATE_FORMAT(FMS.LAST_LOGIN_DT, '%Y-%m-%d %H:%i:%s') LAST_LOGIN_DT
, FMA.APPN_INNB
, FMA.APPN_DV_CD
, FMAG.MARKT_RECPTN_AGRE_AT
, SUM(FMI.BLCE) AS MILEAGE
, FM.JOIN_MTH_CD
FROM GC_MEMBER FM
LEFT JOIN GC_MEMBER_SITE FMS
ON FM.MBR_DV_CD = FMS.MBR_DV_CD
AND FM.MBR_INNB = FMS.MBR_INNB
AND FMS.SOPMAL_CD = #{sopmalCd}
LEFT JOIN GC_MEMBER_GRAD_MAPPING FMGM
ON FM.MBR_DV_CD = FMGM.MBR_DV_CD
AND FM.MBR_INNB = FMGM.MBR_INNB
AND FMGM.SOPMAL_CD = #{sopmalCd}
LEFT JOIN GC_MEMBER_GRAD FMG
ON FMGM.MBR_GRAD_INNB = FMG.MBR_GRAD_INNB
INNER JOIN GC_MARKETING_AGREE FMAG
ON FMAG.MBR_INNB = FM.MBR_INNB
AND FMAG.MBR_DV_CD = FM.MBR_DV_CD
AND FMAG.SOPMAL_CD = #{sopmalCd}
LEFT JOIN GC_MEMBER_APPN FMA
ON FM.MBR_INNB = FMA.IDNTFC_INFO
AND FM.MBR_DV_CD = FMA.MBR_DV_CD
LEFT JOIN GC_MILEAGE FMI
ON FM.MBR_INNB = FMI.MBR_INNB
AND FM.MBR_DV_CD = FMI.MBR_DV_CD
AND FMI.BLCE > 0
AND FMI.USE_POSBL_END_DT >= DATE_FORMAT(NOW(), '%Y-%m-01')
AND FMI.MLG_ACCML_DV_CD IN ('add', 'up')
AND FMI.CANCL_AT = 'N'
]]>
<include refid = "mbrListInqireWhere"/>
<![CDATA[
GROUP BY MBTLNB
, FM.MBR_DV_CD
, FM.INFLOW_COURS_DOMN
, FM.MBR_TY_CD
, FMG.MBR_GRAD_NM
, FM.MBR_ID
, FM.MBR_NM
, FM.MBR_INNB
, EMAIL
, REGIST_DT
, LAST_LOGIN_DT
, FMA.APPN_INNB
, FMA.APPN_DV_CD
, FMAG.EMAIL_RECPTN_AT
, FMAG.SMS_RECPTN_AT
ORDER BY FM.REGIST_DT DESC
]]>
</select>
<select id="selectBOMbrListTotCnt">
SELECT COUNT(1)
FROM (SELECT CAST(AES_DECRYPT(UNHEX(FM.MBTLNB), '1df5be2f7e90ae36') AS CHAR(50)) AS MBTLNB
, CAST(AES_DECRYPT(UNHEX(FM.EMAIL), '1df5be2f7e90ae36') AS CHAR(50)) AS EMAIL
FROM GC_MEMBER FM
LEFT JOIN GC_MEMBER_SITE FMS
ON FM.MBR_DV_CD = FMS.MBR_DV_CD
AND FM.MBR_INNB = FMS.MBR_INNB
AND FMS.SOPMAL_CD = #{sopmalCd}
LEFT JOIN GC_MEMBER_GRAD_MAPPING FMGM
ON FM.MBR_DV_CD = FMGM.MBR_DV_CD
AND FM.MBR_INNB = FMGM.MBR_INNB
AND FMGM.SOPMAL_CD = #{sopmalCd}
LEFT JOIN GC_MEMBER_GRAD FMG
ON FMGM.MBR_GRAD_INNB = FMG.MBR_GRAD_INNB
INNER JOIN GC_MARKETING_AGREE FMAG
ON FMAG.MBR_INNB = FM.MBR_INNB
AND FMAG.MBR_DV_CD = FM.MBR_DV_CD
AND FMAG.SOPMAL_CD = #{sopmalCd}
LEFT JOIN GC_MEMBER_APPN FMA
ON FM.MBR_INNB = FMA.IDNTFC_INFO
AND FM.MBR_DV_CD = FMA.MBR_DV_CD
LEFT JOIN GC_MILEAGE FMI
ON FM.MBR_INNB = FMI.MBR_INNB
AND FM.MBR_DV_CD = FMI.MBR_DV_CD
AND FMI.BLCE > 0
AND FMI.USE_POSBL_END_DT >= DATE_FORMAT(NOW(), '%Y-%m-01')
AND FMI.MLG_ACCML_DV_CD IN ('add', 'up')
AND FMI.CANCL_AT = 'N'
<include refid = "mbrListInqireWhere"/>
GROUP BY FM.MBTLNB
, FM.MBR_DV_CD
, FM.INFLOW_COURS_DOMN
, FM.MBR_TY_CD
, FMG.MBR_GRAD_NM
, FM.MBR_ID
, FM.MBR_NM
, FM.MBTLNB
, FM.EMAIL
, FM.REGIST_DT
, FMS.LAST_LOGIN_DT) TB
WHERE 1 = 1
</select>
</mapper>

View File

@@ -0,0 +1,106 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.wb.domainserver.mapper.gcone.MemberAppnMapper">
<!--GC_MEMBER_APPN ERP 삭제-->
<delete id = "deleteRslrAppn">
DELETE FROM GC_MEMBER_APPN WHERE ORIGIN_DV_CD = '03'
</delete>
<!--GC_MEMBER_APPN ERP 등록-->
<insert id = "insertRslrAppn">
<selectKey keyProperty="appnInnb" resultType = "String" order="BEFORE">
SELECT IFNULL(MAX(APPN_INNB),0) + 1
FROM GC_MEMBER_APPN
</selectKey>
INSERT INTO
GC_MEMBER_APPN
(APPN_INNB,
SOPMAL_CD,
ORIGIN_DV_CD,
APPN_DV_CD,
IDNTFC_STDR_CD,
IDNTFC_INFO,
APPN_MEMO,
REGUSR,
REGIST_DT,
UPDUSR,
UPDT_DT)
VALUES(
#{appnInnb},
'CM',
'03',
'02',
#{idntfcStdrCd},
<choose>
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(idntfcStdrCd, 'order_mbtlnb')">
HEX(AES_ENCRYPT(REGEXP_REPLACE(#{idntfcInfo},'/[^0-9]/', ''),'1df5be2f7e90ae36')),
</when>
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(idntfcStdrCd, 'adres')">
TRIM(REPLACE(#{idntfcInfo}, '"', '')),
</when>
<otherwise>
#{idntfcInfo},
</otherwise>
</choose>
#{appnMemo},
0,
#{registDt},
0,
NOW())
</insert>
<!-- GC_MEMBER_APPN_LOG 등록 -->
<insert id = "insertAppnLog">
INSERT INTO
GC_MEMBER_APPN_LOG
(APPN_INNB,
SOPMAL_CD,
ORIGIN_DV_CD,
APPN_DV_CD,
IDNTFC_STDR_CD,
IDNTFC_INFO,
MBR_DV_CD,
ORDR_INNB,
APPN_MEMO,
LOG_CHNG_DV_CD,
REGUSR,
REGIST_DT,
UPDUSR,
UPDT_DT
)
SELECT
APPN_INNB,
SOPMAL_CD,
ORIGIN_DV_CD,
APPN_DV_CD,
IDNTFC_STDR_CD,
IDNTFC_INFO,
MBR_DV_CD,
ORDR_INNB,
APPN_MEMO,
<choose>
<when test="appnInnbArr != null">/* 등록 로그 */
'I',
</when>
<otherwise> /* 삭제 로그 */
'D',
</otherwise>
</choose>
0,
SYSDATE(),
0,
SYSDATE()
FROM GC_MEMBER_APPN
<choose>
<when test="appnInnbArr != null"> /* 등록 로그 */
WHERE APPN_INNB IN
<foreach collection="appnInnbArr" item="appnInnbArr" open="(" close=")" separator=",">
#{appnInnbArr}
</foreach>
</when>
<otherwise> /* 삭제 로그 */
WHERE ORIGIN_DV_CD = '03'
</otherwise>
</choose>
</insert>
</mapper>

View File

@@ -0,0 +1,44 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.wb.domainserver.mapper.gcone.MlgMapper">
<!--> ##############################################################################################
만료 대상 마일리지
################################################################################################# -->
<!-- 만료 대상 마일리지 조회 -->
<update id="updateMlgExpUpdt">
UPDATE
GC_MILEAGE
SET
END_AT = 'Y'
, EXTSH_BATCH_BUNDLE = #{extshBatchBundle}
WHERE 1=1
AND NOW() > USE_POSBL_END_DT
AND END_AT = 'N'
AND CANCL_AT = 'N'
AND IFNULL(EXTSH_BATCH_BUNDLE,'') = ''
AND MLG_ACCML_DV_CD IN ('add', 'up')
</update>
<!-- 만료 등록 대상 조회 -->
<select id="selectTsMlgExpTrgtListInqire">
SELECT
MBR_DV_CD
, MBR_INNB
, SUM(BLCE)
, EXTSH_BATCH_BUNDLE
, SOPMAL_CD
FROM
GC_MILEAGE
WHERE 1=1
AND END_AT = 'Y'
AND EXTSH_BATCH_BUNDLE = ${extshBatchBundle}
GROUP BY MBR_DV_CD, MBR_INNB, SOPMAL_CD
</select>
<!-- 쇼핑몰 정보 조회 -->
<select id="selectBOShopInqire">
SELECT
*
FROM
GC_SHOP
WHERE 1=1
</select>
</mapper>

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.wb.domainserver.mapper.gcone.NpayBbsMapper">
<select id = "selectSopmalCd" resultType="DataMap">
SELECT
SOPMAL_CD,
DATE_FORMAT(NOW(), '%Y-%m-%d') AS CURR_DATE
FROM GC_SHOP
WHERE NAVER_PURCHS_AT ='Y' /*네이버 결제 키가 있는 것*/
</select>
</mapper>

View File

@@ -0,0 +1,134 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.wb.domainserver.mapper.gcone.PosMapper">
<!--포스 - 매장 정보 조회-->
<select id="selectBOPosStrSrch" parameterType="map" resultType="dataMap">
SELECT
STR_INNB
, TENTCPN_NM -- 매장명
, CONCAT('S', CAST(STR_OPER_DV AS UNSIGNED)) AS STR_OPER_DV -- 매장운영구분
, POS_CD_DV_VAL
, POS_CD_PASSIV_INPUT_VAL
, STR_OPER_DV AS STR_OPER_DV_CD
, MANAGE_CPR -- 관리법인
, IFNULL(REPRSNT_BRAND, '') AS REPRSNT_BRAND -- 대표브랜드 코드 (쇼핑몰코드)
FROM GC_STORE
WHERE 1=1
AND MRHST_AT='Y'
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEquals(search_corporate,'Y')">
AND MANAGE_CPR = 'SL'
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(provider_status)">
AND TENT_STTUS = #{provider_status}
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(pgubun)">
AND POS_CD_DV_VAL = #{pgubun}
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(pcode)">
AND POS_CD_PASSIV_INPUT_VAL = #{pcode}
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(order_by)">
ORDER BY #{order_by}
</if>
</select>
<!--포스로그 조회-->
<select id="selectPosLog" parameterType="map" resultType="dataMap">
SELECT
POS_ACCML_REQST_INNB
FROM GC_POS_LOG
WHERE 1=1
AND STR_INNB = #{store_seq}
AND pdate = #{pdate}
AND pono = #{pono}
AND pnumb = #{pnumb}
</select>
<!--포스로그 수정-->
<update id="updatePosLog" parameterType="map">
UPDATE GC_POS_LOG
SET
POS_STTUS_CD = #{status}
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty($order_seq)">
, ORDR_INNB = #{order_seq}
</if>
WHERE 1=1
AND POS_ACCML_REQST_INNB = #{log_seq}
</update>
<!--회원 조회-->
<select id="selectPosMbr" parameterType="map" resultType="dataMap">
SELECT
GM.MBR_INNB AS useq
,GM.MBR_ID AS uid
,GM.MBR_NM AS username
,GM.MBR_DV_CD
,GM.BRTH_DE
,GM.ZIP
,GM.ADRES_DV -- 주소구분 01 도로명, 02 지번
,GM.RNM_ADRES -- 도로명주소
,GM.LNB_ADRES -- 지번주소
,GM.DTL_ADRES -- 상세수조
,GM.SEX -- 성별
,GM.MBR_TY_CD -- 회원유형코드
,GM.USE_AT
,CAST(AES_DECRYPT(UNHEX(GM.EMAIL), #{secretKey}) AS CHAR(50)) AS email
,CAST(AES_DECRYPT(UNHEX(GM.MBTLNB) , #{secretKey}) AS CHAR(50)) AS phone
,GM.JOIN_MTH_CD -- 가입방법
FROM
GC_MEMBER GM
WHERE
1 = 1
AND GM.MBR_ID = #{uid}
AND GM.MBR_DV_CD = 'GC' -- 통합몰
AND GM.MBR_ID NOT LIKE '*%' -- 탈퇴회원 체크
AND GM.MBR_ID NOT LIKE 'withdrawal%' -- 탈퇴회원 체크
AND GM.USE_AT = 'Y' -- 정상회원 여부
</select>
<!-- 포스-주문 가져오기 (get_order_posinfo) -->
<select id="selectOrderPosInfo" parameterType="map" resultType="dataMap">
SELECT
P.*
, IFNULL(O.MBR_INNB, 0) MBR_INNB
, O.SOPMAL_CD
, O.MBR_INNB
, O.MBR_DV_CD
, O.ORDR_INNB
, O.ORDR_STTUS_CD
FROM GC_ORDER_POSINFO P
LEFT JOIN GC_ORDER O ON(O.ORDR_INNB=P.ORDER_SEQ)
WHERE 1=1
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(storeSeq)">
AND P.STORE_SEQ = #{storeSeq}
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(pdate)">
AND P.PDATE = DATE(#{pdate})
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(pono)">
AND P.PONO = #{pono}
</if>
<if test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(pnumb)">
AND P.PNUMB = #{pnumb}
</if>
</select>
<select id="selectRefundCheck">
SELECT
ORDR_INNB
FROM GC_ORDER_REFUND RE
WHERE 1=1
AND RE.SOPMAL_CD = #{sopmalCd}
AND RE.ORDR_INNB = #{ordrInnb}
LIMIT 1
</select>
</mapper>

View File

@@ -0,0 +1,192 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.wb.domainserver.mapper.gcone.PuriAllimMapper">
<select id="selectPuriOrderAllimList">
<![CDATA[
select
gpo.puri_order_seq,
gpo.purchs_nm,
CAST(AES_DECRYPT(UNHEX(gpo.cttpc) , #{secretkey}) AS CHAR(50)) as cttpc,
gpo.dlivy_nm,
CAST(AES_DECRYPT(UNHEX(gpo.dlivy_cttpc) , #{secretkey}) AS CHAR(50)) as dlivyCttpc,
IF(gpo.visit_trgter_at = 'Y', IFNULL(gpo.visit_de, NULL), gpo.dlivy_de) AS dlivyDe
from GC_PURI_ORDER gpo
left join GC_PURI_ALLIM gpa on (gpa.puri_allim_seq = gpo.puri_allim_seq)
where gpo.status != 'cancel'
and gpo.purchs_cd in ]]>
<foreach item="item" collection="puriCodeEnumVOList" index="index" open="(" separator="," close=")">
#{item.code}
</foreach>
<![CDATA[
and (
(gpo.visit_trgter_at != 'Y' and gpo.dlivy_de > #{baseDate})
or
(gpo.visit_trgter_at = 'Y' and gpo.visit_de > #{baseDate})
)
and gpa.puri_allim_seq is null
order by gpo.puri_order_seq
]]>
</select>
<select id="selectDupPuriOrderAllimList">
<![CDATA[
select puri_order_seq, puri_allim_seq from GC_PURI_ALLIM
where puri_order_seq = #{puriOrderSeq}
]]>
</select>
<insert id="insertPuriAllimList">
<foreach collection="list" item="item" separator=";">
<![CDATA[
INSERT INTO gcone.GC_PURI_ALLIM(
STATUS,
REGIST_DT,
PURI_ORDER_SEQ,
CSTMR_NM,
TELNB,
INSTALL_DE,
NEXT_SNDNG_RESVE_DE,
CHNG_LOG)
VALUES(#{item.status},SYSDATE(),#{item.puriOrderSeq},#{item.cstmrNm},HEX(AES_ENCRYPT(#{item.telnb}, #{item.secretkey})),#{item.installDe},#{item.nextSndngResveDe},#{item.chngLog})
]]>
</foreach>
</insert>
<update id="updatePuriAllimSeq" parameterType="java.util.List">
<foreach collection="list" item="item" separator=";">
<![CDATA[
UPDATE GC_PURI_ORDER SET PURI_ALLIM_SEQ = #{item.puriAllimSeq}
WHERE PURI_ORDER_SEQ = #{item.puriOrderSeq}
]]>
</foreach>
</update>
<select id="selectCancelPuriOrderList">
<![CDATA[
select gpo.ordr_cd from GC_PURI_ORDER gpo
left join GC_ORDER go on (go.ordr_innb = LEFT(gpo.ordr_cd,19))
left join GC_ORDER_ITEM goi on (goi.ordr_innb = go.ordr_innb)
left join GC_ORDER_ITEM_OPTION goio on (goio.ordr_goods_innb = goi.ordr_goods_innb)
where gpo.purchs_cd in ]]>
<foreach item="item" collection="list" index="index" open="(" separator="," close=")">
#{item.code}
</foreach>
<![CDATA[
and gpo.status != 'cancel'
and goi.goods_innb in('111')
group by gpo.ordr_cd
having sum(goio.ordr_qy) <= sum(goio.step85)
]]>
</select>
<update id="updateCancelPuriOrderList" parameterType="java.util.List">
<![CDATA[
UPDATE GC_PURI_ORDER SET status = 'cancel',
chng_log = concat(chng_log, #{chngLog})
WHERE purchs_cd in ]]>
<foreach item="item" collection="list" index="index" open="(" separator="," close=")">
#{item.code}
</foreach>
<![CDATA[
AND status != 'cancel'
AND ordr_cd in]]>
<foreach item="item" collection="list" open="(" separator="," close=")">
<![CDATA[
#{item}
]]>
</foreach>
</update>
<select id="selectPuriOrderAllimInsertList">
<![CDATA[
select
#{smsInnb} as smsInnb,
'DL' as sopmalCd,
#{secretkey} as secretkey,
gpa.puri_order_seq,
LEFT(gpo.ordr_cd,19) as ordrCd,
gpa.puri_allim_seq,
gpa.status,
gpa.cstmr_nm,
CAST(AES_DECRYPT(UNHEX(gpa.telnb) , #{secretkey}) AS CHAR(50)) as telnb,
gpa.install_de,
gpa.frst_sndng_de,
gpa.prev_sndng_de,
gpa.next_sndng_resve_de
from GC_PURI_ORDER gpo
left join GC_PURI_ALLIM gpa on (gpa.puri_allim_seq = gpo.puri_allim_seq)
where gpo.status != 'cancel'
and gpa.status != 'stop'
and gpa.install_de > #{baseDate}
and (gpa.prev_sndng_de < #{maxPrevDate} or gpa.prev_sndng_de is null)
and gpa.next_sndng_resve_de between #{minNextDay} and #{maxNextDate}
]]>
</select>
<insert id="insertPuriAllimLogFirst">
<foreach collection="list" item="item" separator=";">
<![CDATA[
insert into GC_PURI_ALLIM_LOG (reg_date,puri_allim_seq,act,telnb,sndng_ty,sndng_cn)
values (now(),#{item.puriAllimSeq},#{item.act},HEX(AES_ENCRYPT(#{item.telnb}, #{item.secretkey})),'',#{item.sndngCn})
]]>
</foreach>
</insert>
<insert id="insertPuriAllimLog">
<![CDATA[
insert into GC_PURI_ALLIM_LOG (reg_date,puri_allim_seq,act,telnb,sndng_de,sndng_ty,sndng_cn)
select now(),puri_allim_seq,'send',telnb,#{logMsg.sendDateTime},'6M',#{logMsg.puriMsg}
from GC_PURI_ALLIM
where puri_allim_seq in
]]>
<foreach collection="logMsg.tsPuriAllimSeqList" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</insert>
<update id="updatePuriAllimDate">
<foreach collection="list" item="item" separator=";">
UPDATE GC_PURI_ALLIM
SET
status = 'send',
frst_sndng_de = #{item.frstSndngDe},
frst_sndng_ty = '6M',
prev_sndng_de = #{item.today},
prev_sndng_ty = '6M',
next_sndng_resve_de = #{item.delivyDe},
next_sndng_resve_ty = '6M'
WHERE puri_allim_seq = #{item.puriAllimSeq}
</foreach>
</update>
<select id="selectSameNumber">
<![CDATA[
select puri_allim_seq
from GC_PURI_ALLIM
where telnb = HEX(AES_ENCRYPT(#{telnb}, #{secretkey}))
and puri_allim_seq != #{puriAllimSeq}
and status in ('wait','send')
]]>
</select>
<update id="updateStopAllim">
<foreach collection="list" item="item" separator=";">
UPDATE GC_PURI_ALLIM
SET status = 'stop',
chng_log = #{item.chngLog}
WHERE puri_allim_seq = #{item.puriAllimSeq}
</foreach>
</update>
<select id="selectUpdatePuriAllimSeq">
select puri_allim_seq, CAST(AES_DECRYPT(UNHEX(telnb) , #{secretkey}) AS CHAR(50)) as telnb, puri_order_seq
from GC_PURI_ALLIM
where puri_order_seq = #{puriOrderSeq}
</select>
</mapper>

View File

@@ -0,0 +1,29 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.wb.domainserver.mapper.gcone.ScheduleMapper">
<!-- DB 스케줄 상태 수 확인 -->
<select id="selectSchesuleSttusListCnt">
<![CDATA[
SELECT COUNT(*)
FROM information_schema.events
WHERE STATUS != 'ENABLED'
]]>
</select>
<!-- DB 스케줄 DISABLE 상태 리스트 조회 -->
<select id="selecScheduleUpdtList" resultType="dataMap">
<![CDATA[
SELECT CONCAT(EVENT_SCHEMA,'.',EVENT_NAME) AS EVENT_NAME
FROM information_schema.events
WHERE STATUS != 'ENABLED'
]]>
</select>
<!-- Disable -> Enable 상태 업데이트 -->
<update id="updateScheduleSttusUpdt">
<![CDATA[
ALTER EVENT ${eventName} ENABLE;
]]>
</update>
</mapper>

View File

@@ -0,0 +1,419 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.wb.domainserver.mapper.gcone.StrMapper">
<!-- ****************************************************
포스 매장 동기화 서비스 시작
******************************************************** -->
<!--매장 주소 변경 여부 및 데이터 존재 여부 조회-->
<select id="selectStrAt" resultType="com.wb.domainserver.util.dataaccess.DataMap">
SELECT
CASE
WHEN REPLACE(UPPER(STR_RNM_ADRES),' ','') = REPLACE(UPPER(#{strRnmAdres}),' ','') THEN 'N'
ELSE 'Y'
END ADRES_CHNG_AT
FROM
GC_STORE
WHERE STR_CD = #{strCd}
</select>
<!-- 매장 수정 -->
<update id ="updateStrInfo" parameterType="com.wb.domainserver.str.vo.TsStrVO">
UPDATE GC_STORE
SET
REPRSNTV_INFO_ADRES = #{reprsntvInfoAdres},
REPRSNTV_INFO_RNM_ADRES = #{reprsntvInfoRnmAdres},
REPRSNTV_INFO_DTL_ADRES = #{reprsntvInfoDtlAdres},
REPRSNTV_INFO_REPRSNTVNM = #{reprsntvInfoReprsntvnm},
REPRSNTV_INFO_TELNB = #{reprsntvInfoTelnb},
REPRSNTV_INFO_ZIP = #{reprsntvInfoZip},
REPRSNT_BRAND = #{reprsntBrand},
MANAGE_CPR = #{manageCpr},
FIXING_EXPNDTR_CARD_FEE = #{fixingExpndtrCardFee},
FIXING_EXPNDTR_LBCT = #{fixingExpndtrLbct},
FIXING_EXPNDTR_MANAGECT = #{fixingExpndtrManagect},
FIXING_EXPNDTR_PRCT = #{fixingExpndtrPrct},
FIXING_EXPNDTR_RNTCHRG = #{fixingExpndtrRntchrg},
FIXING_EXPNDTR_RYALTY = #{fixingExpndtrRyalty},
FIXING_EXPNDTR_STR_OPERCT = #{fixingExpndtrStrOperct},
FIXING_EXPNDTR_SYS_RNTFEE = #{fixingExpndtrSysRntfee},
STR_ESTBL_DV_CD = #{strEstblDvCd},
STR_ADRES = #{strAdres},
STR_RNM_ADRES = #{strRnmAdres},
STR_DTL_ADRES = #{strDtlAdres},
CLSTR_DE = #{clstrDe},
OPBIZ_DE = #{opbizDe},
<if test="tentcpnNm != null and tentcpnNm.contains('청라점')">
STR_OPER_DV = #{strOperDv},
</if>
STR_TELNB = #{strTelnb},
DV = #{dv},
STR_KND_DTL = #{strKndDtl},
STR_ZIP = #{strZip},
CTY_GUN_GU = #{ctyGunGu},
HVOF_DE = #{hvofDe},
HVOF_DE_ADIT = #{hvofDeAdit},
ENTRPS_ADRES = #{entrpsAdres},
ADRES_DV = #{adresDv},
RNM_ADRES = #{rnmAdres},
ENTRPS_DTL_ADRES = #{entrpsDtlAdres},
REPRSNTVNM = #{reprsntvnm},
SELER_EMAIL = #{selerEmail},
SELER_FAX = #{selerFax},
BIZCND_INDUTY = #{bizcndInduty},
ENTRPS_NM = #{entrpsNm},
BSNM_NB = #{bsnmNb},
SELER_TELNB = #{selerTelnb},
COMM_SLE_DCL_NB = #{commSleDclNb},
SVC = #{svc},
INDVDL_CPR_DV = #{indvdlCprDv},
INHBTNT_CPR_NB = #{inhbtntCprNb},
ENTRPS_ZIP = #{entrpsZip},
BSN_TME = #{bsnTme},
POS_CD_PASSIV_INPUT_VAL = #{posCdPassivInputVal},
POS_CD_DV_VAL = #{posCdDvVal},
STR_CD = LPAD(#{strCd}, 4, '0'),
TENTCPN_NM = #{tentcpnNm},
STR_NM = #{strNm},
TENT_STTUS = #{tentSttus},
TRTMNT_BRAND = #{trtmntBrand},
LOC = #{loc},
CTY_DO = #{ctyDo},
HTGH_PVTCAR = #{htghPvtcar},
HTGH_PBTRNSP = #{htghPbtrnsp},
REPRSNT_MNGR_AT = 'Y',
MNGR_AUTHOR = 'manager_act = Y||daily_revenue = Y||weekly_revenue = Y||monthly_revenue = Y||yearly_revenue = Y||product_revenue = Y||day_revenue = Y||daily_product_revenue = Y||monthly_product_revenue = Y||daily_static = Y||weekly_static = Y||monthly_static = Y||revenue_static = Y||catalog = Y||dormancy_catalog = Y||register = Y||join_paper_upload = Y||gs_seller_notice = Y||gs_seller_notice_act = N||shop_education = Y||shop_education_act = N||member_edit_req = Y||member_edit_req_act = Y||point_edit_req = Y||point_edit_req_act = Y||logistics_req = Y||logistics_req_act = Y||shop_edit_req = Y||shop_edit_req_act = Y||shop_faq = N||shop_faq_act = N||family_req = N||family_req_act = N||admin_shop_list = N||admin_shop_regist = N||revenue_total_crm = N||product_total_crm = N||check_used_coupon = Y||reservation_logistics = Y||admin_list = Y||',
MNGR_GROUP = 0,
DFT_STL_DE = 1,
UPDT_DTLS = <![CDATA[CONCAT(UPDT_DTLS,'<div>[ERP] ',DATE_FORMAT(SYSDATE(),'%Y-%m-%d %H:%i:%s'),'수정 -> ,',IFNULL(#{registIp},''),'</div>'),]]>
LA = #{la},
LO = #{lo},
STR_ADRES_DV = #{strAdresDv},
UPDUSR = 0,
UPDT_DT=SYSDATE()
WHERE STR_CD = #{strCd}
</update>
<!-- 매장 등록 -->
<insert id = "insertStrInfo" parameterType="com.wb.domainserver.str.vo.TsStrVO">
<selectKey order="BEFORE" keyProperty="strInnb" resultType="String">
SELECT IFNULL(MAX(STR_INNB), 0)+1
FROM GC_STORE
</selectKey>
INSERT INTO GC_STORE
( STR_INNB,
TENTCPN_ID,
TENTCPN_GRAD,
TENTCPN_GRAD_CHNG_DE,
TENTCPN_PASSWORD,
TENTCPN_NM,
STR_NM,
TENT_GROUP,
TENT_STTUS,
ACCES_LMTT_USE_AT,
ACCES_LMTT_IP,
DLVY_GDS_DLV_CMPT_PRCS_CND,
DLVY_GDS_DLV_CMPT_PRCS_ATHR,
STL_CNT,
DFT_STL_DE,
TME_1_STL_DE,
TME_2_STL_DE,
TME_3_STL_DE,
TME_4_STL_DE,
RCPMNY_BANK,
DPSTR,
ACNTNB,
DLVY_GROUP,
zip,
ADRES,
DTL_ADRES,
ENTRPS_NM,
BSNM_NB,
REPRSNTVNM,
INDVDL_CPR_DV,
INHBTNT_CPR_NB,
BIZCND_INDUTY,
SVC,
ENTRPS_ZIP,
ENTRPS_ADRES,
ENTRPS_DTL_ADRES,
UPDT_DTLS,
LAST_LOGIN_DT,
NRMLT_CYCLE,
ADRES_DV,
RNM_ADRES,
DTL_ADRES2,
HEDOFC_MEMO,
TENT_USE_MEMO,
CRTFC_MBTLNB,
COMM_SLE_DCL_NB,
SELER_TELNB,
SELER_EMAIL,
SELER_FAX,
DLIVY_COMPT_CTY_INVNTRY_POLICY,
TCKT_GDS_DLV_CT_CK_DFT_MTH,
OBJT_GOODS_DLIVY_DFT_STTUS,
TICKT_GOODS_DLIVY_DFT_STTUS,
REPRSNT_MNGR_AT,
MNGR_AUTHOR,
MNGR_GROUP,
PASSWORD_CHNG_DE,
DLVY_AMT_FEE,
RETURN_DLVY_AMT_FEE,
MRHST_AT,
MANAGE_CPR,
REPRSNT_BRAND,
TRTMNT_BRAND,
POS_CD_DV_VAL,
POS_CD_PASSIV_INPUT_VAL,
STR_ESTBL_DV_CD,
DV,
STR_KND_DTL,
OPBIZ_DE,
CLSTR_DE,
STR_TELNB,
STR_OPER_DV,
LOC,
CTY_DO,
CTY_GUN_GU,
STR_ADRES_DV,
STR_ZIP,
LA,
LO,
STR_ADRES,
STR_RNM_ADRES,
STR_DTL_ADRES,
HTGH_PBTRNSP,
HTGH_PVTCAR,
HVOF_DE,
HVOF_DE_ADIT,
BSN_TME,
STR_REPRSNT_IMG,
STR_DTL_IMG,
DATATRANS_INVAL,
REPRSNTV_INFO_REPRSNTVNM,
REPRSNTV_INFO_TELNB,
REPRSNTV_INFO_ADRES_DV,
REPRSNTV_INFO_ZIP,
REPRSNTV_INFO_ADRES,
REPRSNTV_INFO_RNM_ADRES,
REPRSNTV_INFO_DTL_ADRES,
FIXING_EXPNDTR_RNTCHRG,
FIXING_EXPNDTR_MANAGECT,
FIXING_EXPNDTR_RYALTY,
FIXING_EXPNDTR_SYS_RNTFEE,
FIXING_EXPNDTR_LBCT,
FIXING_EXPNDTR_CARD_FEE,
FIXING_EXPNDTR_PRCT,
FIXING_EXPNDTR_STR_OPERCT,
STR_CD,
AW_LOGIN_AT,
CHR_DSPTCH_NB,
SITE_EXPSR_AT,
REGUSR,
REGIST_DT,
UPDUSR,
UPDT_DT
) VALUES (
#{strInnb},
<choose>
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(tentcpnId)">
#{tentcpnId},
</when>
<otherwise>
CONCAT('@',#{strInnb}), /* 임시 아이디 */
</otherwise>
</choose>
1,
SYSDATE(),
#{tentcpnPassword},
#{tentcpnNm},
<choose>
<when test="@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(strNm)"> /* strNm이 없으면 tentcpnNm으로 대체 */
#{strNm},
</when>
<otherwise>
#{tentcpnNm},
</otherwise>
</choose>
'02',
#{tentSttus},
'N',
#{accesLmttIp},
#{dlvyGdsDlvCmptPrcsCnd},
#{dlvyGdsDlvCmptPrcsAthr},
#{stlCnt},
1,
#{tme1StlDe},
#{tme2StlDe},
#{tme3StlDe},
#{tme4StlDe},
#{rcpmnyBank},
#{dpstr},
#{acntnb},
'02',
#{zip},
#{adres},
#{dtlAdres},
#{entrpsNm},
#{bsnmNb},
#{reprsntvnm},
#{indvdlCprDv},
#{inhbtntCprNb},
#{bizcndInduty},
#{svc},
#{entrpsZip},
#{entrpsAdres},
#{entrpsDtlAdres},
CONCAT('<![CDATA[<div>]]>[ERP] ',DATE_FORMAT(SYSDATE(),'%Y-%m-%d %H:%i:%s'),' 신규 ->', IFNULL(#{registIp},''),'<![CDATA[</div>]]>'),
#{lastLoginDt},
'02',
#{adresDv},
#{rnmAdres},
#{dtlAdres2},
#{hedofcMemo},
#{tentUseMemo},
#{crtfcMbtlnb},
#{commSleDclNb},
#{selerTelnb},
#{selerEmail},
#{selerFax},
'limit',
'limit',
'55',
'55',
'Y',
'manager_act=Y||daily_revenue=Y||weekly_revenue=Y||monthly_revenue=Y||yearly_revenue=Y||product_revenue=Y||day_revenue=Y||daily_product_revenue=Y||monthly_product_revenue=Y||daily_static=Y||weekly_static=Y||monthly_static=Y||revenue_static=Y||catalog=Y||dormancy_catalog=Y||register=Y||join_paper_upload=Y||gs_seller_notice=Y||gs_seller_notice_act=N||shop_education=Y||shop_education_act=N||member_edit_req=Y||member_edit_req_act=Y||point_edit_req=Y||point_edit_req_act=Y||logistics_req=Y||logistics_req_act=Y||shop_edit_req=Y||shop_edit_req_act=Y||shop_faq=N||shop_faq_act=N||family_req=N||family_req_act=N||admin_shop_list=N||admin_shop_regist=N||revenue_total_crm=N||product_total_crm=N||check_used_coupon=Y||reservation_logistics=Y||admin_list=Y||',
0,
#{passwordChngDe},
0,
0,
'Y',
#{manageCpr},
#{reprsntBrand},
#{trtmntBrand},
#{posCdDvVal},
#{posCdPassivInputVal},
#{strEstblDvCd},
#{dv},
#{strKndDtl},
#{opbizDe},
#{clstrDe},
#{strTelnb},
#{strOperDv},
#{loc},
#{ctyDo},
#{ctyGunGu},
#{strAdresDv},
#{strZip},
#{la},
#{lo},
#{strAdres},
#{strRnmAdres},
#{strDtlAdres},
#{htghPbtrnsp},
#{htghPvtcar},
#{hvofDe},
#{hvofDeAdit},
#{bsnTme},
#{strReprsntImg},
#{strDtlImg},
#{datatransInval},
#{reprsntvInfoReprsntvnm},
#{reprsntvInfoTelnb},
#{reprsntvInfoAdresDv},
#{reprsntvInfoZip},
#{reprsntvInfoAdres},
#{reprsntvInfoRnmAdres},
#{reprsntvInfoDtlAdres},
#{fixingExpndtrRntchrg},
#{fixingExpndtrManagect},
#{fixingExpndtrRyalty},
#{fixingExpndtrSysRntfee},
#{fixingExpndtrLbct},
#{fixingExpndtrCardFee},
#{fixingExpndtrPrct},
#{fixingExpndtrStrOperct},
LPAD(#{strCd}, 4, '0'), /* 앞자리는 0으로 채움 */
IFNULL(#{awLoginAt},'N'),
#{chrDsptchNb},
IFNULL(#{siteExpsrAt},'N'),
0,
SYSDATE(),
0,
SYSDATE()
)
</insert>
<!--권한등록-->
<insert id="insertStrAuth" parameterType="com.wb.domainserver.str.vo.TsStrVO">
<selectKey order="BEFORE" keyProperty="strAuthorInnb" resultType="String">
SELECT IFNULL(MAX(STR_AUTHOR_INNB), 0)+1
FROM GC_STR_AUTH
</selectKey>
INSERT INTO GC_STR_AUTH
(STR_AUTHOR_INNB,
AUTHOR_ID,
STR_INNB,
REGUSR,
REGIST_DT)
SELECT
#{strAuthorInnb},
AUTHOR_ID,
#{strInnb},
0,
SYSDATE()
FROM
GC_AUTH
WHERE
SYS_DV_CD = '04'
AND USE_AT = 'Y'
</insert>
<!-- ****************************************************
포스 매장 동기화 서비스 종료
******************************************************** -->
<!-- ****************************************************
포스 상품 재고 동기화 서비스 시작
******************************************************** -->
<!--gcone pos stock 데이터 전체 삭제-->
<delete id="deleteStrStock">
DELETE FROM GC_POS_STOCK
</delete>
<!--gcone pos stock 등록-->
<insert id="insertStrStock">
REPLACE INTO GC_POS_STOCK
(GOODS_IDNTFC_CD,
STR_IDNTFC_CD,
YM,
GOODS_POS_HDQRTRS_CD,
GOODS_POS_CD,
GOODS_NM,
GOODS_BRCD,
GOODS_CL_CD,
CPR_CD,
STR_POS_HDQRTRS_CD,
STR_POS_CD,
STR_NM,
INVNTRY_QY,
SLE_QY,
PD_AVRG_QY)
VALUES ( #{goodsIdntfcCd},
#{strIdntfcCd},
#{ym},
#{goodsPosHdqrtrsCd},
#{goodsPosCd},
#{goodsNm},
#{goodsBrcd},
#{goodsClCd},
#{cprCd},
#{strPosHdqrtrsCd},
#{strPosCd},
#{strNm},
#{invntryQy},
#{sleQy},
#{pdAvrgQy});
</insert>
<!-- ****************************************************
포스 상품 재고 동기화 서비스 종료
******************************************************** -->
</mapper>

View File

@@ -0,0 +1,433 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.wb.domainserver.mapper.gcone.SweetTrackerCommMapper">
<select id="jsonTest1234">
<![CDATA[
SELECT
DTL_CN
FROM GC_ORDER_TRACKER
LIMIT 1
]]>
</select>
<!-- 택배사코드 매핑 -->
<select id="selectCommCdHdrycpnCdInqire">
SELECT
IFNULL(CD, '') AS HDRYCPN_CD
FROM GC_CODE
WHERE GROUP_CD = 'HDRYCPN'
AND CD = #{hdrycpnCd}
</select>
<!-- ##############################################################################################
스마트택배 조회 및 주문 상태 업데이트 START
################################################################################################# -->
<!-- 상태 변경 대상 출고 목록 조회 -->
<select id="selectChngTargetExportList">
<![CDATA[
SELECT
EX.DLIVY_INNB
,EX.SOPMAL_CD
,EX.ORDR_INNB
,EX.ORDR_DLVY_INNB
,EX.DLIVY_CD_NB
,EX.DLIVY_STTUS_CD
,EX.STTUS_UPDT_DT
,EX.HDRYCPN_CD
,(
SELECT
SWEET_TRACKER_HDRYCPN_CD
FROM GC_SWEET_TRACKER_CODE
WHERE GCONE_HDRYCPN_CD = EX.HDRYCPN_CD
LIMIT 1
) AS ST_HDRYCPN_CD
,EX.INVCNB
,EX.DLIVY_DT
,EX.DLIVY_COMPT_DT
,EX.DLVY_COMPT_DT
,EX.DLVY_GROUP_CD
,EX.MNGR_INNB
,EX.IMPRTNC_ORDR_AT
,EX.REGIST_DT
,EX.UPDT_DT
,EX.PURCHS_DCSN_DV_CD
,EX.PURCHS_DCSN_DT
,EX.ACCMLMNY_PYMNT_AT
,ST.SETLE_TY_CD
FROM GC_GOODS_EXPORT EX
LEFT JOIN GC_ORDER_SHIPPING SH
ON EX.SOPMAL_CD = SH.SOPMAL_CD
AND EX.ORDR_DLVY_INNB = SH.ORDR_DLVY_INNB
LEFT JOIN GC_ORDER O
ON EX.SOPMAL_CD = O.SOPMAL_CD
AND EX.ORDR_INNB = O.ORDR_INNB
LEFT JOIN GC_ORDER_SETLE ST
ON O.SOPMAL_CD = ST.SOPMAL_CD
AND O.ORDR_INNB = ST.ORDR_INNB
WHERE 1 = 1
AND SH.ORDR_STTUS_CD BETWEEN '50' AND '70'
AND EX.DLIVY_STTUS_CD BETWEEN '50' AND '70'
AND ( EX.HDRYCPN_CD IS NOT NULL AND EX.HDRYCPN_CD != '')
AND ( EX.INVCNB IS NOT NULL AND EX.INVCNB != '' )
AND EX.INVCNB IS NOT NULL
AND EX.DLVY_COMPT_DT IS NULL
AND EX.ORDR_DLVY_INNB IS NOT NULL
AND EX.DLIVY_DT BETWEEN DATE_SUB(SYSDATE(), INTERVAL 2 MONTH) AND SYSDATE()
]]>
</select>
<!-- 상태 변경 대상 및 배송 추적 내용 -->
<select id="selectOrderTrackerResultList">
<![CDATA[
SELECT
TR.DTL_CN
, DLIVY.*
FROM (
SELECT EX.DLIVY_INNB
, EX.SOPMAL_CD
, EX.ORDR_INNB
, EX.ORDR_DLVY_INNB
, EX.DLIVY_CD_NB
, EX.DLIVY_STTUS_CD
, EX.DLIVY_STTUS_CD AS RL_DLIVY_STTUS_CD
, EX.STTUS_UPDT_DT
, EX.HDRYCPN_CD
, (SELECT SWEET_TRACKER_HDRYCPN_CD
FROM GC_SWEET_TRACKER_CODE
WHERE GCONE_HDRYCPN_CD = EX.HDRYCPN_CD
LIMIT 1) AS ST_HDRYCPN_CD
, EX.INVCNB
, EX.DLIVY_DT
, EX.DLIVY_COMPT_DT
, EX.DLVY_COMPT_DT
, EX.DLVY_GROUP_CD
, EX.MNGR_INNB
, EX.IMPRTNC_ORDR_AT
, EX.REGIST_DT
, EX.UPDT_DT
, EX.PURCHS_DCSN_DV_CD
, EX.PURCHS_DCSN_DT
, EX.ACCMLMNY_PYMNT_AT
, ST.SETLE_TY_CD
FROM GC_GOODS_EXPORT EX
LEFT JOIN GC_ORDER_SHIPPING SH
ON EX.SOPMAL_CD = SH.SOPMAL_CD
AND EX.ORDR_DLVY_INNB = SH.ORDR_DLVY_INNB
LEFT JOIN GC_ORDER O
ON EX.SOPMAL_CD = O.SOPMAL_CD
AND EX.ORDR_INNB = O.ORDR_INNB
LEFT JOIN GC_ORDER_SETLE ST
ON O.SOPMAL_CD = ST.SOPMAL_CD
AND O.ORDR_INNB = ST.ORDR_INNB
WHERE 1 = 1
AND SH.ORDR_STTUS_CD BETWEEN '50' AND '70'
AND EX.DLIVY_STTUS_CD BETWEEN '50' AND '70'
AND (EX.HDRYCPN_CD IS NOT NULL AND EX.HDRYCPN_CD != '')
AND (EX.INVCNB IS NOT NULL AND EX.INVCNB != '')
AND EX.INVCNB IS NOT NULL
AND EX.DLVY_COMPT_DT IS NULL
AND EX.ORDR_DLVY_INNB IS NOT NULL
AND EX.DLIVY_DT BETWEEN DATE_SUB(SYSDATE(), INTERVAL 2 MONTH) AND SYSDATE()
) DLIVY
INNER JOIN GC_ORDER_TRACKER TR ON DLIVY.INVCNB = TR.INVCNB
AND DLIVY.ST_HDRYCPN_CD = TR.ST_HDRYCPN_CD
]]>
</select>
<!-- 상태 변경 대상 주문 상품 목록 조회 -->
<select id="selectOrderTrackerInnbInqire">
<![CDATA[
SELECT
ORDR_DLVY_TRACE_INNB
FROM GC_ORDER_TRACKER
WHERE ST_HDRYCPN_CD = #{stHdrycpnCd}
AND INVCNB = #{invcnb}
]]>
</select>
<!-- 주문 배송 추적 JSON 내용 업데이트 -->
<update id="updateOrderTrackerJsonUpdt">
<![CDATA[
INSERT INTO GC_ORDER_TRACKER
(
]]>
<if test="ordrDlvyTraceInnb != null">
ORDR_DLVY_TRACE_INNB,
</if>
<![CDATA[
INVCNB,
ST_HDRYCPN_CD,
DTL_CN,
REGIST_DT
) VALUES (
]]>
<if test="ordrDlvyTraceInnb != null">
#{ordrDlvyTraceInnb},
</if>
<![CDATA[
#{invcnb},
#{stHdrycpnCd},
#{dtlCn},
SYSDATE()
)
ON DUPLICATE KEY UPDATE
DTL_CN = VALUES(DTL_CN)
]]>
</update>
<!-- 출고 배송중 상태로 상태 변경 -->
<update id="updateChngTargetExportSttusupdt">
<![CDATA[
UPDATE GC_GOODS_EXPORT EX SET
DLIVY_STTUS_CD = #{dlivySttusCd}
,STTUS_UPDT_DT = SYSDATE()
,UPDT_DT = SYSDATE()
]]>
<if test="dlivySttusCd == '75'">
<![CDATA[
,DLVY_COMPT_DT = SYSDATE()
]]>
</if>
<![CDATA[
WHERE DLIVY_INNB = #{dlivyInnb}
AND SOPMAL_CD = #{sopmalCd}
]]>
</update>
<!-- 상태 변경 대상 주문 상품 목록 조회 -->
<select id="selectChngTargetExportItemList">
<![CDATA[
SELECT
OIOP.ORDR_GOODS_OPTN_INNB
,OIOP.SOPMAL_CD
,OIOP.OPTN_TY
,(OIOP.STEP45 + OIOP.STEP55 + OIOP.STEP65 + OIOP.STEP75) AS QY
FROM GC_ORDER_ITEM_OPTION OIOP
INNER JOIN GC_ORDER_SHIPPING SH ON OIOP.SOPMAL_CD = SH.SOPMAL_CD
AND OIOP.ORDR_DLVY_INNB = SH.ORDR_DLVY_INNB
INNER JOIN GC_GOODS_EXPORT_ITEM EXI ON OIOP.SOPMAL_CD = EXI.SOPMAL_CD
AND OIOP.OPTN_TY = EXI.OPTN_TY
AND OIOP.ORDR_GOODS_OPTN_INNB = EXI.ORDR_GOODS_OPTN_INNB
AND EXI.DLIVY_INNB = #{dlivyInnb}
WHERE SH.SOPMAL_CD = #{sopmalCd}
AND SH.ORDR_INNB = #{ordrInnb}
AND SH.ORDR_DLVY_INNB = #{ordrDlvyInnb}
]]>
</select>
<!-- 주문 상품 옵션 상태 및 수량 변경 -->
<update id="updateOrdrItemStatusUpdt6575">
<![CDATA[
UPDATE GC_ORDER_ITEM_OPTION SET
]]>
<choose>
<when test="dlivySttusCd == '65'">
<![CDATA[
ORDR_STTUS_CD =
CASE
WHEN (ORDR_QY - STEP85) > #{qy} THEN '60'
WHEN (ORDR_QY - STEP85) <= #{qy} THEN '65'
ELSE ORDR_STTUS_CD
END
,STEP45 = 0
,STEP55 = 0
,STEP65 = #{qy}
,STEP75 = 0
,UPDT_DT = SYSDATE()
]]>
</when>
<when test="dlivySttusCd == '75'">
<![CDATA[
ORDR_STTUS_CD =
CASE
WHEN (ORDR_QY - STEP85) > #{qy} THEN '70'
WHEN (ORDR_QY - STEP85) <= #{qy} THEN '75'
ELSE ORDR_STTUS_CD
END
,STEP45 = 0
,STEP55 = 0
,STEP65 = 0
,STEP75 = #{qy}
,UPDT_DT = SYSDATE()
]]>
</when>
<otherwise>
UPDT_DT = SYSDATE()
</otherwise>
</choose>
<![CDATA[
WHERE SOPMAL_CD = #{sopmalCd}
AND OPTN_TY = #{optnTy}
AND ORDR_GOODS_OPTN_INNB = #{ordrGoodsOptnInnb}
]]>
</update>
<!-- 주문 배송 상태 변경 -->
<update id="updateOrdrDlvyStatusUpdt6575">
<![CDATA[
UPDATE
GC_ORDER_SHIPPING SH,
(
SELECT CASE WHEN MAX(OIOP.ORDR_STTUS_CD) = MIN(OIOP.ORDR_STTUS_CD) THEN MAX(OIOP.ORDR_STTUS_CD)
ELSE CAST(MAX(OIOP.ORDR_STTUS_CD) - 5 AS CHAR(2))
END ORDR_STTUS_CD
, SH.SOPMAL_CD, SH.ORDR_INNB, SH.ORDR_DLVY_INNB
FROM GC_ORDER_SHIPPING SH
INNER JOIN GC_ORDER_ITEM_OPTION OIOP
ON SH.SOPMAL_CD = OIOP.SOPMAL_CD
AND SH.ORDR_DLVY_INNB = OIOP.ORDR_DLVY_INNB
AND OIOP.ORDR_QY <> OIOP.STEP85
WHERE SH.SOPMAL_CD = #{sopmalCd}
AND SH.ORDR_INNB = #{ordrInnb}
AND SH.ORDR_DLVY_INNB = #{ordrDlvyInnb}
AND SH.USE_AT = 'Y'
) STEP
SET
SH.ORDR_STTUS_CD = STEP.ORDR_STTUS_CD
,SH.MNGR_INNB = 0
,SH.UPDT_DT = SYSDATE()
WHERE 1 = 1
AND SH.SOPMAL_CD = STEP.SOPMAL_CD
AND SH.ORDR_INNB = STEP.ORDR_INNB
AND SH.ORDR_DLVY_INNB = STEP.ORDR_DLVY_INNB
]]>
</update>
<!-- 주문 상태 변경 -->
<update id="updateOrdrStatusUpdt6575">
<![CDATA[
UPDATE
GC_ORDER O,
(SELECT CASE WHEN MAX(SH.ORDR_STTUS_CD) = MIN(SH.ORDR_STTUS_CD) THEN MAX(SH.ORDR_STTUS_CD)
ELSE CAST(MAX(SH.ORDR_STTUS_CD) - 5 AS CHAR(2))
END ORDR_STTUS_CD
, O.SOPMAL_CD, O.ORDR_INNB
FROM GC_ORDER O
INNER JOIN GC_ORDER_SHIPPING SH
ON O.SOPMAL_CD = SH.SOPMAL_CD
AND O.ORDR_INNB = SH.ORDR_INNB
AND SH.ORDR_STTUS_CD <> '85'
WHERE O.SOPMAL_CD = #{sopmalCd}
AND O.ORDR_INNB = #{ordrInnb}
) STEP
SET
O.ORDR_STTUS_CD = STEP.ORDR_STTUS_CD
,O.MNGR_INNB = 0
,O.UPDT_DT = SYSDATE()
WHERE 1 = 1
AND O.SOPMAL_CD = STEP.SOPMAL_CD
AND O.ORDR_INNB = STEP.ORDR_INNB
AND O.USE_AT = 'Y'
]]>
</update>
<!-- 주문 로그 등록 -->
<insert id="insertOrderLog">
INSERT INTO GC_ORDER_LOG (
ORDR_INNB
, SOPMAL_CD
, LOG_SJ
, LOG_DTL_CN
, ADIT_INFO_CN
, DLIVY_INNB
, ORDER_REFUND_INNB
, LOG_DV_CD
, DV_CD
, OPETR_NM
, QY
, AMT
, PROCS_DT
) VALUES (
#{ordrInnb}
, #{sopmalCd}
, #{logSj}
, #{logDtlCn}
, #{aditInfoCn}
, #{dlivyInnb}
, #{orderRefundInnb}
, #{logDvCd}
, #{dvCd}
, #{opetrNm}
, #{qy}
, #{amt}
, SYSDATE()
)
</insert>
<!-- 출고 완료(주문자), 배송 완료(주문자) SMS 파라미터 조회 -->
<select id="selectDlivySmsListInqire">
<![CDATA[
SELECT
EX.ORDR_INNB AS ORDNO -- 치환코드
,'FORM_DV_DLVY' AS FORM_DV_CD
, CASE
WHEN EX.DLIVY_STTUS_CD = '55' THEN '01'
WHEN EX.DLIVY_STTUS_CD = '75' THEN '02'
END AS FORM_DTL_DV_CD
,EX.SOPMAL_CD
,SP.SOPMAL_NM AS SHOP_NAME
,EX.HDRYCPN_CD
,SW.HDRYCPN_NM AS DELIVERY_COMPANY
,EX.INVCNB AS DELIVERY_NUMBER
,CASE
WHEN COUNT(EI.DLIVY_GOODS_INNB) > 1 THEN CONCAT(MIN(OI.GOODS_NM) , ' 외 ', COUNT(EI.DLIVY_INNB) - 1, '종')
ELSE MIN(OI.GOODS_NM)
END AS ORD_ITEM
,O.ORDRR_NM AS ORDER_USER
,O.ORDRR_NM AS RECIPIENT_USER
,REGEXP_REPLACE(CAST(AES_DECRYPT(UNHEX(O.ORDRR_MBTLNB), '1df5be2f7e90ae36') AS CHAR(50)), '(.{3})(.{4})(.{4})', '$1-$2-$3') AS RECPTN_NB
,REPLACE(SP.PC_DOMN_ADRES, 'https://', '') AS SHOP_DOMAIN
,REPLACE(CONCAT(SP.PC_DOMN_ADRES, '/sopmal/mpage/ordr/selectMbrOrdrListInqire'), 'https://', '') AS ORDURL
FROM GC_GOODS_EXPORT EX
LEFT JOIN GC_ORDER O
ON EX.SOPMAL_CD = O.SOPMAL_CD
AND EX.ORDR_INNB = O.ORDR_INNB
LEFT JOIN GC_SHOP SP
ON EX.SOPMAL_CD = SP.SOPMAL_CD
LEFT JOIN GC_SWEET_TRACKER_CODE SW
ON EX.HDRYCPN_CD = SW.GCONE_HDRYCPN_CD
LEFT JOIN GC_GOODS_EXPORT_ITEM EI
ON EX.SOPMAL_CD = EI.SOPMAL_CD
AND EX.DLIVY_INNB = EI.DLIVY_INNB
LEFT JOIN GC_ORDER_ITEM_OPTION OIOP
ON EI.SOPMAL_CD = OIOP.SOPMAL_CD
AND EI.OPTN_TY = OIOP.OPTN_TY
AND EI.ORDR_GOODS_OPTN_INNB = OIOP.ORDR_GOODS_OPTN_INNB
LEFT JOIN GC_ORDER_ITEM OI
ON OIOP.SOPMAL_CD = OI.SOPMAL_CD
AND OIOP.ORDR_GOODS_INNB = OI.ORDR_GOODS_INNB
WHERE EX.SOPMAL_CD = #{sopmalCd}
AND EX.DLIVY_INNB = #{dlivyInnb}
GROUP BY EX.DLIVY_INNB, EX.SOPMAL_CD, SW.HDRYCPN_NM
LIMIT 1
]]>
</select>
<!--> ##############################################################################################
스마트택배 조회 및 주문 상태 업데이트 END
################################################################################################# -->
</mapper>

View File

@@ -0,0 +1,27 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.wb.domainserver.mapper.mq.CrmExtOrdrMapper">
<!--GC_ERP_PURCHSR_INFO ERP에서 주문정보 조회 -->
<select id = "selectCrmExtOrdrInfo" parameterType="com.wb.domainserver.crm.vo.TsExtOrdrVO">
SELECT
ERP_ORDER_INNB,
CPR_CD,
BRAND_CD,
SOPMAL_DV,
SOPMAL,
ORDR_NB,
ORDR_DT,
DLIVY_DT,
MBTLNB,
NM,
ADRES,
EMAIL,
MEMO,
UPLOAD_GROUP,
REGIST_DT,
UPDT_DT
FROM
GC_ERP_ORDER
WHERE ERP_ORDER_INNB <![CDATA[>]]> #{maxExtOrdrInnb}
</select>
</mapper>

View File

@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.wb.domainserver.mapper.mq.CrmMemberAppnMapper">
<!--GC_ERP_MEMBER_APPN ERP에서 블랙리스트 조회 -->
<select id = "selectCrmRslrlistInqire">
SELECT DISTINCT A.*
FROM(SELECT
GEMA.APPN_DV_CD,
GEMA.IDNTFC_STDR_CD,
GEMA.IDNTFC_INFO,
REGIST_DT
FROM
GC_ERP_MEMBER_APPN GEMA
WHERE
GEMA.APPN_DV_CD = '01'
AND GEMA.IDNTFC_INFO IS NOT NULL || GEMA.IDNTFC_INFO != '')A
</select>
</mapper>

View File

@@ -0,0 +1,268 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.wb.domainserver.mapper.mq.MqReqCommMapper">
<!-- MQ req 출고 내역 목록 조회 -->
<select id="selectMapCnt" >
SELECT
COUNT(1)
FROM
req MQ
WHERE MQ.MENU = 'order'
</select>
<!-- ##############################################################################################
출고내역 가져오기 START
################################################################################################# -->
<!-- MQ req 출고 내역 목록 조회 -->
<update id="updateReqStatusIngUpdt">
UPDATE req
SET STATUS = 'ing'
WHERE MENU = 'order'
AND STATUS = 'req'
AND REQ_SITE = 'ERP'
AND RES_SITE = #{sopmalCd}
</update>
<!-- MQ req 출고 내역 목록 조회 -->
<select id="selectReqListInqire" >
SELECT
MQ.SEQ,
MQ.MENU,
MQ.CMD,
MQ.CODE,
MQ.PARAM,
MQ.STATUS,
MQ.REQ_SITE,
MQ.REQ_DATE,
MQ.RES_SITE,
MQ.RES_DATE,
MQ.RES_CODE,
MQ.RES_MSG,
MQ.RES_DATA,
MQ.RES_SITE AS SOPMAL_CD
FROM
req MQ
WHERE MQ.MENU = 'order'
AND MQ.STATUS = 'ing'
AND MQ.REQ_SITE = 'ERP'
AND MQ.RES_SITE = #{sopmalCd}
</select>
<!--MQ req 테이블 응답 메시지 업데이트 -->
<update id="updateMqReqStatusUpdt">
UPDATE req SET
STATUS = 'end',
RES_DATE = SYSDATE(),
RES_CODE = #{resCode},
RES_MSG = #{resMsg},
RES_DATA = #{resData}
WHERE MENU = 'order'
AND STATUS = 'ing'
AND REQ_SITE = 'ERP'
AND RES_SITE = #{sopmalCd}
AND SEQ = #{mqReqSeq}
</update>
<!--> ##############################################################################################
출고내역 가져오기 END
################################################################################################# -->
<!-- ##############################################################################################
주문내역 내보내기 START
################################################################################################# -->
<!-- 대상주문 상태 변경 '30' : 출고대기 -->
<insert id="insertReqRegist"
keyProperty="seq"
useGeneratedKeys="true"
parameterType="com.wb.domainserver.mq.vo.TsReqVO"
>
<![CDATA[
INSERT INTO req (
MENU,
CMD,
CODE,
PARAM,
STATUS,
REQ_SITE,
REQ_DATE,
RES_SITE,
RES_DATE
) VALUES (
#{menu},
#{cmd},
#{code},
#{param},
'req',
#{reqSite},
SYSDATE(),
#{resSite},
'1970-01-01 00:00:00'
)
]]>
</insert>
<!-- ##############################################################################################
주문내역 내보내기 END
################################################################################################# -->
<!-- ##############################################################################################
mq_req clear START
################################################################################################# -->
<!-- 30일 이전 데이터 모두 삭제 -->
<delete id="deleteMtBeforeReqClear">
<![CDATA[
DELETE FROM req
WHERE REQ_DATE < DATE_SUB(CURDATE(), INTERVAL 30 DAY)
]]>
</delete>
<!-- ##############################################################################################
mq_req clear END
################################################################################################# -->
<!-- ##############################################################################################
mq -> erp 제상품, 세트상품정보 가져오기
################################################################################################# -->
<!-- MQ ERP 제상품 목록조회-->
<select id="selectErpGoodsList" >
SELECT
BARCODE,
SOPMAL_CD,
GOODS_NM,
GOODS_PRICE
FROM
GC_ANALYSIS_ERP_GOODS
</select>
<!-- MQ ERP 세트상품 목록조회-->
<select id="selectErpSetGoodsList" >
SELECT
SET_CODE,
SOPMAL_CD,
BARCODE_QY,
BARCODE,
GIFT_YN,
GOODS_NM,
SET_GOODS_NM
FROM
GC_ANALYSIS_ERP_SET_GOODS
</select>
<!-- MQ ERP 외부주문 내역 조회-->
<select id="selectMqErpOrderList" resultType="com.wb.domainserver.analysis.vo.TsAnalysisOrderListVO">
SELECT
ORDR_INNB,
SOPMAL_CD,
ORDR_STTUS_CD,
BARCODE,
BARCODE_QY,
GOODS_QY,
RL_SETLE_AMT,
PAYMENT_DT,
GIFT_YN,
SOPMAL_DV,
GOODS_NM,
SHOP_SET_CD
FROM GC_ANALYSIS_ORDER_HISTORY
</select>
<resultMap id="orderListResultMap" type="com.wb.domainserver.analysis.vo.TsAnalysisOrderListVO">
<result property="shopSetCd" column="SHOP_SET_CD" jdbcType="VARCHAR"/>
</resultMap>
<!-- MQ ERP 외부주문 내역 조회-->
<select id="selectMqErpTotalStatisticsList" resultType="com.wb.domainserver.analysis.vo.TsAnalysisErpTotalStatisticsVO">
SELECT
CO_CD,
STRGRP1_CD,
STRGRP2_CD,
STRGRP3_CD,
STRGRP4_CD,
SALE_DT,
BARCODE,
BRAND_NM,
ITM_NM,
ITM_ID,
SAL_AMT,
QTY,
SAL_AMT2,
CANC_TYPE
FROM GC_ERP_TOTAL_STATISTICS
</select>
<select id="selectPuriOrderList">
<![CDATA[
SELECT
PURI_ORDER_SEQ,
STATUS,
REGIST_DT,
ERP_CODE,
PURCHS_DV,
PURCHS_CD,
PURCHS_NM,
ORDR_CD,
PURCHS_DE,
PURCHS_DTLS,
PURCHSR_NM,
CTTPC,
ORDR_RM,
GOODS_CD,
GOODS_NM,
DLIVY_DE,
DLIVY_NM,
DLIVY_CTTPC,
VISIT_TRGTER_AT,
RECENT_VISIT_SEQ,
PURI_ALLIM_SEQ,
CHNG_LOG,
MEMO_LOG,
DELETE_YN
FROM GC_PURI_ORDER
]]>
</select>
<update id="updatePuriOrderList" parameterType="java.util.List">
<foreach collection="list" item="item" separator=";">
<![CDATA[
UPDATE GC_PURI_ORDER SET DELETE_YN = 'Y', UPDT_DT = NOW()
WHERE ERP_CODE = #{item.erpCode}
]]>
</foreach>
</update>
</mapper>

View File

@@ -0,0 +1,96 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.wb.domainserver.mapper.mq.MqStrMapper">
<!--현재 날짜에서 3일전까지 수정한 매장 정보 찾기-->
<select id="selectMqStrInfo" resultType="com.wb.domainserver.str.vo.TsStrVO">
SELECT REPRSNTV_INFO_ADRES,
REPRSNTV_INFO_RNM_ADRES,
REPRSNTV_INFO_DTL_ADRES,
REPRSNTV_INFO_REPRSNTVNM,
REPRSNTV_INFO_TELNB,
REPRSNTV_INFO_ZIP,
REPRSNT_BRAND,
MANAGE_CPR,
FIXING_EXPNDTR_CARD_FEE,
FIXING_EXPNDTR_LBCT,
FIXING_EXPNDTR_MANAGECT,
FIXING_EXPNDTR_PRCT,
FIXING_EXPNDTR_RNTCHRG,
FIXING_EXPNDTR_RYALTY,
FIXING_EXPNDTR_STR_OPERCT,
FIXING_EXPNDTR_SYS_RNTFEE,
STR_ESTBL_DV_CD,
STR_ADRES,
STR_RNM_ADRES,
STR_DTL_ADRES,
CASE WHEN CLSTR_DE = '0000-00-00 00:00:00' THEN NULL ELSE CLSTR_DE END AS CLSTR_DE,
CASE WHEN OPBIZ_DE = '0000-00-00 00:00:00' THEN NULL ELSE OPBIZ_DE END AS OPBIZ_DE,
STR_OPER_DV,
STR_TELNB,
DV,
STR_KND_DTL,
STR_ZIP,
CTY_GUN_GU,
HVOF_DE,
HVOF_DE_ADIT,
ENTRPS_ADRES,
ADRES_DV,
RNM_ADRES,
ENTRPS_DTL_ADRES,
REPRSNTVNM,
SELER_EMAIL,
SELER_FAX,
BIZCND_INDUTY,
ENTRPS_NM,
BSNM_NB,
SELER_TELNB,
COMM_SLE_DCL_NB,
SVC,
INDVDL_CPR_DV,
INHBTNT_CPR_NB,
ENTRPS_ZIP,
AW_LOGIN_AT,
BSN_TME,
POS_CD_PASSIV_INPUT_VAL,
POS_CD_DV_VAL,
STR_CD,
TENTCPN_NM,
STR_NM,
TENT_STTUS,
TRTMNT_BRAND,
CTY_DO,
HTGH_PVTCAR,
HTGH_PBTRNSP,
REPRSNT_MNGR_AT,
MNGR_AUTHOR,
MNGR_GROUP,
DFT_STL_DE,
UPDT_DTLS,
LA,
LO,
STR_ADRES_DV,
TENTCPN_ID,
LOC
FROM GC_POS_STORE
WHERE UPDT_DT <![CDATA[>=]]> DATE_SUB(DATE_FORMAT(NOW(), '%Y-%m-%d 23:59:59'), INTERVAL 3 DAY)
</select>
<!--포스 상품 재고 조회-->
<select id="selectMqStrStock" resultType="com.wb.domainserver.str.vo.TsStrStockVO">
SELECT STR_IDNTFC_CD,
YM,
GOODS_POS_HDQRTRS_CD,
GOODS_POS_CD,
GOODS_NM,
GOODS_BRCD,
GOODS_CL_CD,
CPR_CD,
STR_POS_HDQRTRS_CD,
STR_POS_CD,
STR_NM,
INVNTRY_QY,
SLE_QY,
PD_AVRG_QY,
GOODS_IDNTFC_CD
FROM GC_POS_STOCK
</select>
</mapper>

View File

@@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.wb.domainserver.mapper.crm.SampleCrmMapper">
<insert id="insertMqCheck" parameterType="com.wb.domainserver.sample.vo.BbsmngrVO">
INSERT INTO tmp_order (member_seq, order_seq) VALUES(#{bbsId},#{bbsNm})
</insert>
</mapper>

View File

@@ -0,0 +1,709 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.wb.domainserver.mapper.sure.SureMapper">
<!-- 수정 대상 조회(슈어엠) -->
<select id="selectMsgSureCorrList"
resultType="dataMap">
<![CDATA[
SELECT
SEQNO
, ETC2
, ETC3
, ETC5
FROM
SUREData
WHERE 1=1
AND ETC2 = #{smsInnb}
AND ETC3 = #{smsToInnb}
AND ETC5 = #{sopmalCd}
]]>
</select>
<!-- 수정 대상 조회(슈어엠) -->
<select id="selectMssageSureSttusInqire"
resultType="dataMap">
<![CDATA[
SELECT
TB.STTUS
, TB.ERRCODE
, TB.SNDNG_IDNB
, TB.BIZTYPE
, TB.DV
, TB.FILE
, TB.ETC2
, TB.ETC3
, TB.ETC5
FROM
(
SELECT
(
IF(RESULT = '0' OR RESULT = '1', 'WAIT',
IF(RESULT = 'R' AND (REQTIME > DATE_ADD(NOW(), INTERVAL 5 MINUTE) AND REQTIME > '00000000000000'), 'WAIT',
IF(RESULT = 'R' AND (DATE_ADD(NOW(), INTERVAL 5 MINUTE) >= REQTIME AND REQTIME > '00000000000000'), 'SEND',
IF(RESULT = 'Y', 'SEND',
IF(RESULT = 'X', 'CAN',
IF(RESULT = '2', 'OK', 'FAIL')
)
)
)
)
)
) AS STTUS
, ERRCODE
, SEQNO AS SNDNG_IDNB
, BIZTYPE AS BIZTYPE
, (
IF (SENTMEDIA IS NULL, KIND, SENTMEDIA)
) AS DV
, FKCONTENT AS FILE
, ETC2
, ETC3
, ETC5
FROM
SUREData
WHERE 1=1
AND ETC2 = #{smsInnb}
AND ETC3 = #{smsToInnb}
AND ETC5 = #{sopmalCd}
UNION ALL
SELECT
(
IF(RESULT = 'X', 'CAN',
IF(RESULT = '2', 'OK', 'FAIL')
)
) AS STTUS
, ERRCODE
, SEQNO AS SNDNG_IDNB
, BIZTYPE AS BIZTYPE
, (
IF (SENTMEDIA IS NULL, KIND, SENTMEDIA)
) AS DV
, FKCONTENT AS FILE
, ETC2
, ETC3
, ETC5
FROM
]]>
<choose>
<when test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isNotEmpty(yyyyMM)">
SUREData_log_${yyyyMM}
</when>
<when test = "@com.wb.domainserver.util.dataaccess.MybaitsUtil@isEmpty(yyyyMM)">
SUREData_log
</when>
</choose>
<![CDATA[
WHERE 1=1
AND ETC2 = #{smsInnb}
AND ETC3 = #{smsToInnb}
AND ETC5 = #{sopmalCd}
) TB
]]>
</select>
<!-- 발송내역 수정 -->
<update id="updateMssageStatusUpdt">
<foreach collection="list" item="data" index="index" separator=",">
UPDATE
GC_SMS_TO
SET
STTUS = #{data.sttus},
RSLT_CD #{data.errorcode}
WHERE 1=1
AND SMS_INNB = #{data.smsInnb}
AND SNDNG_IDNB = #{data.sndngIdnb}
AND SMS_TO_INNB = #{data.smsToInnb}
</foreach>
</update>
<!-- ##############################################################################################
메시지 공통 START
################################################################################################# -->
<!-- SMS 슈어엠테이블 등록 -->
<insert id="insertMssageNtcnSureRegist">
<selectKey order="BEFORE" keyProperty="seqno" resultType="java.lang.Integer">
<![CDATA[
SELECT IFNULL(MAX(SEQNO), 0)+1
FROM SUREData
]]>
</selectKey>
INSERT INTO SUREData (
SEQNO
, INTIME
, USERCODE
, DEPTCODE
, BIZTYPE
, YELLOWID_KEY
, REQNAME
, REQPHONE
, CALLPHONE
, SUBJECT
, MSG
, REQTIME
, SENTTIME
, RECVTIME
, RESULT
, KIND
, FKCONTENT
, RETRY
, RESEND
, TEMPLATECODE
, RETEXT
, BTN_TYPE_01
, BTN_NM_01
, BTN_01_URL_01
, BTN_01_URL_02
, BTN_TYPE_02
, BTN_NM_02
, BTN_02_URL_01
, BTN_02_URL_02
, BTN_TYPE_03
, BTN_NM_03
, BTN_03_URL_01
, BTN_03_URL_02
, BTN_TYPE_04
, BTN_NM_04
, BTN_04_URL_01
, BTN_04_URL_02
, BTN_TYPE_05
, BTN_NM_05
, BTN_05_URL_01
, BTN_05_URL_02
, ETC1
, ETC2
, ETC5
, AGENT_FLAG
)
VALUES
<foreach collection="list" item="surem" index="index" separator=",">
(
#{seqno} + #{index}
, DATE_FORMAT(NOW(), '%Y%m%d%H%i%s')
, #{surem.usercode}
, #{surem.deptcode}
, #{surem.biztype}
, #{surem.yellowidKey}
, #{surem.reqname}
, #{surem.reqphone}
, #{surem.callphone}
, #{surem.subject}
, #{surem.msg}
, #{surem.reqtime}
, #{surem.senttime}
, #{surem.recvtime}
, #{surem.result}
, #{surem.kind}
, #{surem.fkcontent}
, #{surem.retry}
, #{surem.resend}
, #{surem.templatecode}
, #{surem.retext}
, #{surem.btnType01}
, #{surem.btnNm01}
, #{surem.btn01url01}
, #{surem.btn01url02}
, #{surem.btnType02}
, #{surem.btnNm02}
, #{surem.btn02url01}
, #{surem.btn02url02}
, #{surem.btnType03}
, #{surem.btnNm03}
, #{surem.btn03url01}
, #{surem.btn03url02}
, #{surem.btnType04}
, #{surem.btnNm04}
, #{surem.btn04url01}
, #{surem.btn04url02}
, #{surem.btnType05}
, #{surem.btnNm05}
, #{surem.btn05url01}
, #{surem.btn05url02}
, #{surem.etc1}
, #{surem.etc2}
, #{surem.etc5}
, #{surem.agentFlag}
)
</foreach>
</insert>
<!-- SMS 슈어엠테이블 로그 등록 -->
<insert id="insertMssageNtcnSureLogRegist">
<selectKey order="BEFORE" keyProperty="seqno" resultType="java.lang.Integer">
<![CDATA[
SELECT IFNULL(MAX(SEQNO), 0)+1
FROM SUREData_log
]]>
</selectKey>
INSERT INTO SUREData_log (
SEQNO
, INTIME
, USERCODE
, DEPTCODE
, BIZTYPE
, YELLOWID_KEY
, REQNAME
, REQPHONE
, CALLPHONE
, SUBJECT
, MSG
, REQTIME
, SENTTIME
, RECVTIME
, RESULT
, KIND
, FKCONTENT
, RETRY
, RESEND
, TEMPLATECODE
, RETEXT
, BTN_TYPE_01
, BTN_NM_01
, BTN_01_URL_01
, BTN_01_URL_02
, BTN_TYPE_02
, BTN_NM_02
, BTN_02_URL_01
, BTN_02_URL_02
, BTN_TYPE_03
, BTN_NM_03
, BTN_03_URL_01
, BTN_03_URL_02
, BTN_TYPE_04
, BTN_NM_04
, BTN_04_URL_01
, BTN_04_URL_02
, BTN_TYPE_05
, BTN_NM_05
, BTN_05_URL_01
, BTN_05_URL_02
, ETC1
, ETC2
, ETC5
, AGENT_FLAG
)
VALUES
<foreach collection="list" item="surem" index="index" separator=",">
(
#{seqno} + #{index}
, DATE_FORMAT(NOW(), '%Y%m%d%H%i%s')
, #{surem.usercode}
, #{surem.deptcode}
, #{surem.biztype}
, #{surem.yellowidKey}
, #{surem.reqname}
, #{surem.reqphone}
, #{surem.callphone}
, #{surem.subject}
, #{surem.msg}
, #{surem.reqtime}
, #{surem.senttime}
, #{surem.recvtime}
, #{surem.result}
, #{surem.kind}
, #{surem.fkcontent}
, #{surem.retry}
, #{surem.resend}
, #{surem.templatecode}
, #{surem.retext}
, #{surem.btnType01}
, #{surem.btnNm01}
, #{surem.btn01url01}
, #{surem.btn01url02}
, #{surem.btnType02}
, #{surem.btnNm02}
, #{surem.btn02url01}
, #{surem.btn02url02}
, #{surem.btnType03}
, #{surem.btnNm03}
, #{surem.btn03url01}
, #{surem.btn03url02}
, #{surem.btnType04}
, #{surem.btnNm04}
, #{surem.btn04url01}
, #{surem.btn04url02}
, #{surem.btnType05}
, #{surem.btnNm05}
, #{surem.btn05url01}
, #{surem.btn05url02}
, #{surem.etc1}
, #{surem.etc2}
, #{surem.etc5}
, #{surem.agentFlag}
)
</foreach>
</insert>
<!-- 슈어테이블 대상 수 조회 -->
<select id="selectMssageSureSeqNo"
resultType="dataMap">
SELECT
SEQNO
, CALLPHONE
, ETC2
, ETC5
FROM
SUREData
WHERE 1=1
AND ETC2 IN
<foreach item="item" index="index" collection="smsInnbList"
open="(" separator="," close=")">
#{item}
</foreach>
</select>
<!-- 대상수 수정 대상 조회 -->
<select id="selectSureCntList"
resultType="dataMap">
<![CDATA[
SELECT
SEQNO
, CALLPHONE
, ETC2
, ETC3
, ETC5
, INTIME
FROM
SUREData
WHERE 1=1
AND SEQNO IN
]]>
<foreach item="item" index="index" collection="seqSumList"
open="(" separator="," close=")">
#{item.seqno}
</foreach>
</select>
<!-- 대상수 수정 대상 조회 -->
<select id="selectSureCntList2" parameterType="java.util.List"
resultType="dataMap">
SELECT
SEQNO
, CALLPHONE
, ETC2
, ETC3
, ETC5
, INTIME
FROM
SUREData
WHERE 1=1
AND ETC2 IN
<foreach item="item" index="index" collection="smsList"
open="(" separator="," close=")">
#{item.smsInnb}
</foreach>
ORDER BY ETC2, ETC5, SEQNO ASC
</select>
<select id="selectSureUpdtList"
resultType="dataMap">
<![CDATA[
SELECT
MAX(SEQNO) AS SEQNO
, ETC2
, ETC5
FROM
SUREData
WHERE 1=1
AND ETC2 IN
]]>
<foreach item="item" index="index" collection="smsList"
open="(" separator="," close=")">
#{item.smsInnb}
</foreach>
GROUP BY ETC2, ETC5
</select>
<!-- 슈어테이블 대상 수 조회 -->
<select id="selectMssageSureBySeqno"
resultType="dataMap">
SELECT
SEQNO
, CALLPHONE
, ETC2
, ETC5
FROM
SUREData
WHERE 1=1
AND SEQNO IN
<foreach item="item" index="index" collection="smsInnbList"
open="(" separator="," close=")">
#{item}
</foreach>
</select>
<!-- 슈어엠 발송상태 갱신 -->
<select id="selectMssageSureSttusInqireLog">
SELECT
TB.STTUS
, TB.ERRCODE
, TB.SNDNG_IDNB
, TB.BIZTYPE
, TB.DV
, TB.FILE
FROM
(
SELECT
(
IF(RESULT = '0' OR RESULT = '1', 'WAIT',
IF(RESULT = 'R' AND (
REQTIME > DATE_FORMAT(DATE_ADD(NOW(), INTERVAL 5 MINUTE), '%Y%m%d%H%i%s')
AND REQTIME > '00000000000000'
), 'WAIT',
IF(RESULT = 'R' AND (
DATE_FORMAT(DATE_ADD(NOW(), INTERVAL 5 MINUTE), '%Y%m%d%H%i%s') >= REQTIME
AND REQTIME > '00000000000000'
), 'SEND',
IF(RESULT = 'Y', 'SEND',
IF(RESULT = 'X', 'CAN',
IF(RESULT = '2', 'OK', 'FAIL')
)
)
)
)
)
) AS STTUS
, ERRCODE
, SEQNO AS SNDNG_IDNB
, BIZTYPE AS BIZTYPE
, ETC2 AS SMS_INNB
, (
IF (SENTMEDIA IS NULL, KIND, SENTMEDIA)
) AS DV
, FKCONTENT AS FILE
FROM
SUREData
WHERE
SEQNO IN
<foreach item="item" index="index" collection="syncUpdtToList" open="(" separator="," close=")">
#{item.sndngIdnb}
</foreach>
UNION ALL
SELECT
(
IF(RESULT = 'X', 'CAN',
IF(RESULT = '2', 'OK', 'FAIL')
)
) AS STTUS
, ERRCODE
, SEQNO AS SNDNG_IDNB
, BIZTYPE AS BIZTYPE
, ETC2 AS SMS_INNB
, (
IF (SENTMEDIA IS NULL, KIND, SENTMEDIA)
) AS DV
, FKCONTENT AS FILE
FROM
SUREData_log_${logDate}
WHERE
SEQNO IN
<foreach item="item" index="index" collection="syncUpdtToList" open="(" separator="," close=")">
#{item.sndngIdnb}
</foreach>
) TB
</select>
<!-- SMS 슈어엠테이블 등록 -->
<insert id="insertMssageSureRegistOld"
useGeneratedKeys="true" keyProperty="seqno">
<![CDATA[
INSERT INTO SUREData (
INTIME
, USERCODE
, DEPTCODE
, BIZTYPE
, YELLOWID_KEY
, REQNAME
, REQPHONE
, CALLPHONE
, SUBJECT
, MSG
, REQTIME
, SENTTIME
, RECVTIME
, RESULT
, KIND
, FKCONTENT
, RETRY
, RESEND
, TEMPLATECODE
, RETEXT
, BTN_TYPE_01
, BTN_NM_01
, BTN_01_URL_01
, BTN_01_URL_02
, BTN_TYPE_02
, BTN_NM_02
, BTN_02_URL_01
, BTN_02_URL_02
, BTN_TYPE_03
, BTN_NM_03
, BTN_03_URL_01
, BTN_03_URL_02
, BTN_TYPE_04
, BTN_NM_04
, BTN_04_URL_01
, BTN_04_URL_02
, BTN_TYPE_05
, BTN_NM_05
, BTN_05_URL_01
, BTN_05_URL_02
, ETC1
, ETC2
, ETC3
, ETC4
, ETC5
, AGENT_FLAG
)
]]>
VALUES
<foreach collection="list" item="surem" index="index" separator=",">
(
DATE_FORMAT(NOW(), '%Y%m%d%H%i%s')
, #{surem.usercode}
, #{surem.deptcode}
, #{surem.biztype}
, #{surem.yellowidKey}
, #{surem.reqname}
, #{surem.reqphone}
, #{surem.callphone}
, #{surem.subject}
, #{surem.msg}
, #{surem.reqtime}
, #{surem.senttime}
, #{surem.recvtime}
, #{surem.result}
, #{surem.kind}
, #{surem.fkcontent}
, #{surem.retry}
, #{surem.resend}
, #{surem.templatecode}
, #{surem.retext}
, #{surem.btnType01}
, #{surem.btnNm01}
, #{surem.btn01url01}
, #{surem.btn01url02}
, #{surem.btnType02}
, #{surem.btnNm02}
, #{surem.btn02url01}
, #{surem.btn02url02}
, #{surem.btnType03}
, #{surem.btnNm03}
, #{surem.btn03url01}
, #{surem.btn03url02}
, #{surem.btnType04}
, #{surem.btnNm04}
, #{surem.btn04url01}
, #{surem.btn04url02}
, #{surem.btnType05}
, #{surem.btnNm05}
, #{surem.btn05url01}
, #{surem.btn05url02}
, #{surem.etc1}
, #{surem.etc2}
, #{surem.etc3}
, #{surem.etc4}
, #{surem.etc5}
, #{surem.agentFlag}
)
</foreach>
</insert>
<!-- SMS 슈어엠테이블 등록 -->
<insert id="insertMssageSureRegist"
useGeneratedKeys="true" keyProperty="seqno">
<![CDATA[
INSERT INTO SUREData (
INTIME
, USERCODE
, DEPTCODE
, BIZTYPE
, YELLOWID_KEY
, REQNAME
, REQPHONE
, CALLPHONE
, SUBJECT
, MSG
, REQTIME
, SENTTIME
, RECVTIME
, RESULT
, KIND
, FKCONTENT
, RETRY
, RESEND
, TEMPLATECODE
, RETEXT
, BTN_TYPE_01
, BTN_NM_01
, BTN_01_URL_01
, BTN_01_URL_02
, BTN_TYPE_02
, BTN_NM_02
, BTN_02_URL_01
, BTN_02_URL_02
, BTN_TYPE_03
, BTN_NM_03
, BTN_03_URL_01
, BTN_03_URL_02
, BTN_TYPE_04
, BTN_NM_04
, BTN_04_URL_01
, BTN_04_URL_02
, BTN_TYPE_05
, BTN_NM_05
, BTN_05_URL_01
, BTN_05_URL_02
, ETC1
, ETC2
, ETC3
, ETC4
, ETC5
, AGENT_FLAG
)
]]>
VALUES
(
DATE_FORMAT(NOW(), '%Y%m%d%H%i%s')
, #{usercode}
, #{deptcode}
, #{biztype}
, #{yellowidKey}
, #{reqname}
, #{reqphone}
, #{callphone}
, #{subject}
, #{msg}
, #{reqtime}
, #{senttime}
, #{recvtime}
, #{result}
, #{kind}
, #{fkcontent}
, #{retry}
, #{resend}
, #{templatecode}
, #{retext}
, #{btnType01}
, #{btnNm01}
, #{btn01url01}
, #{btn01url02}
, #{btnType02}
, #{btnNm02}
, #{btn02url01}
, #{btn02url02}
, #{btnType03}
, #{btnNm03}
, #{btn03url01}
, #{btn03url02}
, #{btnType04}
, #{btnNm04}
, #{btn04url01}
, #{btn04url02}
, #{btnType05}
, #{btnNm05}
, #{btn05url01}
, #{btn05url02}
, #{etc1}
, #{etc2}
, #{etc3}
, #{etc4}
, #{etc5}
, #{agentFlag}
)
</insert>
</mapper>