2024-09-24 11:57 검색 조건 변경
This commit is contained in:
parent
7505181e84
commit
94a5c8835c
@ -23,6 +23,9 @@ public interface VEEduMIXService {
|
|||||||
//신청별(신청단위)
|
//신청별(신청단위)
|
||||||
List<VEEduAplctVO> selectPagingApplyList(VEEduAplctVO paramVO) throws Exception;
|
List<VEEduAplctVO> selectPagingApplyList(VEEduAplctVO paramVO) throws Exception;
|
||||||
|
|
||||||
|
//신청별(신청단위) - 검색대상 변경 2024-09-12
|
||||||
|
List<VEEduAplctVO> selectPagingApplyList_20240912(VEEduAplctVO paramVO) throws Exception;
|
||||||
|
|
||||||
/* 2023-0607 월별교육과정 통계와 데이터가 맞지 않아 쿼리 수정함 */
|
/* 2023-0607 월별교육과정 통계와 데이터가 맞지 않아 쿼리 수정함 */
|
||||||
List<VEEduAplctVO> selectPagingList_20230607(VEEduAplctVO paramVO) throws Exception;
|
List<VEEduAplctVO> selectPagingList_20230607(VEEduAplctVO paramVO) throws Exception;
|
||||||
|
|
||||||
|
|||||||
@ -55,6 +55,12 @@ public class VEEduMIXDAO extends EgovAbstractDAO {
|
|||||||
return tlist;
|
return tlist;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public List<VEEduAplctVO> selectPagingApplyList_20240912(VEEduAplctVO paramVO) throws Exception {
|
||||||
|
@SuppressWarnings("unchecked")
|
||||||
|
List<VEEduAplctVO> tlist = (List<VEEduAplctVO>) list("VEEduMIXDAO.selectPagingApplyList_20240912", paramVO);
|
||||||
|
return tlist;
|
||||||
|
}
|
||||||
|
|
||||||
public List<VEEduAplctVO> selectPagingList_20230607(VEEduAplctVO paramVO) throws Exception {
|
public List<VEEduAplctVO> selectPagingList_20230607(VEEduAplctVO paramVO) throws Exception {
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
List<VEEduAplctVO> tlist = (List<VEEduAplctVO>) list("VEEduMIXDAO.selectPagingList_20230607", paramVO);
|
List<VEEduAplctVO> tlist = (List<VEEduAplctVO>) list("VEEduMIXDAO.selectPagingList_20230607", paramVO);
|
||||||
|
|||||||
@ -49,6 +49,9 @@ public class VEEduMIXServiceImpl implements VEEduMIXService {
|
|||||||
return vEEduMIXDAO.selectPagingApplyList(paramVO);
|
return vEEduMIXDAO.selectPagingApplyList(paramVO);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public List<VEEduAplctVO> selectPagingApplyList_20240912(VEEduAplctVO paramVO) throws Exception{
|
||||||
|
return vEEduMIXDAO.selectPagingApplyList_20240912(paramVO);
|
||||||
|
}
|
||||||
|
|
||||||
//paging List
|
//paging List
|
||||||
public List<VEEduAplctVO> selectPagingList_20230607(VEEduAplctVO paramVO) throws Exception{
|
public List<VEEduAplctVO> selectPagingList_20230607(VEEduAplctVO paramVO) throws Exception{
|
||||||
|
|||||||
@ -202,7 +202,7 @@ public class EduAplctMngTngrController {
|
|||||||
* 2023-04-28 우영두
|
* 2023-04-28 우영두
|
||||||
*
|
*
|
||||||
* */
|
* */
|
||||||
List<VEEduAplctVO> vEEduAplctVOList = vEEduMIXService.selectPagingApplyList(vEEduAplctVO);
|
List<VEEduAplctVO> vEEduAplctVOList = vEEduMIXService.selectPagingApplyList_20240912(vEEduAplctVO);
|
||||||
vEEduAplctVOList = egovCryptoUtil.decryptVEEduAplctVOList(vEEduAplctVOList);
|
vEEduAplctVOList = egovCryptoUtil.decryptVEEduAplctVOList(vEEduAplctVOList);
|
||||||
vEEduAplctVO.setSearchChrgNm(egovCryptoUtil.decrypt(vEEduAplctVO.getSearchChrgNm()));
|
vEEduAplctVO.setSearchChrgNm(egovCryptoUtil.decrypt(vEEduAplctVO.getSearchChrgNm()));
|
||||||
//3.pageing step3
|
//3.pageing step3
|
||||||
|
|||||||
@ -2399,6 +2399,763 @@
|
|||||||
</isNotEqual>
|
</isNotEqual>
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<select id="VEEduMIXDAO.selectPagingApplyList_20240912" parameterClass="VEEduAplctVO" resultClass="VEEduAplctVO">
|
||||||
|
/* 임시.*NOT_SQL_LOG.* VEEduMIXDAO.selectPagingApplyList_20240912 */
|
||||||
|
SELECT
|
||||||
|
COUNT(1) OVER() AS totCnt
|
||||||
|
, ROWNUM AS rowNo
|
||||||
|
, A.EDU_CN AS eduCn
|
||||||
|
|
||||||
|
<isNotEmpty property="s4Excel">
|
||||||
|
, A.EDU_SLCT_CD AS eduSlctCd
|
||||||
|
|
||||||
|
|
||||||
|
, (SELECT a0.code_nm
|
||||||
|
FROM LETTCCMMNDETAILCODE a0
|
||||||
|
WHERE a0.code_id='VE0008'
|
||||||
|
AND a0.code =a.edu_slct_area_cd
|
||||||
|
)
|
||||||
|
AS eduSlctAreaCd
|
||||||
|
, (SELECT a0.code_nm
|
||||||
|
FROM LETTCCMMNDETAILCODE a0
|
||||||
|
WHERE a0.code_id='VE0009'
|
||||||
|
AND a0.code =a.schol_div_cd
|
||||||
|
)
|
||||||
|
AS scholDivCd
|
||||||
|
|
||||||
|
, (SELECT a0.code_nm
|
||||||
|
FROM LETTCCMMNDETAILCODE a0
|
||||||
|
WHERE a0.code_id='VE0003'
|
||||||
|
AND a0.code =a.aprvl_cd
|
||||||
|
)
|
||||||
|
AS aprvlCd
|
||||||
|
/*
|
||||||
|
, IF(A.APRVL_CD = '60', TO_CHAR(A.APRVL_PNTTM, 'YYYY.MM.DD'), '-') AS aprvlPnttm
|
||||||
|
*/
|
||||||
|
|
||||||
|
, CASE WHEN A.APRVL_CD = '60' THEN TO_CHAR(A.APRVL_PNTTM, 'YYYY.MM.DD') ELSE '-' END AS aprvlPnttm
|
||||||
|
|
||||||
|
, A.frst_Regist_Pnttm AS frstRegistPnttm
|
||||||
|
|
||||||
|
</isNotEmpty>
|
||||||
|
|
||||||
|
<isEmpty property="s4Excel">
|
||||||
|
, A.EDU_SLCT_CD AS eduSlctCd
|
||||||
|
, A.EDU_SLCT_AREA_CD AS eduSlctAreaCd
|
||||||
|
, A.SCHOL_DIV_CD AS scholDivCd
|
||||||
|
, A.APRVL_CD AS aprvlCd
|
||||||
|
, TO_CHAR(A.APRVL_PNTTM, 'YYYY.MM.DD') AS aprvlPnttm
|
||||||
|
</isEmpty>
|
||||||
|
|
||||||
|
, A.EDU_PLACE AS eduPlace
|
||||||
|
, A.EDU_PLACE_cd AS eduPlaceCd
|
||||||
|
|
||||||
|
, A.SBMT_YN AS sbmtYn
|
||||||
|
, TO_CHAR(A.SBMT_PNTTM, 'YYYY.MM.DD') AS sbmtPnttm
|
||||||
|
|
||||||
|
, A.SCHOL_INSTT_NM AS scholInsttNm
|
||||||
|
|
||||||
|
, A.INSTT_NM AS InsttNm
|
||||||
|
|
||||||
|
, A.EDU_APLCT_ORD AS eduAplctOrd
|
||||||
|
, A.EDU_TRGT AS eduTrgt
|
||||||
|
, A.EDU_PRSNL AS eduPrsnl
|
||||||
|
, A.CHRG_NM AS chrgNm
|
||||||
|
, A.JOB_NM AS jobNm
|
||||||
|
, A.USE_YN AS useYn
|
||||||
|
, A.MDFY_RQST_YN AS mdfyRqstYn
|
||||||
|
, A.EQPMN_CN AS eqpmnCn
|
||||||
|
, A.BLNG AS blng
|
||||||
|
, A.DPRTM AS dprtm
|
||||||
|
, A.FULL_NAME AS fullName
|
||||||
|
, A.PSTN AS pstn
|
||||||
|
, A.PRPS AS prps
|
||||||
|
, A.RPRT_SBMT_DT AS rprtSbmtDt
|
||||||
|
, A.hope_sbjct AS hopeSbjct
|
||||||
|
, A.isltn_schol_yn AS isltnScholYn
|
||||||
|
, A.clphone AS clphone
|
||||||
|
, A.phone AS phone
|
||||||
|
, A.Email AS email
|
||||||
|
, A.Addr AS addr
|
||||||
|
, A.IS_WAIT AS isWait
|
||||||
|
, A.CORPS_EDU AS corpsEdu
|
||||||
|
, A.BROADROOM_EDU AS broadroomEdu
|
||||||
|
, A.ADMIN_UPDT_YN AS adminUpdtYn
|
||||||
|
, A.OATH_ATCH_FILE_ID AS oathAtchFileId
|
||||||
|
, A.PLAN_ATCH_FILE_ID AS planAtchFileId
|
||||||
|
,(
|
||||||
|
SELECT
|
||||||
|
MAX(S2.PRCS_NM)||
|
||||||
|
CASE WHEN COUNT(*) > 1 THEN '외' || (COUNT(*)-1)
|
||||||
|
ELSE '' END AS PRCS_NM
|
||||||
|
FROM VE_EDU_APLCT_ONLN S1 INNER JOIN VE_PRCS S2
|
||||||
|
ON S1.PRCS_ORD = S2.PRCS_ORD
|
||||||
|
WHERE 1=1
|
||||||
|
AND S1.EDU_APLCT_ORD = A.EDU_APLCT_ORD
|
||||||
|
GROUP BY S1.EDU_APLCT_ORD
|
||||||
|
/*
|
||||||
|
ORDER BY S1.PRCS_ORD
|
||||||
|
*/
|
||||||
|
) AS prcsGroupNm
|
||||||
|
, A.INSTT_DIV_CD AS insttDivCd
|
||||||
|
, A.FRST_REGISTER_ID AS frstRegisterId
|
||||||
|
, TO_CHAR(A.FRST_REGIST_PNTTM, 'YYYY.MM.DD') AS frstRegistPnttm
|
||||||
|
, A0.CNT-1 AS cnt
|
||||||
|
, A0.PRCS_ORD AS prcsOrd
|
||||||
|
, A0.PRCS_NM AS prcsNm
|
||||||
|
|
||||||
|
, CC.lrn_tm AS lrnTm
|
||||||
|
|
||||||
|
, CC.EDU_HOPE_DT AS eduHopeDt
|
||||||
|
, CC.EDU_CHASI_ORD AS eduChasiOrd
|
||||||
|
|
||||||
|
, CC.strt_tm AS strtTm
|
||||||
|
, CC.end_tm AS endTm
|
||||||
|
|
||||||
|
|
||||||
|
, D.USER_NM AS userNm
|
||||||
|
, E.CHRG_MJR AS chrgMjr
|
||||||
|
, E.D_BIRTH AS dBirth
|
||||||
|
, E.CHRG_SEX_CD AS chrgSexCd
|
||||||
|
, E.CMPLT_YEAR AS cmpltYear
|
||||||
|
, E.CMPLT_NUM AS cmpltNum
|
||||||
|
, E.EXPRN_CLSRN_CD AS exprnClsrnCd
|
||||||
|
, E.EXPRN_CLSRN_YEAR AS exprnClsrnYear
|
||||||
|
, E.EXPRN_CLSRN_APLCT AS exprnClsrnAplct
|
||||||
|
, E.EXPRN_CLSRN_APLCT_CN AS exprnClsrnAplctCn
|
||||||
|
, E.TRGT_GRADE AS trgtGrade
|
||||||
|
, E.TRGT_CLSRM AS trgtClsrm
|
||||||
|
, E.TRGT_PRSNL AS trgtPrsnl
|
||||||
|
, E.RPRT_SBMT AS rprtSbmt
|
||||||
|
, E.OPRTN_STRT_DT AS oprtnStrtDt
|
||||||
|
, E.OPRTN_END_DT AS oprtnEndDt
|
||||||
|
, E.OPRTN_FILE_ID AS oprtnFileId
|
||||||
|
, H.APRVL_CD AS rprtAprvlCd
|
||||||
|
, (
|
||||||
|
SELECT
|
||||||
|
S3.end_pnttm
|
||||||
|
FROM ve_prcs_aplct_prd S3
|
||||||
|
WHERE S3.use_YN = 'Y' AND S3.frst_regist_pnttm = (SELECT MAX(frst_regist_pnttm) FROM ve_prcs_aplct_prd)
|
||||||
|
) AS endPnttm
|
||||||
|
, (
|
||||||
|
SELECT
|
||||||
|
S4.end_pnttm
|
||||||
|
FROM ve_prcs_aplct_prd S4
|
||||||
|
WHERE S4.prcs_aplct_prd_ord = A.prcs_ord
|
||||||
|
) AS prcsEndPnttm
|
||||||
|
, (
|
||||||
|
SELECT
|
||||||
|
COUNT(1)
|
||||||
|
FROM ve_edu_chasi_instr_asgnm X
|
||||||
|
, ve_edu_chasi y
|
||||||
|
WHERE A.edu_aplct_ord = X.edu_aplct_ord
|
||||||
|
|
||||||
|
AND X.asgnm_aprvl_cd = '30'
|
||||||
|
|
||||||
|
AND x.EDU_APLCT_ORD=y.EDU_APLCT_ORD
|
||||||
|
AND x.EDU_CHASI_ORD=y.EDU_CHASI_ORD
|
||||||
|
) AS instrCnfrmCnt
|
||||||
|
,(
|
||||||
|
SELECT
|
||||||
|
/*
|
||||||
|
COUNT(1)
|
||||||
|
*/
|
||||||
|
sum(NVL(chasi,1))
|
||||||
|
FROM ve_edu_chasi Z
|
||||||
|
WHERE Z.edu_aplct_ord = A.edu_aplct_ord
|
||||||
|
) AS chasiCnt
|
||||||
|
,
|
||||||
|
/*
|
||||||
|
(
|
||||||
|
SELECT COUNT(1)
|
||||||
|
FROM ve_new_noti e
|
||||||
|
WHERE ((A.edu_aplct_ord = e.tbl_uniq_ord OR CC.edu_aplct_ord = e.tbl_uniq_ord) OR CC.edu_chasi_ord = e.tbl_uniq_ord)
|
||||||
|
AND e.menu_no = menuNo
|
||||||
|
AND e.frst_register_id = notiUserId
|
||||||
|
)
|
||||||
|
AS notiCnt,
|
||||||
|
*/
|
||||||
|
( SELECT
|
||||||
|
COUNT(1)
|
||||||
|
FROM ve_acmdt_aplct ZZ
|
||||||
|
, VE_EDU_CHASI YY
|
||||||
|
WHERE A.EDU_APLCT_ORD = ZZ.EDU_APLCT_ORD
|
||||||
|
AND ZZ.EDU_APLCT_ORD = YY.EDU_APLCT_ORD
|
||||||
|
AND ZZ.EDU_CHASI_ORD = YY.EDU_CHASI_ORD
|
||||||
|
AND ZZ.sbmt_yn = 'Y'
|
||||||
|
AND ZZ.APRVL_CD = '10'
|
||||||
|
) AS acmdtCnt,
|
||||||
|
( SELECT COUNT(1)
|
||||||
|
FROM VE_ACMDT_APLCT ZZ
|
||||||
|
, VE_EDU_CHASI YY
|
||||||
|
WHERE A.EDU_APLCT_ORD = ZZ.EDU_APLCT_ORD
|
||||||
|
AND ZZ.EDU_APLCT_ORD = YY.EDU_APLCT_ORD
|
||||||
|
AND ZZ.EDU_CHASI_ORD = YY.EDU_CHASI_ORD
|
||||||
|
AND ZZ.SBMT_YN = 'Y'
|
||||||
|
) AS acmdtAllCnt
|
||||||
|
|
||||||
|
,(
|
||||||
|
|
||||||
|
SELECT COUNT(*)
|
||||||
|
FROM ve_prcs_cmplt_detail a0
|
||||||
|
INNER JOIN ve_prcs b0
|
||||||
|
ON a0.prcs_ord = b0.prcs_ord
|
||||||
|
INNER JOIN ve_prcs_onln_cntnt c0
|
||||||
|
ON c0.prcs_onln_cntnt_ord = a0.prcs_onln_cntnt_ord
|
||||||
|
WHERE 1 =1
|
||||||
|
AND a0.edu_aplct_ord =A.EDU_APLCT_ORD
|
||||||
|
AND NVL(a0.sbmt_yn,'N')='Y'
|
||||||
|
|
||||||
|
) AS isEndCnt
|
||||||
|
|
||||||
|
,(
|
||||||
|
|
||||||
|
SELECT sum(a0.EDU_PRSNL)
|
||||||
|
FROM ve_prcs_cmplt_detail a0
|
||||||
|
INNER JOIN ve_prcs b0
|
||||||
|
ON a0.prcs_ord = b0.prcs_ord
|
||||||
|
INNER JOIN ve_prcs_onln_cntnt c0
|
||||||
|
ON c0.prcs_onln_cntnt_ord = a0.prcs_onln_cntnt_ord
|
||||||
|
WHERE 1 =1
|
||||||
|
AND a0.edu_aplct_ord =A.EDU_APLCT_ORD
|
||||||
|
AND NVL(a0.sbmt_yn,'N')='Y'
|
||||||
|
|
||||||
|
) AS endEduPrsnl
|
||||||
|
|
||||||
|
|
||||||
|
, g.edu_strt_dt AS eduStrtDt
|
||||||
|
, g.edu_end_dt AS eduEndDt
|
||||||
|
/*
|
||||||
|
, IF(A.APRVL_CD='20'
|
||||||
|
and
|
||||||
|
(
|
||||||
|
|
||||||
|
SELECT COUNT(*)
|
||||||
|
FROM ve_prcs_cmplt_detail a0
|
||||||
|
INNER JOIN ve_prcs b0
|
||||||
|
ON a0.prcs_ord = b0.prcs_ord
|
||||||
|
INNER JOIN ve_prcs_onln_cntnt c0
|
||||||
|
ON c0.prcs_onln_cntnt_ord = a0.prcs_onln_cntnt_ord
|
||||||
|
WHERE 1 =1
|
||||||
|
AND a0.edu_aplct_ord =A.EDU_APLCT_ORD
|
||||||
|
AND NVL(a0.sbmt_yn,'N')='Y'
|
||||||
|
|
||||||
|
)>0
|
||||||
|
|
||||||
|
, g.edu_reg_dt
|
||||||
|
, ''
|
||||||
|
) AS eduRegDt
|
||||||
|
*/
|
||||||
|
|
||||||
|
/*
|
||||||
|
, IF(A.APRVL_CD='20'
|
||||||
|
and
|
||||||
|
(
|
||||||
|
|
||||||
|
SELECT COUNT(*)
|
||||||
|
FROM ve_prcs_cmplt_detail a0
|
||||||
|
INNER JOIN ve_prcs b0
|
||||||
|
ON a0.prcs_ord = b0.prcs_ord
|
||||||
|
INNER JOIN ve_prcs_onln_cntnt c0
|
||||||
|
ON c0.prcs_onln_cntnt_ord = a0.prcs_onln_cntnt_ord
|
||||||
|
WHERE 1 =1
|
||||||
|
AND a0.edu_aplct_ord =A.EDU_APLCT_ORD
|
||||||
|
AND NVL(a0.sbmt_yn,'N')='Y'
|
||||||
|
|
||||||
|
)>0
|
||||||
|
and length(g.edu_strt_dt)=8
|
||||||
|
and length(g.edu_end_dt)=8
|
||||||
|
|
||||||
|
,
|
||||||
|
SUBSTRING(g.edu_strt_dt,1,4) || '.' || SUBSTRING(g.edu_strt_dt,5,2) || '.' || SUBSTRING(g.edu_strt_dt,7,2)
|
||||||
|
|| '~'
|
||||||
|
|| SUBSTRING(g.edu_end_dt,1,4) || '.' || SUBSTRING(g.edu_end_dt,5,2) || '.' || SUBSTRING(g.edu_end_dt,7,2)
|
||||||
|
|
||||||
|
|
||||||
|
, ''
|
||||||
|
) AS eduDt
|
||||||
|
*/
|
||||||
|
|
||||||
|
FROM VE_EDU_APLCT A LEFT OUTER JOIN (
|
||||||
|
SELECT
|
||||||
|
AA.EDU_APLCT_ORD
|
||||||
|
, AA.CNT
|
||||||
|
, AA.PRCS_ORD
|
||||||
|
, BB.PRCS_NM
|
||||||
|
FROM (
|
||||||
|
SELECT
|
||||||
|
A.EDU_APLCT_ORD
|
||||||
|
, COUNT(*) CNT
|
||||||
|
, MIN(B.PRCS_ORD) PRCS_ORD
|
||||||
|
FROM VE_EDU_APLCT A , VE_EDU_APLCT_ONLN B
|
||||||
|
WHERE A.EDU_APLCT_ORD = B.EDU_APLCT_ORD
|
||||||
|
GROUP BY A.EDU_APLCT_ORD
|
||||||
|
)AA, VE_PRCS BB
|
||||||
|
WHERE AA.PRCS_ORD = BB.PRCS_ORD
|
||||||
|
)A0 ON(A.EDU_APLCT_ORD = A0.EDU_APLCT_ORD)
|
||||||
|
/*
|
||||||
|
LEFT OUTER JOIN (
|
||||||
|
SELECT
|
||||||
|
EDU_APLCT_ORD
|
||||||
|
,EDU_CHASI_ORD
|
||||||
|
,SUM(lrn_tm) AS lrn_tm
|
||||||
|
,MIN(
|
||||||
|
REPLACE(
|
||||||
|
CASE WHEN EDU_HOPE_DT IS NULL OR EDU_HOPE_DT = '' THEN NULL ELSE EDU_HOPE_DT END
|
||||||
|
, '.'
|
||||||
|
, ''
|
||||||
|
)
|
||||||
|
) AS EDU_HOPE_DT
|
||||||
|
FROM VE_EDU_CHASI
|
||||||
|
GROUP BY EDU_APLCT_ORD, EDU_CHASI_ORD
|
||||||
|
) CC ON A.EDU_APLCT_ORD = CC.EDU_APLCT_ORD
|
||||||
|
*/
|
||||||
|
|
||||||
|
LEFT OUTER JOIN
|
||||||
|
(
|
||||||
|
SELECT vec4.*
|
||||||
|
FROM (
|
||||||
|
SELECT vec1.edu_aplct_ord, min(vec1.EDU_CHASI_ORD) edu_chasi_ord
|
||||||
|
FROM ve_edu_chasi vec1
|
||||||
|
,(
|
||||||
|
SELECT EDU_APLCT_ORD
|
||||||
|
, MIN(
|
||||||
|
/* IF(EDU_HOPE_DT IS NULL OR EDU_HOPE_DT = '', NULL, EDU_HOPE_DT) */
|
||||||
|
CASE
|
||||||
|
WHEN EDU_HOPE_DT IS NULL OR EDU_HOPE_DT = ''
|
||||||
|
THEN '9999.12.31'
|
||||||
|
ELSE EDU_HOPE_DT
|
||||||
|
END ) AS EDU_HOPE_DT
|
||||||
|
FROM ve_edu_chasi
|
||||||
|
GROUP BY EDU_APLCT_ORD
|
||||||
|
)vec2
|
||||||
|
WHERE vec1.edu_aplct_ord=vec2.edu_aplct_ord
|
||||||
|
AND vec1.edu_hope_dt=vec2.edu_hope_dt
|
||||||
|
GROUP BY vec1.edu_aplct_ord
|
||||||
|
)vec3
|
||||||
|
, ve_edu_chasi vec4
|
||||||
|
WHERE vec3.edu_aplct_ord=vec4.edu_aplct_ord
|
||||||
|
AND vec3.edu_chasi_ord=vec4.edu_chasi_ord
|
||||||
|
)CC
|
||||||
|
ON A.EDU_APLCT_ORD = CC.EDU_APLCT_ORD
|
||||||
|
|
||||||
|
LEFT OUTER JOIN COMVNUSERMASTER D
|
||||||
|
ON A.USER_ID = D.USER_ID
|
||||||
|
LEFT OUTER JOIN VE_EDU_OPRTN E
|
||||||
|
ON A.EDU_APLCT_ORD = E.EDU_APLCT_ORD
|
||||||
|
<isEqual property="lctrDivCd" compareValue="20">
|
||||||
|
LEFT OUTER JOIN ve_edu_chasi_instr_asgnm DD
|
||||||
|
ON (
|
||||||
|
A.EDU_APLCT_ORD = DD.EDU_APLCT_ORD
|
||||||
|
AND CC.EDU_CHASI_ORD = DD.EDU_CHASI_ORD
|
||||||
|
)
|
||||||
|
LEFT OUTER JOIN ve_instr_detail F
|
||||||
|
ON (DD.USER_ID = F.USER_ID
|
||||||
|
AND F.USE_YN = 'Y'
|
||||||
|
<isNotEmpty property="instrDiv">
|
||||||
|
AND F.instr_div = #instrDiv#
|
||||||
|
</isNotEmpty>
|
||||||
|
AND F.INSTR_DIV = #instrDiv#)
|
||||||
|
</isEqual>
|
||||||
|
|
||||||
|
LEFT OUTER JOIN
|
||||||
|
(
|
||||||
|
/*
|
||||||
|
SELECT edu_aplct_ord, edu_strt_dt, edu_end_dt , DATE_FORMAT(sbmt_pnttm,'%Y%m%d') AS edu_reg_dt
|
||||||
|
FROM ve_prcs_cmplt_detail
|
||||||
|
GROUP BY edu_aplct_ord, edu_strt_dt, edu_end_dt , DATE_FORMAT(sbmt_pnttm,'%Y%m%d')
|
||||||
|
*/
|
||||||
|
SELECT edu_aplct_ord, edu_strt_dt, edu_end_dt , TO_CHAR(sbmt_pnttm,'YYYYMMDD') AS edu_reg_dt
|
||||||
|
FROM ve_prcs_cmplt_detail
|
||||||
|
GROUP BY edu_aplct_ord, edu_strt_dt, edu_end_dt , TO_CHAR(sbmt_pnttm,'YYYYMMDD')
|
||||||
|
) G
|
||||||
|
ON A.EDU_APLCT_ORD = G.EDU_APLCT_ORD
|
||||||
|
LEFT OUTER JOIN ve_edu_rslt_rprt H
|
||||||
|
ON A.EDU_APLCT_ORD = H.EDU_APLCT_ORD
|
||||||
|
,
|
||||||
|
(
|
||||||
|
SELECT edu_aplct_ord
|
||||||
|
FROM ve_edu_chasi
|
||||||
|
WHERE 1=1
|
||||||
|
|
||||||
|
<isNotEmpty property="searchStartDt">
|
||||||
|
AND REPLACE(EDU_HOPE_DT, '.', '') <![CDATA[ >= ]]> REPLACE(#searchStartDt#, '.' , '')
|
||||||
|
</isNotEmpty>
|
||||||
|
|
||||||
|
<isNotEmpty property="searchEndDt">
|
||||||
|
AND REPLACE(EDU_HOPE_DT, '.', '') <![CDATA[ <= ]]> REPLACE(#searchEndDt#, '.' , '')
|
||||||
|
</isNotEmpty>
|
||||||
|
|
||||||
|
GROUP BY edu_aplct_ord
|
||||||
|
) vec5
|
||||||
|
|
||||||
|
WHERE 1=1
|
||||||
|
AND A.edu_aplct_ord = vec5.edu_aplct_ord
|
||||||
|
/*
|
||||||
|
AND IFNULL(A.USE_YN, 'Y') <![CDATA[ <> ]]> 'N'
|
||||||
|
*/
|
||||||
|
AND NVL(A.USE_YN, 'Y') <![CDATA[ <> ]]> 'N'
|
||||||
|
|
||||||
|
<isEmpty property="sbmtYn">
|
||||||
|
AND A.SBMT_YN = 'Y'
|
||||||
|
</isEmpty>
|
||||||
|
|
||||||
|
<isNotEmpty property="sbmtYn">
|
||||||
|
AND A.SBMT_YN != 'Y'
|
||||||
|
</isNotEmpty>
|
||||||
|
|
||||||
|
<isNotEmpty property="searchAcmdtCnt">
|
||||||
|
AND
|
||||||
|
(
|
||||||
|
SELECT
|
||||||
|
COUNT(1)
|
||||||
|
FROM
|
||||||
|
ve_acmdt_aplct ZZ
|
||||||
|
WHERE
|
||||||
|
A.edu_aplct_ord = ZZ.edu_aplct_ord
|
||||||
|
AND
|
||||||
|
ZZ.sbmt_yn = 'Y'
|
||||||
|
) > 0
|
||||||
|
</isNotEmpty>
|
||||||
|
|
||||||
|
<isNotEmpty property="lctrDivCd">
|
||||||
|
AND A.LCTR_DIV_CD = #lctrDivCd#
|
||||||
|
</isNotEmpty>
|
||||||
|
|
||||||
|
<isNotEmpty property="aprvlCd">
|
||||||
|
AND A.APRVL_CD=#aprvlCd#
|
||||||
|
</isNotEmpty>
|
||||||
|
|
||||||
|
<isNotEmpty property="searchStartSbmtPnttm">
|
||||||
|
AND TO_CHAR(A.SBMT_PNTTM,'YYYYMMDD') <![CDATA[ >= ]]> REPLACE(#searchStartSbmtPnttm#, '.' , '')
|
||||||
|
</isNotEmpty>
|
||||||
|
|
||||||
|
<isNotEmpty property="searchEndSbmtPnttm">
|
||||||
|
AND TO_CHAR(A.SBMT_PNTTM,'YYYYMMDD') <![CDATA[ <= ]]> REPLACE(#searchEndSbmtPnttm#, '.' , '')
|
||||||
|
</isNotEmpty>
|
||||||
|
<isNotEmpty property="searchStartRegistPnttm">
|
||||||
|
AND TO_CHAR(A.FRST_REGIST_PNTTM,'YYYYMMDD') <![CDATA[ >= ]]> REPLACE(#searchStartRegistPnttm#, '.' , '')
|
||||||
|
</isNotEmpty>
|
||||||
|
|
||||||
|
<isNotEmpty property="searchEndRegistPnttm">
|
||||||
|
AND TO_CHAR(A.FRST_REGIST_PNTTM,'YYYYMMDD') <![CDATA[ <= ]]> REPLACE(#searchEndRegistPnttm#, '.' , '')
|
||||||
|
</isNotEmpty>
|
||||||
|
<isNotEmpty property="searchStratAprvlPnttm">
|
||||||
|
AND TO_CHAR(A.APRVL_PNTTM, 'YYYYMMDD') <![CDATA[ >= ]]> REPLACE(#searchStratAprvlPnttm#, '.' , '')
|
||||||
|
</isNotEmpty>
|
||||||
|
|
||||||
|
<isNotEmpty property="searchEndAprvlPnttm">
|
||||||
|
AND TO_CHAR(A.APRVL_PNTTM, 'YYYYMMDD') <![CDATA[ <= ]]> REPLACE(#searchEndAprvlPnttm#, '.' , '')
|
||||||
|
</isNotEmpty>
|
||||||
|
|
||||||
|
<isNotEmpty property="searchSmbtStartDt">
|
||||||
|
AND TO_CHAR(A.SBMT_PNTTM, 'YYYYMMDD') <![CDATA[ >= ]]> REPLACE(#searchSmbtStartDt#, '.' , '')
|
||||||
|
</isNotEmpty>
|
||||||
|
|
||||||
|
<isNotEmpty property="searchSmbtEndDt">
|
||||||
|
AND TO_CHAR(A.SBMT_PNTTM, 'YYYYMMDD') <![CDATA[ <= ]]> REPLACE(#searchSmbtEndDt#, '.' , '')
|
||||||
|
</isNotEmpty>
|
||||||
|
|
||||||
|
<isNotEmpty property="searchScholDivCd">
|
||||||
|
AND A.SCHOL_DIV_CD = #searchScholDivCd#
|
||||||
|
</isNotEmpty>
|
||||||
|
|
||||||
|
<isEmpty property="searchStartDt">
|
||||||
|
<isEmpty property="searchEndDt">
|
||||||
|
AND 1=1
|
||||||
|
</isEmpty>
|
||||||
|
</isEmpty>
|
||||||
|
|
||||||
|
<isNotEmpty property="searchEduSlctAreaCd">
|
||||||
|
AND (
|
||||||
|
|
||||||
|
(
|
||||||
|
A.EDU_SLCT_AREA_CD = #searchEduSlctAreaCd#
|
||||||
|
AND
|
||||||
|
A.EDU_SLCT_CD = '20'
|
||||||
|
)
|
||||||
|
OR
|
||||||
|
(
|
||||||
|
'400' = #searchEduSlctAreaCd#
|
||||||
|
AND
|
||||||
|
A.EDU_SLCT_CD = '10'
|
||||||
|
)
|
||||||
|
)
|
||||||
|
</isNotEmpty>
|
||||||
|
|
||||||
|
<isNotEmpty property="searchEduSlctAreaCd2">
|
||||||
|
AND (
|
||||||
|
A.EDU_SLCT_AREA_CD = #searchEduSlctAreaCd2#
|
||||||
|
OR
|
||||||
|
'400' = #searchEduSlctAreaCd2#
|
||||||
|
)
|
||||||
|
</isNotEmpty>
|
||||||
|
|
||||||
|
<isNotEmpty property="searchEduSlctCd">
|
||||||
|
AND A.EDU_SLCT_CD = #searchEduSlctCd#
|
||||||
|
</isNotEmpty>
|
||||||
|
|
||||||
|
<isNotEmpty property="searchInsttDivCd">
|
||||||
|
AND A.INSTT_DIV_CD = #searchInsttDivCd#
|
||||||
|
</isNotEmpty>
|
||||||
|
|
||||||
|
<isNotEmpty property="userId">
|
||||||
|
AND A.USER_ID = #userId#
|
||||||
|
</isNotEmpty>
|
||||||
|
|
||||||
|
<isNotEmpty property="frstRegisterId">
|
||||||
|
AND A.FRST_REGISTER_ID = #frstRegisterId#
|
||||||
|
</isNotEmpty>
|
||||||
|
<isNotEmpty property="searchScholNm">
|
||||||
|
AND A.SCHOL_INSTT_NM LIKE '%' || #searchScholNm# || '%'
|
||||||
|
</isNotEmpty>
|
||||||
|
<isEmpty property="searchCondition">
|
||||||
|
<isNotEmpty property="searchKeyword">
|
||||||
|
AND (
|
||||||
|
A.SCHOL_INSTT_NM LIKE '%' || #searchKeyword# '%' OR
|
||||||
|
A.INSTT_NM LIKE '%' || #searchKeyword# || '%'
|
||||||
|
)
|
||||||
|
</isNotEmpty>
|
||||||
|
</isEmpty>
|
||||||
|
|
||||||
|
<isNotEmpty property="searchCondition">
|
||||||
|
<isEqual property="searchCondition" compareValue="1">
|
||||||
|
AND A.SCHOL_INSTT_NM LIKE '%' || #searchKeyword# || '%'
|
||||||
|
</isEqual>
|
||||||
|
<isEqual property="searchCondition" compareValue="2">
|
||||||
|
AND A.CHRG_NM LIKE '%' || #searchKeyword# || '%'
|
||||||
|
</isEqual>
|
||||||
|
</isNotEmpty>
|
||||||
|
|
||||||
|
<isNotEmpty property="searchChrgNm">
|
||||||
|
AND A.CHRG_NM LIKE '%' || #searchChrgNm# || '%'
|
||||||
|
</isNotEmpty>
|
||||||
|
|
||||||
|
<isNotEmpty property="searchStatusArr">
|
||||||
|
<iterate open="(" close=")" conjunction="," property="searchStatusArr" prepend="AND A.APRVL_CD IN " > #searchStatusArr[]#</iterate>
|
||||||
|
</isNotEmpty>
|
||||||
|
|
||||||
|
<isNotEmpty property="searchNotStatusArr">
|
||||||
|
<iterate open="(" close=")" conjunction="," property="searchNotStatusArr" prepend="AND A.APRVL_CD NOT IN " > #searchNotStatusArr[]#</iterate>
|
||||||
|
</isNotEmpty>
|
||||||
|
|
||||||
|
<isNotEmpty property="searchScholDivCdArr">
|
||||||
|
<iterate open="(" close=")" conjunction="," property="searchScholDivCdArr" prepend="AND A.SCHOL_DIV_CD IN " > #searchScholDivCdArr[]#</iterate>
|
||||||
|
</isNotEmpty>
|
||||||
|
|
||||||
|
<isNotEmpty property="searchStatus">
|
||||||
|
<isEqual property="searchStatus" compareValue="99">
|
||||||
|
AND
|
||||||
|
(
|
||||||
|
SELECT
|
||||||
|
CNT
|
||||||
|
FROM
|
||||||
|
( SELECT COUNT(1) AS CNT
|
||||||
|
FROM VE_PRCS_CMPLT_DETAIL
|
||||||
|
WHERE edu_aplct_ord = A.edu_aplct_ord ) bb
|
||||||
|
WHERE bb.CNT <![CDATA[ > ]]> 0
|
||||||
|
) > 0
|
||||||
|
</isEqual>
|
||||||
|
<isNotEqual property="searchStatus" compareValue="99">
|
||||||
|
AND
|
||||||
|
(
|
||||||
|
SELECT
|
||||||
|
CNT
|
||||||
|
FROM
|
||||||
|
( SELECT COUNT(1) AS CNT
|
||||||
|
FROM VE_PRCS_CMPLT_DETAIL
|
||||||
|
WHERE edu_aplct_ord = A.edu_aplct_ord ) bb
|
||||||
|
WHERE bb.CNT = 0
|
||||||
|
) = 0
|
||||||
|
</isNotEqual>
|
||||||
|
</isNotEmpty>
|
||||||
|
|
||||||
|
<isNotEmpty property="searchStateYear">
|
||||||
|
AND TO_CHAR(A.FRST_REGIST_PNTTM, 'YYYY') = #searchStateYear#
|
||||||
|
</isNotEmpty>
|
||||||
|
|
||||||
|
|
||||||
|
<isNotEmpty property="searchStateStatusArr">
|
||||||
|
AND
|
||||||
|
|
||||||
|
(1=2
|
||||||
|
<iterate property="searchStateStatusArr" >
|
||||||
|
<isEqual property="searchStateStatusArr[]" compareValue="10">
|
||||||
|
<!-- OR (A.strt_oprtn_dt <![CDATA[ <= ]]> TO_CHAR(NOW(), 'YYYYMMDD') AND end_oprtn_dt <![CDATA[ >= ]]> TO_CHAR(NOW(), 'YYYYMMDD')) -->
|
||||||
|
OR (E.oprtn_strt_dt <![CDATA[ <= ]]> TO_CHAR(NOW(), 'YYYYMMDD') AND E.oprtn_end_dt <![CDATA[ >= ]]> TO_CHAR(NOW(), 'YYYYMMDD'))
|
||||||
|
</isEqual>
|
||||||
|
<isEqual property="searchStateStatusArr[]" compareValue="20">
|
||||||
|
<!-- OR
|
||||||
|
(
|
||||||
|
A.end_oprtn_dt <![CDATA[ < ]]> TO_CHAR(NOW(), 'YYYYMMDD')
|
||||||
|
AND
|
||||||
|
(
|
||||||
|
SELECT
|
||||||
|
CNT
|
||||||
|
FROM
|
||||||
|
( SELECT COUNT(1) AS CNT
|
||||||
|
FROM ve_edu_rslt_rprt
|
||||||
|
WHERE edu_aplct_ord = a.edu_aplct_ord ) AA
|
||||||
|
WHERE AA.CNT = 0
|
||||||
|
)
|
||||||
|
) -->
|
||||||
|
OR
|
||||||
|
(
|
||||||
|
E.oprtn_end_dt <![CDATA[ < ]]> TO_CHAR(NOW(), 'YYYYMMDD')
|
||||||
|
AND
|
||||||
|
( SELECT COUNT(1) AS CNT
|
||||||
|
FROM ve_edu_rslt_rprt
|
||||||
|
WHERE edu_aplct_ord = A.edu_aplct_ord )
|
||||||
|
= 0
|
||||||
|
)
|
||||||
|
</isEqual>
|
||||||
|
<isEqual property="searchStateStatusArr[]" compareValue="30">
|
||||||
|
<!-- OR
|
||||||
|
(
|
||||||
|
A.end_oprtn_dt <![CDATA[ < ]]> TO_CHAR(NOW(), 'YYYYMMDD')
|
||||||
|
AND
|
||||||
|
(
|
||||||
|
SELECT
|
||||||
|
CNT
|
||||||
|
FROM
|
||||||
|
( SELECT COUNT(1) AS CNT
|
||||||
|
FROM ve_edu_rslt_rprt
|
||||||
|
WHERE edu_aplct_ord = a.edu_aplct_ord ) AA
|
||||||
|
WHERE AA.CNT <![CDATA[ > ]]> 0
|
||||||
|
)
|
||||||
|
) -->
|
||||||
|
OR
|
||||||
|
(
|
||||||
|
E.oprtn_end_dt <![CDATA[ < ]]> TO_CHAR(NOW(), 'YYYYMMDD')
|
||||||
|
AND
|
||||||
|
( SELECT COUNT(1) AS CNT
|
||||||
|
FROM ve_edu_rslt_rprt
|
||||||
|
WHERE edu_aplct_ord = A.edu_aplct_ord )
|
||||||
|
> 0
|
||||||
|
)
|
||||||
|
</isEqual>
|
||||||
|
<isEqual property="searchStateStatusArr[]" compareValue="40">
|
||||||
|
/* 서류제출완료 */
|
||||||
|
OR(
|
||||||
|
1=1
|
||||||
|
)
|
||||||
|
|
||||||
|
</isEqual>
|
||||||
|
|
||||||
|
</iterate>
|
||||||
|
)
|
||||||
|
</isNotEmpty>
|
||||||
|
|
||||||
|
<isNotEmpty property="searchStateStatusArr">
|
||||||
|
|
||||||
|
|
||||||
|
<iterate property="searchStateStatusArr" >
|
||||||
|
<isEqual property="searchStateStatusArr[]" compareValue="40">
|
||||||
|
/* 서류제출완료 */
|
||||||
|
AND
|
||||||
|
(
|
||||||
|
a.oath_atch_file_id IS NOT NULL
|
||||||
|
OR a.trans_atch_file_id IS NOT null
|
||||||
|
)
|
||||||
|
|
||||||
|
</isEqual>
|
||||||
|
</iterate>
|
||||||
|
</isNotEmpty>
|
||||||
|
|
||||||
|
<isNotEmpty property="searchChsYn">
|
||||||
|
AND A.MDFY_RQST_YN = #searchChsYn#
|
||||||
|
</isNotEmpty>
|
||||||
|
|
||||||
|
<isNotEmpty property="selectPagingListQuery">
|
||||||
|
$selectPagingListQuery$
|
||||||
|
</isNotEmpty>
|
||||||
|
|
||||||
|
<isNotEmpty property="eduAplctOrd">
|
||||||
|
AND A.EDU_APLCT_ORD = #eduAplctOrd#
|
||||||
|
</isNotEmpty>
|
||||||
|
|
||||||
|
<isNotEmpty property="searchStatus2">
|
||||||
|
/* 교육콘텐츠 신청 > 수강신청 목록 셀렉트박스 검색자 */
|
||||||
|
|
||||||
|
|
||||||
|
<isEqual property="searchStatus2" compareValue="90">
|
||||||
|
AND A.APRVL_CD = '20'
|
||||||
|
AND
|
||||||
|
( SELECT COUNT(*)
|
||||||
|
FROM ve_prcs_cmplt_detail a0
|
||||||
|
INNER JOIN ve_prcs b0
|
||||||
|
ON a0.prcs_ord = b0.prcs_ord
|
||||||
|
INNER JOIN ve_prcs_onln_cntnt c0
|
||||||
|
ON c0.prcs_onln_cntnt_ord = a0.prcs_onln_cntnt_ord
|
||||||
|
WHERE 1 =1
|
||||||
|
AND a0.edu_aplct_ord =A.EDU_APLCT_ORD
|
||||||
|
AND NVL(a0.sbmt_yn,'N') ='Y'
|
||||||
|
) > 0
|
||||||
|
</isEqual>
|
||||||
|
<isNotEqual property="searchStatus2" compareValue="90">
|
||||||
|
AND A.APRVL_CD = #searchStatus2#
|
||||||
|
AND 0>=
|
||||||
|
( SELECT COUNT(*)
|
||||||
|
FROM ve_prcs_cmplt_detail a0
|
||||||
|
INNER JOIN ve_prcs b0
|
||||||
|
ON a0.prcs_ord = b0.prcs_ord
|
||||||
|
INNER JOIN ve_prcs_onln_cntnt c0
|
||||||
|
ON c0.prcs_onln_cntnt_ord = a0.prcs_onln_cntnt_ord
|
||||||
|
WHERE 1 =1
|
||||||
|
AND a0.edu_aplct_ord =A.EDU_APLCT_ORD
|
||||||
|
AND NVL(a0.sbmt_yn,'N') ='Y'
|
||||||
|
)
|
||||||
|
</isNotEqual>
|
||||||
|
|
||||||
|
</isNotEmpty>
|
||||||
|
|
||||||
|
<isNotEmpty property="searchYear">
|
||||||
|
/*저작권 체험교실 년도 검색*/
|
||||||
|
AND TO_CHAR(A.SBMT_PNTTM,'YYYY') = #searchYear#
|
||||||
|
</isNotEmpty>
|
||||||
|
|
||||||
|
<isNotEmpty property="eduSlctAreaCd">
|
||||||
|
/*저작권 체험교실 지역 검색*/
|
||||||
|
AND A.EDU_SLCT_AREA_CD = #eduSlctAreaCd#
|
||||||
|
</isNotEmpty>
|
||||||
|
|
||||||
|
<isNotEmpty property="searchCpyAprvlCd">
|
||||||
|
/*저작권 체험교실 상태 검색*/
|
||||||
|
AND A.APRVL_CD = #searchCpyAprvlCd#
|
||||||
|
</isNotEmpty>
|
||||||
|
|
||||||
|
<isNotEmpty property="searchFullName">
|
||||||
|
/*교육콘텐츠 신청자 검색*/
|
||||||
|
AND (
|
||||||
|
/*
|
||||||
|
A.FULL_NAME like '%' || searchFullName || '%'
|
||||||
|
OR A.BLNG like concat('%', searchFullName, '%')
|
||||||
|
*/
|
||||||
|
A.FULL_NAME like '%'||#searchFullName#||'%'
|
||||||
|
OR A.BLNG like '%'||#searchFullName#||'%'
|
||||||
|
)
|
||||||
|
|
||||||
|
</isNotEmpty>
|
||||||
|
|
||||||
|
<isEqual property="searchAdminUpdtYn" compareValue="Y">
|
||||||
|
AND A.ADMIN_UPDT_YN = 'Y'
|
||||||
|
</isEqual>
|
||||||
|
|
||||||
|
/*
|
||||||
|
ORDER BY 1=1
|
||||||
|
*/
|
||||||
|
ORDER BY 1
|
||||||
|
<isNotEmpty property="orderByQuery">
|
||||||
|
, $orderByQuery$
|
||||||
|
</isNotEmpty>
|
||||||
|
<isNotEqual property="mode" compareValue="EXCEL">
|
||||||
|
/*
|
||||||
|
LIMIT recordCountPerPage OFFSET firstIndex
|
||||||
|
*/
|
||||||
|
OFFSET #firstIndex# ROWS FETCH NEXT #recordCountPerPage# ROWS ONLY;
|
||||||
|
</isNotEqual>
|
||||||
|
</select>
|
||||||
|
|
||||||
<!-- 성인 찾아가는 저작권교육 교육배치확정관리 목록 -->
|
<!-- 성인 찾아가는 저작권교육 교육배치확정관리 목록 -->
|
||||||
<select id="VEEduMIXDAO.selectAdultPagingList" parameterClass="VEEduAplctVO" resultClass="VEEduAplctVO">
|
<select id="VEEduMIXDAO.selectAdultPagingList" parameterClass="VEEduAplctVO" resultClass="VEEduAplctVO">
|
||||||
/* VEEduMIXDAO.selectAdultPagingList */
|
/* VEEduMIXDAO.selectAdultPagingList */
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user