Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
Z
zptz-sass-kelaidian
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
李大见
zptz-sass-kelaidian
Commits
be049fe2
提交
be049fe2
authored
11月 05, 2026
作者:
窦斌
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
edit
上级
e9ce935a
显示空白字符变更
内嵌
并排
正在显示
2 个修改的文件
包含
153 行增加
和
0 行删除
+153
-0
CalculateOrderPrice.php
app/Console/Commands/CalculateOrderPrice.php
+152
-0
Kernel.php
app/Console/Kernel.php
+1
-0
没有找到文件。
app/Console/Commands/CalculateOrderPrice.php
0 → 100644
浏览文件 @
be049fe2
<?php
namespace
App\Console\Commands
;
use
App\Models\RechargeOrder
;
use
App\Services\CommonService
;
use
Illuminate\Console\Command
;
use
DB
;
class
CalculateOrderPrice
extends
Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
protected
$signature
=
'CalculateOrderPrice'
;
/**
* The console command description.
*
* @var string
*/
protected
$description
=
'十日生成账单'
;
/**
* Create a new command instance.
*
* @return void
*/
public
function
__construct
()
{
parent
::
__construct
();
}
/**
* Execute the console command.
*
* @return mixed
*/
public
function
handle
()
{
$company_id
=
[
14
];
$start_time
=
date
(
"Y-m-01"
,
strtotime
(
'-1 month'
));
$end_time
=
date
(
"Y-m-01"
,
time
());
foreach
(
$company_id
as
$k
=>
$v
){
try
{
//获取取消的订单信息
$order1
=
RechargeOrder
::
where
(
'reo_company_id'
,
$v
)
->
where
(
'reo_sg'
,
1
)
//是否已经上图1否2是
->
where
(
'reo_type'
,
2
)
//类型1充值2扣费
->
where
(
'reo_refund'
,
1
)
//退费类型1未退费2取消退费3阶梯退费
->
whereBetween
(
'reo_create_time'
,
[
$start_time
,
$end_time
])
->
leftjoin
(
'orders'
,
'orders.order_num'
,
'='
,
'recharge_order.reo_order_number'
)
->
whereIn
(
'order_status'
,
[
50
,
55
])
->
select
(
'order_num'
)
->
get
();
$order1
=
CommonService
::
dataToArray
(
$order1
);
$xct_num
=
array_column
(
$order1
,
'order_num'
);
//计算退款金额
$cxt
=
0.5
*
count
(
$order1
);
$cxtk
[
'reo_adm_id'
]
=
164
;
$cxtk
[
'reo_company_id'
]
=
$v
;
//公司id
$cxtk
[
'reo_order_number'
]
=
'TKC'
.
CommonService
::
creactNumber
();
$cxtk
[
'reo_price'
]
=
$cxt
;
$cxtk
[
'reo_pay_state'
]
=
2
;
$cxtk
[
'reo_state'
]
=
1
;
$cxtk
[
'reo_create_time'
]
=
date
(
"Y-m-d H:i:s"
);
$cxtk
[
'reo_pay_time'
]
=
date
(
"Y-m-d H:i:s"
);
$cxtk
[
'reo_pay_way'
]
=
6
;
$cxtk
[
'reo_paid_money'
]
=
$cxt
;
$cxtk
[
'reo_pay_check'
]
=
1
;
$cxtk
[
'reo_type'
]
=
1
;
$cxtk
[
'reo_client_type'
]
=
3
;
$cxtk
[
'reo_remaek'
]
=
'取消订单退款'
;
DB
::
beginTransaction
();
//开启事务
//添加取消退款记录
$rea
=
RechargeOrder
::
insert
(
$cxtk
);
//更改已取消退款状态
$reb
=
RechargeOrder
::
whereIn
(
'reo_order_number'
,
$xct_num
)
->
update
([
'reo_refund'
=>
2
]);
//公司账号退款充值
$update_res
=
DB
::
table
(
'admin_recharge'
)
->
where
(
'adre_company_id'
,
$v
)
//公司id
->
increment
(
'adre_banlance'
,
$cxt
);
if
(
$rea
&&
$reb
&&
$update_res
)
{
DB
::
commit
();
$jttorder
=
RechargeOrder
::
where
(
'reo_company_id'
,
$v
)
->
where
(
'reo_type'
,
2
)
->
where
(
'reo_refund'
,
1
)
->
whereBetween
(
'reo_create_time'
,
[
$start_time
,
$end_time
])
->
select
(
'reo_id'
)
->
get
();
$jttorder
=
CommonService
::
dataToArray
(
$jttorder
);
$reo_id
=
array_column
(
$jttorder
,
'reo_id'
);
$jt_num
=
count
(
$jttorder
);
$price
=
DB
::
table
(
'recharge_refund'
)
->
where
(
'rer_company_id'
,
$v
)
->
where
(
'rer_min'
,
'<='
,
$jt_num
)
->
where
(
'rer_max'
,
'>='
,
$jt_num
)
->
value
(
'rer_price'
);
if
(
empty
(
$price
)){
$price
=
DB
::
table
(
'recharge_refund'
)
->
where
(
'rer_company_id'
,
0
)
->
where
(
'rer_min'
,
'<='
,
$jt_num
)
->
where
(
'rer_max'
,
'>='
,
$jt_num
)
->
value
(
'rer_price'
);
}
if
(
$price
<
0.5
){
$allprice
=
(
0.5
-
$price
);
$allprice
=
(
float
)
$allprice
;
$allprice
=
$allprice
*
$jt_num
;
$allprice
=
sprintf
(
"%.2f"
,
$allprice
);
// 保留2位小数
$cxtk
[
'reo_adm_id'
]
=
164
;
$cxtk
[
'reo_company_id'
]
=
$v
;
//公司id
$cxtk
[
'reo_order_number'
]
=
'TKJ'
.
CommonService
::
creactNumber
();
$cxtk
[
'reo_price'
]
=
$allprice
;
$cxtk
[
'reo_pay_state'
]
=
2
;
$cxtk
[
'reo_state'
]
=
1
;
$cxtk
[
'reo_create_time'
]
=
date
(
"Y-m-d H:i:s"
);
$cxtk
[
'reo_pay_time'
]
=
date
(
"Y-m-d H:i:s"
);
$cxtk
[
'reo_pay_way'
]
=
5
;
$cxtk
[
'reo_paid_money'
]
=
$allprice
;
$cxtk
[
'reo_pay_check'
]
=
1
;
$cxtk
[
'reo_type'
]
=
1
;
$cxtk
[
'reo_client_type'
]
=
3
;
$cxtk
[
'reo_remaek'
]
=
'阶梯价退款'
;
DB
::
beginTransaction
();
//开启事务
//添加阶梯价退款记录
$rec
=
RechargeOrder
::
insert
(
$cxtk
);
//更改已取消退款状态
$red
=
RechargeOrder
::
whereIn
(
'reo_id'
,
$reo_id
)
->
update
([
'reo_refund'
=>
3
,
'reo_paid_money'
=>
$price
]);
//公司账号退款充值
$update_rea
=
DB
::
table
(
'admin_recharge'
)
->
where
(
'adre_company_id'
,
$v
)
//公司id
->
increment
(
'adre_banlance'
,
$allprice
);
if
(
$rec
&&
$red
&&
$update_rea
)
{
DB
::
commit
();
}
else
{
DB
::
rollBack
();
continue
;
}
}
}
else
{
DB
::
rollBack
();
continue
;
}
CommonService
::
addLog
(
'操作完成'
,
json_encode
([
$cxt
,
$jt_num
,
$price
,
0.5
-
$price
,
$allprice
]),
$v
,
'CalculateOrderPrice'
);
}
catch
(
Exception
$e
)
{
DB
::
rollBack
();
continue
;
// 处理错误
}
}
echo
1
;
exit
;
}
}
app/Console/Kernel.php
浏览文件 @
be049fe2
...
...
@@ -51,6 +51,7 @@ class Kernel extends ConsoleKernel
$schedule
->
command
(
'GetJdPurchaseOrder'
)
->
everyFiveMinutes
();
//抓取京东供销平台订单 每五分钟执行一次
$schedule
->
command
(
'GetJdPurchaseRefund'
)
->
everyFiveMinutes
();
//抓取京东供销平台退款 每五分钟执行一次
$schedule
->
command
(
'UpdateBsnNum'
)
->
dailyAt
(
'00:03'
);
//每天0点三分执行一次
$schedule
->
command
(
'CalculateOrderPrice'
)
->
monthlyOn
(
10
,
'03:00'
);
//每月10号凌晨3点执行一次
}
/**
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论