MdeJobAdvertisedMapper.xml 53 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465
  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  3. <mapper namespace="MdeJobAdvertisedMapper">
  4. <resultMap type="com.wechat.model.dbEntity.MdeJobAdvertised" id="MdeJobAdvertised">
  5. <id column="job_id" property="jobId"/>
  6. <result column="publisher" property="publisher"/>
  7. <result column="job_name" property="jobName"/>
  8. <result column="position_id" property="positionId"/>
  9. <result column="add_province" property="addProvince"/>
  10. <result column="add_city" property="addCity"/>
  11. <result column="add_area" property="addArea"/>
  12. <result column="add_detail" property="addDetail"/>
  13. <result column="add_longitude" property="addLongitude"/>
  14. <result column="add_latitude" property="addLatitude"/>
  15. <result column="work_experience" property="workExperience"/>
  16. <result column="education" property="education"/>
  17. <result column="job_describe" property="jobDescribe"/>
  18. <result column="job_status" property="jobStatus"/>
  19. <result column="recommend_flag" property="recommendFlag"/>
  20. <result column="version_no" property="versionNo"/>
  21. <result column="remarks" property="remarks"/>
  22. <result column="del_flag" property="delFlag"/>
  23. <result column="create_by" property="createBy"/>
  24. <result column="create_date" property="createDate"/>
  25. <result column="update_by" property="updateBy"/>
  26. <result column="update_date" property="updateDate"/>
  27. <result column="job_requirement" property="jobRequirement"/>
  28. <result column="job_invitation" property="jobInvitation"/>
  29. <result column="pay_from" property="payFrom"/>
  30. <result column="pay_to" property="payTo"/>
  31. <result column="contact_information" property="contactInformation"/>
  32. <!-- 酒店名称 -->
  33. <result column="publisher_name" property="publisherName"/>
  34. <result column="foreign_name" property="foreignName"/>
  35. <result column="identity_flag" property="identityFlag"/>
  36. <result column="RECOMMEND_FLAG" property="recommendFlag"/>
  37. <result column="PREPARE_FLAG" property="prepareFlag"/>
  38. <result column="PREPARE_YEAR" property="prepareYear"/>
  39. <result column="PREPARE_QUARTER" property="prepareQuarter"/>
  40. </resultMap>
  41. <resultMap type="com.wechat.model.dbEntity.MdeJobAdvertised" id="mdeJobAdvertisedJoin">
  42. <id column="job_id" property="jobId"/>
  43. <result column="job_name" property="jobName"/>
  44. <collection property="userCodeList" ofType="com.wechat.model.dbEntity.MdeJobInvitationRel">
  45. <result column="USER_CODE" property="userCode"/>
  46. </collection>
  47. </resultMap>
  48. <resultMap type="com.wechat.model.dbEntity.MdeJobAdvertised" id="mdePositionCvRelMap">
  49. <id column="job_id" property="jobId"/>
  50. <result column="job_name" property="jobName"/>
  51. <collection property="userCodeList" ofType="com.wechat.model.dbEntity.MdeJobInvitationRel">
  52. <result column="USER_CODE" property="userCode"/>
  53. </collection>
  54. </resultMap>
  55. <sql id="mdeJobAdvertisedColumns">
  56. a.job_id AS "jobId",
  57. a.publisher AS "publisher",
  58. a.job_name AS "jobName",
  59. a.position_id AS "positionId",
  60. a.add_province AS "addProvince",
  61. a.add_city AS "addCity",
  62. a.add_area AS "addArea",
  63. a.add_detail AS "addDetail",
  64. a.add_longitude AS "addLongitude",
  65. a.add_latitude AS "addLatitude",
  66. a.work_experience AS "workExperience",
  67. a.education AS "education",
  68. a.job_describe AS "jobDescribe",
  69. a.job_status AS "jobStatus",
  70. a.RECOMMEND_FLAG AS "recommendFlag",
  71. a.pay_from AS "payFrom",
  72. a.pay_to AS "payTo",
  73. a.version_no AS "versionNo",
  74. a.remarks AS "remarks",
  75. a.del_flag AS "delFlag",
  76. a.create_by AS "createBy",
  77. a.create_date AS "createDate",
  78. a.update_by AS "updateBy",
  79. a.update_date AS "updateDate",
  80. a.job_requirement AS "jobRequirement",
  81. a.job_invitation AS "jobInvitation",
  82. a.contact_information AS "contactInformation"
  83. </sql>
  84. <sql id="userColumJoin">
  85. ,u.name AS "publisherName"
  86. ,u.head_portrait AS "headPortrait"
  87. ,u.foreign_name as "foreignName"
  88. ,u.PREPARE_FLAG as prepareFlag
  89. ,u.identity_flag as "identityFlag"
  90. </sql>
  91. <sql id="areaColumJoin">
  92. <choose>
  93. <when test="lang == 'en'.toString()">
  94. ,s1.name_en as addProvinceName,s2.name_en as addCityName,s3.name_en as addAreaName
  95. </when>
  96. <otherwise>
  97. ,s1.name as addProvinceName,s2.name as addCityName,s3.name as addAreaName
  98. </otherwise>
  99. </choose>
  100. </sql>
  101. <sql id="userLeftJoin">
  102. inner join mde_user u on u.user_code = a.publisher and u.del_flag=0
  103. </sql>
  104. <sql id="arealeftJoin">
  105. inner JOIN sys_area s1 ON a.ADD_PROVINCE = s1.code
  106. inner JOIN sys_area s2 ON a.ADD_CITY = s2.code
  107. LEFT JOIN sys_area s3 ON a.ADD_AREA = s3.code
  108. </sql>
  109. <!-- 已发职位 or 已发职位的关键词检索 表连接 -->
  110. <sql id="mdeJobAdvertisedJoinCommon">
  111. LEFT JOIN (
  112. SELECT
  113. rel.POS_ID,
  114. COUNT( rel.INTV_ID ) AS cvNum,
  115. min( rel.CV_STATUS ) AS newFlag
  116. FROM
  117. mde_position_cv_rel rel
  118. INNER JOIN mde_user u ON u.USER_CODE = rel.CANDIDATE
  119. WHERE
  120. rel.PUBLISHER = #{userCode}
  121. AND u.DEL_FLAG = 0
  122. GROUP BY
  123. rel.POS_ID
  124. ) rel2 ON ad.JOB_ID = rel2.POS_ID
  125. LEFT JOIN sys_dict s ON s.`value` = ad.WORK_EXPERIENCE
  126. LEFT JOIN sys_dict edu ON edu.`value` = ad.education
  127. LEFT JOIN sys_area s1 ON ad.ADD_PROVINCE = s1.CODE
  128. LEFT JOIN sys_area s2 ON ad.ADD_CITY = s2.CODE
  129. LEFT JOIN mde_position p ON ad.POSITION_ID = p.POSITION_ID
  130. WHERE
  131. ad.DEL_FLAG = 0
  132. AND ad.PUBLISHER = #{userCode}
  133. AND s.type = 'job_year'
  134. AND edu.type = 'education'
  135. AND p.DEL_FLAG =0
  136. </sql>
  137. <!-- 已发职位 or 已发职位的关键词检索 select -->
  138. <sql id="mdeJobAdvertisedSelectCommon">
  139. ad.JOB_NAME AS jobName,
  140. ad.JOB_ID As jobId,
  141. ad.RECOMMEND_FLAG as recommendFlag,
  142. ad.PAY_FROM as payFrom,
  143. ad.PAY_TO as payTo,
  144. <choose>
  145. <when test="lang=='en'.toString()">
  146. s.en as workExperience,
  147. edu.en AS education,
  148. s1.name_en as addProvinceName,s2.name_en as addCityName,
  149. p.POSITION_NAME_EN as positionName,
  150. </when>
  151. <otherwise>
  152. s.label AS workExperience,
  153. edu.label AS education,
  154. s1.name as addProvinceName,s2.name as addCityName,
  155. p.POSITION_NAME_CN as positionName,
  156. </otherwise>
  157. </choose>
  158. p.POSITION_ID as positionId,
  159. ad.UPDATE_DATE AS publishDate,
  160. ad.JOB_STATUS AS jobStatus,
  161. rel2.cvNum AS cvNum,
  162. IFNULL( rel2.newFlag, 9 ) AS newFlag
  163. </sql>
  164. <!-- 获取职位信息 -->
  165. <select id="get" resultMap="MdeJobAdvertised">
  166. SELECT
  167. <include refid="mdeJobAdvertisedColumns"/>
  168. <include refid="userColumJoin">
  169. </include>
  170. <include refid="areaColumJoin">
  171. </include>
  172. ,u.PREPARE_YEAR as prepareYear
  173. ,u.PREPARE_QUARTER as prepareQuarter
  174. FROM mde_job_advertised a
  175. <include refid="userLeftJoin"/><!-- mde_user u -->
  176. <include refid="arealeftJoin">
  177. </include>
  178. WHERE a.job_id = #{id}
  179. and a.del_flag=0
  180. </select>
  181. <!-- 更加id获取职位信息 -->
  182. <select id="getInfoById" resultType="com.wechat.model.dbEntity.MdeJobAdvertisedEntity">
  183. SELECT
  184. <include refid="mdeJobAdvertisedColumns"/>
  185. FROM mde_job_advertised a
  186. WHERE a.job_id = #{id}
  187. </select>
  188. <!-- 获取职位信息 -->
  189. <select id="getInfoByIds" resultType="com.wechat.model.dto.ShowOfJobsDto">
  190. SELECT
  191. a.job_id AS "jobId",
  192. a.publisher AS "publisher",
  193. a.job_name AS "jobName",
  194. a.position_id AS "positionId",
  195. a.job_name as "positionName",
  196. pos.REMARKS as "abbreviation",
  197. a.work_experience AS "workExperience",
  198. a.education AS "education",
  199. a.job_describe AS "jobDescribe",
  200. a.job_requirement AS "jobRequirement",
  201. a.PAY_FROM as payFrom,
  202. a.PAY_TO as payTo,
  203. a.create_date AS "createDate",
  204. a.job_invitation AS "jobInvitation"
  205. ,s1.name as addProvinceName
  206. ,s2.name as addCityName
  207. ,s3.name as addAreaName
  208. FROM mde_job_advertised a
  209. <include refid="arealeftJoin">
  210. </include>
  211. inner join mde_position pos
  212. on a.position_id = pos.position_id
  213. WHERE a.JOB_STATUS = "0"
  214. and a.job_id in
  215. <foreach collection="idList" item="item" separator="," open="(" close=")">
  216. #{item}
  217. </foreach>
  218. order by pos.POSITION_GRADE
  219. </select>
  220. <insert id="insert">
  221. INSERT INTO mde_job_advertised(
  222. publisher,
  223. job_name,
  224. position_id,
  225. add_province,
  226. add_city,
  227. add_area,
  228. add_detail,
  229. add_longitude,
  230. add_latitude,
  231. work_experience,
  232. education,
  233. job_describe,
  234. remarks,
  235. create_by,
  236. create_date,
  237. update_by,
  238. update_date,
  239. <if test="recommendFlag != null and recommendFlag != ''">
  240. recommend_flag,
  241. </if>
  242. <if test="payFrom != null and payFrom != 0">
  243. pay_from,
  244. </if>
  245. <if test="payTo != null and payTo != 0">
  246. pay_to,
  247. </if>
  248. job_requirement,
  249. job_invitation,
  250. contact_information
  251. ) VALUES (
  252. #{publisher},
  253. #{jobName},
  254. #{positionId},
  255. #{addProvince},
  256. #{addCity},
  257. #{addArea},
  258. #{addDetail},
  259. #{addLongitude},
  260. #{addLatitude},
  261. #{workExperience},
  262. #{education},
  263. #{jobDescribe},
  264. #{remarks},
  265. #{createBy},
  266. #{createDate},
  267. #{updateBy},
  268. #{updateDate},
  269. <if test="recommendFlag != null and recommendFlag != ''">
  270. #{recommendFlag},
  271. </if>
  272. <if test="payFrom != null and payFrom != 0">
  273. #{payFrom},
  274. </if>
  275. <if test="payTo != null and payTo != 0">
  276. #{payTo},
  277. </if>
  278. #{jobRequirement},
  279. #{jobInvitation},
  280. #{contactInformation}
  281. )
  282. </insert>
  283. <update id="update">
  284. UPDATE mde_job_advertised SET
  285. <if test="publisher != null and publisher != ''">
  286. publisher = #{publisher},
  287. </if>
  288. <if test="jobName != null and jobName != ''">
  289. job_name = #{jobName},
  290. </if>
  291. <if test="positionId != null and positionId != ''">
  292. position_id = #{positionId},
  293. </if>
  294. <if test="addProvince != null and addProvince != ''">
  295. add_province = #{addProvince},
  296. </if>
  297. <if test="addCity != null and addCity != ''">
  298. add_city = #{addCity},
  299. </if>
  300. add_area = #{addArea},
  301. add_detail = #{addDetail},
  302. <if test="addLongitude != null and addLongitude != ''">
  303. add_longitude = #{addLongitude},
  304. </if>
  305. <if test="addLatitude != null and addLatitude != ''">
  306. add_latitude = #{addLatitude},
  307. </if>
  308. <if test="workExperience != null and workExperience != ''">
  309. work_experience = #{workExperience},
  310. </if>
  311. <if test="education != null and education != ''">
  312. education = #{education},
  313. </if>
  314. <if test="jobDescribe != null and jobDescribe != ''">
  315. job_describe = #{jobDescribe},
  316. </if>
  317. <if test="jobStatus != null and jobStatus != ''">
  318. job_status = #{jobStatus},
  319. </if>
  320. <if test="remarks != null and remarks != ''">
  321. remarks = #{remarks},
  322. </if>
  323. <if test="recommendFlag != null and recommendFlag != ''">
  324. recommend_flag = #{recommendFlag},
  325. </if>
  326. pay_from = #{payFrom},
  327. pay_to = #{payTo},
  328. <if test="updateBy != null and updateBy != ''">
  329. update_by = #{updateBy},
  330. </if>
  331. <if test="updateDate != null">
  332. update_date = #{updateDate},
  333. </if>
  334. <if test="createDate != null">
  335. create_date = #{createDate},
  336. </if>
  337. <if test="jobRequirement != null and jobRequirement != ''">
  338. job_requirement = #{jobRequirement},
  339. </if>
  340. <if test="jobInvitation != null and jobInvitation != ''">
  341. job_invitation = #{jobInvitation},
  342. </if>
  343. <if test="contactInformation !=null and contactInformation != ''">
  344. contact_information = #{contactInformation},
  345. </if>
  346. version_no = version_no +1
  347. WHERE job_id = #{jobId}
  348. <if test="versionNo !=null and versionNo != ''">
  349. and version_no = #{versionNo}
  350. </if>
  351. </update>
  352. <update id="delete">
  353. UPDATE mde_job_advertised
  354. SET version_no = version_no + 1,
  355. del_flag = #{DEL_FLAG_DELETE}
  356. WHERE job_id = #{id}
  357. and version_no = #{versionNo}
  358. </update>
  359. <!-- 推荐职位 (已登录) -->
  360. <select id="getRecommentJobs" resultMap="MdeJobAdvertised">
  361. <![CDATA[
  362. SET @num = 0;
  363. SET @cont = 0;
  364. SET @publisher = '';
  365. SELECT m.JOB_ID,
  366. m.PUBLISHER,
  367. m.row_number,
  368. m.JOB_NAME,
  369. m.ADD_PROVINCE,
  370. s1.`name` AS addProvinceName,
  371. s2.`name` AS addCityName,
  372. s3.`name` AS addAreaName,
  373. m.ADD_CITY,
  374. m.ADD_AREA,
  375. m.ADD_DETAIL,
  376. m.JOB_DESCRIBE,
  377. m.CREATE_DATE,
  378. m.UPDATE_DATE,
  379. m.publisher_name,
  380. m.PREPARE_FLAG,
  381. m.headPortrait,
  382. m.PAY_FROM,
  383. m.PAY_TO,
  384. m.foreignName
  385. FROM (SELECT base.*,
  386. CASE
  387. WHEN @publisher = base.PUBLISHER
  388. THEN @num := @num + 1
  389. ELSE @num := 1
  390. END row_number,
  391. @publisher := base.PUBLISHER,
  392. @cont := @cont + 1
  393. FROM
  394. (
  395. SELECT
  396. a.JOB_ID, a.PUBLISHER, a.JOB_NAME, a.ADD_PROVINCE, a.ADD_CITY, a.ADD_AREA, a.ADD_DETAIL, a.JOB_DESCRIBE, a.CREATE_DATE, a.UPDATE_DATE, a.PAY_FROM, a.PAY_TO, u.`NAME` AS publisher_name, u.PREPARE_FLAG, u.head_portrait AS headPortrait, u.foreign_name AS foreignName
  397. FROM
  398. mde_job_advertised a
  399. INNER JOIN mde_user u ON u.USER_CODE = a.PUBLISHER
  400. AND u.VIP_FLAG != 0
  401. WHERE
  402. a.job_status = 0
  403. and a.RECOMMEND_FLAG = '1'
  404. AND date ( a.UPDATE_DATE ) > DATE_SUB( CURDATE( ), INTERVAL 3 MONTH )
  405. ORDER BY
  406. RAND( )
  407. ) base
  408. ORDER BY
  409. base.PUBLISHER) m
  410. LEFT JOIN sys_area s1 ON m.ADD_PROVINCE = s1.CODE
  411. LEFT JOIN sys_area s2 ON m.ADD_CITY = s2.CODE
  412. LEFT JOIN sys_area s3 ON m.ADD_AREA = s3.CODE
  413. WHERE m.row_number <= 2
  414. ORDER BY RAND()
  415. LIMIT #{limitSize}
  416. ]]>
  417. </select>
  418. <!-- 相似职位 -->
  419. <select id="getSimilarJobs" resultType="com.wechat.model.dto.JobAdvertisedListDto">
  420. SELECT
  421. a.job_id AS "jobId",
  422. a.job_name AS "jobName",
  423. a.position_id AS "positionId",
  424. a.add_detail AS "addDetail",
  425. a.add_longitude AS "addLongitude",
  426. a.add_latitude AS "addLatitude",
  427. a.work_experience AS "workExperience",
  428. a.education AS "education",
  429. a.PAY_FROM as payFrom,
  430. a.PAY_TO as payTo,
  431. puvView.PAGE_VIEW as pageView,
  432. a.update_date AS "updateDate"
  433. <include refid="userColumJoin">
  434. </include>
  435. <include refid="areaColumJoin">
  436. </include>
  437. FROM mde_job_advertised a
  438. <include refid="userLeftJoin"/>
  439. <include refid="arealeftJoin">
  440. </include>
  441. left join MDE_VIEW_JOB_PUV_ALL puvView
  442. on puvView.JOB_ID = a.JOB_ID
  443. <where>
  444. a.del_flag = 0 and a.job_id != #{jobId} and a.job_status =0
  445. and a.position_id = (select position_id from mde_job_advertised where job_id=#{jobId})
  446. AND a.job_id >=
  447. ((SELECT MAX(job_id) FROM mde_job_advertised) - (SELECT MIN(job_id) FROM mde_job_advertised)) * RAND() +
  448. ( SELECT MIN(job_id) FROM mde_job_advertised )
  449. </where>
  450. order by a.RECOMMEND_FLAG desc,a.update_date desc
  451. limit #{limitSize}
  452. </select>
  453. <!-- 酒店的其他职位 -->
  454. <select id="gethotelOtherPositionList"
  455. resultMap="MdeJobAdvertised">
  456. SELECT
  457. <include refid="mdeJobAdvertisedColumns"/>
  458. <include refid="userColumJoin">
  459. </include>
  460. <include refid="areaColumJoin">
  461. </include>
  462. FROM mde_job_advertised a
  463. <include refid="userLeftJoin"/>
  464. <include refid="arealeftJoin">
  465. </include>
  466. <where>
  467. a.del_flag = 0 and job_id != #{jobId} and a.job_status =0
  468. and a.publisher = #{publisher}
  469. </where>
  470. order by a.RECOMMEND_FLAG desc,a.update_date desc
  471. limit #{limitSize}
  472. </select>
  473. <!-- 职位搜索 (未登录) -->
  474. <select id="searchJobNotLogin" resultMap="MdeJobAdvertised">
  475. SELECT
  476. j.JOB_ID,
  477. j.PUBLISHER,
  478. u.`NAME` AS publisher_name,
  479. u.foreign_name,
  480. u.identity_flag,
  481. j.JOB_NAME,
  482. j.CREATE_DATE
  483. FROM
  484. mde_job_advertised j
  485. INNER JOIN mde_user u ON u.USER_CODE = j.PUBLISHER
  486. INNER JOIN sys_area a ON j.ADD_PROVINCE = a.code
  487. INNER JOIN sys_area b ON j.ADD_CITY = b.code
  488. LEFT JOIN sys_area c ON j.ADD_AREA = c.code
  489. WHERE
  490. u.IDENTITY_FLAG = 1
  491. AND u.DEL_FLAG = 0
  492. AND j.JOB_STATUS = 0
  493. AND j.DEL_FLAG = 0
  494. <if test="keyWord != null and keyWord.size() >0">
  495. AND
  496. <foreach collection="keyWord" item="key" open="(" close=")" separator="or">
  497. CONCAT(a.`name`, b.`name`, c.`name`,j.ADD_DETAIL) LIKE CONCAT('%', #{key}, '%')
  498. OR u.`NAME` LIKE CONCAT('%', #{key}, '%')
  499. OR j.JOB_NAME LIKE CONCAT('%', #{key}, '%')
  500. </foreach>
  501. </if>
  502. GROUP BY j.PUBLISHER
  503. order by j.RECOMMEND_FLAG desc,j.update_date desc
  504. limit 10
  505. </select>
  506. <!-- 职位搜索 -->
  507. <select id="searchJob" resultType="com.wechat.model.dto.JobAdvertisedListDto">
  508. SELECT
  509. <include refid="mdeJobAdvertisedColumns"/>
  510. <include refid="userColumJoin">
  511. </include>
  512. <include refid="areaColumJoin">
  513. </include>
  514. ,pos.POSITION_GRADE as positionGrade
  515. ,puvView.PAGE_VIEW as pageView
  516. FROM mde_job_advertised a
  517. <include refid="userLeftJoin"/><!-- mde_user u -->
  518. <include refid="arealeftJoin"/><!-- sys_area s1,s2,s3 -->
  519. inner join MDE_POSITION pos
  520. on pos.POSITION_ID = a.POSITION_ID
  521. left join MDE_VIEW_JOB_PUV_ALL puvView
  522. on puvView.JOB_ID = a.JOB_ID
  523. <where>
  524. a.del_flag = 0
  525. and a.job_status = 0
  526. AND u.del_flag = 0
  527. AND u.IDENTITY_FLAG = 1
  528. <if test="keyWord !=null and keyWord.size() != 0">
  529. and
  530. (
  531. (
  532. <!-- 职位名搜索 -->
  533. <foreach item="key" collection="keyWord" open="(" separator=" or " close=")">
  534. a.JOB_NAME like concat('%',#{key},'%')
  535. </foreach>
  536. )
  537. <!-- 加入 按照酒店名称搜索 -->
  538. or (
  539. <foreach item="key" collection="keyWord" open="(" separator=" or " close=")">
  540. u.name like concat("%", #{key},"%")
  541. </foreach>
  542. )
  543. )
  544. </if>
  545. <if test="position != null and position.size() != 0">
  546. and a.position_id in
  547. <foreach item="ideach" collection="position" open="(" separator="," close=")">
  548. #{ideach}
  549. </foreach>
  550. </if>
  551. <if test="prepareFlag !=null and prepareFlag != ''">
  552. and u.PREPARE_FLAG = #{prepareFlag}
  553. </if>
  554. <if test="fromDate !=null and fromDate != ''">
  555. and date_format( a.update_date, '%Y-%m-%d' ) >= #{fromDate}
  556. </if>
  557. <choose>
  558. <when test="addArea != null">
  559. and a.add_area = #{addArea}
  560. </when>
  561. <when test="addCity != null">
  562. and a.add_city = #{addCity}
  563. </when>
  564. <when test="addProvince != null">
  565. and a.add_province = #{addProvince}
  566. </when>
  567. </choose>
  568. </where>
  569. <choose>
  570. <when test="orderColumn != null and orderColumn != ''">
  571. <!-- 拼接SQL 所以使用${XX} 不是 #{XX} -->
  572. ORDER BY ${orderColumn}
  573. </when>
  574. <otherwise>
  575. ORDER BY a.RECOMMEND_FLAG desc,a.update_date desc
  576. </otherwise>
  577. </choose>
  578. </select>
  579. <select id="searchJobCount" resultType="java.lang.Integer">
  580. SELECT
  581. count(1)
  582. FROM mde_job_advertised a
  583. <include refid="userLeftJoin"/><!-- mde_user u -->
  584. <include refid="arealeftJoin"/><!-- sys_area s1,s2,s3 -->
  585. <where>
  586. a.del_flag = 0
  587. and a.job_status = 0
  588. AND u.del_flag = 0
  589. AND u.IDENTITY_FLAG = 1
  590. <if test="keyWord !=null and keyWord.size() != 0">
  591. and
  592. (
  593. (
  594. <!-- 职位名搜索 -->
  595. <foreach item="key" collection="keyWord" open="(" separator=" or " close=")">
  596. a.JOB_NAME like concat('%',#{key},'%')
  597. </foreach>
  598. )
  599. <!-- 加入 按照酒店名称搜索 -->
  600. or (
  601. <foreach item="key" collection="keyWord" open="(" separator=" or " close=")">
  602. u.name like concat("%", #{key},"%")
  603. </foreach>
  604. )
  605. )
  606. </if>
  607. <if test="position != null and position.size() != 0">
  608. and a.position_id in
  609. <foreach item="ideach" collection="position" open="(" separator="," close=")">
  610. #{ideach}
  611. </foreach>
  612. </if>
  613. <if test="prepareFlag !=null and prepareFlag != ''">
  614. and u.PREPARE_FLAG = #{prepareFlag}
  615. </if>
  616. <if test="fromDate !=null and fromDate != ''">
  617. and date_format( a.update_date, '%Y-%m-%d' ) >= #{fromDate}
  618. </if>
  619. <choose>
  620. <when test="addArea != null">
  621. and a.add_area = #{addArea}
  622. </when>
  623. <when test="addCity != null">
  624. and a.add_city = #{addCity}
  625. </when>
  626. <when test="addProvince != null">
  627. and a.add_province = #{addProvince}
  628. </when>
  629. </choose>
  630. </where>
  631. </select>
  632. <!-- 职位关键词搜索(用户版) -->
  633. <select id="searchPositionByKeyWord" resultType="com.wechat.model.dto.JobAdvertisedListDto">
  634. SELECT
  635. <include refid="mdeJobAdvertisedColumns"/>
  636. <include refid="userColumJoin">
  637. </include>
  638. <include refid="areaColumJoin">
  639. </include>
  640. ,pos.POSITION_GRADE as positionGrade
  641. ,puvView.PAGE_VIEW as pageView
  642. FROM mde_job_advertised a
  643. <include refid="userLeftJoin"/><!-- mde_user u -->
  644. <include refid="arealeftJoin"/><!-- sys_area s1,s2,s3 -->
  645. inner join MDE_POSITION pos
  646. on pos.POSITION_ID = a.POSITION_ID
  647. left join MDE_VIEW_JOB_PUV_ALL puvView
  648. on puvView.JOB_ID = a.JOB_ID
  649. <where>
  650. a.del_flag = 0
  651. and a.job_status = 0
  652. AND u.del_flag = 0
  653. AND u.IDENTITY_FLAG = 1
  654. <if test="keyWord !=null">
  655. AND
  656. (
  657. MATCH(a.JOB_NAME) AGAINST(#{keyWord} IN BOOLEAN MODE)
  658. or
  659. MATCH( u.NAME) AGAINST(#{keyWord} IN BOOLEAN MODE)
  660. or
  661. MATCH( s1.NAME,s1.NAME_EN) AGAINST(#{keyWord} IN BOOLEAN MODE)
  662. or
  663. MATCH( s2.NAME,s2.NAME_EN) AGAINST(#{keyWord} IN BOOLEAN MODE)
  664. or
  665. MATCH( s3.NAME,s3.NAME_EN) AGAINST(#{keyWord} IN BOOLEAN MODE)
  666. )
  667. ORDER BY MATCH(a.JOB_NAME) AGAINST(#{keyWord} IN BOOLEAN MODE) desc
  668. </if>
  669. </where>
  670. </select>
  671. <!-- 职位关键词搜索(用户版) 统计-->
  672. <select id="searchPositionByKeyWordCount" resultType="java.lang.Integer">
  673. SELECT
  674. count(1)
  675. FROM mde_job_advertised a
  676. <include refid="userLeftJoin"/><!-- mde_user u -->
  677. <include refid="arealeftJoin"/><!-- sys_area s1,s2,s3 -->
  678. inner join MDE_POSITION pos
  679. on pos.POSITION_ID = a.POSITION_ID
  680. left join MDE_VIEW_JOB_PUV_ALL puvView
  681. on puvView.JOB_ID = a.JOB_ID
  682. <where>
  683. a.del_flag = 0
  684. and a.job_status = 0
  685. AND u.del_flag = 0
  686. AND u.IDENTITY_FLAG = 1
  687. <if test="keyWord !=null">
  688. AND
  689. (
  690. MATCH(a.JOB_NAME) AGAINST(#{keyWord} IN BOOLEAN MODE)
  691. or
  692. MATCH( u.NAME) AGAINST(#{keyWord} IN BOOLEAN MODE)
  693. or
  694. MATCH( s1.NAME,s1.NAME_EN) AGAINST(#{keyWord} IN BOOLEAN MODE)
  695. or
  696. MATCH( s2.NAME,s2.NAME_EN) AGAINST(#{keyWord} IN BOOLEAN MODE)
  697. or
  698. MATCH( s3.NAME,s3.NAME_EN) AGAINST(#{keyWord} IN BOOLEAN MODE)
  699. )
  700. ORDER BY MATCH(a.JOB_NAME) AGAINST(#{keyWord} IN BOOLEAN MODE) desc
  701. </if>
  702. </where>
  703. </select>
  704. <!-- 职位搜索 点击量-->
  705. <select id="searchJobPv" resultType="com.wechat.model.dto.JobAdvertisedListDto">
  706. SELECT
  707. <include refid="mdeJobAdvertisedColumns"/>
  708. <include refid="userColumJoin">
  709. </include>
  710. <include refid="areaColumJoin">
  711. </include>
  712. ,pos.POSITION_GRADE as positionGrade
  713. FROM mde_job_advertised a
  714. <include refid="userLeftJoin"/><!-- mde_user u -->
  715. <include refid="arealeftJoin"/><!-- sys_area s1,s2,s3 -->
  716. inner join MDE_POSITION pos
  717. on pos.POSITION_ID = a.POSITION_ID
  718. <where>
  719. a.del_flag = 0
  720. and a.job_status = 0
  721. AND u.del_flag = 0
  722. AND u.IDENTITY_FLAG = 1
  723. <if test="keyWord !=null and keyWord.size() != 0">
  724. and
  725. (
  726. (
  727. <!-- 职位名搜索 -->
  728. <foreach item="key" collection="keyWord" open="(" separator=" or " close=")">
  729. a.JOB_NAME like concat('%',#{key},'%')
  730. </foreach>
  731. )
  732. <!-- 加入 按照酒店名称搜索 -->
  733. or (
  734. <foreach item="key" collection="keyWord" open="(" separator=" or " close=")">
  735. u.name like concat("%", #{key},"%")
  736. </foreach>
  737. )
  738. )
  739. </if>
  740. <if test="position != null and position.size() != 0">
  741. and a.position_id in
  742. <foreach item="ideach" collection="position" open="(" separator="," close=")">
  743. #{ideach}
  744. </foreach>
  745. </if>
  746. <if test="prepareFlag !=null and prepareFlag != ''">
  747. and u.PREPARE_FLAG = #{prepareFlag}
  748. </if>
  749. <if test="fromDate !=null and fromDate != ''">
  750. and date_format( a.update_date, '%Y-%m-%d' ) >= #{fromDate}
  751. </if>
  752. <choose>
  753. <when test="addArea != null">
  754. and a.add_area = #{addArea}
  755. </when>
  756. <when test="addCity != null">
  757. and a.add_city = #{addCity}
  758. </when>
  759. <when test="addProvince != null">
  760. and a.add_province = #{addProvince}
  761. </when>
  762. </choose>
  763. </where>
  764. <choose>
  765. <when test="orderColumn != null and orderColumn != ''">
  766. <!-- 拼接SQL 所以使用${XX} 不是 #{XX} -->
  767. ORDER BY ${orderColumn}
  768. </when>
  769. <otherwise>
  770. ORDER BY a.RECOMMEND_FLAG desc,a.update_date desc
  771. </otherwise>
  772. </choose>
  773. </select>
  774. <!-- 查看该企业是否发布某个职位 -->
  775. <select id="findByPublisherAndJobId" parameterType="com.wechat.model.dbEntity.MdeJobInvitationRel"
  776. resultMap="MdeJobAdvertised">
  777. select
  778. <include refid="mdeJobAdvertisedColumns">
  779. </include>
  780. from mde_job_advertised a
  781. where a.PUBLISHER =#{publisher}
  782. and a.job_Id = #{jobId}
  783. AND a.JOB_STATUS =0
  784. AND a.DEL_FLAG = 0
  785. </select>
  786. <select id="getCollectionJobList" resultType="com.wechat.model.responseDto.JobAdvertisedRes">
  787. SELECT
  788. a.job_id as jobId,
  789. a.job_name as jobName,
  790. a.PAY_FROM as payFrom,
  791. a.PAY_TO as payTo,
  792. <choose>
  793. <when test="lang == 'en'.toString()">
  794. s1.name_en as addProvince,
  795. s.name_en as addCity,
  796. </when>
  797. <otherwise>
  798. s1.name as addProvince,
  799. s.name as addCity,
  800. </otherwise>
  801. </choose>
  802. u.NAME as name,
  803. u.foreign_name as foreignName
  804. FROM
  805. mde_job_advertised a
  806. LEFT JOIN mde_user u ON a.publisher = u.user_code AND u.del_flag = 0
  807. LEFT JOIN sys_area s ON a.add_city = s.code AND s.del_flag = 0
  808. LEFT JOIN sys_area s1 ON a.add_province = s1.code AND s1.del_flag = 0
  809. WHERE a.del_flag=0 and a.job_id in
  810. <foreach collection="jobListStr" index="index" item="item" open="(" separator="," close=")">
  811. #{item}
  812. </foreach>
  813. </select>
  814. <!-- 获取正在发布中的职位 -->
  815. <select id="getPublishingJobsByUserCode" resultType="com.wechat.model.responseDto.JobAdvertisedNologinResp">
  816. SELECT
  817. ad.JOB_NAME AS jobName,
  818. ad.JOB_ID As jobId,
  819. ad.RECOMMEND_FLAG as recommendFlag,
  820. ad.PAY_FROM as payFrom,
  821. ad.PAY_TO as payTo,
  822. <choose>
  823. <when test="lang=='en'.toString()">
  824. s.en as workExperience,
  825. edu.en AS education,
  826. s1.name_en as addProvinceName,s2.name_en as addCityName,
  827. </when>
  828. <otherwise>
  829. s.label AS workExperience,
  830. edu.label AS education,
  831. s1.name as addProvinceName,s2.name as addCityName,
  832. </otherwise>
  833. </choose>
  834. ad.UPDATE_DATE AS publishDate,
  835. ad.CREATE_DATE AS createDate,
  836. ad.JOB_STATUS AS jobStatus
  837. FROM
  838. mde_job_advertised ad,
  839. sys_dict s,
  840. sys_dict edu,
  841. sys_area s1,
  842. sys_area s2
  843. WHERE
  844. s.`value` = ad.WORK_EXPERIENCE
  845. AND ad.DEL_FLAG = 0
  846. AND ad.PUBLISHER = #{userCode}
  847. AND ad.JOB_STATUS = 0
  848. AND s.type = 'job_year'
  849. AND edu.`value` = ad.education
  850. AND edu.type = 'education'
  851. AND ad.ADD_PROVINCE = s1.code
  852. AND ad.ADD_CITY = s2.code
  853. order by ad.RECOMMEND_FLAG desc,ad.update_date desc
  854. </select>
  855. <!-- 获取正在发布中的职位 非登陆-->
  856. <select id="getPublishingJobsNologin" resultType="com.wechat.model.responseDto.JobAdvertisedNologinResp">
  857. SELECT
  858. ad.JOB_NAME AS jobName,
  859. ad.JOB_ID As jobId,
  860. ad.RECOMMEND_FLAG as recommendFlag,
  861. ad.PAY_FROM as payFrom,
  862. ad.PAY_TO as payTo,
  863. <choose>
  864. <when test="lang=='en'.toString()">
  865. s.en as workExperience,
  866. edu.en AS education,
  867. s1.name_en as addProvinceName,s2.name_en as addCityName,
  868. </when>
  869. <otherwise>
  870. s.label AS workExperience,
  871. edu.label AS education,
  872. s1.name as addProvinceName,s2.name as addCityName,
  873. </otherwise>
  874. </choose>
  875. ad.UPDATE_DATE AS publishDate,
  876. ad.CREATE_DATE as createDate,
  877. ad.JOB_STATUS AS jobStatus
  878. FROM
  879. mde_job_advertised ad,
  880. sys_dict s,
  881. sys_dict edu,
  882. sys_area s1,
  883. sys_area s2
  884. WHERE
  885. s.`value` = ad.WORK_EXPERIENCE
  886. AND ad.DEL_FLAG = 0
  887. AND ad.PUBLISHER = #{userCode}
  888. AND ad.JOB_STATUS = 0
  889. AND s.type = 'job_year'
  890. AND edu.`value` = ad.education
  891. AND edu.type = 'education'
  892. AND ad.ADD_PROVINCE = s1.code
  893. AND ad.ADD_CITY = s2.code
  894. order by ad.RECOMMEND_FLAG desc,ad.update_date desc
  895. </select>
  896. <select id="alreadyPublishNotVipCount" resultType="java.lang.Integer">
  897. SELECT
  898. count(1)
  899. FROM
  900. mde_job_advertised ad
  901. WHERE
  902. ad.DEL_FLAG = 0
  903. AND ad.PUBLISHER = #{userCode}
  904. <if test="jobStatus !=null and jobStatus != ''">
  905. AND ad.JOB_STATUS = #{jobStatus}
  906. </if>
  907. </select>
  908. <select id="alreadyPublishCount" resultType="java.lang.Integer">
  909. SELECT
  910. count(1)
  911. FROM
  912. mde_job_advertised ad
  913. <include refid="mdeJobAdvertisedJoinCommon"/>
  914. <if test="jobStatus !=null and jobStatus != ''">
  915. AND ad.JOB_STATUS = #{jobStatus}
  916. </if>
  917. <if test="positionIdList != null">
  918. AND ad.POSITION_ID in
  919. <foreach collection="positionIdList" item="positionId" separator="," open="(" close=")">
  920. #{positionId}
  921. </foreach>
  922. </if>
  923. <if test="newDelivery">
  924. AND rel2.newFlag = 0
  925. </if>
  926. <if test="dayStart !=null">
  927. <![CDATA[
  928. AND ad.CREATE_DATE >= #{dayStart}
  929. ]]>
  930. </if>
  931. <if test="dayEnd !=null">
  932. <![CDATA[
  933. AND ad.CREATE_DATE <= #{dayEnd}
  934. ]]>
  935. </if>
  936. <if test="workExperience != null and workExperience != ''">
  937. AND s.label = #{workExperience}
  938. </if>
  939. </select>
  940. <!-- 获取正在发布中的职位 -->
  941. <select id="alreadyPublish" resultType="com.wechat.model.responseDto.JobAdvertisedResp">
  942. SELECT
  943. <include refid="mdeJobAdvertisedSelectCommon"/>
  944. FROM
  945. mde_job_advertised ad
  946. <include refid="mdeJobAdvertisedJoinCommon"/>
  947. <if test="jobStatus !=null and jobStatus != ''">
  948. AND ad.JOB_STATUS = #{jobStatus}
  949. </if>
  950. <if test="positionIdList != null">
  951. AND ad.POSITION_ID in
  952. <foreach collection="positionIdList" item="positionId" separator="," open="(" close=")">
  953. #{positionId}
  954. </foreach>
  955. </if>
  956. <if test="newDelivery">
  957. AND rel2.newFlag = 0
  958. </if>
  959. <if test="dayStart !=null">
  960. <![CDATA[
  961. AND ad.CREATE_DATE >= #{dayStart}
  962. ]]>
  963. </if>
  964. <if test="dayEnd !=null">
  965. <![CDATA[
  966. AND ad.CREATE_DATE <= #{dayEnd}
  967. ]]>
  968. </if>
  969. <if test="workExperience != null and workExperience != ''">
  970. AND s.label = #{workExperience}
  971. </if>
  972. order by ad.JOB_STATUS,ad.RECOMMEND_FLAG desc,ad.update_date desc
  973. </select>
  974. <!-- 获取发布的职位列表 -->
  975. <select id="alreadyPublishPositionList" resultType="com.wechat.model.responseDto.AlreadyPublishPositionResp">
  976. SELECT
  977. ad.JOB_ID AS jobId,
  978. ad.JOB_NAME AS jobName
  979. FROM
  980. mde_job_advertised ad
  981. WHERE
  982. ad.DEL_FLAG = 0
  983. AND ad.PUBLISHER = #{userCode}
  984. GROUP BY
  985. ad.JOB_NAME
  986. ORDER BY
  987. ad.JOB_STATUS ASC
  988. </select>
  989. <!-- 已发职位关键词检索 统计 -->
  990. <select id="searchAlreadyPublishByKeyWordCount" resultType="java.lang.Integer">
  991. SELECT
  992. count(1)
  993. FROM
  994. mde_job_advertised ad
  995. <include refid="mdeJobAdvertisedJoinCommon"/>
  996. <if test="keyWord !=null">
  997. AND
  998. (
  999. MATCH(ad.JOB_NAME) AGAINST(#{keyWord} IN BOOLEAN MODE)
  1000. or
  1001. MATCH(p.POSITION_NAME_CN,p.POSITION_NAME_EN) AGAINST(#{keyWord} IN BOOLEAN MODE)
  1002. or
  1003. MATCH(s1.NAME,s1.NAME_EN) AGAINST(#{keyWord} IN BOOLEAN MODE)
  1004. or
  1005. MATCH(s2.NAME,s2.NAME_EN) AGAINST(#{keyWord} IN BOOLEAN MODE)
  1006. or
  1007. edu.label like concat('%',#{keyWord},'%')
  1008. )
  1009. </if>
  1010. </select>
  1011. <!-- 已发职位关键词检索 -->
  1012. <select id="searchAlreadyPublishByKeyWord" resultType="com.wechat.model.responseDto.JobAdvertisedResp">
  1013. SELECT
  1014. <include refid="mdeJobAdvertisedSelectCommon"/>
  1015. FROM
  1016. mde_job_advertised ad
  1017. <include refid="mdeJobAdvertisedJoinCommon"/>
  1018. <if test="keyWord !=null">
  1019. AND
  1020. (
  1021. MATCH(ad.JOB_NAME) AGAINST(#{keyWord} IN BOOLEAN MODE)
  1022. or
  1023. MATCH(p.POSITION_NAME_CN,p.POSITION_NAME_EN) AGAINST(#{keyWord} IN BOOLEAN MODE)
  1024. or
  1025. MATCH(s1.NAME,s1.NAME_EN) AGAINST(#{keyWord} IN BOOLEAN MODE)
  1026. or
  1027. MATCH(s2.NAME,s2.NAME_EN) AGAINST(#{keyWord} IN BOOLEAN MODE)
  1028. or
  1029. edu.label like concat('%',#{keyWord},'%')
  1030. )
  1031. order by ad.JOB_STATUS,ad.RECOMMEND_FLAG desc,ad.update_date desc
  1032. </if>
  1033. </select>
  1034. <!-- 推荐职位 分页查询 -->
  1035. <select id="getPagingRecommentJobs" resultType="com.wechat.model.dto.JobAdvertisedListDto">
  1036. SELECT job.JOB_ID as jobId,
  1037. job.PUBLISHER as publisher,
  1038. job.JOB_NAME as jobName,
  1039. job.ADD_PROVINCE as addProvince,
  1040. job.ADD_CITY as addCity,
  1041. job.ADD_AREA as addArea,
  1042. s1.`name` AS addProvinceName,
  1043. s2.`name` AS addCityName,
  1044. s3.`name` AS addAreaName,
  1045. job.ADD_DETAIL as addDetail,
  1046. job.work_experience AS workExperience,
  1047. job.education AS education,
  1048. job.PAY_FROM as payFrom,
  1049. job.PAY_TO as payTo,
  1050. job.UPDATE_DATE as updateDate,
  1051. puber.`NAME` AS publisherName,
  1052. puber.head_portrait AS headPortrait,
  1053. puber.foreign_name AS foreignName,
  1054. puber.PREPARE_FLAG as prepareFlag,
  1055. puber.VIP_FLAG as vipFlag
  1056. FROM MDE_JOB_ADVERTISED job
  1057. INNER JOIN mde_position bp ON job.POSITION_ID = bp.POSITION_ID
  1058. INNER JOIN (SELECT b.DEPD_ID,
  1059. b.POSITION_GRADE
  1060. FROM mde_work_experience a
  1061. INNER JOIN mde_position_another_name b ON a.POSITION_TITLE = b.POSITION_NAME
  1062. WHERE a.USER_CODE = #{userCode}
  1063. AND a.SHOW_FLAG = '0'
  1064. and a.DEL_FLAG = '0'
  1065. UNION
  1066. SELECT b.DEPD_ID,
  1067. b.POSITION_GRADE
  1068. FROM MDE_SUBSCRIBED_POSITIONS a
  1069. INNER JOIN MDE_POSITION b ON a.POSITION_ID = b.POSITION_ID
  1070. WHERE a.USER_CODE = #{userCode}
  1071. AND a.DEL_FLAG = '0') uWork ON bp.DEPD_ID = uWork.DEPD_ID
  1072. <![CDATA[ AND bp.POSITION_GRADE <= uWork.POSITION_GRADE ]]>
  1073. INNER JOIN mde_user puber ON job.PUBLISHER = puber.USER_CODE
  1074. LEFT JOIN sys_area s1 ON job.ADD_PROVINCE = s1.CODE
  1075. LEFT JOIN sys_area s2 ON job.ADD_CITY = s2.CODE
  1076. LEFT JOIN sys_area s3 ON job.ADD_AREA = s3.CODE
  1077. WHERE job.JOB_STATUS = '0'
  1078. and job.DEL_FLAG = '0'
  1079. and puber.DEL_FLAG = '0'
  1080. and bp.DEL_FLAG = '0'
  1081. and job.UPDATE_DATE > #{selDate}
  1082. ORDER BY job.RECOMMEND_FLAG DESC,
  1083. puber.VIP_FLAG DESC,
  1084. job.UPDATE_DATE DESC
  1085. </select>
  1086. <!-- 推荐职位分页查询 计数 -->
  1087. <select id="getPagingRecommentJobsCount" resultType="java.lang.Integer">
  1088. SELECT count(job.JOB_ID)
  1089. FROM MDE_JOB_ADVERTISED job
  1090. INNER JOIN mde_position bp ON job.POSITION_ID = bp.POSITION_ID
  1091. INNER JOIN (SELECT b.DEPD_ID,
  1092. b.POSITION_GRADE
  1093. FROM mde_work_experience a
  1094. INNER JOIN mde_position_another_name b ON a.POSITION_TITLE = b.POSITION_NAME
  1095. WHERE a.USER_CODE = #{userCode}
  1096. AND a.SHOW_FLAG = '0'
  1097. and a.DEL_FLAG = '0'
  1098. UNION
  1099. SELECT b.DEPD_ID,
  1100. b.POSITION_GRADE
  1101. FROM MDE_SUBSCRIBED_POSITIONS a
  1102. INNER JOIN MDE_POSITION b ON a.POSITION_ID = b.POSITION_ID
  1103. WHERE a.USER_CODE = #{userCode}
  1104. AND a.DEL_FLAG = '0') uWork ON bp.DEPD_ID = uWork.DEPD_ID
  1105. <![CDATA[ AND bp.POSITION_GRADE <= uWork.POSITION_GRADE ]]>
  1106. INNER JOIN mde_user puber ON job.PUBLISHER = puber.USER_CODE
  1107. WHERE job.JOB_STATUS = '0'
  1108. and job.DEL_FLAG = '0'
  1109. and puber.DEL_FLAG = '0'
  1110. and bp.DEL_FLAG = '0'
  1111. and job.UPDATE_DATE > #{selDate}
  1112. </select>
  1113. <!--获取已经投递过职位的用户code -->
  1114. <select id="getAlreadyAdvertisedByJobId" resultMap="mdePositionCvRelMap">
  1115. SELECT j.job_id,
  1116. j.JOB_NAME,
  1117. p.CANDIDATE as USER_CODE
  1118. FROM mde_job_advertised j
  1119. LEFT JOIN mde_position_cv_rel p ON j.JOB_ID = p.POS_ID
  1120. AND p.DEL_FLAG = 0
  1121. WHERE j.PUBLISHER = #{publisher}
  1122. AND j.JOB_STATUS = 0
  1123. AND j.DEL_FLAG = 0
  1124. </select>
  1125. <!-- 获取 企业正在招聘的职位 -->
  1126. <select id="getAdvertisedRecruitment" resultMap="mdeJobAdvertisedJoin">
  1127. SELECT j.JOB_ID,
  1128. j.JOB_NAME,
  1129. r.user_code
  1130. FROM mde_job_advertised j
  1131. LEFT JOIN mde_job_invitation_rel r ON j.JOB_ID = r.job_id
  1132. AND j.PUBLISHER = r.PUBLISHER AND r.DEL_FLAG = 0
  1133. WHERE j.JOB_STATUS = 0
  1134. AND j.DEL_FLAG = 0
  1135. AND j.PUBLISHER = #{publisher}
  1136. order by j.RECOMMEND_FLAG desc, j.update_date desc
  1137. </select>
  1138. <!-- 修改职位状态 关闭职位的同时取消职位首推-->
  1139. <update id="updateJobAdvertisedStatus">
  1140. UPDATE mde_job_advertised
  1141. SET JOB_STATUS = #{jobStatus},
  1142. <if test="jobStatus == 1">
  1143. RECOMMEND_FLAG = '0',
  1144. </if>
  1145. UPDATE_DATE = now(),
  1146. VERSION_NO = VERSION_NO + 1
  1147. WHERE
  1148. JOB_ID = #{jobId}
  1149. AND PUBLISHER = #{userCode}
  1150. AND DEL_FLAG = 0
  1151. </update>
  1152. <!-- 修改首推状态 -->
  1153. <update id="updateJobRecommend">
  1154. UPDATE mde_job_advertised
  1155. SET RECOMMEND_FLAG = #{recommendFlag},
  1156. UPDATE_DATE = now(),
  1157. VERSION_NO = VERSION_NO + 1
  1158. WHERE JOB_ID = #{jobId}
  1159. AND PUBLISHER = #{userCode}
  1160. AND DEL_FLAG = 0
  1161. </update>
  1162. <!-- 企业简历总数量 -->
  1163. <select id="getAllUserCvCount" resultType="java.lang.Integer">
  1164. SELECT count(1)
  1165. FROM mde_job_advertised j,
  1166. mde_position_cv_rel r
  1167. WHERE j.JOB_ID = r.POS_ID
  1168. AND j.DEL_FLAG = 0
  1169. AND r.DEL_FLAG = 0
  1170. AND j.PUBLISHER = #{userCode}
  1171. </select>
  1172. <!-- 按发布者获取新简历数量 -->
  1173. <select id="getNewCvCountByPublisher" resultType="java.lang.Integer">
  1174. SELECT count(1)
  1175. FROM mde_job_advertised j,
  1176. mde_position_cv_rel r
  1177. WHERE j.JOB_ID = r.POS_ID
  1178. AND j.DEL_FLAG = 0
  1179. AND r.DEL_FLAG = 0
  1180. AND r.CV_STATUS = 0
  1181. AND j.PUBLISHER = #{userCode}
  1182. </select>
  1183. <!-- 邀请面试数量 -->
  1184. <select id="inviteAuditionCount" resultType="java.lang.Integer">
  1185. SELECT count(1)
  1186. FROM mde_job_advertised j,
  1187. mde_position_cv_rel r
  1188. WHERE j.JOB_ID = r.POS_ID
  1189. AND j.DEL_FLAG = 0
  1190. AND r.DEL_FLAG = 0
  1191. AND r.CV_STATUS = 3
  1192. AND j.PUBLISHER = #{userCode}
  1193. </select>
  1194. <!-- 录用简历数量 -->
  1195. <select id="matriculateUserCvCount" resultType="java.lang.Integer">
  1196. SELECT count(1)
  1197. FROM mde_job_advertised j,
  1198. mde_position_cv_rel r
  1199. WHERE j.JOB_ID = r.POS_ID
  1200. AND j.DEL_FLAG = 0
  1201. AND r.DEL_FLAG = 0
  1202. AND r.CV_STATUS = 4
  1203. AND j.PUBLISHER = #{userCode}
  1204. </select>
  1205. <!-- 淘汰数量 -->
  1206. <select id="eliminateUserCvCount" resultType="java.lang.Integer">
  1207. SELECT count(1)
  1208. FROM mde_job_advertised j,
  1209. mde_position_cv_rel r
  1210. WHERE j.JOB_ID = r.POS_ID
  1211. AND j.DEL_FLAG = 0
  1212. AND r.DEL_FLAG = 0
  1213. AND r.CV_STATUS = 5
  1214. AND j.PUBLISHER = #{userCode}
  1215. </select>
  1216. <!-- 随机抽取优选职位 大于50 (未登录) -->
  1217. <select id="getNotLoginRecommentJobsRandJoin" resultMap="MdeJobAdvertised">
  1218. SELECT t1.JOB_ID,
  1219. t1.PUBLISHER,
  1220. t1.JOB_NAME,
  1221. t1.JOB_DESCRIBE,
  1222. t1.CREATE_DATE,
  1223. t1.`NAME` AS publisher_name
  1224. from (SELECT a.JOB_ID,
  1225. a.PUBLISHER,
  1226. a.JOB_NAME,
  1227. a.JOB_DESCRIBE,
  1228. a.CREATE_DATE,
  1229. a.UPDATE_DATE,
  1230. u.`NAME`
  1231. FROM mde_job_advertised a,
  1232. mde_user u
  1233. WHERE u.USER_CODE = a.PUBLISHER
  1234. AND u.DEL_FLAG = 0
  1235. AND u.IDENTITY_FLAG = 1
  1236. AND u.VIP_FLAG = 1
  1237. AND a.DEL_FLAG = 0
  1238. AND a.JOB_STATUS = 0
  1239. GROUP BY a.PUBLISHER) as t1
  1240. JOIN (SELECT ROUND(RAND() * (
  1241. (SELECT MAX(JOB_ID) FROM mde_job_advertised) - (SELECT MIN(JOB_ID) FROM mde_job_advertised)) +
  1242. (SELECT MIN(JOB_ID) FROM mde_job_advertised)) AS JOB_ID) AS t2
  1243. WHERE t1.JOB_ID >= t2.JOB_ID
  1244. ORDER BY t1.UPDATE_DATE desc
  1245. LIMIT #{limitSize}
  1246. </select>
  1247. <!-- 随机抽取优选职位 小于50 (未登录) -->
  1248. <select id="getNotLoginRecommentJobsRand" resultMap="MdeJobAdvertised">
  1249. SELECT a.JOB_ID,
  1250. a.PUBLISHER,
  1251. a.JOB_NAME,
  1252. a.JOB_DESCRIBE,
  1253. a.CREATE_DATE,
  1254. u.`NAME` AS publisher_name
  1255. FROM mde_job_advertised a,
  1256. mde_user u
  1257. WHERE u.USER_CODE = a.PUBLISHER
  1258. AND u.DEL_FLAG = 0
  1259. AND u.IDENTITY_FLAG = 1
  1260. AND u.VIP_FLAG = 1
  1261. AND a.DEL_FLAG = 0
  1262. AND a.JOB_STATUS = 0
  1263. GROUP BY a.PUBLISHER
  1264. ORDER BY RAND()
  1265. LIMIT #{limitSize}
  1266. </select>
  1267. <!--优选人才数量 -->
  1268. <select id="getNotLoginRecommentJobsCount" resultType="java.lang.Integer">
  1269. SELECT count(1)
  1270. FROM mde_job_advertised a,
  1271. mde_user u
  1272. WHERE u.USER_CODE = a.PUBLISHER
  1273. AND u.DEL_FLAG = 0
  1274. AND u.IDENTITY_FLAG = 1
  1275. AND u.VIP_FLAG = 1
  1276. AND a.DEL_FLAG = 0
  1277. AND a.JOB_STATUS = 0
  1278. </select>
  1279. <update id="batchUpdatePublishDate">
  1280. UPDATE mde_job_advertised
  1281. SET UPDATE_DATE = NOW(),
  1282. version_no = version_no + 1
  1283. WHERE JOB_STATUS = 0
  1284. and PUBLISHER = #{publisher}
  1285. </update>
  1286. <update id="updatePublishDate">
  1287. UPDATE mde_job_advertised
  1288. SET UPDATE_DATE = NOW(),
  1289. version_no = version_no + 1
  1290. WHERE JOB_STATUS = 0
  1291. and PUBLISHER = #{publisher}
  1292. and JOB_ID = #{jobId}
  1293. </update>
  1294. <!--获取酒店可首推和已首推个数 -->
  1295. <select id="getAvailableAndUsedCount" resultType="com.wechat.model.dto.AvailableAndUsedCountDto">
  1296. SELECT ifnull(count(a.PUBLISHER), 0) as used,
  1297. ifnull(s.remarks, 0) as available
  1298. FROM mde_user u
  1299. left join mde_job_advertised a
  1300. on u.USER_CODE = a.PUBLISHER
  1301. AND a.DEL_FLAG = 0
  1302. AND a.JOB_STATUS = 0
  1303. AND a.RECOMMEND_FLAG = 1
  1304. left join sys_dict s
  1305. on s.value = u.VIP_FLAG
  1306. and s.type = 'vip_level'
  1307. WHERE u.USER_CODE = #{userCode}
  1308. AND u.DEL_FLAG = 0
  1309. AND u.IDENTITY_FLAG = 1
  1310. GROUP By u.USER_CODE
  1311. </select>
  1312. <select id="findRepFormPvByDate" resultType="com.wechat.model.dto.JobRepFormPvDto">
  1313. SELECT
  1314. <choose>
  1315. <when test='ymd =="d"'>
  1316. a.WRIT_DATE as imagX,
  1317. </when>
  1318. <when test='ymd =="m"'>
  1319. date_format( a.WRIT_DATE, '%Y-%m' ) as imagX,
  1320. </when>
  1321. <when test='ymd =="y"'>
  1322. date_format( a.WRIT_DATE, '%Y' ) as imagX,
  1323. </when>
  1324. <otherwise>
  1325. a.WRIT_DATE as imagX,
  1326. </otherwise>
  1327. </choose>
  1328. IFNULL(cvHis.num,0) as cvNums,
  1329. SUM( a.PAGE_VIEW ) as pv
  1330. FROM
  1331. mde_job_advertised job
  1332. inner join
  1333. mde_job_pv_uv a on job.JOB_ID = a.JOB_ID
  1334. LEFT JOIN (
  1335. SELECT
  1336. <choose>
  1337. <when test='ymd =="d"'>
  1338. rel.DELIVER_DATE as deliverDate,
  1339. </when>
  1340. <when test='ymd =="m"'>
  1341. date_format( rel.DELIVER_DATE , '%Y-%m' ) as deliverDate,
  1342. </when>
  1343. <when test='ymd =="y"'>
  1344. date_format( rel.DELIVER_DATE , '%Y' ) as deliverDate,
  1345. </when>
  1346. <otherwise>
  1347. rel.DELIVER_DATE as deliverDate,
  1348. </otherwise>
  1349. </choose>
  1350. count( rel.DELIVER_DATE ) num
  1351. FROM
  1352. mde_position_cv_rel rel
  1353. WHERE
  1354. rel.PUBLISHER = #{userCode}
  1355. <![CDATA[ AND rel.DELIVER_DATE >= #{from}
  1356. AND rel.DELIVER_DATE <= #{to} ]]>
  1357. <choose>
  1358. <when test='ymd =="d"'>
  1359. GROUP BY rel.DELIVER_DATE
  1360. ) cvHis ON cvHis.deliverDate = a.WRIT_DATE
  1361. </when>
  1362. <when test='ymd =="m"'>
  1363. GROUP BY date_format( rel.DELIVER_DATE , '%Y-%m' )
  1364. ) cvHis ON cvHis.deliverDate = date_format( a.WRIT_DATE, '%Y-%m' )
  1365. </when>
  1366. <when test='ymd =="y"'>
  1367. GROUP BY date_format( rel.DELIVER_DATE , '%Y' )
  1368. ) cvHis ON cvHis.deliverDate = date_format( a.WRIT_DATE, '%Y' )
  1369. </when>
  1370. <otherwise>
  1371. GROUP BY rel.DELIVER_DATE
  1372. ) cvHis ON cvHis.deliverDate = a.WRIT_DATE
  1373. </otherwise>
  1374. </choose>
  1375. WHERE
  1376. job.PUBLISHER = #{userCode}
  1377. <![CDATA[
  1378. AND a.WRIT_DATE >= #{from}
  1379. AND a.WRIT_DATE <= #{to}
  1380. ]]>
  1381. <if test="jobId != null and jobId != 0 ">
  1382. AND a.JOB_ID = #{jobId}
  1383. </if>
  1384. <choose>
  1385. <when test='ymd =="d"'>
  1386. GROUP BY a.WRIT_DATE
  1387. </when>
  1388. <when test='ymd =="m"'>
  1389. GROUP BY date_format( a.WRIT_DATE, '%Y-%m' )
  1390. </when>
  1391. <when test='ymd =="y"'>
  1392. GROUP BY date_format( a.WRIT_DATE, '%Y' )
  1393. </when>
  1394. <otherwise>
  1395. GROUP BY a.WRIT_DATE
  1396. </otherwise>
  1397. </choose>
  1398. ORDER BY
  1399. a.WRIT_DATE
  1400. </select>
  1401. <select id="findGeneralPvByDate" resultType="java.lang.Integer">
  1402. <!-- 点击量 -->
  1403. SELECT
  1404. SUM( a.PAGE_VIEW ) as num
  1405. FROM
  1406. mde_job_advertised job
  1407. inner join
  1408. mde_job_pv_uv a on job.JOB_ID = a.JOB_ID
  1409. WHERE
  1410. job.PUBLISHER = #{userCode}
  1411. <![CDATA[
  1412. AND a.WRIT_DATE >= #{from}
  1413. AND a.WRIT_DATE <= #{to}
  1414. ]]>
  1415. <if test="jobId != null and jobId != 0 ">
  1416. AND a.JOB_ID = #{jobId}
  1417. </if>
  1418. </select>
  1419. </mapper>