超过24小时邮件通知提交入账资料

This commit is contained in:
2025-10-29 18:05:23 +08:00
parent cf45acbf0f
commit 346d67c084
5 changed files with 149 additions and 5 deletions
+1 -1
View File
@@ -40,7 +40,7 @@ class FinPaymentApply extends Model
/** /**
* 允许自动填充模型字段 * 允许自动填充模型字段
*/ */
protected $fillable = ['id', 'apply_no', 'doc_user_id', 'sales_user_id', 'corp_id', 'account_id', 'payment_account', 'payment_entity', 'entity_type', 'currency_id', 'amount', 'swift', 'remit_bank', 'country_id', 'remitter', 'exchange_rate', 'total_amount_cny', 'voucher_file', 'voucher_name', 'submit_files','receipt_id','claimed_at', 'created_at', 'updated_at']; protected $fillable = ['id', 'apply_no', 'doc_user_id', 'sales_user_id', 'corp_id', 'account_id', 'payment_account', 'payment_entity', 'entity_type', 'currency_id', 'amount', 'swift', 'remit_bank', 'country_id', 'remitter', 'exchange_rate', 'total_amount_cny', 'voucher_file', 'voucher_name', 'submit_files','receipt_id','claimed_at','warn', 'created_at', 'updated_at', 'claimed_by',];
/** /**
* 不允许自动填充模型字段 * 不允许自动填充模型字段
+1 -1
View File
@@ -291,7 +291,7 @@ class FinReceiptService
$id = $request->input('id'); $id = $request->input('id');
$data = $this->preProcess(ucfirst($scene), $data, $request); $data = $this->preProcess(ucfirst($scene), $data, $request);
$config = $this->buildQueryConfig($request, $scene); $config = $this->buildQueryConfig($request, $scene);
FinPaymentApply::where('id', $payment_apply_id)->update(['receipt_id' => $id, 'claimed_at' => time()]); FinPaymentApply::where('id', $payment_apply_id)->update(['receipt_id' => $id, 'claimed_at' => time(), 'claimed_by' => $request->user->uid]);
//折让金额 //折让金额
$payment = FinPaymentApply::where('id', $payment_apply_id)->first(); $payment = FinPaymentApply::where('id', $payment_apply_id)->first();
@@ -0,0 +1,103 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>邮箱提醒</title>
<style type="text/css">
body {
font-family: Arial, sans-serif;
line-height: 1.6;
color: #333333;
margin: 0;
padding: 0;
background-color: #f5f5f5;
}
.email-container {
max-width: 600px;
margin: 0 auto;
background-color: #ffffff;
}
.header {
padding: 20px;
background-color: #0056b3;
color: white;
text-align: center;
}
.content {
padding: 20px;
}
.button {
display: inline-block;
padding: 10px 20px;
background-color: #0056b3;
color: white !important;
text-decoration: none;
border-radius: 4px;
font-weight: bold;
margin: 10px 0;
}
.footer {
padding: 15px;
text-align: center;
font-size: 12px;
color: #777777;
background-color: #f0f0f0;
}
@media only screen and (max-width: 480px) {
.email-container {
width: 100%;
}
.button {
display: block;
text-align: center;
}
}
</style>
</head>
<body>
<!--[if mso]>
<style type="text/css">
.button {
background-color: #0056b3 !important;
color: white !important;
}
</style>
<![endif]-->
<table class="email-container" width="100%" cellspacing="0" cellpadding="0" border="0" align="center">
<tr>
<td class="header">
<h1>付款单提醒</h1>
</td>
</tr>
<tr>
<td class="content">
<p>您好,</p>
<p>您有新的付款单待处理。请及时查看:</p>
<ul>
<li>付款单编号:{{code}}</li>
<li>付款主体:{{payment_entity}}</li>
<li>问题描述:{{content}}</li>
{{reply}}
</ul>
<p>请点击下方按钮立即查看详情:</p>
<div style="text-align: center;">
<a href="https://x.hnxinyouhe.com" class="button" style="color: white; text-decoration: none;">立即查看</a>
</div>
<!--<p>如果您未请求此操作,请忽略此邮件或联系我们的客服团队。</p>-->
</td>
</tr>
<tr>
<td class="footer">
<p>© 2025 河南新友合科技有限公司. 保留所有权利。</p>
<p>这是系统自动发送的邮件,请勿直接回复。</p>
</td>
</tr>
</table>
</body>
</html>
+2 -1
View File
@@ -179,7 +179,8 @@ if (!function_exists('tplUrl')) {
{ {
$urlArray = [ $urlArray = [
'email' => 'common/utils/scaffold/templates/Email.stub', 'email' => 'common/utils/scaffold/templates/Email.stub',
'work_order' => 'common/utils/scaffold/templates/workOrder.stub' 'work_order' => 'common/utils/scaffold/templates/workOrder.stub',
'payment_files' => 'common/utils/scaffold/templates/paymentFiles.stub',
]; ];
return $urlArray[$tplKey]; return $urlArray[$tplKey];
} }
+42 -2
View File
@@ -2,6 +2,8 @@
namespace app\process; namespace app\process;
use app\common\model\FinPaymentApply;
use app\common\model\User;
use app\crm\model\Customer; use app\crm\model\Customer;
use support\Log; use support\Log;
use Workerman\Crontab\Crontab; use Workerman\Crontab\Crontab;
@@ -11,7 +13,7 @@ class Task
public function onWorkerStart() public function onWorkerStart()
{ {
// 每半小时执行一次 // 每半小时执行一次,通知待跟进客户
new Crontab('0 */30 * * * *', function(){ new Crontab('0 */30 * * * *', function(){
echo date('Y-m-d H:i:s') . "\n"; echo date('Y-m-d H:i:s') . "\n";
Log::info('send follow start',[time()]); Log::info('send follow start',[time()]);
@@ -34,7 +36,45 @@ class Task
$item->save(); $item->save();
} }
Log::info('send follow start',[time()]); Log::info('send follow end',[time()]);
});
// 检查入账资料是否提交
new Crontab('* */70 * * * *', function () {
$G = date('G');
if ($G > 22 || $G < 8) {
return;
}
Log::info('fin_payment_apply submit_files start', [time()]);
$orWhere = [
['submit_files', '=', '[]'],
['submit_files', '=', ''],
];
$where = [
['warn', '<', 2],
['created_at', '>', time() - 60 * 60 * 48],
['created_at', '<', time() - 60 * 60 * 24],
];
$payment = FinPaymentApply::where($where)->orWhere($orWhere)->orderBy('id', 'desc')->get();
foreach ($payment as $item) {
Log::info('fin_payment_apply submit_files ', [$item->toArray()]);
$notice = [
'code' => $item->apply_no,
'payment_entity' => $item->payment_entity ?? $item->remitter,
'content' => '认领收款单后请在24小时内提交入账资料',
'reply' => '',
];
$email = [];
$email[] = User::where('id', $item->claimed_by)->value('email');
$email[] = User::where('id', $item->doc_user_id)->value('email');
$email = array_unique($email);
\app\common\utils\email\MailSend::send($email, '【XYH】付款记录', replaceTpl($notice, 'payment_files'));
$item->warn = ++$item->warn;
$item->save();
}
Log::info('fin_payment_apply submit_files end', [time()]);
}); });
} }