| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 | 
							- <?php
 
- namespace app\common\util;
 
- use app\common\service\OrderService;
 
- use Carbon\Carbon;
 
- class DonationCert
 
- {
 
-     public static function certByOrder($order)
 
-     {
 
-         $carbon = Carbon::parse($order->pay_time);
 
-         $date = $carbon->isoFormat('YYYY年MM月DD日');
 
-         $position = OrderService::orderPositionInDate($order);
 
-         $certNo = $carbon->isoFormat('YYYYMMDD') . sprintf('%04d', $position);
 
-         return self::cert($order->user_name, $order->money, $date, $certNo);
 
-     }
 
-     public static function cert($name, $money, $date, $certNo)
 
-     {
 
-         // 创建一张新的图片
 
-         $image = imagecreatefromjpeg('image.jpg');
 
-         // 设置文字颜色和字体大小
 
-         $gray = imagecolorallocate($image, 102, 102, 102);
 
-         $black = imagecolorallocate($image, 46, 46, 46);
 
-         $green = imagecolorallocate($image, 7, 193, 96);
 
-         $font = 'PingFang.ttf';
 
-         $semibold = 'PingFangSemiBold.ttf';
 
-         // 姓名
 
-         $x = 90; // 文本在图片中的x坐标
 
-         $y = 550; // 文本在图片中的y坐标
 
-         imagettftext($image, 36, 0, $x, $y, $black, $semibold, $name);
 
-         // 谢谢你
 
-         $thx = '谢谢你:';
 
-         $x = $x + 12 + strlen($name) * 15;
 
-         imagettftext($image, 18, 0, $x, $y, $gray, $font, $thx);
 
-         // 感谢语金额
 
-         $suffix = 2;
 
-         if ($money >= 10 * 10000 && $money < 100 * 10000) {
 
-             $suffix = 1;
 
-         } elseif ($money >= 100 * 10000) {
 
-             $suffix = 0;
 
-         }
 
-         $money = number_format($money, $suffix, '.', '');
 
-         $x = 265;
 
-         $y = 625;
 
-         imagettftext($image, 28, 0, $x, $y, $green, $semibold, $money);
 
-         // 下方列表
 
-         $formX = 258;
 
-         $formY = 870;
 
-         $gap = 86; //中间间隔
 
-         // 证书编号
 
-         imagettftext($image, 24, 0, $formX, $formY, $black, $font, $certNo);
 
-         // 捐赠金额
 
-         $formY += $gap;
 
-         imagettftext($image, 28, 0, $formX, $formY, $green, $semibold, $money);
 
-         // 发放时间
 
-         $formY += $gap;
 
-         imagettftext($image, 24, 0, $formX, $formY, $black, $font, $date);
 
-         // 输出图片
 
-         $name = md5(strtotime('now') . random_int(100000, 999999)) . '.png';
 
-         $dir = public_path() . "storage/";
 
-         if (!file_exists($dir)) {
 
-             mkdir($dir, 0777, true);
 
-         }
 
-         $path = $dir . $name;
 
-         imagepng($image, $path);
 
-         $url = self::get_domain() . dirname($_SERVER['SCRIPT_NAME']) . '/' . $name;
 
-         $url = str_replace('\\', '/', $url);
 
-         $url = str_replace('public', 'public/storage', $url);
 
-         // 释放内存
 
-         imagedestroy($image);
 
-         return ['url' => $url];
 
-     }
 
-     /**
 
-      * 获取当前网站的域名地址
 
-      * 
 
-      * @return string 域名地址
 
-      */
 
-     protected static function get_domain()
 
-     {
 
-         $sys_protocal = isset($_SERVER['SERVER_PORT']) && $_SERVER['SERVER_PORT'] == '443' ? 'https://' : 'http://';
 
-         return $sys_protocal . (isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : '');
 
-     }
 
- }
 
 
  |