From 947da31f27f919c699085076b2f38e6d801b02fb Mon Sep 17 00:00:00 2001 From: mkm <727897186@qq.com> Date: Tue, 1 Aug 2023 11:01:26 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E5=90=88=E5=90=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../contract/ContractController.php | 20 ++- .../controller/user/UserController.php | 133 +++++++++++++++++- app/adminapi/logic/user/UserLogic.php | 3 + app/api/controller/IndexController.php | 2 +- app/common/model/contract/Contract.php | 16 ++- 5 files changed, 167 insertions(+), 7 deletions(-) diff --git a/app/adminapi/controller/contract/ContractController.php b/app/adminapi/controller/contract/ContractController.php index 46167d5c4..ba281437d 100644 --- a/app/adminapi/controller/contract/ContractController.php +++ b/app/adminapi/controller/contract/ContractController.php @@ -20,10 +20,12 @@ use app\adminapi\controller\BaseAdminController; use app\adminapi\lists\contract\ContractLists; use app\adminapi\logic\contract\ContractLogic; use app\adminapi\validate\contract\ContractValidate; +use app\common\model\contract\Contract; +use think\facade\Request; /** - * Contract控制器 + * 合同控制器 * Class ContractController * @package app\adminapi\controller\contract */ @@ -103,6 +105,16 @@ class ContractController extends BaseAdminController $result = ContractLogic::detail($params); return $this->data($result); } - - -} \ No newline at end of file + //风控部上传合同 + public function wind_control() + { + $params = Request::param(); + $file = $params['file']; + $res = Contract::where('id', $params['id'])->update(['file' => $file]); + if ($res) { + return $this->success('上传成功', [], 1, 1); + } else { + return $this->fail('上传失败'); + } + } +} diff --git a/app/adminapi/controller/user/UserController.php b/app/adminapi/controller/user/UserController.php index 41d2b4eda..7c5518efc 100755 --- a/app/adminapi/controller/user/UserController.php +++ b/app/adminapi/controller/user/UserController.php @@ -18,6 +18,11 @@ use app\adminapi\lists\user\UserLists; use app\adminapi\logic\user\UserLogic; use app\adminapi\validate\user\AdjustUserMoney; use app\adminapi\validate\user\UserValidate; +use think\facade\Db; +use think\facade\Request; +use app\api\logic\SmsLogic; +use app\api\controller\JunziqianController; +use app\common\model\contract\Contract; /** * 用户控制器 @@ -82,5 +87,131 @@ class UserController extends BaseAdminController } return $this->fail($res); } - + //**发起合同 */ + public function initiate_contract(){ + $params = Request::param(); + $params['party_a']=Db::name('company')->where('admin_id',$this->adminId)->value('id'); + if($params['party_a']<=0){ + return $this->fail('甲方不存在,请联系平台绑定公司'); + } + $res=Contract::Initiate_contract($params); + if (true === $res) { + return $this->success('发起成功,等待平台风控部上传合同'); + } + return $this->fail('发起失败'); + } + // /**生成合同 */ + public function Draftingcontracts() + { + $params = Request::param(); + $result = UserLogic::detail($params['id']); + if ($result && $result['contract'] && $result['contract']['file'] != '') { + $data = [ + 'name' => $result['nickname'] . '的合同', + 'signatories' => [['fullName' => $result['nickname'], 'identityType' => 1, 'identityCard' => $result['id_card'], 'mobile' => $result['mobile'], 'noNeedVerify' => 1, 'signLevel' => 1]], + 'url' => $result['contract']['file'] + ]; + $res = app(JunziqianController::class)->Signing($data,$result['contract']['id']); + if ($res->success == true) { + Db::name('contract')->where('id', $result['contract']['id'])->update(['contract_no' => $res->data]); + $data = array( + "applyNo" => $res->data, //TODO * + "fullName" => $result['nickname'], //TODO * + "identityCard" => $result['id_card'], //TODO * + "identityType" => 1, //TODO * + ); + $res = app(JunziqianController::class)->SigningLink($data); + if ($res->success == true) { + Db::name('contract')->where('id', $result['contract']['id'])->update(['url' => $res->data]); + //发送短信 + $sms = [ + 'mobile' => $result['mobile'], + 'name' => $result['nickname'], + 'type' => '《' . $result['contract']['contract_type_name'] . '》', + 'code' => 'api/Hetong/url?id=' . $result['contract']['id'], + 'scene' => 'WQ' + ]; + $result = SmsLogic::contractUrl($sms); + if (true === $result) { + return $this->success('发送成功'); + } else { + return $this->fail(SmsLogic::getError()); + } + } else { + return $this->fail($res->msg); + } + return $this->success('生成合同成功', [], 1, 1); + } else { + return $this->fail($res->msg); + } + } else { + return $this->fail('生成合同成功失败,联系管理员'); + } + } + + //**发送短信 */ 接口可能要做调整 + + public function postsms() + { + $params = Request::param(); + $admin=Db::name('admin')->where('id',$params['id'])->find(); + $find = Db::name('contract')->where('party_b', $params['id']) + ->withAttr('contract_type_name', function ($value, $data) { + return Db::name('dict_data')->where('id', $data['contract_type'])->value('name'); + }) + ->find(); + if ($find && $find['url'] != '') { + //发送短信 + $sms = [ + 'mobile' => $admin['phone'], + 'name' => $admin['name'], + 'type' => '《' . $find['contract_type_name'] . '》', + 'code' => 'api/Hetong/url?id=' . $find['id'], + 'scene' => 'WQ' + ]; + $result = SmsLogic::contractUrl($sms); + if (true === $result) { + return $this->success('发送成功'); + } else { + return $this->fail(SmsLogic::getError()); + } + } + } + + //**废除合同 */ 接口可能要做调整 + public function abolition() + { + $params = Request::param(); + $result = UserLogic::detail($params); + $find=Db::name('article')->where('id',2)->value('content'); + $data = [ + 'name' => $result['name'] . '合同', + 'signatories' => [['fullName' => $result['name'], 'identityType' => 1, 'identityCard' => $result['id_card'], 'mobile' => $result['account'], 'noNeedVerify' => 1, 'signLevel' => 1]], + 'url' => $result['contract']['file'], + 'content'=>''.$find, + ]; + $res = app(JunziqianController::class)->html_contract($data,$result['contract']['id']); + $data = array( + "applyNo" => $res->data, //TODO * + "fullName" => $result['name'], //TODO * + "identityCard" => $result['id_card'], //TODO * + "identityType" => 1, //TODO * + ); + $res = app(JunziqianController::class)->SigningLink($data); + $sms = [ + 'mobile' => $result['phone'], + 'name' => $result['name'], + 'type' => '《' . $result['contract']['contract_type_name'] . '》', + 'code' => 'api/Hetong/url?id=' . $result['contract']['id'], + 'scene' => 'WQ' + ]; + $result = SmsLogic::contractUrl($sms); + if (true === $result) { + return $this->success('发送成功'); + } else { + return $this->fail(SmsLogic::getError()); + } + halt($res); + + } } \ No newline at end of file diff --git a/app/adminapi/logic/user/UserLogic.php b/app/adminapi/logic/user/UserLogic.php index 543fdac10..2cc42dce8 100755 --- a/app/adminapi/logic/user/UserLogic.php +++ b/app/adminapi/logic/user/UserLogic.php @@ -17,6 +17,8 @@ use app\common\enum\user\AccountLogEnum; use app\common\enum\user\UserTerminalEnum; use app\common\logic\AccountLogLogic; use app\common\logic\BaseLogic; +use app\common\model\contract\Contract; +use app\common\model\dict\DictData; use app\common\model\user\User; use think\facade\Db; @@ -49,6 +51,7 @@ class UserLogic extends BaseLogic $user['channel'] = UserTerminalEnum::getTermInalDesc($user['channel']); $user->sex = $user->getData('sex'); $user['qualification']=json_decode($user->qualification,true); + $user['contract']=Contract::where(['party_b'=>$userId])->with('contractType')->find(); return $user->toArray(); } diff --git a/app/api/controller/IndexController.php b/app/api/controller/IndexController.php index d42868822..0e266d882 100755 --- a/app/api/controller/IndexController.php +++ b/app/api/controller/IndexController.php @@ -103,7 +103,7 @@ class IndexController extends BaseApiController Db::name('company')->where('id',$find['party_b'])->update(['status'=>1,'is_contract'=>1]); }else{ Db::name('company')->where('id',$find['party_a'])->update(['status'=>1,'is_contract'=>1]); - Db::name('admin')->where('id',$find['party_b'])->update(['is_contract'=>1]); + Db::name('user')->where('id',$find['party_b'])->update(['is_contract'=>1]); } } } diff --git a/app/common/model/contract/Contract.php b/app/common/model/contract/Contract.php index ecb3771a1..1a44c8637 100644 --- a/app/common/model/contract/Contract.php +++ b/app/common/model/contract/Contract.php @@ -19,7 +19,7 @@ use app\common\model\Company; use app\common\model\dict\DictData; /** - * Contract模型 + * 合同模型 * Class Contract * @package app\common\model\contract */ @@ -62,4 +62,18 @@ class Contract extends BaseModel return DictData::where(['id' => $this->contract_type])->value('name'); } + //生成合同 + public static function Initiate_contract($data) + { + $model = self::where(['party_b'=>$data['party_b']])->find(); + if (empty($model)) { + $model = new Contract(); + $model->party_b = $data['party_b']; + $model->contract_no = time(); + $model->create_time = time(); + } + $model->update_time = time(); + $model->setAttrs($data); + return $model->save($data); + } } \ No newline at end of file