123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220 |
- <?php
- namespace App\Http\Controllers\Api;
- use App\Models\Consultants;
- use App\Models\Institution;
- use App\Models\Order;
- use App\Models\Review;
- use App\Services\ToolsServices;
- use App\Services\UserService;
- use Illuminate\Http\Request;
- use Illuminate\Support\Facades\Cache;
- use Illuminate\Support\Facades\Log;
- use Yansongda\LaravelPay\Facades\Pay;
- class User
- {
- public static function login(Request $request)
- {
- $code = $request->input('code');
- if (empty($code)) {
- return ToolsServices::error('code');
- }
- $appid = 'wxfb03a1f6f60d6471';
- $appsecret = 'd4dbcb5db48fdb2a09727518f68a6cb1';
- $url = "https://api.weixin.qq.com/sns/jscode2session?appid=$appid&secret=$appsecret&js_code=$code&grant_type=authorization_code";
- $result = file_get_contents($url);
- $result = json_decode($result, true);
- Log::info('sss', ['result' => $result]);
- if (isset($result['errcode']) && $result['errcode'] != 0) {
- return ToolsServices::error($result['errmsg']);
- }
- if (!isset($result['session_key'])){
- return ToolsServices::error('登录失败');
- }
- $openid = $result['openid'];
- $session_key = $result['session_key'];
- $info = \App\Models\User::getInfoByOpenid($openid);
- if ($info) {
- if ($info['session_key'] != $session_key) {
- \App\Models\User::updateByOpenid($openid,['session_key'=>$session_key]);
- $request->session()->forget(md5($info['session_key']));
- }
- unset($info['session_key']);
- }else{
- $data = [
- 'nickname' => 'XL'.time().mt_rand(1000,9999),
- 'openid' => $openid,
- 'session_key' => $session_key,
- 'avater' => 'https://ocr.lfwhzb.com/image/avater.jpeg',
- ];
- $id = \App\Models\User::insert($data);
- $info = \App\Models\User::getInfoById($id);
- }
- $token = md5($session_key);
- $info['token'] = $token;
- Cache::put($token,$info['id'],86400);
- return ToolsServices::returnAdmin(0,$info);
- }
- public static function modifyUserInfo(Request $request){
- $save = [];
- $nickname = $request->input('nickname');
- if (!empty($nickname)){
- $save['nickname'] = $nickname;
- }
- $avatar = $request->file('avater');
- Log::info('sss', ['avatar' => $avatar]);
- if (!empty($avatar)){
- $avatar = $avatar->store('image');
- $save['avater'] = 'https://ocr.lfwhzb.com/'.$avatar;
- }else{
- $avatar = $request->input('avater');
- if (!empty($avatar)){
- $save['avater'] = $avatar;
- }
- }
- $desc = $request->input('desc');
- if (!empty($desc)){
- $save['desc'] = $desc;
- }
- $id = Cache::get($request->header('token'));
- if (!empty($save)){
- \App\Models\User::updateById($id,$save);
- }
- $info = \App\Models\User::getInfoById($id);
- return ToolsServices::returnAdmin(0,$info);
- }
- public static function getUserInfo(Request $request){
- $id = $request->post('id',Cache::get($request->header('token')));
- $info = UserService::getUserInfoByUserId($id);
- return ToolsServices::returnAdmin(0,$info);
- }
- public static function focus(Request $request){
- $id = $request->post('id',Cache::get($request->header('token')));
- $user_id = $request->input('user_id');
- UserService::focus($id,$user_id);
- return ToolsServices::returnAdmin(0,[]);
- }
- public static function delFocus(Request $request){
- $id = $request->post('id',Cache::get($request->header('token')));
- $user_id = $request->input('user_id');
- UserService::delFocus($id,$user_id);
- return ToolsServices::returnAdmin(0,[]);
- }
- public static function switchIdentity(Request $request){
- $id = $request->post('id',Cache::get($request->header('token')));
- $identity = $request->input('identity',0);
- if ($identity == 1){
- $info = Consultants::checkConsultants($id);
- if (empty($info)){
- return ToolsServices::returnAdmin(0,['result'=>false]);
- }
- }
- if ($identity == 2) {
- $info = Institution::checkInstitution($id);
- if (empty($info)){
- return ToolsServices::returnAdmin(0,['result'=>false]);
- }
- }
- \App\Models\User::updateById($id,['identity'=>$identity]);
- return ToolsServices::returnAdmin(0,['result'=>true]);
- }
- public function pay(Request $request)
- {
- $id = $request->post('id',Cache::get($request->header('token')));
- $order_id = $request->input('order_id');
- $orderInfo = Order::getOrderInfoByOutTradeNo($order_id);
- if (empty($orderInfo)){
- return ToolsServices::returnAdmin(0,['result'=>false]);
- }
- $info = UserService::getUserInfoByUserId($id);
- $order = [
- 'openid' => $info["openid"],
- 'out_trade_no' => $orderInfo["out_trade_no"],
- 'total_fee' => $orderInfo["total_fee"], // **单位:分**
- 'body' => "订阅",
- ];
- $result = Pay::wechat()->miniapp($order)->toArray();
- return ToolsServices::returnAdmin(0, $result);
- }
- public static function reviewLog(Request $request)
- {
- $id = $request->post('id',Cache::get($request->header('token')));
- $page = $request->input('page', 1);
- $limit = $request->input('limit', 10);
- $los = Review::getList($id,$page,$limit);
- return ToolsServices::returnAdmin(0,$los);
- }
- public static function review(Request $request)
- {
- $id = $request->post('id',Cache::get($request->header('token')));
- $file = $request->file('file');
- $file = $file->store('review');
- $data = [
- 'user_id' => $id,
- 'file_name' => $file
- ];
- $pay_id = $request->input('pay_id');
- $priceList = array_column(self::$price,null,'id');
- if (Review::insertData($data)){
- $price = $priceList[$pay_id]['total_fee'];
- $orderId = 'XL-'.time().'-'.mt_rand(1000,9999);
- $orderInfo = [
- 'user_id' => $id,
- 'out_trade_no' => $orderId,
- 'total_fee' => $price,
- ];
- Order::insertData($orderInfo);
- return ToolsServices::returnAdmin(0,['result'=>true,'order_id'=>$orderId]);
- }else{
- return ToolsServices::returnAdmin(0,['result'=>false,'order_id' => '']);
- }
- }
- static $price = [
- [
- 'id' => 1,
- 'type' => 1,
- 'price' => 29,
- 'total_fee' => 2900,
- 'original_price' => 39,
- 'title' => '试一下',
- 'desc' => '近测评本次',
- ],[
- 'id' => 2,
- 'type' => 2,
- 'price' => 79,
- 'total_fee' => 7900,
- 'original_price' => 156,
- 'title' => '包年会员',
- 'desc' => '一年可测评4次',
- ],[
- 'id' => 3,
- 'type' => 1,
- 'price' => 59,
- 'total_fee' => 5900,
- 'original_price' => 99,
- 'title' => '人工解读',
- 'desc' => '仅限本次',
- ],
- ];
- public static function getPrice(Request $request)
- {
- return ToolsServices::returnAdmin(0,['result'=>self::$price]);
- }
- public static function getResult(Request $request) {
- $id = $request->post('id',Cache::get($request->header('token')));
- $logId = $request->post('log_id');
- $log = Review::getInfoById($logId,$id);
- $text = $log['result'];
- if (empty($text)){
- $text = '正在处理中。。。';
- }
- return ToolsServices::returnAdmin(0,['text'=>$text]);
- }
- }
|