心理咨询网
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

AreaModel.php 2.6KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. <?php
  2. /**
  3. * @copyright (C)2016-2099 Hnaoyun Inc.
  4. * @author XingMeng
  5. * @email hnxsh@foxmail.com
  6. * @date 2017年04月07日
  7. * 区域模型类
  8. */
  9. namespace app\admin\model\system;
  10. use core\basic\Model;
  11. class AreaModel extends Model
  12. {
  13. // 获取区域列表
  14. public function getList()
  15. {
  16. $result = parent::table('ay_area')->order('pcode,acode')
  17. ->page()
  18. ->select();
  19. $tree = get_tree($result, 0, 'acode', 'pcode');
  20. return $tree;
  21. }
  22. // 获取区域选择列表
  23. public function getSelect()
  24. {
  25. $result = parent::table('ay_area')->field('pcode,acode,name')
  26. ->order('pcode,acode')
  27. ->select();
  28. $tree = get_tree($result, 0, 'acode', 'pcode');
  29. return $tree;
  30. }
  31. // 检查区域
  32. public function checkArea($where)
  33. {
  34. return parent::table('ay_area')->field('id')
  35. ->where($where)
  36. ->find();
  37. }
  38. // 获取区域详情
  39. public function getArea($acode)
  40. {
  41. return parent::table('ay_area')->where("acode='$acode'")->find();
  42. }
  43. // 获取最后一个code
  44. public function getLastCode()
  45. {
  46. return parent::table('ay_area')->order('id DESC')->value('acode');
  47. }
  48. // 添加区域
  49. public function addArea(array $data)
  50. {
  51. if ($data['is_default']) {
  52. $this->unsetDefault($data['acode']);
  53. }
  54. return parent::table('ay_area')->autoTime()->insert($data);
  55. }
  56. // 删除区域
  57. public function delArea($acode)
  58. {
  59. return parent::table('ay_area')->where("acode='$acode' OR pcode='$acode'")
  60. ->where('is_default=0')
  61. ->delete();
  62. }
  63. // 修改区域资料
  64. public function modArea($acode, $data)
  65. {
  66. $result = parent::table('ay_area')->autoTime()
  67. ->where("acode='$acode'")
  68. ->update($data);
  69. if ($data['is_default']) {
  70. $this->unsetDefault($data['acode']);
  71. }
  72. if ($result && array_key_exists('acode', $data) && $acode != $data['acode']) {
  73. $this->modSubArea($acode, $data['acode']);
  74. }
  75. return $result;
  76. }
  77. // 当父编号改变时,修改子栏目的父编码
  78. private function modSubArea($pcode, $pcodeNew)
  79. {
  80. return parent::table('ay_area')->where("pcode='$pcode'")
  81. ->autoTime()
  82. ->update("pcode='$pcodeNew'");
  83. }
  84. // 去除$acode以外的默认区域
  85. private function unsetDefault($acode)
  86. {
  87. parent::table('ay_area')->where("acode<>'$acode'")->update('is_default=0');
  88. }
  89. }