AccountGo 项目分析报告
界面截屏
一、项目概述
- 项目名称: AccountGo
- 项目类型: 企业级财务管理/会计系统 (SaaS)
- 技术栈: Laravel 11 + PHP 8.2 + MySQL
- 架构模式: MVC + 模块化设计
AccountGo 是一个功能完整的企业财务管理系统,提供发票管理、账单管理、客户/供应商管理、会计记账、报表分析等核心功能。系统采用多租户架构,支持多公司/多用户管理。
二、系统架构
2.1 目录结构
accountgosaas-80/
├── app/
│ ├── Http/Controllers/ # 控制器层 (70+ 控制器)
│ ├── Models/ # 模型层 (50+ 模型)
│ ├── Mail/ # 邮件类
│ └── ...
├── Modules/
│ └── LandingPage/ # 模块化: 落地页管理
├── database/
│ ├── migrations/ # 76个迁移文件
│ └── seeders/ # 数据填充器
├── resources/views/ # 视图层 (Blade模板)
├── routes/
│ ├── web.php # Web路由
│ ├── api.php # API路由
│ └── auth.php # 认证路由
├── storage/uploads/ # 上传文件存储
└── vendor/ # Composer依赖
2.2 核心技术组件
-
框架: Laravel 11 (PHP 8.2)
-
数据库: MySQL + Eloquent ORM
-
权限管理: Spatie Laravel Permission
-
前端: Blade + Tailwind CSS + Vite
-
支付集成: Stripe, PayPal, Razorpay, Flutterwave 等30+支付网关
-
导出: Maatwebsite Excel
-
缓存: 文件缓存
-
队列: 同步队列
三、核心功能模块
3.1 销售管理模块
功能: 发票管理、提案管理、预付款管理
核心控制器:
-
InvoiceController(57KB) – 发票CRUD、发票支付、发票导出 -
ProposalController(38KB) – 提案/报价单管理 -
RetainerController(52KB) – 预付款管理 -
CreditNoteController– 贷项通知单
核心模型:
-
Invoice– 发票主表,关联客户、产品、支付 -
InvoiceProduct– 发票明细项 -
InvoicePayment– 发票支付记录 -
Proposal– 提案/报价 -
Retainer– 预付款
业务流程:
-
创建发票 → 添加产品/服务 → 发送给客户 → 客户支付 → 标记为已付 -
发票状态流转: Draft → Sent → Unpaid → Partially Paid → Paid -
支持发票PDF导出、邮件发送、在线支付
3.2 采购管理模块
功能: 账单管理、供应商管理、借项通知单
核心控制器:
-
BillController(64KB) – 账单管理 -
VenderController(24KB) – 供应商管理 -
DebitNoteController– 借项通知单
核心模型:
-
Bill– 账单主表 -
BillProduct– 账单明细 -
BillPayment– 账单支付 -
Vender– 供应商信息
3.3 客户与供应商管理
核心控制器:
-
CustomerController(25KB) – 客户管理 -
VenderController(24KB) – 供应商管理
核心模型:
-
Customer(9.5KB) – 客户模型,包含客户余额计算、交易历史 -
Vender(8.7KB) – 供应商模型
功能:
-
客户/供应商CRUD -
交易历史追踪 -
余额计算 -
登录权限管理
3.4 产品与服务管理
核心控制器:
-
ProductServiceController(17KB) – 产品服务管理 -
ProductServiceCategoryController(11KB) – 分类管理 -
ProductServiceUnitController– 单位管理 -
ProductStockController– 库存管理
核心模型:
-
ProductService– 产品/服务主表 -
ProductServiceCategory– 分类 (收入/支出类型) -
ProductServiceUnit– 计量单位 -
StockReport– 库存报告
3.5 会计与财务管理
核心控制器:
-
ChartOfAccountController– 会计科目表 -
ChartOfAccountTypeController– 科目类型 -
JournalEntryController– 日记账 -
BudgetController(27KB) – 预算管理
核心模型:
-
ChartOfAccount– 会计科目 -
ChartOfAccountType– 科目类型 (资产、负债、权益、收入、支出) -
JournalEntry– 日记账分录 -
JournalItem– 日记账明细 -
Budget– 预算
会计特性:
-
支持复式记账 -
会计科目层级结构 -
日记账自动分录 -
预算编制与跟踪
3.6 银行与支付管理
核心控制器:
-
BankAccountController– 银行账户 -
BankTransferController(10KB) – 银行转账 -
TransactionController– 交易记录 -
TransferController– 资金调拨
核心模型:
-
BankAccount– 银行账户 -
BankTransfer– 银行转账 -
Transaction– 交易记录 -
Transfer– 资金调拨
3.7 收入与支出管理
核心控制器:
-
RevenueController(14KB) – 收入管理 -
PaymentController(21KB) – 支出/付款管理 -
ExpenseController(7KB) – 费用管理
核心模型:
-
Revenue– 收入记录 -
Payment– 付款记录 -
Expense– 费用记录
3.8 报表与分析
核心控制器:
-
ReportController(168KB) – 报表中心
报表类型:
-
收入汇总报表 (Income Summary) -
支出汇总报表 (Expense Summary) -
损益表 (Profit & Loss) -
资产负债表 (Balance Sheet) -
试算平衡表 (Trial Balance) -
账户对账单 (Account Statement) -
库存报告 (Stock Report) -
交易报告 (Transaction Report)
3.9 合同管理
核心控制器:
-
ContractController(21KB) – 合同管理 -
ContractTypeController– 合同类型
核心模型:
-
Contract– 合同主表 -
ContractAttachment– 合同附件 -
ContractNote– 合同备注 -
ContractComment– 合同评论
3.10 支付网关集成
支持的支付方式 (30+ 网关):
国际支付:
-
Stripe, PayPal, Razorpay, Flutterwave -
Mollie, Skrill, Coingate, Paytm -
Authorize.net, Paystack, MercadoPago -
Xendit, YooKassa, Iyzipay, Midtrans
地区支付:
-
PayTR (土耳其) -
Aamarpay (孟加拉) -
Toyyibpay (马来西亚) -
Benefit (巴林) -
Cashfree (印度) -
Khalti (尼泊尔) -
PayHere (斯里兰卡)
核心控制器示例:
-
StripePaymentController(26KB) -
PaypalController -
RazorpayPaymentController(14KB) -
FlutterwavePaymentController(15KB)
3.11 系统管理
核心控制器:
-
SystemController(53KB) – 系统设置、邮件配置、Cookie设置 -
UserController(14KB) – 用户管理 -
RoleController– 角色管理 -
PermissionController– 权限管理 -
EmailTemplateController(8KB) – 邮件模板
功能:
-
公司设置 -
邮件配置 -
语言管理 -
货币设置 -
税务设置 -
自定义字段
3.12 模块化: LandingPage
路径: Modules/LandingPage/
功能: 前台落地页管理
-
页面内容管理 -
SEO设置 -
多语言支持
四、核心业务逻辑
4.1 多租户架构
实现方式:
// User模型中的creatorId方法
public function creatorId()
{
if ($this->type == 'company' || $this->type == 'super admin') {
return $this->id;
} else {
return $this->created_by;
}
}
所有数据查询都基于 created_by 字段进行隔离,实现多公司数据隔离。
4.2 发票计算逻辑
// Invoice模型
public function getSubTotal()
{
$subTotal = 0;
foreach ($this->items as $product) {
$subTotal += ($product->price * $product->quantity);
}
return $subTotal;
}
public function getTotalTax()
{
$totalTax = 0;
foreach($this->items as $product) {
$taxes = Utility::totalTaxRate($product->tax);
$totalTax += ($taxes / 100) * ($product->price * $product->quantity - $product->discount);
}
return $totalTax;
}
public function getTotal()
{
return ($this->getSubTotal() - $this->getTotalDiscount()) + $this->getTotalTax();
}
4.3 权限控制系统
使用 Spatie Laravel Permission:
-
角色: company, accountant, client 等 -
权限: manage invoice, create invoice, edit invoice 等 -
中间件:
can:manage invoice
4.4 编号生成逻辑
// User模型中的编号格式化
public function invoiceNumberFormat($number)
{
$settings = Utility::settings();
return $settings["invoice_prefix"] . sprintf("%05d", $number);
}
支持自定义前缀和数字位数。
4.5 支付流程
-
客户点击支付链接 -
选择支付方式 -
跳转到第三方支付网关 -
支付成功后回调 -
创建支付记录 -
更新发票状态 -
发送邮件通知
五、数据库设计
5.1 核心数据表 (76个表)
用户与权限:
-
users, roles, permissions, model_has_roles, role_has_permissions
CRM相关:
-
customers, venders
产品服务:
-
product_services, product_service_categories, product_service_units
销售:
-
invoices, invoice_products, invoice_payments, proposals, proposal_products -
retainers, retainer_products, retainer_payments, credit_notes
采购:
-
bills, bill_products, bill_payments, debit_notes
会计:
-
chart_of_accounts, chart_of_account_types, chart_of_account_sub_types -
journal_entries, journal_items, transaction_lines -
budgets
银行:
-
bank_accounts, bank_transfers, transfers
收支:
-
revenues, payments, expenses
合同:
-
contracts, contract_attachments, contract_notes, contract_comments, contract_types
系统:
-
settings, taxes, custom_fields, custom_field_values -
email_templates, notification_templates, languages -
login_details, webhooks
5.2 关键字段设计
created_by: 实现多租户数据隔离 delete_status: 软删除标记 is_active: 启用/禁用状态
六、技术特点
6.1 优势
-
功能完整: 覆盖财务管理的全流程
-
多支付网关: 支持30+国际和本地支付方式
-
多租户: 支持多公司/多用户使用
-
模块化: 易于扩展和维护
-
报表丰富: 提供多种财务报表
-
权限精细: 基于角色的权限控制
6.2 核心代码质量
-
代码结构清晰,遵循MVC模式 -
使用Eloquent ORM,查询简洁 -
大量使用作用域和访问器 -
服务类封装业务逻辑
6.3 安全特性
-
CSRF保护 -
XSS过滤中间件 -
SQL注入防护 (参数化查询) -
权限验证中间件
七、总结
AccountGo 是一个功能完善、架构清晰的企业级财务管理系统。它采用现代化的Laravel框架,实现了:
-
完整的进销存管理 -
专业的会计记账功能 -
丰富的财务报表 -
全球化的支付支持 -
灵活的权限控制
系统适合中小型企业作为内部财务管理工具,也可作为SaaS平台提供给多个企业使用。
看完不过瘾,那就自己发一篇吧!













![表情[haobang]-寻找资源网](http://www.seekresource.com/wp-content/themes/zibll/img/smilies/haobang.gif)
![表情[shuai]-寻找资源网](http://www.seekresource.com/wp-content/themes/zibll/img/smilies/shuai.gif)
![表情[deyi]-寻找资源网](http://www.seekresource.com/wp-content/themes/zibll/img/smilies/deyi.gif)
![表情[chi]-寻找资源网](http://www.seekresource.com/wp-content/themes/zibll/img/smilies/chi.gif)



暂无评论内容