Excel.php 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177
  1. <?php
  2. namespace Active\Lib;
  3. use Dever;
  4. Class Excel {
  5. #活动订单的导出
  6. public function out_active_order($data){
  7. $header = array('订单单号', '姓名', '手机号', '活动名称', '购买数量', '使用数量','待核销数量','已核销数量','金额', '支付状态', '支付类型','购买时间');
  8. $body = array();
  9. foreach ($data as $k => $v){
  10. $user = Dever::db('active/user')->find($v['uid']);
  11. $member = Dever::load('active/lib/user')->agent($user);
  12. $active = Dever::db('active/info')->find($v['active_id']);
  13. $member_name = '';
  14. $member_mobile = '';
  15. if($user){
  16. $member_name = $user['name'];
  17. $member_mobile = $user['mobile'];
  18. }
  19. $active_name = '';
  20. if($active && $active['name']){
  21. $active_name = $active['name'];
  22. }
  23. $config_status = Dever::db('active/order')->config['config_status'];
  24. $status = Dever::status($config_status,$v['status']);
  25. $config_pay_type = Dever::db('active/order')->config['config_pay_type'];
  26. $pay_type = Dever::status($config_pay_type,$v['pay_type']);
  27. $cdate = '';
  28. if($v['cdate']){
  29. $cdate = date('Y-m-d H:i',$v['cdate']);
  30. }
  31. $code_num = '';
  32. if ($v['code_num']<0){
  33. $code_num = 0;
  34. } else {
  35. $code_num = $v['code_num'];
  36. }
  37. $yhecode = Dever::db('active/code')->getExcel(array('order_id' => $v['id'],'status'=>2));
  38. $dhecode = Dever::db('active/code')->getExcel(array('order_id' => $v['id'],'status'=>1));
  39. $d = array
  40. (
  41. $v['order_num'],
  42. $member_name,
  43. $member_mobile,
  44. $active_name,
  45. $v['num'],
  46. $code_num,
  47. $dhecode,
  48. $yhecode,
  49. $v['price'],
  50. $status,
  51. $pay_type,
  52. $cdate,
  53. );
  54. $body[] = $d;
  55. }
  56. $file = Dever::input('excel_name');
  57. return Dever::excelExport($body, $header, $file);
  58. }
  59. #活动核销码导出
  60. public function out_active_code($data)
  61. {
  62. $header = array('活动名称', '参加人姓名', '参加人手机号', '购买人姓名', '购买人手机号', '领取日期','座位号','核销状态');
  63. $body = array();
  64. foreach ($data as $k => $v) {
  65. $active_name = '';
  66. if ($v['active_id']) {
  67. $active = Dever::db('active/info')->find($v['active_id']);
  68. $active_name = $active['name'];
  69. }
  70. $join_name = '';
  71. $join_mobile = '';
  72. if ($v['join_uid']) {
  73. $user = Dever::db('active/user')->find($v['join_uid']);
  74. if ($user){
  75. $join_name = $user['name'];
  76. $join_mobile = $user['mobile'];
  77. }
  78. }
  79. $buy_name = '';
  80. $buy_mobile = '';
  81. if ($v['buy_uid']) {
  82. $user = Dever::db('active/user')->find($v['buy_uid']);
  83. if ($user){
  84. $buy_name = $user['name'];
  85. $buy_mobile = $user['mobile'];
  86. }
  87. }
  88. $cdate = '';
  89. if ($v['cdate']) {
  90. $cdate = date('Y-m-d H:i:s',$v['cdate']);
  91. }
  92. $seat_num = '';
  93. if ($v['seat_num']) {
  94. $seat_num = $v['seat_num'];
  95. }
  96. $status_name = '';
  97. if ($v['status'] == 1) {
  98. $status_name = '待核销';
  99. } elseif ($v['status'] == 2) {
  100. $status_name = '已核销';
  101. } elseif ($v['status'] == 3) {
  102. $status_name = '已作废';
  103. }
  104. $d = array
  105. (
  106. $active_name,
  107. $join_name,
  108. $join_mobile,
  109. $buy_name,
  110. $buy_mobile,
  111. $cdate,
  112. $seat_num,
  113. $status_name,
  114. );
  115. $body[] = $d;
  116. }
  117. $file = Dever::input('excel_name');
  118. return Dever::excelExport($body, $header, $file);
  119. }
  120. public function import($file)
  121. {
  122. $file = Dever::local($file);
  123. $data = Dever::excelImport($file,0);
  124. // print_R($data);die;
  125. if ($data) {
  126. $res = array();
  127. foreach($data as $k=>$v){
  128. if ($k>=2) {
  129. $active_name = $v['A'];
  130. $mobile = trim($v['C']);
  131. // $seat_num = $v['G'];
  132. if (isset($v['G']) && $v['G']) {
  133. $active = Dever::db('active/info')->find(array('name'=>$active_name));
  134. $user = Dever::db('active/user')->find(array('mobile'=>$mobile));
  135. $code = Dever::db('active/code')->find(array('active_id'=>$active['id'],'join_uid'=>$user['id']));
  136. $where['where_id'] = $code['id'];
  137. $where['seat_num'] = $v['G'];
  138. Dever::db('active/code')->update($where);
  139. }
  140. }
  141. }
  142. }
  143. }
  144. public function info_off($file)
  145. {
  146. $file = Dever::local($file);
  147. $data = Dever::excelImport($file,0);
  148. if ($data) {
  149. $res = array();
  150. foreach ($data as $k => $v) {
  151. if ($k >= 2) {
  152. $where['name'] = $v['A'];
  153. $where['mobile'] = $v['B'];
  154. if ($where['mobile']) {
  155. $where['pass'] = substr($where['mobile'],-6);
  156. }
  157. $info = Dever::db('active/info_off')->find(array('mobile'=>$where['mobile'],'clear'=>true));
  158. if (!$info){
  159. Dever::db('active/info_off')->insert($where);
  160. } else {
  161. if ($info && $info['pass'] != sha1(substr($info['mobile'],-6))) {
  162. $w['where_id'] = $info['id'];
  163. $w['pass'] = substr($info['mobile'],-6);
  164. Dever::db('active/info_off')->update($w);
  165. }
  166. }
  167. }
  168. }
  169. }
  170. }
  171. }