General.php 8.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221
  1. <?php
  2. namespace app\api\controller;
  3. use AlibabaCloud\Client\AlibabaCloud;
  4. use AlibabaCloud\Client\Exception\ClientException;
  5. use AlibabaCloud\Client\Exception\ServerException;
  6. use AliPay\Scan;
  7. use app\common\model\StoreGoods;
  8. use app\common\model\StoreGoodsItem;
  9. use app\common\model\User;
  10. use app\common\model\UserMessage;
  11. use app\common\model\UserTrack;
  12. use think\Db;
  13. use think\Exception;
  14. use EasyWeChat\Factory;
  15. use function AlibabaCloud\Client\value;
  16. /**
  17. * @title 其他接口
  18. * @controller General
  19. * @group base
  20. */
  21. class General extends Base
  22. {
  23. public function initialize()
  24. {
  25. parent::initialize();
  26. parent::checkLogin();
  27. }
  28. /**
  29. * @title 发送短信验证码
  30. * @desc 发送短信验证码
  31. * @author qc
  32. * @url /api/General/sendSms
  33. * @method POST
  34. * @tag 短信验证码
  35. * @param name:phone type:int require:1 default:-- desc:要获取验证码的手机号
  36. * @return name:code type:string default:-- desc:验证码
  37. */
  38. public function sendSms(){
  39. $phone = input('post.phone');
  40. if(empty($phone)) $this ->error('参数错误');
  41. $code = rand(0,9).rand(0,9).rand(0,9).rand(0,9).rand(0,9).rand(0,9);
  42. AlibabaCloud::accessKeyClient('LTAI5t76oDeTRvdNWZjs4oGd', '8Z1zyFjtaF4v9kdjJeWnlFVx3xhtEF')
  43. ->regionId('cn-hangzhou')->asDefaultClient();
  44. try {
  45. $result = AlibabaCloud::rpc()
  46. ->product('Dysmsapi')
  47. ->version('2017-05-25')
  48. ->action('SendSms')
  49. ->method('POST')
  50. ->host('dysmsapi.aliyuncs.com')
  51. ->options([
  52. 'query' => [
  53. 'RegionId' => "cn-hangzhou",
  54. 'PhoneNumbers' => $phone,
  55. 'SignName' => "沐风文化",
  56. 'TemplateCode' => "SMS_233057543",
  57. 'TemplateParam' => json_encode(array("code"=>$code)),
  58. ],
  59. ])->request();
  60. $result = $result->toArray();
  61. if($result['Code'] == "OK") {
  62. $sms_data = array(
  63. 'phone'=>$phone,
  64. 'code'=>$code,
  65. 'result'=>$result['Message']
  66. );
  67. Db::name('store_member_sms')->insert($sms_data);
  68. $this->error('发送成功',$code);
  69. }else{
  70. $this->error('发送失败');
  71. }
  72. } catch (ClientException $e) {
  73. echo $e->getErrorMessage() . PHP_EOL;
  74. } catch (ServerException $e) {
  75. echo $e->getErrorMessage() . PHP_EOL;
  76. }
  77. }
  78. /**
  79. * @title 获取消息
  80. * @desc 获取消息
  81. * @author qc
  82. * @url /api/General/getUserMessage
  83. * @method GET
  84. * @header name:Authorization require:1 desc:Token
  85. * @param name:page type:int default:1 desc:页数
  86. * @param name:page_num type:int : default:20 desc:每页数
  87. * @return name:create_at type:string default:-- desc:时间
  88. * @return name:content type:string default:-- desc:内容
  89. * @return name:type_id type:int default:-- desc:类型[1.交易物流通知,2.视频上新通知,3.优惠活动,4.客服消息]
  90. */
  91. public function getUserMessage()
  92. {
  93. $where['user_id'] = $this->user_id;
  94. if(input('get.type_id')) $where['type_id'] = input('get.type_id');
  95. $list = UserMessage::where($where)
  96. ->limit($this->off_set,$this->page_num)
  97. ->order('id desc')
  98. ->select();
  99. $this->success('ok',['list'=>$list]);
  100. }
  101. /**
  102. * @title 获取物流详情
  103. * @desc 获取物流详情
  104. * @author qc
  105. * @url /api/General/deliveryDetails
  106. * @method GET
  107. * @header name:Authorization require:1 desc:Token
  108. * @param name:send_no type:string require:1 default:-- desc:物流单号(订单express_send_no字段)
  109. * @return name:number type:string default:-- desc:单号
  110. * @return name:type type:string default:-- desc:快递类型
  111. * @return name:list type:array default:-- desc:数据列表
  112. * @return name:list.time type:string default:-- desc:时间
  113. * @return name:list.status type:string default:-- desc:内容
  114. * @return name:deliverystatus type:int default:-- desc:0:快递收件(揽件)1.在途中2.正在派件3.已签收4.派送失败5.疑难件6.退件签收
  115. * @return name:issign type:int default:-- desc:是否签收(1.是否签收)
  116. * @return name:expName type:string default:-- desc:快递公司名称
  117. * @return name:expSite type:string default:-- desc:快递公司官网
  118. * @return name:expPhone type:string default:-- desc:快递公司电话
  119. * @return name:courier type:string default:-- desc:快递员 或 快递站(没有则为空)
  120. * @return name:courierPhone type:string default:-- desc:快递员电话 (没有则为空)
  121. * @return name:updateTime type:string default:-- desc:快递轨迹信息最新时间
  122. * @return name:takeTime type:string default:-- desc:发货到收货消耗时长 (截止最新轨迹)
  123. * @return name:logo type:string default:-- desc:快递公司LOGO
  124. */
  125. public function deliveryDetails(){
  126. $send_no = input('get.send_no');
  127. $data = get_delivery($send_no);
  128. $this->success('ok',$data);
  129. }
  130. /**
  131. * @title 获取日历信息
  132. * @desc 获取日历信息
  133. * @author qc
  134. * @url /api/General/getCalendar
  135. * @method GET
  136. * @header name:Authorization require:1 desc:Token
  137. * @return name:day_time type:string default:-- desc:时间
  138. * @return name:week_day type:string default:-- desc:周几
  139. */
  140. public function getCalendar()
  141. {
  142. $calendar = get_calendar();
  143. array_multisort(array_column($calendar,'time_int'),$calendar,SORT_ASC);
  144. $this->success('ok',['list'=>$calendar]);
  145. }
  146. /**
  147. * @title 获取足迹
  148. * @desc 获取足迹
  149. * @author qc
  150. * @url /api/General/getUserTrack
  151. * @method GET
  152. * @header name:Authorization require:1 desc:Token
  153. * @param name:type type:int default:1 desc:查询类型1商品2资讯
  154. * @param name:day_time type:string default:-- desc:查询时间(2022-04-22)
  155. * @return name:id type:int default:-- desc:足迹id
  156. * @return name:rel_id type:float default:-- desc:浏览的id(商品类型是商品id,资讯类型是资讯的id)
  157. * @return name:low_price type:float default:-- desc:商品最低价
  158. * @return name:max_price type:float default:-- desc:商品下划线价格
  159. * @return name:goods_cover type:string default:-- desc:商品封面
  160. * @return name:goods_name type:string default:-- desc:商品名
  161. * @return name:article_title type:string default:-- desc:资讯标题
  162. * @return name:article_cover type:string default:-- desc:资讯封面
  163. * @return name:video_url type:string default:-- desc:视频地址
  164. * @return name:read_num type:int default:-- desc:阅读量
  165. * @return name:article_type type:int default:-- desc:资讯类型(1图文,2视频)
  166. */
  167. public function getUserTrack()
  168. {
  169. $type = input('get.type',1);
  170. $day_time = input('get.day_time',date('Y-m-d'));
  171. $where = [];
  172. $where[] = ['t.user_id','=',$this->user_id];
  173. $where[] = ['t.type','=',$type];
  174. $where[] = ['t.year','=',date('Y',strtotime($day_time))];
  175. $where[] = ['t.month','=',date('m',strtotime($day_time))];
  176. $where[] = ['t.day','=',date('d',strtotime($day_time))];
  177. if($type == 1){
  178. $list = UserTrack::field('t.*,g.low_price,g.name goods_name,g.cover goods_cover')->where($where)
  179. ->alias('t')
  180. ->leftJoin('StoreGoods g','t.rel_id = g.id')
  181. ->order('t.update_int desc')
  182. ->select()->toArray();
  183. foreach ($list as &$v){
  184. $v['max_price'] = StoreGoodsItem::where('goods_id',$v['rel_id'])->max('original_price');
  185. }
  186. }else{
  187. $list = UserTrack::field('t.*,i.title article_title,i.cover article_cover,i.video_url,i.type article_type,i.read_num')->where($where)
  188. ->alias('t')
  189. ->leftJoin('InformationArticle i','t.rel_id = i.id')
  190. ->order('t.update_int desc')
  191. ->select()->toArray();
  192. }
  193. $this->success('ok',['list'=>$list]);
  194. }
  195. /**
  196. * @title 删除足迹
  197. * @desc 删除足迹
  198. * @author qc
  199. * @url /api/General/delUserTrack
  200. * @method POST
  201. * @header name:Authorization require:1 desc:Token
  202. * @param name:ids type:string default:-- desc:足迹id(多个用逗号隔开)
  203. */
  204. public function delUserTrack()
  205. {
  206. $ids = input('post.ids');
  207. UserTrack::where('id','in',$ids)->delete();
  208. $this->success('删除成功');
  209. }
  210. }