DefaultController.php 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241
  1. <?php
  2. namespace addons\Album\backend\controllers;
  3. use addons\Album\common\models\AddonsAlbum;
  4. use addons\Album\common\models\AddonsAlbumPage;
  5. use common\enums\StatusEnum;
  6. use common\models\common\PlatformSetting;
  7. use common\models\goods\Goods;
  8. use common\models\user\User;
  9. use Yii;
  10. use common\controllers\AddonsController;
  11. use yii\db\Exception;
  12. /**
  13. * 默认控制器
  14. *
  15. * Class DefaultController
  16. * @package addons\Album\backend\controllers
  17. */
  18. class DefaultController extends BaseController
  19. {
  20. public $enableCsrfValidation = false;
  21. /**
  22. * @Author: ltm
  23. * @DateTime: 2022/2/15 0015 10:01
  24. * @Copyright: copyright (c) 2021 广东七件事集团
  25. * @param $data
  26. * @return string
  27. */
  28. public function actionIndex()
  29. {
  30. $retuest = Yii::$app->request;
  31. if ($retuest->isAjax) {
  32. if ($retuest->isPost) {
  33. $params = Yii::$app->request->post();
  34. $res = Yii::$app->services->validate->validate($params, [
  35. [['page'],'safe']
  36. ]);
  37. $params = AddonsAlbum::exceptNullVal($params);
  38. if ($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage());
  39. $where[] = ['=', 'mall_id', $this->mall_id];
  40. $where[] = ['>=','status',StatusEnum::DISABLED];
  41. $order = 'id desc';
  42. $params = array('where' => $where, 'order'=>$order);
  43. $list = AddonsAlbum::listPage($params, false, true);
  44. $get_system_setting = PlatformSetting::getConfByGroup('system', true);
  45. $list['api_url'] = $get_system_setting['api_url']['value'];
  46. $this->success('操作成功', $list);
  47. }
  48. } else {
  49. return $this->render($this->action->id);
  50. }
  51. }
  52. /**
  53. * 编辑
  54. * @Author: ltm
  55. * @DateTime: 2021/12/13 0021 18:29
  56. * @Copyright: copyright (c) 2021 广东七件事集团
  57. * @return mixed|string|void
  58. */
  59. public function actionEdit()
  60. {
  61. try {
  62. $request = Yii::$app->request;
  63. if ($request->isAjax) {
  64. //提交内容
  65. if ($request->isPost) {
  66. $params = Yii::$app->request->post();
  67. if($params['type'] == StatusEnum::ENABLED){ //删除操作
  68. $res = Yii::$app->services->validate->validate($params, [
  69. [['id','status'],'safe']
  70. ]);
  71. }else{
  72. $res = Yii::$app->services->validate->validate($params, [
  73. [['title'], 'required'],
  74. [['page_data','goods_ids','bg_type','id','album_image','bg_image','bg_video','bg_color','size_type','type'],'safe'],
  75. [['file','share_title','share_desc','share_image','author_id','author_nick','author_mobile'],'safe']
  76. ]);
  77. }
  78. if(!$params['id']){
  79. $params = AddonsAlbum::exceptNullVal($params);
  80. }
  81. if ($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage());
  82. $params['mall_id'] = $this->mall_id;
  83. //添加默认封面
  84. if(!$params['album_image']){
  85. $get_system_setting = PlatformSetting::getConfByGroup('system', true);
  86. $api_url = $get_system_setting['api_url']['value'];
  87. $params['album_image'] = $api_url.'/resources/addons/album/album.jpg';
  88. }
  89. if(!empty($params['id'])) $params['updated_at'] = time();else $params['create_at'] = time();//更新时间
  90. //删除操作
  91. if(isset($params['status']) && in_array($params['status'],[StatusEnum::DISABLED,StatusEnum::ENABLED,StatusEnum::DELETE])) {
  92. $params['status'] = $params['status'];
  93. }
  94. //复制
  95. $type = $params['type'];
  96. if($type == '2') unset($params['id'],$params['type']);
  97. //统计数量
  98. $goods_count = 0;
  99. $page_count = 0;
  100. if(!empty($params['page_data'])){
  101. $page_count = count($params['page_data']);
  102. foreach ($params['page_data'] as $k => $v){
  103. if($v['goods_ids']){
  104. //$v['goods_ids'] = explode(',',$v['goods_ids']);
  105. $goods_count += count($v['goods_ids']);
  106. }
  107. }
  108. }
  109. if(!empty($params['goods_ids'])) {
  110. $goods_count += count($params['goods_ids']);
  111. $params['goods_ids'] = implode(',',$params['goods_ids']);
  112. }
  113. $where[] = ['=', 'mall_id', $this->mall_id];
  114. $where[] = ['>', 'status', StatusEnum::DISABLED];
  115. $params['goods_count'] = $goods_count;
  116. $params['page_num'] = $page_count;
  117. $res = AddonsAlbum::setData($params);
  118. //插入页面
  119. if($res&&!empty($params['page_data'])){
  120. foreach ($params['page_data'] as $k => $v){
  121. if(is_array($v['goods_ids'])) $v['goods_ids'] = implode(',',$v['goods_ids']);
  122. if($v['id'] && $type != '2'){
  123. $page_params['id'] = $v['id'];
  124. }else{
  125. $page_params['id'] = '';
  126. }
  127. $page_params['mall_id'] = $this->mall_id;
  128. $page_params['album_id'] = $res->id;
  129. $page_params['image'] = $v['image'];
  130. if($v['goods_ids']){
  131. $page_params['goods_ids'] = $v['goods_ids'];
  132. }else{
  133. $page_params['goods_ids'] = '';
  134. }
  135. $page_params['sort'] = $k;
  136. $page_params['status'] = StatusEnum::ENABLED;
  137. AddonsAlbumPage::setData($page_params);
  138. }
  139. }
  140. if ($res === false) throw new Exception(AddonsAlbum::getStaticError());
  141. $data['id'] = $res->id;
  142. return $this->success('操作成功',$data);
  143. }
  144. if($request->isGet){
  145. $params = Yii::$app->request->get();
  146. $res = Yii::$app->services->validate->validate($params, [
  147. [['id'],'required']
  148. ]);
  149. $params = AddonsAlbum::exceptNullVal($params);
  150. if ($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage());
  151. $detail = AddonsAlbum::getOne([['id' => $params['id']]],true,['user']);
  152. //$detail['bg_video'] = json_decode($detail['bg_video']);
  153. $where[] = ['=','album_id',$params['id']];
  154. $where[] = ['=','status',StatusEnum::ENABLED];
  155. $params = array('where' => $where,'order' => 'sort');
  156. $page_list = AddonsAlbumPage::lists($params,true);
  157. if($page_list){
  158. foreach ($page_list as $k=>$v){
  159. if($v['goods_ids']){
  160. $goods_ids = explode(',',$v['goods_ids']);
  161. $goods_where = [];
  162. $goods_where[] = ['in','id',$goods_ids];
  163. $goods_list = Goods::lists(['where' => $goods_where],true);
  164. $page_list[$k]['goods_list'] = $goods_list;
  165. $page_list[$k]['goods_ids'] = $goods_ids;
  166. }else{
  167. $page_list[$k]['goods_list'] = [];
  168. $page_list[$k]['goods_ids'] = [];
  169. }
  170. }
  171. }
  172. if($detail['goods_ids']){
  173. $goods_ids = explode(',',$detail['goods_ids']);
  174. $goods_where = [];
  175. $goods_where[] = ['in','id',$goods_ids];
  176. $goods_list = Goods::lists(['where' => $goods_where],true);
  177. $detail['goods_list'] = $goods_list;
  178. $detail['goods_ids'] = $goods_ids;
  179. }else{
  180. $detail['goods_list'] = [];
  181. $detail['goods_ids'] = [];
  182. }
  183. $detail['page_data'] = $page_list;
  184. $this->success('操作成功', $detail);
  185. }
  186. }
  187. } catch (\Exception $e) {
  188. return $this->error($e->getMessage(), []);
  189. }
  190. $params = Yii::$app->request->get();
  191. return $this->render($this->action->id,$params);
  192. }
  193. /**
  194. * @Author: ltm
  195. * @DateTime: 2022/2/21 0021 9:27
  196. * @Copyright: copyright (c) 2021 广东七件事集团
  197. * @param $data
  198. * @return string
  199. */
  200. public function actionDelpage(){
  201. $request = Yii::$app->request;
  202. if($request->isPost) {
  203. $params = Yii::$app->request->post();
  204. $res = Yii::$app->services->validate->validate($params, [
  205. [['id'], 'required']
  206. ]);
  207. $params = AddonsAlbum::exceptNullVal($params);
  208. if ($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage());
  209. $params['status'] = StatusEnum::DELETE;
  210. $params['mall_id'] = $this->mall_id;
  211. $res = AddonsAlbumPage::setData($params);
  212. if ($res === false) throw new Exception(AddonsAlbumPage::getStaticError());
  213. $this->success('操作成功');
  214. }
  215. }
  216. /**
  217. * @Author: ltm 获取会员信息
  218. * @DateTime: 2022/2/17 0017 16:59
  219. * @Copyright: copyright (c) 2021 广东七件事集团
  220. * @param $data
  221. * @return string
  222. */
  223. public function actionUser(){
  224. $retuest = Yii::$app->request;
  225. if ($retuest->isAjax && $retuest->isPost) {
  226. $params = Yii::$app->request->post();
  227. $res = Yii::$app->services->validate->validate($params,[[['keyword'], 'string'], [['keyword'], 'required']]);
  228. if($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage());
  229. // 搜索用户列表
  230. $list = User::getUserList([['mall_id' => $this->mall_id],['like','mobile',$params['keyword']]], 'id,mobile,nickname,avatar_url', [], 1);
  231. $this->success('获取成功', $list);
  232. }
  233. }
  234. }