TaskSystem/app/adminapi/logic/CompanyLogic.php

182 lines
6.4 KiB
PHP
Raw Normal View History

2023-07-15 14:46:25 +08:00
<?php
// +----------------------------------------------------------------------
// | likeadmin快速开发前后端分离管理后台PHP版
// +----------------------------------------------------------------------
// | 欢迎阅读学习系统程序代码,建议反馈是我们前进的动力
// | 开源版本可自由商用可去除界面版权logo
// | gitee下载https://gitee.com/likeshop_gitee/likeadmin
// | github下载https://github.com/likeshop-github/likeadmin
// | 访问官网https://www.likeadmin.cn
// | likeadmin团队 版权所有 拥有最终解释权
// +----------------------------------------------------------------------
// | author: likeadminTeam
// +----------------------------------------------------------------------
namespace app\adminapi\logic;
use app\common\model\Company;
use app\common\logic\BaseLogic;
use think\facade\Db;
/**
* Company逻辑
* Class CompanyLogic
* @package app\adminapi\logic
*/
class CompanyLogic extends BaseLogic
{
/**
* @notes 添加
* @param array $params
* @return bool
* @author likeadmin
* @date 2023/07/15 14:43
*/
public static function add(array $params): bool
{
Db::startTrans();
try {
2023-07-17 00:09:53 +08:00
$data=Company::create([
// 'level_two' => $params['level_two'],
// 'level_one' => $params['level_one'],
2023-07-15 14:46:25 +08:00
'company_name' => $params['company_name'],
'organization_code' => $params['organization_code'],
2023-07-17 00:09:53 +08:00
'province' => $params['province'],
2023-07-15 14:46:25 +08:00
'city' => $params['city'],
2023-07-15 15:45:54 +08:00
'area' => $params['area'],
'street' => $params['street'],
2023-07-17 00:09:53 +08:00
'address' => $params['address'],
2023-07-15 14:46:25 +08:00
'company_type' => $params['company_type'],
'master_name' => $params['master_name'],
'master_position' => $params['master_position'],
'master_phone' => $params['master_phone'],
'master_email' => $params['master_email'],
'other_contacts' => $params['other_contacts'],
2023-07-17 00:09:53 +08:00
// 'area_manager' => $params['area_manager'],
// 'is_contract' => $params['is_contract'],
// 'account' => $params['account'],
// 'password' => $params['password'],
// 'deposit' => $params['deposit'],
// 'deposit_time' => $params['deposit_time'],
2023-07-15 14:46:25 +08:00
'qualification' => $params['qualification'],
2023-07-17 00:09:53 +08:00
// 'status' => $params['status']
2023-07-15 14:46:25 +08:00
]);
2023-07-17 00:09:53 +08:00
$contract=$params['contract'];
$datas=[
'company_id'=>$data['id'],
'contract_type'=>$contract['contract_type'],
'contract_no'=>time(),
'file'=>$contract['file'],
'create_time'=>time(),
'update_time'=>time(),
'party_a'=>$contract['party_a'],
'party_b'=>$data['id'],
];
Db::name('contract')->insert($datas);
2023-07-15 14:46:25 +08:00
Db::commit();
return true;
} catch (\Exception $e) {
Db::rollback();
self::setError($e->getMessage());
return false;
}
}
/**
* @notes 编辑
* @param array $params
* @return bool
* @author likeadmin
* @date 2023/07/15 14:43
*/
public static function edit(array $params): bool
{
Db::startTrans();
try {
Company::where('id', $params['id'])->update([
2023-07-17 00:09:53 +08:00
// 'level_two' => $params['level_two'],
// 'level_one' => $params['level_one'],
2023-07-15 14:46:25 +08:00
'company_name' => $params['company_name'],
'organization_code' => $params['organization_code'],
2023-07-17 00:09:53 +08:00
'province' => $params['province'],
2023-07-15 14:46:25 +08:00
'city' => $params['city'],
2023-07-15 15:45:54 +08:00
'area' => $params['area'],
'street' => $params['street'],
2023-07-17 00:09:53 +08:00
'address' => $params['address'],
2023-07-15 14:46:25 +08:00
'company_type' => $params['company_type'],
'master_name' => $params['master_name'],
'master_position' => $params['master_position'],
'master_phone' => $params['master_phone'],
'master_email' => $params['master_email'],
'other_contacts' => $params['other_contacts'],
2023-07-17 00:09:53 +08:00
// 'area_manager' => $params['area_manager'],
// 'is_contract' => $params['is_contract'],
// 'account' => $params['account'],
// 'password' => $params['password'],
// 'deposit' => $params['deposit'],
// 'deposit_time' => $params['deposit_time'],
2023-07-15 14:46:25 +08:00
'qualification' => $params['qualification'],
2023-07-17 00:09:53 +08:00
// 'status' => $params['status']
2023-07-15 14:46:25 +08:00
]);
2023-07-17 00:09:53 +08:00
$contract=$params['contract'];
$datas=[
'company_id'=>$params['id'],
'contract_type'=>$contract['contract_type'],
'contract_no'=>time(),
'file'=>$contract['file'],
'update_time'=>time(),
'party_a'=>$contract['party_a'],
'party_b'=>$params['id'],
];
Db::name('contract')->insert($datas);
2023-07-15 14:46:25 +08:00
Db::commit();
return true;
} catch (\Exception $e) {
Db::rollback();
2023-07-17 00:09:53 +08:00
self::setError($e->getMessage(), $e->getFile());
2023-07-15 14:46:25 +08:00
return false;
}
}
/**
* @notes 删除
* @param array $params
* @return bool
* @author likeadmin
* @date 2023/07/15 14:43
*/
public static function delete(array $params): bool
{
return Company::destroy($params['id']);
}
/**
* @notes 获取详情
* @param $params
* @return array
* @author likeadmin
* @date 2023/07/15 14:43
*/
public static function detail($params): array
{
2023-07-17 00:09:53 +08:00
$data=Company::findOrEmpty($params['id'])->toArray();
if($data){
$data['other_contacts']=json_decode($data['other_contacts'],true);
$data['qualification']=json_decode($data['qualification'],true);
$data['contract']=Db::name('contract')->where('company_id',$data['id'])
->withAttr('party_a_name',function($value,$data){
return Db::name('company')->where('id',$data['party_a'])->value('company_name');
})
->find();
}
return $data;
2023-07-15 14:46:25 +08:00
}
}