afa 10 月之前
父節點
當前提交
516f741ccf

+ 2 - 4
application/admin/controller/product/Lists.php

@@ -131,8 +131,7 @@ class Lists extends Backend
             $this->error(__('You have no permission'));
         }
         if (false === $this->request->isPost()) {
-
-            $area = $this->productArea::where('product_id', $ids)->select();
+            $area = $this->productArea::where('product_id', $ids)->where('status', 1)->select();
             $areaCode = array();
             $areaTxt = array();
             foreach ($area as $key =>$item) {
@@ -169,9 +168,8 @@ class Lists extends Backend
             if(empty($areaArr) || empty($areaArrTxt)) throw new ValidateException('请添加商品关联地区');
             unset($params['product_area'], $params['product_area_txt']);
 
-
             $row->allowField(true)->save($params);
-            $this->productArea::where('product_id', $ids)->delete();
+            $this->productArea::where('product_id', $ids)->where('status', 1)->delete();
            
             $result= $this->setEqualArea($ids, $areaArr, $areaArrTxt);
             Db::commit();

+ 1 - 0
application/admin/lang/zh-cn/general/config.php

@@ -87,4 +87,5 @@ return [
     'Direct income'                        => '直推收益',
     'Withdraw min amount'                  => '最小提现额',
     'Convert rate'                         => '折合Cny率',
+    'Giveaway'                             => '赠送手续费'
 ];

+ 59 - 7
application/api/controller/Order.php

@@ -50,14 +50,13 @@ class Order extends Api
             if(bccomp($order_info['price'], $amount, 2) > 0) throw new Exception(__("余额不足请前往充值"));
             if($order_info->stock == 0 || time() >= $order_info->end_time) throw new Exception(__("抢购已结束"));
             // 生成订单
-            $order =$productOrder->create($order_data);
+            $productOrder->create($order_data);
 
             //修改区域状态
             $productLists->where('id', $order_data['area_id'])->update(['status'=> $productLists::STOP]);
 
             //余额记录
             $ledgerWalletModel->changeWalletAccount($this->auth->id, Asset::TOKEN, -$order_info['price'], $ledgerWalletModel::Popular, $this->auth->id);
-
             //扣除库存
             if($order_info->stock == 1 || time() >= $order_info->end_time) $order_info->status= $productPopular::STOP;
             $order_info->num  += 1;
@@ -94,7 +93,6 @@ class Order extends Api
         try {
             // 生成订单
             $userArea->create($order_data);
-
             $order_info->status= $productOrder::Shipped; 
             $order_info->save();
             // 提交事务
@@ -135,7 +133,6 @@ class Order extends Api
             
             // 生成订单
             $productTransfer->create($order_data);
-           
             //修改状态
             $order_info->status = $productOrder::Transferred;
             $order_info->save();
@@ -172,11 +169,13 @@ class Order extends Api
             $order_data['area_id']   = $order_info['area_id'];
             $order_data['order_no']  = getOrderSN('Z');
             $order_data['user_id']   = $this->auth->id;
+            $order_data['from_user'] = $order_info['user_id'];
             $order_data['price']     = $order_info['price'];
+            $order_data['fees']      = $order_info['fees'];
             $order_data['num']       = 1;
             
             // 生成订单
-            $order = $productOrder->create($order_data);
+            $productOrder->create($order_data);
             //扣除余额记录 
             $ledgerWalletModel->changeWalletAccount($this->auth->id, Asset::TOKEN, -$order_info['price'], $ledgerWalletModel::Payment, $order_info['user_id']);
           
@@ -186,7 +185,7 @@ class Order extends Api
             $ledgerWalletModel->changeWalletAccount($order_info['user_id'], Asset::TOKEN, $amount, $ledgerWalletModel::Receive, $this->auth->id);
 
             //修改原订单状态
-            $productOrder->where('id', $order_info['order_id'])->setField('status', $productOrder::Complete);    
+            $productOrder->where('id', $order_info['order_id'])->setField('status', $productOrder::Closure);    
             //修改状态
             $order_info->status = $productTransfer::STOP;
             $order_info->save();
@@ -198,6 +197,59 @@ class Order extends Api
         $this->success('ok');
     }
 
+    //赠送
+    public function giveaway(ProductOrder $productOrder, UserModel $userModel, LedgerWalletModel $ledgerWalletModel)
+    {
+        $params = $this->request->post();
+        $validate = \think\Loader::validate('Order');
+        if(!$validate->scene('giv')->check($params)) $this->error($validate->getError());
+
+        // 启动事务
+        Db::startTrans();
+         try {
+            $order_info = $productOrder->where('id', $params['order_id'])->where('status', $productOrder::Paid)->find();
+            if(empty($order_info)) throw new Exception(__("参数有误,无可用产品"));
+
+          
+            $user = $userModel->getByAddress($params['address']);
+            if(empty($user)) throw new Exception(__("赠送用户不存在"));    
+            
+            $chabao = $ledgerWalletModel::getWalletChaBao($this->auth->id);
+            $fees   = bcmul($order_info['price'], getConfig('giveaway'), 2);   
+            if(bccomp($fees, $chabao, 2) > 0) throw new Exception(__("余额不足请前往充值"));
+     
+            //添加记录
+            $order_data['order_id']  = $params['order_id'];
+            $order_data['product_id']= $order_info['product_id'];
+            $order_data['type_id']   = $productOrder::Giveaway;
+            $order_data['status']    = $productOrder::Paid;
+            $order_data['area_id']   = $order_info['area_id'];
+            $order_data['order_no']  = getOrderSN('G');
+            $order_data['user_id']   = $user['id'];
+            $order_data['from_user'] = $this->auth->id;
+            $order_data['price']     = $order_info['price'];
+            $order_data['fees']      = $fees;
+            $order_data['num']       = 1;
+
+            $productOrder::create($order_data);
+
+            //扣除手续费
+            $ledgerWalletModel->changeWalletAccount($this->auth->id, Asset::TOKEN, -$fees, $ledgerWalletModel::Giveaway, $user['id']);
+
+            $order_info->status= $productOrder::Closure; 
+            $order_info->save();
+
+            // 提交事务
+            Db::commit();
+        } catch (Exception $e) {
+            // 回滚事务
+            Db::rollback();
+            $this->error( $e->getMessage());
+        }
+        $this->success('ok');
+    }
+
+
     //取消转让 
     public function cancel(ProductOrder $productOrder, ProductTransfer $productTransfer)
     {
@@ -209,7 +261,7 @@ class Order extends Api
         Db::startTrans();
         try {
             $order_info = $productOrder->where('id', $params['order_id'])->find();
-            if(empty($order_info)) throw new Exception( __("参数有误,无可用产品"));
+            if(empty($order_info)) throw new Exception(__("参数有误,无可用产品"));
 
             //转让列表取消
             $productTransfer::where('order_id',$params['order_id'])->setField('status', $productTransfer::STOP);

+ 3 - 1
application/api/lang/en/order.php

@@ -12,7 +12,9 @@ return [
       '已转让'                                => 'Transferred',
       '已发货'                                => 'Shipped',
       '已取消'                                => 'Cancelled',
-      '已完成'                                => 'Completed',
+      '赠送'                                  => 'Giveaway',
+      '关闭'                                  => 'Closure',
+      '赠送用户不存在'                         => 'The gift user does not exist',
 
 
 

+ 1 - 0
application/api/lang/en/user.php

@@ -43,4 +43,5 @@ return [
     '提现'                                   => 'Withdraw',
     '分享'                                   => 'Share',
     '退回'                                   => 'Return',
+    '赠送'                                   => 'Gift fee',
 ];

+ 4 - 2
application/api/lang/zh-cn/order.php

@@ -10,8 +10,10 @@ return [
       '已下单'                => '已下单',
       '已付款'                => '已付款',
       '已转让'                => '已转让',
-      '已发货'                => '已发货',
+      '提货'                  => '提货',
       '已取消'                => '已取消',
-      '已完成'                => '已完成'
+      '赠送'                  => '赠送',
+      '关闭'                  => '关闭',
+      '赠送用户不存在'         => '赠送用户不存在',
       
 ];

+ 1 - 0
application/api/lang/zh-cn/user.php

@@ -43,4 +43,5 @@ return [
     '提现'                                  => '提现',
     '分享'                                  => '分享',
     '退回'                                  => '退回',
+    '赠送'                                  => '赠送手续费',
 ];

+ 2 - 1
application/api/validate/Order.php

@@ -40,7 +40,8 @@ class Order extends Validate
         'add'  => ['order_id', 'product_id', 'area_id'],
         'pick' => ['order_id'],
         'tran' => ['price', 'order_id'],
-        'out'  => ['order_id']
+        'out'  => ['order_id'],
+        'giv'  => ['order_id', 'address'],
     ];
   
 }

+ 4 - 3
application/common/model/LedgerWalletModel.php

@@ -24,7 +24,7 @@ class LedgerWalletModel extends Model
     protected $updateTime = 'update_time';
     protected $deleteTime = false;
 
-    //0支付 1转让支付 2 转让收款 3 充值 4 提现
+    //0支付 1转让支付 2 转让收款 3 充值 4 提现 5扣除书续费
     const Popular           = 0;
     const Payment           = 1;
     const Receive           = 2;
@@ -32,7 +32,7 @@ class LedgerWalletModel extends Model
     const Withdraw          = 4;
     const Share             = 5;
     const Return            = 6;
-
+    const Giveaway          = 7;
     /*
      * 支付状态
      * 0未支付 100支付中 200支付成功 400支付失败
@@ -46,6 +46,7 @@ class LedgerWalletModel extends Model
         self::Withdraw          => '提现',
         self::Share             => '分享',
         self::Return            => '退回',
+        self::Giveaway          => '赠送手续费',
     ];
 
 
@@ -75,7 +76,7 @@ class LedgerWalletModel extends Model
     public static function getStatusList()
     {
         return [self::Popular => __('热销支付'), self::Payment  => __('转让支付'), self::Receive => __('转让收款'), self::Recharge => __('充值'), 
-        self::Withdraw  => __('提现'), self::Share => __('分享'), self::Return => __('退回')];
+        self::Withdraw  => __('提现'), self::Share => __('分享'), self::Return => __('退回'), self::Giveaway => __('赠送')];
     }
 
     /**

+ 7 - 6
application/common/model/ProductOrder.php

@@ -31,27 +31,28 @@ class ProductOrder extends Model
     const Transferred       = 2;
     const Shipped           = 3;
     const Cancelled         = 4;
-    const Complete          = 5;
+    const Closure           = 5;
 
     const Popular           = 0;
     const Transfer          = 1;
-
+    const Giveaway          = 2;
     /* 
-     *  订单状态 '已下单', 1=>'已付款', 2=>'已转让', 3=>'已发货', 4=>'已取消', 5=>'完成'];
+     *  订单状态 '已下单', 1=>'已付款', 2=>'已转让', 3=>'货', 4=>'已取消', 5=>'完成'];
      */
     public $order_status = [
         '-1'                    => '全部',
         self::Ordered           => '已下单',
         self::Paid              => '已付款',
         self::Transferred       => '已转让',
-        self::Shipped           => '已发货',
+        self::Shipped           => '货',
         self::Cancelled         => '已取消',
-        self::Complete          => '完成',
+        self::Closure           => '关闭',
     ];
 
     public static function getStatusList()
     {
-        return [self::Ordered => __('已下单'), self::Paid  => __('已付款'), self::Transferred => __('已转让'), self::Shipped => __('已发货'), self::Cancelled  => __('已取消'), self::Complete => __('已完成')];
+        return [self::Ordered => __('已下单'), self::Paid  => __('已付款'), self::Transferred => __('已转让'), 
+        self::Shipped => __('提货'), self::Cancelled  => __('已取消'), self::Closure => __('关闭')];
     }
 
     //产品

+ 1 - 0
public/assets/js/backend/ledger/ledger_token_change.js

@@ -41,6 +41,7 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
                                 4: '充值',
                                 5: '分享',
                                 6: '提现退回',
+                                7: '赠送手续费',
                             }, operate: 'FIND_IN_SET', formatter: Table.api.formatter.label
                         },
                     ]

+ 2 - 1
public/assets/js/backend/offline/order.js

@@ -32,7 +32,8 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
                         {field: 'areas.address', title: __('Area_id')},
                         {field: 'type_id', title: __('Type_id'), searchList: {0:__('热销'), 1:__('转让')}, formatter: Table.api.formatter.status},
                         {field: 'price', title: __('Price'), operate:false},
-                        {field: 'status', title: __('Status'), searchList: {0:__('已下单'), 1:__('支付'), 2:__('转让'), 3:__('发货'), 4:__('取消'), 5:__('完成')}, formatter: Table.api.formatter.status},
+                        {field: 'status', title: __('Status'), searchList: {0:__('已下单'), 1:__('支付'), 2:__('转让'), 3:__('提货'), 4:__('取消'),
+                             5:__('关闭')}}, formatter: Table.api.formatter.status},
                         {field: 'create_time', title: __('Create_time'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},
                         {field: 'update_time', title: __('Update_time'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},
                         //{field: 'operate', title: __('Operate'), table: table, events: Table.api.events.operate, formatter: Table.api.formatter.operate}

+ 0 - 49
public/assets/js/backend/product/json/area.js

@@ -1,49 +0,0 @@
-export let area= [
-      {
-      value: 1,
-      label: '东南',
-      children: [{
-  value: 2,
-  label: '上海',
-  children: [
-    { value: 3, label: '普陀' },
-    { value: 4, label: '黄埔' },
-    { value: 5, label: '徐汇' }
-  ]
-}, {
-  value: 7,
-  label: '江苏',
-  children: [
-    { value: 8, label: '南京' },
-    { value: 9, label: '苏州' },
-    { value: 10, label: '无锡' }
-  ]
-}, {
-  value: 12,
-  label: '浙江',
-  children: [
-    { value: 13, label: '杭州'},
-    { value: 14, label: '宁波' },
-    { value: 15, label: '嘉兴' }
-  ]
-}]
-},
-{
-value: 17,
-label: '西北',
-children: [{
-  value: 18,
-  label: '陕西',
-  children: [
-    { value: 19, label: '西安' },
-    { value: 20, label: '延安' }
-  ]
-}, {
-  value: 21,
-  label: '新疆维吾尔族自治区',
-  children: [
-    { value: 22, label: '乌鲁木齐' },
-    { value: 23, label: '克拉玛依' }
-  ]
-}]
-}]

+ 0 - 4
public/assets/js/backend/product/lists.js

@@ -1,7 +1,3 @@
-
-//public\assets\json\area.js
-//import {area } from "./json/area.js"
-
 define(['jquery', 'bootstrap', 'backend', 'table', 'form', 'area','vue', 'ELEMENT'], function ($, undefined, Backend, Table, Form, Area, Vue, ELEMENT) {
     ELEMENT.install(Vue)
     Vue.use(ELEMENT)