card.ctrl.php 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  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. $dos = array('display', 'detail', 'use', 'qr');
  8. $do = in_array($do, $dos) ? $do : 'display';
  9. $logo = pdo_fetchcolumn('SELECT logourl FROM ' . tablename('coupon_setting') . ' WHERE uniacid = :aid AND acid = :cid', array(':aid' => $_W['uniacid'], ':cid' => $_W['acid']));
  10. $colors = array(
  11. 'Color010' => '#55bd47', 'Color020' => '#10ad61', 'Color030' => '#35a4de', 'Color040' => '#3d78da', 'Color050' => '#9058cb',
  12. 'Color060' => '#de9c33', 'Color070' => '#ebac16', 'Color080' => '#f9861f', 'Color081' => '#f08500', 'Color082' => '#a9d92d',
  13. 'Color090' => '#e75735', 'Color100' => '#d54036', 'Color101' => '#cf3e36'
  14. );
  15. if($do == 'display') {
  16. $type = trim($_GPC['type']) ? trim($_GPC['type']) : 'discount';
  17. $condition = ' WHERE acid = :acid AND type = :type AND is_display = 1 AND status = 3';
  18. $parma[':acid'] = $_W['acid'];
  19. $parma[':type'] = $type;
  20. $pindex = max(1, intval($_GPC['page']));
  21. $psize = 20;
  22. $total = pdo_fetchcolumn('SELECT COUNT(*) FROM ' . tablename('coupon') . $condition, $parma);
  23. $data = pdo_fetchall('SELECT id,card_id,title,color,brand_name,date_info FROM ' . tablename('coupon') . $condition . ' ORDER BY id DESC LIMIT ' .($pindex - 1) * $psize.','.$psize, $parma);
  24. if(!empty($data)) {
  25. foreach($data as &$da) {
  26. $da['date_info'] = @iunserializer($da['date_info']);
  27. if($da['date_info']['time_type'] == 1) {
  28. $da['endtime'] = '有效期至:' . $da['date_info']['time_limit_end'];
  29. } else {
  30. $da['endtime'] = '领取后' . $da['date_info']['deadline'] . '天生效' . $da['date_info']['limit'] . '天内有效';
  31. }
  32. }
  33. }
  34. $pager = pagination($total, $pindex, $psize);
  35. }
  36. if($do == 'detail') {
  37. $id = intval($_GPC['id']);
  38. load()->classs('coupon');
  39. $acc = new coupon($_W['acid']);
  40. $status = $acc->AddCard($id);
  41. $out['errno'] = 0;
  42. $out['error'] = '';
  43. if(is_error($status)) {
  44. $out['errno'] = 1;
  45. $out['error'] = $status['message'];
  46. exit(json_encode($out));
  47. }
  48. $out['error'] = $status;
  49. exit(json_encode($out));
  50. }
  51. if($do == 'use') {
  52. $card_id = trim($_GPC['card_id']);
  53. $encrypt_code = trim($_GPC['encrypt_code']);
  54. $openid = trim($_GPC['openid']);
  55. if(empty($card_id) || empty($encrypt_code)) {
  56. message('卡券签名参数错误');
  57. }
  58. $card = pdo_get('coupon', array('acid' => $_W['acid'], 'card_id' => $card_id));
  59. if(empty($card)) {
  60. message('卡券不存在或已删除');
  61. }
  62. $card['date_info'] = iunserializer($card['date_info']);
  63. $error_code = 0;
  64. $coupon = new coupon($_W['acid']);
  65. if(is_null($coupon)) {
  66. message('系统错误');
  67. }
  68. $code = $coupon->DecryptCode(array('encrypt_code' => $encrypt_code));
  69. if(is_error($code)) {
  70. $error_code = 1;
  71. } else {
  72. $record = pdo_get('coupon_record', array('acid' => $_W['acid'], 'card_id' => $card_id, 'code' => $code['code']));
  73. }
  74. if(checksubmit()) {
  75. $password = trim($_GPC['password']);
  76. $clerk = pdo_get('activity_clerks', array('uniacid' => $_W['uniacid'], 'password' => $password));
  77. if(empty($clerk)) {
  78. message('店员密码错误', referer(), 'error');
  79. }
  80. $code = $code['code'];
  81. if(!$code) {
  82. message('code码错误', referer(), 'error');
  83. }
  84. $status = $coupon->ConsumeCode(array('code' => $code));
  85. if(is_error($status)) {
  86. message($status['message'], referer(), 'error');
  87. }
  88. pdo_update('coupon_record', array('status' => 3, 'clerk_id' => $clerk['id'], 'clerk_type' => 3, 'store_id' => $clerk['storeid'], 'clerk_name' => $clerk['name'], 'usetime' => TIMESTAMP), array('acid' => $_W['acid'], 'card_id' => $card_id, 'openid' => $openid, 'code' => $code));
  89. message('核销微信卡券成功', url('mc/home'), 'success');
  90. }
  91. }
  92. if($do == 'qr') {
  93. require_once('../framework/library/qrcode/phpqrcode.php');
  94. $errorCorrectionLevel = "L";
  95. $matrixPointSize = "5";
  96. $id = intval($_GPC['id']);
  97. $code = trim($_GPC['code']);
  98. $url = murl('clerk/wechat', array('uid' => $_W['member']['uid'], 'id' => $id, 'code' => $code), false, true);
  99. QRcode::png($url, false, $errorCorrectionLevel, $matrixPointSize);
  100. exit();
  101. }
  102. template('wechat/card');