hrjy 3 years ago
parent
commit
78633981ef
3 changed files with 90 additions and 3 deletions
  1. 77 0
      app/api/controller/user/UserController.php
  2. 9 3
      app/models/store/StoreOrder.php
  3. 4 0
      route/api/route.php

+ 77 - 0
app/api/controller/user/UserController.php

@@ -2,6 +2,7 @@
 
 namespace app\api\controller\user;
 
+use app\admin\model\ump\WriteOff;
 use app\http\validates\user\AddressValidate;
 use app\models\system\SystemCity;
 use app\models\system\SystemStoreStaff;
@@ -623,4 +624,80 @@ class UserController
         $puid = $request->post('puid/d', 0);
         return app('json')->success(User::setSpread($puid, $request->uid()));
     }
+
+    /**
+     * 核销记录
+     * @param Request $request
+     * @return mixed
+     */
+    public function write_off(Request $request)
+    {
+        $data = UtilService::postMore([
+            ['page', 1],
+            ['limit', 10]
+        ], $request);
+        $model = new WriteOff();
+        $list = $model->alias('a')
+            ->field('a.*,us.nickname,c.coupon_title,c.coupon_price,d.name as d_name')
+            ->leftJoin('user b', 'b.uid = a.uid')
+            ->leftJoin('store_coupon_user c', 'c.id = a.coupon_id')
+            ->leftJoin('user us', 'us.uid = c.uid')
+            ->leftJoin('system_store d', 'd.id = c.store_id')
+            ->where('a.uid', $request->uid())
+            ->page($data['page'], $data['limit'])
+            ->select();
+        if ($list){
+            $list = $list->toArray();
+            foreach ($list as &$v){
+                $v['add_time'] = $v['add_time'] > 0 ? date('Y-m-d H:i:s', $v['add_time']) : 0;
+            }
+        }
+        return app('json')->success($list);
+    }
+
+    /**
+     * 用户优惠券
+     * @param Request $request
+     * @return mixed
+     * @throws DataNotFoundException
+     * @throws DbException
+     * @throws ModelNotFoundException
+     */
+    public function coupon_user(Request $request)
+    {
+        $data = UtilService::postMore([
+            ['status', 0],
+            ['page', 1],
+            ['limit', 10]
+        ], $request);
+
+        $coupon = StoreCouponUser::where('uid', $request->uid())->where('status', $data['status'])->select();
+        $coupon = count($coupon) > 0?$coupon->toArray() : [];
+        return app('json')->success($coupon);
+    }
+
+    /**
+     * 分享领取优惠券
+     * @param Request $request
+     * @return mixed
+     * @throws DataNotFoundException
+     * @throws DbException
+     * @throws ModelNotFoundException
+     */
+    public function share(Request $request)
+    {
+        $data = UtilService::postMore([
+            ['code', ''],
+        ], $request);
+        if (!$data['code']) return app('json')->fail('优惠券不存在');
+        $coupon = StoreCouponUser::where('code', $data['code'])->find();
+
+        if ($coupon['status'] == 1) return app('json')->fail('优惠券已使用');
+        if ($coupon['status'] == 2) return app('json')->fail('优惠券已过期');
+        if ($coupon['sharer_id'] > 0) return app('json')->fail('该优惠券被领取');
+        $coupon['sharer_id'] = $request->uid();
+        $res = $coupon->save();
+        if ($res) return app('json')->success('领取成功');
+        return app('json')->fail('领取失败');
+    }
 }

+ 9 - 3
app/models/store/StoreOrder.php

@@ -300,9 +300,15 @@ class StoreOrder extends BaseModel
                 $payPostage = self::getOrderPriceGroup($cartInfo, $addr)['storePostage'];
             }
             if ($shipping_type === 1) {
-                if (!$test && !$addressId) return self::setErrorInfo('请选择收货地址!', true);
-                if (!$test && (!UserAddress::be(['uid' => $uid, 'id' => $addressId, 'is_del' => 0]) || !($addressInfo = UserAddress::find($addressId))))
-                    return self::setErrorInfo('地址选择有误!', true);
+                $addressInfo['real_name'] = '';
+                $addressInfo['phone'] = '';
+                $addressInfo['province'] = '';
+                $addressInfo['city'] = '';
+                $addressInfo['district'] = '';
+                $addressInfo['detail'] = '';
+//                if (!$test && !$addressId) return self::setErrorInfo('请选择收货地址!', true);
+//                if (!$test && (!UserAddress::be(['uid' => $uid, 'id' => $addressId, 'is_del' => 0]) || !($addressInfo = UserAddress::find($addressId))))
+//                    return self::setErrorInfo('地址选择有误!', true);
             } else {
                 if ((!$real_name || !$phone) && !$test) return self::setErrorInfo('请填写姓名和电话', true);
                 $addressInfo['real_name'] = $real_name;

+ 4 - 0
route/api/route.php

@@ -164,6 +164,10 @@ Route::group(function () {
 
     Route::get('order/view_order', 'order.StoreOrderController/view_order')->name('view_order');//查看订单优惠信息
     Route::post('coupon_verific', 'admin.StoreOrderController/coupon_verific')->name('coupon_verific');//优惠券核销
+
+    Route::get('write_off', 'user.UserController/write_off')->name('write_off');//核销记录
+    Route::get('coupon_user', 'user.UserController/coupon_user')->name('coupon_user');//用户优惠券
+    Route::post('share', 'user.UserController/share')->name('share');//分享领取优惠券
 })->middleware(\app\http\middleware\AllowOriginMiddleware::class)->middleware(\app\http\middleware\AuthTokenMiddleware::class, true);
 //未授权接口
 Route::group(function () {