|
@@ -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){}
|
|
|
+ }
|
|
|
+ });
|
|
|
}
|
|
|
|
|
|
}
|