master
cody 6 months ago
parent 3f455de538
commit e0d504c584

@ -25,6 +25,34 @@ class BookController extends BaseController
parent::__construct(new Book()); 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( * @OA\Get(
* path="/api/admin/book/index", * 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="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="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="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( * @OA\Response(
* response="200", * response="200",
* description="操作成功" * description="操作成功"

@ -10,6 +10,7 @@ use App\Models\AppointmentConfig;
use App\Models\AppointmentType; use App\Models\AppointmentType;
use App\Models\Banner; use App\Models\Banner;
use App\Models\Config; use App\Models\Config;
use App\Models\Dialogue;
use App\Models\Message; use App\Models\Message;
use App\Models\SupplyDemand; use App\Models\SupplyDemand;
use App\Models\SupplyDemandKeep; use App\Models\SupplyDemandKeep;
@ -252,6 +253,10 @@ class SupplyDemandController extends CommonController
// 增加view_count // 增加view_count
$model->increment('contact_count'); $model->increment('contact_count');
$model->save(); $model->save();
// 创建会话
$where = [];
$data = [];
Dialogue::updateOrCreate([]);
return $this->success('删除成功'); return $this->success('删除成功');
} }
@ -262,7 +267,8 @@ class SupplyDemandController extends CommonController
* tags={"小程序-供需"}, * tags={"小程序-供需"},
* summary="消息列表", * summary="消息列表",
* description="", * 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_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="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_name", in="query", @OA\Schema(type="string"), required=false, description="排序字段名字"),
@ -277,19 +283,6 @@ class SupplyDemandController extends CommonController
public function messageList() public function messageList()
{ {
$all = \request()->all(); $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([ $message = Message::with([
'user' => function ($query) { 'user' => function ($query) {
$query->select('id', 'nickname', 'name', 'headimgurl'); $query->select('id', 'nickname', 'name', 'headimgurl');
@ -298,13 +291,54 @@ class SupplyDemandController extends CommonController
$query->select('id', 'nickname', 'name', 'headimgurl'); $query->select('id', 'nickname', 'name', 'headimgurl');
} }
])->where(function ($query) use ($all) { ])->where(function ($query) use ($all) {
if (isset($all['dialogue_id'])) {
})->where('supply_demand_id', $all['supply_demand_id']) $query->where('dialogue_id', $all['dialogue_id']);
->orderBy($all['sort_name'] ?? 'id', $all['sort_type'] ?? 'desc') }
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); ->paginate($all['page_size'] ?? 20);
return $this->success(compact('message')); 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( * @OA\Get(
* path="/api/mobile/supply-demand/keep-index", * path="/api/mobile/supply-demand/keep-index",

@ -19,9 +19,15 @@ class Message extends SoftDeletesModel
return $this->hasOne(User::class, 'id', 'to_user_id'); return $this->hasOne(User::class, 'id', 'to_user_id');
} }
public function supplyDemand(){ public function supplyDemand()
{
return $this->hasOne(SupplyDemand::class, 'id', 'supply_demand_id'); 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->string('category')->nullable()->comment('分类');
$table->mediumText('description')->nullable()->comment('图书简介'); $table->mediumText('description')->nullable()->comment('图书简介');
$table->integer('cover_id')->nullable()->comment('图书封面'); $table->integer('cover_id')->nullable()->comment('图书封面');
$table->tinyInteger('status')->default(0)->comment('状态0可借阅1已借出2维护中');
$table->timestamps(); $table->timestamps();
$table->softDeletes(); $table->softDeletes();
}); });

@ -23,6 +23,7 @@ return new class extends Migration {
$table->integer('supply_demand_id')->nullable()->comment('需求id'); $table->integer('supply_demand_id')->nullable()->comment('需求id');
// 消息内容 // 消息内容
$table->text('last_content')->nullable()->comment('最后一条消息消息内容'); $table->text('last_content')->nullable()->comment('最后一条消息消息内容');
$table->text('last_datetime')->nullable()->comment('最后一条消息消息内容时间');
$table->timestamps(); $table->timestamps();
$table->softDeletes(); $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/index', [\App\Http\Controllers\Admin\BookController::class, "index"]);
Route::get('book/show', [\App\Http\Controllers\Admin\BookController::class, "show"]); Route::get('book/show', [\App\Http\Controllers\Admin\BookController::class, "show"]);
Route::post('book/save', [\App\Http\Controllers\Admin\BookController::class, "save"]); 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/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/message-list', [\App\Http\Controllers\Mobile\SupplyDemandController::class, "messageList"]); Route::get('supply-demand/dialogues', [\App\Http\Controllers\Mobile\SupplyDemandController::class, "dialogues"]);
// 供需信息收藏 // 供需信息收藏

Loading…
Cancel
Save