Commit 9976b708 by 庄欣

攻略部分的API

parent cac306fa
<?php
namespace App\Article\Events;
use Illuminate\Queue\SerializesModels;
use Illuminate\Support\Facades\Event;
use App\Article\Model\Art as ArtModel;
class ArtAddEvent extends Event
{
use SerializesModels;
public $model;
public function __construct(ArtModel $model)
{
$this->model = $model;
}
}
<?php
namespace App\Works\Events;
use Illuminate\Queue\SerializesModels;
use Illuminate\Support\Facades\Event;
use App\Article\W as WorksModel;
class ArtEditedEvent extends Event
{
use SerializesModels;
public $model;
public function __construct(ArtModel $model)
{
$this->model = $model;
}
}
<?php
/**
* Created by PhpStorm.
* User: zhuangxin
* Date: 16-9-13
* Time: 下午5:01
*/
namespace App\Article\Listeners;
use App\Article\Events\ArtAddEvent;
use App\Article\Events\ArtEditedEvent;
use App\Member\Model\User as UserModel;
use App\Headline\Model\HeadLine;
use App\Libraries\ElasticSearch\Search;
use App\Article\Model\Art as ArtModel;
class ArtListener
{
public function handle($event)
{
$model = $event->model;
try {
if ($event instanceof ArtAddEvent) {
$role = UserModel::getUserRole($model->uid);
if ($role !== false) {
if ($role == UserModel::ROLE_PHOTOGRAPHER) {
HeadLine::add(HeadLine::PHOTOGRAPHER_ARTICLE_PUBLISH, [
'photographer' => UserModel::getUserInfo($model->uid,["nickname"])->nickname,
'article' => $model->title,
'target' => $model->id
]);
}
if ($role == UserModel::ROLE_MASTER) {
HeadLine::add(HeadLine::MASTER_ARTICLE_PUBLISH, [
'master' => UserModel::getUserInfo($model->uid,["nickname"])->nickname,
'article' => $model->title,
'target' => $model->id
]);
}
}
}
$searcher = Search::getSearcher();
if ($model->is_del == 1 || $model->is_hidden == 1 || $model->exists == false) {
$searcher->del(Search::ART , $model->id);
} elseif ($model->is_del == 0 && $model->is_hidden == 0) {
$searcher->save(Search::ART , $model->id , [
"article_id" => $model->id,
"title" => $model->title,
"kw" => implode(" ",array_column($model->relation_keywords()->get("kw")->toArray(),"kw")),
"nickname" => UserModel::getUserInfo($model->uid, "nickname")['nickname'],
"lasttime" => date("Y-m-d H:i:s")
]);
}
} catch (\Exception $e) {
return;
}
}
}
\ No newline at end of file
...@@ -8,14 +8,79 @@ ...@@ -8,14 +8,79 @@
namespace App\Article\Model; namespace App\Article\Model;
use App\Traits\Models; use App\Traits\Models;
use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Model;
use App\Article\Model\Keywords;
use App\Kw\Model\Keywords as BaseKeyWords;
class Art extends Model class Art extends Model
{ {
use Models; use Models;
const ARTICLE = 0;
const ACTIVE = 1;
static $NAME = [
self::ARTICLE => "攻略",
self::ACTIVE => "动态"
];
protected $table = "myp_article";
public function relation_keywords() public function relation_keywords()
{ {
return $this->hasMany(Keywords::class,"works_id")->where('is_del',0); return $this->hasMany(Keywords::class,"article_id")->select(Keywords::fields);
}
public static function newArt($data)
{
$model = new self;
DB::beginTransaction();
try {
$model->fill($data);
if (isset($data['keywords']) && !empty($data['keywords'])) {
$keywords_list = [];
foreach ($data['keywords'] as $keyword) {
$keywords = new Keywords();
$words = BaseKeyWords::getIdByWords($keyword,$data['uid'],true);
$keywords->kw = $words->kw_name;
$keywords->kw_id = $words->id;
array_push($keywords_list,$keywords);
}
$model->relation_keywords()->saveMany($keywords_list);
}
$model->save();
} catch (\Exception $e) {
DB::rollBack();
return false;
}
DB::commit();
return $model;
}
public function uptArt($data)
{
DB::beginTransaction();
try {
$this->fill($data);
if (isset($data['keywords']) && !empty($data['keywords'])) {
$keywords_list = [];
foreach ($data['keywords'] as $keyword) {
$keywords = new Keywords();
$words = BaseKeyWords::getIdByWords($keyword,$data['uid'],true);
$keywords->kw = $words->kw_name;
$keywords->kw_id = $words->id;
array_push($keywords_list,$keywords);
}
$this->relation_keywords()->delete();
$this->relation_keywords()->saveMany($keywords_list);
}
$this->save();
} catch (\Exception $e) {
DB::rollBack();
return false;
}
DB::commit();
return true;
} }
} }
\ No newline at end of file
<?php <?php
/**
* Created by PhpStorm. namespace App\Article\Model;
* User: zhuangxin use \Illuminate\Database\Eloquent\Model;
* Date: 16-9-14
* Time: 下午5:56 class Keywords extends Model
*/ {
\ No newline at end of file protected $table = "myp_article_kw";
const fields = [
"id","kw_id","kw"
];
}
\ No newline at end of file
<?php
namespace App\Article\Validation;
use App\Http\Validation\ValidatorBase as Validator;
class ArtValidator extends Validator
{
protected $validator = [
'title' => 'required|chinese_lenth:2,50',
'cover' => 'required',
'content' => 'required'
];
protected $message = [
'title.required' => '需要输入标题',
'title.chinese_lenth' => '标题限制为2到50个字符',
'cover.required' => '请添加封面',
'content.required' => '请输入内容',
];
/**
* 额外规则
* @param array $data
*/
public function custom_validate(array $data)
{
$messages = [];
if (!empty($data['keywords'])) {
foreach($data['keywords'] as $keyword) {
if(mb_strlen($keyword,"utf8") > 4) {
$messages[] = "关键词: \"".$keyword."\" 应小于4个字";
break;
}
}
}
self::$result->setCustomMessages($messages);
return isEmpty($messages);
}
}
\ No newline at end of file
...@@ -8,9 +8,14 @@ ...@@ -8,9 +8,14 @@
namespace App\Article\v1\Controller; namespace App\Article\v1\Controller;
use App\Article\Events\ArtAddEvent;
use App\Article\Validation\ArtValidator;
use App\Traits\Controller; use App\Traits\Controller;
use App\Works\Events\ArtEditedEvent;
use Illuminate\Support\Facades\Event;
use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\Request;
use App\Article\Model\Art as ArtModel; use App\Article\Model\Art as ArtModel;
use App\Http\Response\Response;
class Article extends \Illuminate\Routing\Controller class Article extends \Illuminate\Routing\Controller
{ {
...@@ -21,7 +26,7 @@ class Article extends \Illuminate\Routing\Controller ...@@ -21,7 +26,7 @@ class Article extends \Illuminate\Routing\Controller
"uid","title","is_del","type" "uid","title","is_del","type"
]; ];
public function lists() public function index()
{ {
$query = request()->query(); $query = request()->query();
$where = $this->filter($query); $where = $this->filter($query);
...@@ -33,7 +38,45 @@ class Article extends \Illuminate\Routing\Controller ...@@ -33,7 +38,45 @@ class Article extends \Illuminate\Routing\Controller
public function store(Request $request) public function store(Request $request)
{ {
$validator = new ArtValidator();
$post = $request->all();
$res = $validator->validate($post);
if ($res->fails()) {
$messages = $validator->getMessages();
return Response::error($messages,HttpStatus::HttpValidationFailed);
}
$this->csrf($post,'content');
$model = ArtModel::newArt($post);
if ($model !== false) {
Event::fire(new ArtAddEvent($model));
return Response::ok();
} else {
return Response::error();
}
}
public function update($id,Request $request)
{
try {
$model = ArtModel::findOrFail($id, ["id"]);
$post = $request->all();
$validator = new ArtValidator();
$res = $validator->validate($post);
if ($res->fails()) {
$messages = $validator->getMessages();
return Response::error($messages,HttpStatus::HttpValidationFailed);
}
$post['content'] = $this->csrf($post,'content');
$model->uptArt($post);
if ($model !== false) {
Event::fire(new ArtEditedEvent($model));
return Response::ok();
} else {
return Response::error();
}
} catch (ModelNotFoundException $e){
return Response::error(HttpStatus::HttpNotFound,"攻略未找到");
}
} }
public function show($id) public function show($id)
...@@ -47,15 +90,10 @@ class Article extends \Illuminate\Routing\Controller ...@@ -47,15 +90,10 @@ class Article extends \Illuminate\Routing\Controller
} }
} }
public function keywords($id,Request $request)
{
}
public function getRelate($id,$relation) public function getRelate($id,$relation)
{ {
try { try {
$model = WorksModel::findOrFail($id , ["id"]); $model = ArtModel::findOrFail($id , ["id"]);
$model->getRelate($relation); $model->getRelate($relation);
return Response::success($model); return Response::success($model);
} catch (ModelNotFoundException $e){ } catch (ModelNotFoundException $e){
......
...@@ -9,7 +9,7 @@ class Category extends \Illuminate\Routing\Controller ...@@ -9,7 +9,7 @@ class Category extends \Illuminate\Routing\Controller
{ {
public function lists() public function index()
{ {
} }
......
<?php
namespace App\Headline\Model;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\DB;
class HeadLine extends Model
{
const IDENT_PASS = 1;
const SETS_PUBLISH = 2;
const PHOTOGRAPHER_ARTICLE_PUBLISH = 3;
const OPEN_NEW_CITY = 4;
const MASTER_ARTICLE_PUBLISH = 5;
const SETS_RECOMMEND = 6;
const TITLE = [
self::IDENT_PASS => "摄影师通过认证",
self::SETS_PUBLISH => "发布套系",
self::PHOTOGRAPHER_ARTICLE_PUBLISH => "摄影师发布攻略",
self::OPEN_NEW_CITY => "开通新城市",
self::MASTER_ARTICLE_PUBLISH => "达人发布攻略",
self::SETS_RECOMMEND => "推荐套系"
];
const TEMPLATE = [
self::IDENT_PASS => "摄影师「{photographer}」入驻约拍啦",
self::SETS_PUBLISH => "摄影师「{photographer}」添加了新套系「{sets}」",
self::PHOTOGRAPHER_ARTICLE_PUBLISH => "摄影师「{photographer}」发布了新攻略「{article}」",
self::OPEN_NEW_CITY => "约拍开通了新服务城市「{city}」",
self::MASTER_ARTICLE_PUBLISH => "达人「{master}」发布了新攻略「{article}」",
self::SETS_RECOMMEND => "「{photographer}」的套系「{sets}」被太多人喜欢啦"
];
protected $table = "myp_headline";
//解析字符串
protected static function parse($action,$data) {
if (!array_key_exists($action,self::TEMPLATE)) {
return false;
}
$str = self::TEMPLATE[$action];
if (key_exists("photographer",$data)) {
$str = str_replace("{photographer}",$data['photographer'],$str);
}
if (key_exists("sets",$data)) {
$str = str_replace("{sets}",$data['sets'],$str);
}
if (key_exists("article",$data)) {
$str = str_replace("{article}",$data['article'],$str);
}
if (key_exists("city",$data)) {
$str = str_replace("{city}",$data['city'],$str);
}
if (key_exists("master",$data)) {
$str = str_replace("{master}",$data['master'],$str);
}
return $str;
}
//新增
public static function add($action,$data)
{
$str = static::parse($action,$data);
if ($str === false) {
return false;
}
$content = [
'content' => $str,
'type' => $action
];
if (isset($data['target'])) {
$content['target'] = $data['target'];
}
$instance = new self();
return $instance->save($content);
}
}
\ No newline at end of file
...@@ -15,6 +15,9 @@ class ValidatorBase extends Validator ...@@ -15,6 +15,9 @@ class ValidatorBase extends Validator
public function validate(array $post) public function validate(array $post)
{ {
self::$result = self::make($post,$this->validator,$this->message); self::$result = self::make($post,$this->validator,$this->message);
if (method_exists($this,"custom_validate")) {
call_user_func_array([$this,"custom_validate"],$post);
}
return self::$result; return self::$result;
} }
......
<?php
namespace App\Kw\Model;
use App\Traits\Models;
use Illuminate\Database\Eloquent\Model;
class Keywords extends Model
{
use Models;
protected $table = "myp_kw";
public function __construct(array $attributes)
{
parent::__construct($attributes);
$this->beforeValidationOnCreate();
}
protected function beforeValidationOnCreate()
{
$this->create_time = date("Y-m-d H:i:s",time());
$this->is_del = 0;
$this->sort = 0;
}
public static function getIdByWords($words,$uid = 0,$auto_add = false)
{
$words = trim($words);
$model = self::where("kw_name",$words)->first();
if ($model) {
return $model;
}
if ($auto_add == true) {
$model = new self;
$model->kw_name = $words;
$model->uid = $uid;
$model->follow_count = 0;
$model->used_count = 1;
$model->save();
return $model;
} else {
return false;
}
}
}
\ No newline at end of file
...@@ -32,16 +32,16 @@ class User extends Model ...@@ -32,16 +32,16 @@ class User extends Model
*/ */
public static function getUserRole($uid) public static function getUserRole($uid)
{ {
$info = self::getUserInfo($uid,["role"]); $info = self::find($uid,["role"]);
if($info->count() > 0) { if (!$info) {
return $info[0]->role; return false;
} }
return false; return $info->role;
} }
public static function getUserInfo($uid,array $fields = self::fields) public static function getUserInfo($uid,array $fields = self::fields)
{ {
return self::where("id",$uid)->get($fields); return self::where("id",$uid)->select($fields)->first();
} }
public static function getUserIdsByNickname($nickanme) public static function getUserIdsByNickname($nickanme)
......
...@@ -20,6 +20,12 @@ class EventServiceProvider extends ServiceProvider ...@@ -20,6 +20,12 @@ class EventServiceProvider extends ServiceProvider
\App\Sets\Events\SetsEditedEvent::class => [ \App\Sets\Events\SetsEditedEvent::class => [
\App\Sets\Listeners\SetsSearcherListener::class \App\Sets\Listeners\SetsSearcherListener::class
], ],
\App\Article\Events\ArtAddEvent::class => [
\App\Article\Listeners\ArtListener::class
],
\App\Article\Events\ArtEditedEvent::class => [
\App\Article\Listeners\ArtListener::class
]
]; ];
/** /**
......
...@@ -10,7 +10,7 @@ class SetsValidator extends Validator ...@@ -10,7 +10,7 @@ class SetsValidator extends Validator
'city' => 'required', 'city' => 'required',
'card_handle' => 'required', 'card_handle' => 'required',
'alipay_account'=> 'required', 'alipay_account'=> 'required',
'ex' => 'required,array_length_min:5,array_length_max:5', 'ex' => 'required|array_length_min:5|array_length_max:5',
'styles' => 'required', 'styles' => 'required',
'wx_open_id' => 'required', 'wx_open_id' => 'required',
'introduce' => 'chinese_lenth:2,50', 'introduce' => 'chinese_lenth:2,50',
......
...@@ -26,7 +26,7 @@ class Sets extends \Illuminate\Routing\Controller ...@@ -26,7 +26,7 @@ class Sets extends \Illuminate\Routing\Controller
* @param shelf int option * @param shelf int option
* @param * @param
*/ */
public function lists() public function index()
{ {
$query = request()->query(); $query = request()->query();
$where = $this->filter($query); $where = $this->filter($query);
...@@ -42,7 +42,7 @@ class Sets extends \Illuminate\Routing\Controller ...@@ -42,7 +42,7 @@ class Sets extends \Illuminate\Routing\Controller
* @method get * @method get
* @return array * @return array
*/ */
public function info($id) public function show($id)
{ {
try { try {
$info = SetsModel::findOrFail($id); $info = SetsModel::findOrFail($id);
......
...@@ -9,10 +9,12 @@ ...@@ -9,10 +9,12 @@
namespace App\Test\Controller; namespace App\Test\Controller;
use App\Article\Model\Art;
use App\Ident\Model\Ident; use App\Ident\Model\Ident;
use App\Ident\Validation\IdentValidator; use App\Ident\Validation\IdentValidator;
use App\Libraries\Upyun\UpyunClient; use App\Libraries\Upyun\UpyunClient;
use App\Member\Model\Member; use App\Member\Model\Member;
use App\Member\Model\User;
use App\Sets\Model\Works; use App\Sets\Model\Works;
use Illuminate\Foundation\Validation\ValidatesRequests; use Illuminate\Foundation\Validation\ValidatesRequests;
use Illuminate\Http\Request; use Illuminate\Http\Request;
...@@ -34,11 +36,7 @@ class TestController extends Controller ...@@ -34,11 +36,7 @@ class TestController extends Controller
public function index() public function index()
{ {
$url1 = "http://devyuepai.b0.upaiyun.com/app/4/works/2016-08-24/74ffb5bce0e84651b0f0d1fb1308884c1458dc6f.jpg"; $k = User::getUserInfo(14,["nickname"])->nickname;
$url2 = "https://devyuepai.b0.upaiyun.com/app/4/works/2016-08-24/74ffb5bce0e84651b0f0d1fb1308884c1458dc6f.jpg"; var_dump($k);
$sdk = new UpyunClient();
$sdk->del($url1);
$sdk->del($url2);
} }
} }
\ No newline at end of file
...@@ -53,4 +53,8 @@ trait Controller ...@@ -53,4 +53,8 @@ trait Controller
} }
return $where; return $where;
} }
public function csrf(&$data,$key) {
$data[$key] = preg_replace("/<script[^>]*>.*<\/script>/i","",$data[$key]);
}
} }
\ No newline at end of file
...@@ -4,7 +4,6 @@ namespace App\Traits; ...@@ -4,7 +4,6 @@ namespace App\Traits;
Trait Models Trait Models
{ {
public function getRelate($relations) public function getRelate($relations)
{ {
is_string($relations) && $relations = explode(",",$relations); is_string($relations) && $relations = explode(",",$relations);
...@@ -25,4 +24,5 @@ Trait Models ...@@ -25,4 +24,5 @@ Trait Models
} }
return static::get(["id"])->count(); return static::get(["id"])->count();
} }
} }
\ No newline at end of file
...@@ -7,8 +7,6 @@ ...@@ -7,8 +7,6 @@
*/ */
namespace App\Works\Listeners; namespace App\Works\Listeners;
use App\Works\Events\WorksEditedEvent; use App\Works\Events\WorksEditedEvent;
class WorksSearcherListener class WorksSearcherListener
...@@ -18,11 +16,11 @@ class WorksSearcherListener ...@@ -18,11 +16,11 @@ class WorksSearcherListener
{ {
$works = $event->model; $works = $event->model;
$searcher = Search::getSearcher(); $searcher = Search::getSearcher();
if ($works->is_del == 1 || $works->is_hidden == 1 || $works->exists) { if ($works->is_del == 1 || $works->is_hidden == 1 || $works->exists == false) {
$searcher->del(Search::WORKS,$works->id); $searcher->del(Search::WORKS,$works->id);
} elseif($works->is_del == 0 && $works->is_hidden == 0) { } elseif($works->is_del == 0 && $works->is_hidden == 0) {
$keyworks = array_column($works->relation_keywords()->get(["kw_name"])->toArray(),"kw_name"); $keyworks = array_column($works->relation_keywords()->get(["kw_name"])->toArray(),"kw_name");
$searcher->save(Search::WORKS,$works->id,[ $searcher->save(Search::WORKS , $works->id , [
'works_id' => $works->id, 'works_id' => $works->id,
'name' => $works->name, 'name' => $works->name,
'kw' => implode(" ",$keyworks), 'kw' => implode(" ",$keyworks),
......
...@@ -11,12 +11,23 @@ class Details extends Model ...@@ -11,12 +11,23 @@ class Details extends Model
use Models; use Models;
protected $table = "myp_works_detail"; protected $table = "myp_works_detail";
public static function del($id,$ids) public function __construct(array $attributes = [])
{
parent::__construct($attributes);
$this->beforeValidationOnCreate();
}
public function beforeValidationOnCreate()
{
$this->create_time = date("Y-m-d H:i:s",time());
}
public static function del($ids)
{ {
if (!is_array($ids)) { if (!is_array($ids)) {
$ids = explode(",", $ids); $ids = explode(",", $ids);
} }
$lists = self::where("works_id",$id)->whereIn("id",$ids)->get(['id','works_url']); $lists = self::whereIn("id",$ids)->get(['id','works_url']);
if ($lists->count() > 0) { if ($lists->count() > 0) {
foreach ($lists->toArray() as $detail) { foreach ($lists->toArray() as $detail) {
$detail->delete(); $detail->delete();
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
namespace App\Works\Model; namespace App\Works\Model;
use App\Details\Model\Details; use App\Works\Model\Details as DetailModel;
use App\Traits\Models; use App\Traits\Models;
use \Illuminate\Database\Eloquent\Model; use \Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\DB;
...@@ -36,6 +36,7 @@ class Works extends Model ...@@ -36,6 +36,7 @@ class Works extends Model
$this->is_hidden = 0; $this->is_hidden = 0;
$this->ref_count = 0; $this->ref_count = 0;
$this->count = 0; $this->count = 0;
$this->create_time = date("Y-m-d H:i:s",time());
} }
public function skipAttributesOnUpdate() public function skipAttributesOnUpdate()
...@@ -72,9 +73,30 @@ class Works extends Model ...@@ -72,9 +73,30 @@ class Works extends Model
{ {
$details = []; $details = [];
foreach ($resources as $url) { foreach ($resources as $url) {
$details = new Details($url); $details = new DetailModel($url);
} }
return $this->relation_detail()->saveMany($details); return $this->relation_detail()->saveMany($details);
} }
public static function newWorks(array $data)
{
$model = new self;
DB::beginTransaction();
try {
$isSaved = $model->fill($data)->save();
if (!$isSaved){
throw new \Exception("保存失败");
}
if (isset($data['images']) && !empty($data['images'])) {
if (!$model->images($data['images'])) {
throw new \Exception("保存图片失败");
}
}
} catch (\Exception $e) {
DB::rollBack();
return false;
}
DB::commit();
return $model;
}
} }
\ No newline at end of file
...@@ -7,7 +7,7 @@ use App\Http\Validation\ValidatorBase as Validator; ...@@ -7,7 +7,7 @@ use App\Http\Validation\ValidatorBase as Validator;
class WorksValidator extends Validator class WorksValidator extends Validator
{ {
protected $validator = [ protected $validator = [
'name' => 'required,chinese_length:2,15', 'name' => 'required|chinese_length:2,15',
'details' => 'array_length_min:5,array_length_max:15', 'details' => 'array_length_min:5,array_length_max:15',
'uid' => 'required', 'uid' => 'required',
]; ];
......
<?php
namespace App\Works\v1\Controller;
use App\Http\Response\HttpStatus;
use App\Http\Response\Response;
use App\Works\Model\Works as WorksModel;
use Illuminate\Database\Eloquent\ModelNotFoundException;
use Symfony\Component\HttpFoundation\Request;
use App\Works\Model\Details as DetailModel;
class Details extends \Illuminate\Routing\Controller
{
use \App\Traits\Controller;
protected $query_fields = [
"works_id","is_del"
];
/**
* 样片详情列表
* @method get
* @param
* @param uid int option
* @param shelf int option
* @param
*/
public function index($id)
{
$query = request()->query();
$where = $this->filter($query);
$where['works_id'] = $id;
is_null($where) && $where = [];
$row = isset($query["size"])?$query["size"]:config("app.default_perpage");
return Response::success(WorksModel::where($where)->paginate($row)->toArray());
}
/**
* 新建
* @method post
*/
public function store($id,Request $request)
{
$post = $request->all();
try {
$works = WorksModel::findOrFail($id , ["id"]);
$res = $works->images($post);
if ($res) {
return Response::ok();
} else {
return Response::error();
}
} catch (ModelNotFoundException $e){
return Response::error(HttpStatus::HttpNotFound,"样片未找到");
}
}
/**
* 删除
* @method delete
*/
public function destory($ids)
{
$res = DetailModel::del($ids);
if ($res) {
return Response::ok();
} else {
return Response::error();
}
}
}
\ No newline at end of file
...@@ -31,7 +31,7 @@ class Works extends \Illuminate\Routing\Controller ...@@ -31,7 +31,7 @@ class Works extends \Illuminate\Routing\Controller
* @param shelf int option * @param shelf int option
* @param * @param
*/ */
public function lists() public function index()
{ {
$query = request()->query(); $query = request()->query();
$where = $this->filter($query); $where = $this->filter($query);
...@@ -87,9 +87,8 @@ class Works extends \Illuminate\Routing\Controller ...@@ -87,9 +87,8 @@ class Works extends \Illuminate\Routing\Controller
$messages = $validator->getMessages(); $messages = $validator->getMessages();
return Response::error($messages,HttpStatus::HttpValidationFailed); return Response::error($messages,HttpStatus::HttpValidationFailed);
} }
$model = new WorksModel(); $model = WorksModel::newWorks($post);
$isSaved = $model->fill($post)->save(); if ($model !== false) {
if ($isSaved) {
Event::fire(new WorksEditedEvent($model)); Event::fire(new WorksEditedEvent($model));
return Response::ok(); return Response::ok();
} else { } else {
...@@ -102,7 +101,7 @@ class Works extends \Illuminate\Routing\Controller ...@@ -102,7 +101,7 @@ class Works extends \Illuminate\Routing\Controller
* @param Request $request * @param Request $request
* @method put * @method put
*/ */
public function edit($id,Request $request) public function update($id,Request $request)
{ {
try { try {
$model = WorksModel::findOrFail($id); $model = WorksModel::findOrFail($id);
...@@ -120,45 +119,10 @@ class Works extends \Illuminate\Routing\Controller ...@@ -120,45 +119,10 @@ class Works extends \Illuminate\Routing\Controller
/** /**
* 删除样片中的一张照片
* $ids 一个或多个works_detail的ID
* @method delete
*/
public function delimage($id,$ids)
{
$res = DetailModel::del($id,$ids);
if ($res) {
return Response::ok();
} else {
return Response::error();
}
}
/**
* 添加照片
* @method post
*/
public function image($id,Request $request)
{
$post = $request->all();
try {
$works = WorksModel::findOrFail($id , ["id"]);
$res = $works->images($post);
if ($res) {
return Response::ok();
} else {
return Response::error();
}
} catch (ModelNotFoundException $e){
return Response::error(HttpStatus::HttpNotFound,"样片未找到");
}
}
/**
* 删除一个样片 * 删除一个样片
* @method delete * @method delete
*/ */
public function delete($id) public function destory($id)
{ {
try { try {
$model = WorksModel::findOrFail($id); $model = WorksModel::findOrFail($id);
......
...@@ -7,15 +7,15 @@ Route::resource ("test" , \App\Test\Controller\TestController::class); ...@@ -7,15 +7,15 @@ Route::resource ("test" , \App\Test\Controller\TestController::class);
Route::group(["prefix" => "sets", 'namespace' => Provider::getNamespace("sets")],function(){ Route::group(["prefix" => "sets", 'namespace' => Provider::getNamespace("sets")],function(){
//套系列表 //套系列表
Route::get ("/" , "Sets@lists"); Route::get ("/" , "Sets@index");
//套系详情 //套系详情
Route::get ("/{id}" , "Sets@info")->where(['id' => '\d+']); Route::get ("/{id}" , "Sets@show")->where(['id' => '\d+']);
//获取关联信息 //获取关联信息
Route::get ("/{id}/relation/{relation}" , "Sets@getRelate")->where(['id' => '\d+','relation'=>'\S+']); Route::get ("/{id}/relation/{relation}" , "Sets@getRelate")->where(['id' => '\d+','relation'=>'\S+']);
//新增套系 //新增套系
/* Route::post("/" , "Sets@newsets"); /* Route::post("/" , "Sets@newsets");
//编辑套系 //编辑套系
Route::put ("/{id}" , "Sets@edit"); Route::put ("/{id}" , "Sets@update");
//软删除套系 //软删除套系
Route::delete("/{id}", "Sets@softdelete"); Route::delete("/{id}", "Sets@softdelete");
//删除套系 //删除套系
...@@ -27,7 +27,7 @@ Route::group(["prefix" => "sets", 'namespace' => Provider::getNamespace("sets")] ...@@ -27,7 +27,7 @@ Route::group(["prefix" => "sets", 'namespace' => Provider::getNamespace("sets")]
//分类 //分类
Route::group(["prefix" => "cates", 'namespace' => Provider::getNamespace("cates")],function(){ Route::group(["prefix" => "cates", 'namespace' => Provider::getNamespace("cates")],function(){
//获取所有分类 //获取所有分类
Route::get ("/" , "Category@lists"); Route::get ("/" , "Category@index");
//获取子分类 //获取子分类
// Route::get ("/{id}/child" , "Category@child")->where(['id' => '\d+']) ; // Route::get ("/{id}/child" , "Category@child")->where(['id' => '\d+']) ;
//分类详情 //分类详情
...@@ -35,22 +35,26 @@ Route::group(["prefix" => "cates", 'namespace' => Provider::getNamespace("cates" ...@@ -35,22 +35,26 @@ Route::group(["prefix" => "cates", 'namespace' => Provider::getNamespace("cates"
}); });
//分类 //样片
Route::group(["prefix" => "works", 'namespace' => Provider::getNamespace("works")],function(){ Route::group(["prefix" => "works", 'namespace' => Provider::getNamespace("works")],function(){
//套系列表 //套系列表
Route::get ("/" , "Works@lists"); Route::get ("/" , "Works@index");
//套系详情 //套系详情
Route::get ("/{id}" , "Works@show")->where(['id' => '\d+']); Route::get ("/{id}" , "Works@show")->where(['id' => '\d+']);
//获取关联信息 //获取关联信息
Route::get ("/{id}/relation/{relation}" , "Works@getRelate")->where(['id' => '\d+','relation'=>'\S+']); Route::get ("/{id}/relation/{relation}" , "Works@getRelate")->where(['id' => '\d+','relation'=>'\S+']);
Route::get ("/{id}/details" , "Details@index")->where(['id' => '\d+']);
//新增 //新增
Route::post("/" , "Sets@newsets"); Route::post("/" , "Works@store");
//编辑 //编辑
Route::put ("/{id}" , "Works@edit")->where(['id'=>'\d+']); Route::put ("/{id}" , "Works@update")->where(['id'=>'\d+']);
//删除 //删除
Route::delete("/{id}/hard", "Works@delete"); Route::delete("/{id}/hard", "Works@destory");
//删除照片 //删除照片
Route::delete("/{id}/{ids}","Works@delimage")->where(['id' => '\d+','ids'=>'\S+']); Route::delete("/{ids}/image","Details@destory")->where(['ids'=>'\S+']);
//新增样片里的照片
Route::post("/{id}/image","Details@store");
}); });
...@@ -68,3 +72,12 @@ Route::group(["prefix" => "user", 'namespace' => Provider::getNamespace("member" ...@@ -68,3 +72,12 @@ Route::group(["prefix" => "user", 'namespace' => Provider::getNamespace("member"
}); });
//身份认证
Route::group(["prefix" => "art", 'namespace' => Provider::getNamespace("article")],function(){
Route::get("/" , "Article@index")->where(['id' => '\d+']);
Route::put("/{id}" , "Article@update")->where(['id' => '\d+']);
Route::post("/" , "Article@store")->where(['id' => '\d+']);
Route::get ("/{id}/relation/{relation}" , "Article@getRelate")->where(['id' => '\d+','relation'=>'\S+']);
});
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment