hrjy 3 lat temu
rodzic
commit
18e8ee228a

+ 34 - 6
.idea/workspace.xml

@@ -5,10 +5,13 @@
   </component>
   <component name="ChangeListManager">
     <list default="true" id="9df7b838-09db-466a-bed4-3e1ac8c3624d" name="变更" comment="commit">
+      <change afterPath="$PROJECT_DIR$/app/models/user/UserSpread.php" afterDir="false" />
       <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/app/admin/controller/auction/AuctionOrder.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/admin/controller/auction/AuctionOrder.php" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/app/admin/controller/auction/AuctionProduct.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/admin/controller/auction/AuctionProduct.php" afterDir="false" />
-      <change beforePath="$PROJECT_DIR$/app/admin/view/auction/auction_product/index.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/admin/view/auction/auction_product/index.php" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/app/admin/controller/user/User.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/admin/controller/user/User.php" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/app/models/user/User.php" beforeDir="false" afterPath="$PROJECT_DIR$/app/models/user/User.php" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/crmeb/services/WechatService.php" beforeDir="false" afterPath="$PROJECT_DIR$/crmeb/services/WechatService.php" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/runtime/cache/59/62ccd748530d5866ded674e0247788.php" beforeDir="false" afterPath="$PROJECT_DIR$/runtime/cache/59/62ccd748530d5866ded674e0247788.php" afterDir="false" />
+      <change beforePath="$PROJECT_DIR$/runtime/cache/a9/939d920c0fa6b4fe0b897fb019672a.php" beforeDir="false" afterPath="$PROJECT_DIR$/runtime/cache/a9/939d920c0fa6b4fe0b897fb019672a.php" afterDir="false" />
     </list>
     <option name="SHOW_DIALOG" value="false" />
     <option name="HIGHLIGHT_CONFLICTS" value="true" />
@@ -92,14 +95,26 @@
     <property name="ASKED_SHARE_PROJECT_CONFIGURATION_FILES" value="true" />
     <property name="RunOnceActivity.OpenProjectViewOnStart" value="true" />
     <property name="RunOnceActivity.ShowReadmeOnStart" value="true" />
-    <property name="WebServerToolWindowFactoryState" value="false" />
+    <property name="WebServerToolWindowFactoryState" value="true" />
+    <property name="WebServerToolWindowPanel.toolwindow.highlight.mappings" value="true" />
+    <property name="WebServerToolWindowPanel.toolwindow.highlight.symlinks" value="true" />
+    <property name="WebServerToolWindowPanel.toolwindow.show.date" value="false" />
+    <property name="WebServerToolWindowPanel.toolwindow.show.permissions" value="false" />
+    <property name="WebServerToolWindowPanel.toolwindow.show.size" value="false" />
+    <property name="last_opened_file_path" value="$PROJECT_DIR$/app/models/user" />
     <property name="node.js.detected.package.eslint" value="true" />
     <property name="node.js.detected.package.tslint" value="true" />
     <property name="node.js.selected.package.eslint" value="(autodetect)" />
     <property name="node.js.selected.package.tslint" value="(autodetect)" />
+    <property name="nodejs_package_manager_path" value="npm" />
     <property name="settings.editor.selected.configurable" value="configurable.group.appearance" />
     <property name="vue.rearranger.settings.migration" value="true" />
   </component>
+  <component name="RecentsManager">
+    <key name="CopyFile.RECENT_KEYS">
+      <recent name="D:\phpstudy_pro\WWW\newQudou\app\models\user" />
+    </key>
+  </component>
   <component name="SpellCheckerSettings" RuntimeDictionaries="0" Folders="0" CustomDictionaries="0" DefaultDictionary="应用程序级" UseSingleDictionary="true" transferred="true" />
   <component name="TaskManager">
     <task active="true" id="Default" summary="默认任务">
@@ -112,7 +127,13 @@
       <workItem from="1655962099358" duration="11768000" />
       <workItem from="1656030361664" duration="3313000" />
       <workItem from="1656118040246" duration="9992000" />
-      <workItem from="1656290997390" duration="2888000" />
+      <workItem from="1656290997390" duration="6655000" />
+      <workItem from="1656377536364" duration="5289000" />
+      <workItem from="1656462931868" duration="4704000" />
+      <workItem from="1656549238140" duration="4060000" />
+      <workItem from="1656635723086" duration="10490000" />
+      <workItem from="1656737873362" duration="1192000" />
+      <workItem from="1656894689056" duration="2400000" />
     </task>
     <task id="LOCAL-00001" summary="commit">
       <created>1655962607195</created>
@@ -135,7 +156,14 @@
       <option name="project" value="LOCAL" />
       <updated>1655971825085</updated>
     </task>
-    <option name="localTasksCounter" value="4" />
+    <task id="LOCAL-00004" summary="commit">
+      <created>1656307470789</created>
+      <option name="number" value="00004" />
+      <option name="presentableId" value="LOCAL-00004" />
+      <option name="project" value="LOCAL" />
+      <updated>1656307470789</updated>
+    </task>
+    <option name="localTasksCounter" value="5" />
     <servers />
   </component>
   <component name="TypeScriptGeneratedFilesManager">

+ 2 - 2
app/admin/controller/user/User.php

@@ -121,8 +121,8 @@ class User extends AuthController
         $f[] = Form::number('integration', '趣豆')->min(0);
         $f[] = Form::radio('anticipate_status', '修改广告值', 1)->options([['value' => 1, 'label' => '增加'], ['value' => 2, 'label' => '减少']]);
         $f[] = Form::number('anticipate', '广告值')->min(0);
-        $f[] = Form::radio('shop_integral_status', '修改广告值', 1)->options([['value' => 1, 'label' => '增加'], ['value' => 2, 'label' => '减少']]);
-        $f[] = Form::number('shop_integral', '广告值')->min(0);
+        $f[] = Form::radio('shop_integral_status', '修改购物券', 1)->options([['value' => 1, 'label' => '增加'], ['value' => 2, 'label' => '减少']]);
+        $f[] = Form::number('shop_integral', '购物券')->min(0);
         $form = Form::make_post_form('修改其他', $f, Url::buildUrl('update_other', array('uid' => $uid)));
         $this->assign(compact('form'));
         return $this->fetch('public/form-builder');

+ 26 - 25
app/models/user/User.php

@@ -159,31 +159,32 @@ class User extends BaseModel
      */
     public static function setSpread($spread, $uid)
     {
-        //当前用户信息
-        $userInfo = self::where('uid', $uid)->find();
-        if (!$userInfo) return true;
-        //当前用户有上级直接返回
-        if ($userInfo->spread_uid) return true;
-        //没有推广编号直接返回
-        if (!$spread) return true;
-        if ($spread == $uid) return true;
-        if ($uid == self::where('uid', $spread)->value('spread_uid')) return true;
-        //TODO 获取后台分销类型
-        $storeBrokerageStatus = sys_config('store_brokerage_statu');
-        $storeBrokerageStatus = $storeBrokerageStatus ? $storeBrokerageStatus : 1;
-        if ($storeBrokerageStatus == 1) {
-            $spreadCount = self::where('uid', $spread)->count();
-            if ($spreadCount) {
-                $spreadInfo = self::where('uid', $spread)->find();
-                if ($spreadInfo->is_promoter) {
-                    //TODO 只有扫码才可以获得推广权限
-//                            if(isset($wechatUser['isPromoter'])) $data['is_promoter'] = $wechatUser['isPromoter'] ? 1 : 0;
-                }
-            }
-        }
-        $data['spread_uid'] = $spread;
-        $data['spread_time'] = time();
-        return self::edit($data, $uid, 'uid');
+        return UserSpread::setSpread($uid, $spread);
+//        //当前用户信息
+//        $userInfo = self::where('uid', $uid)->find();
+//        if (!$userInfo) return true;
+//        //当前用户有上级直接返回
+//        if ($userInfo->spread_uid) return true;
+//        //没有推广编号直接返回
+//        if (!$spread) return true;
+//        if ($spread == $uid) return true;
+//        if ($uid == self::where('uid', $spread)->value('spread_uid')) return true;
+//        //TODO 获取后台分销类型
+//        $storeBrokerageStatus = sys_config('store_brokerage_statu');
+//        $storeBrokerageStatus = $storeBrokerageStatus ? $storeBrokerageStatus : 1;
+//        if ($storeBrokerageStatus == 1) {
+//            $spreadCount = self::where('uid', $spread)->count();
+//            if ($spreadCount) {
+//                $spreadInfo = self::where('uid', $spread)->find();
+//                if ($spreadInfo->is_promoter) {
+//                    //TODO 只有扫码才可以获得推广权限
+////                            if(isset($wechatUser['isPromoter'])) $data['is_promoter'] = $wechatUser['isPromoter'] ? 1 : 0;
+//                }
+//            }
+//        }
+//        $data['spread_uid'] = $spread;
+//        $data['spread_time'] = time();
+//        return self::edit($data, $uid, 'uid');
     }
 
     /**

+ 151 - 0
app/models/user/UserSpread.php

@@ -0,0 +1,151 @@
+<?php
+/**
+ * Created by CRMEB.
+ * Copyright (c) 2017~2019 http://www.crmeb.com All rights reserved.
+ * Author: liaofei <136327134@qq.com>
+ * Date: 2019/3/27 21:44
+ */
+
+namespace app\models\user;
+
+use app\models\store\StoreOrder;
+use think\Collection;
+use think\db\exception\DataNotFoundException;
+use think\db\exception\DbException;
+use think\db\exception\ModelNotFoundException;
+use think\facade\Cache;
+use crmeb\traits\ModelTrait;
+use crmeb\basic\BaseModel;
+
+/**
+ * TODO 用户消费新增金额明细 model
+ * Class UserBill
+ * @package app\models\user
+ */
+class UserSpread extends BaseModel
+{
+    /**
+     * 数据表主键
+     * @var string
+     */
+    protected $pk = 'id';
+
+    /**
+     * 模型名称
+     * @var string
+     */
+    protected $name = 'user_spread';
+
+    use ModelTrait;
+
+    /**
+     * @param $uid
+     * @param $spread_uid
+     * @return bool|UserSpread
+     * @throws DataNotFoundException
+     * @throws DbException
+     * @throws ModelNotFoundException
+     */
+    public static function setSpread($uid, $spread_uid)
+    {
+        if (!$spread_uid) {
+            return true;
+        }
+
+        $sp = $spread_uid;
+        $userlist = User::column('uid,spread_uid', 'uid');
+        while ($sp) {
+            if ($sp == $uid) {
+                $spread_uid = 0;
+                break;
+            }
+            $sp = $userlist[$sp]['spread_uid'];
+        }
+        $user = User::where('uid', $uid)->find();
+        $spread_user = User::get($spread_uid);
+        if (!$user || !$spread_user || !$spread_user['is_promoter']) {
+            return true;
+        }
+        //首先获取绑定方式
+        $bind_type = sys_config('bind_type', 1);
+        switch ($bind_type) {
+            case 2:
+                if (self::where('uid', $uid)->where('lock', 1)->find()) {
+                    return true;
+                }
+                return self::create([
+                    'uid' => $uid,
+                    'spread_uid' => $spread_uid,
+                    'lock' => 0,
+                    'spread_time' => time()
+                ]);
+                break;
+            case 3:
+                if (self::where('uid', $uid)->where('lock', 1)->find()) {
+                    return true;
+                }
+                self::create([
+                    'uid' => $uid,
+                    'spread_uid' => $spread_uid,
+                    'lock' => 0,
+                    'spread_time' => time()
+                ]);
+                $user['spread_uid'] = $spread_uid;
+                $user['spread_time'] = time();
+                return $user->save() && User::setUserSpreadCount($spread_uid);
+                break;
+            default:
+                if (self::where('uid', $uid)->where('lock', 1)->find()) {
+                    return true;
+                }
+                self::create([
+                    'uid' => $uid,
+                    'spread_uid' => $spread_uid,
+                    'lock' => 1,
+                    'spread_time' => time()
+                ]);
+                $user['spread_uid'] = $spread_uid;
+                $user['spread_time'] = time();
+                return $user->save() && User::setUserSpreadCount($spread_uid);
+                break;
+        }
+    }
+
+
+    /**
+     * @param $uid
+     * @return bool
+     * @throws DataNotFoundException
+     * @throws DbException
+     * @throws ModelNotFoundException
+     */
+    public static function setSpreadSure($uid)
+    {
+        //首先获取绑定方式
+        $bind_type = sys_config('bind_type', 1);
+        if ($bind_type != 2) {
+            return true;
+        }
+        if (self::where('uid', $uid)->where('lock', 1)->find()) {
+            return true;
+        }
+        $log = self::where('uid', $uid)->order('spread_time', 'desc')->find();
+        if (!$log) {
+            return true;
+        }
+        $sp = $log['spread_uid'];
+        $userlist = User::column('uid,spread_uid', 'uid');
+        while ($sp) {
+            if ($sp == $uid) {
+                $log['spread_uid'] = 0;
+                break;
+            }
+            $sp = $userlist[$sp]['spread_uid'];
+        }
+        if (!$log['spread_uid']) {
+            return true;
+        }
+        $log['lock'] = 1;
+        return $log->save() && User::where('uid', $uid)->update(['spread_uid' => $log['spread_uid'], 'spread_time' => $log['spread_time']]) && User::setUserSpreadCount($log['spread_uid']);
+    }
+}

+ 1 - 1
crmeb/services/WechatService.php

@@ -113,7 +113,7 @@ class WechatService
                             $response = WechatReply::reply('subscribe');
                             if ($message->EventKey && ($qrInfo = QrcodeService::getQrcode($message->Ticket, 'ticket'))) {
                                 QrcodeService::scanQrcode($message->Ticket, 'ticket');
-                                if (strtolower($qrInfo['third_type']) == 'spread') {
+                                if (strtolower($qrInfo['third_type']) == 'qudou_spread') {
                                     try {
                                         $spreadUid = $qrInfo['third_id'];
                                         $uid = WechatUser::openidToUid($message->FromUserName, 'openid');

+ 1 - 1
runtime/cache/59/62ccd748530d5866ded674e0247788.php

@@ -1,4 +1,4 @@
 <?php
 //000000000000
  exit();?>
-a:1:{i:0;a:5:{s:2:"id";i:104;s:4:"name";s:7:"banenr2";s:3:"url";s:28:"/pages/product/product?id=74";s:3:"pic";s:88:"http://hiyiqugo.com/uploads/attach/2022/04/20220422/6b38d31f9be8d4ed60321f3ce256f59d.png";s:7:"wap_url";s:28:"/pages/product/product?id=74";}}
+a:1:{i:0;a:5:{s:2:"id";i:187;s:4:"name";s:1:"1";s:3:"url";s:1:"1";s:3:"pic";s:102:"http://newqudou.frp.liuniu946.com/uploads/attach/2022/06/20220623/7f545944140a84dd911245e8414205f4.jpg";s:7:"wap_url";s:1:"1";}}

+ 1 - 1
runtime/cache/a9/939d920c0fa6b4fe0b897fb019672a.php

@@ -1,4 +1,4 @@
 <?php
 //000000000000
  exit();?>
-a:10:{i:0;s:80:"D:\phpstudy_pro\WWW\newQudou\runtime\cache\48\e345b986ae9584f9686dac64ea2c6a.php";i:1;s:80:"D:\phpstudy_pro\WWW\newQudou\runtime\cache\5e\19bbd18b93c67f898afb4b06af2000.php";i:2;s:80:"D:\phpstudy_pro\WWW\newQudou\runtime\cache\59\62ccd748530d5866ded674e0247788.php";i:3;s:80:"D:\phpstudy_pro\WWW\newQudou\runtime\cache\4d\ebc178cbdb9b7d1fc736ef8ee65e51.php";i:4;s:80:"D:\phpstudy_pro\WWW\newQudou\runtime\cache\b6\2c1e2a759fad26f36b6705aeb096e7.php";i:5;s:80:"D:\phpstudy_pro\WWW\newQudou\runtime\cache\3a\18e85fda2f43f200f015f30d0af45e.php";i:6;s:80:"D:\phpstudy_pro\WWW\newQudou\runtime\cache\a7\53d3226685fd31b029614775beb88c.php";i:7;s:80:"D:\phpstudy_pro\WWW\newQudou\runtime\cache\57\e5830fa228be4a7d40bf40abfb7a18.php";i:8;s:80:"D:\phpstudy_pro\WWW\newQudou\runtime\cache\e0\f15cee86afad4eabb0d5176f63c302.php";i:9;s:80:"D:\phpstudy_pro\WWW\newQudou\runtime\cache\a6\d6181cf79cbad4a232ed9006617c00.php";}
+a:12:{i:0;s:80:"D:\phpstudy_pro\WWW\newQudou\runtime\cache\48\e345b986ae9584f9686dac64ea2c6a.php";i:1;s:80:"D:\phpstudy_pro\WWW\newQudou\runtime\cache\59\62ccd748530d5866ded674e0247788.php";i:2;s:80:"D:\phpstudy_pro\WWW\newQudou\runtime\cache\4d\ebc178cbdb9b7d1fc736ef8ee65e51.php";i:3;s:80:"D:\phpstudy_pro\WWW\newQudou\runtime\cache\b6\2c1e2a759fad26f36b6705aeb096e7.php";i:4;s:80:"D:\phpstudy_pro\WWW\newQudou\runtime\cache\3a\18e85fda2f43f200f015f30d0af45e.php";i:5;s:80:"D:\phpstudy_pro\WWW\newQudou\runtime\cache\a7\53d3226685fd31b029614775beb88c.php";i:6;s:80:"D:\phpstudy_pro\WWW\newQudou\runtime\cache\57\e5830fa228be4a7d40bf40abfb7a18.php";i:7;s:80:"D:\phpstudy_pro\WWW\newQudou\runtime\cache\e0\f15cee86afad4eabb0d5176f63c302.php";i:8;s:80:"D:\phpstudy_pro\WWW\newQudou\runtime\cache\a6\d6181cf79cbad4a232ed9006617c00.php";i:9;s:80:"D:\phpstudy_pro\WWW\newQudou\runtime\cache\2b\8b07b35c908c382a8aae9b52863147.php";i:10;s:80:"D:\phpstudy_pro\WWW\newQudou\runtime\cache\b0\0eb913440b871528ef5387cdfe695b.php";i:11;s:80:"D:\phpstudy_pro\WWW\newQudou\runtime\cache\33\00542f4b024a761865b3524773716c.php";}