zxhxx před 3 roky
rodič
revize
ad0eb75a0b

+ 12 - 0
app/admin/controller/Index.php

@@ -2,6 +2,9 @@
 
 namespace app\admin\controller;
 
+use app\models\user\UserLevel;
+use crmeb\services\FileService;
+use crmeb\services\QrcodeService;
 use FormBuilder\Json;
 use think\facade\Config;
 use app\admin\model\order\StoreOrder as StoreOrderModel;//订单
@@ -598,6 +601,15 @@ class Index extends AuthController
         if (count($data['newOrderId'])) StoreOrderModel::where('order_id', 'in', $data['newOrderId'])->update(['is_remind' => 1]);
         return app('json')->success('ok', $data);
     }
+    public function test()
+    {
+
+        $name = 2 . '_' . 1 . '_user_wap.jpg';
+        $qr_code = QrcodeService::getForeverQrcode('spread', 2);
+        $urlCode = dlfile($qr_code['url'],$name);
+        $info =  FileService::list_info($urlCode);
+        dump($info);exit();
+    }
 }
 
 

+ 7 - 2
app/admin/controller/store/StoreProduct.php

@@ -409,7 +409,7 @@ class StoreProduct extends AuthController
         $detail = $data['attrs'];
         $data['price'] = min(array_column($detail, 'price'));
         $data['ot_price'] = min(array_column($detail, 'ot_price'));
-        $data['cost'] = min(array_column($detail, 'cost'));
+        $data['cost'] = min(array_column($detail, 'cost'))??0;
         $attr = $data['items'];
         unset($data['items'], $data['video'], $data['attrs']);
         if (count($data['cate_id']) < 1) return Json::fail('请选择产品分类');
@@ -421,6 +421,7 @@ class StoreProduct extends AuthController
         $data['image'] = $data['image'][0];
         $data['slider_image'] = json_encode($data['slider_image']);
         $data['stock'] = array_sum(array_column($detail, 'stock'));
+
         ProductModel::beginTrans();
         foreach ($detail as &$item) {
             if (($item['brokerage'] + $item['brokerage_two']) > $item['price']) {
@@ -429,6 +430,7 @@ class StoreProduct extends AuthController
         }
         if ($id) {
             unset($data['sales']);
+            if(!$data['cost']) $data['cost']=0;
             ProductModel::edit($data, $id);
             $description = $data['description'];
             unset($data['description']);
@@ -438,6 +440,7 @@ class StoreProduct extends AuthController
             foreach ($cate_id as $cid) {
                 $cateData[] = ['product_id' => $id, 'cate_id' => $cid, 'add_time' => time()];
             }
+
             StoreProductCate::insertAll($cateData);
             if ($data['spec_type'] == 0) {
                 $attr = [
@@ -451,7 +454,6 @@ class StoreProduct extends AuthController
                 $detail[0]['value1'] = '规格';
                 $detail[0]['detail'] = ['规格' => '默认'];
             }
-
             $attr_res = StoreProductAttr::createProductAttr($attr, $detail, $id);
             if ($attr_res) {
                 ProductModel::commitTrans();
@@ -653,6 +655,7 @@ class StoreProduct extends AuthController
                     $sukValue[$suk]['pic'] = '';
                     $sukValue[$suk]['price'] = 0;
                     $sukValue[$suk]['ot_price'] = 0;
+                    $sukValue[$suk]['cost'] = 0;
                     $sukValue[$suk]['stock'] = 0;
                     $sukValue[$suk]['bar_code'] = '';
                     $sukValue[$suk]['weight'] = 0;
@@ -718,6 +721,7 @@ class StoreProduct extends AuthController
                 $sukValue[$suk]['pic'] = '';
                 $sukValue[$suk]['price'] = 0;
                 $sukValue[$suk]['ot_price'] = 0;
+                $sukValue[$suk]['cost'] = 0;
                 $sukValue[$suk]['stock'] = 0;
                 $sukValue[$suk]['bar_code'] = '';
                 $sukValue[$suk]['weight'] = 0;
@@ -773,6 +777,7 @@ class StoreProduct extends AuthController
         }
         $header[] = ['title' => '图片', 'slot' => 'pic', 'align' => 'center', 'minWidth' => 80];
         $header[] = ['title' => '商品价格', 'slot' => 'price', 'align' => 'center', 'minWidth' => 200];
+        $header[] = ['title' => '成本价', 'slot' => 'cost', 'align' => 'center', 'minWidth' => 200];
         $header[] = ['title' => '库存', 'slot' => 'stock', 'align' => 'center', 'minWidth' => 140];
         $header[] = ['title' => '产品编号', 'slot' => 'bar_code', 'align' => 'center', 'minWidth' => 140];
         $header[] = ['title' => '重量(KG)', 'slot' => 'weight', 'align' => 'center', 'minWidth' => 140];

+ 3 - 2
app/admin/model/store/StoreProductAttr.php

@@ -83,6 +83,7 @@ class StoreProductAttr extends BaseModel
             }
             if (!isset($value['stock']) || !is_numeric($value['stock']) || intval($value['stock']) != $value['stock'])
                 return self::setErrorInfo('请填写正确的商品库存');
+            if(!$value['cost'])$value['cost']=0;
             if (!isset($value['cost']) || !is_numeric($value['cost']) || floatval($value['cost']) != $value['cost'])
                 return self::setErrorInfo('请填写正确的商品成本价格');
             if (!isset($value['pic']) || empty($value['pic']))
@@ -114,9 +115,9 @@ class StoreProductAttr extends BaseModel
                 'product_id' => $productId,
                 'suk' => $suk,
                 'price' => $value['price'],
-                'cost' => $value['cost'],
+                'cost' => $value['cost']??0,
                 'ot_price' => $value['ot_price'],
-                'stock' => $value['stock'],
+                'stock' => $value['stock']??0,
                 'unique' => StoreProductAttrValue::where(['product_id'=>$productId,'suk'=>$suk,'type'=>$type])->value('unique') ? : '',
                 'image' => $value['pic'],
                 'bar_code' => $value['bar_code'] ?? '',

+ 31 - 12
app/admin/view/store/store_product/create.php

@@ -328,6 +328,7 @@
                                                         <tr>
                                                             <th>图片<i class="red">*</i></th>
                                                             <th>商品价格<i class="red">*</i></th>
+                                                            <th>成本价格<i class="red">*</i></th>
                                                             <th>库存<i class="red">*</i></th>
                                                             <th>产品编号</th>
                                                             <th>重量(KG)</th>
@@ -361,6 +362,8 @@
                                                                               class="layui-input">
                                                                 </div>
                                                             </td>
+                                                            <td><input type="text" v-model="formData.attr.cost"
+                                                                       class="layui-input"></td>
                                                             <td><input type="text" v-model="formData.attr.stock"
                                                                        class="layui-input"></td>
                                                             <td><input type="text" v-model="formData.attr.bar_code"
@@ -503,6 +506,7 @@
                                                             <tr>
                                                                 <th>图片<i class="red">*</i></th>
                                                                 <th>商品价格<i class="red">*</i></th>
+                                                                <th>成本价格<i class="red">*</i></th>
                                                                 <th>库存<i class="red">*</i></th>
                                                                 <th>产品编号</th>
                                                                 <th>重量(KG)</th>
@@ -539,6 +543,10 @@
                                                                                   class="layui-input">
                                                                     </div>
                                                                 </td>
+                                                                <td>
+                                                                    <input type="text" v-model="batchAttr.cost"
+                                                                           class="layui-input">
+                                                                </td>
                                                                 <td>
                                                                     <input type="text" v-model="batchAttr.stock"
                                                                            class="layui-input">
@@ -641,6 +649,8 @@
                                                                                   class="layui-input">
                                                                     </div>
                                                                 </td>
+                                                                <td><input type="number" v-model="item.cost"
+                                                                           class="layui-input"></td>
                                                                 <td><input type="number" v-model="item.stock"
                                                                            class="layui-input"></td>
                                                                 <td>
@@ -765,18 +775,18 @@
                                             </div>
                                         </div>
                                     </div>
-<!--                                    <div class="layui-col-xs12 layui-col-sm4 layui-col-md4">-->
-<!--                                        <div class="grid-demo grid-demo-bg1">-->
-<!--                                            <div class="layui-form-item">-->
-<!--                                                <label class="layui-form-label">积分</label>-->
-<!--                                                <div class="layui-input-block">-->
-<!--                                                    <input type="number" name="give_integral" lay-verify="title"-->
-<!--                                                           autocomplete="off" placeholder="请输入积分" class="layui-input"-->
-<!--                                                           v-model="formData.give_integral">-->
-<!--                                                </div>-->
-<!--                                            </div>-->
-<!--                                        </div>-->
-<!--                                    </div>-->
+                                    <div class="layui-col-xs12 layui-col-sm4 layui-col-md4">
+                                        <div class="grid-demo grid-demo-bg1">
+                                            <div class="layui-form-item">
+                                                <label class="layui-form-label">积分</label>
+                                                <div class="layui-input-block">
+                                                    <input type="number" name="give_integral" lay-verify="title"
+                                                           autocomplete="off" placeholder="请输入积分" class="layui-input"
+                                                           v-model="formData.give_integral">
+                                                </div>
+                                            </div>
+                                        </div>
+                                    </div>
                                     <div class="layui-col-xs12 layui-col-sm4 layui-col-md4">
                                         <div class="grid-demo grid-demo-bg1">
                                             <div class="layui-form-item">
@@ -841,6 +851,7 @@
                                                             <th>图片</th>
                                                             <th>售价</th>
                                                             <th>原价</th>
+                                                            <th>成本</th>
                                                             <th>库存</th>
                                                             <th>产品编号</th>
                                                             <th>重量</th>
@@ -860,6 +871,7 @@
                                                             </td>
                                                             <td>{{formData.attr.price}}</td>
                                                             <td>{{formData.attr.ot_price}}</td>
+                                                            <td>{{formData.attr.cost}}</td>
                                                             <td>{{formData.attr.stock}}</td>
                                                             <td>{{formData.attr.bar_code}}</td>
                                                             <td>{{formData.attr.weight}}</td>
@@ -902,6 +914,7 @@
                                                             </td>
                                                             <td>{{item.price}}</td>
                                                             <td>{{item.ot_price}}</td>
+                                                            <td>{{item.cost}}</td>
                                                             <td>{{item.stock}}</td>
                                                             <td>{{item.bar_code}}</td>
                                                             <td>{{item.weight}}</td>
@@ -1146,6 +1159,7 @@
                     price: 0,
                     ot_price: 0,
                     stock: 0,
+                    cost:0,
                     bar_code: '',
                     weight: 0,
                     volume: 0,
@@ -1185,6 +1199,7 @@
                 pic: '',
                 price: 0,
                 ot_price: 0,
+                cost:0,
                 stock: 0,
                 bar_code: '',
                 weight: 0,
@@ -1331,6 +1346,7 @@
                     pic: '',
                     price: 0,
                     ot_price: 0,
+                    cost:0,
                     stock: 0,
                     bar_code: '',
                     weight: 0,
@@ -1361,6 +1377,9 @@
                     if (that.batchAttr.ot_price > 0) {
                         item.ot_price = that.batchAttr.ot_price;
                     }
+                    if (that.batchAttr.cost > 0) {
+                        item.cost = that.batchAttr.cost;
+                    }
                     if (that.batchAttr.stock > 0) {
                         item.stock = that.batchAttr.stock;
                     }

+ 2 - 1
app/api/controller/store/StoreProductController.php

@@ -42,7 +42,8 @@ class StoreProductController
             [['news', 'd'], 0],
             [['page', 'd'], 0],
             [['limit', 'd'], 0],
-            [['type', 0], 0]
+            [['type', 0], 0],
+            ['can_up_level',0],
         ], $request);
         return app('json')->successful(StoreProduct::getProductList($data, $request->uid()));
     }

+ 11 - 1
app/api/controller/user/UserBillController.php

@@ -10,6 +10,7 @@ use app\models\user\User;
 use app\models\user\UserBill;
 use app\models\user\UserExtract;
 use app\Request;
+use crmeb\services\FileService;
 use crmeb\services\GroupDataService;
 use crmeb\services\SystemConfigService;
 use crmeb\services\UtilService;
@@ -259,11 +260,20 @@ class UserBillController
                     SystemAttachment::where(['name' => $name])->delete();
                 }
                 if (!$imageInfo) {
+
+
+                    $qr_code = QrcodeService::getForeverQrcode('spread', $user['uid']);
+                    $urlCode = dlfile($qr_code['url'],$name);
+                    $info =  FileService::list_info($urlCode);
+                    dump($info);exit();
+                    SystemAttachment::attachmentAdd($info['filename'], $info['size'], $info['type'], $urlCode, $urlCode, 1, 1, $info['atime'], 2);
+
+                    /*
                     $codeUrl = set_http_type($siteUrl . '?spread=' . $user['uid'], $request->isSsl() ? 0 : 1);//二维码链接
                     $imageInfo = UtilService::getQRCodePath($codeUrl, $name);
                     if (is_string($imageInfo)) return app('json')->fail('二维码生成失败', ['error' => $imageInfo]);
                     SystemAttachment::attachmentAdd($imageInfo['name'], $imageInfo['size'], $imageInfo['type'], $imageInfo['dir'], $imageInfo['thumb_path'], 1, $imageInfo['image_type'], $imageInfo['time'], 2);
-                    $urlCode = $imageInfo['dir'];
+                    $urlCode = $imageInfo['dir'];*/
                 } else $urlCode = $imageInfo['att_dir'];
                 if ($imageInfo['image_type'] == 1) $urlCode = $siteUrl . $urlCode;
                 $siteUrl = set_http_type($siteUrl, $request->isSsl() ? 0 : 1);

+ 18 - 0
app/common.php

@@ -535,3 +535,21 @@ if (!function_exists('array_unique_fb')) {
         return $out;
     }
 }
+if (!function_exists('dlfile')) {
+    /**
+     * 二维数组去掉重复值
+     * @param $array
+     * @return array
+     */
+    function dlfile($file_url, $save_to)
+    {
+        $content = file_get_contents($file_url);
+        $path = './uploads/qrcode/';
+        if(!file_exists($path))
+        {
+            mkdir ($path,0777,true);
+        }
+        file_put_contents($path.$save_to, $content);
+        return $path.$save_to;
+    }
+}

+ 5 - 5
app/models/store/StoreOrder.php

@@ -1091,10 +1091,10 @@ class StoreOrder extends BaseModel
     public static function getUserOrderList($uid, $status = '', $page = 0, $limit = 8)
     {
         if ($page) $list = self::statusByWhere($status, $uid)->where('is_del', 0)->where('uid', $uid)
-            ->field('add_time,seckill_id,bargain_id,combination_id,id,order_id,pay_price,total_num,total_price,pay_postage,total_postage,paid,status,refund_status,pay_type,coupon_price,deduction_price,pink_id,delivery_type,is_del,shipping_type')
+            ->field('add_time,seckill_id,bargain_id,combination_id,id,order_id,pay_price,total_num,total_price,pay_postage,total_postage,paid,status,refund_status,pay_type,coupon_price,deduction_price,pink_id,delivery_type,is_del,shipping_type,can_up_level')
             ->order('add_time DESC')->page((int)$page, (int)$limit)->select()->toArray();
         else  $list = self::statusByWhere($status, $uid)->where('is_del', 0)->where('uid', $uid)
-            ->field('add_time,seckill_id,bargain_id,combination_id,id,order_id,pay_price,total_num,total_price,pay_postage,total_postage,paid,status,refund_status,pay_type,coupon_price,deduction_price,pink_id,delivery_type,is_del,shipping_type')
+            ->field('add_time,seckill_id,bargain_id,combination_id,id,order_id,pay_price,total_num,total_price,pay_postage,total_postage,paid,status,refund_status,pay_type,coupon_price,deduction_price,pink_id,delivery_type,is_del,shipping_type,can_up_level')
             ->order('add_time DESC')->page((int)$page, (int)$limit)->select()->toArray();
         foreach ($list as $k => $order) {
             $list[$k] = self::tidyOrder($order, true);
@@ -1126,7 +1126,7 @@ class StoreOrder extends BaseModel
      */
     public static function searchUserOrder($uid, $order_id)
     {
-        $order = self::where('uid', $uid)->where('order_id', $order_id)->where('is_del', 0)->field('seckill_id,bargain_id,combination_id,id,order_id,pay_price,total_num,total_price,pay_postage,total_postage,paid,status,refund_status,pay_type,coupon_price,deduction_price,delivery_type,shipping_type')
+        $order = self::where('uid', $uid)->where('order_id', $order_id)->where('is_del', 0)->field('seckill_id,bargain_id,combination_id,id,order_id,pay_price,total_num,total_price,pay_postage,total_postage,paid,status,refund_status,pay_type,coupon_price,deduction_price,delivery_type,shipping_type,can_up_level')
             ->order('add_time DESC')->find();
         if (!$order)
             return false;
@@ -2091,7 +2091,7 @@ class StoreOrder extends BaseModel
                $oneuser = User::field('uid,nickname,level,spread_uid,give_stock_right')->find($user['spread_uid']);
                $twouser = null;
                if($oneuser['spread_uid']>0) {
-                   $twouser = User::field('uid,nickname,level,spread_uid,give_stock_right')->find($user['spread_uid']);
+                   $twouser = User::field('uid,nickname,level,spread_uid,give_stock_right')->find($oneuser['spread_uid']);
                }
                $upgrade = 0;
                foreach ($cartlist as $v) {
@@ -2121,7 +2121,7 @@ class StoreOrder extends BaseModel
                    $levelinfo = SystemUserLevel::find($twouser['level']);
                    if($levelinfo && $levelinfo['two']>0)
                    {
-                       $brokerage = bcmul($order['total_price'],bcdiv($levelinfo['one'],100,3),2);
+                       $brokerage = bcmul($order['total_price'],bcdiv($levelinfo['two'],100,3),2);
                        User::where('uid', $twouser['uid'])->inc('brokerage_price', $brokerage)->update();
                        $str = sprintf("推荐%s用户,订单金额%2.f,获得推荐奖:%.2f", $user['nickname'],$order['total_price'], $brokerage);
                        UserBill::income('间推奖', $twouser['uid'], 'now_money', 'brokerage_price',$brokerage , $order['id'], bcadd($twouser['brokerage_price'], $brokerage, 2), $str, 1);

+ 5 - 4
app/models/store/StoreProduct.php

@@ -58,7 +58,7 @@ class StoreProduct extends BaseModel
         return htmlspecialchars_decode($value);
     }
 
-    public static function getValidProduct($productId, $field = 'add_time,browse,cate_id,code_path,ficti,give_integral,id,image,is_sub,is_bargain,is_benefit,is_best,is_del,is_hot,is_new,is_postage,is_seckill,is_show,keyword,mer_id,mer_use,ot_price,postage,price,sales,slider_image,sort,stock,store_info,store_name,unit_name,vip_price,spec_type,IFNULL(sales,0) + IFNULL(ficti,0) as fsales,video_link')
+    public static function getValidProduct($productId, $field = 'add_time,browse,cate_id,code_path,ficti,give_integral,id,image,is_sub,is_bargain,is_benefit,is_best,is_del,is_hot,is_new,is_postage,is_seckill,is_show,keyword,mer_id,mer_use,ot_price,postage,price,sales,slider_image,sort,stock,store_info,store_name,unit_name,vip_price,spec_type,IFNULL(sales,0) + IFNULL(ficti,0) as fsales,video_link,can_up_level')
     {
         $Product = self::where('is_del', 0)->where('is_show', 1)->where('id', $productId)->field($field)->find();
         if ($Product) return $Product->toArray();
@@ -107,6 +107,7 @@ class StoreProduct extends BaseModel
         }
         if (!empty($keyword)) $model->where('keyword|store_name', 'LIKE', htmlspecialchars("%$keyword%"));
         if ($news != 0) $model->where('is_new', 1);
+        if (isset($data['can_up_level']) && $data['can_up_level']==1) $model->where('can_up_level', 1); else $model->where('can_up_level', 0);
         $baseOrder = '';
         if ($priceOrder) $baseOrder = $priceOrder == 'desc' ? 'price DESC' : 'price ASC';
 //        if($salesOrder) $baseOrder = $salesOrder == 'desc' ? 'sales DESC' : 'sales ASC';//真实销量
@@ -181,7 +182,7 @@ class StoreProduct extends BaseModel
     public static function getNewProduct($field = '*', $limit = 0, $uid = 0, bool $bool = true, $page = 0, $limits = 0)
     {
         if (!$limit && !$bool) return [];
-        $model = self::where('is_new', 1)->where('is_del', 0)->where('mer_id', 0)
+        $model = self::where('is_new', 1)->where('is_del', 0)->where('mer_id', 0)->where('can_up_level',0)
             ->where('stock', '>', 0)->where('is_show', 1)->field($field)
             ->order('sort DESC, id DESC');
         if ($limit) $model->limit($limit);
@@ -232,7 +233,7 @@ class StoreProduct extends BaseModel
     public static function getHotProductLoading($field = '*', $page = 0, $limit = 0)
     {
         if (!$limit) return [];
-        $model = self::where('is_hot', 1)->where('is_del', 0)->where('mer_id', 0)
+        $model = self::where('is_hot', 1)->where('is_del', 0)->where('mer_id', 0)->where('can_up_level',0)
             ->where('stock', '>', 0)->where('is_show', 1)->field($field)
             ->order('sort DESC, id DESC');
         if ($page) $model->page($page, $limit);
@@ -250,7 +251,7 @@ class StoreProduct extends BaseModel
     public static function getBestProduct($field = '*', $limit = 0, $uid = 0, bool $bool = true, $page = 0, $limits = 0)
     {
         if (!$limit && !$bool) return [];
-        $model = self::where('is_best', 1)->where('is_del', 0)->where('mer_id', 0)
+        $model = self::where('is_best', 1)->where('is_del', 0)->where('mer_id', 0)->where('can_up_level',0)
             ->where('stock', '>', 0)->where('is_show', 1)->field($field)
             ->order('sort DESC, id DESC');
         if ($limit) $model->limit($limit);

+ 4 - 0
app/models/store/StoreProductAttr.php

@@ -8,6 +8,7 @@
 namespace app\models\store;
 
 
+use app\models\system\SystemUserLevel;
 use crmeb\basic\BaseModel;
 use think\facade\Db;
 use crmeb\traits\ModelTrait;
@@ -48,6 +49,8 @@ class StoreProductAttr extends BaseModel
         $attrDetail = self::where('product_id', $productId)->where('type', $type_id)->order('attr_values asc')->select()->toArray() ?: [];
         $_values = self::storeProductAttrValueDb()->where('product_id', $productId)->where('type', $type_id)->select();
         $values = [];
+        $level = SystemUserLevel::where('is_del',0)->column('name','id');
+
         foreach ($_values as $value) {
             if ($type) {
                 if ($uid)
@@ -56,6 +59,7 @@ class StoreProductAttr extends BaseModel
                     $value['cart_num'] = 0;
                 if (is_null($value['cart_num'])) $value['cart_num'] = 0;
             }
+           $value['level_name'] = $value['upgrade']>0?$level[$value['upgrade']]:'粉丝';
             unset($value['cost']);
             $values[$value['suk']] = $value;
         }

+ 2 - 1
app/models/system/SystemUserLevel.php

@@ -153,7 +153,7 @@ class SystemUserLevel extends BaseModel
      * @param bool $is_array 当前等级后面的所有等级
      * @return int|mixed
      */
-    public static function getNextLevelId($leval_id, $is_array = false)
+    public static function getNextLevelId($leval_id, $is_array = false,$reverse=false)
     {
         $list = self::getLevelListAndGrade($leval_id, false);
         $grade = 0;
@@ -165,6 +165,7 @@ class SystemUserLevel extends BaseModel
             if ($grade < $item['grade']) array_push($leveal, $item['id']);
         }
         if(!$is_array) return isset($leveal[0]) ? $leveal[0] : 0;
+        if($reverse) $leveal = array_reverse($leveal);
         return $leveal;
     }
 

+ 1 - 1
app/models/system/SystemUserTask.php

@@ -151,7 +151,7 @@ class SystemUserTask extends BaseModel
     public static function ConsumptionAmount($task_id, $uid = 0, $start_time = 0, $number = 0)
     {
         $isComplete = false;
-        $SumPayPrice = User::where('uid',$uid)->value('team_cts');
+        $SumPayPrice = User::where('uid',$uid)->value('monetary');
         if ($SumPayPrice >= $number) $isComplete = UserTaskFinish::setFinish($uid, $task_id) ? true : false;
         return ['还需消费{$num}元', $SumPayPrice, $isComplete];
     }

+ 2 - 2
app/models/user/UserLevel.php

@@ -183,10 +183,10 @@ class UserLevel extends BaseModel
         else
             $level_id = self::getUserLevelInfo($level, 'level_id');
         //之后的所有等级
-        $leveNowIds = SystemUserLevel::getNextLevelId($level_id, true);
+        $leveNowIds = SystemUserLevel::getNextLevelId($level_id, true,true);
         if ($leveNowIds === 0) return self::setErrorInfo('暂无可升会员');
         //查找当前需要升级的会员任务
-        $taskAll = SystemUserTask::visibleWhere()->where('level_id','IN' , $leveNowIds)->column('id', 'id');
+        $taskAll = SystemUserTask::visibleWhere()->where('level_id','IN' , $leveNowIds)->order('id desc')->column('id', 'id');
         self::startTrans();
         $res2 = true;
         try {