Selaa lähdekoodia

增加是否会员

ZxcZxc123 2 vuotta sitten
vanhempi
commit
c7be42488d

+ 5 - 0
app/api/controller/PublicController.php

@@ -5,6 +5,7 @@ namespace app\api\controller;
 use app\admin\model\system\SystemAttachment;
 use app\models\store\StoreCategory;
 use app\models\store\StoreCouponIssue;
+use app\models\store\StoreOrder;
 use app\models\store\StoreProduct;
 use app\models\store\StoreService;
 use app\models\system\Express;
@@ -30,6 +31,10 @@ use crmeb\services\upload\Upload;
  */
 class PublicController
 {
+    public function test(){
+        StoreOrder::set_parent(1);
+    }
+
     /**
      * @param Request $request
      * @return mixed

+ 33 - 53
app/api/controller/order/StoreOrderController.php

@@ -2,6 +2,7 @@
 
 namespace app\api\controller\order;
 
+use crmeb\basic\BaseModel;
 use Qiniu\Auth;
 use app\admin\model\system\{
     SystemAttachment, ShippingTemplates
@@ -23,7 +24,7 @@ use app\models\store\{StoreBargainUser,
 use app\models\system\SystemStore;
 use app\models\user\UserAddress;
 use app\models\user\UserLevel;
-use app\models\user\User as User2;
+use app\models\user\User as Users;
 use app\Request;
 use crmeb\services\{
     CacheService,
@@ -290,67 +291,64 @@ class StoreOrderController
             ['paytype', 'weixin'],
             ['from', 'weixin']
         ], $request, true);
-
-        // 根据订单号和用户ID获取订单信息
+        if (!$uni) return app('json')->fail('参数错误!');
         $order = StoreOrder::getUserOrderDetail($request->uid(), $uni);
-
-        // 检查订单是否存在
-        if (!$order) return app('json')->fail('订单不存在!');
-
-        // 检查订单是否已支付
-        if ($order['paid']) return app('json')->fail('该订单已支付!');
-
-        // 检查订单是否失效
-        if ($order['pink_id'] && StorePink::isPinkStatus($order['pink_id'])) return app('json')->fail('该订单已失效!');
-
-        // 根据支付来源调整订单ID
-        if ($from == 'weixin' && in_array($order->is_channel, [1, 2])) {
-            $order['order_id'] = mt_rand(100, 999) . '_' . $order['order_id'];
-        } elseif ($from == 'weixinh5' && in_array($order->is_channel, [0, 1])) {
-            $order['order_id'] = mt_rand(100, 999) . '_' . $order['order_id'];
-        } elseif ($from == 'routine' && in_array($order->is_channel, [0, 2])) {
-            $order['order_id'] = mt_rand(100, 999) . '_' . $order['order_id'];
+        if (!$order)
+            return app('json')->fail('订单不存在!');
+        if ($order['paid'])
+            return app('json')->fail('该订单已支付!');
+        if ($order['pink_id']) if (StorePink::isPinkStatus($order['pink_id']))
+            return app('json')->fail('该订单已失效!');
+
+        if ($from == 'weixin') {//0
+            if (in_array($order->is_channel, [1, 2]))
+                $order['order_id'] = mt_rand(100, 999) . '_' . $order['order_id'];
+        }
+        if ($from == 'weixinh5') {//2
+            if (in_array($order->is_channel, [0, 1]))
+                $order['order_id'] = mt_rand(100, 999) . '_' . $order['order_id'];
+        }
+        if ($from == 'routine') {//1
+            if (in_array($order->is_channel, [0, 2]))
+                $order['order_id'] = mt_rand(100, 999) . '_' . $order['order_id'];
         }
 
-        // 重新设置支付方式
-        $order['pay_type'] = $paytype;
-
-        // 根据支付方式进行处理
+        $order['pay_type'] = $paytype; //重新支付选择支付方式
         switch ($order['pay_type']) {
             case 'weixin':
                 try {
-                    $jsConfig = OrderRepository::jsPay($order);
+                    if ($from == 'routine') {
+                        $jsConfig = OrderRepository::jsPay($order); //订单列表发起支付
+                    } else if ($from == 'weixinh5') {
+                        $jsConfig = OrderRepository::h5Pay($order);
+                    } else {
+                        $jsConfig = OrderRepository::wxPay($order);
+                    }
                 } catch (\Exception $e) {
                     return app('json')->fail($e->getMessage());
                 }
-
                 if ($from == 'weixinh5') {
                     return app('json')->status('wechat_h5_pay', ['jsConfig' => $jsConfig, 'order_id' => $order['order_id']]);
                 } else {
-                    $this->set_parent($request->uid());
-
                     return app('json')->status('wechat_pay', ['jsConfig' => $jsConfig, 'order_id' => $order['order_id']]);
                 }
                 break;
             case 'yue':
-                if (StoreOrder::yuePay($order['order_id'], $request->uid())) {
-                    $this->set_parent($request->uid());
+                if (StoreOrder::yuePay($order['order_id'], $request->uid()))
                     return app('json')->status('success', '余额支付成功');
-                } else {
+                else {
                     $error = StoreOrder::getErrorInfo();
                     return app('json')->fail(is_array($error) && isset($error['msg']) ? $error['msg'] : $error);
                 }
                 break;
             case 'offline':
                 StoreOrder::createOrderTemplate($order);
-                if (StoreOrder::setOrderTypePayOffline($order['order_id'])) {
+                if (StoreOrder::setOrderTypePayOffline($order['order_id']))
                     return app('json')->status('success', '订单创建成功');
-                } else {
+                else
                     return app('json')->status('success', '支付失败');
-                }
                 break;
         }
-
         return app('json')->fail('支付方式错误');
     }
 
@@ -358,24 +356,6 @@ class StoreOrderController
 
 
 
-    public function set_parent($uid)
-    {
-        // 查询用户表,找到上级的parent_id
-        $user = User2::find($uid);
-        $parentId = $user->parent_id;
-
-        // 获取上级用户信息
-        $parentUser = User2::find($parentId);
-        if (!$parentUser) {
-            return; // 上级用户不存在,不执行绑定操作
-        }
-
-        // 绑定用户的nickname到上级的A_count字段
-        $parentUser->A_count = $user->nickname;
-
-        // 保存上级用户的修改
-        $parentUser->save();
-    }
 
     /**
      * 订单列表

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

@@ -614,74 +614,6 @@ class UserController
         return app('json')->success(User::setSpread($puid, $request->uid()));
     }
 
-
-
-
-//    /**
-//     * @param Request $request
-//     * @return mixed
-//     * @throws DataNotFoundException
-//     * @throws DbException
-//     * @throws ModelNotFoundException
-//     */
-//    public function set_parent(Request $request)
-//    {
-//        list($parent, $parent_area, $uid) = UtilService::postMore([
-//            ['parent', 0],
-//            ['parent_area'],
-//            ['uid']
-//        ], $request, true);
-//        $user = User::getUserInfo($uid);
-//        if ($user['spread_uid'] != $request->uid()) return app('json')->fail('该用户并非你的下级');
-//        if ($user['parent']) return app('json')->fail('该用户已设置接点');
-//        if (!StoreOrder::where('uid', $uid)->where('store_order', 1)->where('paid', 1)->find()) return app('json')->fail('该用户尚未完成报单');
-//
-//        $isMemberProduct = StoreProduct::where('is_best', 1)->where('id', $user['product_id'])->find();
-//        if (!$isMemberProduct) return app('json')->fail('该用户尚未购买会员商品');
-//
-//
-//        $aCount = User::where('parent', $parent)->where('parent_area', 'A')->count();
-//        $bCount = User::where('parent', $parent)->where('parent_area', 'B')->count();
-//        $cCount = User::where('parent', $parent)->where('parent_area', 'C')->count();
-//
-//        if ($parent_area == 'C') {
-//            if ($parent != $request->uid()) {
-//                return app('json')->fail('C区必须是自己直推的');
-//            }
-//            if ($cCount > 0) {
-//                return app('json')->fail('C区已存在下级');
-//            }
-//            if ($aCount == 0 || $bCount == 0) {
-//                return app('json')->fail('AB区未满');
-//            }
-//        } else {
-//            if ($aCount > 0 && $bCount > 0) {
-//                return app('json')->fail('AB区已满');
-//            }
-//            if ($cCount > 0) {
-//                return app('json')->fail('C区下级已满');
-//            }
-//        }
-//
-//        BaseModel::beginTrans();
-//        try {
-//            User::where('uid', $uid)->update(['parent' => $parent, 'parent_area' => $parent_area]);
-//            $res = User::setParentUser($uid, $parent, $parent_area);
-//            if ($res) {
-//                BaseModel::commitTrans();
-//                return app('json')->success('设置成功');
-//            } else {
-//                BaseModel::rollbackTrans();
-//                return app('json')->fail(User::getErrorInfo('设置失败'));
-//            }
-//        } catch (\Exception $e) {
-//            BaseModel::rollbackTrans();
-//            return app('json')->fail('设置失败' . $e->getMessage());
-//        }
-//    }
-
-
-
     public function getLowerUser(Request $request)
     {
         $uid = $request->param('uid');

+ 82 - 1
app/models/store/StoreOrder.php

@@ -18,7 +18,7 @@ use crmeb\traits\ModelTrait;
 use think\facade\Log;
 use app\models\system\SystemStore;
 use app\models\routine\RoutineTemplate;
-use app\models\user\{User, UserAddress, UserBill, UserSpread, WechatUser};
+use app\models\user\{User, User as Users, UserAddress, UserBill, UserSpread, WechatUser};
 use crmeb\services\{
     SystemConfigService, WechatTemplateService, workerman\ChannelService
 };
@@ -787,6 +787,87 @@ class StoreOrder extends BaseModel
         return false !== $res;
     }
 
+
+    /**
+     * @param int $uid 需要接的用户
+     * @return mixed
+     * @throws DataNotFoundException
+     * @throws DbException
+     * @throws ModelNotFoundException
+     */
+
+    public static function set_parent($uid)
+    {
+        $user = Users::getUserInfo($uid);
+        if ($user['parent']) return true;
+        $spread = Users::getUserInfo($user['spread_uid']);
+        // 判断ABC区是否有用户
+
+        $parent = 0;
+        $parent_area = 'A';
+        if (!$spread['A_count']) {
+            // 如果ABC区都没有用户,将用户设置在C区
+            $parent_area = 'A';
+            $parent = $spread['uid'];
+        } elseif (!$spread['B_count']) {
+            $parent_area = 'B';
+            $parent = $spread['uid'];
+            // 如果C区有用户,将用户设置在AB区
+        } else {
+            if(!$spread['C_count']){
+                $parent_area = 'C';
+                $parent = $spread['uid'];
+            } else {
+                //找到C区用户中最前面的ab区没有满的用户
+                $sp = [$spread['uid']];
+                $area = ['C'];
+                while($sp){
+                    $sp_u = Users::where('parent','in',$sp)->where('parent_area','in',$area)->select('uid');
+                    foreach ($sp_u as $v){
+                        if (!$v['A_count']) {
+                            $parent_area = 'A';
+                            $parent = $v['uid'];
+                            break;
+                        } elseif (!$spread['B_count']) {
+                            $parent_area = 'B';
+                            $parent = $v['uid'];
+                            break;
+                        }
+                    }
+                    if($parent>0){
+                        break;
+                    }
+                    $sp = array_column($sp_u->toArray(),'uid');
+                    $area = ['A','B'];
+                }
+            }
+        }
+        var_dump($parent);
+        var_dump($parent_area);
+        return true;
+        BaseModel::beginTrans();
+        try {
+            Users::where('uid', $uid)->update(['parent' => $parent, 'parent_area' => $parent_area]);
+            $res = Users::setParentUser($uid, $parent, $parent_area);
+            if ($res) {
+                BaseModel::commitTrans();
+                return app('json')->success('设置成功');
+            } else {
+                BaseModel::rollbackTrans();
+                return app('json')->fail(Users::getErrorInfo('设置失败'));
+            }
+        } catch (\Exception $e) {
+            BaseModel::rollbackTrans();
+            return app('json')->fail('设置失败' . $e->getMessage());
+        }
+    }
+
+
+
+
+
+
+
     public static function sendAward($order){
         $userModel = new \app\admin\model\user\User();
         $leader = $userModel->getLeader($order['uid']);

+ 1 - 0
route/api/route.php

@@ -31,6 +31,7 @@ Route::post('register/reset', 'AuthController/reset')->name('registerReset')
 Route::any('wechat/serve', 'wechat.WechatController/serve');//公众号服务
 Route::any('wechat/notify', 'wechat.WechatController/notify');//公众号支付回调
 Route::any('routine/notify', 'wechat.AuthController/notify');//小程序支付回调
+Route::any('test', 'PublicController/test');//小程序支付回调
 
 Route::get('h5Key', 'AuthController/h5Key');//授权登录Key
 Route::get('h5Token/:key', 'AuthController/h5Token');//授权登录Token