提交订单系统自动发送邮件到收件人邮箱优化(邮件内容信息以月为单位)

/**
 * CSP 订单添加增值服务并完成质检提交后系统自动发邮件到收件人邮箱
 * 传参?date = 2017-06-01 && warehouse = 1 && rerun = 1
 * 默认日期为每月 1 号到运行的前一天,默认仓库为 1
 */
require_once( 'config.php' );
$flagFile = dirname(__FILE__) . '/qc-csp-email';
if (@file_exists($flagFile)) {
     Common_Service_Common::autoRunFlag($flagFile, __FILE__, 2);
     die('程序正在运行。');
}
ini_set('memory_limit', '-1');
set_time_limit(0);
define('RUNTIME', '[ ' . date('Y-m-d H:i:s') . ' ] ');
echo RUNTIME . "Starting!\n";
$warehouse = '11';
$reRun = false;
$start_date = date("Y-m-d H:i:s", mktime( 0, 0, 0, date("m"), 1, date("Y")));
$end_dates = date("Y-m-d 23:59:59", strtotime("-1 day"));
$putObj = new Product_Service_QcProccess();
for (; $start_date < $end_dates;) {
     $end_date = date("Y-m-d 23:59:59", strtotime("+1 day", strtotime($start_date)));
     $date = $start_date;
     echo $start_date . "\n";
     $start_date = date('Y-m-d H:i:s', strtotime($start_date) + 24 * 3600);
}
$email_start_date = date("Y-m-d H:i:s", mktime( 0, 0, 0, date("m"), 1, date("Y")));
//休眠 5 秒后等待数据同步
sleep(5);
$putObj->QcCSPEmail($email_start_date, $end_dates, $warehouse);
echo "[ " . date('Y-m-d H:i:s') . " ] 结束运行\r\n";
@unlink($flagFile);


/*
     * CSP 订单添加增值服务并完成质检提交后系统自动发邮件到收件人邮箱
     * $start_date                               前一天时间
     * $end_dates                              当天时间
     * $warehouse   (string)              仓库
     */
    public static function QcCSPEmail( $start_date, $end_date, $warehouse = "11" ) {
         //根据时间限制获取对应数据
         $condition = array(
                 "start_date" => date( "Y-m-d H:i:s", strtotime( $start_date ) ),
                 "end_date" => date( "Y-m-d H:i:s", strtotime( $end_date ) ),
                 "warehouse_id" => $warehouse,
         );
         $dataList = Special_Service_SpecialProjectOrderLog::getByCond( $condition, "*", array( "spol_create_date" ) );
         //组合数组以时间为键名
         $date = array();
         foreach ( $dataList as $value ) {
              if ( $value['spol_msg_type'] == 1 ) {
                    $da = date( 'Y-m-d', strtotime( $value['spol_create_date'] ) );
                    $date[$da][] = $value;
               }
          }
          //对数组按照键名逆向排序
          krsort($date);
          /*
           * 整合邮件内容
           * 遍历每天
           */
          foreach ( $date as $key => $value ) {
               $content .= "\n". $key . "\n";
               $content .= "ASN单号,采购单号,QC单号,CSP,增值服务项,原因,操作员,日期\n";
               //遍历一天中的单号
                foreach( $value as $va ) {
                    $spoRefCode = Special_Service_SpecialProjectOrder::getBySpoCode( $va['spo_code'] );
                    $qcoCode = Product_Service_QualityControlOrder::getQcoCode( $spoRefCode['spo_ref_code'] );
                    $receivingCode = Product_Service_Receiving::getByReceivingCode( $qcoCode['qco_ref_code'] );
                    $spoCode = Special_Service_SpecialProjectItem::getBySpoCodeAll( $va['spo_code'] );
                    $Is_show = $receivingCode['plat_form'] == "CSP" ? '是' : '否';
                    $spolNote = explode( ';', $va['spol_note'] );
                    $userId = User_Service_User::getByUserId( $va['user_id'] );
                    //遍历一个单号中的增值服务项
                    foreach( $spoCode as $k => $v ) {
                         $pocValueCn = Special_Service_SpecialProjectOptions::getById( $v['poc_id'] );
                         $content .= $qcoCode['qco_ref_code'] . ',' 
                                 . "\t" . $receivingCode['ref_id'] . ','
                                 . $spoRefCode['spo_ref_code'] . ','
                                 . $Is_show . ','
                                 . $pocValueCn['spop_value_cn'] . ','
                                 . $spolNote[$k] . ','
                                 . $userId['name'] . ','
                                 . $va['spol_create_date'] . "\n";
                      }
                }
          }
         //获取收件人邮箱
         $configAttribute = Common_Service_Config::getByAttribute( 'CSP_EXCEPTION_LIST_EMAIL' );
         if( !empty( $configAttribute ) ) {
              $mailUser = explode( ';', $configAttribute['config_value'] );
         } else {
              die( '请添加邮箱地址!' );
         }
         //发送邮件对应处理
         $content = iconv( "UTF-8", "GBK", $content );
         $mail_subject = "CSP 订单报表";
         $mail = Cff::setupMail();
         $mail->setBodyHtml( 'CSP 订单,请跟进!' );
         $mail->addTo( $mailUser, $mail_subject );
         $mail->setSubject( $mail_subject );
         $at = $mail->createAttachment( $content );
         $at->type = 'application/vnd.ms-excel';
         $at->disposition = Zend_Mime::DISPOSITION_INLINE;
         $at->encoding = Zend_Mime::ENCODING_8BIT;
         $at->filename = iconv( "UTF-8", "GB2312", $mail_subject . date( 'Y-m-d' ) . '.csv' );
         $mail->send();
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值