Просмотр исходного кода

Wesmiler 三勾多商户商城提交

wesmiler 3 лет назад
Родитель
Сommit
eb3ea30c3d
2 измененных файлов с 27 добавлено и 2 удалено
  1. 2 2
      app/api/model/supplier/PayOrder.php
  2. 25 0
      app/common.php

+ 2 - 2
app/api/model/supplier/PayOrder.php

@@ -68,12 +68,12 @@ class PayOrder extends PayOrderModel
             return $model->where(['app_id'=>self::$app_id,'shop_supplier_id'=> $shop_supplier_id,'pay_status'=> 20])->count('order_id');
         }else if($type == 2){
             $total = $model->where(['app_id'=>self::$app_id,'shop_supplier_id'=> $shop_supplier_id,'pay_status'=> 20])->sum('pay_price');
-            return round($total, 2);
+            return moneyFormat($total, 2);
         }else if($type == 3){
             return $model->where(['app_id'=>self::$app_id,'shop_supplier_id'=> $shop_supplier_id,'pay_status'=> 20])->where('pay_time','>=',$dayTime)->count('order_id');
         }else if($type == 4){
             $total = $model->where(['app_id'=>self::$app_id,'shop_supplier_id'=> $shop_supplier_id,'pay_status'=> 20])->where('pay_time','>=',$dayTime)->sum('pay_price');
-            return round($total, 2);
+            return moneyFormat($total, 2);
         }
     }
 

+ 25 - 0
app/common.php

@@ -356,4 +356,29 @@ function get_client_browser()
         return 'MicroMessage';
     }
     return '';
+}
+
+/**
+ * 金钱格式化小数点
+ * @param $money
+ * @param int $decimal 小数点位数,默认系统配置2位
+ * @return float
+ */
+function moneyFormat($money, $decimal=null){
+    $formatConfig = [];
+    $charset = !empty($formatConfig['charset'])? trim($formatConfig['charset']) : 'utf-8';
+    if($decimal === null){
+        $decimal = isset($formatConfig['moneyDecimal'])? intval($formatConfig['moneyDecimal']): 2;
+    }
+    $money = round($money, $decimal+1);
+    $data = explode('.', $money);
+    $money = isset($data[0])? $data[0] : 0;
+    $float = isset($data[1])? $data[1] : '';
+    $len = $float? mb_strlen($float, $charset) : 0;
+
+    $decimal = $decimal>=0? intval($decimal) : 2;
+    $num1 = isset($data[1])? $data[1] : '';
+    $float = $len>=$decimal? mb_substr($num1, 0, $decimal, $charset) : $float.str_repeat('0', $decimal-$len);
+    $money = $money.'.'.$float;
+    return number_format($money, $decimal, '.', '');
 }