$params['goods_category_id'], 'spare_name' => $params['spare_name'], 'spare_image' => $params['spare_image'], 'spare_number' => $params['spare_number'], 'spare_unit' => $params['spare_unit'], 'company_price' => $params['company_price'], 'original_price' => $params['original_price'], 'offering_price' => $params['offering_price'], 'spare_status' => $params['spare_status'], ]); Db::commit(); return true; } catch (\Exception $e) { Db::rollback(); self::setError($e->getMessage()); return false; } } /** * @notes 编辑 * @param array $params * @return bool * @author likeadmin * @date 2024/09/14 15:08 */ public static function edit(array $params): bool { Db::startTrans(); try { $params['goods_category_id'] = end($params['goods_category_id']); SparePart::where('id', $params['id'])->update([ 'goods_category_id' => $params['goods_category_id'], 'spare_name' => $params['spare_name'], 'spare_image' => $params['spare_image'], 'spare_number' => $params['spare_number'], 'spare_unit' => $params['spare_unit'], 'company_price' => $params['company_price'], 'original_price' => $params['original_price'], 'offering_price' => $params['offering_price'], 'spare_status' => $params['spare_status'], ]); Db::commit(); return true; } catch (\Exception $e) { Db::rollback(); self::setError($e->getMessage()); return false; } } /** * @notes 删除 * @param array $params * @return bool * @author likeadmin * @date 2024/09/14 15:08 */ public static function delete(array $params): bool { return SparePart::destroy($params['id']); } /** * 配件定时任务 * @return bool * @author liugc <466014217@qq.com> * @date 2025/5/27 15:10 */ public static function examineSpare() { $tm = time() - 3 * 86400; $spareAudits = ServiceWorkSpare::where("create_time",'<', $tm)->whereIn('status', [0,2])->select()->toArray(); foreach ($spareAudits as $spareAudit) { try { ServiceWorkSpare::where('id', $spareAudit['id'])->update([ 'status' => 3 ]); self::isExamineOk($spareAudit['service_work_id']); } catch (\Exception $e) { self::setError($e->getMessage()); } } return true; } /** * 是否都审核完成 * @return bool * @author liugc <466014217@qq.com> * @date 2025/5/27 15:10 */ public static function isExamineOk($service_work_id) { $tm = time() - 3 * 86400; $count = ServiceWorkSpare::where("service_work_id",$service_work_id)->whereIn('status', [0,2])->count(); $serviceWorkInfo = ServiceWork::find($service_work_id); if((int)$serviceWorkInfo['work_pay_status'] !== 3){ throw new \Exception('该工单非待结算状态'); } // 是否所有配件审核完成 if($count == 0){ $serviceWorkInfo->user_confirm_status = 5; $serviceWorkInfo->work_status = 7; $serviceWorkInfo->work_pay_status = 1; $serviceWorkInfo->save(); } return true; } }