Kirin 3 years ago
parent
commit
8dfaf5460d

+ 2 - 0
app/admin/controller/system/SystemCleardata.php

@@ -58,6 +58,7 @@ class SystemclearData extends AuthController
         self::clearData('user_visit', 1);
         self::clearData('user_visit', 1);
         self::clearData('tree', 1);
         self::clearData('tree', 1);
         self::clearData('tree_recommend', 1);
         self::clearData('tree_recommend', 1);
+        self::clearData('lottery', 1);
         $this->delDirAndFile('./public/uploads/store/comment');
         $this->delDirAndFile('./public/uploads/store/comment');
         self::clearData('store_product_relation', 1);
         self::clearData('store_product_relation', 1);
         return Json::successful('清除数据成功!');
         return Json::successful('清除数据成功!');
@@ -78,6 +79,7 @@ class SystemclearData extends AuthController
         self::clearData('store_seckill', 1);
         self::clearData('store_seckill', 1);
         self::clearData('store_product', 1);
         self::clearData('store_product', 1);
         self::clearData('store_visit', 1);
         self::clearData('store_visit', 1);
+        self::clearData('lottery_log', 1);
         return Json::successful('清除数据成功!');
         return Json::successful('清除数据成功!');
     }
     }
 
 

+ 4 - 30
app/api/controller/PublicController.php

@@ -3,6 +3,7 @@
 namespace app\api\controller;
 namespace app\api\controller;
 
 
 use app\admin\model\system\SystemAttachment;
 use app\admin\model\system\SystemAttachment;
+use app\models\game\Lottery;
 use app\models\store\StoreCategory;
 use app\models\store\StoreCategory;
 use app\models\store\StoreCouponIssue;
 use app\models\store\StoreCouponIssue;
 use app\models\store\StoreOrder;
 use app\models\store\StoreOrder;
@@ -40,40 +41,13 @@ class PublicController
 
 
     public function test(Request $request)
     public function test(Request $request)
     {
     {
-        StoreOrder::monthAward();
-    }
 
 
-    public static function pinkIntegral($uid)
-    {
-        $return = 3000;
-        $res = true;
-        if ($return > 0) {
-            $balance = User::where('uid', $uid)->value('integral');
-            $res = $res && UserBill::income('拼团中奖送响亮积分', $uid, 'integral', 'pink_success', $return, 0, $balance + $return, '参加拼团中奖,获得响亮积分' . $return);
-            $res = $res && User::where('uid', $uid)->inc('integral', $return)->update();
-        }
-        return $res;
     }
     }
 
 
-    public static function pinkRecommend($uid)
+    public function open(Request $request)
     {
     {
-        $user = User::where('uid', $uid)->find();
-        $spread = User::where('uid', $user['spread_uid'])->find();
-        if (!$spread) return true;
-        if ($spread['last_recommend_award']) $return = sys_config('recommend_double', 0);
-        else $return = sys_config('recommend_single', 0);
-        if ($spread['integral'] < $return) return true;
-        $res = true;
-        if ($return > 0) {
-            $balance_integral = User::where('uid', $spread['uid'])->value('integral');
-            $balance_brokerage = User::where('uid', $spread['uid'])->value('brokerage_price');
-            $res = $res && UserBill::expend('推荐拼团奖[积分转换]', $spread['uid'], 'integral', 'pink_recommend_pay', $return, 0, bcsub($balance_integral, $return, 2), '推荐用户拼团,响亮积分转为推荐奖' . $return);
-            $res = $res && UserBill::income('推荐拼团奖', $spread['uid'], 'brokerage_price', 'pink_recommend_income', $return, 0, bcadd($balance_brokerage, $return, 2), '推荐用户拼团,响亮积分转为推荐奖' . $return);
-            $res = $res && User::where('uid', $spread['uid'])->dec('integral', $return)->update();
-            $res = $res && User::where('uid', $spread['uid'])->inc('brokerage_price', $return)->update();
-            $res = $res && User::where('uid', $spread['uid'])->update(['last_recommend_award' => ($spread['last_recommend_award'] ? 0 : 1)]);
-        }
-        return $res;
+        Lottery::openLottery();
+        return app('json')->success('ok');
     }
     }
 
 
     /**
     /**

+ 60 - 0
app/api/controller/activity/GameController.php

@@ -0,0 +1,60 @@
+<?php
+
+
+namespace app\api\controller\activity;
+
+
+use app\models\game\Lottery;
+use app\models\game\LotteryLog;
+use app\Request;
+use think\facade\Cache;
+
+class GameController
+{
+
+    public function index(Request $request)
+    {
+        $num_max = sys_config('game_num', 6, true);
+        $time_span = sys_config('open_time', 180, true);
+        $last_game = LotteryLog::order('time', 'desc')->find();
+        $join_member = Lottery::where('status', 0)->count();
+        $join = Lottery::where('status', 0)->where('uid', $request->uid())->group('num')->field('num,SUM(ticket) as ticket')->select();
+        $last_100 = LotteryLog::order('time', 'desc')->limit(100)->select();
+        $award_lake = sys_config('award_lake', 0, true);
+        $all_point = Lottery::where('status', 1)->whereTime('open_time', 'today')->sum('ticket');
+        if ($all_point <= 0) $all_point = 1;
+        $price = bcdiv($award_lake, bcmul($all_point, 2), 2);
+        $join_price = sys_config('join_integral', 100, true);
+        for ($i = 1; $i <= $num_max; $i++) {
+            $times[$i] = 0;
+        }
+        foreach ($last_100 as $v) {
+            $result = explode(',', $v['result']);
+            $times["$result[0]"]++;
+        }
+        return app('json')->success('ok', compact('join', 'join_price', 'price', 'join_member', 'time_span', 'last_game', 'times'));
+    }
+
+    public function join(Request $request)
+    {
+        $res = Lottery::joinLottery($request->uid(), $request->post('num'), $request->post('ticket'));
+        if ($res) {
+            return app('json')->success('参加成功');
+        } else {
+            return app('json')->fail(Lottery::getErrorInfo());
+        }
+    }
+
+    public function lastGame(Request $request)
+    {
+        $last_game = Cache::get('last_game', 0);
+        $last_open = Cache::get('last_open', []);
+        $open_time = Cache::get('open_time', 0);
+        if ($last_game) {
+            $my = Lottery::where('name', $last_game)->where('uid', $request->uid())->select();
+        } else {
+            $my = Lottery::where('status', 0)->where('uid', $request->uid())->select();
+        }
+        return app('json')->success('ok', compact('last_game', 'last_open', 'open_time', 'my'));
+    }
+}

+ 139 - 0
app/models/game/Lottery.php

@@ -0,0 +1,139 @@
+<?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\game;
+
+use app\models\store\StoreOrder;
+use app\models\user\User;
+use app\models\user\UserBill;
+use crmeb\traits\ModelTrait;
+use crmeb\basic\BaseModel;
+use think\Exception;
+use think\facade\Cache;
+
+/**
+ * TODO 用户消费新增金额明细 model
+ * Class UserBill
+ * @package app\models\user
+ */
+class Lottery extends BaseModel
+{
+    /**
+     * 数据表主键
+     * @var string
+     */
+    protected $pk = 'id';
+
+    /**
+     * 模型名称
+     * @var string
+     */
+    protected $name = 'lottery';
+
+    use ModelTrait;
+
+    public static function joinLottery($uid, $num, $ticket)
+    {
+        $num_max = sys_config('game_num', 6, true);
+        $num = (int)$num;
+        if (!is_int($num) || $num > $num_max || $num < 1) return self::setErrorInfo('押注号码错误');
+        $integral = sys_config('join_integral', 100, true);
+        $all_integral = bcmul($ticket, $integral, 2);
+        $user = User::get($uid);
+        if ($user['integral'] < $all_integral) return self::setErrorInfo('积分不足');
+        BaseModel::beginTrans();
+        try {
+            $res2 = self::create([
+                'uid' => $uid,
+                'ticket' => $ticket,
+                'num' => $num,
+                'add_time' => time(),
+            ]);
+            if ($all_integral > 0)
+                $res1 = User::bcDec($uid, 'integral', $all_integral, 'uid')
+                    && UserBill::expend('参加游戏', $uid, 'integral', 'join_lottery', $all_integral, $res2->id, $user['integral'] - $all_integral, '参加游戏支付响亮积分' . $all_integral);
+            else $res1 = true;
+            $ratio = bcdiv(sys_config('game_award_lake', 5, true), 100, 4);
+            $res1 = $res1 && StoreOrder::addAwardLake(bcmul($all_integral, $ratio, 2), $res2->id, 'game');
+            if ($res1 && $res2) {
+                BaseModel::commitTrans();
+                return true;
+            } else {
+                BaseModel::rollbackTrans();
+                return self::setErrorInfo('参加失败');
+            }
+        } catch (\Exception $e) {
+            BaseModel::rollbackTrans();
+            return self::setErrorInfo($e->getMessage());
+        }
+    }
+
+    public static function openLottery()
+    {
+
+        $time_span = sys_config('open_time', 180, true);
+        $last_time = LotteryLog::max('time');
+        if ((int)$time_span + $last_time > time()) return true;
+
+        $joins = Lottery::where('status', 0)->select();
+        $tickets = [];
+        $min = PHP_INT_MAX;
+        $bingo = sys_config('open_num', 0, true);
+        $num_max = sys_config('game_num', 6, true);
+        if (!$bingo) {
+            for ($i = 1; $i <= $num_max; $i++) {
+                $tickets[$i] = 0;
+            }
+            foreach ($joins as $v) {
+                if (isset($tickets[$v['num']])) {
+                    $tickets[$v['num']] += $v['ticket'];
+                } else {
+                    $tickets[$v['num']] = $v['ticket'];
+                }
+            }
+            $bingos = [];
+            foreach ($tickets as $k => $v) {
+                if ($v < $min) {
+                    $min = $v;
+                    $bingos = [$k];
+                }
+                if ($v == $min) {
+                    $bingos[] = $k;
+                }
+            }
+            $bingo = $bingos[rand(0, count($bingos) - 1)];
+        }
+        $result = [$bingo];
+        do {
+            $res = rand(1, $num_max);
+            if (!in_array($res, $result)) {
+                $result = array_merge($result, [$res]);
+            }
+        } while (count($result) < $num_max);
+        do {
+            $name = date('Ymd') . substr(time(), 6, 4) . rand(1000, 9999);
+        } while (LotteryLog::where('name', $name)->find());
+        self::beginTrans();
+        try {
+            foreach ($joins as $v) {
+                if ($v['num'] == $bingo) {
+                    self::where('id', $v['id'])->update(['status' => 1, 'open_time' => time(), 'name' => $name, 'result' => implode(',', $result)]);
+                } else {
+                    self::where('id', $v['id'])->update(['status' => 2, 'open_time' => time(), 'name' => $name, 'result' => implode(',', $result)]);
+                }
+            }
+            LotteryLog::create(['time' => time(), 'result' => implode(',', $result), 'name' => $name]);
+            Cache::set('last_game', $name, 60);
+            Cache::set('last_open', $result, 60);
+            Cache::set('open_time', time(), 60);
+            return true;
+        } catch (\Exception $e) {
+            return self::setErrorInfo($e->getMessage());
+        }
+    }
+}

+ 38 - 0
app/models/game/LotteryLog.php

@@ -0,0 +1,38 @@
+<?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\game;
+
+use app\models\user\User;
+use app\models\user\UserBill;
+use crmeb\traits\ModelTrait;
+use crmeb\basic\BaseModel;
+use think\Exception;
+use think\facade\Cache;
+
+/**
+ * TODO 用户消费新增金额明细 model
+ * Class UserBill
+ * @package app\models\user
+ */
+class LotteryLog extends BaseModel
+{
+    /**
+     * 数据表主键
+     * @var string
+     */
+    protected $pk = 'id';
+
+    /**
+     * 模型名称
+     * @var string
+     */
+    protected $name = 'lottery_log';
+
+    use ModelTrait;
+}

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

@@ -9,6 +9,7 @@ namespace app\models\store;
 
 
 use app\admin\model\system\ShippingTemplatesFree;
 use app\admin\model\system\ShippingTemplatesFree;
 use app\admin\model\system\ShippingTemplatesRegion;
 use app\admin\model\system\ShippingTemplatesRegion;
+use app\admin\model\system\SystemConfig;
 use app\models\system\MonthAwardLog;
 use app\models\system\MonthAwardLog;
 use app\models\tree\TreeRecommend;
 use app\models\tree\TreeRecommend;
 use crmeb\basic\BaseModel;
 use crmeb\basic\BaseModel;
@@ -833,12 +834,32 @@ class StoreOrder extends BaseModel
         if ($order['is_gift']) {
         if ($order['is_gift']) {
             $res_Gift = TreeRecommend::insertTree($order['uid'], User::where('uid', $order['uid'])->value('spread_uid'))
             $res_Gift = TreeRecommend::insertTree($order['uid'], User::where('uid', $order['uid'])->value('spread_uid'))
                 && StorePink::pinkRecommend($order['id'])
                 && StorePink::pinkRecommend($order['id'])
-                && self::addAchievement($order);
+                && self::addAchievement($order)
+                && self::addAwardLake(sys_config('gift_order_award_lake', 30, true), $order['id'], 'gift');
         }
         }
         $res = $res_Gift && $res1 && $resPink && User::backOrderBrokerage($order) && self::areaAward($order) && self::gainUserIntegral($order);
         $res = $res_Gift && $res1 && $resPink && User::backOrderBrokerage($order) && self::areaAward($order) && self::gainUserIntegral($order);
         return false !== $res;
         return false !== $res;
     }
     }
 
 
+    public static function addAwardLake($num, $link_id, $type = 'order')
+    {
+        $old = sys_config('award_lake', 0, true);
+        $res = SystemConfig::where('menu_name', 'award_lake')->update(['value' => (float)$old + $num]);
+        $str = '';
+        switch ($type) {
+            case 'order':
+                $str = '商城销售额加池';
+                break;
+            case 'gift':
+                $str = '商城礼包加池';
+                break;
+            case 'game':
+                $str = '游戏加池';
+                break;
+        }
+        return $res && UserBill::income('奖池增加', 0, 'award_lake', 'add', $num, $link_id, (float)$old + $num, $str ?: '奖池增加');
+    }
+
     private static function addAchievement($order)
     private static function addAchievement($order)
     {
     {
         $res = Achievement::create(
         $res = Achievement::create(

+ 0 - 158
app/models/tree/TreeNew.php

@@ -1,158 +0,0 @@
-<?php
-
-
-namespace app\models\tree;
-
-
-use app\models\user\User;
-use app\models\user\UserBill;
-use crmeb\basic\BaseModel;
-use crmeb\traits\ModelTrait;
-use think\db\exception\DataNotFoundException;
-use think\db\exception\DbException;
-use think\db\exception\ModelNotFoundException;
-use think\model\relation\HasMany;
-use think\model\relation\HasOne;
-
-class TreeNew extends BaseModel
-{
-    /**
-     * 数据表主键
-     * @var string
-     */
-    protected $pk = 'id';
-
-    /**
-     * 模型名称
-     * @var string
-     */
-    protected $name = 'tree_new';
-
-    private static $layers;
-    private static $get;
-
-    use ModelTrait;
-
-
-    public function __construct(array $data = [])
-    {
-        parent::__construct($data);
-        self::$layers = sys_config('group_layer', 12);
-        self::$get = sys_config('group_award', 135);
-    }
-
-    public function user(): HasOne
-    {
-        return $this->HasOne(User::class, 'uid', 'uid');
-    }
-
-    /**
-     * 排点
-     * @param int $uid
-     * @param int $spread_uid
-     * @return array|bool|int[]
-     * @throws DataNotFoundException
-     * @throws DbException
-     * @throws ModelNotFoundException
-     */
-    public static function getTreePoint(int $spread_uid = 0)
-    {
-        if (!self::count()) {
-            return [0, 1];//父节点,线路
-        }
-        $parent_last_point = self::where('uid', $spread_uid)->order('add_time', 'desc')->find();
-        if ($spread_uid == 0) {
-            $parent_last_point = self::order('add_time', 'asc')->find();
-        }
-        while (!$parent_last_point) {
-            $spread_uid = User::where('uid', $spread_uid)->value('spread_uid');
-            if (!$spread_uid)
-                $parent_last_point = self::order('add_time', 'asc')->find();
-            else
-                $parent_last_point = self::where('uid', $spread_uid)->order('add_time', 'desc')->find();
-        }
-        $way = 1;
-        while (1) {
-            //看线
-            $res = self::where('way', $way)->where('parent_id', $parent_last_point['id'])->find();
-            if ($res) {
-                for ($i = 0; ; $i++) {
-                    if ($i == self::$layers - 1) {
-                        $spreads = User::where('spread_uid', $parent_last_point['uid'])->column('uid');
-                        if (count(self::where('uid', 'in', $spreads)->group('uid')->field('uid,COUNT(uid)')->select()) >= $way) {
-                            break;
-                        }
-                    }
-                    $id = $res['id'];
-                    $res = self::where('way', 1)->where('parent_id', $id)->find();
-                    if (!$res) {
-                        return [$id, 1];
-                    }
-                }
-                $way++;
-            } else {
-                return [$parent_last_point['id'], $way];
-            }
-        }
-    }
-
-    /**
-     * 进场
-     * @param int $uid
-     * @param int $spread_uid
-     * @return bool
-     * @throws DataNotFoundException
-     * @throws DbException
-     * @throws ModelNotFoundException
-     */
-    public static function insertTree(int $uid, int $spread_uid = 0): bool
-    {
-        $res = self::getTreePoint($spread_uid);
-        if (!$res) return self::setErrorInfo(self::getErrorInfo());
-        list($tree_leader, $way) = $res;
-        self::beginTrans();
-        try {
-            $res = self::create([
-                'uid' => $uid,
-                'parent_id' => $tree_leader,
-                'way' => $way,
-                'add_time' => time(),
-            ]);
-            $res = $res && self::sendToUper($tree_leader, $res->id);
-            self::checkTrans($res);
-            if ($res) {
-                return true;
-            } else {
-                return self::setErrorInfo('加入失败');
-            }
-        } catch (\Exception $e) {
-            self::rollbackTrans();
-            return self::setErrorInfo($e->getMessage());
-        }
-    }
-
-    /**
-     * 发奖
-     * @param int $point
-     * @return bool
-     * @throws DataNotFoundException
-     * @throws DbException
-     * @throws ModelNotFoundException
-     */
-    public static function sendToUper(int $point, $link_id): bool
-    {
-        $info = self::where('id', $point)->find();
-        $res = true;
-        $i = 0;
-        while ($info && $i < self::$layers) {
-            $info->get += self::$get;
-            $res = $res && $info->save();
-            $balance = User::where('uid', $info['uid'])->value('brokerage_price');
-            $res = $res && UserBill::income('下级参与', $info['uid'], 'now_money', 'brokerage', self::$get, $link_id, $balance + self::$get, '下级用户参与分红,获得分红' . self::$get);
-            $res = $res && User::where('uid', $info['uid'])->inc('brokerage_price', self::$get)->update();
-            $info = self::where('id', $info['parent_id'])->find();
-            $i++;
-        }
-        return $res;
-    }
-}

+ 5 - 6
app/models/tree/TreeRecommend.php

@@ -55,7 +55,7 @@ class TreeRecommend extends BaseModel
      * @throws DbException
      * @throws DbException
      * @throws ModelNotFoundException
      * @throws ModelNotFoundException
      */
      */
-    public static function getTreePoint(int $spread_uid = 0)
+    public static function getTreePoint(int $spread_uid = 0, $way = 1)
     {
     {
         if (!self::count()) {
         if (!self::count()) {
             return [0, 1];//父节点,线路
             return [0, 1];//父节点,线路
@@ -71,7 +71,6 @@ class TreeRecommend extends BaseModel
             else
             else
                 $parent_last_point = self::where('uid', $spread_uid)->order('add_time', 'desc')->find();
                 $parent_last_point = self::where('uid', $spread_uid)->order('add_time', 'desc')->find();
         }
         }
-        $way = 1;
         while (1) {
         while (1) {
             //看线
             //看线
             $res = self::where('way', $way)->where('parent_id', $parent_last_point['id'])->find();
             $res = self::where('way', $way)->where('parent_id', $parent_last_point['id'])->find();
@@ -105,9 +104,9 @@ class TreeRecommend extends BaseModel
      * @throws DbException
      * @throws DbException
      * @throws ModelNotFoundException
      * @throws ModelNotFoundException
      */
      */
-    public static function insertTree(int $uid, int $spread_uid = 0): bool
+    public static function insertTree(int $uid, int $spread_uid = 0, $way = 1): bool
     {
     {
-        $res = self::getTreePoint($spread_uid);
+        $res = self::getTreePoint($spread_uid, $way);
         if (!$res) return self::setErrorInfo(self::getErrorInfo());
         if (!$res) return self::setErrorInfo(self::getErrorInfo());
         list($tree_leader, $way) = $res;
         list($tree_leader, $way) = $res;
         self::beginTrans();
         self::beginTrans();
@@ -145,10 +144,10 @@ class TreeRecommend extends BaseModel
         $res = true;
         $res = true;
         $i = 0;
         $i = 0;
         while ($info && $i < self::$layers) {
         while ($info && $i < self::$layers) {
-            $info->get += self::$get;
+            $info->get += (float)self::$get;
             $res = $res && $info->save();
             $res = $res && $info->save();
             $balance = User::where('uid', $info['uid'])->value('brokerage_price');
             $balance = User::where('uid', $info['uid'])->value('brokerage_price');
-            $res = $res && UserBill::income('下级参与', $info['uid'], 'now_money', 'brokerage', self::$get, $link_id, $balance + self::$get, '下级用户参与分红,获得分红' . self::$get);
+            $res = $res && UserBill::income('市场分红', $info['uid'], 'now_money', 'brokerage', self::$get, $link_id, $balance + self::$get, '下级用户参与分红,获得分红' . self::$get);
             $res = $res && User::where('uid', $info['uid'])->inc('brokerage_price', self::$get)->update();
             $res = $res && User::where('uid', $info['uid'])->inc('brokerage_price', self::$get)->update();
             $info = self::where('id', $info['parent_id'])->find();
             $info = self::where('id', $info['parent_id'])->find();
             $i++;
             $i++;

+ 6 - 0
crmeb/repositories/OrderRepository.php

@@ -107,6 +107,8 @@ class OrderRepository
         $res1 = User::sendBackOrderIntegral($order);
         $res1 = User::sendBackOrderIntegral($order);
 //        $res2 = User::backOrderBrokerage($order);
 //        $res2 = User::backOrderBrokerage($order);
         $res2 = User::sendBackOrderBrokerage($order);
         $res2 = User::sendBackOrderBrokerage($order);
+        $ratio = bcdiv(sys_config('normal_order_award_lake', 5, true), 100, 4);
+        if (!$order['is_gift']) $res2 = $res2 && StoreOrder::addAwardLake(bcmul($order['pay_price'], $ratio, 2), $order['id'], 'order');
         StoreOrder::orderTakeAfter($order);
         StoreOrder::orderTakeAfter($order);
         //满赠优惠券
         //满赠优惠券
         WechatUser::userTakeOrderGiveCoupon($uid, $order['total_price']);
         WechatUser::userTakeOrderGiveCoupon($uid, $order['total_price']);
@@ -125,6 +127,8 @@ class OrderRepository
         $res1 = User::sendBackOrderIntegral($order);
         $res1 = User::sendBackOrderIntegral($order);
 //        $res2 = User::backOrderBrokerage($order);
 //        $res2 = User::backOrderBrokerage($order);
         $res2 = User::sendBackOrderBrokerage($order);
         $res2 = User::sendBackOrderBrokerage($order);
+        $ratio = bcdiv(sys_config('normal_order_award_lake', 5, true), 100, 4);
+        if (!$order['is_gift']) $res2 = $res2 && StoreOrder::addAwardLake(bcmul($order['pay_price'], $ratio, 2), $order['id'], 'order');
         AdminStoreOrder::orderTakeAfter($order);
         AdminStoreOrder::orderTakeAfter($order);
         if (!($res1 && $res2)) exception('收货失败!');
         if (!($res1 && $res2)) exception('收货失败!');
     }
     }
@@ -140,6 +144,8 @@ class OrderRepository
 //        $res1 = AdminStoreOrder::gainUserIntegral($order, false);
 //        $res1 = AdminStoreOrder::gainUserIntegral($order, false);
         $res1 = User::sendBackOrderIntegral($order);
         $res1 = User::sendBackOrderIntegral($order);
         $res2 = User::sendBackOrderBrokerage($order);
         $res2 = User::sendBackOrderBrokerage($order);
+        $ratio = bcdiv(sys_config('normal_order_award_lake', 5, true), 100, 4);
+        if (!$order['is_gift']) $res2 = $res2 && StoreOrder::addAwardLake(bcmul($order['pay_price'], $ratio, 2), $order['id'], 'order');
         AdminStoreOrder::orderTakeAfter($order);
         AdminStoreOrder::orderTakeAfter($order);
         if (!($res1 && $res2)) exception('收货失败!');
         if (!($res1 && $res2)) exception('收货失败!');
     }
     }

+ 2 - 0
crmeb/subscribes/TaskSubscribe.php

@@ -3,6 +3,7 @@
 namespace crmeb\subscribes;
 namespace crmeb\subscribes;
 
 
 use app\admin\model\system\SystemAttachment;
 use app\admin\model\system\SystemAttachment;
+use app\models\game\Lottery;
 use app\models\store\StoreBargainUser;
 use app\models\store\StoreBargainUser;
 use app\models\store\StoreOrder;
 use app\models\store\StoreOrder;
 use app\models\store\StorePink;
 use app\models\store\StorePink;
@@ -26,6 +27,7 @@ class TaskSubscribe
      */
      */
     public function onTask_2()
     public function onTask_2()
     {
     {
+        Lottery::openLottery();
     }
     }
 
 
     /**
     /**

+ 1 - 1
crmeb/traits/JwtAuthModelTrait.php

@@ -29,7 +29,7 @@ trait JwtAuthModelTrait
             'aud' => $host,
             'aud' => $host,
             'iat' => $time,
             'iat' => $time,
             'nbf' => $time,
             'nbf' => $time,
-            'exp' => strtotime('+ 3hour'),
+            'exp' => strtotime('+ 3days'),
         ];
         ];
         $params['jti'] = compact('id', 'type');
         $params['jti'] = compact('id', 'type');
         $token = JWT::encode($params, Config::get('app.app_key', 'default'));
         $token = JWT::encode($params, Config::get('app.app_key', 'default'));

+ 4 - 0
route/api/route.php

@@ -33,6 +33,7 @@ Route::any('wechat/notify', 'wechat.WechatController/notify');//公众号支付
 Route::any('routine/notify', 'wechat.AuthController/notify');//小程序支付回调
 Route::any('routine/notify', 'wechat.AuthController/notify');//小程序支付回调
 
 
 Route::any('test', 'PublicController/test')->name('test');//测试
 Route::any('test', 'PublicController/test')->name('test');//测试
+Route::post('game/open', 'PublicController/open')->name('openGame');// 开奖
 
 
 //管理员订单操作类
 //管理员订单操作类
 Route::group(function () {
 Route::group(function () {
@@ -57,6 +58,9 @@ Route::group(function () {
     Route::post('switch_h5', 'AuthController/switch_h5')->name('switch_h5');// 切换账号
     Route::post('switch_h5', 'AuthController/switch_h5')->name('switch_h5');// 切换账号
     Route::post('binding', 'AuthController/binding_phone')->name('bindingPhone');// 绑定手机号
     Route::post('binding', 'AuthController/binding_phone')->name('bindingPhone');// 绑定手机号
     Route::post('trade', 'user.UserController/tradeIntegral')->name('tradeIntegral');// 积分转帐
     Route::post('trade', 'user.UserController/tradeIntegral')->name('tradeIntegral');// 积分转帐
+    Route::post('game/join', 'activity.GameController/join')->name('joinGame');// 参加游戏
+    Route::get('game/last', 'activity.GameController/lastGame')->name('lastGame');// 参加游戏
+    Route::get('game', 'activity.GameController/index')->name('index');// 参加游戏
     //产品类
     //产品类
     Route::get('product/code/:id', 'store.StoreProductController/code')->name('productCode');//产品分享二维码 推广员
     Route::get('product/code/:id', 'store.StoreProductController/code')->name('productCode');//产品分享二维码 推广员
     Route::post('product/poster', 'store.StoreProductController/poster')->name('productPost');//产品分享海报
     Route::post('product/poster', 'store.StoreProductController/poster')->name('productPost');//产品分享海报