// $params['user_id']]) // ->field('id,user_money as balance,total_income as totalIncome,is_lh') // ->findOrEmpty(); // //查询会员等级 // $member_id = UtilsService::get_user_member_id($params['user_id']); // $userMember = UserMember::where(['id' => $member_id]) // ->field('id, name, logo, bg_img, text_color, money, level1_num, lh_min, lh_max, lh_num') // ->findOrEmpty(); // $today_income = UserFinance::where("create_time > $todayStart") // ->where(['user_id' => $params['user_id'],'change_type' => 13]) // ->sum('change_amount'); // $today_order = LhRecord::where("create_time > $todayStart") // ->where(['user_id' => $params['user_id']]) // ->count(); // $user['member'] = $userMember; // $user['todayIncome'] = $today_income; // $user['totalIncome'] = $user['totalIncome']; // $user['todayOrder'] = $today_order; // $user['todayTotalOrder'] = $userMember['lh_num']; // $today_money = LhRecord::where("create_time > $todayStart") // ->where(['user_id' => $params['user_id']]) // ->sum('money'); // $user['todayMoney'] = $today_money; // //今日量化过 // if($user['todayMoney'] > 0){ // //可量化总额金额 = 今日最后一次量化金额 * 可量化次数 // $today_last_money = LhRecord::where("create_time > $todayStart") // ->where(['user_id' => $params['user_id']]) // ->order('create_time desc') // ->findOrEmpty(); // $user['totalyMoney'] = $today_last_money['money'] * $userMember['lh_num']; // }else{ // //查询今日量化情况,已量化、总可量化(根据会员等级最高量化金额,用户余额小于最高,则根据用户余额,用户余额小于最低,则根据最低) // //大于最大量化金额 // if($user['balance'] >= $userMember['lh_max']){ // $user['totalyMoney'] = $userMember['lh_max']; // //大于最小量化金额 小于最大量化金额 // }elseif($user['balance'] > $userMember['lh_min'] && $user['balance'] < $userMember['lh_max']){ // $user['totalyMoney'] = $user['balance']; // //小于最小量化金额 // }else{ // $user['totalyMoney'] = $userMember['lh_min']; // } // } // return [ // 'user' => $user, // // 服务器时间 // 'server_date' => date('Y/m/d H:i:s'), // ]; // } // /** // * @notes 量化 // * @param $params // * @return array|false // * @throws \think\db\exception\DataNotFoundException // * @throws \think\db\exception\DbException // * @throws \think\db\exception\ModelNotFoundException // * @author BD // * @date 2024/02/22 10:54 // */ // public static function buy(array $params) // { // Db::startTrans(); // try { // // 获取今天0点的时间戳 // $todayStart = strtotime(date('Y-m-d 00:00:00')); // $user = User::where(['id' => $params['user_id']]) -> findOrEmpty(); // $coin = LhCoin::where(['is_show' => 1]) ->orderRaw(" RAND() ") -> findOrEmpty(); // //查询会员等级 // $member_id = UtilsService::get_user_member_id($params['user_id']); // $userMember = UserMember::where(['id' => $member_id])->findOrEmpty(); // //计算买入金额 // $money = 0; // //查询今日量化情况,总可量化(根据会员等级最高量化金额,用户余额小于最高,则根据用户余额,用户余额小于最低,则根据最低) // $today_money = LhRecord::where("create_time > $todayStart") // ->where(['user_id' => $params['user_id']]) // ->sum('money'); // $today_order = LhRecord::where("create_time > $todayStart") // ->where(['user_id' => $params['user_id']]) // ->count(); // //今日量化 // if($today_order > 0){ // //买入金额为 今日最后一次量化金额 // $today_last_money = LhRecord::where("create_time > $todayStart") // ->where(['user_id' => $params['user_id']]) // ->order('create_time desc') // ->findOrEmpty(); // $money = $today_last_money['money']; // }else{ // //查询可量化总额 // $totalyMoney = 0;//总可量化金额 // //大于最大量化金额 // if($user['user_money'] >= $userMember['lh_max']){ // $totalyMoney = $userMember['lh_max']; // //大于最小量化金额 小于最大量化金额 // }elseif($user['user_money'] > $userMember['lh_min'] && $user['user_money'] < $userMember['lh_max']){ // $totalyMoney = $user['user_money']; // //小于最小量化金额 // }else{ // $totalyMoney = $userMember['lh_min']; // } // $money = $totalyMoney / $userMember['lh_num']; // //最后一次,量化金额 = 可量化金额 - 已量化金额 // if($userMember['lh_num'] - $today_order == 1){ // $money = $totalyMoney - $today_money; // } // } // if($money <= 0){ // throw new \Exception('network.parameterAbnormality'); // } // // //如果用户余额低于最大量化金额,则根据量化金额取值,否则根据用户余额取值 // // if($userMember['lh_max'] > $user['user_money']){ // // $userMember['lh_max'] = $user['user_money']; // // } // // $money = mt_rand($userMember['lh_min'], $userMember['lh_max']); // $rate = round($userMember['rate_min'] + mt_rand() / mt_getrandmax() * ($userMember['rate_max'] - $userMember['rate_min']), 2); // //每次量化收益 = 最小-最大量化金额随机值 * 最小-最大量化收益率随机值 / 每日量化次数 // $income = round(($money * $rate / 100), 2); // $money_sale = round($coin['price'] + ($coin['price'] * $rate ) / 100, 4); // $data = [ // 'sn' => generate_sn(LhRecord::class, 'sn'), // 'user_id' => $params['user_id'], // 'coin_id' => $coin['id'], // 'coin_name' => $coin['name'], // 'coin_logo' => $coin['logo'], // 'coin_symbol' => $coin['symbol'], // 'coin_buy_name' => $coin['buy_name'], // 'coin_sale_name' => $coin['sale_name'], // 'money' => $money, // 'income' => $income, // 'money_buy' => $coin['price'], // 'money_sale' => $money_sale // ]; // $order = LhRecord::create($data); // //记录日志 // UtilsService::user_finance_add( // $data['user_id'], // 13, // 1, // $data['income'], // $data['sn'], // '', // 1 //冻结 // ); // //用户资金修改 // UtilsService::user_money_change($data['user_id'], 1, $data['income'],'user_money'); // UtilsService::user_money_change($data['user_id'], 1, $data['income'],'total_income'); // //团队收益奖励 // UtilsService::team_reward_add($data['user_id'],$data['income'],2); // Db::commit(); // return []; // } catch (\Exception $e) { // Db::rollback(); // self::setError($e->getMessage()); // return false; // } // } // /** // * @notes 抢单 // * @param $params // * @return array|false // * @throws \think\db\exception\DataNotFoundException // * @throws \think\db\exception\DbException // * @throws \think\db\exception\ModelNotFoundException // * @author BD // * @date 2024/02/22 10:54 // */ // public static function grab(array $params) // { // Db::startTrans(); // try { // $user = User::where(['id' => $params['user_id']]) -> findOrEmpty(); // $time24Hours = time() - 24 * 60 * 60;//24小时前 // //查看是否存在进行中的订单 // $orderStatus3 = GoodsRecord::where(['user_id' => $params['user_id'],'status' => 3])->findOrEmpty(); // if (!$orderStatus3->isEmpty()) { // throw new \Exception('network.parameterAbnormality');//派单中,请稍后重试 // } // $orderStatus4 = GoodsRecord::where(['user_id' => $params['user_id'],'status' => 4])->findOrEmpty(); // if (!$orderStatus4->isEmpty()) { // throw new \Exception('network.parameterAbnormality');//订单未支付,请先完成支付 // } // //判断24小时抢单次数 // //分组模式下,抢单次数=分组订单,未分组,抢单次数=会员等级抢单次数 // $today_order = GoodsRecord::where("create_time > $time24Hours")->where(['user_id' => $params['user_id']])->count(); // //判断用户分组 // $userGroupRecord = UserGroupRecord::where(['user_id' => $params['user_id']]) // ->order('id', 'desc') // ->findOrEmpty(); // if(!$userGroupRecord->isEmpty()) { // $userGroupRuleCount = UserGroupRule::where(['group_id' => $userGroupRecord['group_id']])->count(); // if ($today_order >= $userGroupRuleCount) { // throw new \Exception('network.parameterAbnormality');//今日抢单次数已用完 // } // }else{ // //查询会员等级 // $member_id = UtilsService::get_user_member_id($params['user_id']); // $userMember = UserMember::where(['id' => $member_id])->findOrEmpty(); // if ($today_order >= $userMember['order']) { // throw new \Exception('network.parameterAbnormality');//今日抢单次数已用完 // } // } // $language = Language::where(['symbol' => $params['lang']])->findOrEmpty(); // if ($language->isEmpty()) { // throw new \Exception('network.parameterAbnormality'); // } // $data = [ // 'sn' => generate_sn(GoodsRecord::class, 'sn'), // 'user_id' => $params['user_id'], // 'lang' => $params['lang'], // 'status' => 5, // ]; // //判断派单模式 1手动2自动 // $config = ConfigService::get('website', 'trade'); // //自动---------------------------------------------------------------------------------------- // if($config['robot_model'] -2 == 0){ // //查询会员等级 // $member_id = UtilsService::get_user_member_id($data['user_id']); // $member = UserMember::where(['id' => $member_id])->findOrEmpty(); // $auto_status = false; // $total_money = 0; // $commission_cust = 0;//自定义佣金标识 // //判断是否有卡单订单 // $total_order = GoodsRecord::where(['user_id' => $params['user_id']])->count(); // $kadan = UserKadan::where(['user_id' => $params['user_id'],'num' => $total_order + 1,'status' => 0])->findOrEmpty(); // if (!$kadan->isEmpty()) { // //计算匹配金额 // $total_money = $kadan['money']; // $commission_cust = $kadan['commission']; // UserKadan::update([ // 'id' => $kadan['id'], // 'status' => 1, // ]); // $data['type'] = 3; // $auto_status = true; // //没有卡单订单 // }else{ // //判断用户分组 // $userGroupRecord = UserGroupRecord::where(['user_id' => $params['user_id']]) // ->order('id', 'desc') // ->findOrEmpty(); // if(!$userGroupRecord->isEmpty()) { // $userGroupRule = UserGroupRule::where(['group_id' => $userGroupRecord['group_id'],'num' => $today_order + 1])->findOrEmpty(); // //判断是否存在分组规则,不存在则进入手动派单 // if(!$userGroupRule->isEmpty()){ // //计算订单金额 金额类型1固定值2百分比 // if($userGroupRule['money_type'] == 1){ // $total_money = $userGroupRule['money']; // }else{ // $total_money = round($user['user_money'] * $userGroupRule['money_percentage'] / 100,0); // } // //计算订单佣金 佣金类型1固定值2百分比 // if($userGroupRule['commission_type'] == 1){ // $commission_cust = $userGroupRule['commission']; // }else{ // $commission_cust = round($total_money * $userGroupRule['commission_percentage'] / 100,0); // } // $data['type'] = 2; // $auto_status = true; // //用户分组规则金额百分比模式下,判断用户余额跟自动派单最低余额 // if(($userGroupRule['money_type'] == 2) && ($user['user_money'] - $config['robot_range_min_money'] < 0)){ // $auto_status = false; // } // }else{ // $auto_status = false; // } // }else{ // //会员自动派单订单 // if($user['user_money'] - $config['robot_range_min_money'] >= 0){ // //计算匹配金额 // $total_money = round($user['user_money'] * rand($config['robot_range'][0],$config['robot_range'][1]) / 100,0); // $auto_status = true; // } // } // } // if($auto_status){ // $goods = Goods::where("money <= $total_money")->group(" RAND() ")->findOrEmpty(); // if (!$goods->isEmpty()) { // //多语言替换 // $data_langs = UtilsService::get_langs_data($goods['langs'],$params['lang']); // $goods['title'] = $data_langs['title']; // //数量 // $num = floor($total_money / $goods['money']); // //计算佣金 // $commission = $commission_cust > 0 ? $commission_cust : round($goods['money'] * $num * $member['commission']/100,2); // if($commission > 0.01){ // $data['goods_id'] = $goods['id']; // $data['goods_title'] = $goods['title']; // $data['goods_image'] = FileService::setFileUrl($goods['image']); // $data['unit_price'] = $goods['money']; // $data['num'] = $num; // $data['money'] = $goods['money'] * $num; // $data['commission'] = $commission; // $data['status'] = 4; // } // } // } // } // $order = GoodsRecord::create($data); // Db::commit(); // return [ // 'order_id' => $data['sn'], // 'status' => 5, // ]; // } catch (\Exception $e) { // Db::rollback(); // self::setError($e->getMessage()); // return false; // } // } // /** // * @notes 获取进行中订单 // * @param $params // * @return array // * @throws \think\db\exception\DataNotFoundException // * @throws \think\db\exception\DbException // * @throws \think\db\exception\ModelNotFoundException // * @author BD // * @date 2024/02/22 10:54 // */ // public static function grabIngRecord(array $params) // { // try { // $field = ['id','sn','goods_title as title','goods_image as image','unit_price','num','money','commission','status']; // $record = GoodsRecord::field($field) // ->where(['user_id' => $params['user_id']]) // ->where('status = 5 OR status = 4') // ->order(['id' => 'desc']) // ->findOrEmpty() // ->toArray(); // return $record; // } catch (\Exception $e) { // self::setError($e->getMessage()); // return false; // } // } // /** // * @notes 订单支付 // * @param array $params // * @return array|false // * @author BD // * @date 2024/02/22 10:54 // */ // public static function grabPay(array $params) // { // Db::startTrans(); // try { // $order = GoodsRecord::where(['id' => $params['id'],'user_id' => $params['user_id']])->findOrEmpty(); // GoodsRecord::update([ // 'id' => $order['id'], // 'status' => 1, // 'pay_time' => time() // ]); // //支付扣除金额--------------------------------------------------------------------------------------------- // //记录日志 // UtilsService::user_finance_add( // $order['user_id'], // 7, // 2, // $order['money'], // $order['sn'] // ); // //用户资金修改 // UtilsService::user_money_change($params['user_id'], 2, $order['money'],'user_money'); // $commission = $order['commission']; // //收益增加金额--------------------------------------------------------------------------------------------- // //记录日志 // UtilsService::user_finance_add( // $order['user_id'], // 9, // 1, // $commission, // $order['sn'], // '', // 1 //冻结 // ); // //用户资金修改 // UtilsService::user_money_change($params['user_id'], 1, $commission,'user_money'); // UtilsService::user_money_change($params['user_id'], 1, $commission,'total_income'); // //团队收益奖励 // UtilsService::team_reward_add($params['user_id'],$commission,2); // //订单本金返还--------------------------------------------------------------------------------------------- // //记录日志 // UtilsService::user_finance_add( // $order['user_id'], // 8, // 1, // $order['money'], // $order['sn'] // ); // //用户资金修改 // UtilsService::user_money_change($params['user_id'], 1, $order['money'],'user_money'); // Db::commit(); // return [ // 'order_id' => (int)$order['id'], // 'from' => 'order' // ]; // } catch (\Exception $e) { // Db::rollback(); // self::setError($e->getMessage()); // return false; // } // } // }