Commit 9b8f8c39 by 庄欣

选片

parent 508c07fe
<?php <?php
namespace App\Works\Events; namespace App\Article\Events;
use Illuminate\Queue\SerializesModels; use Illuminate\Queue\SerializesModels;
use Illuminate\Support\Facades\Event; use Illuminate\Support\Facades\Event;
use App\Article\W as WorksModel; use App\Article\Model\Art as ArtModel;
class ArtEditedEvent extends Event class ArtEditedEvent extends Event
{ {
......
...@@ -49,7 +49,7 @@ class ArtListener ...@@ -49,7 +49,7 @@ class ArtListener
"article_id" => $model->id, "article_id" => $model->id,
"title" => $model->title, "title" => $model->title,
"kw" => implode(" ",array_column($model->relation_keywords()->get("kw")->toArray(),"kw")), "kw" => implode(" ",array_column($model->relation_keywords()->get("kw")->toArray(),"kw")),
"nickname" => UserModel::getUserInfo($model->uid, "nickname")['nickname'], "nickname" => UserModel::getUserInfo($model->uid,["nickname"])->nickname,
"lasttime" => date("Y-m-d H:i:s") "lasttime" => date("Y-m-d H:i:s")
]); ]);
} }
......
...@@ -25,18 +25,44 @@ class Art extends Model ...@@ -25,18 +25,44 @@ class Art extends Model
]; ];
protected $table = "myp_article"; protected $table = "myp_article";
public $timestamps = false;
protected $fillable = [ protected $fillable = [
'content', 'content', 'title', 'cover', 'uid'
'title',
'cover'
]; ];
public function __construct(array $attributes = [])
{
parent::__construct($attributes);
$this->beforeValidationOnCreate();
}
public function beforeValidationOnCreate()
{
$this->look_count = 0;
$this->like_count = 0;
$this->collect_count = 0;
$this->is_hidden = 0;
$this->comment_count = 0;
$this->shared_count = 0;
$this->type = self::ARTICLE;
$this->hot_point = 0;
$this->is_del = 0;
$this->create_time = date("Y-m-d H:i:s",time());
}
public function relation_keywords() public function relation_keywords()
{ {
return $this->hasMany(Keywords::class,"article_id")->select(Keywords::fields); return $this->hasMany(Keywords::class,"article_id")->select(Keywords::fields);
} }
/**
* @param $data
* @return Art|bool
* 测试通过的第一个
*/
public static function newArt($data) public static function newArt($data)
{ {
$model = new self; $model = new self;
...@@ -44,14 +70,7 @@ class Art extends Model ...@@ -44,14 +70,7 @@ class Art extends Model
try { try {
$model->fill($data); $model->fill($data);
if (isset($data['keywords']) && !empty($data['keywords'])) { if (isset($data['keywords']) && !empty($data['keywords'])) {
$keywords_list = []; $keywords_list = Keywords::newKeywords($data['keywords'],$data['uid']);
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->relation_keywords()->saveMany($keywords_list);
} }
$model->save(); $model->save();
...@@ -67,20 +86,12 @@ class Art extends Model ...@@ -67,20 +86,12 @@ class Art extends Model
{ {
DB::beginTransaction(); DB::beginTransaction();
try { try {
$this->fill($data);
if (isset($data['keywords']) && !empty($data['keywords'])) { if (isset($data['keywords']) && !empty($data['keywords'])) {
$keywords_list = []; $keywords_list = Keywords::newKeywords($data['keywords'],$data['uid']);
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()->delete();
$this->relation_keywords()->saveMany($keywords_list); $this->relation_keywords()->saveMany($keywords_list);
} }
$this->save(); $this->update($data);
} catch (\Exception $e) { } catch (\Exception $e) {
DB::rollBack(); DB::rollBack();
return false; return false;
......
...@@ -9,4 +9,20 @@ class Keywords extends Model ...@@ -9,4 +9,20 @@ class Keywords extends Model
const fields = [ const fields = [
"id","kw_id","kw" "id","kw_id","kw"
]; ];
public static function newKeywords($keywords,$uid)
{
if (!is_array($keywords)) {
$keywords = [$keywords];
}
$keywords_list = [];
foreach ($keywords as $keyword) {
$keywords = new Keywords();
$words = BaseKeyWords::getIdByWords($keyword,$uid, true);
$keywords->kw = $words->kw_name;
$keywords->kw_id = $words->id;
array_push($keywords_list, $keywords);
}
return $keywords_list;
}
} }
\ No newline at end of file
...@@ -11,7 +11,7 @@ namespace App\Article\v1\Controller; ...@@ -11,7 +11,7 @@ namespace App\Article\v1\Controller;
use App\Article\Events\ArtAddEvent; use App\Article\Events\ArtAddEvent;
use App\Article\Validation\ArtValidator; use App\Article\Validation\ArtValidator;
use App\Traits\Controller; use App\Traits\Controller;
use App\Works\Events\ArtEditedEvent; use App\Article\Events\ArtEditedEvent;
use Illuminate\Support\Facades\Event; 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;
...@@ -48,7 +48,6 @@ class Article extends \Illuminate\Routing\Controller ...@@ -48,7 +48,6 @@ class Article extends \Illuminate\Routing\Controller
} }
$this->csrf($post,'content'); $this->csrf($post,'content');
$model = ArtModel::newArt($post); $model = ArtModel::newArt($post);
var_dump($model);
if ($model !== false) { if ($model !== false) {
Event::fire(new ArtAddEvent($model)); Event::fire(new ArtAddEvent($model));
return Response::ok(); return Response::ok();
...@@ -57,20 +56,20 @@ class Article extends \Illuminate\Routing\Controller ...@@ -57,20 +56,20 @@ class Article extends \Illuminate\Routing\Controller
} }
} }
/**
* 已测试
* @param $id
* @param Request $request
* @return array
*/
public function update($id,Request $request) public function update($id,Request $request)
{ {
try { try {
$model = ArtModel::findOrFail($id, ["id"]); $model = ArtModel::findOrFail($id);
$post = $request->all(); $post = $request->all();
$validator = new ArtValidator(); isset($post['content']) && $post['content'] = $this->csrf($post,'content');
$res = $validator->validate($post); $res = $model->uptArt($post);
if ($res->fails()) { if ($res !== false) {
$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)); Event::fire(new ArtEditedEvent($model));
return Response::ok(); return Response::ok();
} else { } else {
......
...@@ -16,6 +16,25 @@ class User extends Controller ...@@ -16,6 +16,25 @@ class User extends Controller
use \App\Traits\Controller; use \App\Traits\Controller;
protected $query_fields = [
"mobile","nickname"
];
public function search()
{
$query = request()->query();
$where = $this->filter($query);
if (key_exists("mobile",$where)) {
$model = UserModel::where("mobile","like","%".$where["mobile"]."%");
} elseif (key_exists("nickname",$where)){
$model = UserModel::where("nickname","like",$where["nickname"]."%");
} else {
return Response::success([]);
}
$res = $model->select(["id","nickname","mobile"])->first();
return Response::success(!is_null($res)?$res->toArray():[]);
}
/** /**
* 普通用户详情 * 普通用户详情
*/ */
......
<?php
namespace App\Photo\Model;
use \Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\DB;
class Details extends \Illuminate\Database\Eloquent\Model
{
const fields = [
"url","file_name","image_width","image_height","hit"
];
public $table = "myp_xp_set_details";
public $timestamps = false;
public function __construct(array $attributes = [])
{
parent::__construct($attributes);
$this->beforeValidationOnCreate();
}
public function beforeValidationOnCreate()
{
parent::beforeValidationOnCreate();
$this->hit = 0;
$this->is_del = 0;
$this->create_time = date("Y-m-d H:i:s",time());
}
}
\ No newline at end of file
<?php
namespace App\Photo\Model;
use App\Traits\Models;
use \Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\DB;
use App\Photo\Model\Details;
class Photo extends Model
{
use Models;
protected $table = "myp_xp_set";
public $timestamps = false;
protected $fillable = [
'cover', 'extra_truing_price','count',"uid","pg_id"
];
public function __construct(array $attributes = [])
{
parent::__construct($attributes);
$this->beforeValidationOnCreate();
}
public function relation_details()
{
return $this->hasMany(Details::class,"xp_id")->select(Details::fields);
}
public function beforeValidationOnCreate()
{
$this->is_choose = 0;
$this->choose_count = 0;
$this->detail_count = 0;
$this->choose_time = "0000-00-00 00:00:00";
$this->is_del = 1;
$this->cover = " ";
$this->create_time = date("Y-m-d H:i:s",time());
}
public static function newPhoto($data)
{
$model = new self;
$res = $model->fill($data)->save();
return $res == true ? $model : false;
}
}
\ No newline at end of file
<?php
namespace App\Photo\Validation;
use App\Http\Validation\ValidatorBase as Validator;
class PhotoValidator extends Validator
{
protected $validator = [
'uid' => 'required',
'pg_id' => 'required',
'cover' => 'required',
'extra_truing_price' => 'required|numberic|min:0',
'pg_id' => 'required',
'count' => 'required|min:1',
];
protected $message = [
'uid.required' => '发送的用户不能为空',
'extra_truing_price.required' => '请填写额外精修的单价',
'extra_truing_price.numberic' => '额外精修的单价必须是数字',
'extra_truing_price.min' => '额外精修金额需为0或正整数',
'count.required' => '请填写选片数量',
'count.min' => '选片数量必须大于0',
];
}
\ No newline at end of file
<?php
namespace App\Photo\v1\Controller;
use App\Http\Response\HttpStatus;
use App\Http\Response\Response;
use App\Traits\Controller;
use Illuminate\Database\Eloquent\ModelNotFoundException;
use Symfony\Component\HttpFoundation\Request;
use App\Photo\Model\Photo as PhotoModel;
class Details extends \Illuminate\Routing\Controller
{
}
\ No newline at end of file
<?php
namespace App\Photo\v1\Controller;
use App\Http\Response\HttpStatus;
use App\Http\Response\Response;
use App\Traits\Controller;
use Illuminate\Database\Eloquent\ModelNotFoundException;
use Symfony\Component\HttpFoundation\Request;
use App\Photo\Model\Photo as PhotoModel;
class Photo extends \Illuminate\Routing\Controller
{
use Controller;
protected $query_fields = [
"is_choose", "is_del"
];
/**
* 首页 列表 全部选片+未选片
*/
public function index()
{
$query = request()->query();
$where = $this->filter($query);
is_null($where) && $where = [];
$row = isset($query["size"])?$query["size"]:config("app.default_perpage");
return Response::success(PhotoModel::where($where)->paginate($row)->toArray());
}
/**
* 新建
* @method
* post
* @param
* uid int required
* pg_id int required
* cover string required
* extra_truing_price float required
* count int required
*
*/
public function store(Request $request)
{
$post = $request->all();
$validator = new PhotoValidator();
$res = $validator->validate($post);
if ($res->fails()) {
$messages = $validator->getMessages();
return Response::error($messages,HttpStatus::HttpValidationFailed);
}
$model = PhotoModel::newPhoto($post);
if ($model !== false) {
return Response::ok();
} else {
return Response::error();
}
}
public function update($id,Request $request)
{
try {
$model = PhotoModel::findOrFail($id);
$res = $model->update($request->all());
if ($res !== false) {
return Response::ok();
} else {
return Response::error();
}
} catch (\Exception $e) {
return Response::error(HttpStatus::HttpNotFound,"选片未找到");
}
}
/**
* 删除
*/
public function destory($id)
{
try {
$model = PhotoModel::findOrFail($id);
$model->delete();
} catch (ModelNotFoundException $e){}
return Response::ok();
}
}
\ No newline at end of file
...@@ -23,11 +23,11 @@ class SetsSearcherListener ...@@ -23,11 +23,11 @@ class SetsSearcherListener
*搜索引擎 *搜索引擎
*/ */
$searcher = Search::getSearcher(); $searcher = Search::getSearcher();
if ($model->is_del == 1 || $model->is_shelf == $model::SHELF_DOWN) { if ($model->is_del == 1 || $model->is_shelf == $model::SHELF_DOWN || $model->exists == false) {
$searcher->del(Search::SETS,$model->id); $searcher->del(Search::SETS,$model->id);
} elseif($model->is_del == 0 && $model->is_shelf == $model::SHELF_UP) { } elseif($model->is_del == 0 && $model->is_shelf == $model::SHELF_UP) {
$keyworks = array_column($model->relation_keywords()->get(["kw_name"])->toArray(),"kw_name"); $keyworks = array_column($model->relation_keywords()->get(["kw_name"])->toArray(),"kw_name");
$promotion = $model->relation_promotion()->toArray(); $promotion = $model->relation_promotion()->get()->toArray();
if (!empty($promotion)) { if (!empty($promotion)) {
$promotion = $promotion[0]; $promotion = $promotion[0];
} }
......
...@@ -4,14 +4,42 @@ namespace App\Sets\Model; ...@@ -4,14 +4,42 @@ namespace App\Sets\Model;
use \Illuminate\Database\Eloquent\Model; use \Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\Relation; use Illuminate\Database\Eloquent\Relations\Relation;
use Illuminate\Support\Facades\DB;
class Sets extends Model class Sets extends Model
{ {
use \App\Traits\Models; use \App\Traits\Models;
protected $table = "myp_sets";
const SHELF_UP = 0; const SHELF_UP = 0;
const SHELF_DOWN = 1; const SHELF_DOWN = 1;
protected $table = "myp_sets";
public $timestamps = false;
public function __construct(array $attributes)
{
parent::__construct($attributes);
$this->beforeValidationOnCreate();
}
public function beforeValidationOnCreate()
{
$this->collect_count = 0;
$this->star = 0;
$this->star_count = 0;
$this->look_count=0;
$this->makeup_descr = "";
$this->scene_descr = "";
$this->use_score = 0;
$this->cost_count = 0;
$this->n_lock = 0;
$this->n_sale = 0;
$this->n_total_sale = 0;
$this->promotion_id = 0;
$this->total_sale = 0;
$this->p_lock = 0;
$this->create_time = date("Y-m-d H:i:s",time());
$this->is_del = 0;
$this->sort = 0;
}
public function relation_promotion() public function relation_promotion()
{ {
...@@ -43,4 +71,15 @@ class Sets extends Model ...@@ -43,4 +71,15 @@ class Sets extends Model
return $this->hasMany(Comments::class,"sets_id")->where('is_del',0); return $this->hasMany(Comments::class,"sets_id")->where('is_del',0);
} }
public static function newSets($data)
{
DB::beginTransaction();
}
public function uptSets($data)
{
}
} }
\ No newline at end of file
<?php
namespace App\Sets\Validation;
use App\Http\Validation\ValidatorBase as Validator;
class AttachmentValidator extends Validator
{
protected $validator = [
'title' => 'chinese_length:2,8',
'count' => 'required|integer',
'spec' => 'required|chinese_length:2,12',
];
protected $message = [
'title.chinese_length' => '成品名称需在2到8字之间',
'count.required' => '请输入交付成品数量',
'count.integer' => '交付成品数量必须是数字',
'spec.required' => '请输入交付成品规格',
'spec.chinese_length' => '成品规格需在2到12字之间',
];
}
\ No newline at end of file
<?php
namespace App\Sets\Validation;
use App\Http\Validation\ValidatorBase as Validator;
class PromotionValidator extends Validator
{
protected $validator = [
'promotion_price' => 'required|integer',
'p_order_count' => 'required|integer',
'promotion_start_time' => 'required',
'promotion_end_time' => 'required',
];
protected $message = [
'promotion_price.required' => '请输入特惠金额',
'promotion_price.integer' => '特惠金额必须是数字',
'p_order_count.required' => '请输入特惠数量',
'p_order_count.integer' => '特惠数量必须是数字',
'promotion_start_time.required' => '请输入特惠开始时间',
'promotion_end_time.required' => '请输入特惠结束时间',
];
public function custom_validate($data)
{
}
}
\ No newline at end of file
...@@ -3,41 +3,147 @@ ...@@ -3,41 +3,147 @@
namespace App\Sets\Validation; namespace App\Sets\Validation;
use App\Http\Validation\ValidatorBase as Validator; use App\Http\Validation\ValidatorBase as Validator;
use App\Sets\Validation\AttachmentValidator;
use App\Sets\Validation\PromotionValidator;
class SetsValidator extends Validator class SetsValidator extends Validator
{ {
protected $validator = [ protected $validator = [
'city' => 'required', 'title' => 'required|chinese_length:2,15',
'card_handle' => 'required', 'cover' => 'required',
'alipay_account'=> 'required', 'price' => 'required|integer|min:5|max:10000',
'ex' => 'required|array_length_min:5|array_length_max:5', 'photographers_count' => 'required|integer',
'styles' => 'required', 'makeup_count' => 'required|integer',
'wx_open_id' => 'required', 'logistics_count' => 'required|integer',
'introduce' => 'chinese_lenth:2,50', 'join_count' => 'required|integer',
'nickname' => 'required', 'duration' => 'required|integer',
'sex' => 'required', 'negative_count' => 'required|integer',
'work_experince'=> 'required', 'modification_count' => 'required|integer',
'device' => 'required', 'modification_price' => 'required|integer',
'name' => 'required', 'modeling_count' => 'required|integer',
'card_id' => 'required', 'deadline_of_day' => 'required|integer',
'n_cost' => 'required|min:1',
'start_time' => 'required',
'end_time' => 'required',
]; ];
protected $message = [ protected $message = [
'city.required' => '请选择您的城市', 'title.required' => '请填写套系名称',
'introduce.chinese_lenth' => '个人简介应为2到50个字符', 'title.chinese_length' => '套系名称长度需在2到15字之间',
'card_handle.required' => '请上传您的手持证件照', 'cover.required' => '请选择封面',
'alipay_account.required' => '您必须填写支付宝账号', 'price.required' => '请填写套系价格',
'ex.required' => '你必须上传您的代表作品', 'price.integer' => '套系价格为数字',
'styles.required' => '请选择您擅长的分类', 'price.min' => '价格须在5元以上,100,000以下',
'wx_open_id.required' => '您还未绑定微信号', 'price.max' => '价格须在5元以上,100,000以下',
'sex.required' => '请选择性别', 'photographers_count.required' => '您还未填写人员配备人数',
'work_experince.required' => '请填写您的从业年限', 'photographers_count.integer' => '配备人数必须是数字',
'device.required' => '请填写您的拍摄器材', 'makeup_count.required' => '您还未填写化妆人员人数',
'name.required' => '姓名不能为空', 'makeup_count.integer' => '化妆人员人数必须是数字',
'card_id.required' => '身份证号不能为空', 'logistics_count.required' => '您还未填写后勤人数',
'ex.array_length_min' => '代表作品限制为5张', 'logistics_count.integer' => '后勤人数必须是数字',
'ex.array_length_max' => '代表作品限制为5张', 'join_count.required' => '您还未填写最多拍摄人数',
'join_count.integer' => '拍摄人数必须是数字',
'duration.required' => '您还未填写最多拍摄时长',
'duration.integer' => '拍摄时长必须是数字',
'negative_count.required' => '您还未填写底片数量',
'negative_count.integer' => '底片数量必须是数字',
'modification_count.required' => '您还未填写精修片数量',
'modification_count.integer' => '精修片数量必须是数字',
'modification_price.required' => '您还未填写额外精修价格',
'modification_price.integer' => '额外精修价格必须是数字',
'modeling_count.required' => '您还未填写造型数量',
'modeling_count.integer' => '造型数量必须是数字',
'deadline_of_day.required' => '您还未填写交图天数',
'deadline_of_day.integer' => '交图天数必须是数字',
'n_cost' => '套系可约单数必须大于0',
'start_time' => '请填写开始时间',
'end_time' => '请填写开始时间'
]; ];
/**
* 额外规则
* @param array $data
*/
public function custom_validate($data)
{
$messages = [];
if (empty($data['works'])) {
$messages[] = "该套系至少应绑定一个样片集";
}
if (empty($data['category'])) {
$messages[] = "该套系必须至少选择一个分类";
}
if ($data['modeling_count'] < $data['modeling_count_from_user']) {
$messages[] = "摄影师最多提供数不可大于造型总数量";
}
//整形判断
if (isset($data["allow_self_take"])) {
if(empty($data["modeling_count_from_user"])) {
$messages[] = '您还未填写允许用户自带数量';
};
if(!is_integer($data["modeling_count_from_user"])) {
$messages[] = '自带数量是数字';
};
}
if ($data['start_time'] > $data['end_time']) {
$messages[] = "套系开始时间必须小于结束时间";
}
if ($data["is_promotion"] == 1 && empty($data['promotion']['id'])) {
if ($data['promotion']['promotion_start_time'] >= $data['promotion']['promotion_end_time']) {
$messages[] = "特惠开始时间应小于特惠停止时间";
}
if ((int)$data['promotion']['per_user_count'] > $data['promotion']['p_order_count']) {
$messages[] = "特惠的限购额度应小于特惠数量";
}
if ($data['promotion']['p_order_count'] <= 0 ) {
$messages[] = "特惠数量应大于0";
}
if ($data['promotion']['promotion_start_time'] < $data['start_time']) {
$messages[] = "特惠的开始时间应大于套系的起始有效时间";
}
if ($data['promotion']['promotion_end_time'] > $data['end_time']) {
$messages[] = "特惠的结束时间应小于在套系终止有效时间";
}
$startdate=strtotime($data['promotion']['promotion_start_time']);
$enddate=strtotime($data['promotion']['promotion_end_time']);
$days=round(($enddate-$startdate)/3600/24) ;
if ($days > 100) {
$messages[] = "特惠时间长度不应大于100天";
}
if ($data['promotion']['promotion_price'] >= $data['price']) {
$messages[] = "特惠价格应小于套系价格";
}
if ($data['promotion']['promotion_price'] < 5) {
$messages[] = "特惠价格应大于5元";
}
$validator = new PromotionValidator();
$res = $validator->validate($data['promotion']);
if($res->fails()) {
$messages[] = $validator->getMessages();
}
unset($validator);
}
if (isset($data["attachment"]) && is_array($data["attachment"]) && count($data["attachment"]) > 0) {
$validator = new AttachmentValidator();
foreach($data["attachment"] as $item) {
if(!empty($item['title'])) {
$res = $validator->validate($item);
if($res->fails()) {
$messages[] = $validator->getMessages();
break;
}
}
}
unset($validator);
}
self::$result->setCustomMessages($messages);
return empty($messages);
}
} }
\ No newline at end of file
...@@ -5,7 +5,10 @@ namespace App\Sets\v1\Controller; ...@@ -5,7 +5,10 @@ namespace App\Sets\v1\Controller;
use App\Http\Response\HttpStatus; use App\Http\Response\HttpStatus;
use App\Http\Response\Response; use App\Http\Response\Response;
use App\Sets\Model\Sets as SetsModel; use App\Sets\Model\Sets as SetsModel;
use App\Sets\Validation\SetsValidator;
use Illuminate\Database\Eloquent\ModelNotFoundException; use Illuminate\Database\Eloquent\ModelNotFoundException;
use Symfony\Component\HttpFoundation\Request;
use App\Sets\Events\SetsEditedEvent;
class Sets extends \Illuminate\Routing\Controller class Sets extends \Illuminate\Routing\Controller
{ {
...@@ -74,9 +77,59 @@ class Sets extends \Illuminate\Routing\Controller ...@@ -74,9 +77,59 @@ class Sets extends \Illuminate\Routing\Controller
* method post * method post
* 新建套系 * 新建套系
*/ */
public function store() public function store(Request $request)
{ {
$validator = new SetsValidator();
$post = $request->all();
$res = $validator->validate($post);
if ($res->fails()) {
$messages = $validator->getMessages();
return Response::error($messages,HttpStatus::HttpValidationFailed);
}
$model = SetsModel::newSets($post);
if ($model !== false) {
Event::fire(new SetsEditedEvent($model));
return Response::ok();
} else {
return Response::error();
}
}
/**
* 修改
* @param $id
* @param Request $request
*/
public function update($id,Request $request)
{
try {
$model = SetsModel::findOrFail($id);
$res = $model->fill($request->all())->save();
if ($res) {
Event::fire(new SetsEditedEvent($model));
return Response::ok();
} else {
return Response::error();
}
} catch (ModelNotFoundException $e) {
return Response::error(HttpStatus::HttpNotFound,"样片未找到");
}
} }
public function destory($id)
{
try {
$model = SetsModel::findOrFail($id);
$res = $model->delete();
if ($res) {
Event::fire(new SetsEditedEvent($model));
return Response::ok();
} else {
return Response::error();
}
} catch (ModelNotFoundException $e) {
return Response::error(HttpStatus::HttpNotFound,"样片未找到");
}
}
} }
\ No newline at end of file
...@@ -36,25 +36,25 @@ trait Controller ...@@ -36,25 +36,25 @@ trait Controller
} }
switch ($condition) { switch ($condition) {
case "eq": case "eq":
$where[$key] = [$key,"like '%".$where[$key]."%'"]; $where["_condition"] = [$key,"like","'%.$where[$key].%'"];
break; break;
case "elt": case "elt":
$where[$key] = [$key,"<= '".$where[$key]."'"]; $where["_condition"] = [$key,"<=","'$where[$key]'"];
break; break;
case "lt": case "lt":
$where[$key] = [$key,"< '".$where[$key]."'"]; $where["_condition"] = [$key,"<","'$where[$key]'"];
break; break;
case "gt": case "gt":
$where[$key] = [$key,"> '".$where[$key]."'"]; $where["_condition"] = [$key,"<","'$where[$key]'"];
break; break;
case "egt": case "egt":
$where[$key] = [$key,">= '".$where[$key]."'"]; $where["_condition"] = [$key,">=","'$where[$key]'"];
break; break;
} }
return $where; return $where;
} }
public function csrf(&$data,$key) { public function csrf($data,$key) {
$data[$key] = preg_replace("/<script[^>]*>.*<\/script>/i","",$data[$key]); return preg_replace("/<script[^>]*>.*<\/script>/i","",$data[$key]);
} }
} }
\ No newline at end of file
...@@ -97,7 +97,7 @@ class Works extends \Illuminate\Routing\Controller ...@@ -97,7 +97,7 @@ class Works extends \Illuminate\Routing\Controller
} }
/** /**
* 编辑样片 * 编辑样片基础信息
* @param Request $request * @param Request $request
* @method put * @method put
*/ */
...@@ -105,7 +105,7 @@ class Works extends \Illuminate\Routing\Controller ...@@ -105,7 +105,7 @@ class Works extends \Illuminate\Routing\Controller
{ {
try { try {
$model = WorksModel::findOrFail($id); $model = WorksModel::findOrFail($id);
$res = $model->fill($request->all())->save(); $res = $model->update($request->all());
if ($res) { if ($res) {
Event::fire(new WorksEditedEvent($model)); Event::fire(new WorksEditedEvent($model));
return Response::ok(); return Response::ok();
......
...@@ -64,20 +64,28 @@ Route::group(["prefix" => "ident", 'namespace' => Provider::getNamespace("ident" ...@@ -64,20 +64,28 @@ Route::group(["prefix" => "ident", 'namespace' => Provider::getNamespace("ident"
}); });
//身份认证 //用户
Route::group(["prefix" => "user", 'namespace' => Provider::getNamespace("member")],function(){ Route::group(["prefix" => "user", 'namespace' => Provider::getNamespace("member")],function(){
Route::get("/{id}" , "User@show")->where(['id' => '\d+']); Route::get("/{id}" , "User@show")->where(['id' => '\d+']);
Route::get("/auth/{code?}" ,"User@code"); Route::get("/auth/{code?}" ,"User@code");
Route::get("/show/{code}" ,"User@getUserByHashCode")->where(['code' => '\S+']); Route::get("/show/{code}" ,"User@getUserByHashCode")->where(['code' => '\S+']);
Route::get("/search" ,"User@search");
}); });
//身份认证 //攻略
Route::group(["prefix" => "art", 'namespace' => Provider::getNamespace("article")],function(){ Route::group(["prefix" => "art", 'namespace' => Provider::getNamespace("article")],function(){
Route::get("/" , "Article@index")->where(['id' => '\d+']); Route::get("/" , "Article@index");
Route::put("/{id}" , "Article@update")->where(['id' => '\d+']); Route::put("/{id}" ,"Article@update")->where(['id' => '\d+']);
Route::post("/" , "Article@store")->where(['id' => '\d+']); Route::post("/" , "Article@store");
Route::get("/{id}" ,"Article@show")->where(['id' => '\d+']);
Route::get ("/{id}/relation/{relation}" , "Article@getRelate")->where(['id' => '\d+','relation'=>'\S+']); Route::get ("/{id}/relation/{relation}" , "Article@getRelate")->where(['id' => '\d+','relation'=>'\S+']);
}); });
//选片
Route::group(["prefix" => "photo", 'namespace' => Provider::getNamespace("photo")],function(){
Route::get("/" , "Photo@index");
Route::post("/" , "Photo@store");
Route::delete("/{id}", "Photo@destory")->where(['id' => '\d+']);
Route::put("/{id}" , "Photo@update")->where(['id' => '\d+']);
});
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