StoreInfoMana.php 5.9 KB

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