mark преди 2 години
родител
ревизия
eec3490053
променени са 3 файла, в които са добавени 81 реда и са изтрити 15 реда
  1. 69 4
      app/Http/Logic/Cron/CronLogic.php
  2. 12 10
      app/Http/Logic/Home/HomeLogic.php
  3. 0 1
      routes/api.php

+ 69 - 4
app/Http/Logic/Cron/CronLogic.php

@@ -4,10 +4,12 @@
 namespace App\Http\Logic\Cron;
 
 
+use App\Exceptions\CommonException;
 use App\Http\Bean\Cron\logic\HandleOrderParamBean;
 use App\Http\Bean\Util\Jutuike\GetOrderListParamBean;
 use App\Http\Bean\Util\Meituan\OrderListParamBean;
 use App\Http\Bean\Util\Pdd\Ddk\OrderListIncrementGetParamBean;
+use App\Http\Enum\ErrorEnum;
 use App\Http\Enum\OrderStatusEnum;
 use App\Http\Enum\PlatformTypeEnum;
 use App\Http\Logic\BaseLogic;
@@ -19,9 +21,11 @@ use App\Http\Utils\Meituan\MeituanLianmengUtil;
 use App\Http\Utils\Pdd\DuoDuoKeUtil;
 use App\Http\Utils\WechatAccountUtil;
 use App\Models\CategoryModel;
+use App\Models\UserFinanceModel;
 use App\Models\UserModel;
 use App\Models\UserOrderCommissionModel;
 use App\Models\UserOrderModel;
+use Illuminate\Support\Facades\DB;
 
 class CronLogic extends BaseLogic
 {
@@ -380,7 +384,7 @@ class CronLogic extends BaseLogic
                                 'keyword1' => $order->created_at,
                                 'keyword2' => $tmpOrder->product_name,
                                 'keyword3' => $order->order_number,
-                                "remark"=>"您的订单已完成,感谢您的使用,3天后佣金将会结算到您的账户中点击详情跳转我的订单"
+                                "remark"=>"感谢您的使用,每月20号结算上个月的佣金,将会结算到您的账户中点击详情跳转我的订单"
                             ],
                         ];
                         $res = $app->template_message->send($data);
@@ -417,11 +421,11 @@ class CronLogic extends BaseLogic
                         'template_id' => env("WECHAT_COMPLETE_ORDER_TEMPLATE_URL"),
                         'url' => env("WECHAT_BALANCE_URL"),
                         'data' => [
-                            'first' => "您的佣金已结算完成",
+                            'first' => "订单:[".$tmpOrder["order_number"]."]佣金已结算完成",
                             'keyword1' => round($order->order_commission/100,2)."元",
                             'keyword2' => round($tmpOrder->order_price/100,2)."元",
                             'keyword3' => $order->updated_at,
-                            "remark"=>"三日前订单佣金已结算完成,感谢您的使用,点击详情跳转我的账户"
+                            "remark"=>"订单佣金已结算完成,感谢您的使用,点击详情跳转我的账户"
                         ],
                     ];
                     $res = $app->template_message->send($data);
@@ -443,7 +447,68 @@ class CronLogic extends BaseLogic
      */
     public static function settlementOrderCommissionLogic()
     {
-
+        //获取上个月的开始结束时间
+        $startTime = date("Y-m-d",strtotime("-1 month"))." 00:00:00";
+        $endTime = date("Y-m-d")." 00:00:00";
+        //获取上个月未结算的订单且未退款
+        UserOrderCommissionModel::query()
+            ->where("commission_status",0)
+            ->where("order_commission",">",0)
+            ->where("user_id","<>",0)
+            ->where("order_complete_notify_status",0)
+            ->chunk(100,function ($orderCommissions){
+                foreach ($orderCommissions as $orderCommission){
+                    try{
+                        //开启事务
+                        DB::beginTransaction();
+                        //1.修改用户的余额
+                        $user = UserModel::query()->lock(true)->find($orderCommission["user_id"]);
+                        if($user){
+                            $userRes = UserModel::query()
+                                ->where("id",$orderCommission["user_id"])
+                                ->increment("user_balance",$orderCommission["order_commission"]);
+                            if(!$userRes){
+                                DB::rollBack();
+                                throw new CommonException(ErrorEnum::ERROR_SYSTEM);
+                            }
+                            //2.添加用户流水记录
+                            $logRes = UserFinanceModel::query()
+                                ->insert(
+                                    [
+                                        "user_id"=>$userRes["id"],
+                                        "order_number"=>$orderCommission["order_number"],
+                                        "user_before_balance"=>$user["user_balance"],
+                                        "user_after_balance"=>$orderCommission["order_commission"]+$user["user_balance"],
+                                        "finance_balance"=>$orderCommission["order_commission"],
+                                        "finance_remark"=>"订单佣金结算",
+                                        "finance_type"=>1,
+                                        "finance_number"=>uniqid("fbt-"),
+                                        "created_at"=>date("Y-m-d H:i:s"),
+                                        "updated_at"=>date("Y-m-d H:i:s")
+                                    ]
+                                );
+                            if(!$logRes){
+                                DB::rollBack();
+                                throw new CommonException(ErrorEnum::ERROR_SYSTEM);
+                            }
+                            //3.修改佣金记录为已结算
+                            $commissionRes = UserOrderCommissionModel::query()
+                                ->where("id",$orderCommission["id"])
+                                ->update(
+                                    [
+                                        "commission_status"=>1,
+                                        "updated_at"=>date("Y-m-d H:i:s")
+                                    ]
+                                );
+                            if(!$commissionRes){
+                                DB::rollBack();
+                                throw new CommonException(ErrorEnum::ERROR_SYSTEM);
+                            }
+                            DB::commit();
+                        }
+                    }catch (\Throwable $exception){}
+                }
+            });
     }
 
 }

+ 12 - 10
app/Http/Logic/Home/HomeLogic.php

@@ -104,22 +104,24 @@ class HomeLogic extends BaseLogic
     {
         $instance = new LoggerFactoryUtil(HomeLogic::class);
 
-        //获取活动
-        $act = CategoryModel::query()->find($actId);
-        if(!$act){
-            return env("INDEX_BASE_URL");
-        }
-
         $linkUrl = env("INDEX_BASE_URL");
 
-        $instance->info("基础地址:".$linkUrl);
-
         $data = [
             "type"=>1,
             "url"=>$linkUrl,
             "app_id"=>"",
             "page_path"=>""
         ];
+        //获取活动
+        $act = CategoryModel::query()->find($actId);
+        if(!$act){
+            return $data;
+        }
+
+
+        $instance->info("基础地址:".$linkUrl);
+
+
 
         try{
             //获取用户
@@ -216,7 +218,7 @@ class HomeLogic extends BaseLogic
                     $data = [
                         "type"=>1,
                         "url"=>$res["h5"],
-                        "app_id"=>$res["we_app_info"]["app_id"]??"",
+                        "app_id"=>$act["app_id"]??"",
                         "page_path"=>$res["we_app_info"]["page_path"]??""
                     ];
                     break;
@@ -224,7 +226,7 @@ class HomeLogic extends BaseLogic
                     $data = [
                         "type"=>2,
                         "url"=>$res["h5"],
-                        "app_id"=>$res["we_app_info"]["app_id"]??"",
+                        "app_id"=>$act["app_id"]??"",
                         "page_path"=>$res["we_app_info"]["page_path"]??""
                     ];
                     break;

+ 0 - 1
routes/api.php

@@ -87,7 +87,6 @@ Route::prefix("home")->namespace("Home")->middleware(["checkAuth"])->group(funct
     Route::get("list","HomeController@getHomeList");
     //返钱赚钱接口
     Route::get("commission/list","HomeController@getCommissionList");
-
 });