StoreInfoMana.php 5.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176
  1. <?php
  2. namespace app\admin\controller\store;
  3. use app\admin\controller\AuthController;
  4. use app\admin\library\FormBuilder;
  5. use app\admin\model\system\SystemAttachment;
  6. use service\UtilService as Util;
  7. use service\JsonService as Json;
  8. use service\UploadService as Upload;
  9. use think\Request;
  10. use think\Url;
  11. use app\admin\model\wechat\ArticleCategory as ArticleCategoryModel;
  12. use app\admin\model\wechat\WechatNews as WechatNewsModel;
  13. /**
  14. * 资讯管理 控制器
  15. * Class StoreInfoMana
  16. * @package app\admin\controller\store
  17. */
  18. class StoreInfoMana extends AuthController
  19. {
  20. /**
  21. * 新闻管理
  22. * */
  23. public function index($is_list=0){
  24. if(!$is_list) return $this->failed('数据不存在');
  25. echo $is_list;
  26. exit();
  27. $where = Util::getMore([
  28. ['status',''],
  29. ['title',''],
  30. ],$this->request);
  31. $this->assign('where',$where);
  32. $this->assign(ArticleCategoryModel::systemPage($where));
  33. return $this->fetch();
  34. }
  35. /**
  36. * 添加分类管理
  37. * */
  38. public function create(){
  39. FormBuilder::text('title','分类昵称');
  40. FormBuilder::textarea('intr','分类简介');
  41. FormBuilder::select('new_id','图文列表',function(){
  42. $list = \app\admin\model\wechat\WechatNews::getNews();
  43. $options = [];
  44. foreach ($list as $id=>$roleName){
  45. $options[] = ['label'=>$roleName,'value'=>$id];
  46. }
  47. return $options;
  48. })->multiple()->filterable();
  49. FormBuilder::upload('image','分类图片');
  50. FormBuilder::number('sort','排序',0);
  51. FormBuilder::radio('status','状态',[['value'=>1,'label'=>'显示'],['value'=>0,'label'=>'隐藏']],1);
  52. $rules = FormBuilder::builder()->getContent();
  53. $this->assign(['title'=>'编辑菜单','rules'=>$rules,'save'=>Url::build('save')]);
  54. return $this->fetch();
  55. }
  56. /**
  57. * TODO 上传图片
  58. * */
  59. public function upload()
  60. {
  61. $res = Upload::image('file','article/'.date('Ymd'));
  62. SystemAttachment::attachmentAdd($res['name'],$res['size'],$res['type'],$res['dir'],$res['thumb_path'],2,$res['image_type'],$res['time']);
  63. if(is_array($res))
  64. return Json::successful('图片上传成功!',['name'=>$res['name'],'url'=>Upload::pathToUrl($res['thumb_path'])]);
  65. else
  66. return Json::fail($res);
  67. }
  68. /**
  69. * 保存分类管理
  70. * */
  71. public function save(Request $request){
  72. $data = Util::postMore([
  73. 'title',
  74. 'intr',
  75. ['new_id',[]],
  76. ['image',[]],
  77. ['sort',0],
  78. 'status',],$request);
  79. if(!$data['title']) return Json::fail('请输入分类名称');
  80. if(count($data['image']) != 1) return Json::fail('请选择分类图片,并且只能上传一张');
  81. if($data['sort'] < 0) return Json::fail('排序不能是负数');
  82. $data['add_time'] = time();
  83. $data['image'] = $data['image'][0];
  84. $new_id = $data['new_id'];
  85. unset($data['new_id']);
  86. $res = ArticleCategoryModel::set($data);
  87. if(!WechatNewsModel::saveBatchCid($res['id'],implode(',',$new_id))) return Json::fail('文章列表添加失败');
  88. return Json::successful('添加分类成功!');
  89. }
  90. /**
  91. * 修改分类
  92. * */
  93. public function edit($id){
  94. $this->assign(['title'=>'编辑菜单','read'=>Url::build('read',array('id'=>$id)),'update'=>Url::build('update',array('id'=>$id))]);
  95. return $this->fetch();
  96. }
  97. public function read($id)
  98. {
  99. $article = ArticleCategoryModel::get($id)->getData();
  100. if(!$article) return Json::fail('数据不存在!');
  101. FormBuilder::text('title','分类昵称',$article['title']);
  102. FormBuilder::textarea('intr','分类简介',$article['intr']);
  103. $arr = ArticleCategoryModel::getArticle($id,'id,title,cid');//子文章
  104. $new_id = array();
  105. foreach ($arr as $k=>$v){
  106. $new_id[$k] = $k;
  107. }
  108. FormBuilder::select('new_id','文章列表',function(){
  109. $list = \app\admin\model\wechat\WechatNews::getNews();
  110. $options = [];
  111. foreach ($list as $id=>$roleName){
  112. $options[] = ['label'=>$roleName,'value'=>$id];
  113. }
  114. return $options;
  115. },$new_id)->multiple();
  116. FormBuilder::upload('image','分类图片')->defaultFileList($article['image']);
  117. FormBuilder::number('sort','排序',$article['sort']);
  118. FormBuilder::radio('status','状态',[['value'=>1,'label'=>'显示'],['value'=>0,'label'=>'隐藏']],$article['status']);
  119. return FormBuilder::builder();
  120. }
  121. public function update(Request $request, $id)
  122. {
  123. $data = Util::postMore([
  124. 'title',
  125. 'intr',
  126. ['new_id',[]],
  127. ['image',[]],
  128. ['sort',0],
  129. 'status',],$request);
  130. if(!$data['title']) return Json::fail('请输入分类名称');
  131. if(count($data['image']) != 1) return Json::fail('请选择分类图片,并且只能上传一张');
  132. if($data['sort'] < 0) return Json::fail('排序不能是负数');
  133. $data['image'] = $data['image'][0];
  134. // dump($data);
  135. // exit;
  136. if(!ArticleCategoryModel::get($id)) return Json::fail('编辑的记录不存在!');
  137. if(!WechatNewsModel::saveBatchCid($id,implode(',',$data['new_id']))) return Json::fail('文章列表添加失败');
  138. unset($data['new_id']);
  139. ArticleCategoryModel::edit($data,$id);
  140. return Json::successful('修改成功!');
  141. }
  142. /**
  143. * 删除分类
  144. * */
  145. public function delete($id)
  146. {
  147. $res = ArticleCategoryModel::delArticleCategory($id);
  148. if(!$res)
  149. return Json::fail(ArticleCategoryModel::getErrorInfo('删除失败,请稍候再试!'));
  150. else
  151. return Json::successful('删除成功!');
  152. }
  153. }