hrjy 2 éve
szülő
commit
afa3eca275

+ 2 - 0
app/admin/controller/many/Many.php

@@ -233,6 +233,8 @@ class Many extends AuthController
         $details['stage'] += 1;
         $details['status'] = 1;
         $details['number'] = 0;//重置额度
+        $details['money'] = $details['money'] * 1.3;//提搞额度130%
+        $details['suc'] = 0;
         $details['add_time'] = strtotime($data['add_time']);
         $details['end_time'] = strtotime($data['end_time']);
         $res = $details->save();

+ 4 - 1
app/api/controller/many/ManyController.php

@@ -4,6 +4,7 @@ namespace app\api\controller\many;
 
 
 use app\models\many\Many;
+use app\models\many\ManyDiscipline;
 use app\models\many\ManyGreen;
 use app\models\many\ManyOrder;
 use app\models\store\StoreOrder;
@@ -59,9 +60,10 @@ class ManyController
         $user = User::where('uid', $request->uid())->find();
         if (!$many) return app('json')->fail('场次不存在');
         if ($many['number'] >= $many['money']) return app('json')->fail('已完成无法投注');
+        if ( $many['status'] == 0) return app('json')->fail('未开启');
+        if ($many['end_time'] < time()) return app('json')->fail('已结束');
         if (($many['number']+$data['price']) > $many['money']) return app('json')->fail('还能最大投注'.($many['money']-$many['number']));
         if ($surplus < $data['price']) return app('json')->fail('超过最大可投注额度');
-        if ($many['end_time'] < time()) return app('json')->fail('已结束');
         Db::startTrans();
         if ($many['add_time'] > time()){
             $green = ManyGreen::where('uid', $user['uid'])->where('status', 0)->find();
@@ -85,6 +87,7 @@ class ManyController
             if ($many['number'] >= $many['money']){
                 $many['suc'] = 1;// 众筹成功
                 $many['status'] = 0;// 众筹成功
+                ManyDiscipline::create(['many_id' => $many['id'], 'stage' => $many['stage'], 'status' => 1]);// 成功记录
                 if ($many['stage'] >= 4){
                     // 期数如果大于等于4
                     $stage = $many['stage'] - 3;

+ 110 - 0
app/api/controller/many/ManyGreenController.php

@@ -0,0 +1,110 @@
+<?php
+
+namespace app\api\controller\many;
+
+
+use app\admin\model\system\SystemConfig;
+use app\models\many\Many;
+use app\models\many\ManyGreen;
+use app\models\many\ManyOrder;
+use app\models\store\StoreOrder;
+use app\models\user\User;
+use app\models\user\UserBill;
+use app\Request;
+use crmeb\services\CacheService;
+use crmeb\services\GroupDataService;
+use crmeb\services\QrcodeService;
+use crmeb\services\SystemConfigService;
+use crmeb\services\UtilService;
+use crmeb\services\upload\Upload;
+use think\facade\Db;
+
+/**
+ * 账单类
+ * Class UserBillController
+ * @package app\api\controller\user
+ */
+class ManyGreenController
+{
+    /**
+     * 绿卡记录
+     * @param Request $request
+     * @return mixed
+     */
+    public function list(Request $request)
+    {
+        $where = UtilService::getMore([
+            ['page', 1],
+            ['limit', 10],
+            ['status'],
+        ]);
+        $where['uid'] = $request->uid();
+        $list = \app\models\many\ManyGreen::list($where);
+        return app('json')->success($list);
+    }
+
+    /**
+     * 兑换绿卡
+     * @param Request $request
+     * @param $num
+     * @return mixed
+     * @throws \think\db\exception\DataNotFoundException
+     * @throws \think\db\exception\DbException
+     * @throws \think\db\exception\ModelNotFoundException
+     */
+    public function exchange(Request $request, $num)
+    {
+        if ($num < 1) return app('json')->fail('传入需要兑换数量');
+
+        if (CacheService::get($request->uid())) return app('json')->fail('操作太快');
+        $user = User::where('uid', $request->uid())->find();
+        $money = $num * SystemConfig::getConfigValue('green');
+        if ($user['green_integral'] < $money) return app('json')->fail('绿积分不足');
+        $user['green_integral'] -= $money;
+        Db::startTrans();
+        try {
+            for ($i = 1; $i <= (int)$num; $i++){
+                ManyGreen::create(['uid' => $request->uid(), 'type' => 1]);
+            }
+            $user->save();
+            UserBill::income('兑换绿卡',$request->uid(), 'green_integral', 'exchange', $money, 0,$user['green_integral'], '兑换'.$num.'张绿卡');
+            CacheService::set($request->uid(), 1, 3);
+            Db::commit();
+            return app('json')->success('兑换成功');
+        } catch (\Exception $e) {
+            Db::rollback();
+            return app('json')->fail($e->getMessage());
+        }
+
+    }
+
+    /**
+     * 赠送绿卡
+     * @param Request $request
+     * @return mixed
+     * @throws \think\db\exception\DataNotFoundException
+     * @throws \think\db\exception\DbException
+     * @throws \think\db\exception\ModelNotFoundException
+     */
+    public function give(Request $request)
+    {
+        $data = UtilService::postMore([
+            ['id'],
+            ['uid']
+        ]);
+        if (empty($data['uid']))  return app('json')->fail('填写赠送用户ID');
+        $user = User::where('uid', $data['uid'])->find();
+        $green = ManyGreen::where('id', $data['id'])->where('uid', $request->uid())->find();
+        if (!$user)  return app('json')->fail('没有此用户');
+        if (!$green) return app('json')->fail('没有这张绿卡');
+        if ($green['type'] == 2) return app('json')->fail('赠送绿卡,不能进行赠送');
+
+        $green['uid'] = $data['uid'];
+        $green['type'] = 2;
+        $res = $green->save();
+        if ($res) return app('json')->success('赠送成功');
+        return app('json')->fail('赠送失败');
+    }
+
+
+}

+ 2 - 0
app/http/middleware/AllowOriginMiddleware.php

@@ -4,6 +4,7 @@
 namespace app\http\middleware;
 
 
+use app\models\many\Many;
 use app\models\many\ManyOrder;
 use app\Request;
 use crmeb\interfaces\MiddlewareInterface;
@@ -53,6 +54,7 @@ class AllowOriginMiddleware implements MiddlewareInterface
         } else {
             $response = $next($request)->header($header);
         }
+        Many::fail();
         ManyOrder::suc_return();
 
         $request->filter(['htmlspecialchars', 'strip_tags', 'addslashes', 'trim']);

+ 37 - 2
app/models/many/Many.php

@@ -6,6 +6,8 @@
 
 namespace app\models\many;
 
+use app\models\user\User;
+use app\models\user\UserBill;
 use crmeb\traits\ModelTrait;
 use crmeb\basic\BaseModel;
 
@@ -57,9 +59,42 @@ class Many extends BaseModel
 
     public static function fail()
     {
+        $many = self::where('end_time', '<', time())->where('status', '=', 1)->select();//找到结束为完成的场次
+        if ($many) {
+            foreach ($many as $item)
+            {
+                $stage = [$item['stage'] - 3, $item['stage']];//指定期数
+                $stages = [$item['stage'] - 2,$item['stage'] - 1];//指定期数
+                $many_order = ManyOrder::where('many_id', $item['id'])->where('stage', 'in',$stage)->select();// 找到这期和三期前订单
+                $order = ManyOrder::where('many_id', '=',$item['id'])->where('stage', 'in',$stages)->select()->toArray();// 找到这期和三期前中间两期订单
+                if ($many_order){
+                    foreach ($many_order as $value){
+                        $user = User::where('uid', $value['uid'])->find();
+                        $user['purple_integral'] += $value['price'] * 1.01;// 返还
+                        $user->save();
+                        UserBill::income('众筹失败返还紫积分', $value['uid'], 'purple_integral', 'sbfh', $value['price'] * 1.01, 0,$user['purple_integral'], '众筹失败返还紫积分');
+                    }
+                }
+                if ($order){
+                    foreach ($order as $value){
+                        $user = User::where('uid', $value['uid'])->find();
+                        $user['purple_integral'] += $value['price'] * 0.7;// 返还紫积分
+                        $user['green_integral'] += $value['price'] * 0.3;// 返还绿积分
+                        $user['paper_ticket'] += $value['price'] * 0.3;// 返还百分之三十的文票
+                        $user['integral'] += $value['price'] * 0.3;// 返还百分之三十的商城积分
+                        $user->save();
+                        UserBill::income('众筹失败返还紫积分', $value['uid'], 'purple_integral', 'sbfh', $value['price'] * 0.7, 0,$user['purple_integral'], '众筹失败返还紫积分');
+                        UserBill::income('众筹失败返还绿积分', $value['uid'], 'green', 'sbfh', $value['price'] * 0.3, 0,$user['green_integral'], '众筹失败返还绿积分');
+                        UserBill::income('众筹失败返还文票', $value['uid'], 'paper_ticket', 'sbfh', $value['price'] * 0.3, 0,$user['paper_ticket'], '众筹失败返还文票');
+                        UserBill::income('众筹失败返还积分', $value['uid'], 'integral', 'sbfh', $value['price'] * 0.3, 0,$user['integral'], '众筹失败返还积分');
+                    }
+                }
+                ManyOrder::where('many_id', '=',$item['id'])->where('stage', 'in',[$item['stage'] - 3, $item['stage'], $item['stage'] - 2,$item['stage'] - 1])->update(['status' => 2]);
+                ManyDiscipline::create(['many_id' => $item['id'], 'stage' => $item['stage']]);
+                Many::where('id', $item['id'])->update(['status' => 0, 'suc' => 2]);
+            }
 
-
-
+        }
     }
 
 

+ 1 - 5
app/models/many/ManyGreen.php

@@ -35,12 +35,8 @@ class ManyGreen extends BaseModel
 
     public static function list($where)
     {
-        $model = self::alias('a')
-            ->field('a.*,b.nickname,b.uid')
-            ->leftJoin('user b', 'a.uid = b.uid');
+        $model = self::order('status ASC');
 
-        if ($where['name'])$model->where('b.nickname|b.uid' , 'like', '%'.$where['name'],'%');
-        if ($where['status'])$model->where('status' , '=', $where['status']);
         $data['count'] = $model->count();
         if ($where['page'] && $where['limit']){
             $model->page($where['page'], $where['limit']);

+ 6 - 5
app/models/many/ManyOrder.php

@@ -39,12 +39,13 @@ class ManyOrder extends BaseModel
     public static function list($where)
     {
         $model = self::alias('a')
-        ->field('a.*,b.name,u.nickname')
-        ->leftJoin('many b', 'b.id = a.many_id')
-        ->leftJoin('user u', 'u.uid = a.uid')
-        ->where('a.uid', $where['uid']);
+            ->order('a.id DESC')
+            ->field('a.*,b.name,u.nickname')
+            ->leftJoin('many b', 'b.id = a.many_id')
+            ->leftJoin('user u', 'u.uid = a.uid')
+            ->where('a.uid', $where['uid']);
 
-        if ($where['status'])$model->where('a.status' , '=', $where['status']);
+        if ($where['status'] == 0 or $where['status'])$model->where('a.status' , '=', $where['status']);
         $data['count'] = $model->count();
 
         if ($where['page'] && $where['limit']){

+ 5 - 1
route/api/route.php

@@ -168,7 +168,11 @@ Route::group(function () {
     Route::get('many/surplus', 'many.ManyController/surplus')->name('surplus');//剩余可投注数量
 
     //投注订单
-    Route::get('many_order/list', 'many.ManyOrderController/order')->name('many_order');//剩余可投注数量
+    Route::get('many_order/list', 'many.ManyOrderController/order')->name('many_order');//投注订单
+    //绿卡记录
+    Route::get('green/list', 'many.ManyGreenController/list')->name('green');//绿卡记录
+    Route::post('green/exchange', 'many.ManyGreenController/exchange')->name('exchange');//绿卡兑换
+    Route::post('green/give', 'many.ManyGreenController/give')->name('give');//绿卡赠送
 })->middleware(\app\http\middleware\AllowOriginMiddleware::class)->middleware(\app\http\middleware\AuthTokenMiddleware::class, true);
 //未授权接口
 Route::group(function () {