Browse Source

后台给用户下单配套订单

lizhen_gitee 8 months ago
parent
commit
dfd9baa18c

+ 69 - 0
application/admin/controller/Packageorder.php

@@ -4,6 +4,10 @@ namespace app\admin\controller;
 
 use app\common\controller\Backend;
 use think\Db;
+use Exception;
+use think\exception\DbException;
+use think\exception\PDOException;
+use think\exception\ValidateException;
 /**
  * 用户套餐订单
  *
@@ -103,4 +107,69 @@ class Packageorder extends Backend
 
     }
 
+    /**
+     * 添加
+     *
+     * @return string
+     * @throws \think\Exception
+     */
+    public function add()
+    {
+        if (false === $this->request->isPost()) {
+            return $this->view->fetch();
+        }
+        $params = $this->request->post('row/a');
+        if (empty($params)) {
+            $this->error(__('Parameter %s can not be empty', ''));
+        }
+        $params = $this->preExcludeFields($params);
+
+        if ($this->dataLimit && $this->dataLimitFieldAutoFill) {
+            $params[$this->dataLimitField] = $this->auth->id;
+        }
+        $result = false;
+        Db::startTrans();
+        try {
+            //是否采用模型验证
+            if ($this->modelValidate) {
+                $name = str_replace("\\model\\", "\\validate\\", get_class($this->model));
+                $validate = is_bool($this->modelValidate) ? ($this->modelSceneValidate ? $name . '.add' : $name) : $this->modelValidate;
+                $this->model->validateFailException()->validate($validate);
+            }
+
+            //
+            $package_id = $params['package_id'];
+            $package_info = Db::name('lesson_package')->where('id',$package_id)->find();
+            //套餐订单
+            $data = [
+                'order_no'    => createUniqueNo('P',$params['user_id']),
+                'lesson_ids'  => $package_info['lesson_ids'],
+                'sessions'    => $package_info['sessions'],
+                'starttime'   => 0,
+                'days'        => $package_info['days'],
+                'endtime'     => 0,
+                'price'       => $package_info['price'],
+                'remain'      => $package_info['sessions'],
+                'order_status'=> 1,
+                'use_status'  => 0,//默认不激活
+                'paytime'     => time(),
+                'pay_type'    => 2, //线下支付
+                'is_gift'     => 0,
+            ];
+            $params = array_merge($params,$data);
+            //
+
+
+            $result = $this->model->allowField(true)->save($params);
+            Db::commit();
+        } catch (ValidateException|PDOException|Exception $e) {
+        Db::rollback();
+        $this->error($e->getMessage());
+    }
+        if ($result === false) {
+            $this->error(__('No rows were inserted'));
+        }
+        $this->success();
+    }
+
 }

+ 3 - 0
application/admin/lang/en/packageorder.php

@@ -19,6 +19,9 @@ return [
     'Use_status 0'    => 'not active',
     'Use_status 1'    => 'Active',
     'Paytime'         => 'Pay time',
+    'Pay_type'        => 'Pay type',
+    'Pay_type 1'      => 'Online',
+    'Pay_type 2'      => 'Offline',
     'Createtime'      => 'Create time',
     'Updatetime'      => 'Update time',
     'Is_gift'         => 'Is gift',

+ 6 - 3
application/admin/lang/zh-cn/packageorder.php

@@ -4,7 +4,7 @@ return [
     'Id'              => 'id',
     'Order_no'        => '订单号',
     'User_id'         => '用户id',
-    'Package_id'      => '套id',
+    'Package_id'      => '套id',
     'Lesson_ids'      => '课程ids',
     'Sessions'        => '共计获得课程数量',
     'Starttime'       => '激活时间',
@@ -19,6 +19,9 @@ return [
     'Use_status 0'    => '未激活',
     'Use_status 1'    => '已激活',
     'Paytime'         => '支付时间',
+    'Pay_type'        => '支付方式',
+    'Pay_type 1'      => '线上',
+    'Pay_type 2'      => '线下',
     'Createtime'      => '创建时间',
     'Updatetime'      => '更新时间',
     'Is_gift'         => '是否赠品',
@@ -32,6 +35,6 @@ return [
     'Remark'          => '备注',
     'User.firstname'  => '名',
     'User.lastname'   => '姓',
-    'Package.name'    => '套标题',
-    'Package.name_en' => '套标题(en)'
+    'Package.name'    => '套标题',
+    'Package.name_en' => '套标题(en)'
 ];

+ 14 - 14
application/admin/view/packageorder/add.html

@@ -1,24 +1,24 @@
 <form id="add-form" class="form-horizontal" role="form" data-toggle="validator" method="POST" action="">
 
-    <div class="form-group">
+    <!--<div class="form-group">
         <label class="control-label col-xs-12 col-sm-2">{:__('Order_no')}:</label>
         <div class="col-xs-12 col-sm-8">
             <input id="c-order_no" data-rule="required" class="form-control" name="row[order_no]" type="text" value="">
         </div>
-    </div>
+    </div>-->
     <div class="form-group">
         <label class="control-label col-xs-12 col-sm-2">{:__('User_id')}:</label>
         <div class="col-xs-12 col-sm-8">
-            <input id="c-user_id" data-rule="required" data-source="user/user/index" data-field="nickname" class="form-control selectpage" name="row[user_id]" type="text" value="">
+            <input id="c-user_id" data-rule="required" data-source="user/user/selectpagenew" data-field="nickname"  class="form-control selectpage" name="row[user_id]" type="text" value="">
         </div>
     </div>
     <div class="form-group">
         <label class="control-label col-xs-12 col-sm-2">{:__('Package_id')}:</label>
         <div class="col-xs-12 col-sm-8">
-            <input id="c-package_id" data-rule="required" data-source="package/index" class="form-control selectpage" name="row[package_id]" type="text" value="">
+            <input id="c-package_id" data-rule="required" data-source="lessonpackage/index" class="form-control selectpage" name="row[package_id]" type="text" value="">
         </div>
     </div>
-    <div class="form-group">
+    <!--<div class="form-group">
         <label class="control-label col-xs-12 col-sm-2">{:__('Lesson_ids')}:</label>
         <div class="col-xs-12 col-sm-8">
             <input id="c-lesson_ids" data-rule="required" data-source="lesson/index" data-multiple="true" class="form-control selectpage" name="row[lesson_ids]" type="text" value="">
@@ -29,8 +29,8 @@
         <div class="col-xs-12 col-sm-8">
             <input id="c-sessions" data-rule="required" class="form-control" name="row[sessions]" type="number" value="0">
         </div>
-    </div>
-    <div class="form-group">
+    </div>-->
+    <!--<div class="form-group">
         <label class="control-label col-xs-12 col-sm-2">{:__('Starttime')}:</label>
         <div class="col-xs-12 col-sm-8">
             <input id="c-starttime" data-rule="required" class="form-control datetimepicker" data-date-format="YYYY-MM-DD HH:mm:ss" data-use-current="true" name="row[starttime]" type="text" value="{:date('Y-m-d H:i:s')}">
@@ -59,8 +59,8 @@
         <div class="col-xs-12 col-sm-8">
             <input id="c-remain" data-rule="required" class="form-control" name="row[remain]" type="number" value="0">
         </div>
-    </div>
-    <div class="form-group">
+    </div>-->
+    <!--<div class="form-group">
         <label class="control-label col-xs-12 col-sm-2">{:__('Order_status')}:</label>
         <div class="col-xs-12 col-sm-8">
             
@@ -77,8 +77,8 @@
         <div class="col-xs-12 col-sm-8">
             <input id="c-paytime" data-rule="required" class="form-control datetimepicker" data-date-format="YYYY-MM-DD HH:mm:ss" data-use-current="true" name="row[paytime]" type="text" value="{:date('Y-m-d H:i:s')}">
         </div>
-    </div>
-    <div class="form-group">
+    </div>-->
+    <!--<div class="form-group">
         <label class="control-label col-xs-12 col-sm-2">{:__('Is_gift')}:</label>
         <div class="col-xs-12 col-sm-8">
                         
@@ -89,8 +89,8 @@
             </select>
 
         </div>
-    </div>
-    <div class="form-group">
+    </div>-->
+    <!--<div class="form-group">
         <label class="control-label col-xs-12 col-sm-2">{:__('Notice_status')}:</label>
         <div class="col-xs-12 col-sm-8">
             
@@ -101,7 +101,7 @@
             </div>
 
         </div>
-    </div>
+    </div>-->
     <div class="form-group">
         <label class="control-label col-xs-12 col-sm-2">{:__('Remark')}:</label>
         <div class="col-xs-12 col-sm-8">

+ 9 - 8
application/admin/view/packageorder/edit.html

@@ -18,12 +18,12 @@
             <input id="c-package_id" disabled data-rule="required" data-source="lessonpackage/index" class="form-control selectpage" name="row[package_id]" type="text" value="{$row.package_id|htmlentities}">
         </div>
     </div>
-    <div class="form-group">
+    <!--<div class="form-group">
         <label class="control-label col-xs-12 col-sm-2">{:__('Lesson_ids')}:</label>
         <div class="col-xs-12 col-sm-8">
             <input id="c-lesson_ids" data-rule="required" data-source="lesson/index" data-multiple="true" class="form-control selectpage" name="row[lesson_ids]" type="text" value="{$row.lesson_ids|htmlentities}">
         </div>
-    </div>
+    </div>-->
     <div class="form-group">
         <label class="control-label col-xs-12 col-sm-2">{:__('Sessions')}:</label>
         <div class="col-xs-12 col-sm-8">
@@ -37,12 +37,7 @@
             <input id="c-price" disabled data-rule="required" class="form-control" step="0.01" name="row[price]" type="number" value="{$row.price|htmlentities}">
         </div>
     </div>
-    <div class="form-group">
-        <label class="control-label col-xs-12 col-sm-2">{:__('Remain')}:</label>
-        <div class="col-xs-12 col-sm-8">
-            <input id="c-remain" data-rule="required" class="form-control" name="row[remain]" step="0.5" type="number" value="{$row.remain|htmlentities}">
-        </div>
-    </div>
+
     <div class="form-group">
         <label class="control-label col-xs-12 col-sm-2">{:__('Is_gift')}:</label>
         <div class="col-xs-12 col-sm-8">
@@ -103,6 +98,12 @@
             <input id="c-endtime" data-rule="required" class="form-control datetimepicker" data-date-format="YYYY-MM-DD HH:mm:ss" data-use-current="true" name="row[endtime]" type="text" value="{:$row.endtime?datetime($row.endtime):''}">
         </div>
     </div>
+    <div class="form-group">
+        <label class="control-label col-xs-12 col-sm-2">{:__('Remain')}:</label>
+        <div class="col-xs-12 col-sm-8">
+            <input id="c-remain" data-rule="required" class="form-control" name="row[remain]" step="0.5" type="number" value="{$row.remain|htmlentities}">
+        </div>
+    </div>
 
 
     <!--<div class="form-group">

+ 2 - 2
application/admin/view/packageorder/index.html

@@ -16,8 +16,8 @@
                 <div class="widget-body no-padding">
                     <div id="toolbar" class="toolbar">
                         <a href="javascript:;" class="btn btn-primary btn-refresh" title="{:__('Refresh')}" ><i class="fa fa-refresh"></i> </a>
-                        <!--<a href="javascript:;" class="btn btn-success btn-add {:$auth->check('packageorder/add')?'':'hide'}" title="{:__('Add')}" ><i class="fa fa-plus"></i> {:__('Add')}</a>
-                        <a href="javascript:;" class="btn btn-success btn-edit btn-disabled disabled {:$auth->check('packageorder/edit')?'':'hide'}" title="{:__('Edit')}" ><i class="fa fa-pencil"></i> {:__('Edit')}</a>
+                        <a href="javascript:;" class="btn btn-success btn-add {:$auth->check('packageorder/add')?'':'hide'}" title="{:__('Add')}" ><i class="fa fa-plus"></i> {:__('Add')}</a>
+                        <!--<a href="javascript:;" class="btn btn-success btn-edit btn-disabled disabled {:$auth->check('packageorder/edit')?'':'hide'}" title="{:__('Edit')}" ><i class="fa fa-pencil"></i> {:__('Edit')}</a>
                         <a href="javascript:;" class="btn btn-danger btn-del btn-disabled disabled {:$auth->check('packageorder/del')?'':'hide'}" title="{:__('Delete')}" ><i class="fa fa-trash"></i> {:__('Delete')}</a>
                         
 

+ 1 - 0
application/api/controller/Lesson.php

@@ -734,6 +734,7 @@ class Lesson extends Api
             'order_status'=> 0,
             'use_status'  => 0,//默认不激活
             'paytime'     => 0,
+            'pay_type'     => 1, //线上支付
             'createtime'  => time(),
             'updatetime'  => 0,
             'is_gift'     => 0,

+ 2 - 1
public/assets/js/backend/packageorder.js

@@ -36,7 +36,7 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
                         {field: 'package_id', title: __('Package_id')},
                         {field: 'package.name', title: __('Package.name'), operate: 'LIKE'},
                         {field: 'package.name_en', title: __('Package.name_en'), operate: 'LIKE'},
-                        {field: 'lesson_ids', title: __('Lesson_ids')},
+//                        {field: 'lesson_ids', title: __('Lesson_ids')},
                         {field: 'sessions', title: __('Sessions')},
                         {field: 'starttime', title: __('Starttime'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},
                         {field: 'days', title: __('Days')},
@@ -44,6 +44,7 @@ define(['jquery', 'bootstrap', 'backend', 'table', 'form'], function ($, undefin
                         {field: 'price', title: __('Price'), operate:'BETWEEN'},
                         {field: 'remain', title: __('Remain')},
                         {field: 'order_status', title: __('Order_status'), searchList: {"0":__('Order_status 0'),"1":__('Order_status 1')}, formatter: Table.api.formatter.status},
+                        {field: 'pay_type', title: __('Pay_type'), searchList: {"1":__('Pay_type 1'),"2":__('Pay_type 2')}, formatter: Table.api.formatter.status},
                         {field: 'paytime', title: __('Paytime'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},
                         {field: 'createtime', title: __('Createtime'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},
                         {field: 'updatetime', title: __('Updatetime'), operate:'RANGE', addclass:'datetimerange', autocomplete:false, formatter: Table.api.formatter.datetime},