You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

197 lines
6.0 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

<?php
/**************************
* 本文件是公共功能函数库
* author sqc
* @php 小T科技
*
**************************/
/**
* 获取客户端ip地址
* @return string ip地址
*/
function getClientIP()
{
if (getenv("HTTP_CLIENT_IP"))
$ip = getenv("HTTP_CLIENT_IP");
else if (getenv("HTTP_X_FORWARDED_FOR"))
$ip = getenv("HTTP_X_FORWARDED_FOR");
else if (getenv("REMOTE_ADDR"))
$ip = getenv("REMOTE_ADDR");
else $ip = "Unknow";
return $ip;
}
/**
* 价格格式化
*
* @param int $price
* @return string $price_format
*/
function PriceFormat($price)
{
$price_format = number_format($price, 2, '.', '');
return $price_format;
}
/**
* PHP精确计算 主要用于货币的计算用法
* @param $n1 第一个数
* @param $symbol 计算符号 + - * / %
* @param $n2 第二个数
* @param string $scale 精度 默认为小数点后两位
* @return string
*/
function PriceCalculate($n1, $symbol, $n2, $scale = '2')
{
$res = "";
if (function_exists("bcadd")) {
switch ($symbol) {
case "+"://加法
$res = bcadd($n1, $n2, $scale);
break;
case "-"://减法
$res = bcsub($n1, $n2, $scale);
break;
case "*"://乘法
$res = bcmul($n1, $n2, $scale);
break;
case "/"://除法
$res = bcdiv($n1, $n2, $scale);
break;
case "%"://求余、取模
$res = bcmod($n1, $n2, $scale);
break;
default:
$res = "";
break;
}
} else {
switch ($symbol) {
case "+"://加法
$res = $n1 + $n2;
break;
case "-"://减法
$res = $n1 - $n2;
break;
case "*"://乘法
$res = $n1 * $n2;
break;
case "/"://除法
$res = $n1 / $n2;
break;
case "%"://求余、取模
$res = $n1 % $n2;
break;
default:
$res = "";
break;
}
}
return $res;
}
/**
* 价格由元转分
* @param $price 金额
* @return int
*/
function ncPriceYuan2fen($price)
{
$price = (int)PriceCalculate(100, "*", PriceFormat($price));
return $price;
}
/**
* 日志记录函数 该方法是用户插入mysql库中的 (与文件型日志不冲突 该方法在于admin后台可以实时看到异常 然后及时处理)
* @param [type] $type 错误日志记录类型 如order 订单类型的错误
* @param [type] $info 错误日志记录说明
* @param integer $error_level 错误等级 1:notice 2:warn 3:error
* @param string $msg 错误内容
* @param string $node 错误节点 一般可以写当前路由$request->path();
* @param string $remark 其他备注
*/
function add_my_log($type, $info, $error_level = 1, $msg = '', $node = 'node',$goal_id = 0, $remark = '')
{
$new_log = new App\Models\ErrorsLog;
$new_log->type = $type;
$new_log->error_level = $error_level;
$new_log->info = $info;
$new_log->msg = $msg;
$new_log->node = $node;
$new_log->ip = getClientIP();
$new_log->result = 1;
$new_log->remark = $remark;
$new_log->goal_id = $goal_id;
$new_log->save();
}
/**
* 微信消息的通知
* @param [type] $order_info [订单信息]
* @param [type] $status [操作代码]
*/
function addWxMsg_toUser($orders_info, $status = '26')
{
if (empty($orders_info)) return false;
$app = EasyWeChat\Factory::officialAccount(config('wechat.official_account.default'));
$User = new App\User;
$user_info = $User->find($orders_info['uid']);
$url = env('APP_URL') . '/my-order?status=3';
if (!$user_info->openid) {
return false;
}
$data = array(
"keyword1" => array($orders_info['order_sn'], "#888888"),// 订单号
"keyword2" => array($orders_info['pay_price'], "#336699"),// 订单金额
"keyword3" =>array($orders_info['plate_number'], "#888888"),// 车辆信息
"keyword4" => array(date('Y-m-d',strtotime($orders_info['apply_time'])), "#888888"),
"remark" => array($orders_info['check_info']." 请您尽快核查~", "#5599FF"),
);
// 检测通过
if($status == App\Models\CheckStation\ApplyOrder::STATUS_PASS){
$data["first"] = array("您的车辆已检测通过", '#43CD80');
}else if($status == App\Models\CheckStation\ApplyOrder::STATUS_NO_PASS){
$data["first"] = array("您的车辆未检测通过", '#EE2C2C');
}
$app->template_message->send([
'touser' => $user_info->openid,
'template_id' => 'FQ7dAfjzepCgFtPhfLjOmONX0SkjVSuL_2zYNtLNuu8',
'url' => $url,
'data' =>$data
]);
}
//if (empty($orders_info)) return false;
//$app = EasyWeChat\Factory::officialAccount(config('wechat.official_account.default'));
//$User = new App\User;
//$user_info = $User->find($orders_info['uid']);
//$url = env('APP_URL') . '/my-order?status=3';
//if (!$user_info->openid) {
// return false;
//}
//$data = array(
// "keyword1" => array($orders_info['true_name'], "#336699"),// 客户
// "keyword2" => array($orders_info['pay_price'], "#336699"),// 订单金额
// "keyword3" => array($orders_info['order_sn'], "#888888"),// 订单号
// "keyword4" => array(date('Y-m-d H:i:s'), "#888888"),
// "remark" => array($orders_info['check_info']." 请您尽快核查~", "#5599FF"),
//);
//// 检测通过
//if($status == App\Models\CheckStation\ApplyOrder::STATUS_PASS){
// $data["first"] = array("您的车辆已检测通过", '#43CD80');
//}else if($status == App\Models\CheckStation\ApplyOrder::STATUS_NO_PASS){
// $data["first"] = array("您的车辆未检测通过", '#EE2C2C');
//}
//$app->template_message->send([
// 'touser' => $user_info->openid,
// 'template_id' => '30kgXpgxkuH-FK7f4iN3ya-l9vO4IS7wPbI5TghWr7M',
// 'url' => $url,
// 'data' =>$data
//]);
?>