فهرست منبع

修复后台订单管理,和订单退款处理积分和优惠券

sugar1569 6 سال پیش
والد
کامیت
3257a98d63

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 600 - 1
application/admin/controller/order/StoreOrder.php


+ 142 - 32
application/admin/model/order/StoreOrder.php

@@ -8,12 +8,14 @@
 namespace app\admin\model\order;
 namespace app\admin\model\order;
 
 
 
 
+use app\admin\model\ump\StoreCouponUser;
 use app\admin\model\wechat\WechatUser;
 use app\admin\model\wechat\WechatUser;
 use app\admin\model\ump\StorePink;
 use app\admin\model\ump\StorePink;
 use app\admin\model\order\StoreOrderCartInfo;
 use app\admin\model\order\StoreOrderCartInfo;
 use app\admin\model\store\StoreProduct;
 use app\admin\model\store\StoreProduct;
 use app\admin\model\routine\RoutineFormId;
 use app\admin\model\routine\RoutineFormId;
-use app\admin\model\routine\RoutineTemplate;
+use app\routine\model\routine\RoutineTemplate;
+use service\ProgramTemplateService;
 use service\PHPExcelService;
 use service\PHPExcelService;
 use traits\ModelTrait;
 use traits\ModelTrait;
 use basic\ModelBasic;
 use basic\ModelBasic;
@@ -21,6 +23,8 @@ use service\WechatTemplateService;
 use service\RoutineTemplateService;
 use service\RoutineTemplateService;
 use think\Url;
 use think\Url;
 use think\Db;
 use think\Db;
+use app\admin\model\user\User;
+use app\admin\model\user\UserBill;
 /**
 /**
  * 订单管理Model
  * 订单管理Model
  * Class StoreOrder
  * Class StoreOrder
@@ -38,9 +42,10 @@ class StoreOrder extends ModelBasic
         $data['jy']=self::statusByWhere(4,new self())->count();
         $data['jy']=self::statusByWhere(4,new self())->count();
         $data['tk']=self::statusByWhere(-1,new self())->count();
         $data['tk']=self::statusByWhere(-1,new self())->count();
         $data['yt']=self::statusByWhere(-2,new self())->count();
         $data['yt']=self::statusByWhere(-2,new self())->count();
-        $data['general']=self::where(['pink_id'=>0,'combination_id'=>0,'seckill_id'=>0])->count();
-        $data['pink']=self::where('pink_id|combination_id','neq',0)->count();
-        $data['seckill']=self::where('seckill_id','neq',0)->count();
+        $data['general']=self::where(['pink_id'=>0,'combination_id'=>0,'seckill_id'=>0,'bargain_id'=>0])->count();
+        $data['pink']=self::where('pink_id|combination_id','>',0)->count();
+        $data['seckill']=self::where('seckill_id','>',0)->count();
+        $data['bargain']=self::where('bargain_id','>',0)->count();
         return $data;
         return $data;
     }
     }
 
 
@@ -84,14 +89,15 @@ class StoreOrder extends ModelBasic
                         $item['color'] = '#457856';
                         $item['color'] = '#457856';
                         break;
                         break;
                 }
                 }
+            }elseif ($item['seckill_id']){
+                $item['pink_name'] = '[秒杀订单]';
+                $item['color'] = '#32c5e9';
+            }elseif ($item['bargain_id']){
+                $item['pink_name'] = '[砍价订单]';
+                $item['color'] = '#12c5e9';
             }else{
             }else{
-                if($item['seckill_id']){
-                    $item['pink_name'] = '[秒杀订单]';
-                    $item['color'] = '#32c5e9';
-                }else{
-                    $item['pink_name'] = '[普通订单]';
-                    $item['color'] = '#895612';
-                }
+                $item['pink_name'] = '[普通订单]';
+                $item['color'] = '#895612';
             }
             }
             if($item['paid']==1){
             if($item['paid']==1){
                 switch ($item['pay_type']){
                 switch ($item['pay_type']){
@@ -276,6 +282,9 @@ HTML;
                if($item['seckill_id']){
                if($item['seckill_id']){
                    $item['pink_name'] = '[秒杀订单]';
                    $item['pink_name'] = '[秒杀订单]';
                    $item['color'] = '#32c5e9';
                    $item['color'] = '#32c5e9';
+               }elseif ($item['bargain_id']){
+                   $item['pink_name'] = '[砍价订单]';
+                   $item['color'] = '#12c5e9';
                }else{
                }else{
                    $item['pink_name'] = '[普通订单]';
                    $item['pink_name'] = '[普通订单]';
                    $item['color'] = '#895612';
                    $item['color'] = '#895612';
@@ -336,7 +345,7 @@ HTML;
     }
     }
 
 
     /**
     /**
-     * 退款发送模板消息
+     * TODO 公众号退款发送模板消息
      * @param $oid
      * @param $oid
      * $oid 订单id  key
      * $oid 订单id  key
      */
      */
@@ -352,6 +361,28 @@ HTML;
         ],Url::build('wap/My/order',['uni'=>$order['order_id']],true,true));
         ],Url::build('wap/My/order',['uni'=>$order['order_id']],true,true));
     }
     }
 
 
+    /**
+     * TODO 小程序余额退款模板消息
+     * @param $oid
+     * @return bool|mixed
+     * @throws \think\db\exception\DataNotFoundException
+     * @throws \think\db\exception\ModelNotFoundException
+     * @throws \think\exception\DbException
+     */
+    public static function refundRoutineTemplate($oid){
+        $order = self::where('id',$oid)->find();
+        $formId = RoutineFormId::getFormIdOne($order['uid']);
+        $data['keyword1']['value'] =  $order['order_id'];
+        $data['keyword2']['value'] =  date('Y-m-d H:i:s',time());
+        $data['keyword3']['value'] =  $order['pay_price'];
+        if($order['pay_type'] == 'yue') $data['keyword4']['value'] =  '余额支付';
+        else if($order['pay_type'] == 'weixin') $data['keyword4']['value'] =  '微信支付';
+        else if($order['pay_type'] == 'offline') $data['keyword4']['value'] =  '线下支付';
+        $data['keyword5']['value'] = '已成功退款';
+        RoutineFormId::delFormIdOne($formId);
+        return RoutineTemplateService::sendTemplate(WechatUser::uidToRoutineOpenid($order['uid']),RoutineTemplateService::setTemplateId(RoutineTemplateService::ORDER_REFUND_SUCCESS),'',$data,$formId);
+    }
+
     /**
     /**
      * 处理where条件
      * 处理where条件
      * @param $where
      * @param $where
@@ -364,7 +395,7 @@ HTML;
         if($where['is_del'] != '' && $where['is_del'] != -1) $model = $model->where($aler.'is_del',$where['is_del']);
         if($where['is_del'] != '' && $where['is_del'] != -1) $model = $model->where($aler.'is_del',$where['is_del']);
         if(isset($where['combination_id'])){
         if(isset($where['combination_id'])){
             if($where['combination_id'] =='普通订单'){
             if($where['combination_id'] =='普通订单'){
-                $model = $model->where($aler.'combination_id',0)->where($aler.'seckill_id',0);
+                $model = $model->where($aler.'combination_id',0)->where($aler.'seckill_id',0)->where($aler.'bargain_id',0);
             }
             }
             if($where['combination_id'] =='拼团订单'){
             if($where['combination_id'] =='拼团订单'){
                 $model = $model->where($aler.'combination_id',">",0)->where($aler.'pink_id',">",0);
                 $model = $model->where($aler.'combination_id',">",0)->where($aler.'pink_id',">",0);
@@ -372,18 +403,25 @@ HTML;
             if($where['combination_id'] =='秒杀订单'){
             if($where['combination_id'] =='秒杀订单'){
                 $model = $model->where($aler.'seckill_id',">",0);
                 $model = $model->where($aler.'seckill_id',">",0);
             }
             }
+            if($where['combination_id'] =='砍价订单'){
+                $model = $model->where($aler.'bargain_id',">",0);
+            }
         }
         }
         if(isset($where['type'])){
         if(isset($where['type'])){
             switch ($where['type']){
             switch ($where['type']){
                 case 1:
                 case 1:
-                    $model = $model->where($aler.'combination_id',0)->where($aler.'seckill_id',0);
+                    $model = $model->where($aler.'combination_id',0)->where($aler.'seckill_id',0)->where($aler.'bargain_id',0);
                     break;
                     break;
                 case 2:
                 case 2:
-                    $model = $model->where($aler.'combination_id',">",0)->where($aler.'pink_id',">",0);
+//                    $model = $model->where($aler.'combination_id',">",0)->where($aler.'pink_id',">",0);
+                    $model = $model->where($aler.'combination_id',">",0);
                     break;
                     break;
                 case 3:
                 case 3:
                     $model = $model->where($aler.'seckill_id',">",0);
                     $model = $model->where($aler.'seckill_id',">",0);
                     break;
                     break;
+                case 4:
+                    $model = $model->where($aler.'bargain_id',">",0);
+                    break;
             }
             }
         }
         }
 
 
@@ -670,7 +708,7 @@ HTML;
         switch ($where['type']){
         switch ($where['type']){
             case 1:
             case 1:
                 //普通商品
                 //普通商品
-                $model=$model->where('combination_id',0)->where('seckill_id',0);
+                $model=$model->where('combination_id',0)->where('seckill_id',0)->where('bargain_id',0);
                 break;
                 break;
             case 2:
             case 2:
                 //拼团商品
                 //拼团商品
@@ -897,22 +935,31 @@ HTML;
         ];
         ];
         if($postageData['delivery_type'] == 'send'){//送货
         if($postageData['delivery_type'] == 'send'){//送货
             $goodsName = StoreOrderCartInfo::getProductNameList($order['id']);
             $goodsName = StoreOrderCartInfo::getProductNameList($order['id']);
-            $group = array_merge($group,[
-                'keyword1'=>$goodsName,
-                'keyword2'=>$order['pay_type'] == 'offline' ? '线下支付' : date('Y/m/d H:i',$order['pay_time']),
-                'keyword3'=>$order['user_address'],
-                'keyword4'=>$postageData['delivery_name'],
-                'keyword5'=>$postageData['delivery_id']
-            ]);
-            WechatTemplateService::sendTemplate($openid,WechatTemplateService::ORDER_DELIVER_SUCCESS,$group,$url);
-
-        }else if($postageData['delivery_type'] == 'express'){//发货
-            $group = array_merge($group,[
-                'keyword1'=>$order['order_id'],
-                'keyword2'=>$postageData['delivery_name'],
-                'keyword3'=>$postageData['delivery_id']
-            ]);
-            WechatTemplateService::sendTemplate($openid,WechatTemplateService::ORDER_POSTAGE_SUCCESS,$group,$url);
+            if($order['is_channel']){
+                //小程序送货模版消息
+                RoutineTemplate::sendOrderPostage($order);
+            }else{//公众号
+                $group = array_merge($group,[
+                    'keyword1'=>$goodsName,
+                    'keyword2'=>$order['pay_type'] == 'offline' ? '线下支付' : date('Y/m/d H:i',$order['pay_time']),
+                    'keyword3'=>$order['user_address'],
+                    'keyword4'=>$postageData['delivery_name'],
+                    'keyword5'=>$postageData['delivery_id']
+                ]);
+                WechatTemplateService::sendTemplate($openid,WechatTemplateService::ORDER_DELIVER_SUCCESS,$group,$url);
+            }
+        }else if($postageData['delivery_type'] == 'express') {//发货
+            if ($order['is_channel']) {
+                //小程序发货模版消息
+                RoutineTemplate::sendOrderPostage($order);
+            } else {//公众号
+                $group = array_merge($group, [
+                    'keyword1' => $order['order_id'],
+                    'keyword2' => $postageData['delivery_name'],
+                    'keyword3' => $postageData['delivery_id']
+                ]);
+                WechatTemplateService::sendTemplate($openid, WechatTemplateService::ORDER_POSTAGE_SUCCESS, $group, $url);
+            }
         }
         }
     }
     }
     /**
     /**
@@ -986,4 +1033,67 @@ HTML;
     public static function getOrderPayMonthCount($is_promoter = 0){
     public static function getOrderPayMonthCount($is_promoter = 0){
         return self::where('o.paid',1)->alias('o')->whereTime('o.pay_time','last month')->join('User u','u.uid=o.uid')->where('u.is_promoter',$is_promoter)->count();
         return self::where('o.paid',1)->alias('o')->whereTime('o.pay_time','last month')->join('User u','u.uid=o.uid')->where('u.is_promoter',$is_promoter)->count();
     }
     }
+
+    /** 订单收货处理积分
+     * @param $order
+     * @return bool
+     */
+    public static function gainUserIntegral($order)
+    {
+        if($order['gain_integral'] > 0){
+            $userInfo = User::get($order['uid']);
+            ModelBasic::beginTrans();
+            $res1 = false != User::where('uid',$userInfo['uid'])->update(['integral'=>bcadd($userInfo['integral'],$order['gain_integral'],2)]);
+            $res2 = false != UserBill::income('购买商品赠送积分',$order['uid'],'integral','gain',$order['gain_integral'],$order['id'],bcadd($userInfo['integral'],$order['gain_integral'],2),'购买商品赠送'.floatval($order['gain_integral']).'积分');
+            $res = $res1 && $res2;
+            ModelBasic::checkTrans($res);
+            return $res;
+        }
+        return true;
+    }
+
+    /** 收货后发送模版消息
+     * @param $order
+     */
+    public static function orderTakeAfter($order)
+    {
+        if($order['is_channel']){//小程序
+
+        }else{
+
+        }
+//        $openid = WechatUser::getOpenId($order['uid']);
+//        RoutineTemplateService::sendTemplate($openid,RoutineTemplateService::ORDER_TAKE_SUCCESS,[
+//            'first'=>'亲,您的订单已成功签收,快去评价一下吧',
+//            'keyword1'=>$order['order_id'],
+//            'keyword2'=>'已收货',
+//            'keyword3'=>date('Y/m/d H:i',time()),
+//            'keyword4'=>implode(',',StoreOrderCartInfo::getProductNameList($order['id'])),
+//            'remark'=>'点击查看订单详情'
+//        ],Url::build('My/order',['uni'=>$order['order_id']],true,true));
+    }
+
+    public static function integralBack($id){
+        $order = self::get($id)->toArray();
+        if(!(float)bcsub($order['use_integral'],0,2) && !$order['back_integral']) return true;
+        if($order['back_integral'] && !(int)$order['use_integral']) return true;
+        ModelBasic::beginTrans();
+        $data['back_integral'] = bcsub($order['use_integral'],$order['use_integral'],0);
+        if(!$data['back_integral']) return true;
+        $data['use_integral'] = 0;
+        $data['deduction_price'] = 0.00;
+        $data['pay_price'] = 0.00;
+        $data['coupon_id'] = 0.00;
+        $data['coupon_price'] = 0.00;
+        $res4 = true;
+        $integral = User::where('uid',$order['uid'])->value('integral');
+        $res1 = User::bcInc($order['uid'],'integral',$data['back_integral'],'uid');
+        $res2 = UserBill::income('商品退积分',$order['uid'],'integral','pay_product_integral_back',$data['back_integral'],$order['id'],bcadd($integral,$data['back_integral'],2),'订单退积分'.floatval($data['back_integral']).'积分到用户积分');
+        $res3 = self::edit($data,$id);
+        if($order['coupon_id']) $res4 = StoreCouponUser::recoverCoupon($order['coupon_id']);
+        StoreOrderStatus::setStatus($id,'integral_back','商品退积分:'.$data['back_integral']);
+        $res = $res1 && $res2 && $res3 && $res4;
+        ModelBasic::checkTrans($res);
+        return $res;
+    }
 }
 }

+ 9 - 1
application/admin/model/routine/RoutineTemplate.php

@@ -8,7 +8,7 @@ namespace app\admin\model\routine;
 
 
 use traits\ModelTrait;
 use traits\ModelTrait;
 use basic\ModelBasic;
 use basic\ModelBasic;
-
+use think\Cache;
 /**
 /**
  * 小程序模板消息Model
  * 小程序模板消息Model
  * Class RoutineTemplate
  * Class RoutineTemplate
@@ -29,4 +29,12 @@ class RoutineTemplate extends ModelBasic
         if($where['status'] !== '') $model = $model->where('status',$where['status']);
         if($where['status'] !== '') $model = $model->where('status',$where['status']);
         return self::page($model);
         return self::page($model);
     }
     }
+
+    /**
+     * 根据模版编号获取模版ID
+     * @param $tempkey
+     */
+    public static function getTempid($tempkey){
+        return self::where('tempkey',$tempkey)->where('status',1)->cache(true,3600)->value('tempid');
+    }
 }
 }

+ 12 - 0
application/admin/model/ump/StoreCouponUser.php

@@ -66,4 +66,16 @@ class StoreCouponUser extends ModelBasic
         self::checkTrans($res);
         self::checkTrans($res);
         return $res;
         return $res;
     }
     }
+
+    /**
+     * TODO 恢复优惠券
+     * @param $id
+     * @return StoreCouponUser|bool
+     */
+    public static function recoverCoupon($id)
+    {
+        $status = self::where('id',$id)->value('status');
+        if($status) return self::where('id',$id)->update(['status'=>0,'use_time'=>'']);
+        else return true;
+    }
 }
 }

+ 17 - 6
application/admin/model/user/UserBill.php

@@ -171,9 +171,10 @@ class UserBill extends ModelBasic
     //查询积分个人明细
     //查询积分个人明细
     public static function getOneIntegralList($where){
     public static function getOneIntegralList($where){
         return self::setWhereList(
         return self::setWhereList(
-            $where,
-            ['deduction','system_add'],
-            ['title','number','balance','mark','FROM_UNIXTIME(add_time,"%Y-%m-%d") as add_time']
+            $where,'',
+//            ['deduction','system_add','sign'],
+            ['title','number','balance','mark','FROM_UNIXTIME(add_time,"%Y-%m-%d") as add_time'],
+            'integral'
         );
         );
     }
     }
     //查询个人签到明细
     //查询个人签到明细
@@ -186,8 +187,8 @@ class UserBill extends ModelBasic
     //查询个人余额变动记录
     //查询个人余额变动记录
     public static function getOneBalanceChangList($where){
     public static function getOneBalanceChangList($where){
          $list=self::setWhereList(
          $list=self::setWhereList(
-            $where,
-            ['system_add','pay_product','extract','pay_product_refund','system_sub'],
+            $where,'',
+//            ['system_add','pay_product','extract','pay_product_refund','system_sub','brokerage','recharge','user_recharge_refund'],
             ['FROM_UNIXTIME(add_time,"%Y-%m-%d") as add_time','title','type','mark','number','balance','pm','status'],
             ['FROM_UNIXTIME(add_time,"%Y-%m-%d") as add_time','title','type','mark','number','balance','pm','status'],
             'now_money'
             'now_money'
         );
         );
@@ -208,6 +209,15 @@ class UserBill extends ModelBasic
                 case 'system_sub':
                 case 'system_sub':
                     $item['_type']='系统减少';
                     $item['_type']='系统减少';
                     break;
                     break;
+                case 'brokerage':
+                    $item['_type']='系统返佣';
+                    break;
+                case 'recharge':
+                    $item['_type']='余额充值';
+                    break;
+                case 'user_recharge_refund':
+                    $item['_type']='系统退款';
+                    break;
             }
             }
             $item['_pm']=$item['pm']==1 ? '获得': '支出';
             $item['_pm']=$item['pm']==1 ? '获得': '支出';
          }
          }
@@ -218,11 +228,12 @@ class UserBill extends ModelBasic
         $models=self::where('uid',$where['uid'])
         $models=self::where('uid',$where['uid'])
             ->where('category',$category)
             ->where('category',$category)
             ->page((int)$where['page'],(int)$where['limit'])
             ->page((int)$where['page'],(int)$where['limit'])
+            ->order('id','desc')
             ->field($field);
             ->field($field);
         if(is_array($type)){
         if(is_array($type)){
             $models=$models->where('type','in',$type);
             $models=$models->where('type','in',$type);
         }else{
         }else{
-            $models=$models->where('type',$type);
+            if(!empty($type))$models=$models->where('type',$type);
         }
         }
         return ($list=$models->select()) && count($list) ? $list->toArray():[];
         return ($list=$models->select()) && count($list) ? $list->toArray():[];
     }
     }

+ 1 - 1
application/admin/model/user/UserExtract.php

@@ -49,7 +49,7 @@ class UserExtract extends ModelBasic
         $uid=$data['uid'];
         $uid=$data['uid'];
         $status = -1;
         $status = -1;
         $User= User::find(['uid'=>$uid])->toArray();
         $User= User::find(['uid'=>$uid])->toArray();
-        UserBill::income('提现失败',$uid,'now_money','extract',$extract_number,$id,$User['now_money'],$mark);
+        UserBill::income('提现失败',$uid,'now_money','extract',$extract_number,$id,bcadd($User['now_money'],$extract_number,2),$mark);
         User::bcInc($uid,'now_money',$extract_number,'uid');
         User::bcInc($uid,'now_money',$extract_number,'uid');
         if($User['user_type'] == 'wechat'){
         if($User['user_type'] == 'wechat'){
             WechatTemplateService::sendTemplate(WechatUser::uidToOpenid($uid),WechatTemplateService::USER_BALANCE_CHANGE,[
             WechatTemplateService::sendTemplate(WechatUser::uidToOpenid($uid),WechatTemplateService::USER_BALANCE_CHANGE,[

+ 28 - 17
application/admin/view/order/store_order/index.php

@@ -82,29 +82,30 @@
                     <table class="layui-hide" id="List" lay-filter="List"></table>
                     <table class="layui-hide" id="List" lay-filter="List"></table>
                     <!--订单-->
                     <!--订单-->
                     <script type="text/html" id="order_id">
                     <script type="text/html" id="order_id">
-                       {{d.order_id}}
-                       <span style="color: {{d.color}};">{{d.pink_name}}</span>  
+                        {{d.order_id}}<br/>
+                        <span style="color: {{d.color}};">{{d.pink_name}}</span><br/> 
+                        {{#  if(d.is_del == 1){ }}<span style="color: {{d.color}};">用户已删除</span>{{# } }} 
                     </script>
                     </script>
                     <!--用户信息-->
                     <!--用户信息-->
                     <script type="text/html" id="userinfo">
                     <script type="text/html" id="userinfo">
-                       {{d.nickname==null ? '暂无信息':d.nickname}}/{{d.uid}}
+                        {{d.nickname==null ? '暂无信息':d.nickname}}/{{d.uid}}
                     </script>
                     </script>
                     <!--支付状态-->
                     <!--支付状态-->
                     <script type="text/html" id="paid">
                     <script type="text/html" id="paid">
                         {{#  if(d.pay_type==1){ }}
                         {{#  if(d.pay_type==1){ }}
-                                <p>{{d.pay_type_name}}</p>
+                        <p>{{d.pay_type_name}}</p>
                         {{#  }else{ }}
                         {{#  }else{ }}
-                            {{# if(d.pay_type_info!=undefined){ }}
-                                <p><span>线下支付</span></p>
-                                <p><button type="button" class="btn btn-w-m btn-white">立即支付</button></p>
-                            {{# }else{ }}
-                                <p>{{d.pay_type_name}}</p>
-                            {{# } }}
+                        {{# if(d.pay_type_info!=undefined){ }}
+                        <p><span>线下支付</span></p>
+                        <p><button type="button" class="btn btn-w-m btn-white">立即支付</button></p>
+                        {{# }else{ }}
+                        <p>{{d.pay_type_name}}</p>
+                        {{# } }}
                         {{# }; }}
                         {{# }; }}
                     </script>
                     </script>
                     <!--订单状态-->
                     <!--订单状态-->
                     <script type="text/html" id="status">
                     <script type="text/html" id="status">
-                       {{d.status_name}}
+                        {{d.status_name}}
                     </script>
                     </script>
                     <!--商品信息-->
                     <!--商品信息-->
                     <script type="text/html" id="info">
                     <script type="text/html" id="info">
@@ -171,7 +172,7 @@
                                     <i class="fa fa-paste"></i> 订单备注
                                     <i class="fa fa-paste"></i> 订单备注
                                 </a>
                                 </a>
                             </li>
                             </li>
-                            {{#  if(d.pay_price!=d.refund_price){ }}
+                            {{#  if(Math.floor(d.pay_price) > Math.floor(d.refund_price)){ }}
                             <li>
                             <li>
                                 <a href="javascript:void(0);" onclick="$eb.createModalFrame('退款','{:Url('refund_y')}?id={{d.id}}',{w:400,h:300})">
                                 <a href="javascript:void(0);" onclick="$eb.createModalFrame('退款','{:Url('refund_y')}?id={{d.id}}',{w:400,h:300})">
                                     <i class="fa fa-history"></i> 立即退款
                                     <i class="fa fa-history"></i> 立即退款
@@ -214,7 +215,8 @@
                                     <i class="fa fa-history"></i> 退积分
                                     <i class="fa fa-history"></i> 退积分
                                 </a>
                                 </a>
                             </li>
                             </li>
-                            {{# }else if(d.pay_price != d.refund_price){ }}
+                            {{#  };}}
+                            {{# if(Math.floor(d.pay_price) > Math.floor(d.refund_price)){ }}
                             <li>
                             <li>
                                 <a href="javascript:void(0);" onclick="$eb.createModalFrame('退款','{:Url('refund_y')}?id={{d.id}}',{w:400,h:300})">
                                 <a href="javascript:void(0);" onclick="$eb.createModalFrame('退款','{:Url('refund_y')}?id={{d.id}}',{w:400,h:300})">
                                     <i class="fa fa-history"></i>立即退款
                                     <i class="fa fa-history"></i>立即退款
@@ -252,7 +254,7 @@
                                     <i class="fa fa-cart-arrow-down"></i> 已收货
                                     <i class="fa fa-cart-arrow-down"></i> 已收货
                                 </a>
                                 </a>
                             </li>
                             </li>
-                            {{#  if(d.pay_price != d.refund_price){ }}
+                            {{#  if(Math.floor(d.pay_price) > Math.floor(d.refund_price)){ }}
                             <li>
                             <li>
                                 <a href="javascript:void(0);" onclick="$eb.createModalFrame('退款','{:Url('refund_y')}?id={{d.id}}')">
                                 <a href="javascript:void(0);" onclick="$eb.createModalFrame('退款','{:Url('refund_y')}?id={{d.id}}')">
                                     <i class="fa fa-history"></i> 立即退款
                                     <i class="fa fa-history"></i> 立即退款
@@ -284,13 +286,14 @@
                                     <i class="fa fa-paste"></i> 订单备注
                                     <i class="fa fa-paste"></i> 订单备注
                                 </a>
                                 </a>
                             </li>
                             </li>
-                            {{#  if(d.pay_price != d.refund_price){ }}
+                            {{#  if(Math.floor(d.pay_price) > Math.floor(d.refund_price)){ }}
                             <li>
                             <li>
                                 <a href="javascript:void(0);" onclick="$eb.createModalFrame('退款','{:Url('refund_y')}?id={{d.id}}')">
                                 <a href="javascript:void(0);" onclick="$eb.createModalFrame('退款','{:Url('refund_y')}?id={{d.id}}')">
                                     <i class="fa fa-history"></i> 立即退款
                                     <i class="fa fa-history"></i> 立即退款
                                 </a>
                                 </a>
                             </li>
                             </li>
-                            {{# }else if(d.use_integral > 0 && d.use_integral >= d.back_integral){ }}
+                            {{# };}}
+                            {{# if(d.use_integral > 0 && d.use_integral >= d.back_integral){ }}
                             <li>
                             <li>
                                 <a href="javascript:void(0);" onclick="$eb.createModalFrame('退积分','{:Url('integral_back')}?id={{d.id}}')">
                                 <a href="javascript:void(0);" onclick="$eb.createModalFrame('退积分','{:Url('integral_back')}?id={{d.id}}')">
                                     <i class="fa fa-history"></i> 退积分
                                     <i class="fa fa-history"></i> 退积分
@@ -316,6 +319,13 @@
                                     <i class="fa fa-paste"></i> 订单备注
                                     <i class="fa fa-paste"></i> 订单备注
                                 </a>
                                 </a>
                             </li>
                             </li>
+                            {{#  if(Math.floor(d.pay_price) > Math.floor(d.refund_price)){ }}
+                            <li>
+                                <a href="javascript:void(0);" onclick="$eb.createModalFrame('退款','{:Url('refund_y')}?id={{d.id}}')">
+                                    <i class="fa fa-history"></i> 立即退款
+                                </a>
+                            </li>
+                            {{# } }}
                             {{# if(d.use_integral > 0 && d.use_integral >= d.back_integral){ }}
                             {{# if(d.use_integral > 0 && d.use_integral >= d.back_integral){ }}
                             <li>
                             <li>
                                 <a href="javascript:void(0);" onclick="$eb.createModalFrame('退积分','{:Url('integral_back')}?id={{d.id}}')">
                                 <a href="javascript:void(0);" onclick="$eb.createModalFrame('退积分','{:Url('integral_back')}?id={{d.id}}')">
@@ -436,6 +446,7 @@
                     {name: '普通订单', value: 1,count:orderCount.general},
                     {name: '普通订单', value: 1,count:orderCount.general},
                     {name: '拼团订单', value: 2,count:orderCount.pink},
                     {name: '拼团订单', value: 2,count:orderCount.pink},
                     {name: '秒杀订单', value: 3,count:orderCount.seckill},
                     {name: '秒杀订单', value: 3,count:orderCount.seckill},
+                    {name: '砍价订单', value: 4,count:orderCount.bargain},
                 ],
                 ],
                 orderStatus: [
                 orderStatus: [
                     {name: '全部', value: ''},
                     {name: '全部', value: ''},
@@ -515,4 +526,4 @@
         })
         })
     });
     });
 </script>
 </script>
-{/block}
+{/block}

+ 22 - 13
application/admin/view/user/user/see.php

@@ -58,6 +58,28 @@
         <div class="layui-col-md12 layui-col-sm12 layui-col-lg12">
         <div class="layui-col-md12 layui-col-sm12 layui-col-lg12">
             <div class="layui-card">
             <div class="layui-card">
                 <div class="layui-card-header">其他详情</div>
                 <div class="layui-card-header">其他详情</div>
+                <div class="layui-card-body">
+                    <div class="layui-row layui-col-space15">
+                    {volist name='headerList' id='vo'}
+                    <div class="layui-col-xs3" style="margin-bottom: 10px ">
+                        <div class="layui-card">
+                            <div class="layui-card-header">
+                                {$vo.title}
+                                <span class="layui-badge layuiadmin-badge {if isset($vo.class) && $vo.class}{$vo.class}{else}layui-bg-blue{/if}">{$vo.key}</span>
+                            </div>
+                            <div class="layui-card-body">
+                                <p class="layuiadmin-big-font">{$vo.value}</p>
+                            </div>
+                        </div>
+                    </div>
+                    {/volist}
+                    </div>
+                </div>
+            </div>
+        </div>
+        <div class="layui-col-md12 layui-col-sm12 layui-col-lg12">
+            <div class="layui-card">
+                <div class="layui-card-header">其他记录</div>
                 <div class="layui-card-body">
                 <div class="layui-card-body">
                     <div class="layui-tab layui-tab-card">
                     <div class="layui-tab layui-tab-card">
                         <ul class="layui-tab-title">
                         <ul class="layui-tab-title">
@@ -69,19 +91,6 @@
                             <li>推广下线明细</li>
                             <li>推广下线明细</li>
                         </ul>
                         </ul>
                         <div class="layui-tab-content" id="content">
                         <div class="layui-tab-content" id="content">
-                            {volist name='headerList' id='vo'}
-                            <div class="layui-col-xs3" style="margin-bottom: 10px ">
-                                <div class="layui-card">
-                                    <div class="layui-card-header">
-                                        {$vo.title}
-                                        <span class="layui-badge layuiadmin-badge {if isset($vo.class) && $vo.class}{$vo.class}{else}layui-bg-blue{/if}">{$vo.key}</span>
-                                    </div>
-                                    <div class="layui-card-body">
-                                        <p class="layuiadmin-big-font">{$vo.value}</p>
-                                    </div>
-                                </div>
-                            </div>
-                            {/volist}
                             <div class="layui-tab-item layui-show">
                             <div class="layui-tab-item layui-show">
                                 <table class="layui-table" lay-skin="line" v-cloak="">
                                 <table class="layui-table" lay-skin="line" v-cloak="">
                                     <thead>
                                     <thead>

+ 160 - 0
extend/service/ProgramTemplateService.php

@@ -0,0 +1,160 @@
+<?php
+namespace service;
+
+
+use app\admin\model\wechat\WechatUser;
+use app\admin\model\routine\RoutineTemplate as RoutineTemplateModel;
+use app\admin\model\routine\RoutineFormId as RoutineFormIdModel;
+use app\admin\model\wechat\StoreService as ServiceModel;
+
+/**
+ * 小程序模板消息
+ * Class RoutineTemplate
+ * @package app\routine\model\routine
+ */
+class ProgramTemplateService{
+
+
+    //订单支付成功
+    const ORDER_PAY_SUCCESS = 'AT0009';
+    //砍价成功
+    const BARGAIN_SUCCESS = 'AT1173';
+    //申请退款通知
+    const ORDER_REFUND_STATUS = 'AT0036';
+    //退款成功
+    const ORDER_REFUND_SUCCESS = 'AT0787';
+    //订单发货提醒(快递)
+    const ORDER_POSTAGE_SUCCESS = 'AT0007';
+    //订单发货提醒(送货)
+    const ORDER_DELIVER_SUCCESS = 'AT0177';
+
+
+    public static function sendTemplate($openid,$tempkey,array $data,$form_id = '',$link = null,$defaultColor = '')
+    {
+        $tempid = RoutineTemplateModel::getTempid($tempkey);
+        if(!$tempid) return false;
+        try{
+            return MiniProgramService::sendTemplate($openid,$tempid,$data,$form_id,$link,$defaultColor);
+        }catch (\Exception $e){
+            return false;
+        }
+    }
+
+    /**服务进度通知
+     * @param array $data
+     * @param null $url
+     * @param string $defaultColor
+     * @return bool
+     */
+    public static function sendAdminNoticeTemplate(array $data,$url = null,$defaultColor = '')
+    {
+        $adminIds = explode(',',trim(SystemConfigService::get('site_store_admin_uids')));
+        $kefuIds = ServiceModel::where('notify',1)->column('uid');
+        if(empty($adminIds[0])){
+            $adminList = array_unique($kefuIds);
+        }else{
+            $adminList = array_unique(array_merge($adminIds,$kefuIds));
+        }
+        if(!is_array($adminList) || empty($adminList)) return false;
+        foreach ($adminList as $uid){
+            try{
+                $openid = WechatUser::uidToRoutineOpenid($uid);
+            }catch (\Exception $e){
+                continue;
+            }
+//            self::sendTemplate($openid,self::ADMIN_NOTICE,$data,$url,$defaultColor);
+        }
+    }
+
+    /**
+     * 返回所有支持的行业列表
+     * @return \EasyWeChat\Support\Collection
+     */
+    public static function getIndustry()
+    {
+        return MiniProgramService::noticeService()->getIndustry();
+    }
+
+    /**
+     * 修改账号所属行业
+     * 主行业	副行业	代码
+     * IT科技	互联网/电子商务	1
+     * IT科技	IT软件与服务	2
+     * IT科技	IT硬件与设备	3
+     * IT科技	电子技术	4
+     * IT科技	通信与运营商	5
+     * IT科技	网络游戏	6
+     * 金融业	银行	7
+     * 金融业	基金|理财|信托	8
+     * 金融业	保险	9
+     * 餐饮	餐饮	10
+     * 酒店旅游	酒店	11
+     * 酒店旅游	旅游	12
+     * 运输与仓储	快递	13
+     * 运输与仓储	物流	14
+     * 运输与仓储	仓储	15
+     * 教育	培训	16
+     * 教育	院校	17
+     * 政府与公共事业	学术科研	18
+     * 政府与公共事业	交警	19
+     * 政府与公共事业	博物馆	20
+     * 政府与公共事业	公共事业|非盈利机构	21
+     * 医药护理	医药医疗	22
+     * 医药护理	护理美容	23
+     * 医药护理	保健与卫生	24
+     * 交通工具	汽车相关	25
+     * 交通工具	摩托车相关	26
+     * 交通工具	火车相关	27
+     * 交通工具	飞机相关	28
+     * 房地产	建筑	29
+     * 房地产	物业	30
+     * 消费品	消费品	31
+     * 商业服务	法律	32
+     * 商业服务	会展	33
+     * 商业服务	中介服务	34
+     * 商业服务	认证	35
+     * 商业服务	审计	36
+     * 文体娱乐	传媒	37
+     * 文体娱乐	体育	38
+     * 文体娱乐	娱乐休闲	39
+     * 印刷	印刷	40
+     * 其它	其它	41
+     * @param $industryId1
+     * @param $industryId2
+     * @return \EasyWeChat\Support\Collection
+     */
+    public static function setIndustry($industryId1, $industryId2)
+    {
+        return MiniProgramService::noticeService()->setIndustry($industryId1, $industryId2);
+    }
+
+    /**
+     * 获取所有模板列表
+     * @return \EasyWeChat\Support\Collection
+     */
+    public static function getPrivateTemplates()
+    {
+        return MiniProgramService::noticeService()->getPrivateTemplates();
+    }
+
+    /**
+     * 删除指定ID的模板
+     * @param $templateId
+     * @return \EasyWeChat\Support\Collection
+     */
+    public static function deletePrivateTemplate($templateId)
+    {
+        return MiniProgramService::noticeService()->deletePrivateTemplate($templateId);
+    }
+
+
+    /**
+     * 添加模板并获取模板ID
+     * @param $shortId
+     * @return \EasyWeChat\Support\Collection
+     */
+    public static function addTemplate($shortId)
+    {
+        return MiniProgramService::noticeService()->addTemplate($shortId);
+    }
+}