echajoa_tender_sms_lock.php 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166
  1. !#/usr/bin/php -q
  2. <?php
  3. include $_SERVER['DOCUMENT_ROOT'].'/common/lib/comm.php';
  4. include $_SERVER['DOCUMENT_ROOT'].'/common/lib/aligo.php';
  5. /*
  6. 이차조아용
  7. 필요 함수 /common/lib/func.php에 정의
  8. lock 시스템
  9. 1. 낙찰리스트, 진행중 리스트
  10. 1차 발송
  11. 2차 발송
  12. 3차 발송 후 2일 후 해당 계정 입찰 안되게
  13. 관리자가 해제 할 수 있음
  14. 2. 3차 발송 후 기간 지나면 락 처리
  15. 1차 발송후 5일후 자동으로 2차발송 2차발송후 3일후 3차발송 : 10일 후 락 처리
  16. /cron/tender_sms_lock.php
  17. 1. 낙찰 중인 건 진행중인 건
  18. depth = 3 && ds_send_status = 'Z0' && ds_lock_status = 'B0'
  19. 진행중이나 견적실수로로 넘어갈 경우
  20. (((s.ds_status_contract is null or s.ds_status_contract = '' or s.ds_status_contract = 'Z0') and s.ds_status_contract_step1 = 'Y')
  21. or s.ds_status in ('ZE') and (s.ds_status_contract is null or s.ds_status_contract = '') ) 로 변경 됐으면
  22. //견적실수
  23. // and s.ds_status in ('ZE') and (s.ds_status_contract is null or s.ds_status_contract = '')
  24. ds_lock_status = A0 update
  25. 상태 변경이 없을 경우
  26. ds_lock_status = Z0 update
  27. tender_master
  28. ds_lock_status = 'A0'
  29. dt_lock : 현재시간
  30. 2. 진행중인건
  31. depth = 3 && ds_send_status = 'Z0' && ds_lock_status = 'B0'
  32. 현재 매물이 Z0 이고 거래완료나, 거래 실패/거래연기, 등으로 변경이 됐으면
  33. //해약
  34. // s.ds_status in ('Z0') and s.ds_status_contract in ('C0')
  35. //거래연기
  36. // and s.ds_status in ('Z0') and s.ds_status_contract in ('B0')
  37. //판매완료
  38. // and s.ds_status in ('ZS')
  39. ds_lock_status = A0 update
  40. 상태 변경이 없을 경우
  41. ds_lock_status = Z0 update
  42. tender_master
  43. ds_lock_status = 'A0'
  44. dt_lock : 현재시간
  45. */
  46. //처리 가능항 매물 상태 정의
  47. $allow_ds_status = array("Z0", "Z1");
  48. //3차 발송완료, 락이 필요한 상태, 발송시간+2일이 현재 보다 작은 건 취합
  49. $sql = "select *
  50. from tender_sms_master
  51. where depth = 3
  52. and ds_send_status = 'Z0'
  53. and ds_lock_status = 'B0'
  54. and DATE_ADD(dt_send, INTERVAL 2 DAY) < now() ";
  55. // echo $sql;
  56. // exit;
  57. $res = mysql_query($sql);
  58. while($col = mysql_fetch_array($res)) {
  59. $cd_tender_sms = $col['cd_tender_sms'];
  60. $cd_sale = $col['cd_sale'];
  61. $cd_tender = $col['cd_tender'];
  62. $depth = $col['depth'];
  63. $ds_status = $col['ds_status'];
  64. if(!in_array($ds_status, $allow_ds_status)) {
  65. continue;
  66. }
  67. //경매 정보 불러옴
  68. $sale_sql = "SELECT
  69. a.*
  70. , b.nm_model
  71. , c.nm_grade
  72. , d.nm_brand
  73. , e.nm_model_sub
  74. , getCode('car_master','ds_type',a.ds_type) as nm_type
  75. , getCode('car_master','ds_open',a.ds_open) as nm_open
  76. , getCode('car_master','ds_sales',a.ds_sales) as nm_sales
  77. , getCode('car_master','ds_transmission',a.ds_transmission) as nm_transmission
  78. , getCode('member_master','ds_area',s.ds_area) as nm_area
  79. , getCode('sale_master','ds_status',s.ds_status) as nm_status
  80. , s.cd_sale
  81. , f.cd_tender cd_tender
  82. , s.ds_status as ds_status_sale
  83. , f.nm_hp tender_nm_hp
  84. , s.ds_status_contract
  85. , s.ds_status_contract_step1
  86. FROM sale_master s
  87. inner join car_master a on (s.cd_car = a.cd_car)
  88. left outer join car_model b on (a.cd_model = b.cd_model)
  89. left outer join car_grade c on (a.cd_grade = c.cd_grade)
  90. left outer join car_brand d on (a.cd_brand = d.cd_brand)
  91. left outer join car_model_sub e on (a.cd_model_sub = e.cd_model_sub)
  92. inner join tender_master f on (s.cd_sale = f.cd_sale and f.ds_status = 'Z0' and f.ds_delind = 'N' and f.cd_tender = '$cd_tender')
  93. where s.cd_sale = '". $cd_sale . "' and s.ds_delind = 'N' LIMIT 1";
  94. $sale_res = mysql_query($sale_sql);
  95. $sale_col = mysql_fetch_array($sale_res);
  96. if(empty($sale_col['cd_sale'])) {
  97. continue;
  98. }
  99. $is_cancel = false;
  100. switch($ds_status) {
  101. //낙찰중인건
  102. case 'Z0':
  103. //낙찰 상태가 변경이 되면 cancel로 이동
  104. //기준은 관리자의 낙찰 리스트 출력 조건과 동일
  105. if(!($sale_col['ds_status_sale'] == 'Z0'
  106. && empty($sale_col['ds_status_contract'])
  107. && $sale_col['ds_status_contract_step1'] != "Y"))
  108. {
  109. $is_cancel = true;
  110. }
  111. break;
  112. //진행중인건
  113. case 'Z1':
  114. //진행중 상태가 변경이 되면 cancel로 이동
  115. //기준은 관리자의 진행중 리스트 출력 조건과 동일
  116. // echo 'ds_status:'.$sale_col['ds_status_sale'].'<br/>';
  117. // echo 'ds_status_contract:'.$sale_col['ds_status_contract'].'<br/>';
  118. // echo 'ds_status_contract_step1:'.$sale_col['ds_status_contract_step1'].'<br/>';
  119. if(!($sale_col['ds_status_sale'] == 'Z0'
  120. && (empty($sale_col['ds_status_contract']) || $sale_col['ds_status_contract'] == 'Z0')
  121. && $sale_col['ds_status_contract_step1'] == "Y")) {
  122. $is_cancel = true;
  123. }
  124. break;
  125. }
  126. // echo 'is_cancel:'.$is_cancel.'<br/>';
  127. // exit;
  128. // echo 'a'.$is_cancel;
  129. // exit;
  130. //락이 필요치 않은 매울이면 락 필요 없음 처리
  131. if($is_cancel == true) {
  132. no_lock_tender_sms($connect, $cd_tender_sms);
  133. continue;
  134. }
  135. //여기까지 오면 lock처리
  136. //tender sms lock update
  137. lock_tender_sms($connect, $cd_tender, $cd_tender_sms);
  138. }
  139. echo "End";
  140. ?>