PublicApi.php 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. <?php
  2. // +----------------------------------------------------------------------
  3. // | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
  4. // +----------------------------------------------------------------------
  5. // | Copyright (c) 2016~2020 https://www.crmeb.com All rights reserved.
  6. // +----------------------------------------------------------------------
  7. // | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
  8. // +----------------------------------------------------------------------
  9. // | Author: CRMEB Team <admin@crmeb.com>
  10. // +----------------------------------------------------------------------
  11. namespace app\wap\controller;
  12. use app\wap\model\user\SmsCode;
  13. use app\admin\model\system\SystemGroup;
  14. use app\admin\model\system\SystemGroupData;
  15. use app\wap\model\store\StoreCategory;
  16. use app\wap\model\store\StoreProduct;
  17. use app\wap\model\wap\ArticleCategory;
  18. use service\AliMessageService;
  19. use service\JsonService;
  20. use service\sms\storage\Sms;
  21. use service\SystemConfigService;
  22. use think\Session;
  23. class PublicApi
  24. {
  25. /*
  26. * 发送短信验证码
  27. * @param string $phone
  28. * */
  29. public function code($phone = '')
  30. {
  31. $name = "is_phone_code" . $phone;
  32. if ($phone == '') return JsonService::fail('请输入手机号码!');
  33. $time = Session::get($name, 'wap');
  34. if ($time < time() + 60) Session::delete($name, 'wap');
  35. if (Session::has($name, 'wap') && $time < time()) return JsonService::fail('您发送验证码的频率过高,请稍后再试!');
  36. $code = AliMessageService::getVerificationCode();
  37. SmsCode::set(['tel' => $phone, 'code' => $code, 'last_time' => time() + 300]);
  38. Session::set($name, time() + 60, 'wap');
  39. $smsHandle = new Sms();
  40. $sms_platform_selection=SystemConfigService::get('sms_platform_selection');
  41. $smsTemplateCode=SystemConfigService::get('smsTemplateCode');
  42. if($sms_platform_selection==1){
  43. $res = AliMessageService::sendmsg($phone, $code);
  44. }else{
  45. $res=$smsHandle->send($phone,$smsTemplateCode,['code'=>$code]);
  46. }
  47. if($res){
  48. return JsonService::successful('发送成功',$res);
  49. } else {
  50. return JsonService::fail('发送失败!');
  51. }
  52. }
  53. public function get_cid_article($cid = 0, $first = 0, $limit = 8)
  54. {
  55. $list = ArticleCategory::cidByArticleList($cid, $first, $limit, 'id,title,image_input,visit,add_time,synopsis,url') ?: [];
  56. foreach ($list as &$article) {
  57. $article['add_time'] = date('Y-m-d H:i', $article['add_time']);
  58. }
  59. return JsonService::successful('ok', $list);
  60. }
  61. public function get_video_list($key = '', $first = 0, $limit = 8)
  62. {
  63. $gid = SystemGroup::where('config_name', $key)->value('id');
  64. if (!$gid) {
  65. $list = [];
  66. } else {
  67. $video = SystemGroupData::where('gid', $gid)->where('status', 1)->order('sort DESC,add_time DESC')->limit($first, $limit)->select();
  68. $list = SystemGroupData::tidyList($video);
  69. }
  70. return JsonService::successful('ok', $list);
  71. }
  72. public function get_category_product_list($limit = 4)
  73. {
  74. $cateInfo = StoreCategory::where('is_show', 1)->where('pid', 0)->field('id,cate_name,pic')
  75. ->order('sort DESC')->select()->toArray();
  76. $result = [];
  77. $StoreProductModel = new StoreProduct;
  78. foreach ($cateInfo as $k => $cate) {
  79. $cate['product'] = $StoreProductModel::alias('A')->where('A.is_del', 0)->where('A.is_show', 1)
  80. ->where('A.mer_id', 0)->where('B.pid', $cate['id'])
  81. ->join('__STORE_CATEGORY__ B', 'B.id = A.cate_id')
  82. ->order('A.is_benefit DESC,A.sort DESC,A.add_time DESC')
  83. ->limit($limit)->field('A.id,A.image,A.store_name,A.sales,A.price,A.unit_name')->select()->toArray();
  84. if (count($cate['product']))
  85. $result[] = $cate;
  86. }
  87. return JsonService::successful($result);
  88. }
  89. public function get_best_product_list($first = 0, $limit = 8)
  90. {
  91. return JsonService::successful(StoreProduct::getHotProduct('id,image,store_name,cate_id,price,vip_price,unit_name,sort,sales', 6));
  92. }
  93. public function wechat_media_id_by_image($mediaIds = '')
  94. {
  95. if (!$mediaIds) return JsonService::fail('参数错误');
  96. try {
  97. $mediaIds = explode(',', $mediaIds);
  98. $temporary = \service\WechatService::materialTemporaryService();
  99. $pathList = [];
  100. foreach ($mediaIds as $mediaId) {
  101. if (!$mediaId) continue;
  102. try {
  103. $content = $temporary->getStream($mediaId);
  104. } catch (\Exception $e) {
  105. continue;
  106. }
  107. $name = substr(md5($mediaId), 12, 20) . '.jpg';
  108. $res = \Api\AliyunOss::instance([
  109. 'AccessKey' => SystemConfigService::get('accessKeyId'),
  110. 'AccessKeySecret' => SystemConfigService::get('accessKeySecret'),
  111. 'OssEndpoint' => SystemConfigService::get('end_point'),
  112. 'OssBucket' => SystemConfigService::get('OssBucket'),
  113. 'uploadUrl' => SystemConfigService::get('uploadUrl'),
  114. ])->stream($content, $name);
  115. if ($res !== false) {
  116. $pathList[] = $res['url'];
  117. }
  118. }
  119. return JsonService::successful($pathList);
  120. } catch (\Exception $e) {
  121. return JsonService::fail('上传失败', ['msg' => $e->getMessage(), 'line' => $e->getLine(), 'file' => $e->getFile()]);
  122. }
  123. }
  124. }