ufutx.dma/routes/app/api.php
2026-03-04 14:42:40 +08:00

368 lines
20 KiB
PHP

<?php
//use Illuminate\Http\Request;
use App\Facades\ChatService;
use App\Http\Controllers\App\ShopController;
use App\Models\User;
use App\Models\WangYiYun;
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\App\LoginController;
use App\Http\Controllers\App\UserController;
use App\Http\Controllers\App\HealthController;
use App\Http\Controllers\App\UploadController;
//use App\Http\Controllers\App\ServiceController;
use App\Http\Controllers\App\OrderController;
//use App\Http\Controllers\App\ChatController;
use App\Http\Controllers\App\UserInfoController;
use App\Http\Controllers\App\GuideController;
//use App\Http\Controllers\App\Controller;
use App\Http\Controllers\App\FatController;
//use App\Http\Controllers\App\ShopController;
//use App\Http\Controllers\App\UpdateInfoController;
use App\Http\Controllers\App\ConfigController;
use App\Http\Controllers\App\ChatController;
use cccdl\yunxin_sdk\Im\User as ImUser;
use App\Http\Controllers\App\VideoController;
use App\Http\Controllers\App\DeviceController;
use App\Http\Controllers\App\BandController;
/*
|--------------------------------------------------------------------------
| API Routes
|--------------------------------------------------------------------------
|
| Here is where you can register API routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| is assigned the "api" middleware group. Enjoy building your API!
|
*/
Route::middleware("banlist")->group(function () {
//获取用户token
Route::get("/login/getUserToken", [LoginController::class, 'getUserToken'])->name('app.get.user.token');
//手机号密码登录
Route::post('mobile/pwd/login', [LoginController::class, 'pwdLogin'])->name('app.mobile.pwd.login');
//手机号验证码登录
Route::post('mobile/code/login', [LoginController::class, 'codeLogin'])->name('app.mobile.code.login');
//手机号一键登录
Route::post('mobile/local/login', [LoginController::class, 'localLogin'])->name('app.mobile.local.login');
Route::post('mobile/register/login', [LoginController::class, 'mobileRegisterLogin'])->name('app.mobile.register.login');
Route::post('local/mobile/register/login', [LoginController::class, 'localRegisterLogin'])->name('app.local.mobile.register.login');
Route::post('mobile/register', [LoginController::class, 'register'])->name('app.mobile.register');
Route::post('email/register', [LoginController::class, 'register'])->name('app.email.register');
//找回密码
Route::post("forget/passwd", [LoginController::class, 'findPwd'])->name('app.find.passwd');
//邮箱验证码
Route::post("email/code", [LoginController::class, 'sendEmailCode'])->name('app.send.email.code');
//手机验证码
Route::post('mobile/code', [LoginController::class, 'sendMobileCode'])->name('app.send.mobile.code')->middleware('checkeGainMobileCode');
Route::middleware(['auth:api', 'setLanguage'])->group(function () {
//切换语言
Route::put('change/language', [UserController::class, 'changeLanguage'])->name('app.user.change.language');
//注销账号
Route::post("login/off", [LoginController::class, 'loginOff'])->name('app.login.off');
/**
* 用户信息
*/
//获取手机号
Route::post("/code/to/mobile", [UserController::class, 'codeMobile'])->name('app.code.mobile');
//填写用户手机号
Route::post('bind/mobile', [UserController::class, 'updateUserInfo'])->name('app.update.user.mobile')->middleware('checkInputUserInfo');
//填写用户信息
Route::put('user/info', [UserController::class, 'updateUserInfo'])->name('app.update.user.info')->middleware('checkInputUserInfo');
//用户信息
Route::get('get/user/info', [UserController::class, 'userInfo'])->name("app.user.info");
/**
* 公共
*/
//上传
Route::post('upload/image', [UploadController::class, 'uploadImage'])->name('app.upload.image');
Route::post('netease/upload', [UploadController::class, 'neteaseUpload'])->name("app.netease.upload");
//获取手机号验证码
Route::get('mobile/code', [UserController::class, 'mobileCode'])->name('app.mobile.code')->middleware('checkeGainMobileCode');
/**
* 体脂信息
*/
//首页
Route::get('home', [HealthController::class, 'home'])->name('app.health.home');
//保存体脂信息
Route::post('health/log', [HealthController::class, 'storeHealthLog'])->name('app.store.health.log');
Route::post('health/log/v1', [HealthController::class, 'storeHealthLogV1'])->name('app.store.health.log.v1');
Route::post('send/health/log', [HealthController::class, 'sendHealthMsgToGroup'])->name('app.send.health.log');
//深度报告
Route::get('deep/health/report', [HealthController::class, 'deepReport'])->name('app.deep.health.report');
//体脂记录
Route::get('health/logs', [HealthController::class, 'healthLogs'])->name('app.health.logs');
//体脂详情
Route::get('health/logs/detail', [HealthController::class, 'healthLog'])->name('app.health.logs.detail');
//体脂对比
Route::post('compare/health/logs', [HealthController::class, 'compareHealthLogs'])->name('app.compare.health.logs');
//删除体脂信息
Route::delete('health/log', [HealthController::class, 'deleteHealthLog'])->name('app.delete.health.log');
//图表统计
Route::get('health/stat', [HealthController::class, 'healthStat'])->name('app.health.stat');
//图标数据
Route::get('health/kinds', [HealthController::class, 'healthKinds'])->name('app.health.kinds');
/**
* 体脂新-第二版
*/
//首页
Route::get('fat/home', [FatController::class, 'home'])->name('app.fat.home');
//保存体脂信息
Route::post('fat/log', [FatController::class, 'storeFatLog'])->name('app.store.fat.log');
//体脂记录
Route::get('fat/logs', [FatController::class, 'fatLogs'])->name('app.fat.logs');
//体脂详情
Route::get('fat/logs/detail', [FatController::class, 'fatLog'])->name('app.fat.logs.detail');
//删除体脂信息
Route::delete('fat/log', [FatController::class, 'deleteFatLog'])->name('app.delete.fat.log');
//图标数据
Route::get('fat/kinds', [FatController::class, 'fatKinds'])->name('app.fat.kinds');
//图表统计
Route::get('fat/stat', [FatController::class, 'fatStat'])->name('app.fat.stat');
//体脂对比
Route::get('compare/fat/logs', [FatController::class, 'getDaysCompare'])->name('app.compare.fat.logs');
/**
* 服务
*/
//获取服务人员
Route::get("get/service/user", [ChatController::class, 'getServiceUser'])->name("app.get.service.user");
/**
* 餐单
*/
Route::get('user/guides', [GuideController::class, 'guides'])->name('app.guides');
Route::get('user/guides/v1', [GuideController::class, 'guidesV1'])->name('app.guides.v1');
Route::get('/get/user/guides', [GuideController::class, 'getGuides'])->name('app.get.guides');
/**
* 订单
*/
//下单
Route::post('pay/order/services/{service_id}', [OrderController::class, 'payOrder'])->name('app.pay.order');
//订单列表
Route::get('orders', [OrderController::class, 'orders'])->name('app.orders');
Route::get('order/log', [OrderController::class, 'getOrderLog'])->name('app.order.logs');
Route::post('order/update/server/status', [OrderController::class, 'updateServerStatus'])->name('app.order.update.server.status');
//订单详情
Route::get('orders/{order_id}', [OrderController::class, 'order'])->name("app.order.detail");
//虚拟订单绑定用户
Route::post('order/bind/{order_id}', [OrderController::class, 'bindUser'])->name('app.order.bind');
/**
* app群聊相关接口
*/
//发送消息敏感词过滤
Route::post('filter/message', [ChatController::class, 'filterMessage'])->name('app.filter.message');
//离开群聊
Route::post('leave/group', [ChatController::class, 'leaveGroup'])->name("app.leave.group");
//群聊记录
Route::get('groups/{group_id}/messages', [ChatController::class, 'chatMessages'])->name("app.group.messages");
//群资料
Route::get('groups/{group_id}/info', [ChatController::class, 'groupInfo'])->name('app.group.info');
Route::get('get/group/info', [ChatController::class, 'getGroupInfo'])->name('app.get.group.info');
//修改用户在群聊的昵称
Route::post('groups/{group_id}/updateUserNick', [ChatController::class, 'updateGroupUserNickname'])->name('app.group.updateUserNick');
/**
* 个人信息
*/
//个人健康信息
Route::get('user/health/info', [UserInfoController::class, 'healthInfo'])->name('app.user.health.info');
Route::get('user/health/info/v1', [UserInfoController::class, 'healthInfoV1'])->name('app.user.health.info/v1');
//个人健康信息修改
Route::put('user/health/info', [UserInfoController::class, 'updateHealthInfo'])->name('app.update.health.info');
Route::delete('delete/body/images', [UserInfoController::class, 'deleteBodyImages'])->name('app.delete.body.images');
Route::delete('delete/after/body/images', [UserInfoController::class, 'deleteAfterBodyImages'])->name('app.delete.after.body.images');
//体检报告
Route::get('user/health/report', [UserInfoController::class, 'healthReport'])->name("app.user.health.report");
Route::get('user/health/report/v2', [UserInfoController::class, 'healthReportV2'])->name("app.user.health.report.v2");
//修改报告
Route::put("user/health/report", [UserInfoController::class, 'updateHealthReport'])->name('app.health.report');
//上传体检报告
Route::post('user/health/report', [UserInfoController::class, 'storeHealthReport'])->name("app.store.health.report");
//删除报告
Route::delete('user/health/report/{report_id}', [UserInfoController::class, 'deleteHealthReport'])->name('app.delete.health.report');
//服务状态
Route::get('user/service/status', [UserInfoController::class, 'serviceStatus'])->name("app.service.status");
//生成营养素
Route::post('make/user/nutrient', [UserInfoController::class, 'makeNutrient'])->name('app.make.user.nutrient');
//添加补充资料
Route::post('add/other/health/file', [UserInfoController::class, 'addOtherHealthFile'])->name('app.add.other.health.file');
//获取补充资料列表
Route::get('get/other/health/list', [UserInfoController::class, 'getOtherHealthFileList'])->name('app.add.other.health.list');
//获取补充资料详情
Route::get('get/other/health/detail', [UserInfoController::class, 'getOtherHealthFileDetail'])->name('app.get.other.health.detail');
//删除补充资料
Route::delete('delete/other/health/file', [UserInfoController::class, 'deleteOtherHealthFile'])->name('app.delete.user.other.health.file');
/**
* 商城接口
*/
//获取商品列表
Route::get('get/shop/goods/list', [ShopController::class, 'getGoodsList'])->name('app.get.goods.list');
//获取商品详情
Route::get('get/shop/goods/detail', [ShopController::class, 'getGoodsDetail'])->name('app.get.goods.detail');
//获取订单列表
Route::get('get/shop/order/list', [ShopController::class, 'getShopOrderList'])->name('app.get.shop.order.list');
//获取订单详情
Route::get('get/shop/order/detail', [ShopController::class, 'getOrderDetail'])->name('app.get.shop.order.detail');
//购买商品
Route::post('pay/shop/order', [ShopController::class, 'payOrder'])->name('app.pay.shop.order');
//收货
Route::post('shop/take/goods', [ShopController::class, 'takeGoods'])->name('app.shop.take.goods');
/**
* app配置相关接口
*/
//意见反馈
Route::post('send/feedback', [UserController::class, 'sendFeedback'])->name('app.send.feedback');
//举报
Route::post('send/report', [UserController::class, 'sendReport'])->name('app.send.report');
//获取服务人员信息
Route::get('get/service/user/info', [UserInfoController::class, 'getServiceUserInfo'])->name('app.get.service.user.info');
Route::put('update/service/user/info', [UserInfoController::class, 'updateServiceUserInfo'])->name('app.update.service.user.info');
/**
* 分享
*/
Route::get('get/mp/share/config', [ConfigController::class, 'getMpShareConfig'])->name('app.get.mp.share.config');
/*
* 视频
*/
Route::get('search/video', [VideoController::class, 'searchVideo'])->name('app.search.video');
Route::get('get/search/log', [VideoController::class, 'getSearchLog'])->name('app.get.search.log');
Route::delete('delete/search/log', [VideoController::class, 'delSearchLog'])->name('app.del.search.log');
Route::get('get/video/list', [VideoController::class, 'getVideoList'])->name('app.get.video.list');
Route::get('get/video/detail/{id}', [VideoController::class, 'getVideoDetail'])->name('app.get.video.detail');
Route::post('collect/video', [VideoController::class, 'collectVideo'])->name('app.collect.video');
Route::get('get/collect/video', [VideoController::class, 'getCollect'])->name('app.get.collect.video');
Route::post('visitor', [VideoController::class, 'visitor'])->name('app.video.visitor');
Route::get('get/my/visitor', [VideoController::class, 'getMyVisitor'])->name('app.get.my.visitor');
/**
* 设备
*/
Route::post('add/device', [DeviceController::class, 'addDevice'])->name('app.add.device');
Route::get('get/device', [DeviceController::class, 'getDevice'])->name('app.get.device');
Route::put('update/device/{id}', [DeviceController::class, 'updateDevice'])->name('app.update.device');
/**
* 快捷回复
*/
Route::post('add/quick/reply', [ChatController::class, 'addQuickReply'])->name('app.add.quick.reply');
Route::get('get/quick/reply', [ChatController::class, 'getQuickReply'])->name('app.get.quick.reply');
Route::put('update/quick/reply/{id}', [ChatController::class, 'updateQuickReply'])->name('app.update.quick.reply');
Route::get('get/quick/reply/detail/{id}', [ChatController::class, 'getQuickReplyDetail'])->name('app.get.quick.reply.detail');
Route::delete('delete/quick/reply/{id}', [ChatController::class, 'deleteQuickReply'])->name('app.delete.quick.reply.detail');
/**
* 发送网易云视频
*/
Route::post('send/im/video', [ChatController::class, 'sendImVideo'])->name('app.send.im.video');
/**
* 手环
*/
//绑定手环
Route::post("bind/band", [BandController::class, 'bindBand'])->name('app.bind.band');
//手环列表
Route::get("bands", [BandController::class, 'bands'])->name('app.bands');
//解绑
Route::post("unbind/band", [BandController::class, 'unbindBand'])->name('app.unbind.band');
//切换手环
Route::post("connect/band", [BandController::class, 'connectBand'])->name('app.connect.band');
//断连手环
Route::post("break/band", [BandController::class, 'breakBand'])->name('app.break.band');
//设置目标
Route::post("set/goals", [BandController::class, 'setGoals'])->name('app.set.goals');
//查看目标
Route::get("goals", [BandController::class, 'goals'])->name('app.goals');
//上传数据
Route::post("upload/sleep/data", [BandController::class, 'uploadSleepData'])->name('app.upload.sleep.data');
Route::post("upload/hrrest/data", [BandController::class, 'uploadHrrestData'])->name('app.upload.hrrest.data');
Route::post("upload/temp/data", [BandController::class, 'uploadTempData'])->name('app.upload.temp.data');
Route::post("upload/hrv/data", [BandController::class, 'uploadHrvData'])->name('app.upload.hrv.data');
Route::post("upload/blood/data", [BandController::class, 'uploadBloodData'])->name('app.upload.blood.data');
Route::post("upload/syn/data", [BandController::class, 'uploadSynData'])->name('app.upload.syn.data');
Route::post("upload/origin/sleep/data", [BandController::class, 'uploadOriginSleepData'])->name('app.upload.origin.sleep.data');
Route::post("upload/origin/hrrest/data", [BandController::class, 'uploadOriginHrrestData'])->name('app.upload.origin.hrrest.data');
Route::post("upload/origin/temp/data", [BandController::class, 'uploadOriginTempData'])->name('app.upload.origin.temp.data');
Route::post("upload/origin/hrv/data", [BandController::class, 'uploadOriginHrvData'])->name('app.upload.origin.hrv.data');
Route::post("upload/origin/blood/data", [BandController::class, 'uploadOriginBloodData'])->name('app.upload.origin.blood.data');
Route::post("upload/origin/syn/data", [BandController::class, 'uploadOriginSynData'])->name('app.upload.origin.syn.data');
Route::post("upload/origin/battery/data", [BandController::class, 'uploadOriginBatteryData'])->name('app.upload.origin.battery.data');
//查看睡眠数据
Route::get("daily/sleep", [BandController::class, 'dailySleep'])->name('app.daily.sleep');
//手环绑定状态
Route::get("band/bind/status", [BandController::class, 'bindStatus'])->name('app.band.status');
//数据
Route::post("insert/data", [BandController::class, 'insertData']);
//最新数据日期
Route::get("newest/date", [BandController::class, 'newestDate']);
Route::get("newest/origin/date", [BandController::class, 'newestOriginDate']);
//最新一组数据开始记录时间
Route::get("newest/origin/first/date", [BandController::class, 'newestOriginFirstDate']);
//上传手环状态信息
Route::post("upload/band/consume/data", [BandController::class, 'uploadBandConsumeData'])->name('app.upload.band.consume.data');
//查看睡眠原始数据
Route::get("daily/origin/sleep", [BandController::class, 'dailyOriginSleep'])->name('app.daily.origin.sleep');
Route::get("daily/origin/hrrest", [BandController::class, 'dailyOriginHrrest'])->name('app.daily.origin.hrrest');
Route::get("daily/origin/temp", [BandController::class, 'dailyOriginTemp'])->name('app.daily.origin.temp');
Route::get("daily/origin/hrv", [BandController::class, 'dailyOriginHrv'])->name('app.daily.origin.hrv');
Route::get("daily/origin/blood", [BandController::class, 'dailyOriginBlood'])->name('app.daily.origin.blood');
Route::get("daily/origin/syn", [BandController::class, 'dailyOriginSyn'])->name('app.daily.origin.syn');
Route::get("daily/origin/battery", [BandController::class, 'dailyOriginBattery'])->name('app.daily.origin.battery');
//发送网易云消息
Route::post("send/im/msg", [ChatController::class, 'sendImMsg']);
});
Route::get("get/oss/config", [UploadController::class, 'stsConfig'])->name('app.get.oss.config');
//网易云信消息回调
Route::post('message/callback', [ChatController::class, 'chatCallback'])->name('app.message.callback');
//获取隐私协议
Route::get('get/privacy', [ConfigController::class, 'getPrivacy'])->name('app.get.privacy');
//获取服务协议
Route::get('get/service/term', [ConfigController::class, 'getServiceTerm'])->name('app.get.service.term');
//根据版本号获取配置
Route::get('get/version/status', [ConfigController::class, 'getVersionStatus'])->name('app.get.version.status');
Route::get('get/app/version/config', [ConfigController::class, 'getAppVersionConfigV1'])->name('app.get.app.version.config');
Route::get('get/ios/version/config', [ConfigController::class, 'getIosVersionConfig'])->name('app.get.ios.version.config');
//获取国家电话编号
Route::get('get/country/phone/code', [ConfigController::class, 'getCountryPhoneCode'])->name('app.get.country.phone.code');
//订单回调
Route::post('shop/order/callback', [ShopController::class, 'orderCallback'])->name('app.shop.order.callback');
Route::post("send/error/notice", [\App\Http\Controllers\Controller::class, 'sendAppError']);
});