
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
File name
Commit message
Commit date
<?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">
<!--
작성자 : 김성훈
작성일 : 2023.11.08
내용 : Matching 관련 SQL 입니다.
-->
<mapper namespace="kr.co.takensoft.keris.matching.dao.MatchingDAO">
<!-- resultMap sample
<resultMap id="CrawlingSiteResult" type="CrawlingSite">
<result property="crawlingSiteSeq" column="crawling_site_seq"/>
<result property="site" column="site"/>
<collection property="CrawlingChannels" column="{crawlingSiteSeq = crawling_site_seq}" javaType="java.util.ArrayList" ofType="CrawlingChannel" select="getCrawlingChannelList" />
</resultMap> -->
<!-- **************************************** 공지 사항 (시작) **************************************** -->
<!--
작성자 : 김성훈
작성일 : 2023.11.08
내용 : 기업 목록 SQL
-->
<!-- <select id="companySelectList" parameterType="HashMap" resultType="HashMap">-->
<!-- SELECT-->
<!-- a.company_id-->
<!-- , company_nm-->
<!-- , company_info-->
<!-- , company_point-->
<!-- , a.use_yn-->
<!-- , file_id-->
<!-- , a.user_id-->
<!-- , keyword-->
<!-- , company_pick_cnt-->
<!-- , company_technology-->
<!-- , company_service-->
<!-- , view_cnt-->
<!-- , company_simple_info-->
<!-- , ( SELECT EXISTS (SELECT networking_sn-->
<!-- FROM networking-->
<!-- where networking_from_id = #{from_id}-->
<!-- and networking_to_id = a.company_id-->
<!-- and use_yn = 'Y')) as pick_yn-->
<!-- FROM-->
<!-- company_users a-->
<!-- JOIN-->
<!-- users-->
<!-- ON-->
<!-- a.user_id = users.user_id-->
<!-- WHERE-->
<!-- a.use_yn = 'Y'-->
<!-- AND-->
<!-- create_account_approval = 'Y'-->
<!-- ORDER BY company_nm-->
<!-- </select>-->
<select id="companySelectList" parameterType="HashMap" resultType="HashMap">
SELECT
a.company_id
, company_nm
, company_info
, company_point
, a.use_yn
, file_id
, a.user_id
, keyword
, company_pick_cnt
, company_technology
, company_service
, view_cnt
, company_simple_info
, ( SELECT EXISTS (SELECT networking_dt
FROM networking
where networking_from_id = #{from_id}
AND networking_to_id = a.company_id
AND use_yn = 'Y'
AND refuse_yn = 'N'
UNION ALL
SELECT complete_dt
FROM networking_complete
WHERE company_id_1 = #{from_id}
AND company_id_2 = a.company_id
AND use_yn = 'Y' )) as pick_yn
FROM
company_users a
JOIN
users
ON
a.user_id = users.user_id
WHERE
a.use_yn = 'Y'
AND
create_account_approval = 'Y'
<if test="searchType != null and searchType != '' and searchText != null and searchText != ''">
<choose>
<when test="searchType == 'company_name'">
AND company_nm LIKE CONCAT('%', #{searchText}, '%')
</when>
</choose>
</if>
<if test="selectedKeywords != null and selectedKeywords.size() > 0">
AND (
<foreach item="item" index="index" collection="selectedKeywords" open="(" separator="AND" close=")">
keyword LIKE CONCAT('%', #{item}, '%')
</foreach>
)
</if>
ORDER BY company_nm
OFFSET #{pagingRowIndex} LIMIT #{perPage}
</select>
<!--
작성자 : 김성훈
작성일 : 2023.11.08
내용 : 기업 TOP6 목록 SQL
-->
<select id="companySelectTop6List" parameterType="String" resultType="HashMap">
SELECT
company_id
, company_nm
, company_info
, company_point
, a.use_yn
, file.file_id
, user_id
, keyword
, company_pick_cnt
, company_technology
, company_service
, company_simple_info
, view_cnt
, file_path
, file_nm
, file_extn_nm
, ( SELECT EXISTS (SELECT networking_dt
FROM networking
WHERE networking_from_id = #{from_id}
AND networking_to_id = a.company_id
AND use_yn = 'Y'
AND refuse_yn = 'N'
UNION ALL
SELECT complete_dt
FROM networking_complete
WHERE company_id_1 = #{from_id}
AND company_id_2 = a.company_id
AND use_yn = 'Y')) as pick_yn
FROM
company_users a
JOIN
file
ON
a.file_id = file.file_id
WHERE
file_ty = 'logo'
AND
file.use_yn = 'Y'
AND
a.use_yn = 'Y'
AND
a.company_pick_cnt > 0
ORDER BY company_pick_cnt DESC, view_cnt DESC, company_matching_cnt DESC, company_nm
OFFSET 0 LIMIT 6
</select>
<!--
작성자 : 김성훈
작성일 : 2023.11.08
내용 : 기업 목록 COUNT SQL
-->
<select id="companySelectListCount" parameterType="HashMap" resultType="int">
SELECT
COUNT(*) as count
FROM
company_users a
JOIN
users
ON
a.user_id = users.user_id
WHERE
a.use_yn = 'Y'
AND
create_account_approval = 'Y'
<if test="searchType != null and searchType != '' and searchText != null and searchText != ''">
<choose>
<when test="searchType == 'company_name'">
AND company_nm LIKE CONCAT('%', #{searchText}, '%')
</when>
</choose>
</if>
<if test="selectedKeywords != null and selectedKeywords.size() > 0">
AND (
<foreach item="item" index="index" collection="selectedKeywords" open="(" separator="AND" close=")">
keyword LIKE CONCAT('%', #{item}, '%')
</foreach>
)
</if>
</select>
<!--
작성자 : 김성훈
작성일 : 2023.11.08
내용 : 기업 상세 조회 SQL
-->
<select id="companySelectOne" parameterType="HashMap" resultType="HashMap">
SELECT
company_id
, company_nm
, company_info
, company_point
, file.file_id
, user_id
, keyword
, company_pick_cnt
, company_technology
, company_service
, company_hp_url
, view_cnt
, file_path
, file_nm
, real_file_nm
, file_extn_nm
, ( SELECT EXISTS (SELECT networking_dt
FROM networking
where networking_from_id = #{userCompanyId}
and networking_to_id = #{company_id}
and use_yn = 'Y'
and refuse_yn = 'N'
UNION ALL
SELECT complete_dt
FROM networking_complete
WHERE company_id_1 = #{userCompanyId}
AND company_id_2 = #{company_id}
AND use_yn = 'Y')) as pick_yn
FROM
company_users
JOIN
file
ON
company_users.file_id = file.file_id
WHERE
company_id = #{company_id}
AND
file_ty = 'profile'
AND
file.use_yn = 'Y'
</select>
<!--
작성자 : 김성훈
작성일 : 2023.11.08
내용 : 기업 조회수 올리기
-->
<update id="companyViewCountAdd" parameterType="HashMap">
UPDATE
company_users
SET
view_cnt = view_cnt + 1
WHERE
company_id = #{company_id}
</update>
<!--
작성자 : 김성훈
작성일 : 2023.11.28
내용 : 기업 조회수 로그 등록
-->
<insert id="companyViewLogInsert" parameterType="HashMap">
INSERT INTO company_view_log (
company_id
, view_dt
, user_auth
, user_id
) VALUES (
#{company_id}
, CURRENT_TIMESTAMP
, #{user_auth}
, #{user_id}
)
</insert>
<!--
작성자 : 김성훈
작성일 : 2023.11.08
내용 : PICK 신청
-->
<insert id="pick" parameterType="HashMap">
INSERT INTO networking (
networking_from_id
, networking_to_id
, networking_dt
, use_yn
, refuse_yn
, networking_sn
) VALUES (
#{from_id}
, #{company_id}
, CURRENT_TIMESTAMP
, 'Y'
, 'N'
, #{networking_sn}
)
</insert>
<!--
작성자 : 김성훈
작성일 : 2023.11.08
내용 : PICK 수 올리기
-->
<update id="pickCountAdd" parameterType="String">
UPDATE
company_users
SET
company_pick_cnt = company_pick_cnt + 1
WHERE
company_id = #{company_id}
</update>
<!--
작성자 : 김성훈
작성일 : 2023.11.09
내용 : PICK 수 빼기
-->
<update id="pickCountSubtract" parameterType="String">
UPDATE
company_users
SET
company_pick_cnt = company_pick_cnt - 1
WHERE
company_id = #{company_id}
</update>
<!--
작성자 : 김성훈
작성일 : 2023.11.08
내용 : PICK 신청 취소
-->
<update id="pickCancel" parameterType="HashMap">
UPDATE
networking
SET
use_yn = 'N'
WHERE
networking_from_id = #{from_id}
AND
networking_to_id = #{company_id}
AND
use_yn = 'Y'
AND
refuse_yn = 'N'
</update>
<!--
작성자 : 김성훈
작성일 : 2023.11.12
내용 : PICK 거절 SQL
-->
<update id="pickRefusal" parameterType="HashMap">
UPDATE
networking
SET
refuse_yn = 'Y'
WHERE
networking_from_id = #{networking_from_id}
AND
networking_to_id = #{networking_to_id}
AND
networking_sn = #{networking_sn}
AND
use_yn = 'Y'
</update>
<!--
작성자 : 김성훈
작성일 : 2023.11.12
내용 : PICK 취소 여부 체크 SQL
-->
<select id="pickCancelCheck" parameterType="HashMap" resultType="boolean">
SELECT EXISTS (
SELECT
networking_sn
FROM
networking
WHERE
networking_from_id = #{networking_from_id}
AND
networking_to_id = #{networking_to_id}
AND
networking_sn = #{networking_sn}
AND
use_yn = 'N'
)
</select>
<!--
작성자 : 김성훈
작성일 : 2023.11.08
내용 : PICK 여부 체크 SQL
-->
<select id="pickCheck" parameterType="HashMap" resultType="boolean">
SELECT EXISTS (
SELECT
networking_from_id
FROM
networking
WHERE
networking_from_id = #{company_id}
AND
networking_to_id = #{from_id}
AND
use_yn = 'Y'
AND
refuse_yn = 'N'
)
</select>
<!--
작성자 : 김성훈
작성일 : 2023.11.08
내용 : PICK 완료 여부 체크 SQL
-->
<select id="pickCompleteCheck" parameterType="HashMap" resultType="boolean">
SELECT EXISTS (
SELECT
complete_dt
FROM
networking_complete
WHERE
company_id_1 = #{company_id}
AND
company_id_2 = #{from_id}
AND
use_yn = 'Y'
OR
company_id_1 = #{from_id}
AND
company_id_2 = #{company_id}
AND
use_yn = 'Y'
)
</select>
<!--
작성자 : 김성훈
작성일 : 2023.11.08
내용 : PICK 완료
-->
<insert id="pickComplete" parameterType="HashMap">
INSERT INTO networking_complete (
company_id_1
, company_id_2
, complete_dt
, use_yn
) VALUES (
#{from_id}
, #{company_id}
, CURRENT_TIMESTAMP
, 'Y'
)
</insert>
<!--
작성자 : 김성훈
작성일 : 2023.11.08
내용 : 유저ID로 기업ID 찾기
-->
<select id="companyIdFind" parameterType="String" resultType="String">
SELECT
company_id
FROM
company_users
WHERE
user_id = #{user_id}
AND
use_yn = 'Y'
</select>
<!--
작성자 : 김성훈
작성일 : 2023.11.09
내용 : 나의 기업에 PICK 누른 기업 조회 SQL
-->
<select id="pickSelectList" parameterType="HashMap" resultType="HashMap">
SELECT
company_id
, company_nm
, file.file_id
, file_path
, file_nm
, file_extn_nm
, ( SELECT EXISTS ( SELECT company_id_1
FROM networking_complete
WHERE company_id_1 = #{userCompanyId}
AND company_id_2 = company_id )) AS pick_yn
, networking_dt
FROM
networking
JOIN
company_users
ON
networking.networking_from_id = company_users.company_id
JOIN
file
ON
company_users.file_id = file.file_id
WHERE
networking_to_id = #{userCompanyId}
AND
file_ty = 'logo'
AND
file.use_yn = 'Y'
AND
networking.use_yn = 'Y'
AND
networking.refuse_yn = 'N'
UNION ALL
SELECT
company_id
, company_nm
, file.file_id
, file_path
, file_nm
, file_extn_nm
, true AS pick_yn
, networking_dt
FROM
(SELECT company_id_1, company_id_2, complete_dt AS networking_dt, use_yn
FROM networking_complete) as networking_complete
JOIN
company_users
ON
networking_complete.company_id_1 = company_users.company_id
JOIN
file
ON
company_users.file_id = file.file_id
WHERE
company_id_2 = #{userCompanyId}
AND
file_ty = 'logo'
AND
file.use_yn = 'Y'
AND
networking_complete.use_yn = 'Y'
ORDER BY pick_yn, networking_dt DESC
</select>
<!--
작성자 : 김성훈
작성일 : 2023.11.12
내용 : MATCHING 신청
-->
<insert id="matching" parameterType="HashMap">
INSERT INTO matching_info (
matching_from_id
, matching_to_id
, matching_dt
, use_yn
, refuse_yn
, matching_sn
, complete_cancel_yn
) VALUES (
#{from_id}
, #{company_id}
, CURRENT_TIMESTAMP
, 'Y'
, 'N'
,#{matching_sn}
, 'N'
)
</insert>
<!--
작성자 : 김성훈
작성일 : 2023.11.12
내용 : MATCHING 수 올리기
-->
<update id="matchingCountAdd" parameterType="String">
UPDATE
company_users
SET
company_matching_cnt = company_matching_cnt + 1
WHERE
company_id = #{company_id}
</update>
<!--
작성자 : 김성훈
작성일 : 2023.11.12
내용 : MATCHING 신청 취소
-->
<update id="matchingCancel" parameterType="HashMap">
UPDATE
matching_info
SET
use_yn = 'N'
WHERE
matching_from_id = #{from_id}
AND
matching_to_id = #{company_id}
AND
use_yn = 'Y'
AND
refuse_yn = 'N'
</update>
<!--
작성자 : 김성훈
작성일 : 2023.11.12
내용 : MATCHING 초기화
-->
<update id="matchingReset" parameterType="HashMap">
UPDATE
matching_info
SET
use_yn = 'N'
, complete_cancel_yn = 'Y'
WHERE
matching_from_id = #{company_id_2}
AND
matching_to_id = #{company_id_1}
AND
use_yn = 'Y'
AND
refuse_yn = 'N'
AND
complete_cancel_yn = 'N'
</update>
<!--
작성자 : 김성훈
작성일 : 2023.11.13
내용 : MATCHING 완료 초기화
-->
<update id="matchingCompleteReset" parameterType="HashMap">
UPDATE
matching_complete
SET
use_yn = 'N'
WHERE
company_id_1 = #{company_id_1}
AND
company_id_2 = #{company_id_2}
AND
complete_sn = #{complete_sn}
AND
use_yn = 'Y'
</update>
<!--
작성자 : 김성훈
작성일 : 2023.11.12
내용 : MATCHING 수 빼기
-->
<update id="matchingCountSubtract" parameterType="String">
UPDATE
company_users
SET
company_matching_cnt = company_matching_cnt - 1
WHERE
company_id = #{company_id}
</update>
<!--
작성자 : 김성훈
작성일 : 2023.11.12
내용 : MATCHING 완료 여부 체크 SQL
-->
<select id="matchingCompleteCheck" parameterType="HashMap" resultType="boolean">
SELECT EXISTS (
SELECT
matching_from_id
FROM
matching_info
WHERE
matching_from_id = #{company_id}
AND
matching_to_id = #{from_id}
AND
use_yn = 'Y'
AND
refuse_yn = 'N'
)
</select>
<!--
작성자 : 김성훈
작성일 : 2023.11.12
내용 : MATCHING 완료
-->
<insert id="matchingComplete" parameterType="HashMap">
INSERT INTO matching_complete (
company_id_1
, company_id_2
, complete_dt
, use_yn
, complete_sn
) VALUES (
#{from_id}
, #{company_id}
, CURRENT_TIMESTAMP
, 'Y'
, #{complete_sn}
)
</insert>
<!--
작성자 : 김성훈
작성일 : 2023.11.13
내용 : MATCHING 취소 여부 체크 SQL
-->
<select id="matchingCheck" parameterType="HashMap" resultType="boolean">
SELECT EXISTS (
SELECT
matching_sn
FROM
matching_info
WHERE
matching_from_id = #{matching_from_id}
AND
matching_to_id = #{matching_to_id}
AND
matching_sn = #{matching_sn}
AND
use_yn = 'N'
)
</select>
<!--
작성자 : 김성훈
작성일 : 2023.11.13
내용 : MATCHING 거절 SQL
-->
<update id="matchingRefusal" parameterType="HashMap">
UPDATE
matching_info
SET
refuse_yn = 'Y'
WHERE
matching_from_id = #{matching_from_id}
AND
matching_to_id = #{matching_to_id}
AND
matching_sn = #{matching_sn}
AND
use_yn = 'Y'
</update>
<!--
작성자 : 김성훈
작성일 : 2023.11.08
내용 : 관리자 기업 목록 SQL
-->
<select id="companySelectListForAdmin" parameterType="HashMap" resultType="HashMap">
SELECT
a.company_id
, company_nm
, company_info
, company_point
, a.use_yn
, file_id
, a.user_id
, keyword
, company_pick_cnt
, company_technology
, company_service
, view_cnt
, company_simple_info
, user_reg_dt
FROM
company_users a
JOIN
users
ON
a.user_id = users.user_id
WHERE
a.use_yn = 'Y'
AND
create_account_approval = 'Y'
<if test="searchType != null and searchType != '' and searchText != null and searchText != ''">
<choose>
<when test="searchType == 'company_name'">
AND company_nm LIKE CONCAT('%', #{searchText}, '%')
</when>
</choose>
</if>
<choose>
<when test="sort == 'desc'">
ORDER BY user_reg_dt DESC
</when>
<when test="sort == 'pick'">
ORDER BY company_pick_cnt DESC
</when>
<when test="sort == 'view'">
ORDER BY view_cnt DESC
</when>
<otherwise>
ORDER BY company_nm
</otherwise>
</choose>
OFFSET #{pagingRowIndex} LIMIT #{perPage};
</select>
<!--
작성자 : 김성훈
작성일 : 2023.11.08
내용 : 관리자 기업 목록COUNT SQL
-->
<select id="companySelectCountForAdmin" parameterType="HashMap">
SELECT
COUNT(*)
FROM
company_users a
JOIN
users
ON
a.user_id = users.user_id
WHERE
a.use_yn = 'Y'
AND
create_account_approval = 'Y'
<if test="searchType != null and searchType != '' and searchText != null and searchText != ''">
<choose>
<when test="searchType == 'all'">
AND
(company_nm LIKE CONCAT('%', #{searchText}, '%')
OR
a.user_id LIKE CONCAT('%', #{searchText}, '%'))
</when>
<when test="searchType == 'company_name'">
AND company_nm LIKE CONCAT('%', #{searchText}, '%')
</when>
</choose>
</if>
</select>
<!-- **************************************** 공지 사항 (종료) **************************************** -->
</mapper>