优惠券订单及其他脚本

finance_export.php 5.5KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145
  1. <?php
  2. define( "ROOT_PATH", dirname(dirname(__FILE__)) );
  3. require_once ROOT_PATH.'/DB_PDO.class.php';
  4. require_once ROOT_PATH.'/confv2.class.php';
  5. require_once ROOT_PATH.'/PHPExcel-1.8/Classes/PHPExcel.php';
  6. require_once ROOT_PATH.'/PHPExcel-1.8/Classes/PHPExcel/IOFactory.php';
  7. require_once ROOT_PATH.'/PHPExcel-1.8/Classes/PHPExcel/Reader/Excel5.php';
  8. require_once ROOT_PATH.'/PHPMailer/ClassPhpMailer.php';
  9. /* 月底猎豆预估报表发给财务 */
  10. date_default_timezone_set('PRC');
  11. $_PDO=DB_PDO::getInstance( conf::$DB_CONF );
  12. $stime = date('Y-m-01');
  13. $etime = date('Y-m-d') . ' 23:59:59';
  14. $sql = " select left(`create_time`, 10) as day,sum(`pub_share_pre_fee`) as money from `liedou_taoke_orders` where trade_id in(
  15. select order_id from `order_rebate` where status>0 and order_create_at>='{$stime}' and order_create_at<'{$etime}' and `maintain_power`<3
  16. ) group by day order by day ";
  17. $stmt = $_PDO->prepare($sql);
  18. $stmt->execute();
  19. $result = $stmt->fetchAll(PDO::FETCH_ASSOC);
  20. foreach ($result as $k => &$v) {
  21. $v['money'] = $v['money'] * 100; //转成分
  22. #佣金
  23. $v['rebate'] = get_rebate( $v['day'] );
  24. $v['rebate_profit'] = get_rebate_profit( $v['day'] );
  25. $v['remain'] = $v['money'] - $v['rebate'] - $v['rebate_profit'];
  26. $v['remain_rate'] = $v['remain'] / $v['money'];
  27. }
  28. $m = date('m');
  29. $indexKey = ['day', 'money', 'rebate', 'rebate_profit', 'remain', 'remain_rate'];
  30. $title = ['日期', '总佣金(分)', '分配佣金(分)', '分配津贴(分)', '系统留存(分)', '留存占比'];
  31. $filename = '猎豆'. $m .'月份预估佣金统计_'.date('Y-m-d').'.xlsx';
  32. export_excel($result, $filename, $indexKey, $title);
  33. $to = 'hao.sun@kuxuan-inc.com';
  34. $subject = '猎豆'.$m.'月份预估佣金明细';
  35. $body = '猎豆'.$m.'月份预估佣金明细统计Excel报表,详情请查看附件。';
  36. $attachment = './'.$filename;
  37. $re = sendMail($to, $subject, $body, $attachment);
  38. var_dump($re);
  39. function get_rebate( $day ){
  40. $eday = $day . ' 23:59:59';
  41. $_PDO=DB_PDO::getInstance( conf::$DB_CONF );
  42. $sql = " select sum(rebate) as rebate from order_rebate where status>0 and order_create_at>='{$day}' and order_create_at<='{$eday}' and maintain_power<3 ";
  43. $stmt = $_PDO->prepare($sql);
  44. $stmt->execute();
  45. $res = $stmt->fetch(PDO::FETCH_ASSOC);
  46. if( empty($res) ){
  47. return false;
  48. }
  49. return $res['rebate'];
  50. }
  51. function get_rebate_profit( $day ){
  52. $eday = $day . ' 23:59:59';
  53. $_PDO=DB_PDO::getInstance( conf::$DB_CONF );
  54. $sql = " select sum(rebate) as rebate from order_rebate_profit where status>0 and order_create_at>='{$day}' and order_create_at<='{$eday}' and maintain_power<3 ";
  55. $stmt = $_PDO->prepare($sql);
  56. $stmt->execute();
  57. $res = $stmt->fetch(PDO::FETCH_ASSOC);
  58. if( empty($res) ){
  59. return false;
  60. }
  61. return $res['rebate'];
  62. }
  63. /**
  64. * 导出excel
  65. * @param $data
  66. * @param string
  67. */
  68. function export_excel($data, $filename = '未命名.xlsx', $indexKey, $title) {
  69. if( !is_array($indexKey)) return false;
  70. $header_arr = array('A','B','C','D','E','F','G','H','I','J','K','L','M', 'N','O','P','Q','R','S','T','U','V','W','X','Y','Z','AA','AB','AC','AD','AE','AF','AG','AH','AI','AJ','AK');
  71. //初始化PHPExcel()
  72. $objPHPExcel = new PHPExcel();
  73. $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
  74. //接下来就是写数据到表格里面去
  75. $objActSheet = $objPHPExcel->getActiveSheet();
  76. foreach($title as $k=>$item){
  77. $objActSheet->setCellValue($header_arr[$k].'1',$item);
  78. }
  79. $startRow = 2;
  80. foreach ($data as $row) {
  81. foreach ($indexKey as $key => $value){
  82. //这里是设置单元格的内容
  83. $objActSheet->setCellValue($header_arr[$key].$startRow,$row[$value]);
  84. }
  85. $startRow++;
  86. }
  87. $objWriter->save('./'.$filename);
  88. return;
  89. }
  90. /**
  91. * @method sendMail 发送邮件
  92. * @param $to
  93. * @param $subject
  94. * @param string $body
  95. * @param null $attachment
  96. * @return bool|string
  97. * @throws \phpmailerException
  98. */
  99. function sendMail($to, $subject, $body = '', $attachment = null) { //$to 收件者 $subject主题 $body 内容 $attachment附件
  100. //邮件服务器配置
  101. $detail = array(
  102. "smpt" => "smtp.exmail.qq.com",
  103. "account" => "ldscript@kuxuan-inc.com",
  104. "pwd" => "Kuxuan2019",
  105. );
  106. $title = "";
  107. $mail = new PHPMailer(); //PHPMailer对象
  108. $mail->CharSet = 'utf-8'; //设定邮件编码,默认ISO-8859-1,如果发中文此项必须设置,否则乱码
  109. $mail->Encoding = "base64";
  110. $mail->IsSMTP(); // 设定使用SMTP服务
  111. $mail->SMTPDebug = 0; // 关闭SMTP调试功能
  112. $mail->SMTPAuth = true; // 启用 SMTP 验证功能
  113. $mail->SMTPSecure = 'ssl'; // 使用安全协议
  114. $mail->Host = $detail['smpt']; // SMTP 服务器
  115. $mail->Port = "465"; // SMTP服务器的端口号
  116. $mail->Username = $detail['account']; // SMTP服务器用户名
  117. $mail->Password = $detail['pwd']; // SMTP服务器密码
  118. $mail->Subject = $subject; //邮件标题
  119. $mail->SetFrom($detail['account'], $title);
  120. $mail->MsgHTML($body);
  121. $mail->AddAddress($to);
  122. $mail->AddAddress("yu.fu@kuxuan-inc.com");
  123. $mail->AddAddress("ming.li@kuxuan-inc.com");
  124. $mail->AddAddress("wanlu.zhang@kuxuan-inc.com");
  125. $mail->AddAddress("jingjing.jiang@kuxuan-inc.com");
  126. $mail->AddAttachment($attachment);
  127. $rs = $mail->Send() ? true : $mail->ErrorInfo;
  128. return $rs;
  129. }