ufutx.dma/app/Http/Controllers/Controller.php
2026-03-04 14:42:40 +08:00

310 lines
11 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
namespace App\Http\Controllers;
use App\Exports\AgentUsersSimpleExport;
use App\Facades\CommonService;
use App\Facades\HttpService;
use App\Facades\TaskService;
use App\Facades\UserService;
use App\Facades\WechatService;
use App\Http\Response\ResponseJson;
use App\Imports\ActivityOrdersImport;
use App\Imports\AgentUsersImport;
use App\Imports\ApplyUserImport;
use App\Imports\ImportAgentOrders;
use App\Imports\ImportPackCode;
use App\Jobs\SendEasySms;
use App\Jobs\SendSubscribeMessage;
use App\Jobs\SendTemplateNotice;
use App\Jobs\SyncDailyStep;
use App\Jobs\SyncSaasUser;
use App\Jobs\TestJob;
use App\Models\ActivityIntroduceLog;
use App\Models\ActivityOrder;
use App\Models\AgentOrder;
use App\Models\AgentUser;
use App\Models\BandOriginSyn;
use App\Models\Collaborator;
use App\Models\DmaServiceUserRole;
use App\Models\ErrorLog;
use App\Models\Group;
use App\Models\GroupUser;
use App\Models\LotteryMember;
use App\Models\LottoCode;
use App\Models\MedicalReport;
use App\Models\OperateStockLog;
use App\Models\Order;
use App\Models\RegularActivity;
use App\Models\User;
use App\Models\UserInfo;
use App\Models\Wechat;
use App\Services\FatService;
use App\Services\ImService;
use App\Services\OfflineOrderService;
use cccdl\yunxin_sdk\Im\Team;
use GuzzleHttp\Client;
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
use Illuminate\Foundation\Bus\DispatchesJobs;
use Illuminate\Foundation\Validation\ValidatesRequests;
use Illuminate\Http\Request;
use Illuminate\Routing\Controller as BaseController;
use EasyWeChat\OfficialAccount\Application;
use Illuminate\Support\Facades\Cache;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Log;
use Illuminate\Support\Facades\Route;
use Maatwebsite\Excel\Facades\Excel;
use Tymon\JWTAuth\Facades\JWTAuth;
class Controller extends BaseController
{
use AuthorizesRequests, DispatchesJobs, ValidatesRequests, ResponseJson;
public function test(Request $request)
{
// $host = "https://bizcard.market.alicloudapi.com";
// $path = "/rest/160601/ocr/ocr_business_card.json";
// $method = "POST";
// $appcode = "ad41385e76184cffab0a5dc7654f8db2";
// $headers = array();
// array_push($headers, "Authorization:APPCODE " . $appcode);
// //根据API的要求定义相对应的Content-Type
// array_push($headers, "Content-Type" . ":" . "application/json; charset=UTF-8");
// $querys = "";
// $bodys = "{\"image\":\"https://images.health.ufutx.com/202601/14/b71d821306083f5f5b1b0ee3bc8c5219.png\"}";
// $url = $host . $path;
// $curl = curl_init();
// curl_setopt($curl, CURLOPT_CUSTOMREQUEST, $method);
// curl_setopt($curl, CURLOPT_URL, $url);
// curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
// curl_setopt($curl, CURLOPT_FAILONERROR, false);
// curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
// curl_setopt($curl, CURLOPT_HEADER, true);
// if (1 == strpos("$" . $host, "https://")) {
// curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
// curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
// }
// curl_setopt($curl, CURLOPT_POSTFIELDS, $bodys);
// dd(curl_exec($curl));
}
public function test2()
{
Log::info('test2');
// $app = WechatService::officialApp();
// dd($app->getConfig());
dd(session('wechat_user'));
}
public function wechatServer()
{
$response = WechatService::server();
return $response;
}
public function errorLogs()
{
return $this->success('ok', ErrorLog::whereNotIn('status', [3, 4])->orderByDesc('id')->paginate());
}
public function sendAppError(Request $request)
{
$title = $request->input('title') ?: '友福同享安卓报错';
$url = $request->input('url');
$openids = ['oHGap6J6O_roaZH050uC7xGhbRqw', 'oHGap6EROqavcQxzoScKjpVUykzY'];
foreach ($openids as $openid) {
$param = [
'template_id' => config('wechat.tpls.error_log_notice'),
// 'template_id'=>'7Tj2vYAIGaYrPd2uyQwRp98MhzTCX7SL5LV97W9jn1A',
'url' => $url,
// 'miniprogram' => [
// 'appid' => config('wechat.mini_program.app_id'),
// 'pagepath' => 'pages/tabBar/serve',
// ],
'data' => [
'time2' => ['value' => date('Y-m-d H:i:s')],
'thing4' => ['value' => $title],
],
];
$param['touser'] = $openid;
// $param['touser'] = "oHGap6LBV0CV893CYAwG7Pz7-hlY";
SendTemplateNotice::dispatch($param)->onQueue('health');
}
return $this->success('ok');
}
public function errorLog(ErrorLog $log)
{
return view('errorMessage', ['message' => $log->message]);
}
public function web()
{
if (config('app.env') == 'production') {
return redirect('https://ufutx.com');
}
return view('welcome');
}
/**
* 导入批发商活动订单
* @return \Illuminate\Contracts\Foundation\Application|\Illuminate\Contracts\View\Factory|\Illuminate\Contracts\View\View|\Illuminate\Http\JsonResponse
*/
public function testAgentActivityOrder()
{
$orders = DB::table('oa_agent_activity_order as ao')
->leftJoin('oa_agent_user as au', 'au.id', '=', 'ao.user_id')
->where('ao.pay_status', 'PAID')
->get();
foreach ($orders as $order) {
DB::beginTransaction();
//用户
$user_id = Wechat::where('openid', $order->openid)->value('user_id');
if (!$user_id) {
$user_id = User::where("mobile", $order->mobile)->value('id');
}
if (empty($user_id)) {
$user = User::create(['name' => $order->name, 'mobile' => $order->mobile]);
Wechat::create(['user_id' => $user->id, 'type' => 'official', 'openid' => $order->openid]);
$user_id = $user->id;
}
//订单
$agent_order = ActivityOrder::updateOrCreate(['trade_no' => $order->trade_no], ['activity_id' => 18, 'user_id' => $user_id, 'sku' => "批发商大会门票", 'is_pay' => 1, "num" => 1, 'sex' => 0, 'ara_code' => null, 'name' => $order->name, 'mobile' => $order->mobile, 'amount' => $order->price, 'residue_amount' => $order->price, 'created_at' => date("Y-m-d H:i:s", $order->created_at), 'updated_at' => date("Y-m-d H:i:s", $order->updated_at)]);
//批发商
$agent_user = AgentUser::where(['user_id' => $user_id])->first();
if (!$agent_user || $agent_user->level == 0) {
AgentUser::updateOrCreate(['user_id' => $user_id], ['level' => 2]);
}
DB::commit();
}
return $this->success('ok');
}
public function addLotteryMember(Request $request, $lottery_id)
{
$data = $request->only(['mobile', 'name', 'codes']);
$user = User::where("mobile", $data['mobile'])->first();
if (empty($user)) {
$user = User::create($data);
}
foreach ($data['codes'] as $code) {
LotteryMember::updateOrCreate(['user_id' => $user->id, 'code' => $code, 'lottery_id' => $lottery_id], [
'lottery_id' => $lottery_id,
'name' => $data['name'],
'mobile' => $data['mobile'],
'code' => $code
]);
}
return $this->success('ok');
}
public function addOfflineAgentOrder(Request $request)
{
$code = $request->input('code');
if ($code != "009527")
return $this->failure("请输入code");
//生成用户
$mobile = $request->input('mobile');
if (empty($mobile))
return $this->failure("请输入手机号");
$name = $request->input('name');
if (empty($name))
return $this->failure("请输入姓名");
$num = $request->input('num');
if (empty($num) || !is_numeric($num))
return $this->failure("请输入数量");
$user_id = User::where("mobile", $mobile)->value('id');
if (empty($user_id)) {
$user = User::create(['name' => $name, 'mobile' => $mobile]);
$user_id = $user->id;
} else {
User::where("mobile", $mobile)->update(['name' => $name]);
}
//生成订单
$data['user_id'] = $user_id;
$data['name'] = $name;
$data['mobile'] = $mobile;
$data['trade_no'] = CommonService::getTradeNo();
$data['origin_price'] = $data['price'] = 3120 * $num;
$data['is_online'] = 0;
$data['pay_type'] = "free";
$data['pay_status'] = 'PAID';
$data['shop_id'] = 1;
$data['sku_id'] = 1;
$data['shop_info'] = null;
$data['num'] = $num;
$data['from_user_id'] = $request->input('from_user_id');
//生成未支付订单
$order = AgentOrder::create($data);
//酒码
for ($index = 0; $index < $num; $index++) {
$code = time() . CommonService::random(6, 1) . strtoupper(CommonService::random(1));
//生成抽奖码
$order->lottoCode()->create(['user_id' => $order->user_id, 'code' => $code]);
}
//批发商
AgentUser::updateOrCreate(['user_id' => $user_id], ['level' => 1]);
}
public function syncActivityOrders()
{
$love_activity_id = 2451;
$dma_activity_id = 17;
$url = config('app.shop_url') . "activities/{$love_activity_id}/orders?nopage=1";
$response = HttpService::getData($url);
$orders = $response['data'];
foreach ($orders as $order) {
//查询用户
$user = User::whereHas("officialWechat")->where("mobile", $order['mobile'])->first();
if (empty($user)) {
$user = User::where("mobile", $order['mobile'])->first();
}
if (empty($user)) {
$user = User::create(['mobile' => $order['mobile'], 'name' => $order['name']]);
}
$user->update(['name' => $order['name']]);
//创建订单
$activity_order = ActivityOrder::where("activity_id", $dma_activity_id)->owner($user->id)->paid()->first();
if (empty($activity_order)) {
ActivityOrder::create([
'activity_id' => $dma_activity_id,
'user_id' => $user->id,
'trade_no' => CommonService::getTradeNo(),
'sku' => "早鸟票",
'is_pay' => 1,
'num' => 1,
'sex' => 0,
'ara_code' => "+86",
"mobile" => $order['mobile'],
"name" => $order["name"],
"amount" => $order['price'],
'residue_amount' => $order['price']
]);
} else {
$activity_order->update(['name' => $order["name"]]);
}
}
return $this->success('ok');
}
public function importAgentOrders()
{
$file = storage_path("wine.xlsx");
Excel::import(new ImportAgentOrders(), $file);
return $this->success("ok");
}
}