geek преди 4 години
родител
ревизия
8479bc02f0

+ 1 - 0
application/api/BaseController.php

@@ -74,6 +74,7 @@ abstract class BaseController {
             $this->userId = $decodeToken['userId'];
             Until::$userId = $this->userId;
             $this->isAdmin = $decodeToken['isAdmin'];
+            Until::$isAdmin = $this->isAdmin();
             $this->adminId = $decodeToken['adminId'];
         }
         // 控制器初始化

+ 5 - 1
application/api/controller/Admin.php

@@ -121,6 +121,7 @@ class Admin extends BaseController {
      *           @OA\Property(description="登入密码", property="password", type="string", default="123456"),
      *           @OA\Property(description="验证码", property="code", type="string", default="9999"),
      *           @OA\Property(description="生成验证码时的唯一码", property="uniqueKey", type="string", default="sdafsdfsd"),
+     *           @OA\Property(description="mac地址", property="macAddress", type="string", default="sdafsdfsd"),
      *           required={"account","password","code"})
      *       )
      *     ),
@@ -133,7 +134,7 @@ class Admin extends BaseController {
             'account|用户名' => 'require',
             'password|内容'  => 'require',
             'code|验证码'    => 'require',
-            'uniqueKey|唯一码'    => 'require'
+            'uniqueKey|唯一码'    => 'require',
         ];
         Until::check($rule, $input);
         if($input['code'] != 9999 && strtolower($input['code']) != strtolower((string)Cache::get($input['uniqueKey']))) {
@@ -155,6 +156,9 @@ class Admin extends BaseController {
         if (empty($info)) {
             throw new ApiException('账号或密码错误');
         }
+        if (!empty($input['macAddress'])) {
+            $model::where($where)->update(['mac_address' => $input['macAddress']]);
+        }
         $tokenService = new \app\common\until\Token();
         $token = $tokenService->getToken($info['id'],'',true);
         Until::output(['token' => $token, 'info' => $info]);

+ 9 - 6
application/api/controller/Order.php

@@ -13,6 +13,7 @@ use app\api\model\BrandModel;
 use app\api\model\GroupModel;
 use app\api\model\OrderModel;
 use app\api\model\ProductModel;
+use app\api\model\UserModel;
 use app\api\model\WriteOffModel;
 use app\common\service\OrderService;
 use app\common\until\Until;
@@ -58,7 +59,7 @@ class Order extends BaseController {
         $model->setPageSize($input['pageSize'] ?? 10);
         $where = [];
 
-        Db::table('order')->where([['status', '=', 1], ['create_time', '<',
+        $model::where([['status', '=', 1], ['create_time', '<',
                                                         date('Y-m-d H:i:s',strtotime('-15minutes'))]])
         ->update(['status' => OrderModel::IS_CLOSE]);
         if (!empty($input['orderSn'])) {
@@ -320,7 +321,7 @@ class Order extends BaseController {
             (new OrderService())->notify($input['OrderNumber']);
             Until::output([]);
         }
-        (new OrderService())->notify($input['OrderNumber']);
+//        (new OrderService())->notify($input['OrderNumber']);
         Until::output(['decode' => md5('ef17f532-4661-b07c-5346-65dfa304c0d8'.$input['OrderNumber']),
             'encode' => $this->request->header('serchkey')]);
     }
@@ -334,15 +335,15 @@ class Order extends BaseController {
         $ser  = new OrderService();
         $code = $ser->changeCode();
         $wModel = new WriteOffModel();
-        $wModel::where(['order_id' => $input['orderId']])->update([
+        $wModel::where(['order_id' => $input['orderId'],'write_off_status' => 1])->update([
             'write_off_code' => $code,
-            'over_time' => date('Y-m-d  H:i:s', time() + 5 * 60),
+            'over_time' => date('Y-m-d  H:i:s', time() + 2 * 60),
         ]);
         Until::output(['code' => $code]);
     }
 
     /**
-     * @OA\Get(path="/api/Order/writeOffOrder",
+     * @OA\Post(path="/api/Order/writeOffOrder",
      *   tags={"订单管理"},
      *   summary="核销订单",
      *   @OA\Parameter(name="token", in="header", description="token", @OA\Schema(type="string")),
@@ -373,12 +374,14 @@ class Order extends BaseController {
         $where = ['order_id' => $input['orderId'], 'write_off_code' => $input['code']];
         $writeOff = $model::where($where)->find();
         if ($writeOff === null) {
-            throw new ApiException('无此核销单');
+            throw new ApiException('核销码错误');
         }
 
         if($writeOff['write_off_status'] == 2){
             throw new ApiException('该订单已经核销了');
         }
+        $userModel = new UserModel();
+        $userModel::where([['id','=', $rs['user_id']],['first_store_id','=',0]])->update(['first_store_id' => $rs['store_id']]);
         $model::where($where)
             ->update([
                 'write_off_status' => 2,

+ 8 - 5
application/api/model/OrderModel.php

@@ -25,18 +25,20 @@ class OrderModel  extends BaseModel {
             ->join('store store', 'store.id = o.store_id','left')
             ->join('staff staff', 'staff.id = o.staff_id','left')
             ->join('write_off wo', 'wo.order_id = o.id','left')
+            ->join('admin ad','ad.id = wo.admin_id','left')
             ->join('user u','u.id = o.user_id','left')
             ->join('discuss_order discussOrder','discussOrder.order_id = o.id and discussOrder.user_id = o.user_id','left');
         $selectModel = $this->alias('o')
             ->field('o.*,store.store_name,store.address,discussOrder.id as discussId,staff.staff_name,wo.write_off_code,
-            wo.write_off_status,wo.write_off_time,staff.id as writeOffAdminId,wo.over_time as  writeOffOverTime,
+            wo.write_off_status,wo.write_off_time,wo.admin_id as writeOffAdminId,wo.over_time as  writeOffOverTime,
             p.product_name,p.product_img,
-            u.name as userName')
+            u.name as userName,ad.name as writeOffName')
             ->join('store store', 'store.id = o.store_id','left')
             ->join('staff staff', 'staff.id = o.staff_id','left')
             ->join('product p', 'p.id = o.product_id','left')
             ->join('write_off wo', 'wo.order_id = o.id','left')
             ->join('user u','u.id = o.user_id','left')
+            ->join('admin ad','ad.id = wo.admin_id','left')
             ->join('discuss_order discussOrder','discussOrder.order_id = o.id and discussOrder.user_id = o.user_id','left')
             ->order('o.id desc');
         return $this->joinModelPageList($countModel, $selectModel);
@@ -46,13 +48,14 @@ class OrderModel  extends BaseModel {
 
     public function getOrderInfo() {
         $selectModel = $this->alias('o')
-            ->field('o.*,store.store_name,store.address,discussOrder.id as discussId,staff.staff_name,wo.write_off_code,
-            wo.write_off_status,wo.write_off_time,staff.id as writeOffAdminId,wo.over_time as writeOffOverTime,wo.create_time as writeOffCreateTime,
-            p.product_name,p.product_img,store.latitude,store.longitude')
+            ->field('o.*,store.store_name,store.address,store.mobile as storeMobile,discussOrder.id as discussId,staff.staff_name,wo.write_off_code,
+            wo.write_off_status,wo.write_off_time,wo.admin_id as writeOffAdminId,wo.over_time as writeOffOverTime,wo.create_time as writeOffCreateTime,
+            p.product_name,p.product_img,store.latitude,store.longitude,ad.name as writeOffName')
             ->join('store store', 'store.id = o.store_id','left')
             ->join('staff staff', 'staff.id = o.staff_id','left')
             ->join('product p', 'p.id = o.product_id','left')
             ->join('write_off wo', 'wo.order_id = o.id','left')
+            ->join('admin ad','ad.id = wo.admin_id','left')
             ->join('discuss_order discussOrder','discussOrder.order_id = o.id and discussOrder.user_id = o.user_id','left')
             ->where($this->getWhere())
             ->find();

+ 13 - 4
application/common/service/OrderService.php

@@ -15,7 +15,6 @@ use app\api\model\UserModel;
 use app\api\model\WriteOffModel;
 use app\common\until\Until;
 use GuzzleHttp\Client;
-use think\console\command\Help;
 use think\facade\Cache;
 use think\facade\Config;
 
@@ -24,8 +23,11 @@ class OrderService {
     public $userName = 'heshen';
     public $passwd = 'heshenit@0563';
 
+    public $time = [];
+
 
     public function payOrder($input) {
+        $this->time[] = 'start' . time();
         $orderSn = Until::createSn();
         $productInfo = (new ProductModel())::where(['id' => $input['productId']])->find();
         $userInfo = (new UserModel())::where(['id' => Until::$userId])->find();
@@ -83,6 +85,7 @@ class OrderService {
                 'username' => $userInfo['name'],
                 'payCode'  => strtoupper($this->userName),
             ];
+            $this->time[] = 'leo-start' . time();
             $wxOrderInfo = $this->createOrderForOther($otherData);
             $order = [
                 'nonceStr'  => $wxOrderInfo['nonceStr'],
@@ -94,7 +97,8 @@ class OrderService {
                 'orderId' => $orderId
             ];
         }
-
+        $this->time[] = 'leo-end' . time();
+        $order['time'] = $this->time;
         return $order;
     }
 
@@ -136,6 +140,7 @@ class OrderService {
 
     public function getPayToken() {
 //        var_dump('获取token'.time());
+        $this->time[] = 'payToken-start-' . time();
         $key = 'payToken' . $this->userName;
         $token = Cache::get($key);
         if (empty($token)) {
@@ -144,6 +149,7 @@ class OrderService {
 //            var_dump('接口获取token结束'.time());
             return $token;
         }
+        $this->time[] = 'payToken-end-' . time();
 //        var_dump('缓存获取token结束'.time());
         return $token;
     }
@@ -169,6 +175,7 @@ class OrderService {
 
     public function createOrderForOther(array $data) {
 //        var_dump('start'.time());
+        $this->time[] = 'createOrder-start-' . time();
         $client = new Client();
         $res = $client->request('Post',
             Config::get('domain')."api/supers/wx-pay/gateway-no-order", [
@@ -181,16 +188,18 @@ class OrderService {
         if ($info['code'] != 200) {
             throw new ApiException($info['msg']);
         }
+        $this->time[] = 'createOrder-end-' . time();
 //        var_dump('end'.time());
         return $info['data'];
     }
 
     public function notify(string $orderSn) {
         $model = new OrderModel();
-        $rs = $model::where(['order_sn' => $orderSn])->find();
+        $rs = $model::where(['order_sn' => $orderSn])->whereOr(['pay_sn' => $orderSn])->find();
         if (empty($rs) || $rs['status'] === 2) {
             return;
         }
+
 //        var_dump($rs);
         $model::where(['order_sn' => $orderSn])->update(['status' => 2,'pay_time' => date('Y-m-d H:i:s')]);
         $model::where(['pay_sn' => $orderSn])->update(['status' => 2,'pay_time' => date('Y-m-d H:i:s')]);
@@ -198,7 +207,7 @@ class OrderService {
         $code  = $this->changeCode();
         $wModel::where(['order_id' => $rs['id']])->update([
             'write_off_code' => $code,
-            'over_time' => date('Y-m-d  H:i:s', time() + 5 * 60),
+            'over_time' => date('Y-m-d  H:i:s', time() + 2 * 60),
         ]);
     }
 

+ 1 - 1
application/common/until/Until.php

@@ -29,7 +29,7 @@ class Until {
         $re = [
             'code'    => $code,
             'message' => $message,
-            'data'    => $data
+            'data'    => empty($data) ? (object)[] : $data
         ];
         self::addLog($re);
         header('Content-Type: application/json; charset=utf-8');

+ 5 - 1
public/api.yaml

@@ -163,6 +163,10 @@ paths:
                   description: 生成验证码时的唯一码
                   type: string
                   default: sdafsdfsd
+                macAddress:
+                  description: mac地址
+                  type: string
+                  default: sdafsdfsd
               type: object
       responses:
         '200':
@@ -971,7 +975,7 @@ paths:
         '200':
           description: 请求成功
   /api/Order/writeOffOrder:
-    get:
+    post:
       tags:
         - 订单管理
       summary: 核销订单