AgencyController.php 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: Administrator
  5. * Date: 2020-09-14
  6. * Time: 9:15
  7. */
  8. namespace app\back\controller;
  9. use app\back\model\AgencyModel;
  10. use app\back\model\AgencyRankModel;
  11. use app\back\model\UserModel;
  12. use app\back\validate\AgencyValidate;
  13. use cmf\controller\AdminBaseController;
  14. use think\Db;
  15. use think\Validate;
  16. class AgencyController extends AdminBaseController
  17. {
  18. public function index()
  19. {
  20. $agencyModel = new AgencyModel();
  21. $list = $agencyModel::with(['renk','city','district'])->select();
  22. $this->assign('list',$list);
  23. return $this->fetch();
  24. }
  25. public function add()
  26. {
  27. $rank = AgencyRankModel::order('id','asc')->select();
  28. $provinceList = Db::name('region')->where('depth',1)->field('id,cityName')->select();
  29. $this->assign('rank',$rank);
  30. $this->assign('provinceList',$provinceList);
  31. return $this->fetch();
  32. }
  33. public function addPost()
  34. {
  35. $validate = new AgencyValidate();
  36. $data = $this->request->param();
  37. if (!$validate->check($data)) {
  38. $this->error($validate->getError());
  39. }
  40. $data = $this->request->param();
  41. if (!$validate->check($data)) {
  42. $this->error($validate->getError());
  43. }
  44. $agencyModel = new AgencyModel();
  45. $agencyModel->allowField(true)->isUpdate(false)->save($data);
  46. $this->success('添加成功');
  47. }
  48. public function edit()
  49. {
  50. $id = $this->request->param('id');
  51. $info = AgencyModel::get($id);
  52. $info->renk;
  53. $info->province;
  54. $info->city;
  55. $info->district;
  56. $rank = AgencyRankModel::order('id','asc')->select();
  57. $provinceList = Db::name('region')->where('depth',1)->field('id,cityName')->select();
  58. $this->assign('rank',$rank);
  59. $this->assign('provinceList',$provinceList);
  60. $this->assign('info',$info);
  61. return $this->fetch();
  62. }
  63. public function editPost()
  64. {
  65. $validate = new AgencyValidate();
  66. $data = $this->request->param();
  67. if (!$validate->check($data)) {
  68. $this->error($validate->getError());
  69. }
  70. $agencyModel = new AgencyModel();
  71. $agencyModel->allowField(true)->isUpdate(true)->save($data);
  72. $this->success('编辑成功');
  73. }
  74. public function delete()
  75. {
  76. $id = $this->request->param('id');
  77. $user_id = Db::name('user')->where('agency_id',$id)->value('id');
  78. if($user_id){
  79. $this->error('用户使用该代理不可删除!');
  80. }
  81. AgencyModel::destroy($id);
  82. $this->success('删除成功');
  83. }
  84. public function select()
  85. {
  86. $user_id = $this->request->param('id');
  87. $agencyModel = new AgencyModel();
  88. $list = $agencyModel::with(['renk','city','district'])->select();
  89. $user_agency_id = UserModel::get($user_id)['agency_id'];
  90. $user_agency_id = explode(',',$user_agency_id);
  91. $this->assign('user_id',$user_id);
  92. $this->assign('list',$list);
  93. $this->assign('user_agency_id',$user_agency_id);
  94. return $this->fetch();
  95. }
  96. public function setuser()
  97. {
  98. $user_id = $this->request->param('user_id');
  99. $agency_id = $this->request->param('agency_id/a');
  100. $agency_id = empty($agency_id)?'':implode(',',$agency_id);
  101. $UserModel = new UserModel();
  102. $agencyModel = new AgencyModel();
  103. $user_info = UserModel::get($user_id)->toArray();
  104. $befor_data = $user_info['agency_id'];
  105. if(!empty($befor_data)){
  106. $befor_arr = $agencyModel::where('id in ('.$befor_data.')')->column('name');
  107. }else{
  108. $befor_arr = array();
  109. }
  110. $after_data = $agency_id;
  111. if(!is_array($befor_arr)){
  112. $befor_arr=array($befor_arr);
  113. }
  114. if(!empty($after_data)){
  115. $after_arr = $agencyModel::where('id in ('.$after_data.')')->column('name');
  116. }else{
  117. $after_arr = array();
  118. }
  119. if(!is_array($after_arr)){
  120. $after_arr=array($after_arr);
  121. }
  122. $admin_id = cmf_get_current_admin_id();
  123. $log_info = '变更前:'.join('|',$befor_arr).';变更后:'.join('|',$after_arr);
  124. admin_log($admin_id,$log_info,$user_id,'指定代理商区域');
  125. // $id = $UserModel::where('agency_id',$agency_id)->value('id');
  126. // if($id){
  127. // return json(['code'=>2]);
  128. // }
  129. $UserModel->allowField(true)->isUpdate(true)->save(['agency_id'=>$agency_id],['id'=>$user_id]);
  130. return json(['code'=>1]);
  131. }
  132. public function user_apply_agency()
  133. {
  134. $where = [];
  135. $page = $this->request->param('page',1);
  136. $pw = [];
  137. $keyword = $this->request->param('keyword');
  138. if($keyword){
  139. $this->assign('keyword',$keyword);
  140. $pw['keyword'] = $keyword;
  141. }
  142. $status = $this->request->param('status');
  143. if($status || $status != ''){
  144. $pw['status'] = $status;
  145. $this->assign('status',$status);
  146. $where['status'] = $status;
  147. }
  148. $list = Db::name('user_apply_agency')->where($where)->where(function ($query)use ($keyword){
  149. if($keyword){
  150. $query->where('name|t.mobile','like','%'.$keyword.'%');
  151. }
  152. })
  153. ->field('t.*,t1.mobile as user_mobile,t1.user_nickname')
  154. ->alias('t')
  155. ->join('user t1','t.user_id = t1.id','left')
  156. ->order('id','desc')
  157. ->paginate(30,false,array($page,url('index'),'query'=>$pw));
  158. $this->assign('list',$list);
  159. return $this->fetch();
  160. }
  161. public function apply_delete()
  162. {
  163. $id = $this->request->param('id');
  164. Db::name('user_apply_agency')->where('id',$id)->delete();
  165. $this->success('删除成功');
  166. }
  167. public function apply_set()
  168. {
  169. $id = $this->request->param('id');
  170. Db::name('user_apply_agency')->where('id',$id)->update(['status'=>1,'chuli_time'=>time()]);
  171. $this->success('设置成功');
  172. }
  173. }