AreaManagement.php 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. <?php
  2. namespace addons\qingdongams\model;
  3. use think\Db;
  4. use think\Model;
  5. use traits\model\SoftDelete;
  6. /**
  7. *区域管理
  8. */
  9. class AreaManagement extends Model
  10. {
  11. use SoftDelete;
  12. // 表名,不含前缀
  13. protected $name = 'qingdongams_area_management';
  14. // 开启自动写入时间戳字段
  15. protected $autoWriteTimestamp = 'int';
  16. // 定义时间戳字段名
  17. protected $createTime = 'createtime';
  18. protected $updateTime = 'updatetime';
  19. protected $deleteTime = 'deletetime';
  20. // 追加属性
  21. protected $append = [
  22. 'province_text',
  23. ];
  24. /**
  25. * 获取地址对应 区域
  26. * @param $address
  27. * @return array|void
  28. */
  29. public static function whereAddressProvince($address)
  30. {
  31. $area = explode('省', $address);
  32. if (empty($area)) {
  33. return [];
  34. }
  35. if (count($area) == 1) {
  36. $area = explode('区', $address);
  37. }
  38. $province = AreaProvince::where(['name' => ['like', "%{$area[0]}%"]])->find();
  39. if (empty($province)) {
  40. return [];
  41. }
  42. $where[] = ['exp', Db::raw('FIND_IN_SET(' . $province['id'] . ',province_ids)')];
  43. $management = self::where($where)->find();
  44. return $management ?? [];
  45. }
  46. public static function addAreaManagement($params)
  47. {
  48. $model = new self();
  49. $model->save($params);
  50. $lastId = $model->getLastInsID();
  51. $staff_rule = [
  52. 'type' => 'data',
  53. 'pid' => 784,
  54. 'title' => $params['name'],
  55. 'name' => $lastId
  56. ];
  57. StaffRule::create($staff_rule);
  58. return true;
  59. }
  60. public function getProvinceTextAttr($value, $data)
  61. {
  62. $ids = explode(',', $data['province_ids'] ?? '');
  63. $list = AreaProvince::where('id', 'in', $ids)->column('name');
  64. if ($list) {
  65. return implode(',', $list);
  66. }
  67. return '';
  68. }
  69. //添加区域
  70. public function getCreatetimeAttr($value)
  71. {
  72. if ($value) {
  73. return date('Y-m-d H:i', $value);
  74. }
  75. return $value;
  76. }
  77. }