Site.php 2.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | Niucloud-admin 企业快速开发的saas管理平台
  4. // +----------------------------------------------------------------------
  5. // | 官方网址:https://www.niucloud.com
  6. // +----------------------------------------------------------------------
  7. // | niucloud团队 版权所有 开源版本可自由商用
  8. // +----------------------------------------------------------------------
  9. // | Author: Niucloud Team
  10. // +----------------------------------------------------------------------
  11. namespace app\validate\site;
  12. use think\Validate;
  13. use app\model\site\Site as SiteModel;
  14. /**
  15. * 站点验证
  16. * Class Site
  17. * @package app\validate\site
  18. */
  19. class Site extends Validate
  20. {
  21. protected $rule = [
  22. 'site_name' => 'require|max:20',
  23. 'group_id' => 'require|number',
  24. 'phone' => 'require',
  25. 'category_id' => 'require|number',
  26. 'expire_time' => 'date',
  27. 'province_id' => 'require',
  28. 'city_id' => 'require',
  29. 'district_id' => 'require',
  30. 'address' => 'require',
  31. 'latitude' => 'require',
  32. 'longitude' => 'require',
  33. 'full_address' => 'require',
  34. 'site_domain' => 'checkSiteDomain'
  35. ];
  36. protected $message = [
  37. 'site_name.require' => 'validate_site.site_name_require',
  38. 'site_name.max' => 'validate_site.site_name_max',
  39. 'group_id.require' => 'validate_site.group_id_require',
  40. 'group_id.number' => 'validate_site.group_id_number',
  41. 'expire_time.number' => 'validate_site.expire_time_number',
  42. 'province_id.require' => 'validate_site.site_address_require',
  43. 'city_id.require' => 'validate_site.site_address_require',
  44. 'district_id.require' => 'validate_site.site_address_require',
  45. 'address.require' => 'validate_site.site_address_require',
  46. 'latitude.require' => 'validate_site.site_address_require',
  47. 'longitude.require' => 'validate_site.site_address_require',
  48. 'full_address.require' => 'validate_site.site_address_require'
  49. ];
  50. protected $scene = [
  51. 'add' => ['site_name', 'group_id', 'phone', 'category_id'],
  52. "edit" => ['site_name', 'group_id', 'phone', 'category_id', 'province_id', 'city_id', 'district_id', 'address', 'full_address', 'latitude', 'longitude'],
  53. 'site_set' => ['site_name', 'phone', 'province_id', 'city_id', 'district_id', 'address', 'full_address', 'latitude', 'longitude'],
  54. 'admin_set' => ['site_name']
  55. ];
  56. protected function checkSiteDomain($value, $rule, $data = [])
  57. {
  58. if (empty($value)) return true;
  59. $where = [
  60. ['site_domain', '=', $value]
  61. ];
  62. if (isset($data['site_id'])) $where[] = ['site_id', '<>', $data['site_id']];
  63. return (new SiteModel())->where($where)->count() ? get_lang("validate_site.site_domain_cannot_repeated") : true;
  64. }
  65. }