Addr.php 3.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. <?php
  2. namespace app\admin\controller;
  3. use app\BaseController;
  4. use think\facade\Db;use think\facade\Validate;
  5. class Addr extends BaseController
  6. {
  7. public function province(){
  8. $list=Db::name("province")->select();
  9. return app_show(0,"获取成功",$list);
  10. }
  11. public function area(){
  12. $post=$this->request->post();
  13. $city_code = isset($post['code'])&& $post['code']!="" ? $post['code']:"";
  14. if($city_code==""){
  15. return error_show(1002,"市级未选择");
  16. }
  17. $city =Db::name("city")->where(['city_code'=>$city_code])->find();
  18. if(empty($city)){
  19. return error_show(1003,"参数code非法数据");
  20. }
  21. $list=Db::name("area")->where(['city_code'=>$city_code])->select();
  22. return app_show(0,"获取成功",$list);
  23. }
  24. public function city(){
  25. $post=$this->request->post();
  26. $province_code = isset($post['code'])&& $post['code']!="" ? $post['code']:"";
  27. if($province_code==""){
  28. return error_show(1002,"省级未选择");
  29. }
  30. $provice = Db::name("province")->where(['province_code'=>$province_code])->find();
  31. if(empty($provice)){
  32. return error_show(1003,"参数code非法数据");
  33. }
  34. $list=Db::name("city")->where(['province_code'=>$province_code])->select();
  35. return app_show(0,"获取成功",$list);
  36. }
  37. public function all(){
  38. $post=$this->request->post();
  39. $city_code = isset($post['code'])&& $post['code']!="" ? $post['code']:"";
  40. if($city_code==""){
  41. return error_show(1002,"区级Code未选择");
  42. }
  43. $data=[];
  44. $area =Db::name("area")->where(['area_code'=>$city_code])->field("name,area_code as code,city_code")->find();
  45. if($area==false){
  46. return error_show(1003,"未找到区级数据");
  47. }
  48. $data["area"]=$area;
  49. $city=Db::name("city")->where(['city_code'=>$area['city_code']])->field("name,city_code as code,province_code")->find();
  50. if($city==false){
  51. $data["city"]=[];
  52. }
  53. $data['city']=$city??[];
  54. $province=Db::name("province")->where(['province_code'=>$city['province_code']])->field("name,province_code as code")->find();
  55. $data['province']=$province??[];
  56. return app_show(0,"获取成功",$data);
  57. }
  58. public function query(){
  59. $post=$this->request->only(["code"=>'',"name"=>"","level"=>"1"],"post","trim");
  60. $valid =Validate::rule(["code|查询编号"=>"max:255","name|名称"=>"max:255","level"=>"require|max:255|in:1,2,3"]);
  61. if($valid->check($post)==false)return error_show(1004,$valid->getError());
  62. $where=[];
  63. if($post['code']!='') $where[]=["parent_code","=",$post['code']];
  64. if($post['name']!='') $where[]=["search_name","like","%{$post['name']}%"];
  65. if($post['level']==1){
  66. $model = Db::name("provice")->field("name,province_code code,0 parent_code,name search_name")->buildSql();
  67. }
  68. if($post['level']==2){
  69. $model = Db::name("city")->alias("a")
  70. ->leftJoin("province b","a.province_code=b.province_code")
  71. ->field("a.name,city_code code,a.province_code parent_code,CONCAT(b.name,a.name) search_name")->buildSql();
  72. }
  73. if($post['level']==3){
  74. $model = Db::name("area")->alias("a")
  75. ->leftJoin("city b","a.city_code=b.city_code")
  76. ->leftJoin("province b","a.province_code=b.province_code")
  77. ->field("a.name,a.area_code code,a.city_code parent_code,CONCAT(c.name,b.name,a.name) search_name")
  78. ->buildSql();
  79. }
  80. // $count = Db::table($model . ' f')->where($where)->count();
  81. $data = Db::table($model . ' f')->where($where)->select();
  82. return app_show(0,"获取成功",$data);
  83. }
  84. }