* @day: 2017/11/11 */ namespace app\models\many; use app\admin\model\system\SystemConfig; use app\models\user\User; use app\models\user\UserBill; use app\models\user\UserNotice; use crmeb\services\PHPExcelService; use crmeb\traits\ModelTrait; use crmeb\basic\BaseModel; /** * Class StoreCategory * @package app\admin\model\store */ class ManyOrder extends BaseModel { /** * 数据表主键 * @var string */ protected $pk = 'id'; /** * 模型名称 * @var string */ protected $name = 'many_order'; use ModelTrait; protected $autoWriteTimestamp = true; public static function list($where) { $model = self::alias('a') ->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'] == 0 or $where['status'])$model->where('a.status' , '=', $where['status']); $data['count'] = $model->count(); if ($where['page'] && $where['limit']){ $model->page($where['page'], $where['limit']); }else{ $model->page(20, 1); } $list = $model->select()->toArray(); $data['data'] = $list; return $data; } /** * 众筹成功订单返还 * @return void * @throws \think\db\exception\DataNotFoundException * @throws \think\db\exception\DbException * @throws \think\db\exception\ModelNotFoundException */ public static function suc_return() { $order = self::where('is_return', 1)->where('status', 0)->select(); // 查询需要返还的订单 if ($order){ foreach ($order as $item) { $many = Many::where('id', $item['many_id'])->find(); if (strtotime($item['create_time'])+(86400*7) < time()){ $user = User::where('uid', $item['uid'])->find();//用户 $user1 = []; $user2 = []; $purple_integral = round($item['price'] * 1.07, 2);// 奖励紫积分积分 $business_integral = round($item['price'] * 0.0006, 2);// 奖励商家积分 $user['purple_integral'] += $purple_integral; $user['business_integral'] += $business_integral; if ($user['spread_uid'] > 0){ $user1 = User::where('uid', $user['spread_uid'])->find();//用户 if ($user1['spread_uid'] > 0) $user2 = User::where('uid', $user1['spread_uid'])->find();//用户 } if ($user1){ // 直推收益的百分之十 $sy1 = $item['price'] * 0.005; $user1['purple_integral'] += round($sy1 * 0.7, 2); $user1['business_integral'] += round($sy1 * 0.0006, 2); } if ($user2){ // 间推收益的百分之五 $sy2 = $item['price'] * 0.01; $user2['purple_integral'] += round($sy2 * 0.7, 2); $user2['business_integral'] += round($sy2 * 0.0006, 2); } self::where('id', $item['id'])->update(['status' => 1, 'return_time' => time()]); User::where('uid', $item['uid'])->inc('purple_integral', $purple_integral)->update(); User::where('uid', $item['uid'])->inc('business_integral', $business_integral)->update(); UserBill::income('种植胜利补贴阳光积分', $user['uid'], 'purple_integral', 'zccg_purple_integral', $purple_integral, $user['spread_uid'], $user['purple_integral'], '种植胜利补贴'.$many['name'].'-第'.$item['stage'].'期阳光积分'); UserBill::income('种植胜利补贴美好积分', $user['uid'], 'business_integral', 'zccg_business_integral', $business_integral, $user['spread_uid'], $user['integral'], '种植胜利补贴'.$many['name'].'-第'.$item['stage'].'期美好积分'); if ($user1){ UserBill::income('直推奖励阳光积分', $user1['uid'], 'purple_integral', 'zt_purple_integral', $sy1*0.7, $user1['spread_uid'], $user1['purple_integral'], '直推奖励阳光积分'); UserBill::income('直推奖励美好积分', $user1['uid'], 'business_integral', 'zt_business_integral', $sy1*0.0006, $user1['spread_uid'], $user1['integral'], '直推奖励美好积分'); UserNotice::create(['uid' => $user1['uid'], 'type' => 3, 'title' => '直推佣金', 'content' => $user['phone'].'在'.date('Y-m-d H:i:s', time()).'成功打怪,恭喜你获得直推'.round($sy1 * 0.7, 2).'阳光积分', 'add_time' => time()]); // 通知消息 User::where('uid', $user['spread_uid'])->inc('purple_integral', round($sy1 * 0.7, 2))->update(); User::where('uid', $user['spread_uid'])->inc('business_integral', round($sy1 * 0.0006, 2))->update(); } if ($user2){ UserBill::income('间推奖励阳光积分', $user2['uid'], 'purple_integral', 'jt_purple_integral', $sy2*0.7, $user2['spread_uid'], $user2['purple_integral'], '间推奖励阳光积分'); UserBill::income('间推奖励美好积分', $user2['uid'], 'business_integral', 'jt_business_integral', $sy2*0.0006, $user2['spread_uid'], $user2['integral'], '间推奖励美好积分'); UserNotice::create(['uid' => $user2['uid'], 'type' => 3, 'title' => '间推佣金', 'content' => $user['phone'].'在'.date('Y-m-d H:i:s', time()).'成功打怪,恭喜你获得间推'.round($sy2 * 0.7, 2).'阳光积分', 'add_time' => time()]); // 通知消息 User::where('uid', $user1['spread_uid'])->inc('purple_integral', round($sy2 * 0.7, 2))->update(); User::where('uid', $user1['spread_uid'])->inc('business_integral', round($sy2 * 0.0006, 2))->update(); } } } } } /** * 团队奖励 * @return void * @throws \think\db\exception\DataNotFoundException * @throws \think\db\exception\DbException * @throws \think\db\exception\ModelNotFoundException */ public static function push() { if (time() >= strtotime(date('Y-m-d 15:00:00')) and !Push::where('type', 1)->where('add_time', strtotime('today'))->find()) { $user = User::select(); foreach ($user as $k => $v) { if ($v['spread_uid'] > 0){ $manyOrder = ManyOrder::where('uid', $v['uid'])->where('is_return', 1)->whereBetweenTime('return_time', strtotime('today'), strtotime('tomorrow'))->select(); if ($manyOrder){ foreach ($manyOrder as $item) { $price = $item['price']; $spread = getParent($v['spread_uid'], $user->toArray());// 找到所有上级 $v1 = 0; $v2 = 0; $v3 = 0; $one = SystemConfig::getConfigValue('v1')/100; // v1比例 $tow = SystemConfig::getConfigValue('v2')/100;// v2比例 $three = SystemConfig::getConfigValue('v3')/100;// v3比例 foreach ($spread as $value) { $spreadOrder = ManyOrder::where('uid', $value)->whereBetweenTime('create_time', strtotime('today'), strtotime('tomorrow'))->count(); if ($spreadOrder > 0){ $details = User::where('uid', $value)->find(); if ($details['level'] == 1){ if ($v2 == 0 and $v3 == 0){ // 没有发放v2和v3的奖励 if ($v1 == 0) { // 没有发放v1的奖励 $jl = $price * $one; $details['purple_integral'] += $jl * 0.7; // 百分之70的紫积分 $details['business_integral'] += $jl * 0.0006; // 百分之30的商家积分 $v1++; }elseif ($v1 == 1){// 发放v1奖励1次 $jl = ($price*$one)*0.03;//平级的百分之五 $details['purple_integral'] += $jl * 0.7; // 百分之70的紫积分 $details['business_integral'] += $jl * 0.0006; // 百分之30的商家积分 $v1++; } } }elseif ($details['level'] == 2){ if ($v3 == 0){ // 没有发放v3的奖励 if ($v1 == 0 and $v2 == 0) { // 没有发放v1和v2的奖励的奖励 $jl = $price * $tow; // 拿到流水的百分之八 $details['purple_integral'] += $jl * 0.7; // 百分之70的紫积分 $details['business_integral'] += $jl * 0.3; // 百分之30的商家积分 $v2++; }elseif($v1 == 0 and $v2 == 1) { // 没有发放v1和v2的奖励的奖励 $jl = ($price * $tow)*0.03; // 拿到流水的百分之八 $details['purple_integral'] += $jl * 0.7; // 百分之70的紫积分 $details['business_integral'] += $jl * 0.0006; // 百分之30的商家积分 $v2++; }elseif ($v1 > 0 and $v2 == 0){// 发放v1奖励,没有发放v2的奖励 $jl = $price * ($tow - $one); // 拿到流水减掉v1的百分之五 $details['purple_integral'] += $jl * 0.7; // 百分之70的紫积分 $details['business_integral'] += $jl * 0.0006; // 百分之30的商家积分 $v2++; }elseif ($v1 > 0 and $v2 == 1){// 发放v1奖励,发放v2的奖励一次 $jl = ($price * ($tow - $one))*0.03; // 拿到平级的百分之五 $details['purple_integral'] += $jl * 0.7; // 百分之70的紫积分 $details['business_integral'] += $jl * 0.0006; // 百分之30的商家积分 $v2++; } } }elseif ($details['level'] == 3){ if ($v1 == 0 and $v2 == 0 and $v3 == 0) { // 没有发放v1和v2v3的奖励的奖励 $jl = $price * $three; // 拿到流水的百分之11 $details['purple_integral'] += $jl * 0.7; // 百分之70的紫积分 $details['business_integral'] += $jl * 0.0006; // 百分之30的商家积分 $v3++; }elseif ($v1 == 0 and $v2 == 0 and $v3 == 1) {// 没有发放v1和v2的奖励的奖励 $jl = ($price * $three) * 0.03; // 拿到平级的百分之五 $details['purple_integral'] += $jl * 0.7; // 百分之70的紫积分 $details['business_integral'] += $jl * 0.0006; // 百分之30的商家积分 $v3++; }elseif ($v1 > 0 and $v2 == 0 and $v3 == 0){// 发放v1奖励,没有发放v2v3的奖励 $jl = $price * ($three - $one); // 拿到流水减掉v1的百分之五 $details['purple_integral'] += $jl * 0.7; // 百分之70的紫积分 $details['business_integral'] += $jl * 0.0006; // 百分之30的商家积分 $v3++; }elseif ($v1 > 0 and $v2 == 0 and $v3 == 1){// 发放v1奖励,没有发放v2v3的奖励 $jl = ($price * ($three - $one)) * 0.05; // 拿到平级的百分之五 $details['purple_integral'] += $jl * 0.7; // 百分之70的紫积分 $details['business_integral'] += $jl * 0.0006; // 百分之30的商家积分 $v3++; }elseif ($v1 == 0 and $v2 > 0 and $v3 == 0){// 发放v1奖励,发放v2的奖励,没有发放v3的奖励 $jl = ($price * ($three - $tow)); // 拿到平级的百分之五 $details['purple_integral'] += $jl * 0.7; // 百分之70的紫积分 $details['business_integral'] += $jl * 0.0006; // 百分之30的商家积分 $v3++; }elseif ($v1 == 0 and $v2 > 0 and $v3 == 1){// 发放v1奖励,发放v2的奖励,发放v3的奖励 $jl = ($price * ($three - $tow)) * 0.03; // 拿到平级的百分之五 $details['purple_integral'] += $jl * 0.7; // 百分之70的紫积分 $details['business_integral'] += $jl * 0.0006; // 百分之30的商家积分 $v3++; }elseif ($v1 > 0 and $v2 > 0 and $v3 == 0){// 发放v1奖励,发放v2的奖励,发放v3的奖励 $jl = ($price * ($three - $tow)); // 拿到平级的百分之五 $details['purple_integral'] += $jl * 0.7; // 百分之70的紫积分 $details['business_integral'] += $jl * 0.0006; // 百分之30的商家积分 $v3++; }elseif ($v1 > 0 and $v2 > 0 and $v3 == 1){// 发放v1奖励,发放v2的奖励,发放v3的奖励 $jl = ($price * ($three - $tow)) * 0.03; // 拿到平级的百分之五 $details['purple_integral'] += $jl * 0.7; // 百分之70的紫积分 $details['business_integral'] += $jl * 0.0006; // 百分之30的商家积分 $v3++; } }else{ $jl = 0; } if ($jl > 0){ User::where('uid', $value)->inc('purple_integral', $jl * 0.7)->update(); User::where('uid', $value)->inc('business_integral', $jl * 0.0006)->update(); UserBill::income('团队奖励阳光积分', $details['uid'], 'purple_integral', 'td_purple_integral', $jl * 0.7, 0,$details['purple_integral'], '打怪胜利补贴'.$item['name'].'-第'.$item['stage'].'期团队v'.$details['level'].'奖励阳光积分'); UserBill::income('团队奖励美好积分', $details['uid'], 'business_integral', 'td_business_integral', $jl * 0.0006, 0,$details['integral'], '打怪胜利补贴'.$item['name'].'-第'.$item['stage'].'期期团队v'.$details['level'].'奖励美好积分'); } $jl = 0; } } } } } } Push::create(['add_time' => strtotime('today'), 'type' => 1]); //存入数据库信息 } } /** * 流水分红 * @return void * @throws \think\db\exception\DataNotFoundException * @throws \think\db\exception\DbException * @throws \think\db\exception\ModelNotFoundException */ public static function flowing_water() { if (!Push::where('add_time', strtotime('today'))->find()) { $user = User::where('flowing_water', '>', 0)->select(); if ($user) { foreach ($user as $item) { $price = ManyOrder::whereBetweenTime('return_time', strtotime('yesterday'), strtotime('today'))->where('status', 1)->sum('price');// 昨天众筹成功返还的流水 if ($price > 0){ $details = User::where('uid', $item['uid'])->find(); $details['purple_integral'] += ($price * ($details['flowing_water'] / 100)) * 0.7; // 百分之70的紫积分 $details['business_integral'] += ($price * ($details['flowing_water'] / 100)) * 0.0006; // 百分之30的商家积分 $details->save(); UserBill::income('分红流水奖励阳光积分', $details['uid'], 'purple_integral', 'team_purple_integral', ($price * ($details['flowing_water'] / 100)) * 0.7, 0, $details['purple_integral'], '分红流水奖励阳光积分'); UserBill::income('分红流水奖励美好积分', $details['uid'], 'business_integral', 'team_business_integral', ($price * ($details['flowing_water'] / 100)) * 0.0006, 0, $details['integral'], '分红流水奖励美好积分'); } } } } } /** * 更新推送时间 * @return void * @throws \think\db\exception\DataNotFoundException * @throws \think\db\exception\DbException * @throws \think\db\exception\ModelNotFoundException */ public static function time() { if (!Push::where('add_time', strtotime('today'))->where('type', 0)->find()) { Push::create(['add_time' => strtotime('today')]); //存入数据库信息 } } }