Add MessageContact

1.Add MessageContact Model
2.Edit MessageController
3.Elegentalize TransactionController
This commit is contained in:
Harry Zhou
2017-06-10 00:43:18 +08:00
parent 2ba45f3599
commit 63a249bd32
6 changed files with 98 additions and 13 deletions
+43 -10
View File
@@ -16,8 +16,8 @@ use App\Transaction;
use App\TransactionLog;
use App\Message;
use App\User;
use App\MessageContact;
use App\Http\Controllers\Controller;
use Storage;
class MessageController extends Controller
{
@@ -25,8 +25,8 @@ class MessageController extends Controller
{
$data = [];
$user_id = $request->session()->get('user_id');
$data['informations'] = Message::with('receiver')->Orderby('id','desc')->where('receiver_id',$user_id)->paginate(15);
return view::make('message.message')->with($data);
$data['informations'] = Message::with('receiver')->Orderby('id', 'desc')->where('receiver_id', $user_id)->paginate(15);
return View::make('message.message')->with($data);
}
public function getUnreadMsgNum(Request $request)
@@ -39,7 +39,7 @@ class MessageController extends Controller
public function readMessage(Request $request, $id)
{
$data = Message::find($id);
if($request->session()->get('user_id') != $data->receiver_id)
if ($request->session()->get('user_id') != $data->receiver_id)
return json_encode(['result' => false, 'msg' => 'Auth Failure.']);
$data->is_read = true;
$data->save();
@@ -49,7 +49,7 @@ class MessageController extends Controller
public function deleteMessage(Request $request, $id)
{
$data = Message::find($id);
if($request->session()->get('user_id') != $data->receiver_id)
if ($request->session()->get('user_id') != $data->receiver_id)
return json_encode(['result' => false, 'msg' => 'Auth Failure.']);
$data->delete();
return json_encode(['result' => true, 'msg' => 'success']);
@@ -58,22 +58,55 @@ class MessageController extends Controller
public function sendMessage(SendMessageRequest $request)
{
$input = $request->all();
if(!User::where('id', $input['receiver'])->count())
if (!User::where('id', $input['receiver'])->count())
return json_encode(['result' => false, 'msg' => 'no such receiver']);
//Create Message
$message = new Message;
$user_id = $request->session()->get('user_id');
$message->title = $input['title'];
$message->content = $input['content'];
$receiver = $input['receiver'];
$message->sender_id = $user_id;
$user = User::where('id', $receiver)->first();
$message->receiver_id = $user->id;
$message->receiver_id = $input['receiver'];
$message->save();
//Create or Update MessageContact
//A->B
$contact = MessageContact::firstOrNew([
'user_id' => $user_id,
'contact_id' => $input['receiver']
]);
$contact->last_contact_time = time();
$contact->save();
//B->A
$contact = MessageContact::firstOrNew([
'user_id' => $input['receiver'],
'contact_id' => $user_id
]);
$contact->last_contact_time = time();
$contact->save();
return json_encode(['result' => true, 'msg' => 'success']);
}
public function sendMessagepage(Request $request)
{
return view::make('message.sendMessage');
return View::make('message.sendMessage');
}
public function getMessageContact(Request $request)
{
$user_id = $request->session()->get('user_id');
$contacts = MessageContact::where('user_id', $user_id)
->orderBy('last_contact_time', 'desc')
->with(['contact' => function ($query) {
$query->select('id', 'nickname');
}])
->paginate(10);
foreach ($contacts as $c) {
$c->unread_message = Message::where('receiver_id', $user_id)
->where('sender_id', $c->contact_id)
->where('is_read', false)
->count();
}
return json_encode($contacts);
}
}
@@ -108,9 +108,7 @@ class TransactionController extends Controller
$message = new Message();
$message->sender_id = 0;
$message->receiver_id = $good->user_id;
if (!$buyer->nickname)
$buyer->nickname = "一位先锋市场用户";
$message->content = '您好!' . $buyer->nickname . '购买了你的' . $good->good_name . ',请及时前往确认。';
$message->content = '您好!' . $buyer->not_null_nickname . '购买了你的' . $good->good_name . ',请及时前往确认。';
$message->title = '您有一个新的交♂易订单';
$message->save();
return json_encode(['result' => true, 'msg' => 'success']);
+1
View File
@@ -65,6 +65,7 @@ Route::group(['middleware' => ['web']],function () {
Route::get('/user/fav/edit', "UserController@editFavlist");
Route::delete('/user/fav/del', "UserController@delFavlist");
Route::get('/message/contacts', "MessageController@getMessageContact");
});
Route::get('/user/sell', "UserController@mygoods")->middleware('auth');
+14
View File
@@ -0,0 +1,14 @@
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class MessageContact extends Model
{
protected $fillable = ['user_id', 'contact_id'];
public function contact()
{
return $this->belongsTo('App\User', 'contact_id');
}
}
+5
View File
@@ -29,4 +29,9 @@ class User extends Model
return $this->hasManyThrough('App\Transaction', 'App\GoodInfo', 'user_id', 'good_id', 'id');
}
public function getNotNullNicknameAttribute()
{
return $this->nickname != "" ? $this->nickname : "一位先锋市场用户";
}
}
@@ -0,0 +1,34 @@
<?php
use Illuminate\Support\Facades\Schema;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateMessageContactsTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('message_contacts', function (Blueprint $table) {
$table->increments('id');
$table->integer('user_id');
$table->integer('contact_id');
$table->integer('last_contact_time');
$table->timestamps();
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('message_contacts');
}
}