PublicApi.php 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. <?php
  2. /**
  3. *
  4. * @author: xaboy<365615158@qq.com>
  5. * @day: 2017/12/12
  6. */
  7. namespace app\wap\controller;
  8. use app\admin\model\system\SystemAttachment;
  9. use app\wap\model\store\StoreCombination;
  10. use app\admin\model\system\SystemGroup;
  11. use app\admin\model\system\SystemGroupData;
  12. use app\wap\model\store\StoreCategory;
  13. use app\wap\model\store\StoreCouponIssue;
  14. use app\wap\model\store\StoreProduct;
  15. use app\wap\model\wap\ArticleCategory;
  16. use service\FileService;
  17. use service\JsonService;
  18. use service\UploadService;
  19. use service\UtilService;
  20. use think\Cache;
  21. class PublicApi
  22. {
  23. public function get_cid_article($cid = 0,$first = 0,$limit = 8)
  24. {
  25. $list = ArticleCategory::cidByArticleList($cid,$first,$limit,'id,title,image_input,visit,add_time,synopsis,url')?:[];
  26. foreach ($list as &$article){
  27. $article['add_time'] = date('Y-m-d H:i',$article['add_time']);
  28. }
  29. return JsonService::successful('ok',$list);
  30. }
  31. public function get_video_list($key = '', $first = 0,$limit = 8)
  32. {
  33. $gid = SystemGroup::where('config_name',$key)->value('id');
  34. if(!$gid){
  35. $list = [];
  36. }else{
  37. $video = SystemGroupData::where('gid',$gid)->where('status',1)->order('sort DESC,add_time DESC')->limit($first,$limit)->select();
  38. $list = SystemGroupData::tidyList($video);
  39. }
  40. return JsonService::successful('ok',$list);
  41. }
  42. public function get_issue_coupon_list($limit = 2)
  43. {
  44. $list = StoreCouponIssue::validWhere('A')->join('__STORE_COUPON__ B','A.cid = B.id')
  45. ->field('A.*,B.coupon_price,B.use_min_price')->order('id DESC')->limit($limit)->select()->toArray();
  46. return JsonService::successful($list);
  47. }
  48. public function get_category_product_list($limit = 4)
  49. {
  50. $cateInfo = StoreCategory::where('is_show',1)->where('pid',0)->field('id,cate_name,pic')
  51. ->order('sort DESC')->select()->toArray();
  52. $result = [];
  53. $StoreProductModel = new StoreProduct;
  54. foreach ($cateInfo as $k=>$cate){
  55. $cate['product'] = $StoreProductModel::alias('A')->where('A.is_del',0)->where('A.is_show',1)
  56. ->where('A.mer_id',0)->where('B.pid',$cate['id'])
  57. ->join('__STORE_CATEGORY__ B','B.id = A.cate_id')
  58. ->order('A.is_benefit DESC,A.sort DESC,A.add_time DESC')
  59. ->limit($limit)->field('A.id,A.image,A.store_name,IFNULL(A.sales,0) + IFNULL(A.ficti,0) as sales,A.price,A.unit_name')->select()->toArray();
  60. if(count($cate['product']))
  61. $result[] = $cate;
  62. }
  63. return JsonService::successful($result);
  64. }
  65. /** 首页获取推荐产品
  66. * @param int $first
  67. * @param int $limit
  68. */
  69. public function get_product_list($first = 0,$limit = 8)
  70. {
  71. $StoreProductmodel = StoreProduct::validWhere();
  72. if(input('type')=='is_best')
  73. $StoreProductmodel = $StoreProductmodel->where('is_best',1);
  74. if(input('type')=='is_hot')
  75. $StoreProductmodel = $StoreProductmodel->where('is_hot',1);
  76. if(input('type')=='is_benefit')
  77. $StoreProductmodel = $StoreProductmodel->where('is_benefit',1);
  78. if(input('type')=='is_new')
  79. $StoreProductmodel = $StoreProductmodel->where('is_new',1);
  80. if(input('type')=='is_postage')
  81. $StoreProductmodel = $StoreProductmodel->where('is_postage',1);
  82. $list = $StoreProductmodel->where('mer_id',0)->order('is_best DESC,sort DESC,add_time DESC')
  83. ->limit($first,$limit)->field('id,image,store_name,IFNULL(sales,0) + IFNULL(ficti,0) as sales,price,unit_name')->select()->toArray();
  84. return JsonService::successful($list);
  85. }
  86. public function get_best_product_list($first = 0,$limit = 8)
  87. {
  88. $list = StoreProduct::validWhere()->where('mer_id',0)->order('is_best DESC,sort DESC,add_time DESC')
  89. ->limit($first,$limit)->field('id,image,store_name,IFNULL(sales,0) + IFNULL(ficti,0) as sales,price,unit_name')->select()->toArray();
  90. return JsonService::successful($list);
  91. }
  92. public function wechat_media_id_by_image($mediaIds = '')
  93. {
  94. if(!$mediaIds) return JsonService::fail('参数错误');
  95. $mediaIds = explode(',',$mediaIds);
  96. $temporary = \app\core\util\WechatService::materialTemporaryService();
  97. $pathList = [];
  98. foreach ($mediaIds as $mediaId){
  99. if(!$mediaId) continue;
  100. try{
  101. $content = $temporary->getStream($mediaId);
  102. }catch (\Exception $e){
  103. continue;
  104. }
  105. $name = substr(md5($mediaId),12,20).'.jpg';
  106. $res = UploadService::imageStream($name,$content,'wechat/media');
  107. if(!is_array($res)) return JsonService::fail($res);
  108. SystemAttachment::attachmentAdd($res['name'],$res['size'],$res['type'],$res['dir'],$res['thumb_path'],1,$res['image_type'],$res['time']);
  109. $pathList[] = UtilService::pathToUrl($res['dir']);
  110. }
  111. return JsonService::successful($pathList);
  112. }
  113. public function get_pink_host($limit = 0){
  114. $list = StoreCombination::getCombinationHost($limit);
  115. if($list) return JsonService::successful($list);
  116. else return JsonService::successful([]);
  117. }
  118. }