Commit 237dde85 by 庄欣

2

parent 92da4001
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
...@@ -24,6 +24,10 @@ class Art extends Model ...@@ -24,6 +24,10 @@ class Art extends Model
self::ACTIVE => "动态" self::ACTIVE => "动态"
]; ];
const fields = [
"id","title","cover","look_count","like_count","create_time","is_hidden","comment_count","is_del"
];
protected $table = "myp_article"; protected $table = "myp_article";
public $timestamps = false; public $timestamps = false;
...@@ -91,13 +95,13 @@ class Art extends Model ...@@ -91,13 +95,13 @@ class Art extends Model
$this->relation_keywords()->delete(); $this->relation_keywords()->delete();
$this->relation_keywords()->saveMany($keywords_list); $this->relation_keywords()->saveMany($keywords_list);
} }
$this->update($data); $is_saved = $this->update($data);
} catch (\Exception $e) { } catch (\Exception $e) {
DB::rollBack(); DB::rollBack();
return false; return false;
} }
DB::commit(); DB::commit();
return true; return $is_saved;
} }
} }
\ No newline at end of file
File mode changed from 100644 to 100755
...@@ -6,7 +6,7 @@ use App\Http\Validation\ValidatorBase as Validator; ...@@ -6,7 +6,7 @@ use App\Http\Validation\ValidatorBase as Validator;
class ArtValidator extends Validator class ArtValidator extends Validator
{ {
protected $validator = [ protected $validator = [
'title' => 'required|chinese_lenth:2,50', 'title' => 'required|chinese_length:2,50',
'cover' => 'required', 'cover' => 'required',
'content' => 'required' 'content' => 'required'
]; ];
...@@ -33,8 +33,7 @@ class ArtValidator extends Validator ...@@ -33,8 +33,7 @@ class ArtValidator extends Validator
} }
} }
} }
self::$result->setCustomMessages($messages); return $messages;
return empty($messages);
} }
} }
\ No newline at end of file
...@@ -13,6 +13,7 @@ use App\Article\Validation\ArtValidator; ...@@ -13,6 +13,7 @@ use App\Article\Validation\ArtValidator;
use App\Traits\Controller; use App\Traits\Controller;
use App\Article\Events\ArtEditedEvent; use App\Article\Events\ArtEditedEvent;
use Illuminate\Support\Facades\Event; use Illuminate\Support\Facades\Event;
use Mockery\CountValidator\Exception;
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; use App\Http\Response\Response;
...@@ -34,7 +35,7 @@ class Article extends \Illuminate\Routing\Controller ...@@ -34,7 +35,7 @@ class Article extends \Illuminate\Routing\Controller
$model = $this->setBlurSearch(ArtModel::class,$where,"title"); $model = $this->setBlurSearch(ArtModel::class,$where,"title");
is_null($where) && $where = []; is_null($where) && $where = [];
$row = isset($query["size"])?$query["size"]:config("app.default_perpage"); $row = isset($query["size"])?$query["size"]:config("app.default_perpage");
return Response::success($model->paginate($row)->toArray()); return Response::success($model->select(ArtModel::fields)->paginate($row)->toArray());
} }
public function store(Request $request) public function store(Request $request)
...@@ -42,7 +43,7 @@ class Article extends \Illuminate\Routing\Controller ...@@ -42,7 +43,7 @@ class Article extends \Illuminate\Routing\Controller
$validator = new ArtValidator(); $validator = new ArtValidator();
$post = $request->all(); $post = $request->all();
$res = $validator->validate($post); $res = $validator->validate($post);
if ($res->fails()) { if ($res == false) {
$messages = $validator->getMessages(); $messages = $validator->getMessages();
return Response::error($messages,HttpStatus::HttpValidationFailed); return Response::error($messages,HttpStatus::HttpValidationFailed);
} }
...@@ -75,8 +76,8 @@ class Article extends \Illuminate\Routing\Controller ...@@ -75,8 +76,8 @@ class Article extends \Illuminate\Routing\Controller
} else { } else {
return Response::error(); return Response::error();
} }
} catch (ModelNotFoundException $e){ } catch (\Exception $e){
return Response::error(HttpStatus::HttpNotFound,"攻略未找到"); return Response::error("攻略未找到",HttpStatus::HttpNotFound);
} }
} }
...@@ -86,8 +87,8 @@ class Article extends \Illuminate\Routing\Controller ...@@ -86,8 +87,8 @@ class Article extends \Illuminate\Routing\Controller
$info = ArtModel::findOrFail($id); $info = ArtModel::findOrFail($id);
$info->getRelate(request("relation")); $info->getRelate(request("relation"));
return Response::success($info->toArray()); return Response::success($info->toArray());
} catch (ModelNotFoundException $e){ } catch (\Exception $e){
return Response::error(HttpStatus::HttpNotFound,"攻略未找到"); return Response::error("攻略未找到",HttpStatus::HttpNotFound);
} }
} }
...@@ -97,8 +98,8 @@ class Article extends \Illuminate\Routing\Controller ...@@ -97,8 +98,8 @@ class Article extends \Illuminate\Routing\Controller
$model = ArtModel::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 (\Exception $e){
return Response::error(HttpStatus::HttpNotFound,"攻略未找到"); return Response::error("攻略未找到",HttpStatus::HttpNotFound);
} }
} }
} }
\ No newline at end of file
...@@ -4,14 +4,25 @@ ...@@ -4,14 +4,25 @@
namespace App\Cates\Controller; namespace App\Cates\Controller;
use App\Http\Response\Response; use App\Http\Response\Response;
use App\Traits\Controller;
use App\Cates\Model\Cates as CategoryModel;
class Category extends \Illuminate\Routing\Controller class Category extends \Illuminate\Routing\Controller
{ {
use Controller;
protected $query_fields = [
"previous","kw_name","is_del","sort"
];
public function index() public function index()
{ {
$query = request()->query();
$where = $this->filter($query);
$model = $this->setBlurSearch(CategoryModel::class,$where,"category_name");
is_null($where) && $where = [];
$row = isset($query["size"])?$query["size"]:config("app.default_perpage");
return Response::success($model->paginate($row)->toArray());
} }
public function info($id) public function info($id)
......
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
...@@ -9,6 +9,7 @@ ...@@ -9,6 +9,7 @@
namespace App\Http\Middleware; namespace App\Http\Middleware;
use Closure; use Closure;
class ParseNull class ParseNull
{ {
public function handle($request, Closure $next) public function handle($request, Closure $next)
......
...@@ -10,7 +10,7 @@ class ValidatorBase extends Validator ...@@ -10,7 +10,7 @@ class ValidatorBase extends Validator
public static $_validator; public static $_validator;
public static $_result; public static $_result;
/** /**
* @return \Illuminate\Validation\Validator * @return boolean
*/ */
public function validate(array $post) public function validate(array $post)
{ {
...@@ -28,7 +28,7 @@ class ValidatorBase extends Validator ...@@ -28,7 +28,7 @@ class ValidatorBase extends Validator
self::$_result = true; self::$_result = true;
} }
} else { } else {
self::$_result = true; self::$_result = false;
} }
return self::$_result; return self::$_result;
} }
......
...@@ -13,6 +13,7 @@ use App\Member\Model\User as UserModel; ...@@ -13,6 +13,7 @@ use App\Member\Model\User as UserModel;
class Ident extends Controller class Ident extends Controller
{ {
use \App\Traits\Controller;
/** /**
* 申请认证 * 申请认证
* method post * method post
...@@ -21,7 +22,7 @@ class Ident extends Controller ...@@ -21,7 +22,7 @@ class Ident extends Controller
public function store(Request $request) public function store(Request $request)
{ {
if (IdentModel::isApplied(request('id'))) { if (IdentModel::isApplied(request('id'))) {
return Response::error("用户已认证或正在审核中"); return Response::error("用户已认证或正在审核中",HttpStatus::HttpForbidden);
} }
$validator = new IdentValidator(); $validator = new IdentValidator();
$post = $request->all(); $post = $request->all();
...@@ -30,7 +31,7 @@ class Ident extends Controller ...@@ -30,7 +31,7 @@ class Ident extends Controller
isset($post['web_url']) && $post['web_url'] = json_encode($post['web_url']); isset($post['web_url']) && $post['web_url'] = json_encode($post['web_url']);
isset($post['org']) && $post['org'] = json_encode($post['org']); isset($post['org']) && $post['org'] = json_encode($post['org']);
$vali = $validator->validate($post); $vali = $validator->validate($post);
if($vali->fails()){ if($vali == false){
return Response::error($validator->getMessages(),HttpStatus::HttpValidationFailed); return Response::error($validator->getMessages(),HttpStatus::HttpValidationFailed);
}; };
if(count(UserModel::getUserIdsByNickname(trim($post['nickname']))) > 0) { if(count(UserModel::getUserIdsByNickname(trim($post['nickname']))) > 0) {
......
File mode changed from 100644 to 100755
...@@ -10,10 +10,10 @@ class IdentValidator extends Validator ...@@ -10,10 +10,10 @@ class IdentValidator 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_length:2,50',
'nickname' => 'required', 'nickname' => 'required',
'sex' => 'required', 'sex' => 'required',
'work_experince'=> 'required', 'work_experince'=> 'required',
...@@ -37,6 +37,8 @@ class IdentValidator extends Validator ...@@ -37,6 +37,8 @@ class IdentValidator extends Validator
'card_id.required' => '身份证号不能为空', 'card_id.required' => '身份证号不能为空',
'ex.array_length_min' => '代表作品限制为5张', 'ex.array_length_min' => '代表作品限制为5张',
'ex.array_length_max' => '代表作品限制为5张', 'ex.array_length_max' => '代表作品限制为5张',
"introduce.chinese_length" => '个人简介应为2到50个字',
"nickname.required" => '请传入昵称'
]; ];
......
<?php <?php
namespace App\Kw\Controller; namespace App\Kw\Controller;
use App\Http\Response\Response; use App\Http\Response\Response;
use App\Kw\Model\Keywords as KeywordsModel;
use App\Traits\Controller;
class Keywords extends \Illuminate\Routing\Controller class Keywords extends \Illuminate\Routing\Controller
{ {
use Controller;
protected $query_fields = [
"join_hot","kw_name","is_del"
];
public function index() public function index()
{ {
$query = request()->query();
$where = $this->filter($query);
$model = $this->setBlurSearch(KeywordsModel::class,$where,"kw_name");
is_null($where) && $where = [];
$row = isset($query["size"])?$query["size"]:config("app.default_perpage");
return Response::success($model->paginate($row)->toArray());
} }
public function info($id) public function show($id)
{ {
try {
$info = KeywordsModel::findOrFail($id);
return Response::success($info->toArray());
} catch (ModelNotFoundException $e){
return Response::error(HttpStatus::HttpNotFound,"未找到");
}
} }
public function child($id)
{
}
} }
...@@ -10,7 +10,7 @@ class Keywords extends Model ...@@ -10,7 +10,7 @@ class Keywords extends Model
use Models; use Models;
protected $table = "myp_kw"; protected $table = "myp_kw";
public function __construct(array $attributes) public function __construct(array $attributes = [])
{ {
parent::__construct($attributes); parent::__construct($attributes);
$this->beforeValidationOnCreate(); $this->beforeValidationOnCreate();
...@@ -28,6 +28,10 @@ class Keywords extends Model ...@@ -28,6 +28,10 @@ class Keywords extends Model
$words = trim($words); $words = trim($words);
$model = self::where("kw_name",$words)->first(); $model = self::where("kw_name",$words)->first();
if ($model) { if ($model) {
if ($auto_add) {
$model->used_count += 1;
$model->update();
}
return $model; return $model;
} }
if ($auto_add == true) { if ($auto_add == true) {
......
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
<?php
/**
* Created by PhpStorm.
* User: zhuangxin
* Date: 16-9-13
* Time: 上午10:54
*/
namespace App\Member\Model;
use App\Traits\Models;
use Illuminate\Database\Eloquent\Model;
class OAuth extends Model
{
use Models;
protected $table = "myp_third_party_account";
const fields = [
"uid","id","platform_id as token","platform"
];
}
\ No newline at end of file
File mode changed from 100644 to 100755
...@@ -20,12 +20,14 @@ class User extends Model ...@@ -20,12 +20,14 @@ class User extends Model
protected $table = "myp_user"; protected $table = "myp_user";
const fields = [ const fields = [
"id","mobile","nickname","avatar","is_del","role", "id","id as uid","mobile","nickname","avatar","is_del","role",
"access_token","device_token","city_id_2","city_name_2", "access_token","device_token","city_id_2","city_name_2",
"introduction","user_star","user_star_count","lock", "introduction","user_star","user_star_count","lock",
"xp_count","gender","country_code" "xp_count","gender","country_code"
]; ];
/** /**
* @param $uid * @param $uid
* @return int|bool * @return int|bool
...@@ -51,6 +53,11 @@ class User extends Model ...@@ -51,6 +53,11 @@ class User extends Model
public function relation_photographer() public function relation_photographer()
{ {
return $this->hasOne(Photographer::class,"uid")->select(Photographer::fields); return $this->hasOne(Photographer::class,"uid","uid")->select(Photographer::fields);
}
public function relation_third()
{
return $this->hasMany(OAuth::class,"uid","uid")->select(OAuth::fields);
} }
} }
\ No newline at end of file
...@@ -36,17 +36,17 @@ class User extends Controller ...@@ -36,17 +36,17 @@ class User extends Controller
} }
/** /**
* 普通用户详情 * 用户详情
*/ */
public function show($id) public function show($id)
{ {
try { try {
$info = UserModel::findOrFail($id , UserModel::fields); $info = UserModel::findOrFail($id , UserModel::fields);
$info->getRelate("photographer"); $info->getRelate(request("relation"));
} catch (ModelNotFoundException $e) { } catch (ModelNotFoundException $e) {
return Response::error("用户未找到"); return Response::error("用户未找到");
} }
return Response::success($info); return Response::success($info->toArray());
} }
public function getRelate($id,$relation) public function getRelate($id,$relation)
...@@ -54,14 +54,14 @@ class User extends Controller ...@@ -54,14 +54,14 @@ class User extends Controller
try { try {
$model = SetsModel::findOrFail($id , ["id"]); $model = SetsModel::findOrFail($id , ["id"]);
$model->getRelate($relation); $model->getRelate($relation);
return Response::success($model); return Response::success($model->toArray());
} catch (ModelNotFoundException $e){ } catch (ModelNotFoundException $e){
return Response::error(HttpStatus::HttpNotFound,"用户未找到"); return Response::error(HttpStatus::HttpNotFound,"用户未找到");
} }
} }
/** /**
* 更新一个HASH——CODE * 更新一个HASH CODE
* @return array * @return array
*/ */
public function code($code = null) public function code($code = null)
...@@ -76,6 +76,7 @@ class User extends Controller ...@@ -76,6 +76,7 @@ class User extends Controller
return Response::success($code); return Response::success($code);
} }
/*获取一个用户登录状态*/
public function getUserByHashCode($code) public function getUserByHashCode($code)
{ {
$redis = mRedis::getRedis(); $redis = mRedis::getRedis();
...@@ -86,7 +87,29 @@ class User extends Controller ...@@ -86,7 +87,29 @@ class User extends Controller
if (isset($user) && isset($user['id'])) { if (isset($user) && isset($user['id'])) {
return Response::success(UserModel::getUserInfo($user['id'])); return Response::success(UserModel::getUserInfo($user['id']));
}else{ }else{
return Response::error(); return Response::error("未登录",HttpStatus::HttpUnauthorized);
} }
} }
/**
* 根据CODE获取用户信息
*/
public function getUserIdByHashCode($code)
{
$redis = mRedis::getRedis();
$user = $redis->hGet(self::REDIS_AUTHKEY,$code);
if (!$user) {
return Response::error("未登录",HttpStatus::HttpUnauthorized);
}
if (isset($user['expire']) && time() > strtotime($user['expire']."+ 1 day")) {
$redis->hDel(self::REDIS_AUTHKEY,$code);
return Response::error("已过期",HttpStatus::HttpUnauthorized);
}
if (!isset($user['id'])) {
$redis->hDel(self::REDIS_AUTHKEY,$code);
return Response::error("未登录",HttpStatus::HttpUnauthorized);
}
return Response::success($user['id']);
}
} }
\ No newline at end of file
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
...@@ -26,6 +26,9 @@ class EventServiceProvider extends ServiceProvider ...@@ -26,6 +26,9 @@ class EventServiceProvider extends ServiceProvider
], ],
\App\Article\Events\ArtEditedEvent::class => [ \App\Article\Events\ArtEditedEvent::class => [
\App\Article\Listeners\ArtListener::class \App\Article\Listeners\ArtListener::class
],
\App\Works\Events\DetailDeleteEvent::class => [
\App\Works\Listeners\DeleteImageFromCDN::class
] ]
]; ];
......
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
...@@ -18,12 +18,13 @@ class Keywords extends Model ...@@ -18,12 +18,13 @@ class Keywords extends Model
"kw_id" "kw_id"
]; ];
public function __construct(array $attributes = []) public function __construct(array $attributes = [] , $uid = null)
{ {
parent::__construct($attributes); parent::__construct($attributes);
if (isset($attributes['kw_id']) && $attributes['kw_id'] > 0) { if (isset($attributes['kw_name'])) {
$id = $attributes['kw_id']; $model = \App\Kw\Model\Keywords::getIdByWords($attributes['kw_name'] , $uid , true);
$this->kw_name = \App\Kw\Model\Keywords::where("id",$id)->first()->kw_name; $this->kw_id = $model->id;
$this->kw_name = $model->kw_name;
} }
$this->beforeValidationOnCreate(); $this->beforeValidationOnCreate();
} }
......
...@@ -18,7 +18,7 @@ class Promotion extends Model ...@@ -18,7 +18,7 @@ class Promotion extends Model
protected $fillable = [ protected $fillable = [
"promotion_price","promotion_start_time","promotion_end_time", "promotion_price","promotion_start_time","promotion_end_time",
"per_user_count", "city_id" "per_user_count", "city_id","is_del"
]; ];
public function __construct(array $attributes = []) public function __construct(array $attributes = [])
...@@ -37,11 +37,5 @@ class Promotion extends Model ...@@ -37,11 +37,5 @@ class Promotion extends Model
$this->p_total_sale = 0; $this->p_total_sale = 0;
} }
public static function updated($callback, $priority = 0)
{
parent::updated(function(){
}, $priority);
}
} }
\ No newline at end of file
...@@ -110,7 +110,7 @@ class Sets extends Model ...@@ -110,7 +110,7 @@ class Sets extends Model
}; };
//关键词 //关键词
if (isset($data['keywords'])) { if (isset($data['keywords'])) {
$models = Keywords::add($data['keywords']); $models = Keywords::add($data['keywords'],$data['uid']);
$model->relation_keywords()->saveMany($models); $model->relation_keywords()->saveMany($models);
}; };
} catch (\Exception $e) { } catch (\Exception $e) {
...@@ -125,39 +125,38 @@ class Sets extends Model ...@@ -125,39 +125,38 @@ class Sets extends Model
public function uptSets($data) public function uptSets($data)
{ {
DB::beginTransaction(); DB::beginTransaction();
$model = new self;
try { try {
$data['temp_price'] = $data['price']; $data['temp_price'] = $data['price'];
$model->update($data); $this->update($data);
//促销 //促销
if (isset($data['promotion'])) { if (isset($data['promotion'])) {
$models = Promotion::add($data['promotion']); $models = Promotion::add($data['promotion']);
$model->relation_promotion()->delete(); $this->relation_promotion()->update(['is_del' => 1]);
$model->relation_promotion()->saveMany($models); $this->relation_promotion()->saveMany($models);
}; };
//绑定的样片 //绑定的样片
if (isset($data['works'])) { if (isset($data['works'])) {
$models = Works::add($data['works']); $models = Works::add($data['works']);
$model->relation_works()->delete(); $this->relation_works()->delete();
$model->relation_works()->saveMany($models); $this->relation_works()->saveMany($models);
}; };
//输入的附件 //输入的附件
if (isset($data['attachment'])) { if (isset($data['attachment'])) {
$models = Attachment::add($data['attachment']); $models = Attachment::add($data['attachment']);
$model->relation_attatchment()->delete(); $this->relation_attatchment()->delete();
$model->relation_attatchment()->saveMany($models); $this->relation_attatchment()->saveMany($models);
}; };
//分类 //分类
if (isset($data['category'])) { if (isset($data['category'])) {
$models = Category::add($data['category']); $models = Category::add($data['category']);
$model->relation_category()->delete(); $this->relation_category()->delete();
$model->relation_category()->saveMany($models); $this->relation_category()->saveMany($models);
}; };
//关键词 //关键词
if (isset($data['keywords'])) { if (isset($data['keywords'])) {
$models = Keywords::add($data['keywords']); $models = Keywords::add($data['keywords'],$this->uid);
$model->relation_keywords()->delete(); $this->relation_keywords()->delete();
$model->relation_keywords()->saveMany($models); $this->relation_keywords()->saveMany($models);
}; };
} catch (\Exception $e) { } catch (\Exception $e) {
self::throwError($e); self::throwError($e);
......
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
...@@ -4,6 +4,8 @@ namespace App\Traits; ...@@ -4,6 +4,8 @@ namespace App\Traits;
trait Controller trait Controller
{ {
static $sql;
/** /**
* 筛选合法参数 * 筛选合法参数
* @param $where * @param $where
...@@ -12,6 +14,8 @@ trait Controller ...@@ -12,6 +14,8 @@ trait Controller
*/ */
public function filter($where) public function filter($where)
{ {
$order = isset($where["order"])?$where["order"]:"id-desc";
$where['order'] = $order;
if (is_null($where) || empty($where)) { if (is_null($where) || empty($where)) {
return []; return [];
} }
...@@ -24,6 +28,7 @@ trait Controller ...@@ -24,6 +28,7 @@ trait Controller
if (trim($query_fields[0]) == "*") { if (trim($query_fields[0]) == "*") {
return $where; return $where;
} }
array_push($this->query_fields,"order");
return __()->pick($where,__()->intersection($this->query_fields,__()->keys($where))); return __()->pick($where,__()->intersection($this->query_fields,__()->keys($where)));
} }
return $where; return $where;
...@@ -31,35 +36,41 @@ trait Controller ...@@ -31,35 +36,41 @@ trait Controller
public function setBlurSearch($model,$where,$key,$condition = "like") public function setBlurSearch($model,$where,$key,$condition = "like")
{ {
if (is_null($where)) { $result_model = null;
return $model; list($field,$sort) = explode("-",$where["order"]);
$result_model = $model::orderBy($field,$sort);
try {
unset($where['order']);
unset($where['page']);
unset($where['size']);
} catch (\Exception $e) {
} }
if (!in_array($key,array_keys($where))) { if (!in_array($key,array_keys($where))) {
return $model::where($where); return $result_model->where($where);
} }
$where[$key] = trim($where[$key]); $where[$key] = trim($where[$key]);
$result_model = null;
switch ($condition) { switch ($condition) {
case "like": case "like":
$result_model = $model::where($key,"like","%".$where[$key]."%"); $result_model = $result_model->where($key,"like","%".$where[$key]."%");
break; break;
case "elt": case "elt":
$result_model = $model::where($key,"<=","'$where[$key]'"); $result_model = $result_model->where($key,"<=","'$where[$key]'");
break; break;
case "lt": case "lt":
$result_model = $model::where($key,"<=","'$where[$key]'"); $result_model = $result_model->where($key,"<=","'$where[$key]'");
break; break;
case "gt": case "gt":
$result_model = $model::where($key,">","'$where[$key]'"); $result_model = $result_model->where($key,">","'$where[$key]'");
break; break;
case "egt": case "egt":
$result_model = $model::where($key,">=","'$where[$key]'"); $result_model = $result_model->where($key,">=","'$where[$key]'");
break; break;
case "eq": case "eq":
$result_model = $model::where($where); $result_model = $result_model->where($where);
break; break;
case "in": case "in":
$result_model = $model::whereIn($key,"in",$where[$key]); $result_model = $result_model->whereIn($key,"in",$where[$key]);
break; break;
} }
unset($where[$key]); unset($where[$key]);
...@@ -68,6 +79,8 @@ trait Controller ...@@ -68,6 +79,8 @@ trait Controller
} catch (\Exception $e) { } catch (\Exception $e) {
} }
$o = clone $result_model;
self::$sql = $o->toSql();
return $result_model; return $result_model;
} }
......
...@@ -27,11 +27,11 @@ Trait Models ...@@ -27,11 +27,11 @@ Trait Models
return static::get(["id"])->count(); return static::get(["id"])->count();
} }
public static function add(array $data) public static function add(array $data,$uid)
{ {
$items = []; $items = [];
foreach ($data as $item) { foreach ($data as $item) {
$item = new self($item); $item = new static($item,$uid);
array_push($items,$item); array_push($items,$item);
} }
return $items; return $items;
......
<?php
namespace App\Works\Events;
use Illuminate\Queue\SerializesModels;
use Illuminate\Support\Facades\Event;
use App\Works\Model\Works as WorksModel;
class DetailDeleteEvent extends Event
{
use SerializesModels;
public $urls;
public function __construct(array $urls)
{
$this->urls = $urls;
}
}
File mode changed from 100644 to 100755
<?php
namespace App\Works\Listeners;
use App\Works\Events\DetailDeleteEvent;
use App\Libraries\Upyun\UpyunClient;
class DeleteImageFromCDN
{
public function handle(DetailDeleteEvent $evt)
{
$urls = $evt->urls;
$cnd = new UpyunClient();
foreach($urls as $url) {
$cnd->del($url);
}
}
}
...@@ -8,6 +8,8 @@ ...@@ -8,6 +8,8 @@
namespace App\Works\Listeners; namespace App\Works\Listeners;
use App\Works\Events\WorksEditedEvent; use App\Works\Events\WorksEditedEvent;
use App\Libraries\ElasticSearch\Search;
use App\Member\Model\User as UserModel;
class WorksSearcherListener class WorksSearcherListener
{ {
......
File mode changed from 100644 to 100755
File mode changed from 100644 to 100755
...@@ -11,6 +11,10 @@ class Details extends Model ...@@ -11,6 +11,10 @@ class Details extends Model
use Models; use Models;
protected $table = "myp_works_detail"; protected $table = "myp_works_detail";
protected $fillable = [
'works_url', 'image_height', 'image_height'
];
public function __construct(array $attributes = []) public function __construct(array $attributes = [])
{ {
parent::__construct($attributes); parent::__construct($attributes);
...@@ -20,6 +24,7 @@ class Details extends Model ...@@ -20,6 +24,7 @@ class Details extends Model
public function beforeValidationOnCreate() public function beforeValidationOnCreate()
{ {
$this->create_time = date("Y-m-d H:i:s",time()); $this->create_time = date("Y-m-d H:i:s",time());
$this->is_del = 0;
} }
public static function del($ids) public static function del($ids)
......
...@@ -11,6 +11,19 @@ class Keywords extends Model ...@@ -11,6 +11,19 @@ class Keywords extends Model
const fields = [ const fields = [
"id","kw_id","kw_name" "id","kw_id","kw_name"
]; ];
protected $fillable = [
"kw_id","kw_name"
];
public function __construct(array $attributes = [],$uid = null)
{
parent::__construct($attributes);
$model = \App\Kw\Model\Keywords::getIdByWords($attributes['kw_name'] , $uid , true);
$this->kw_id = $model->id;
$this->kw_name = $model->kw_name;
$this->beforeValidationOnCreate();
}
public function beforeValidationOnCreate()
{
$this->is_del = 0;
}
} }
\ No newline at end of file
File mode changed from 100644 to 100755
...@@ -8,10 +8,13 @@ ...@@ -8,10 +8,13 @@
namespace App\Works\Model; namespace App\Works\Model;
use App\Photo\v1\Controller\Details;
use App\Works\Events\DetailDeleteEvent;
use App\Works\Model\Details as DetailModel; 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;
use Illuminate\Support\Facades\Event;
class Works extends Model class Works extends Model
{ {
...@@ -37,6 +40,7 @@ class Works extends Model ...@@ -37,6 +40,7 @@ class Works extends Model
$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()); $this->create_time = date("Y-m-d H:i:s",time());
$this->is_del = 0;
} }
public function skipAttributesOnUpdate() public function skipAttributesOnUpdate()
...@@ -44,37 +48,38 @@ class Works extends Model ...@@ -44,37 +48,38 @@ class Works extends Model
$this->guard(['create_time','comment_count','like_count','collect_count','look_count']); $this->guard(['create_time','comment_count','like_count','collect_count','look_count']);
} }
protected $fillable = [
'uid', 'name', 'cover',"is_hidden"
];
public function relation_sets() public function relation_sets()
{ {
return $this->hasMany(\App\Sets\Model\Works::class,"works_id")->where('is_del',0)->select("sets_id"); return $this->hasMany(\App\Sets\Model\Works::class,"works_id")->select("sets_id");
} }
public function relation_category() public function relation_category()
{ {
return $this->hasMany(Category::class,"works_id")->where('is_del',0); return $this->hasMany(Category::class,"works_id");
} }
public function relation_detail() public function relation_detail()
{ {
return $this->hasMany(Details::class,"works_id")->where('is_del',0); return $this->hasMany(Details::class,"works_id");
} }
public function relation_comments() public function relation_comments()
{ {
return $this->hasMany(Comments::class,"works_id")->where('is_del',0); return $this->hasMany(Comments::class,"works_id");
} }
public function relation_keywords() public function relation_keywords()
{ {
return $this->hasMany(Keywords::class,"works_id")->where('is_del',0); return $this->hasMany(Keywords::class,"works_id");
} }
public function images(array $resources) public function images(array $resources)
{ {
$details = []; $details = \App\Works\Model\Details::add($resources);
foreach ($resources as $url) {
$details = new DetailModel($url);
}
return $this->relation_detail()->saveMany($details); return $this->relation_detail()->saveMany($details);
} }
...@@ -92,11 +97,52 @@ class Works extends Model ...@@ -92,11 +97,52 @@ class Works extends Model
throw new \Exception("保存图片失败"); throw new \Exception("保存图片失败");
} }
} }
if (isset($data['keywords']) && !empty($data['keywords'])) {
$models = Keywords::add($data['keywords']);
$model->relation_keywords()->saveMany($models);
}
} catch (\Exception $e) { } catch (\Exception $e) {
self::throwError($e);
DB::rollBack(); DB::rollBack();
return false; return false;
} }
DB::commit(); DB::commit();
return $model; return $model;
} }
public function uptWorks(array $data)
{
DB::beginTransaction();
$wait_delete = [];
try {
if (isset($data['images']) && !empty($data['images'])) {
$newImages = array_column($data['images'],"works_url");
$images = $this->relation_detail()->get();
if ($images != null) {
foreach($images->toArray() as $item) {
if(!in_array($item["works_url"],$newImages)) {
$wait_delete[] = $item['works_url'];
}
}
}
$details = $this->images($data['images']);
$this->relation_detail()->delete();
$this->relation_detail()->saveMany($details);
}
if (isset($data['keywords']) && !empty($data['keywords'])) {
$models = Keywords::add($data['keywords'],$data['uid']);
$this->relation_keywords()->saveMany($models);
}
$this->update($data);
} catch (\Exception $e) {
self::throwError($e);
DB::rollBack();
return false;
}
DB::commit();
if (!empty($wait_delete)) {
Event::fire(new DetailDeleteEvent($wait_delete));
}
return true;
}
} }
\ No newline at end of file
File mode changed from 100644 to 100755
...@@ -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->update($request->all()); $res = $model->uptWorks($request->all());
if ($res) { if ($res) {
Event::fire(new WorksEditedEvent($model)); Event::fire(new WorksEditedEvent($model));
return Response::ok(); return Response::ok();
......
...@@ -230,8 +230,8 @@ return [ ...@@ -230,8 +230,8 @@ return [
'default_perpage' => env("DEFAULT_PAGE",12), 'default_perpage' => env("DEFAULT_PAGE",12),
'elastic_searcher'=> [ 'elastic_searcher'=> [
'ip' => env("SEARCHER_IP","22"), 'ip' => env("SEARCHER_IP","127.0.0.1"),
'port' => env("SEARCHER_PORT","11111111111111111111111") 'port' => env("SEARCHER_PORT",9200)
], ],
'upyun' => [ 'upyun' => [
......
...@@ -16,12 +16,9 @@ Route::group(["prefix" => "sets", 'namespace' => Provider::getNamespace("sets")] ...@@ -16,12 +16,9 @@ Route::group(["prefix" => "sets", 'namespace' => Provider::getNamespace("sets")]
Route::post("/" , "Sets@store"); Route::post("/" , "Sets@store");
//编辑套系 //编辑套系
/*Route::put ("/{id}" , "Sets@update"); /*Route::put ("/{id}" , "Sets@update");
//软删除套系
Route::delete("/{id}", "Sets@softdelete");
//删除套系 //删除套系
Route::delete("/{id}/hard", "Sets@delete"); Route::delete("/{id}/hard", "Sets@delete");
//从软删除恢复 */
Route::put ("/{id}/resume","Sets/resume");*/
}); });
//分类 //分类
...@@ -70,6 +67,7 @@ Route::group(["prefix" => "user", 'namespace' => Provider::getNamespace("member" ...@@ -70,6 +67,7 @@ Route::group(["prefix" => "user", 'namespace' => Provider::getNamespace("member"
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::get("/search" ,"User@search");
Route::get("/getid/{code}" ,"User@getUserIdByHashCode");
}); });
...@@ -95,3 +93,9 @@ Route::group(["prefix" => "photo", 'namespace' => Provider::getNamespace("photo" ...@@ -95,3 +93,9 @@ Route::group(["prefix" => "photo", 'namespace' => Provider::getNamespace("photo"
Route::group(["prefix" => "city", 'namespace' => Provider::getNamespace("city")],function(){ Route::group(["prefix" => "city", 'namespace' => Provider::getNamespace("city")],function(){
Route::get("/" , "City@index"); Route::get("/" , "City@index");
}); });
//关键词
Route::group(["prefix" => "keywords", 'namespace' => Provider::getNamespace("kw")],function(){
Route::get("/" , "Keywords@index");
Route::get("/{id}" , "Keywords@show");
});
\ No newline at end of file
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