MessageController.php-3.18bei 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322
  1. <?php
  2. namespace app\admin\controller;
  3. use cmf\controller\AdminBaseController;
  4. use think\Db;
  5. use think\Session;
  6. class MessageController extends AdminBaseController{
  7. public function index(){
  8. //分类信息
  9. $param = $this->request->param();
  10. //分类信息
  11. $cate_tree=$this->getAccessTreeData();
  12. $this->assign('cate_tree',json_encode($cate_tree));
  13. isset($param['cate_id']) or $param['cate_id']=0;
  14. $this->assign('cate_id',$param['cate_id']);
  15. $username = $_SESSION['think']['name'];
  16. $userinfo = Db::name('user')->where('user_login',$username)->find();
  17. $catid = isset($param['catid'])?$param['catid']:0;
  18. $this->assign("catid",$catid);
  19. if($userinfo['user_type']== 1){
  20. $map = array();
  21. $query = array();
  22. if($catid){
  23. $query['catid'] = $catid;
  24. //如果是一级分类则查找所有的子分类
  25. $cateinfo = Db::name('category')->where('id',$catid)->find();
  26. if($cateinfo['parent_id']==0){
  27. $sonarr = Db::name('category')->where('parent_id',$catid)->select()->toArray();
  28. $cate_arr = array();
  29. foreach ($sonarr as $kk=>$vv){
  30. $cate_arr[] = $vv['id'];
  31. }
  32. $map[] = ['catid','in',$cate_arr];
  33. }else{
  34. $map['catid'] = $catid;
  35. }
  36. }
  37. $this->assign('qx',1);
  38. $users = Db::name('user')->where('id','gt',1)->select();
  39. $this->assign('users',$users);
  40. //超级管理员
  41. $lists = Db::name('message')->where($map)->order('id desc')->paginate(20,false,['query'=>$query]);
  42. $this->assign('lists',$lists);
  43. }else{
  44. $map = array();
  45. if($catid){
  46. $map['catid'] = $catid;
  47. }
  48. //普通用户
  49. $this->assign('qx',0);
  50. $userinfo = Db::name('user')->where('user_login',$username)->find();
  51. $userid = $userinfo['id'];
  52. //分配的信息id
  53. $fenpei = Db::name('user_fp')->where('userid',$userid)->find();
  54. // print_r($fenpei);exit;
  55. if(empty($fenpei)){
  56. $lists = array();
  57. }else{
  58. // $cates = explode(',',$fenpei['cates']);
  59. $cates = $fenpei['cates'];
  60. $from = $fenpei['tiaoshu'];
  61. $map[] = ['create_time','>',$fenpei['from_time']];
  62. $lists = Db::name('message')->where('catid','in',$cates)->where($map)->order('id desc')->limit(0,$from)->select();
  63. // if($from<20){
  64. // $lists = Db::name('message')->where('catid','in',$cates)->where($map)->order('id desc')->limit(0,$from)->select();
  65. // }else{
  66. // $curinfo = Db::name('message')->where('catid','in',$cates)->where($map)->order('id desc')->limit($from,1)->find();
  67. // $curid = $curinfo['id'];
  68. // $lists = Db::name('message')->where('catid','in',$cates)->where($map)->where('id','>',$curid)->order('id desc')->select;
  69. // }
  70. }
  71. $this->assign('lists',$lists);
  72. }
  73. return $this->fetch();
  74. }
  75. public function add(){
  76. return $this->fetch();
  77. }
  78. public function addPost(){
  79. $param = $this->request->param();
  80. if($param['jm_id']){
  81. $info = Db::name('jiameng')->field('title')->where('id',$param['jm_id'])->find();
  82. if(empty($info)){
  83. $this->error('品牌id无效');
  84. }else{
  85. $param['jm_title'] = $info['title'];
  86. }
  87. }
  88. $param['create_time'] = time();
  89. $res = Db::name('message')->insert($param);
  90. if($res){
  91. $this->success('添加成功');
  92. }else{
  93. $this->error('添加失败');
  94. }
  95. }
  96. /**
  97. * 信息分配给用户
  98. */
  99. public function fenpei(){
  100. $param = $this->request->param();
  101. if(count($param['msg'])<1){
  102. $this->error('请选择信息');
  103. }
  104. if(count($param['members'])<1){
  105. $this->error('请选择用户');
  106. }
  107. foreach($param['msg'] as $k=>$v){
  108. foreach($param['members'] as $kk=>$vv){
  109. $data = array(
  110. 'msg_id' => $v,
  111. 'user_id'=> $vv
  112. );
  113. $yicha = Db::name('message_fp')->where($data)->count();
  114. if($yicha){
  115. }else{
  116. $data['create_time'] = time();
  117. Db::name('message_fp')->insert($data);
  118. }
  119. }
  120. }
  121. $this->success('分配成功');
  122. }
  123. public function edit(){
  124. $param = $this->request->param();
  125. isset($param['id']) or $this->error('需要id');
  126. $users = Db::name('user')->where('id','gt',1)->select();
  127. $this->assign('users',$users);
  128. //已分配的
  129. $yifen = Db::name('Message_fp')->where('msg_id',$param['id'])->select();
  130. $yifenarr = array();
  131. foreach($yifen as $k=>$v){
  132. $yifenarr[] = $v['user_id'];
  133. }
  134. $this->assign('yifenarr',$yifenarr);
  135. $info = Db::name('Message')->where('id',$param['id'])->find();
  136. $this->assign('info',$info);
  137. return $this->fetch();
  138. }
  139. public function editPost(){
  140. $param = $this->request->param();
  141. isset($param['id']) or $this->error('需要id');
  142. //先删掉
  143. Db::name('Message_fp')->where('msg_id',$param['id'])->delete();
  144. foreach($param['members'] as $kk=>$vv){
  145. $data = array(
  146. 'msg_id' => $param['id'],
  147. 'user_id'=> $vv,
  148. 'create_time' => time()
  149. );
  150. Db::name('message_fp')->insert($data);
  151. }
  152. $this->success('调整成功');
  153. }
  154. public function edit1(){
  155. $param = $this->request->param();
  156. isset($param['id']) or $this->error('需要id');
  157. $info = Db::name('Message')->where('id',$param['id'])->find();
  158. $this->assign('info',$info);
  159. return $this->fetch();
  160. }
  161. public function editCatePost(){
  162. $param = $this->request->param();
  163. isset($param['id']) or $this->error('需要id');
  164. //先删掉
  165. $res = Db::name('message')->update($param);
  166. $this->success('修改成功');
  167. }
  168. public function delete(){
  169. $param = $this->request->param();
  170. isset($param['id']) or $this->error('需要id');
  171. $res = Db::name('Message')->where('id',$param['id'])->delete();
  172. if($res){
  173. $this->success('删除成功');
  174. }else{
  175. $this->error('删除失败');
  176. }
  177. }
  178. /**
  179. * 获取树的信息
  180. */
  181. public function getAccessTreeData(){
  182. $rs_array=[];
  183. $list=Db::name('category')->order(["list_order" => "ASC"])->select()->toArray();
  184. if(!empty($list)){
  185. foreach($list as $k=>$v){
  186. $rs_array[$v['id']]=$v;
  187. $parents=$this->getDeepParent($v);
  188. foreach($parents as $pv){
  189. $rs_array[$pv['id']]=$pv;
  190. }
  191. }
  192. }else{
  193. $rs_array=$list;
  194. }
  195. if(!empty($rs_array)){
  196. foreach($rs_array as $k=>$v){
  197. $rs_array[$k]['name']=$v['catname'];
  198. $rs_array[$k]['iconSkin']='dept';
  199. }
  200. }
  201. return array_values($rs_array);
  202. }
  203. /**
  204. * 父节点数据
  205. */
  206. public function getDeepParent($data){
  207. $temp_array=[];
  208. $parent_data_info=Db::name('category')->where('id',$data['parent_id'])->find();
  209. if(empty($parent_data_info)){
  210. return $temp_array;
  211. }
  212. if(!empty($parent_data_info)){
  213. $temp_array[$parent_data_info['id']]=$parent_data_info;
  214. $rs_array=$this->getDeepParent($parent_data_info);
  215. }
  216. return array_merge($temp_array,$rs_array);
  217. }
  218. public function shanghu(){
  219. $param = $this->request->param();
  220. $shname = isset($param['shname'])?trim($param['shname']):'';
  221. $map = array();
  222. if($shname){
  223. $map['a.user_login'] = $shname;
  224. }
  225. $shanghu_list = Db::name('user')->alias('a')->field('a.user_login,a.id as shid,b.*')->leftJoin('jm_user_fp b','a.id=b.userid')->where('a.user_type',3)->where($map)->paginate(20);
  226. $this->assign('lists',$shanghu_list);
  227. //分类信息
  228. $cates = Db::name('category')->select();
  229. $cate_arr = array();
  230. foreach($cates as $k=>$v){
  231. $cate_arr[$v['id']] = $v['catname'];
  232. }
  233. $this->assign('shname',$shname);
  234. $this->assign('cate_arr',$cate_arr);
  235. return $this->fetch();
  236. }
  237. /**
  238. * 编辑商户
  239. */
  240. public function shanghuEdit(){
  241. $param = $this->request->param();
  242. isset($param['userid']) or $this->error('需要id');
  243. $info = array();
  244. $info = Db::name('user_fp')->where('userid',$param['userid'])->find();
  245. $userinfo = Db::name('user')->where('id',$param['userid'])->find();
  246. if(empty($info)){
  247. $ypz = 0;
  248. }else{
  249. $ypz = 1;
  250. }
  251. //分类信息
  252. $cates = Db::name('category')->where('parent_id','gt',0)->select();
  253. $this->assign('cates',$cates);
  254. $this->assign('userinfo',$userinfo);
  255. $this->assign('ypz',$ypz);
  256. $this->assign('info',$info);
  257. return $this->fetch();
  258. }
  259. public function shanghuPost(){
  260. $param = $this->request->param();
  261. isset($param['from_time'])&&$param['from_time']!='' or $this->error('需要开始时间');
  262. // isset($param['end_time'])&&$param['end_time']!='' or $this->error('需要开始时间');
  263. isset($param['cates'])&&count($param['cates'])>0 or $this->error('请选择至少一个分类');
  264. $param['cates'] = implode(",",$param['cates']);
  265. $param['from_time'] = strtotime($param['from_time']);
  266. $param['end_time'] = strtotime($param['end_time']);
  267. if($param['ypz']==1){
  268. //更新
  269. unset($param['ypz']);
  270. $param['update_time'] = time();
  271. $res = Db::name('user_fp')->where('userid',$param['userid'])->update($param);
  272. }else{
  273. //添加
  274. unset($param['ypz']);
  275. $param['create_time'] = time();
  276. $res = Db::name('user_fp')->insert($param);
  277. }
  278. if($res){
  279. $this->success('调整成功');
  280. }else{
  281. $this->error('调整失败');
  282. }
  283. }
  284. }