UpdateDefaultAddress.php 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. <?php
  2. namespace App\Plugins\Result;
  3. use Txj\Elastic\Facades\ES;
  4. use Illuminate\Support\Facades\Hash;
  5. /**
  6. * 收货地址默认地址修改
  7. * 如果当前是默认地址,则其他的地址都改为不是默认,默认地址只能有一个
  8. *
  9. * Class UpdateDefaultAddress
  10. * @package App\Plugins
  11. */
  12. class UpdateDefaultAddress
  13. {
  14. public function handler($table, $sysResult, $requestData = [])
  15. {
  16. $userId = $requestData['user_id'] ?? '';
  17. if ($sysResult && $userId && isset($requestData['is_default']) && $requestData['is_default']) {
  18. /**
  19. * 添加的时候 $entityId = $sysResult
  20. * 编辑的时候 $entityId = $requestData['id']
  21. */
  22. $entityId = $requestData['id'] ?? $sysResult;
  23. $list = ES::table($table)->where('user_id', $userId)->where('is_delete', 0)->search();
  24. foreach ($list as $row) {
  25. ES::table($table)->where('user_id', $userId)->mustNot(function ($query) use ($entityId) {
  26. $query->where('id', $entityId);
  27. })->updateEntityById($row['id'], ['is_default' => 0]);
  28. }
  29. }
  30. }
  31. }