ufutx.dma/app/Http/Controllers/Controller.php

310 lines
11 KiB
PHP
Raw Normal View History

2026-03-04 14:42:40 +08:00
<?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");
}
}