From e57077ebe81e5b0943875607707547ced6273cf8 Mon Sep 17 00:00:00 2001 From: yaooo <272523191@qq.com> Date: Tue, 26 Dec 2023 11:16:47 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E4=BE=9B=E5=BA=94=E5=95=86?= =?UTF-8?q?=E6=A8=A1=E5=9D=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/adminapi/lists/supplier/SupplierLists.php | 27 ++-- app/adminapi/logic/supplier/SupplierLogic.php | 117 +++++++++--------- app/common/model/supplier/Supplier.php | 21 ++++ 3 files changed, 100 insertions(+), 65 deletions(-) diff --git a/app/adminapi/lists/supplier/SupplierLists.php b/app/adminapi/lists/supplier/SupplierLists.php index 4edf7fd25..15a89ec2a 100644 --- a/app/adminapi/lists/supplier/SupplierLists.php +++ b/app/adminapi/lists/supplier/SupplierLists.php @@ -15,10 +15,10 @@ namespace app\adminapi\lists\supplier; -use app\adminapi\lists\BaseAdminDataLists; +use app\adminapi\lists\BaseAdminDataLists; use app\common\model\supplier\Supplier; use app\common\lists\ListsSearchInterface; - +use think\facade\Db; /** * Supplier列表 @@ -38,7 +38,7 @@ class SupplierLists extends BaseAdminDataLists implements ListsSearchInterface public function setSearch(): array { return [ - '=' => ['org_id', 'dept_id', 'supplier_code', 'supplier_name', 'group_id', 'category_id', 'grade'], + '=' => ['s.org_id', 's.dept_id', 's.supplier_code', 's.supplier_name', 's.group_id', 's.category_id', 's.grade'], ]; } @@ -54,11 +54,18 @@ class SupplierLists extends BaseAdminDataLists implements ListsSearchInterface */ public function lists(): array { - return Supplier::where($this->searchWhere) - ->field(['id', 'create_user_id', 'org_id', 'dept_id', 'supplier_code', 'supplier_name', 'supplier_introduction', 'brand_category', 'photos', 'group_id', 'category_id', 'grade', 'contacts', 'contacts_sex', 'birthday', 'phone', 'email', 'address', 'remark', 'annex', 'invoice_company_name', 'taxpayer identification_number', 'bank_name', 'bank_accnout_name', 'bank_account', 'bank_address', 'init_invoice_amount', 'credit_limit', 'account_period']) + return Db::name('Supplier')->alias('s') + ->where($this->searchWhere) + ->whereNull('s.delete_time') + ->leftJoin('orgs o','o.id = s.org_id') + ->leftJoin('dept d','d.id = s.dept_id') + ->field('s.*, d.name as dept_name, o.name as org_name') ->limit($this->limitOffset, $this->limitLength) - ->order(['id' => 'desc']) - ->select() + ->order(['s.id' => 'desc']) + ->select()->each(function($item, $key){ + //关联数据后续添加 + return $item; + }) ->toArray(); } @@ -71,7 +78,11 @@ class SupplierLists extends BaseAdminDataLists implements ListsSearchInterface */ public function count(): int { - return Supplier::where($this->searchWhere)->count(); + return Db::name('Supplier')->alias('s') + ->where($this->searchWhere) + ->whereNull('s.delete_time') + ->leftJoin('orgs o','o.id = s.org_id') + ->leftJoin('dept d','d.id = s.dept_id')->count(); } } \ No newline at end of file diff --git a/app/adminapi/logic/supplier/SupplierLogic.php b/app/adminapi/logic/supplier/SupplierLogic.php index 337751ffb..e18f822f8 100644 --- a/app/adminapi/logic/supplier/SupplierLogic.php +++ b/app/adminapi/logic/supplier/SupplierLogic.php @@ -41,34 +41,34 @@ class SupplierLogic extends BaseLogic Db::startTrans(); try { Supplier::create([ - 'create_user_id' => $params['create_user_id'], - 'org_id' => $params['org_id'], - 'dept_id' => $params['dept_id'], - 'supplier_code' => $params['supplier_code'], - 'supplier_name' => $params['supplier_name'], - 'supplier_introduction' => $params['supplier_introduction'], - 'brand_category' => $params['brand_category'], - 'photos' => $params['photos'], - 'group_id' => $params['group_id'], - 'category_id' => $params['category_id'], - 'grade' => $params['grade'], - 'contacts' => $params['contacts'], - 'contacts_sex' => $params['contacts_sex'], - 'birthday' => $params['birthday'], - 'phone' => $params['phone'], - 'email' => $params['email'], - 'address' => $params['address'], - 'remark' => $params['remark'], - 'annex' => $params['annex'], - 'invoice_company_name' => $params['invoice_company_name'], - 'taxpayer identification_number' => $params['taxpayer identification_number'], - 'bank_name' => $params['bank_name'], - 'bank_accnout_name' => $params['bank_accnout_name'], - 'bank_account' => $params['bank_account'], - 'bank_address' => $params['bank_address'], - 'init_invoice_amount' => $params['init_invoice_amount'], - 'credit_limit' => $params['credit_limit'], - 'account_period' => $params['account_period'], + 'create_user_id' => $params['create_user_id'] ?? 0, + 'org_id' => $params['org_id'] ?? 0, + 'dept_id' => $params['dept_id'] ?? 0, + 'supplier_code' => $params['supplier_code'] ?? '', + 'supplier_name' => $params['supplier_name'] ?? '', + 'supplier_introduction' => $params['supplier_introduction'] ?? '', + 'brand_category' => $params['brand_category'] ?? 0, + 'photos' => $params['photos'] ?? '', + 'group_id' => $params['group_id'] ?? 0, + 'category_id' => $params['category_id'] ?? 0, + 'grade' => $params['grade'] ?? 0, + 'contacts' => $params['contacts'] ?? '', + 'contacts_sex' => $params['contacts_sex'] ?? 0, + 'birthday' => $params['birthday'] ?? '', + 'phone' => $params['phone'] ?? '', + 'email' => $params['email'] ?? '', + 'address' => $params['address'] ?? '', + 'remark' => $params['remark'] ?? '', + 'annex' => $params['annex'] ?? '', + 'invoice_company_name' => $params['invoice_company_name'] ?? '', + 'taxpayer identification_number' => $params['taxpayer identification_number'] ?? '', + 'bank_name' => $params['bank_name'] ?? '', + 'bank_accnout_name' => $params['bank_accnout_name'] ?? '', + 'bank_account' => $params['bank_account'] ?? '', + 'bank_address' => $params['bank_address'] ?? '', + 'init_invoice_amount' => $params['init_invoice_amount'] ?? 0, + 'credit_limit' => $params['credit_limit'] ?? 0, + 'account_period' => $params['account_period'] ?? 0, ]); Db::commit(); @@ -93,34 +93,34 @@ class SupplierLogic extends BaseLogic Db::startTrans(); try { Supplier::where('id', $params['id'])->update([ - 'create_user_id' => $params['create_user_id'], - 'org_id' => $params['org_id'], - 'dept_id' => $params['dept_id'], - 'supplier_code' => $params['supplier_code'], - 'supplier_name' => $params['supplier_name'], - 'supplier_introduction' => $params['supplier_introduction'], - 'brand_category' => $params['brand_category'], - 'photos' => $params['photos'], - 'group_id' => $params['group_id'], - 'category_id' => $params['category_id'], - 'grade' => $params['grade'], - 'contacts' => $params['contacts'], - 'contacts_sex' => $params['contacts_sex'], - 'birthday' => $params['birthday'], - 'phone' => $params['phone'], - 'email' => $params['email'], - 'address' => $params['address'], - 'remark' => $params['remark'], - 'annex' => $params['annex'], - 'invoice_company_name' => $params['invoice_company_name'], - 'taxpayer identification_number' => $params['taxpayer identification_number'], - 'bank_name' => $params['bank_name'], - 'bank_accnout_name' => $params['bank_accnout_name'], - 'bank_account' => $params['bank_account'], - 'bank_address' => $params['bank_address'], - 'init_invoice_amount' => $params['init_invoice_amount'], - 'credit_limit' => $params['credit_limit'], - 'account_period' => $params['account_period'], + 'create_user_id' => $params['create_user_id'] ?? 0, + 'org_id' => $params['org_id'] ?? 0, + 'dept_id' => $params['dept_id'] ?? 0, + 'supplier_code' => $params['supplier_code'] ?? '', + 'supplier_name' => $params['supplier_name'] ?? '', + 'supplier_introduction' => $params['supplier_introduction'] ?? '', + 'brand_category' => $params['brand_category'] ?? 0, + 'photos' => $params['photos'] ?? '', + 'group_id' => $params['group_id'] ?? 0, + 'category_id' => $params['category_id'] ?? 0, + 'grade' => $params['grade'] ?? 0, + 'contacts' => $params['contacts'] ?? '', + 'contacts_sex' => $params['contacts_sex'] ?? 0, + 'birthday' => $params['birthday'] ?? '', + 'phone' => $params['phone'] ?? '', + 'email' => $params['email'] ?? '', + 'address' => $params['address'] ?? '', + 'remark' => $params['remark'] ?? '', + 'annex' => $params['annex'] ?? '', + 'invoice_company_name' => $params['invoice_company_name'] ?? '', + 'taxpayer identification_number' => $params['taxpayer identification_number'] ?? '', + 'bank_name' => $params['bank_name'] ?? '', + 'bank_accnout_name' => $params['bank_accnout_name'] ?? '', + 'bank_account' => $params['bank_account'] ?? '', + 'bank_address' => $params['bank_address'] ?? '', + 'init_invoice_amount' => $params['init_invoice_amount'] ?? 0, + 'credit_limit' => $params['credit_limit'] ?? 0, + 'account_period' => $params['account_period'] ?? 0, ]); Db::commit(); @@ -155,6 +155,9 @@ class SupplierLogic extends BaseLogic */ public static function detail($params): array { - return Supplier::findOrEmpty($params['id'])->toArray(); + $supplier = Supplier::findOrEmpty($params['id']); + $supplier->org; + $supplier->dept; + return $supplier->toArray(); } } \ No newline at end of file diff --git a/app/common/model/supplier/Supplier.php b/app/common/model/supplier/Supplier.php index f1b8cc028..b52ec21a4 100644 --- a/app/common/model/supplier/Supplier.php +++ b/app/common/model/supplier/Supplier.php @@ -30,5 +30,26 @@ class Supplier extends BaseModel protected $name = 'supplier'; protected $deleteTime = 'delete_time'; + /** + * @notes 关联org + * @return \think\model\relation\HasOne + * @author likeadmin + * @date 2023/12/19 15:18 + */ + public function org() + { + return $this->hasOne(\app\common\model\dept\Orgs::class, 'id', 'org_id'); + } + + /** + * @notes 关联dept + * @return \think\model\relation\HasOne + * @author likeadmin + * @date 2023/12/19 15:18 + */ + public function dept() + { + return $this->hasOne(\app\common\model\dept\Dept::class, 'id', 'dept_id'); + } } \ No newline at end of file