consume.ctrl.php 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. <?php
  2. /**
  3. * [WeEngine System] Copyright (c) 2014 WE7.CC
  4. * WeEngine is NOT a free software, it under the license terms, visited http://www.we7.cc/ for more details.
  5. */
  6. defined('IN_IA') or exit('Access Denied');
  7. uni_user_permission_check('wechat_consume');
  8. load()->model('mc');
  9. $_W['page']['title'] = '卡券核销-微信卡券';
  10. $dos = array('account', 'record');
  11. $do = in_array($do, $dos) ? $do : 'record';
  12. if($do == 'record') {
  13. $acid = $_W['acid'];
  14. $op = empty($_GPC['op']) ? 'list' : $_GPC['op'];
  15. if($op == 'list') {
  16. $condition = ' WHERE acid = :acid';
  17. $parma[':acid'] = $acid;
  18. $cid = intval($_GPC['cid']);
  19. $card_id = trim($_GPC['card_id']);
  20. if($cid > 0) {
  21. $coupon = pdo_fetch('SELECT title,card_id FROM ' . tablename('coupon') . ' WHERE acid = :acid AND id = :id', array(':acid' => $acid, ':id' => $cid));
  22. $card_id = $coupon['card_id'];
  23. } else {
  24. $coupon = pdo_fetch('SELECT title FROM ' . tablename('coupon') . ' WHERE acid = :acid AND card_id = :card_id', array(':acid' => $acid, ':card_id' => $card_id));
  25. }
  26. if(!empty($card_id)) {
  27. $condition .= ' AND card_id = :card_id';
  28. $parma[':card_id'] = $card_id;
  29. }
  30. $code = trim($_GPC['code']);
  31. if(!empty($code)) {
  32. $condition .= " AND code LIKE '%{$code}%'";
  33. }
  34. $status = intval($_GPC['status']);
  35. if($status > 0) {
  36. $condition .= " AND status = :status";
  37. $parma[':status'] = $status;
  38. }
  39. $outer_id = intval($_GPC['outer_id']);
  40. if(!empty($outer_id)) {
  41. $condition .= " AND outer_id = :oid";
  42. $parma[':oid'] = $outer_id;
  43. }
  44. $nickname = trim($_GPC['nickname']);
  45. if(!empty($nickname)) {
  46. $condition .= " AND openid IN (SELECT openid FROM " . tablename('mc_mapping_fans') ." WHERE acid = {$acid} AND nickname LIKE '%{$nickname}%')";
  47. }
  48. $pindex = max(1, intval($_GPC['page']));
  49. $psize = 20;
  50. $total = pdo_fetchcolumn('SELECT COUNT(*) FROM ' . tablename('coupon_record') . $condition, $parma);
  51. $data = pdo_fetchall('SELECT * FROM ' . tablename('coupon_record') . $condition . ' ORDER BY id DESC LIMIT ' .($pindex - 1) * $psize.','.$psize, $parma);
  52. if(!empty($data)) {
  53. foreach($data as &$da) {
  54. if(!empty($da['openid'])) {
  55. $openids[] = $da['openid'];
  56. }
  57. if(!empty($da['friend_openid'])) {
  58. $openids[] = $da['friend_openid'];
  59. }
  60. if(!empty($da['card_id'])) {
  61. $card_ids[] = $da['card_id'];
  62. }
  63. if($da['outer_id'] > 0) {
  64. $outer_ids[] = $da['outer_id'];
  65. }
  66. $operator = mc_account_change_operator($da['clerk_type'], $da['store_id'], $da['clerk_id']);
  67. $da['clerk_cn'] = $operator['clerk_cn'];
  68. $da['store_cn'] = $operator['store_cn'];
  69. }
  70. if(!empty($openids)) {
  71. $openids_str = "'" . implode("','", $openids) . "'";
  72. $nicknames = pdo_fetchall('SELECT nickname,openid FROM ' . tablename('mc_mapping_fans') . "WHERE acid = {$acid} AND openid IN ({$openids_str})", array(), 'openid');
  73. }
  74. if(!empty($outer_ids)) {
  75. $outer_str = implode(',', $outer_ids);
  76. $outers = pdo_fetchall('SELECT name,qrcid FROM ' . tablename('qrcode') . "WHERE acid = {$acid} AND type = 'card' AND qrcid IN ({$outer_str})", array(), 'qrcid');
  77. }
  78. if(!empty($card_ids)) {
  79. $card_str = implode("','", $card_ids);
  80. $card_str = "'" . $card_str . "'";
  81. $cards = pdo_fetchall('SELECT card_id,title FROM ' . tablename('coupon') . "WHERE acid = {$acid} AND card_id IN ({$card_str})", array(), 'card_id');
  82. }
  83. }
  84. $pager = pagination($total, $pindex, $psize);
  85. }
  86. if($op == 'unavailable') {
  87. $id = intval($_GPC['id']);
  88. $del = intval($_GPC['del']);
  89. $record = pdo_fetch('SELECT code,status FROM ' . tablename('coupon_record') . ' WHERE acid = :acid AND id = :id', array(':acid' => $acid, ':id' => $id));
  90. if(empty($record)) {
  91. message('对应code码不存在', referer(), 'error');
  92. }
  93. if($record['status'] == 1) {
  94. load()->classs('coupon');
  95. $acc = new coupon($acid);
  96. $status = $acc->UnavailableCode(array('code' => $record['code']));
  97. if(is_error($status) && !$_GPC['force']) {
  98. $url_1 = url('wechat/consume');
  99. $url_2 = url('wechat/consume/record', array('op' => 'unavailable', 'del' => 1, 'id' => $id, 'force' => 1));
  100. $message = "<a href='{$url_1}' class='btn btn-default'>否</a> <a href='{$url_2}' class='btn btn-primary'>是</a> ";
  101. message($status['message'] . " <br>是否强制删除本地数据 {$message}", '', 'error');
  102. } else {
  103. pdo_update('coupon_record', array('status' => 2, 'clerk_name' => $_W['user']['name'], 'clerk_id' => $_W['user']['clerk_id'], 'store_id' => $_W['user']['store_id'], 'clerk_type' => $_W['user']['clerk_type'], 'usetime' => TIMESTAMP), array('acid' => $acid, 'code' => $record['code'], 'id' => $id));
  104. }
  105. }
  106. if($del == 1) {
  107. pdo_delete('coupon_record', array('acid' => $acid, 'id' => $id));
  108. message('删除卡券领取状态成功', url('wechat/consume'), 'success');
  109. }
  110. message('更改卡券领取状态成功', url('wechat/consume'), 'success');
  111. }
  112. if($op == 'consume') {
  113. $id = intval($_GPC['id']);
  114. $record = pdo_fetch('SELECT code,status FROM ' . tablename('coupon_record') . ' WHERE acid = :acid AND id = :id', array(':acid' => $acid, ':id' => $id));
  115. if(empty($record)) {
  116. message('对应code码不存在', referer(), 'error');
  117. }
  118. if($record['status'] == 1) {
  119. load()->classs('coupon');
  120. $acc = new coupon($acid);
  121. $status = $acc->ConsumeCode(array('code' => $record['code']));
  122. if(is_error($status)) {
  123. message($status['message'], '', 'error');
  124. } else {
  125. pdo_update('coupon_record', array('status' => 3, 'clerk_name' => $_W['user']['name'], 'clerk_id' => $_W['user']['clerk_id'], 'store_id' => $_W['user']['store_id'], 'clerk_type' => $_W['user']['clerk_type'], 'usetime' => TIMESTAMP), array('acid' => $acid, 'code' => $record['code'], 'id' => $id));
  126. }
  127. }
  128. message('核销卡券成功', referer(), 'success');
  129. }
  130. template('wechat/consume');
  131. }