DefaultController.php 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291
  1. <?php
  2. namespace addons\Album\api\modules\v1\controllers;
  3. use addons\Album\common\models\AddonsAlbum;
  4. use addons\Album\common\models\AddonsAlbumDateStatistics;
  5. use addons\Album\common\models\AddonsAlbumPage;
  6. use addons\Album\common\models\AddonsAlbumStatistics;
  7. use addons\Album\common\models\AddonsAlbumVisit;
  8. use common\enums\AddonsEnum;
  9. use common\enums\StatusEnum;
  10. use common\models\goods\Goods;
  11. use common\models\order\Order;
  12. use common\models\order\OrderDetail;
  13. use Yii;
  14. use api\controllers\OnAuthController;
  15. use yii\db\Exception;
  16. /**
  17. * 默认控制器
  18. *
  19. * Class DefaultController
  20. * @package addons\Album\api\modules\v1\controllers
  21. */
  22. class DefaultController extends OnAuthController
  23. {
  24. public $modelClass = '';
  25. /**
  26. * 不用进行登录验证的方法
  27. *
  28. * 例如: ['index', 'update', 'create', 'view', 'delete']
  29. * 默认全部需要验证
  30. *
  31. * @var array
  32. */
  33. protected $authOptional = ['index','order','detail','visit'];
  34. /**
  35. * @Author: ltm 相册首页
  36. * @DateTime: 2022/2/17 0017 10:34
  37. * @Copyright: copyright (c) 2021 广东七件事集团
  38. * @param $data
  39. * @return string
  40. */
  41. public function actionIndex()
  42. {
  43. $retuest = Yii::$app->request;
  44. if ($retuest->isGet) {
  45. $params = Yii::$app->request->get();
  46. $res = Yii::$app->services->validate->validate($params, [
  47. [['page'],'safe']
  48. ]);
  49. $params = AddonsAlbum::exceptNullVal($params);
  50. if ($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage());
  51. $where[] = ['=', 'mall_id', $this->mall_id];
  52. $where[] = ['>=','status',StatusEnum::DISABLED];
  53. $order = 'id desc';
  54. $params = array('where' => $where, 'order'=>$order);
  55. $params['select'] = 'id,title,album_image';
  56. $params['limit'] = 15;
  57. $list = AddonsAlbum::listPage($params, false, true);
  58. $this->success('操作成功', $list);
  59. }
  60. }
  61. /**
  62. * @Author: ltm 相册详细
  63. * @DateTime: 2022/2/17 0017 15:51
  64. * @Copyright: copyright (c) 2021 广东七件事集团
  65. * @param $data
  66. * @return string
  67. */
  68. public function actionDetail(){
  69. $retuest = Yii::$app->request;
  70. if ($retuest->isGet) {
  71. $params = Yii::$app->request->get();
  72. $res = Yii::$app->services->validate->validate($params, [
  73. [['album_id'],'required'],
  74. [['page','pid','album_page_id'],'safe'],
  75. ]);
  76. $params = AddonsAlbum::exceptNullVal($params);
  77. if ($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage());
  78. $where[] = ['=', 'id', $params['album_id']];
  79. $detail = AddonsAlbum::getOne($where, true,['user']);
  80. $page_where[] = ['=','album_id',$params['album_id']];
  81. $page_where[] = ['=','status',StatusEnum::ENABLED];
  82. $params_data = array('where' => $page_where,'limit'=>12,'order' => 'sort');
  83. $page_data = AddonsAlbumPage::listPage($params_data,false,true);
  84. if($page_data){
  85. foreach ($page_data['list'] as $k => $v){
  86. if($v['goods_ids']){
  87. $goods_ids = explode(',',$v['goods_ids']);
  88. $goods_where = [];
  89. $goods_where[] = ['in','id',$goods_ids];
  90. $select = "goods_name,price,original_price,cover_pic,bannar_pic,stock,status,sales_num,virtual_sales,id";
  91. $goods_list = Goods::lists(['where' => $goods_where,'select' => $select],true);
  92. $page_data['list'][$k]['goods_list'] = $goods_list;
  93. $page_data['list'][$k]['goods_ids'] = $goods_ids;
  94. }else{
  95. $page_data['list'][$k]['goods_list'] = [];
  96. $page_data['list'][$k]['goods_ids'] = [];
  97. }
  98. }
  99. }
  100. if($detail['goods_ids']){
  101. if($detail['goods_ids']){
  102. $goods_ids = explode(',',$detail['goods_ids']);
  103. $goods_where = [];
  104. $goods_where[] = ['in','id',$goods_ids];
  105. $goods_list = Goods::lists(['where' => $goods_where],true);
  106. $page_data['goods_list'] = $goods_list;
  107. $page_data['goods_ids'] = $goods_ids;
  108. }else{
  109. $page_data['goods_list'] = [];
  110. $page_data['goods_ids'] = [];
  111. }
  112. }
  113. $list = array_merge($detail,$page_data);
  114. //统计分享
  115. // if(!empty($params['pid'])&&!empty(album_page_id)){
  116. // $params['mall_id'] = $this->mall_id;
  117. // //记录会员的访问记录
  118. // $params['user_id'] = $this->user_id;
  119. // $params['type'] = 'shares_click'; //views //shares
  120. // $res = AddonsAlbumVisit::handle($params);
  121. // }
  122. $this->success('操作成功', $list);
  123. }
  124. }
  125. /**
  126. * @Author: ltm 上一页下一页
  127. * @DateTime: 2022/2/17 0017 15:56
  128. * @Copyright: copyright (c) 2021 广东七件事集团
  129. * @param $data
  130. * @return string
  131. */
  132. public function actionPage(){
  133. $retuest = Yii::$app->request;
  134. if ($retuest->isGet) {
  135. $params = Yii::$app->request->get();
  136. $res = Yii::$app->services->validate->validate($params, [
  137. [['album_id','page'],'required']
  138. ]);
  139. $params = AddonsAlbum::exceptNullVal($params);
  140. if ($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage());
  141. $where[] = ['=','album_id',$params['album_id']];
  142. $params_data = array('where' => $where,'limit'=>1);
  143. $page_data = AddonsAlbumPage::listPage($params_data,false,true);
  144. if($page_data){
  145. foreach ($page_data['list'] as $k => $v){
  146. if($v['goods_ids']){
  147. $goods_ids = explode(',',$v['goods_ids']);
  148. $goods_where = [];
  149. $goods_where[] = ['in','id',$goods_ids];
  150. $select = "goods_name,price,original_price,cover_pic,bannar_pic,stock,status";
  151. $goods_list = Goods::lists(['where' => $goods_where,'select' => $select],true);
  152. $page_data['list'][$k]['goods_list'] = $goods_list;
  153. $page_data['list'][$k]['goods_ids'] = $goods_ids;
  154. }else{
  155. $page_data['list'][$k]['goods_list'] = [];
  156. $page_data['list'][$k]['goods_ids'] = [];
  157. }
  158. }
  159. }
  160. $this->success('操作成功', $page_data);
  161. }
  162. }
  163. /**
  164. * @Author: ltm 访问画册
  165. * @DateTime: 2022/2/17 0017 15:46
  166. * @Copyright: copyright (c) 2021 广东七件事集团
  167. * @param $data
  168. * @return string
  169. */
  170. public function actionVisit(){
  171. $retuest = Yii::$app->request;
  172. if ($retuest->isGet) {
  173. $params = Yii::$app->request->get();
  174. $res = Yii::$app->services->validate->validate($params, [
  175. [['album_id','album_page_id','post_type'],'required'],
  176. ]);
  177. $params = AddonsAlbumVisit::exceptNullVal($params);
  178. if ($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage());
  179. $params['mall_id'] = $this->mall_id;
  180. //记录会员的访问记录
  181. $params['user_id'] = $this->user_id;
  182. $params['type'] = 'views'; //views //shares
  183. $res = AddonsAlbumVisit::handle($params);
  184. if ($res === false) throw new Exception(AddonsAlbumVisit::getStaticError());
  185. $this->success('操作成功');
  186. }
  187. }
  188. /**
  189. * @Author: ltm 商品访问
  190. * @DateTime: 2022/2/17 0017 15:46
  191. * @Copyright: copyright (c) 2021 广东七件事集团
  192. * @param $data
  193. * @return string
  194. */
  195. public function actionVisitGoods(){
  196. $retuest = Yii::$app->request;
  197. if ($retuest->isGet) {
  198. $params = Yii::$app->request->get();
  199. $res = Yii::$app->services->validate->validate($params, [
  200. [['album_id','album_page_id','goods_id','type'],'required'],
  201. ]);
  202. $params = AddonsAlbumVisit::exceptNullVal($params);
  203. if ($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage());
  204. $params['mall_id'] = $this->mall_id;
  205. //记录会员的访问记录
  206. $params['user_id'] = $this->user_id;
  207. if($params['type'] == 'goods_views'){
  208. $params['type'] = 'goods_views';
  209. }else{
  210. $params['type'] = 'goods_click';
  211. }
  212. $res = AddonsAlbumVisit::handle($params);
  213. if ($res === false) throw new Exception(AddonsAlbumVisit::getStaticError());
  214. $this->success('操作成功');
  215. }
  216. }
  217. /**
  218. * @Author: ltm
  219. * @DateTime: 2022/2/21 0021 14:05
  220. * @Copyright: copyright (c) 2021 广东七件事集团
  221. * @param $data
  222. * @return string
  223. */
  224. public function actionShare(){
  225. $retuest = Yii::$app->request;
  226. if ($retuest->isGet) {
  227. $params = Yii::$app->request->get();
  228. $res = Yii::$app->services->validate->validate($params, [
  229. [['album_id', 'album_page_id','type'], 'required'],
  230. ]);
  231. $params = AddonsAlbumVisit::exceptNullVal($params);
  232. if ($res === false) return $this->error(Yii::$app->services->validate->getErrorMessage());
  233. $params['mall_id'] = $this->mall_id;
  234. //记录会员的访问记录
  235. $params['user_id'] = $this->user_id;
  236. if($params['type'] == 'shares'){
  237. $params['type'] = 'shares'; //views //shares
  238. }else{
  239. $params['type'] = 'shares_click'; //views //shares
  240. }
  241. $res = AddonsAlbumVisit::handle($params);
  242. if ($res === false) throw new Exception(AddonsAlbumVisit::getStaticError());
  243. $this->success('操作成功');
  244. }
  245. }
  246. /**
  247. * @Author: ltm 测试接口
  248. * @DateTime: 2022/2/17 0017 16:34
  249. * @Copyright: copyright (c) 2021 广东七件事集团
  250. * @param $data
  251. * @return string
  252. */
  253. public function actionOrder(){
  254. // 查询订单
  255. $id = 6843;
  256. $order = Order::findOne(['id' => $id])->toArray();
  257. $user_id = $order['user_id'];
  258. $album = AddonsAlbumVisit::find()->orderBy('updated_at desc')->where(['user_id' => $user_id,'mall_id' => $order['mall_id']])->asArray()->one();
  259. if($order['marketing_type'] == AddonsEnum::ADDONS_NAME_ALBUM) {
  260. $detail_where['where'][] = ['order_id' => $order['id']];
  261. $detail_where['select'] = 'goods_id,price,num,id';
  262. $order_detail = OrderDetail::lists($detail_where);
  263. if ($order_detail) {
  264. foreach ($order_detail as $k => $v) {
  265. $params['goods_id'] = $v['goods_id'];
  266. $params['price'] = $v['price'];
  267. $params['order_detail_id'] = $v['id'];
  268. }
  269. }
  270. $params['order_count'] = 1;
  271. $params['album_id'] = $album['album_id'];
  272. $params['user_id'] = $album['user_id'];
  273. $params['album_page_id'] = $album['album_page_id'];
  274. $params['pay_count'] = 1;
  275. $params['order_id'] = $order['id'];
  276. $params['goods_amount'] = $order['pay_money'];
  277. $params['amount'] = $order['pay_money'];
  278. $params['mall_id'] = $order['mall_id'];
  279. $params['type'] = 'order';
  280. $res = AddonsAlbumVisit::handle($params);
  281. }
  282. }
  283. }