From 24455e8f69594becd6d028786301c25faef6b558 Mon Sep 17 00:00:00 2001 From: mkm <727897186@qq.com> Date: Wed, 16 Aug 2023 15:44:36 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/api/controller/RemoteController.php | 72 ++++++++++++++++++++----- app/api/controller/TaskController.php | 14 ++++- app/common/logic/task/TaskLogic.php | 1 + app/job/TaskInformationJob.php | 68 +++-------------------- 4 files changed, 78 insertions(+), 77 deletions(-) diff --git a/app/api/controller/RemoteController.php b/app/api/controller/RemoteController.php index 37227c0cb..87352b661 100644 --- a/app/api/controller/RemoteController.php +++ b/app/api/controller/RemoteController.php @@ -4,35 +4,79 @@ namespace app\api\controller; use Symfony\Component\HttpClient\HttpClient; use think\facade\Log; +use app\common\model\informationg\UserInformationg; class RemoteController extends BaseApiController { public array $notNeedLogin = ['index']; - public function index() + + public function shang_date_total_price($company) { + $yesterday = date('Y-m-d', strtotime('-1 day', time())); $parmas = [ - "brigade_id" => "3", - "city_code" => "510500", - "district_code" => "510502", - "street_code" => "510502106", - "village_code" => "510502106201", - "start_date" => "2023-08-12", - "end_date" => "2023-08-12" + "start_date" => $yesterday, + "end_date" => $yesterday ]; + switch ($company['company_type']) { + case 18: + $parmas['brigade_id'] = $company['brigade']; + $parmas['village_code'] = $company['village']; + $parmas['street_code'] = $company['street']; + $parmas['district_code'] = $company['area']; + $parmas['city_code'] = $company['city']; + break; + case 17: + $parmas['village_code'] = $company['village']; + $parmas['street_code'] = $company['street']; + $parmas['district_code'] = $company['area']; + $parmas['city_code'] = $company['city']; + break; + case 16: + $parmas['street_code'] = $company['street']; + $parmas['district_code'] = $company['area']; + $parmas['city_code'] = $company['city']; + break; + case 15: + $parmas['district_code'] = $company['area']; + $parmas['city_code'] = $company['city']; + break; + case 14: + $parmas['city_code'] = $company['city']; + break; + default: + Log::error('任务结算失败,公司类型错误:' . $company['company_type']); + return false; + } try { $res = HttpClient::create()->request('GET', 'https://crmeb-test.shop.lihaink.cn/api/order/statistics', [ 'query' => $parmas, ]); - $arr = json_decode($res->getContent(), true); - if ($arr['status'] == 200) { - $data['total_price'] = $arr['data']['total_price']; + $json = json_decode($res->getContent(), true); + $arr['total_price'] = 0; + $arr['status'] = 0; + $name = '片区交易'; + if ($json['status'] == 200) { + $arr['total_price'] = $json['data']['total_price']; + //基础金额*(每日基户数*天数)//且户数小于公司总户数 + $user_count = UserInformationg::where('company_id', $company['id'])->count(); + $user_count_two = 5 * $company['day_count']; + if ($user_count_two > $user_count) { + $user_count_money = 58 * $user_count; + } else { + $user_count_money = 58 * $user_count_two; + } + if ($json['data']['total_price'] > $user_count_money) { + $arr['status'] = 1; + $name = '片区交易'; + } } else { - $data['total_price'] = 0; - Log::error('获取订单金额失败:' . $arr . '参数:' . json_encode($parmas)); + Log::error('获取订单金额失败:' . $json . '参数:' . json_encode($parmas)); } + return ['name' => $name, 'arr' => $arr]; } catch (\Exception $e) { - halt($e->getMessage()); + Log::error('获取订单金额失败:' . $e->getMessage() . '参数:' . json_encode($parmas)); + return false; } } } diff --git a/app/api/controller/TaskController.php b/app/api/controller/TaskController.php index 0d65fec49..a4e7b8a6a 100644 --- a/app/api/controller/TaskController.php +++ b/app/api/controller/TaskController.php @@ -2,6 +2,7 @@ namespace app\api\controller; +use app\common\model\Company; use app\common\model\task\Task; use app\common\model\user\User; @@ -37,8 +38,17 @@ class TaskController extends BaseApiController{ ->field(['id', 'title','money','template_id','director_uid', 'company_id', 'start_time', 'end_time', 'director_uid', 'type', 'status', 'content','extend']) ->page($page,25) ->order(['id' => 'desc','status'=>'asc']) - ->select() - ->toArray(); + ->select()->each(function($item){ + if($item->type==33){ + $company = Company::where('id', $item['company_id'])->field('id,deposit,company_money,user_id,day_count,company_type,province,city,area,street,village,brigade')->find(); // 可能要判断预存金是否满足 + $res=App(RemoteController::class)->shang_date_total_price($company); + if($res!=false){ + $item->extend['transaction']=$res; + }else{ + $item->extend['transaction']=''; + } + } + })->toArray(); return $this->success('ok', $res); } } \ No newline at end of file diff --git a/app/common/logic/task/TaskLogic.php b/app/common/logic/task/TaskLogic.php index c7e47aab5..3358cd23a 100644 --- a/app/common/logic/task/TaskLogic.php +++ b/app/common/logic/task/TaskLogic.php @@ -91,6 +91,7 @@ class TaskLogic extends BaseLogic $data['money'] = self::task_money($v); if($v['template_info']['type'] == 31){ $data["extend"]=json_encode(['informationg'=>['count'=>5,'update'=>0]]); + TaskTemplate::where('id',$v['template_id'])->inc('information_day_count',5)->update(); }else{ $data["extend"]=json_encode([]); } diff --git a/app/job/TaskInformationJob.php b/app/job/TaskInformationJob.php index b51dcb375..f64acb5a7 100644 --- a/app/job/TaskInformationJob.php +++ b/app/job/TaskInformationJob.php @@ -2,6 +2,7 @@ namespace app\job; +use app\api\controller\RemoteController; use app\common\logic\finance\ShareProfit; use app\common\model\task\Task; use Symfony\Component\HttpClient\HttpClient; @@ -9,6 +10,7 @@ use think\queue\Job; use think\facade\Log; use app\common\model\Company; use app\common\model\informationg\UserInformationg; +use think\facade\App; /** * 任务结算执行的具体逻辑 @@ -33,69 +35,13 @@ class TaskInformationJob } elseif //交易金额 ($data['template_info']['type'] == 33) { - $yesterday = date('Y-m-d', strtotime('-1 day', time())); - $parmas = [ - "start_date" => $yesterday, - "end_date" => $yesterday - ]; - switch ($company['company_type']) { - case 18: - $parmas['brigade_id'] = $company['brigade']; - $parmas['village_code'] = $company['village']; - $parmas['street_code'] = $company['street']; - $parmas['district_code'] = $company['area']; - $parmas['city_code'] = $company['city']; - break; - case 17: - $parmas['village_code'] = $company['village']; - $parmas['street_code'] = $company['street']; - $parmas['district_code'] = $company['area']; - $parmas['city_code'] = $company['city']; - break; - case 16: - $parmas['street_code'] = $company['street']; - $parmas['district_code'] = $company['area']; - $parmas['city_code'] = $company['city']; - break; - case 15: - $parmas['district_code'] = $company['area']; - $parmas['city_code'] = $company['city']; - break; - case 14: - $parmas['city_code'] = $company['city']; - break; - default: - Log::error('任务结算失败,公司类型错误:' . $company['company_type']); - return false; - } - try { - $res = HttpClient::create()->request('GET', 'https://crmeb-test.shop.lihaink.cn/api/order/statistics', [ - 'query' => $parmas, - ]); - $json = json_decode($res->getContent(), true); - $arr['total_price'] = 0; - $name = '片区交易'; - if ($json['status'] == 200) { - $arr['total_price'] = $json['data']['total_price']; - //基础金额*(每日基户数*天数)//且户数小于公司总户数 - $user_count = UserInformationg::where('company_id', $data['company_id'])->count(); - $user_count_two = 5 * $company['day_count']; - if ($user_count_two > $user_count) { - $user_count_money = 58 * $user_count; - } else { - $user_count_money = 58 * $user_count_two; - } - if ($json['data']['total_price'] > $user_count_money) { - $arr['status'] = 1; - $name = '片区交易'; - } - } else { - Log::error('获取订单金额失败:' . $json . '参数:' . json_encode($parmas)); - } - } catch (\Exception $e) { - Log::error('获取订单金额失败:' . $e->getMessage() . '参数:' . json_encode($parmas)); + $shang_date_total_price = App(RemoteController::class)->shang_date_total_price($company); + if ($shang_date_total_price == false) { + Log::info('任务结算失败,交易金额未达到要求:' . json_encode($data)); return false; } + $name = $shang_date_total_price['name']; + $arr['status'] = $shang_date_total_price['arr']['status']; } else { $task_count = Task::where('id', $data['task_id'])->field('director_uid')->where('status', 3)->with('director_info')->find(); if (empty($task_count)) {