master
cody 4 months ago
parent 3f455de538
commit e0d504c584

@ -25,6 +25,34 @@ class BookController extends BaseController
parent::__construct(new Book());
}
/**
* @OA\Get(
* path="/api/admin/book/other",
* tags={"图书管理"},
* summary="统计和分类",
* description="",
* @OA\Parameter(name="token", in="query", @OA\Schema(type="string"), required=true, description="token"),
* @OA\Response(
* response="200",
* description="暂无"
* )
* )
*/
public function other()
{
$all = \request()->all();
$chart['total'] = Book::count();
// 可借阅
$chart['borrowable'] = Book::where('status', 0)->count();
// 已借阅
$chart['borrowed'] = Book::where('status', 1)->count();
// 维护中
$chart['maintaining'] = Book::where('status', 2)->count();
// 分类数据
$category = Book::pluck('category')->collapse()->unique()->values();
return $this->success(compact('chart', 'category'));
}
/**
* @OA\Get(
* path="/api/admin/book/index",
@ -161,6 +189,7 @@ class BookController extends BaseController
* @OA\Parameter(name="category", in="query", @OA\Schema(type="string"), required=false, description="分类"),
* @OA\Parameter(name="description", in="query", @OA\Schema(type="string"), required=false, description="图书简介"),
* @OA\Parameter(name="cover_id", in="query", @OA\Schema(type="integer"), required=false, description="图书封面ID"),
* @OA\Parameter(name="status", in="query", @OA\Schema(type="integer"), required=false, description="状态0可借阅1已借出2维护中"),
* @OA\Response(
* response="200",
* description="操作成功"

@ -10,6 +10,7 @@ use App\Models\AppointmentConfig;
use App\Models\AppointmentType;
use App\Models\Banner;
use App\Models\Config;
use App\Models\Dialogue;
use App\Models\Message;
use App\Models\SupplyDemand;
use App\Models\SupplyDemandKeep;
@ -252,6 +253,10 @@ class SupplyDemandController extends CommonController
// 增加view_count
$model->increment('contact_count');
$model->save();
// 创建会话
$where = [];
$data = [];
Dialogue::updateOrCreate([]);
return $this->success('删除成功');
}
@ -262,7 +267,8 @@ class SupplyDemandController extends CommonController
* tags={"小程序-供需"},
* summary="消息列表",
* description="",
* @OA\Parameter(name="supply_demand_id", in="query", @OA\Schema(type="string"), required=true, description="供需信息id"),
* @OA\Parameter(name="dialogue_id", in="query", @OA\Schema(type="string"), required=true, description="会话id(二选一)"),
* @OA\Parameter(name="supply_demand_id", in="query", @OA\Schema(type="string"), required=true, description="供需信息id(二选一)"),
* @OA\Parameter(name="page_size", in="query", @OA\Schema(type="string"), required=false, description="每页显示的条数"),
* @OA\Parameter(name="page", in="query", @OA\Schema(type="string"), required=false, description="页码"),
* @OA\Parameter(name="sort_name", in="query", @OA\Schema(type="string"), required=false, description="排序字段名字"),
@ -277,19 +283,6 @@ class SupplyDemandController extends CommonController
public function messageList()
{
$all = \request()->all();
$messages = [
'supply_demand_id.required' => '供需信息id必填'
];
$validator = Validator::make($all, [
'supply_demand_id' => 'required',
], $messages);
if ($validator->fails()) {
return $this->fail([ResponseCode::ERROR_PARAMETER, implode(',', $validator->errors()->all())]);
}
$model = SupplyDemand::find($all['id']);
if (empty($model)) {
return $this->fail([ResponseCode::ERROR_BUSINESS, '供需数据不存在']);
}
$message = Message::with([
'user' => function ($query) {
$query->select('id', 'nickname', 'name', 'headimgurl');
@ -298,13 +291,54 @@ class SupplyDemandController extends CommonController
$query->select('id', 'nickname', 'name', 'headimgurl');
}
])->where(function ($query) use ($all) {
})->where('supply_demand_id', $all['supply_demand_id'])
->orderBy($all['sort_name'] ?? 'id', $all['sort_type'] ?? 'desc')
if (isset($all['dialogue_id'])) {
$query->where('dialogue_id', $all['dialogue_id']);
}
if (isset($all['supply_demand_id'])) {
$query->whereHas('dialogue', function ($query) use ($all) {
$query->where('supply_demand_id', $all['supply_demand_id']);
});
}
})->orderBy($all['sort_name'] ?? 'id', $all['sort_type'] ?? 'desc')
->paginate($all['page_size'] ?? 20);
return $this->success(compact('message'));
}
/**
* @OA\Get(
* path="/api/mobile/supply-demand/dialogues",
* tags={"小程序-供需"},
* summary="会话列表",
* description="",
* @OA\Parameter(name="page_size", in="query", @OA\Schema(type="string"), required=false, description="每页显示的条数"),
* @OA\Parameter(name="page", in="query", @OA\Schema(type="string"), required=false, description="页码"),
* @OA\Parameter(name="sort_name", in="query", @OA\Schema(type="string"), required=false, description="排序字段名字"),
* @OA\Parameter(name="sort_type", in="query", @OA\Schema(type="string"), required=false, description="排序类型"),
* @OA\Parameter(name="token", in="query", @OA\Schema(type="string"), required=true, description="token"),
* @OA\Response(
* response="200",
* description="暂无"
* )
* )
*/
public function dialogues()
{
$all = \request()->all();
$dialogue = Dialogue::with(['supplyDemand',
'user' => function ($query) {
$query->select('id', 'nickname', 'name', 'headimgurl');
},
'toUser' => function ($query) {
$query->select('id', 'nickname', 'name', 'headimgurl');
}
])->where(function ($query) use ($all) {
})->orderBy($all['sort_name'] ?? 'id', $all['sort_type'] ?? 'desc')
->paginate($all['page_size'] ?? 20);
return $this->success(compact('dialogue'));
}
/**
* @OA\Get(
* path="/api/mobile/supply-demand/keep-index",

@ -19,9 +19,15 @@ class Message extends SoftDeletesModel
return $this->hasOne(User::class, 'id', 'to_user_id');
}
public function supplyDemand(){
public function supplyDemand()
{
return $this->hasOne(SupplyDemand::class, 'id', 'supply_demand_id');
}
public function dialogue()
{
return $this->hasOne(Dialogue::class, 'id', 'dialogue_id');
}
}

@ -23,6 +23,7 @@ return new class extends Migration {
$table->string('category')->nullable()->comment('分类');
$table->mediumText('description')->nullable()->comment('图书简介');
$table->integer('cover_id')->nullable()->comment('图书封面');
$table->tinyInteger('status')->default(0)->comment('状态0可借阅1已借出2维护中');
$table->timestamps();
$table->softDeletes();
});

@ -23,6 +23,7 @@ return new class extends Migration {
$table->integer('supply_demand_id')->nullable()->comment('需求id');
// 消息内容
$table->text('last_content')->nullable()->comment('最后一条消息消息内容');
$table->text('last_datetime')->nullable()->comment('最后一条消息消息内容时间');
$table->timestamps();
$table->softDeletes();
});

@ -175,6 +175,7 @@ Route::group(["namespace" => "Admin", "prefix" => "admin"], function () {
// 图书管理
Route::get('book/other', [\App\Http\Controllers\Admin\BookController::class, "other"]);
Route::get('book/index', [\App\Http\Controllers\Admin\BookController::class, "index"]);
Route::get('book/show', [\App\Http\Controllers\Admin\BookController::class, "show"]);
Route::post('book/save', [\App\Http\Controllers\Admin\BookController::class, "save"]);
@ -254,7 +255,7 @@ Route::group(["namespace" => "Mobile", "prefix" => "mobile"], function () {
// 供需信息留言
Route::get('supply-demand/send-message', [\App\Http\Controllers\Mobile\SupplyDemandController::class, "sendMessage"]);
Route::get('supply-demand/message-list', [\App\Http\Controllers\Mobile\SupplyDemandController::class, "messageList"]);
Route::get('supply-demand/message-list', [\App\Http\Controllers\Mobile\SupplyDemandController::class, "messageList"]);
Route::get('supply-demand/dialogues', [\App\Http\Controllers\Mobile\SupplyDemandController::class, "dialogues"]);
// 供需信息收藏

Loading…
Cancel
Save