123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- <?php
- namespace App\Models;
- use Dcat\Admin\Traits\HasDateTimeFormatter;
- use Illuminate\Database\Eloquent\Model;
- use Illuminate\Support\Facades\DB;
- class DistAppearanceTemplate extends Model
- {
- use HasDateTimeFormatter;
- protected $table = 'dist_appearance_template';
- /*
- * 把原始模板复制给分销商
- */
- public static function copyTemplateToDist($appearanceId,$distId) {
- $appearanceId = intval($appearanceId);
- $distId = intval($distId);
- $count = self::where('dist_id', $distId)->where('appearance_id', $appearanceId)->count();
- if ($count > 0) {
- return;
- }
- //复制
- DB::statement("
- INSERT INTO `dist_appearance_template` (`dist_id`, `appearance_id`, `file_name`, `file_path`, `content`, `created_at`, `updated_at`, `parent_id`, `file_type`,`template_code`)
- SELECT {$distId}, `appearance_id`, `file_name`, `file_path`, `content`, NOW(), NOW(), `parent_id`, `file_type`,`template_code`
- FROM `dist_appearance_template`
- WHERE `dist_id` = 0 AND `appearance_id` = {$appearanceId};
- ");
- //更新parent_id
- $rows = self::select('id','file_path','file_name','parent_id')->where('dist_id',$distId)->where('appearance_id',$appearanceId)->get();
- if ($rows) {
- $updateData = [];
- foreach ($rows as $row) {
- $parentId = $row->parent_id;
- if ($parentId > 0) {
- $newParentId = self::findParentId($rows, $row->file_path, $row->file_name);
- if ($newParentId > -1) {
- $updateData[] = ['id' => $row->id, 'parent_id' => $newParentId];
- }
- }
- }
- //批量更新
- if ($updateData) {
- self::upsert($updateData,['id'],['parent_id']);
- }
- }
- }
- private static function findParentId(&$rows,$filePath,$fileName) {
- foreach ($rows as $row) {
- $filePath = str_replace('/'.$fileName,'',$filePath);
- if ($row->file_path == $filePath) {
- return $row->id;
- }
- }
- return -1;
- }
- }
|