|
|
@@ -4,6 +4,7 @@
|
|
|
namespace App\Traits;
|
|
|
|
|
|
|
|
|
+use App\Services\LogService;
|
|
|
use Illuminate\Contracts\Foundation\Application;
|
|
|
use Illuminate\Support\Collection;
|
|
|
use Illuminate\Support\Facades\Cache;
|
|
|
@@ -73,4 +74,38 @@ trait ServiceAppAop
|
|
|
$this->clearCache($kvPairs);
|
|
|
return $this->create($kvPairs);
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * $returnInserted 设为true返回插入的内容,是通过插入的字段返查的,所以可能会不准(看字段是否能匹配)
|
|
|
+ * @param array $targetsArrays
|
|
|
+ * @param bool $returnInserted 设为true返回插入的内容
|
|
|
+ * @param bool $createdAtOn
|
|
|
+ * @param bool $updatedAtOn
|
|
|
+ * @return Collection|null
|
|
|
+ */
|
|
|
+ function insert(array $targetsArrays, $returnInserted=false, $createdAtOn=true,$updatedAtOn=true): ?Collection
|
|
|
+ {
|
|
|
+ foreach ($targetsArrays as &$target){
|
|
|
+ if($createdAtOn)$target['created_at']=now();
|
|
|
+ if($updatedAtOn)$target['updated_at']=now();
|
|
|
+ }
|
|
|
+ ($this->modelClass)::query()->insert($targetsArrays);
|
|
|
+ LogService::log(__METHOD__, __FUNCTION__, json_encode($targetsArrays) .
|
|
|
+ '||' . json_encode(array_slice(debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS), 0, 4)));
|
|
|
+ if(!$returnInserted)return null;
|
|
|
+
|
|
|
+ return ($查回插入内容,不保证准=function ()use($targetsArrays,$createdAtOn,$updatedAtOn){
|
|
|
+ $query=($this->modelClass)::query();
|
|
|
+ foreach ($targetsArrays as &$target){
|
|
|
+ if($createdAtOn)unset($target['created_at']);
|
|
|
+ if($updatedAtOn)unset($target['updated_at']);
|
|
|
+ $query->orWhere(function($subQuery)use($target){
|
|
|
+ foreach ($target as $key=>$val){
|
|
|
+ $subQuery->where($key, $val);
|
|
|
+ }
|
|
|
+ });
|
|
|
+ }
|
|
|
+ return $query->get();
|
|
|
+ })();
|
|
|
+ }
|
|
|
}
|