Excel.php 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164
  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. $d = array
  38. (
  39. $v['order_num'],
  40. $member_name,
  41. $member_mobile,
  42. $active_name,
  43. $v['num'],
  44. $code_num,
  45. $v['price'],
  46. $status,
  47. $pay_type,
  48. $cdate,
  49. );
  50. $body[] = $d;
  51. }
  52. $file = Dever::input('excel_name');
  53. return Dever::excelExport($body, $header, $file);
  54. }
  55. #活动核销码导出
  56. public function out_active_code($data)
  57. {
  58. $header = array('活动名称', '参加人姓名', '参加人手机号', '购买人姓名', '购买人手机号', '领取日期','座位号');
  59. $body = array();
  60. foreach ($data as $k => $v) {
  61. $active_name = '';
  62. if ($v['active_id']) {
  63. $active = Dever::db('active/info')->find($v['active_id']);
  64. $active_name = $active['name'];
  65. }
  66. $join_name = '';
  67. $join_mobile = '';
  68. if ($v['join_uid']) {
  69. $user = Dever::db('active/user')->find($v['join_uid']);
  70. if ($user){
  71. $join_name = $user['name'];
  72. $join_mobile = $user['mobile'];
  73. }
  74. }
  75. $buy_name = '';
  76. $buy_mobile = '';
  77. if ($v['buy_uid']) {
  78. $user = Dever::db('active/user')->find($v['buy_uid']);
  79. if ($user){
  80. $buy_name = $user['name'];
  81. $buy_mobile = $user['mobile'];
  82. }
  83. }
  84. $cdate = '';
  85. if ($v['cdate']) {
  86. $cdate = date('Y-m-d H:i:s',$v['cdate']);
  87. }
  88. $seat_num = '';
  89. if ($v['seat_num']) {
  90. $seat_num = $v['seat_num'];
  91. }
  92. $d = array
  93. (
  94. $active_name,
  95. $join_name,
  96. $join_mobile,
  97. $buy_name,
  98. $buy_mobile,
  99. $cdate,
  100. $seat_num,
  101. );
  102. $body[] = $d;
  103. }
  104. $file = Dever::input('excel_name');
  105. return Dever::excelExport($body, $header, $file);
  106. }
  107. public function import($file)
  108. {
  109. $file = Dever::local($file);
  110. $data = Dever::excelImport($file,0);
  111. // print_R($data);die;
  112. if ($data) {
  113. $res = array();
  114. foreach($data as $k=>$v){
  115. if ($k>=2) {
  116. $active_name = $v['A'];
  117. $mobile = trim($v['C']);
  118. // $seat_num = $v['G'];
  119. if (isset($v['G']) && $v['G']) {
  120. $active = Dever::db('active/info')->find(array('name'=>$active_name));
  121. $user = Dever::db('active/user')->find(array('mobile'=>$mobile));
  122. $code = Dever::db('active/code')->find(array('active_id'=>$active['id'],'join_uid'=>$user['id']));
  123. $where['where_id'] = $code['id'];
  124. $where['seat_num'] = $v['G'];
  125. Dever::db('active/code')->update($where);
  126. }
  127. }
  128. }
  129. }
  130. }
  131. public function info_off($file)
  132. {
  133. $file = Dever::local($file);
  134. $data = Dever::excelImport($file,0);
  135. if ($data) {
  136. $res = array();
  137. foreach ($data as $k => $v) {
  138. if ($k >= 2) {
  139. $where['name'] = $v['A'];
  140. $where['mobile'] = $v['B'];
  141. if ($where['mobile']) {
  142. $where['pass'] = substr($where['mobile'],-6);
  143. }
  144. $info = Dever::db('active/info_off')->find(array('mobile'=>$where['mobile'],'clear'=>true));
  145. if (!$info){
  146. Dever::db('active/info_off')->insert($where);
  147. } else {
  148. if ($info && $info['pass'] != sha1(substr($info['mobile'],-6))) {
  149. $w['where_id'] = $info['id'];
  150. $w['pass'] = substr($info['mobile'],-6);
  151. Dever::db('active/info_off')->update($w);
  152. }
  153. }
  154. }
  155. }
  156. }
  157. }
  158. }