| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- <?php
- namespace app\api\logic;
- use app\common\enum\worker\WorkerAccountLogEnum;
- use app\common\logic\BaseLogic;
- use app\common\model\master_worker\MasterWorker;
- use app\common\model\master_worker\MasterWorkerRetentionMoneyLog;
- use app\common\model\works\ServiceWork;
- use think\facade\Db;
- class RetentionMoneyLogic extends BaseLogic
- {
- public static function add($params)
- {
- Db::startTrans();
- try {
- $surplus_money = 0;
- if(isset($params['work_id']) && !empty($params['work_id'])){
- $workModel = ServiceWork::findOrEmpty($params['work_id']);
- if($workModel->isEmpty()){
- throw new \Exception('工单不存在');
- }
- }
- MasterWorkerRetentionMoneyLog::create([
- 'sn' => generate_sn(MasterWorkerRetentionMoneyLog::class,'sn'),
- 'worker_id' => $params['worker_id'],
- 'action' => $params['action'],
- 'amount' => $params['amount'],
- 'work_id' => $params['work_id'],
- 'remark' => $params['remark'],
- ]);
- // $params['worker_id']
- $masterWorkerInfo = MasterWorker::where('id', $params['worker_id'])->findOrEmpty();
- $masterWorkerInfo->earnest_money_usable += $params['earnest_money_usable'];
- if($masterWorkerInfo->earnest_money_usable > $masterWorkerInfo->earnest_money){
- $surplus_money = $masterWorkerInfo->earnest_money_usable - $masterWorkerInfo->earnest_money;
- $masterWorkerInfo->earnest_money_usable += ($params['earnest_money_usable']-$surplus_money);
- }
- $masterWorkerInfo->save();
- Db::commit();
- return $surplus_money;
- } catch (\Exception $e) {
- Db::rollback();
- self::setError($e->getMessage());
- return false;
- }
- }
- }
|