瀏覽代碼

上传文件至 'app/common/logic'

谢林林 2 年之前
父節點
當前提交
0373d67436
共有 1 個文件被更改,包括 107 次插入103 次删除
  1. 107 103
      app/common/logic/Order.php

+ 107 - 103
app/common/logic/Order.php

@@ -5,17 +5,18 @@ namespace app\common\logic;
 use think\facade\Db;
 
 /**
- 
- * 
- 
- * 
+ * ============================================================================
+ * DSMall多用户商城
+ * ============================================================================
+ * 版权所有 2014-2028 长沙德尚网络科技有限公司,并保留所有权利。
+ * 网站地址: http://www.csdeshang.com
  * ----------------------------------------------------------------------------
- * 
- 
+ * 这不是一个自由软件!您只能在不用于商业目的的前提下对程序代码进行修改和使用 .
+ * 不允许对程序代码以任何形式任何目的的再发布。
+ * ============================================================================
  * 逻辑层模型
  */
-class Order
-{
+class Order {
 
     /**
      * 取消订单
@@ -28,8 +29,7 @@ class Order
      * @param boolean $if_pay 是否已经支付,已经支付则全部退回支付金额
      * @return array
      */
-    public function changeOrderStateCancel($order_info, $role, $user = '', $msg = '', $if_update_account = true, $if_quque = true, $if_pay = false)
-    {
+    public function changeOrderStateCancel($order_info, $role, $user = '', $msg = '', $if_update_account = true, $if_quque = true, $if_pay = false) {
         $order_model = model('order');
         if ($order_info['order_state'] != ORDER_STATE_CANCEL && $order_info['order_state'] != ORDER_STATE_SUCCESS) {
             $order_id = $order_info['order_id'];
@@ -37,22 +37,22 @@ class Order
             //库存销量变更
             $goods_list = $order_model->getOrdergoodsList(array('order_id' => $order_id));
             $data = array();
-            $pintuan_list = array(); //需要后续处理的促销活动
-            $ppintuanorder_model = model('ppintuanorder');
+            $pintuan_list=array();//需要后续处理的促销活动
+            $ppintuanorder_model=model('ppintuanorder');
             foreach ($goods_list as $goods) {
                 $data[$goods['goods_id']] = $goods['goods_num'];
                 //如果是拼团
                 if ($goods['goods_type'] == 6) {
-                    $pintuan_list[] = $goods;
+                    $pintuan_list[]=$goods;
                 }
-                $condition = array();
-                $condition[] = array('order_id', '=', $order_info['order_id']);
-                $condition[] = array('pintuanorder_type', '=', 0);
-                $condition[] = array('pintuanorder_state', '=', 1);
-                $ppintuanorder_model->editPpintuanorder($condition, array('pintuanorder_state' => 0));
+                $condition=array();
+                $condition[]=array('order_id','=',$order_info['order_id']);
+                $condition[]=array('pintuanorder_type','=',0);
+                $condition[]=array('pintuanorder_state','=',1);
+                $ppintuanorder_model->editPpintuanorder($condition, array('pintuanorder_state'=>0));
             }
             model('goods')->cancelOrderUpdateStorage($data);
-            $refundreturn_model = model('refundreturn');
+            $refundreturn_model=model('refundreturn');
             if ($if_update_account) {
                 $predeposit_model = model('predeposit');
 
@@ -88,53 +88,56 @@ class Order
                     }
                 }
 
-                if ($order_info['order_state'] == ORDER_STATE_PAY && $order_info['presell_deposit_amount'] == 0 && $order_info['payment_code'] != 'offline') { //offline为货到付款的订单,取消时不需要返回预存款
+                if ($order_info['order_state'] == ORDER_STATE_PAY && $order_info['presell_deposit_amount'] == 0 && $order_info['payment_code'] != 'offline') {//offline为货到付款的订单,取消时不需要返回预存款
                     //拼团退团
-                    if (!empty($pintuan_list)) {
-                        foreach ($pintuan_list as $goods) {
-                            $ppintuangroup_info = Db::name('ppintuangroup')->where('pintuangroup_id', $goods['promotions_id'])->lock(true)->find();
-                            if ($ppintuangroup_info && $ppintuangroup_info['pintuangroup_state'] == 1) {
-                                if ($ppintuangroup_info['pintuangroup_joined'] > 0) {
+                    if(!empty($pintuan_list)){
+                        foreach($pintuan_list as $goods){
+                            $ppintuangroup_info=Db::name('ppintuangroup')->where('pintuangroup_id', $goods['promotions_id'])->lock(true)->find();
+                            if($ppintuangroup_info && $ppintuangroup_info['pintuangroup_state']==1){
+                                if($ppintuangroup_info['pintuangroup_joined']>0){
                                     Db::name('ppintuangroup')->where('pintuangroup_id', $goods['promotions_id'])->dec('pintuangroup_joined')->update();
-                                    if ($ppintuangroup_info['pintuangroup_joined'] == 1) {
+                                    if($ppintuangroup_info['pintuangroup_joined']==1){
                                         //拼团统计开团数量
-                                        $condition = array();
-                                        $condition[] = array('pintuan_id', '=', $ppintuangroup_info['pintuan_id']);
-                                        $condition[] = array('pintuan_count', '>', 0);
+                                        $condition=array();
+                                        $condition[]=array('pintuan_id','=', $ppintuangroup_info['pintuan_id']);
+                                        $condition[]=array('pintuan_count','>', 0);
                                         Db::name('ppintuan')->where($condition)->dec('pintuan_count')->update();
                                     }
                                 }
+
                             }
                         }
                     }
-
+                    
                     $refundreturn_model->refundAmount($order_info, $order_info['order_amount']);
+     
                 }
                 if ($order_info['order_state'] == ORDER_STATE_PAY && $order_info['presell_deposit_amount'] > 0 && $order_info['payment_code'] != 'offline') {
                     //定金预售分两次退款
-                    $order_info_0 = $order_info;
-                    $order_info['order_amount'] = $order_info_0['presell_deposit_amount'];
-                    $order_info['rcb_amount'] = $order_info_0['presell_rcb_amount'];
-                    $order_info['pd_amount'] = $order_info_0['presell_pd_amount'];
-                    $order_info['trade_no'] = $order_info_0['presell_trade_no'];
-                    $order_info['payment_code'] = $order_info_0['presell_payment_code'];
+                    $order_info_0=$order_info;
+                    $order_info['order_amount']=$order_info_0['presell_deposit_amount'];
+                    $order_info['rcb_amount']=$order_info_0['presell_rcb_amount'];
+                    $order_info['pd_amount']=$order_info_0['presell_pd_amount'];
+                    $order_info['trade_no']=$order_info_0['presell_trade_no'];
+                    $order_info['payment_code']=$order_info_0['presell_payment_code'];
                     $refundreturn_model->refundAmount($order_info, $order_info['presell_deposit_amount']);
-
-                    $order_info['order_amount'] = round($order_info_0['order_amount'] - $order_info_0['presell_deposit_amount'], 2);
-                    $order_info['rcb_amount'] = round($order_info_0['rcb_amount'] - $order_info_0['presell_rcb_amount'], 2);
-                    $order_info['pd_amount'] = round($order_info_0['pd_amount'] - $order_info_0['presell_pd_amount'], 2);
-                    $order_info['trade_no'] = $order_info_0['trade_no'];
-                    $order_info['payment_code'] = $order_info_0['payment_code'];
+                    
+                    $order_info['order_amount']=round($order_info_0['order_amount']-$order_info_0['presell_deposit_amount'],2);
+                    $order_info['rcb_amount']=round($order_info_0['rcb_amount']-$order_info_0['presell_rcb_amount'],2);
+                    $order_info['pd_amount']=round($order_info_0['pd_amount']-$order_info_0['presell_pd_amount'],2);
+                    $order_info['trade_no']=$order_info_0['trade_no'];
+                    $order_info['payment_code']=$order_info_0['payment_code'];
                     $refundreturn_model->refundAmount($order_info, $order_info['order_amount']);
+                    
                 }
-                if ($order_info['order_state'] == ORDER_STATE_REST && ($role == 'admin' || $role == 'seller')) { //非管理员和卖家取消订单不退定金
-                    $order_info['order_amount'] = $order_info['presell_deposit_amount'];
-                    $order_info['rcb_amount'] = $order_info['presell_rcb_amount'];
-                    $order_info['pd_amount'] = $order_info['presell_pd_amount'];
-                    $order_info['trade_no'] = $order_info['presell_trade_no'];
-                    $order_info['payment_code'] = $order_info['presell_payment_code'];
-                    $refundreturn_model->refundAmount($order_info, $order_info['presell_deposit_amount']);
-                }
+                    if ($order_info['order_state'] == ORDER_STATE_REST && ($role == 'admin' || $role == 'seller')) {//非管理员和卖家取消订单不退定金
+                        $order_info['order_amount']=$order_info['presell_deposit_amount'];
+                        $order_info['rcb_amount']=$order_info['presell_rcb_amount'];
+                        $order_info['pd_amount']=$order_info['presell_pd_amount'];
+                        $order_info['trade_no']=$order_info['presell_trade_no'];
+                        $order_info['payment_code']=$order_info['presell_payment_code'];
+                        $refundreturn_model->refundAmount($order_info, $order_info['presell_deposit_amount']);
+                    }
             }
 
             //更新订单信息
@@ -144,10 +147,10 @@ class Order
                 throw new \think\Exception('保存失败', 10006);
             }
             //分销佣金取消
-            $condition = array();
-            $condition[] = array('orderinviter_order_id', '=', $order_id);
-            $condition[] = array('orderinviter_valid', '=', 0);
-            $condition[] = array('orderinviter_order_type', '=', 0);
+            $condition=array();
+            $condition[]=array('orderinviter_order_id','=',$order_id);
+            $condition[]=array('orderinviter_valid','=',0);
+            $condition[]=array('orderinviter_order_type','=',0);
             Db::name('orderinviter')->where($condition)->update(['orderinviter_valid' => 2]);
             //自提点订单取消
             $chain_order_model = model('chain_order');
@@ -175,8 +178,7 @@ class Order
      * @param string $msg 操作备注
      * @return array
      */
-    public function changeOrderStateReceive($order_info, $role, $user = '', $msg = '')
-    {
+    public function changeOrderStateReceive($order_info, $role, $user = '', $msg = '') {
         try {
             $member_id = $order_info['buyer_id'];
             $order_id = $order_info['order_id'];
@@ -218,14 +220,14 @@ class Order
                     'pl_memberid' => $order_info['buyer_id'], 'pl_membername' => $order_info['buyer_name'],
                     'orderprice' => $order_info['order_amount'], 'order_sn' => $order_info['order_sn'],
                     'order_id' => $order_info['order_id']
-                ), true);
+                        ), true);
             }
             //添加会员经验值
             model('exppoints')->saveExppointslog('order', array(
                 'explog_memberid' => $order_info['buyer_id'], 'explog_membername' => $order_info['buyer_name'],
                 'orderprice' => $order_info['order_amount'], 'order_sn' => $order_info['order_sn'],
                 'order_id' => $order_info['order_id']
-            ), true);
+                    ), true);
             //邀请人获得返利积分
             $inviter_id = ds_getvalue_byname('member', 'member_id', $member_id, 'inviter_id');
             if (!empty($inviter_id)) {
@@ -233,7 +235,7 @@ class Order
                 $rebate_amount = ceil(0.01 * $order_info['order_amount'] * config('ds_config.points_rebate'));
                 model('points')->savePointslog('rebate', array(
                     'pl_memberid' => $inviter_id, 'pl_membername' => $inviter_name, 'pl_points' => $rebate_amount
-                ), true);
+                        ), true);
             }
 
             return ds_callback(true, '操作成功');
@@ -250,8 +252,7 @@ class Order
      * @param float $price 运费
      * @return array
      */
-    public function changeOrderShipPrice($order_info, $role, $user = '', $price)
-    {
+    public function changeOrderShipPrice($order_info, $role, $user = '', $price) {
         try {
 
             $order_id = $order_info['order_id'];
@@ -272,7 +273,8 @@ class Order
             $data['order_id'] = $order_id;
             $data['log_role'] = $role;
             $data['log_user'] = $user;
-            $data['log_msg'] = '修改了运费' . '( ' . $price . ' )';;
+            $data['log_msg'] = '修改了运费' . '( ' . $price . ' )';
+            ;
             $data['log_orderstate'] = $order_info['payment_code'] == 'offline' ? ORDER_STATE_PAY : ORDER_STATE_NEW;
             $order_model->addOrderlog($data);
             return ds_callback(true, '操作成功');
@@ -289,8 +291,7 @@ class Order
      * @param float $price 运费
      * @return array
      */
-    public function changeOrderSpayPrice($order_info, $role, $user = '', $price)
-    {
+    public function changeOrderSpayPrice($order_info, $role, $user = '', $price) {
         $order_model = model('order');
         Db::startTrans();
         try {
@@ -332,27 +333,27 @@ class Order
 
                     $order_model->editOrdergoods(array('goods_pay_price' => $price), array('rec_id' => $ordergoods['rec_id']));
                     //修改分销佣金
-                    $condition = array();
-                    $condition[] = array('orderinviter_order_id', '=', $order_id);
-                    $condition[] = array('orderinviter_goods_id', '=', $ordergoods['goods_id']);
-                    $condition[] = array('orderinviter_valid', '=', 0);
-                    $condition[] = array('orderinviter_order_type', '=', 0);
-                    $orderinviter_list = Db::name('orderinviter')->where($condition)->select()->toArray();
-                    foreach ($orderinviter_list as $orderinviter_info) {
-                        $orderinviter_goods_amount = $price;
-                        $orderinviter_money = round($orderinviter_info['orderinviter_ratio'] / 100 * $orderinviter_goods_amount, 2);
-                        Db::name('orderinviter')->where(array(array('orderinviter_id', '=', $orderinviter_info['orderinviter_id'])))->update(['orderinviter_goods_amount' => $orderinviter_goods_amount, 'orderinviter_money' => $orderinviter_money]);
+                    $condition=array();
+                    $condition[]=array('orderinviter_order_id','=',$order_id);
+                    $condition[]=array('orderinviter_goods_id','=',$ordergoods['goods_id']);
+                    $condition[]=array('orderinviter_valid','=',0);
+                    $condition[]=array('orderinviter_order_type','=',0);
+                    $orderinviter_list=Db::name('orderinviter')->where($condition)->select()->toArray();
+                    foreach($orderinviter_list as $orderinviter_info){
+                        $orderinviter_goods_amount=$price;
+                        $orderinviter_money=round($orderinviter_info['orderinviter_ratio']/100*$orderinviter_goods_amount,2);
+                        Db::name('orderinviter')->where(array(array('orderinviter_id','=',$orderinviter_info['orderinviter_id'])))->update(['orderinviter_goods_amount' => $orderinviter_goods_amount,'orderinviter_money'=>$orderinviter_money]);
                     }
                     $i++;
                 }
             } else {
                 $order_model->editOrdergoods(array('goods_pay_price' => 0), array('order_id' => $order_id));
                 //修改分销佣金
-                $condition = array();
-                $condition[] = array('orderinviter_order_id', '=', $order_id);
-                $condition[] = array('orderinviter_valid', '=', 0);
-                $condition[] = array('orderinviter_order_type', '=', 0);
-                Db::name('orderinviter')->where($condition)->update(['orderinviter_goods_amount' => 0, 'orderinviter_money' => 0]);
+                $condition=array();
+                $condition[]=array('orderinviter_order_id','=',$order_id);
+                $condition[]=array('orderinviter_valid','=',0);
+                $condition[]=array('orderinviter_order_type','=',0);
+                Db::name('orderinviter')->where($condition)->update(['orderinviter_goods_amount' => 0,'orderinviter_money'=>0]);
             }
 
             //记录订单日志
@@ -360,7 +361,8 @@ class Order
             $data['order_id'] = $order_id;
             $data['log_role'] = $role;
             $data['log_user'] = $user;
-            $data['log_msg'] = '修改了商品费用' . '( ' . $price . ' )';;
+            $data['log_msg'] = '修改了商品费用' . '( ' . $price . ' )';
+            ;
             $data['log_orderstate'] = $order_info['payment_code'] == 'offline' ? ORDER_STATE_PAY : ORDER_STATE_NEW;
             $order_model->addOrderlog($data);
         } catch (\Exception $e) {
@@ -378,14 +380,13 @@ class Order
      * @param string $state_type 操作类型
      * @return array
      */
-    public function changeOrderStateRecycle($order_info, $role, $state_type)
-    {
+    public function changeOrderStateRecycle($order_info, $role, $state_type) {
         $order_id = $order_info['order_id'];
         $order_model = model('order');
         //更新订单删除状态
         $state = str_replace(array('delete', 'drop', 'restore'), array(
             ORDER_DEL_STATE_DELETE, ORDER_DEL_STATE_DROP, ORDER_DEL_STATE_DEFAULT
-        ), $state_type);
+                ), $state_type);
         $update = $order_model->editOrder(array('delete_state' => $state), array('order_id' => $order_id));
         if (!$update) {
             return ds_callback(false, '操作失败');
@@ -401,8 +402,7 @@ class Order
      * @param string $user 操作人
      * @return array
      */
-    public function changeOrderSend($order_info, $role, $user = '', $post = array())
-    {
+    public function changeOrderSend($order_info, $role, $user = '', $post = array()) {
         $order_id = $order_info['order_id'];
         $order_model = model('order');
 
@@ -453,20 +453,20 @@ class Order
 
         //更新表发货信息
         $data = array();
-        if ($post['shipping_express_id'] != 0) {
+        if ($post['shipping_express_id']!=0) {
             $data['shipping_code'] = $post['shipping_code'];
             $express_info = model('express')->getExpressInfo(intval($post['shipping_express_id']));
             $data['express_code'] = $express_info['express_code'];
             $data['express_name'] = $express_info['express_name'];
         }
         //如果是门店订单,则修改订单状态
-        $chain_order_model = model('chain_order');
-        $chain_order_info = $chain_order_model->getChainOrderInfo(array('order_id' => $order_id, 'chain_order_type' => 1));
-        if ($chain_order_info) {
-            $chain_order_model->editChainOrder(array_merge($data, array(
-                'chain_order_state' => ORDER_STATE_SEND
-            )), array('order_id' => $order_id, 'chain_order_type' => 1));
-        }
+            $chain_order_model = model('chain_order');
+            $chain_order_info = $chain_order_model->getChainOrderInfo(array('order_id' => $order_id, 'chain_order_type' => 1));
+            if ($chain_order_info) {
+                $chain_order_model->editChainOrder(array_merge($data,array(
+                    'chain_order_state' => ORDER_STATE_SEND
+                        )), array('order_id' => $order_id, 'chain_order_type' => 1));
+            }
 
         //添加订单日志
         $data = array();
@@ -489,11 +489,11 @@ class Order
             $order_info['order_sn'],
         );
         $param['param'] = array_merge($param['ali_param'], array(
-            'order_url' => HOME_SITE_URL . '/Memberorder/show_order?order_id=' . $order_id
+            'order_url' => HOME_SITE_URL .'/Memberorder/show_order?order_id='.$order_id
         ));
         //微信模板消息
         $param['weixin_param'] = array(
-            'url' => config('ds_config.h5_site_url') . '/pages/member/order/OrderDetail?order_id=' . $order_id,
+            'url' => config('ds_config.h5_site_url') . '/member/order_detail?order_id=' . $order_id,
             'data' => array(
                 "keyword1" => array(
                     "value" => isset($post['shipping_code']) ? $post['shipping_code'] : '无',
@@ -517,7 +517,7 @@ class Order
                 )
             ),
         );
-        model('cron')->addCron(array('cron_exetime' => TIMESTAMP, 'cron_type' => 'sendMemberMsg', 'cron_value' => serialize($param)));
+        model('cron')->addCron(array('cron_exetime'=>TIMESTAMP,'cron_type'=>'sendMemberMsg','cron_value'=>serialize($param)));
 
 
         return ds_callback(true, '操作成功');
@@ -530,8 +530,7 @@ class Order
      * @param string $user 操作人
      * @return array
      */
-    public function changeOrderReceivePay($order_list, $role, $user = '', $post = array())
-    {
+    public function changeOrderReceivePay($order_list, $role, $user = '', $post = array()) {
         $order_model = model('order');
         $predeposit_model = model('predeposit');
 
@@ -552,7 +551,7 @@ class Order
                 continue;
             $order_id = $order_info['order_id'];
             //下单,支付被冻结的充值卡
-            $rcb_amount = floatval($order_info['rcb_amount']) - floatval($order_info['presell_rcb_amount']);
+            $rcb_amount = floatval($order_info['rcb_amount'])-floatval($order_info['presell_rcb_amount']);
             if ($rcb_amount > 0) {
                 $data_pd = array();
                 $data_pd['member_id'] = $order_info['buyer_id'];
@@ -563,7 +562,7 @@ class Order
             }
 
             //下单,支付被冻结的预存款
-            $pd_amount = floatval($order_info['pd_amount']) - floatval($order_info['presell_pd_amount']);
+            $pd_amount = floatval($order_info['pd_amount'])-floatval($order_info['presell_pd_amount']);
             if ($pd_amount > 0) {
                 $data_pd = array();
                 $data_pd['member_id'] = $order_info['buyer_id'];
@@ -657,7 +656,7 @@ class Order
             ));
             //微信模板消息
             $param['weixin_param'] = array(
-                'url' => config('ds_config.h5_site_url') . '/pages/member/order/OrderDetail?order_id=' . $order_info['order_id'],
+                'url' => config('ds_config.h5_site_url') . '/member/order_detail?order_id=' . $order_info['order_id'],
                 'data' => array(
                     "keyword1" => array(
                         "value" => $order_info['order_sn'],
@@ -692,7 +691,7 @@ class Order
                 $param['param'] = $param['ali_param'];
 
                 $param['weixin_param'] = array(
-                    'url' => config('ds_config.h5_store_site_url') . '/pages/seller/order/OrderDetail?order_id=' . $order_info['order_id'],
+                    'url' => config('ds_config.h5_site_url') . '/seller/order_detail?order_id=' . $order_info['order_id'],
                     'data' => array(
                         "keyword1" => array(
                             "value" => $order_info['order_sn'],
@@ -720,9 +719,14 @@ class Order
             $data['order_id'] = $order_id;
             $data['log_role'] = $role;
             $data['log_user'] = $user;
-            $data['log_msg'] = '收到了货款 ' . (isset($post['trade_no']) ? ('( 支付平台交易号 : ' . $post['trade_no'] . ' )') : '');
+            if($role == 'buyer'){
+                $data['log_msg'] = '支付了货款 ' . (isset($post['trade_no']) ? ('( 支付平台交易号 : ' . $post['trade_no'] . ' )') : '');
+            }else{
+                $data['log_msg'] = '收到了货款 ' . (isset($post['trade_no']) ? ('( 支付平台交易号 : ' . $post['trade_no'] . ' )') : '');
+            }
             $data['log_orderstate'] = $order_state;
             $order_model->addOrderlog($data);
         }
     }
+
 }