SystemCity.php 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190
  1. <?php
  2. namespace app\admin\controller\setting;
  3. use app\admin\controller\AuthController;
  4. use app\admin\model\system\SystemCity as CityModel;
  5. use crmeb\services\CacheService;
  6. use crmeb\services\FormBuilder as Form;
  7. use crmeb\services\JsonService as Json;
  8. use crmeb\services\UtilService as Util;
  9. use think\facade\Route as Url;
  10. use app\admin\model\system\SystemStoreStaff as StaffModel;
  11. class SystemCity extends AuthController
  12. {
  13. /**
  14. * 城市列表
  15. * @return string
  16. * @throws \Exception
  17. */
  18. public function index()
  19. {
  20. $params = Util::getMore([
  21. ['parent_id', 0]
  22. ], $this->request);
  23. $this->assign('pid',$params['parent_id']);
  24. $this->assign('list', CityModel::getList($params));
  25. $addurl = Url::buildUrl('add?parent_id=' . $params['parent_id']);
  26. $this->assign(compact('params', 'addurl'));
  27. return $this->fetch();
  28. }
  29. /**
  30. * 添加城市
  31. * @return string
  32. * @throws \think\db\exception\DataNotFoundException
  33. * @throws \think\db\exception\DbException
  34. * @throws \think\db\exception\ModelNotFoundException
  35. */
  36. public function add()
  37. {
  38. $data = Util::getMore([
  39. ['parent_id', 0]
  40. ]);
  41. if ($data['parent_id'] != 0) {
  42. $info = CityModel::where('city_id', $data['parent_id'])->find()->toArray();
  43. } else {
  44. $info = [
  45. "level" => 0,
  46. "city_id" => 0,
  47. "name" => '中国'
  48. ];
  49. }
  50. $field[] = Form::hidden('level', $info['level']);
  51. $field[] = Form::hidden('parent_id', $info['city_id']);
  52. $field[] = Form::input('parent_name', '上级名称', $info['name'])->readonly(true);
  53. $field[] = Form::input('name', '名称');
  54. $field[] = Form::input('merger_name', '合并名称')->placeholder('格式:陕西,西安,雁塔');
  55. $field[] = Form::input('area_code', '区号');
  56. $field[] = Form::input('lng', '经度');
  57. $field[] = Form::input('lat', '纬度');
  58. $field[] = Form::frameImageOne('image', '代理用户', Url::buildUrl('select', array('fodder' => 'image','level'=>$info['level'])))->icon('plus')->width('100%')->height('500px');
  59. $field[] = Form::hidden('agent_uid', 0);
  60. $field[] = Form::hidden('avatar', '');
  61. $form = Form::make_post_form('添加地区', $field, Url::buildUrl('save'), 3);
  62. $this->assign(compact('form'));
  63. return $this->fetch('public/form-builder');
  64. }
  65. /**
  66. * 保存
  67. */
  68. public function save()
  69. {
  70. $data = Util::postMore([
  71. ['id', 0],
  72. ['name', 0],
  73. ['merger_name', 0],
  74. ['area_code', 0],
  75. ['lng', 0],
  76. ['lat', 0],
  77. ['level', 0],
  78. ['parent_id', 0],
  79. ['agent_uid',0],
  80. ['avatar',''],
  81. ]);
  82. if (!$data['name']) return Json::fail('请输入城市名称');
  83. if (!$data['merger_name']) return Json::fail('请输入城市合并名称');
  84. if ($data['id'] == 0) {
  85. unset($data['id']);
  86. $data['level'] = $data['level'] + 1;
  87. $data['city_id'] = intval(CityModel::max('city_id') + 1);
  88. CityModel::create($data);
  89. return Json::successful('添加城市成功!');
  90. } else {
  91. unset($data['level']);
  92. unset($data['parent_id']);
  93. CityModel::where('id', $data['id'])->update($data);
  94. return Json::successful('修改城市成功!');
  95. }
  96. }
  97. public function select()
  98. {
  99. $level = 99;
  100. switch(input('level',0))
  101. {
  102. case 2:
  103. $level = 5;
  104. break;
  105. case 1:
  106. $level = 6;
  107. break;
  108. case 0:
  109. $level = 7;
  110. break;
  111. }
  112. $this->assign('level',$level);
  113. return $this->fetch();
  114. }
  115. /**
  116. * 获取user表
  117. * @param int $page
  118. * @param int $limit
  119. * @param string $nickname
  120. */
  121. public function get_user_list($page = 0, $limit = 10, $nickname = '',$level=0)
  122. {
  123. return Json::successlayui(StaffModel::getUserList($page, $limit, $nickname,$level));
  124. }
  125. /**
  126. * 修改城市
  127. * @return string
  128. * @throws \think\db\exception\DataNotFoundException
  129. * @throws \think\db\exception\DbException
  130. * @throws \think\db\exception\ModelNotFoundException
  131. */
  132. public function edit()
  133. {
  134. $data = Util::getMore([
  135. ['id', 0]
  136. ]);
  137. $info = CityModel::get($data['id'])->toArray();
  138. $info['parent_name'] = CityModel::where('city_id', $info['parent_id'])->value('name') ? : '中国';
  139. $field[] = Form::hidden('id', $info['id']);
  140. $field[] = Form::hidden('level', $info['level']);
  141. $field[] = Form::hidden('parent_id', $info['parent_id']);
  142. $field[] = Form::input('parent_name', '上级名称', $info['parent_name'])->readonly(true);
  143. $field[] = Form::input('name', '名称', $info['name']);
  144. $field[] = Form::input('merger_name', '合并名称', $info['merger_name'])->placeholder('格式:陕西,西安,雁塔');
  145. $field[] = Form::input('area_code', '区号', $info['area_code']);
  146. $field[] = Form::input('lng', '经度', $info['lng']);
  147. $field[] = Form::input('lat', '纬度', $info['lat']);
  148. $field[] = Form::frameImageOne('image', '代理用户', Url::buildUrl('select', array('fodder' => 'image','level'=>$info['level'])),$info['avatar'])->icon('plus')->width('100%')->height('500px');
  149. $field[] = Form::hidden('agent_uid', $info['agent_uid']);
  150. $field[] = Form::hidden('avatar', $info['avatar']);
  151. $form = Form::make_post_form('添加地区', $field, Url::buildUrl('save'), 3);
  152. $this->assign(compact('form'));
  153. return $this->fetch('public/form-builder');
  154. }
  155. /**
  156. * 删除城市
  157. * @throws \Exception
  158. */
  159. public function delete()
  160. {
  161. $data = Util::getMore([
  162. ['city_id', 0]
  163. ]);
  164. CityModel::where('city_id', $data['city_id'])->whereOr('parent_id', $data['city_id'])->delete();
  165. return Json::successful('删除成功!');
  166. }
  167. /**
  168. * 清除城市缓存
  169. * @throws \Psr\SimpleCache\InvalidArgumentException
  170. */
  171. public function clean_cache()
  172. {
  173. $res = CacheService::delete('CITY_LIST');
  174. if ($res) {
  175. return Json::successful('清除成功!');
  176. } else {
  177. return Json::fail('清除失败!');
  178. }
  179. }
  180. }