xieruidong %!s(int64=2) %!d(string=hai) anos
pai
achega
ea62a0efdb

+ 7 - 0
application/admin/controller/user/User.php

@@ -3,6 +3,7 @@
 namespace app\admin\controller\user;
 
 use app\admin\model\Coupon;
+use app\admin\model\OrderInfo;
 use app\common\controller\Backend;
 use app\common\library\Auth;
 use app\common\model\Programme;
@@ -70,6 +71,12 @@ class User extends Backend
         $buyAmount=$user->orders()->payed()->sum('amount_pay');
         $this->assign('buyNum',$buyNum);
         $this->assign('buyAmount',$buyAmount);
+        #产品统计
+        $buyGoods=$user->orderInfo()->payed()->group('goods_id')->column('sum(amount_pay) as amount,sum(num) as num,goods_name');
+        $this->assign('buyGoods',$buyGoods);
+        #分类统计
+        $bugCategory=$user->orderInfo()->payed()->group('category_id')->column('sum(amount_pay) as amount,sum(num) as num,category_name');
+        $this->assign('bugCategory',$bugCategory);
         return $this->fetch();
     }
 

+ 1 - 1
application/admin/model/OrderInfo.php

@@ -2,9 +2,9 @@
 
 namespace app\admin\model;
 
+use think\db\Query;
 use think\Model;
 
-
 class OrderInfo extends \app\common\model\OrderInfo
 {
     public function goods(){

+ 0 - 5
application/admin/model/Orders.php

@@ -6,7 +6,6 @@ use think\db\Query;
 use think\Model;
 
 /**
- * @method static static payed()
  */
 class Orders extends \app\common\model\Orders
 {
@@ -18,8 +17,4 @@ class Orders extends \app\common\model\Orders
     {
         return parent::logistics()->setEagerlyType(0);
     }
-
-    public function scopePayed(Query $query){
-        $query->whereNotIn('status',[self::S_CANCEL,self::S_WAIT_PAY]);
-    }
 }

+ 35 - 2
application/admin/view/user/user/show.html

@@ -17,7 +17,40 @@
     <tr><td>销售人员</td><td>{$user.admin.nickname|default='无'}</td></tr>
     <tr><td>总采购数量</td><td>{$buyNum}</td></tr>
     <tr><td>总支付额</td><td>{$buyAmount}</td></tr>
-    <tr><td>产品</td><td>
-
+    <tr><td>产品统计</td><td>
+        <table class="table">
+            <tr>
+                <td>商品</td>
+                <td>数量</td>
+                <td>金额</td>
+            </tr>
+            {foreach name="buyGoods" item='a'}
+            <tr>
+                <td>
+                    <div style="width: 250px;word-break: break-all;white-space: break-spaces;">{$a.goods_name}</div>
+                </td>
+                <td>{$a.num}</td>
+                <td>{$a.amount}</td>
+            </tr>
+            {/foreach}
+        </table>
+    </td></tr>
+    <tr><td>品类统计</td><td>
+        <table class="table">
+            <tr>
+                <td>名称</td>
+                <td>数量</td>
+                <td>金额</td>
+            </tr>
+            {foreach name="bugCategory" item='a'}
+            <tr>
+                <td>
+                    <div style="width: 100px;word-break: break-all;white-space: break-spaces;">{$a.category_name}</div>
+                </td>
+                <td>{$a.num}</td>
+                <td>{$a.amount}</td>
+            </tr>
+            {/foreach}
+        </table>
     </td></tr>
 </table>

+ 7 - 0
application/common/model/OrderInfo.php

@@ -2,11 +2,13 @@
 
 namespace app\common\model;
 
+use think\db\Query;
 use think\Model;
 
 /**
  * @property Orders orders
  * @property Refund refund
+ * @method static static payed()
  */
 class OrderInfo extends Model
 {
@@ -71,6 +73,11 @@ class OrderInfo extends Model
 
 
 
+    public function scopePayed(Query $query){
+        $query->whereExists(
+            Orders::payed()->whereRaw("{$this->getTable()}.order_id=orders.id")->buildSql()
+        );
+    }
 
 
 

+ 6 - 0
application/common/model/Orders.php

@@ -2,6 +2,7 @@
 
 namespace app\common\model;
 
+use think\db\Query;
 use think\Model;
 use Yansongda\Supports\Arr;
 
@@ -10,6 +11,7 @@ use Yansongda\Supports\Arr;
  * @property User user
  * @property bool is_wait_pay
  * @property Payment payment
+ * @method static static payed()
  */
 class Orders extends Model
 {
@@ -255,6 +257,10 @@ class Orders extends Model
 
 
 
+    public function scopePayed(Query $query){
+        $query->whereNotIn('status',[self::S_CANCEL,self::S_WAIT_PAY]);
+    }
+