diff --git a/app/Http/Controllers/Api/CommentController.php b/app/Http/Controllers/Api/CommentController.php index abda5e7..f1fccd3 100644 --- a/app/Http/Controllers/Api/CommentController.php +++ b/app/Http/Controllers/Api/CommentController.php @@ -27,10 +27,11 @@ class CommentController extends CommonController $limit = $request->input('limit', 10); $offset = $request->input('offset', 0); $where['user_id'] = Token::$uid; - $where['comment_type'] = $request->input('comment_type', 0); //0商品评价,1文章评价 + $where['comment_type'] = 0;if($request->input('comment_type')!=null){$where['comment_type'] = $request->input('comment_type');}; //0商品评价,1文章评价 if($request->input('comment_rank', '') != ''){$where['comment_rank'] = $request->input('comment_rank');} if($request->input('id_value', '') != ''){$where['id_value'] = $request->input('id_value');} if($request->input('parent_id', '') != ''){$where['parent_id'] = $request->input('parent_id');} + $where['status'] = Comment::SHOW_COMMENT; $res = $this->getLogic()->getList($where, array('id', 'desc'), '*', $offset, $limit); @@ -69,6 +70,7 @@ class CommentController extends CommonController { $_POST['user_id'] = Token::$uid; $_POST['add_time'] = time(); + $_POST['ip_address'] = Helper::getRemoteIp(); return $this->getLogic()->add($_POST); } @@ -77,16 +79,20 @@ class CommentController extends CommonController //评价批量添加 public function commentBatchAdd(Request $request) { - if($request->input('comment',null)===null){return ReturnData::create(ReturnData::PARAMS_ERROR);} + if($request->input('comment',null)==null){return ReturnData::create(ReturnData::PARAMS_ERROR);} $comment = json_decode($request->input('comment'),true); - foreach($comment as $k=>$v) + + if($comment) { - $comment[$k]['user_id'] = Token::$uid; - $comment[$k]['ip_address'] = Helper::getRemoteIp(); - $comment[$k]['add_time'] = time(); + foreach($comment as $k=>$v) + { + $comment[$k]['user_id'] = Token::$uid; + $comment[$k]['ip_address'] = Helper::getRemoteIp(); + $comment[$k]['add_time'] = time(); + } } - return Comment::batchAdd($comment); + return $this->getLogic()->batchAdd($comment); } //修改 @@ -114,7 +120,7 @@ class CommentController extends CommonController if(Helper::isPostRequest()) { $where['id'] = $id; - //$where['user_id'] = Token::$uid; + $where['user_id'] = Token::$uid; return $this->getLogic()->del($where); } diff --git a/app/Http/Controllers/Api/UserBonusController.php b/app/Http/Controllers/Api/UserBonusController.php index 2a6bdf3..9815285 100644 --- a/app/Http/Controllers/Api/UserBonusController.php +++ b/app/Http/Controllers/Api/UserBonusController.php @@ -1,11 +1,13 @@ input('limit', 10); - $data['offset'] = $request->input('offset', 0); - if($request->input('status', '') != ''){$data['status'] = $request->input('status');} - $data['user_id'] = Token::$uid; + $limit = $request->input('limit', 10); + $offset = $request->input('offset', 0); + if($request->input('status', null) != null){$where['status'] = $request->input('status');} - $res = UserBonus::getList($data); - if($res == false) - { - return ReturnData::create(ReturnData::SYSTEM_FAIL); - } + $where['user_id'] = Token::$uid; + $res = $this->getLogic()->getList($where, array('id', 'desc'), '*', $offset, $limit); + return ReturnData::create(ReturnData::SUCCESS,$res); } - //用户获取优惠券 - public function userBonusAdd(Request $request) + public function userBonusDetail(Request $request) { //参数 - $data['bonus_id'] = $request->input('bonus_id',''); - $data['get_time'] = time(); - $data['user_id'] = Token::$uid; + if(!checkIsNumber($request->input('id',null))){return ReturnData::create(ReturnData::PARAMS_ERROR);} + $id = $request->input('id'); + $where['id'] = $id; + $where['user_id'] = Token::$uid; - if($data['bonus_id']=='') + $res = $this->getLogic()->getOne($where); + if(!$res) { - return ReturnData::create(ReturnData::PARAMS_ERROR); - } + return ReturnData::create(ReturnData::RECORD_NOT_EXIST); + } - return UserBonus::add($data); + return ReturnData::create(ReturnData::SUCCESS,$res); } - //用户删除优惠券 - public function userBonusDelete(Request $request) - { - $id = $request->input('id',''); - if($id=='') - { - return ReturnData::create(ReturnData::PARAMS_ERROR); + //添加 + public function userBonusAdd(Request $request) + { + if(Helper::isPostRequest()) + { + $_POST['user_id'] = Token::$uid; + + return $this->getLogic()->add($_POST); } + } + + //修改 + public function userBonusUpdate(Request $request) + { + if(!checkIsNumber($request->input('id',null))){return ReturnData::create(ReturnData::PARAMS_ERROR);} + $id = $request->input('id'); - $res = UserBonus::remove($id); - if($res == false) - { - return ReturnData::create(ReturnData::SYSTEM_FAIL,null,$res); - } + if(Helper::isPostRequest()) + { + unset($_POST['id']); + $where['id'] = $id; + $where['user_id'] = Token::$uid; + + return $this->getLogic()->edit($_POST,$where); + } + } + + //删除 + public function userBonusDelete(Request $request) + { + if(!checkIsNumber($request->input('id',null))){return ReturnData::create(ReturnData::PARAMS_ERROR);} + $id = $request->input('id'); - return ReturnData::create(ReturnData::SUCCESS,$res); + if(Helper::isPostRequest()) + { + $where['id'] = $id; + $where['user_id'] = Token::$uid; + + return $this->getLogic()->del($where); + } } public function userAvailableBonusList(Request $request) @@ -76,12 +105,12 @@ class UserBonusController extends CommonController return ReturnData::create(ReturnData::PARAMS_ERROR); } - $res = UserBonus::getAvailableBonusList($data); - if($res == false) + $res = $this->getLogic()->getAvailableBonusList($data); + if($res) { - return ReturnData::create(ReturnData::SYSTEM_FAIL); + return ReturnData::create(ReturnData::SUCCESS,$res); } - return ReturnData::create(ReturnData::SUCCESS,$res); + return ReturnData::create(ReturnData::SYSTEM_FAIL); } } \ No newline at end of file diff --git a/app/Http/Controllers/Api/VerifyCodeController.php b/app/Http/Controllers/Api/VerifyCodeController.php index 1448c79..ded4554 100644 --- a/app/Http/Controllers/Api/VerifyCodeController.php +++ b/app/Http/Controllers/Api/VerifyCodeController.php @@ -1,13 +1,13 @@ input('limit', 10); + $offset = $request->input('offset', 0); + + $where['user_id'] = Token::$uid; + + $res = $this->getLogic()->getList($where, array('id', 'desc'), '*', $offset, $limit); + + return ReturnData::create(ReturnData::SUCCESS,$res); + } + + public function verifyCodeDetail(Request $request) + { + //参数 + if(!checkIsNumber($request->input('id',null))){return ReturnData::create(ReturnData::PARAMS_ERROR);} + $id = $request->input('id'); + $where['id'] = $id; + + $res = $this->getLogic()->getOne($where); + if(!$res) + { + return ReturnData::create(ReturnData::RECORD_NOT_EXIST); + } + + return ReturnData::create(ReturnData::SUCCESS,$res); + } + + //添加 + public function verifyCodeAdd(Request $request) + { + if(Helper::isPostRequest()) + { + $_POST['user_id'] = Token::$uid; + + return $this->getLogic()->add($_POST); + } + } + + //修改 + public function verifyCodeUpdate(Request $request) + { + if(!checkIsNumber($request->input('id',null))){return ReturnData::create(ReturnData::PARAMS_ERROR);} + $id = $request->input('id'); + + if(Helper::isPostRequest()) + { + unset($_POST['id']); + $where['id'] = $id; + $where['user_id'] = Token::$uid; + + return $this->getLogic()->edit($_POST,$where); + } + } + + //删除 + public function verifyCodeDelete(Request $request) + { + if(!checkIsNumber($request->input('id',null))){return ReturnData::create(ReturnData::PARAMS_ERROR);} + $id = $request->input('id'); + + if(Helper::isPostRequest()) + { + $where['id'] = $id; + $where['user_id'] = Token::$uid; + + return $this->getLogic()->del($where); + } + } + //验证码校验 public function verifyCodeCheck(Request $request) { diff --git a/app/Http/Logic/CommentLogic.php b/app/Http/Logic/CommentLogic.php index 5837212..3083975 100644 --- a/app/Http/Logic/CommentLogic.php +++ b/app/Http/Logic/CommentLogic.php @@ -83,6 +83,9 @@ class CommentLogic extends BaseLogic $validator = $this->getValidate($data, 'add'); if ($validator->fails()){return ReturnData::create(ReturnData::PARAMS_ERROR, null, $validator->errors()->first());} + $comment = $this->getModel()->getOne(['comment_type'=>$data['comment_type'],'id_value'=>$data['id_value'],'user_id'=>$data['user_id']]); + if($comment){return ReturnData::create(ReturnData::FAIL,null,'您已经评论过了');} + $res = $this->getModel()->add($data,$type); if($res){return ReturnData::create(ReturnData::SUCCESS,$res);} @@ -126,4 +129,20 @@ class CommentLogic extends BaseLogic { return getDataAttr($this->getModel(),$data); } + + //批量添加 + public function batchAdd(array $data) + { + if(empty($data)){return ReturnData::create(ReturnData::PARAMS_ERROR);} + + DB::beginTransaction(); + foreach($data as $k=>$v) + { + $res = $this->add($v); + if($res['code'] == ReturnData::SUCCESS){}else{DB::rollBack();return $res;} + } + + DB::commit(); + return ReturnData::create(ReturnData::SUCCESS); + } } \ No newline at end of file diff --git a/app/Http/Logic/UserBonusLogic.php b/app/Http/Logic/UserBonusLogic.php index 2f49bd3..80325e7 100644 --- a/app/Http/Logic/UserBonusLogic.php +++ b/app/Http/Logic/UserBonusLogic.php @@ -34,6 +34,7 @@ class UserBonusLogic extends BaseLogic foreach($res['list'] as $k=>$v) { $res['list'][$k] = $this->getDataView($v); + $res['list'][$k]->bonus = model('Bonus')->getOne(['id'=>$v->bonus_id]); } } @@ -71,11 +72,12 @@ class UserBonusLogic extends BaseLogic if(!$res){return false;} $res = $this->getDataView($res); + $res->bonus = model('Bonus')->getOne(['id'=>$res->bonus_id]); return $res; } - //添加 + //用户获取优惠券 public function add($data = array(), $type=0) { if(empty($data)){return ReturnData::create(ReturnData::PARAMS_ERROR);} @@ -83,8 +85,21 @@ class UserBonusLogic extends BaseLogic $validator = $this->getValidate($data, 'add'); if ($validator->fails()){return ReturnData::create(ReturnData::PARAMS_ERROR, null, $validator->errors()->first());} + $data['get_time'] = time(); + + $bonus = model('Bonus')->getOne(['id'=>$data['bonus_id']]); + if(!$bonus){return ReturnData::create(ReturnData::PARAMS_ERROR,null,'亲,您来晚了啦,已被抢光了');} + if($bonus->num==-1 || $bonus->num>0){}else{return ReturnData::create(ReturnData::PARAMS_ERROR,null,'亲,您来晚了啦,已被抢光了');} + + if($this->getModel()->getOne(['bonus_id'=>$data['bonus_id'],'user_id'=>$data['user_id']])){return ReturnData::create(ReturnData::PARAMS_ERROR,null,'亲,您已获取!');} + + $data['get_time'] = time(); //优惠券获取时间 $res = $this->getModel()->add($data,$type); - if($res){return ReturnData::create(ReturnData::SUCCESS,$res);} + if($res) + { + if($bonus->num>0){model('Bonus')->getDb()->where(array('id'=>$data['bonus_id']))->decrement('num', 1);} + return ReturnData::create(ReturnData::SUCCESS,$res); + } return ReturnData::create(ReturnData::FAIL); } @@ -126,4 +141,44 @@ class UserBonusLogic extends BaseLogic { return getDataAttr($this->getModel(),$data); } + + /** + * 商品结算时,获取优惠券列表 + * @param float $param['min_amount'] 最小金额可以用的优惠券 + * @return array + */ + public function getAvailableBonusList(array $param) + { + $where['user_bonus.user_id'] = $param['user_id']; + if(isset($status)){$where['bonus.status'] = 0;} + + $model = model('UserBonus')->getDb(); + if(isset($param['min_amount'])){$model = $model->where('bonus.min_amount', '<=', $param['min_amount'])->where('bonus.money', '<=', $param['min_amount']);} //满多少使用 + $model = $model->where('bonus.end_time', '>=', date('Y-m-d H:i:s')); //有效期 + + $bonus_list = $model->join('bonus', 'bonus.id', '=', 'user_bonus.bonus_id')->where($where) + ->select('bonus.*', 'user_bonus.user_id', 'user_bonus.used_time', 'user_bonus.get_time', 'user_bonus.status as user_bonus_status', 'user_bonus.id as user_bonus_id') + ->orderBy('bonus.money','desc')->get(); + + $res['list'] = $bonus_list; + + return $res; + } + + public function getUserBonusByid(array $param) + { + $where['user_bonus.user_id'] = $param['user_id']; + $where['bonus.status'] = 0; + $where['user_bonus.id'] = $param['user_bonus_id']; + + $model = model('UserBonus')->getDb(); + if(isset($param['min_amount'])){$model = $model->where('bonus.min_amount', '<=', $param['min_amount'])->where('bonus.money', '<=', $param['min_amount']);} //满多少使用 + $model = $model->where('bonus.end_time', '>=', date('Y-m-d H:i:s')); //有效期 + + $bonus = $model->join('bonus', 'bonus.id', '=', 'user_bonus.bonus_id')->where($where) + ->select('bonus.*', 'user_bonus.user_id', 'user_bonus.used_time', 'user_bonus.get_time', 'user_bonus.status as user_bonus_status', 'user_bonus.id as user_bonus_id') + ->first(); + + return $bonus; + } } \ No newline at end of file diff --git a/app/Http/Model/Comment.php b/app/Http/Model/Comment.php index 9c476e4..105e989 100644 --- a/app/Http/Model/Comment.php +++ b/app/Http/Model/Comment.php @@ -189,42 +189,6 @@ class Comment extends BaseModel } /* - //获取列表 - public static function getList(array $param) - { - extract($param); //参数:limit,offset - - $where['user_id'] = $user_id; - $where['status'] = self::SHOW_COMMENT; - - $limit = isset($limit) ? $limit : 10; - $offset = isset($offset) ? $offset : 0; - - $model = new self; - - if(isset($comment_rank)){$where['comment_rank'] = $comment_rank;} //评价分 - if(isset($id_value)){$where['id_value'] = $id_value;} //商品的id - if(isset($comment_type)){$where['comment_type'] = $comment_type;} //0商品评价,1文章评价 - if(isset($parent_id)){$where['parent_id'] = $parent_id;} - - $model = $model->where($where); - - $res['count'] = $model->count(); - $res['list'] = array(); - - if($res['count']>0) - { - $res['list'] = $model->skip($offset)->take($limit)->orderBy('id','desc')->get(); - } - - return $res; - } - - public static function getOne($where) - { - return self::where($where)->first(); - } - public static function add(array $data) { if(!isset($data['comment_type']) || !isset($data['id_value']) || !isset($data['user_id']) || $data['comment_type']===null || $data['id_value']===null || $data['user_id']===null) @@ -271,28 +235,5 @@ class Comment extends BaseModel } return ReturnData::create(ReturnData::SYSTEM_FAIL); - } - - public static function modify($where, array $data) - { - if (self::where($where)->update($data)) - { - return true; - } - - return false; - } - - //删除一条记录 - public static function remove(array $data) - { - if(!self::where(array('user_id'=>$data['user_id'],'comment_type'=>$data['comment_type'],'id_value'=>$data['id_value']))->first()){return '商品尚未评价';} - - if (self::where(array('user_id'=>$data['user_id'],'comment_type'=>$data['comment_type'],'id_value'=>$data['id_value']))->delete() === false) - { - return false; - } - - return true; - } */ + }*/ } \ No newline at end of file diff --git a/app/Http/Model/UserBonus.php b/app/Http/Model/UserBonus.php index a915828..0cbf928 100644 --- a/app/Http/Model/UserBonus.php +++ b/app/Http/Model/UserBonus.php @@ -168,132 +168,4 @@ class UserBonus extends BaseModel return $res; } - /* - //获取列表 - public static function getList(array $param) - { - extract($param); //参数:limit,offset - - $where['user_id'] = $user_id; - $limit = isset($limit) ? $limit : 10; - $offset = isset($offset) ? $offset : 0; - - $model = new UserBonus; - - if(isset($status)){$where['status'] = $status;} - - $model = $model->where($where); - - $res['count'] = $model->count(); - $res['list'] = array(); - - if($res['count']>0) - { - $bonus_list = $model->skip($offset)->take($limit)->orderBy('id','desc')->get(); - foreach($bonus_list as $k=>$v) - { - $bonus_list[$k]->bonus = Bonus::where('id',$v->bonus_id)->first(); - } - - $res['list'] = $bonus_list; - } - else - { - return false; - } - - return $res; - } - - public static function getOne($where) - { - $res = self::where($where)->first(); - if($res){$res->bonus = Bonus::where('id',$res->bonus_id)->first();} - - return $res; - } - - public static function add(array $data) - { - $bonus1 = Bonus::where(['id'=>$data['bonus_id']])->where('num',-1)->first(); - $bonus2 = Bonus::where(['id'=>$data['bonus_id']])->where('num','>',0)->first(); - - if(!$bonus1 && !$bonus2) - { - return ReturnData::create(ReturnData::PARAMS_ERROR,null,'亲,您来晚了啦,已被抢光了'); - } - - if(self::where(['bonus_id'=>$data['bonus_id'],'user_id'=>$data['user_id']])->first()){return ReturnData::create(ReturnData::PARAMS_ERROR,null,'亲,您已获取!');} - - $data['get_time'] = time(); //优惠券获取时间 - if ($id = self::insertGetId($data)) - { - if(!$bonus1){DB::table('bonus')->where(array('id'=>$data['bonus_id']))->decrement('num', 1);} - - return ReturnData::create(ReturnData::SUCCESS,$id); - } - - return ReturnData::create(ReturnData::SYSTEM_FAIL); - } - - public static function modify($where, array $data) - { - if (self::where($where)->update($data)) - { - return true; - } - - return false; - } - - //删除一条记录 - public static function remove($id) - { - if (!self::whereIn('id', explode(',', $id))->delete()) - { - return false; - } - - return true; - } - - //商品结算时,获取优惠券列表 - public static function getAvailableBonusList(array $param) - { - extract($param); - - $where['user_bonus.user_id'] = $user_id; - if(isset($status)){$where['bonus.status'] = 0;} - - $model = new UserBonus; - if(isset($min_amount)){$model = $model->where('bonus.min_amount', '<=', $min_amount)->where('bonus.money', '<=', $min_amount);} //满多少使用 - if(isset($bonus_end_time)){$model = $model->where('bonus.end_time', '>=', date('Y-m-d H:i:s'));} //有效期 - - $bonus_list = $model->join('bonus', 'bonus.id', '=', 'user_bonus.bonus_id')->where($where) - ->select('bonus.*', 'user_bonus.user_id', 'user_bonus.used_time', 'user_bonus.get_time', 'user_bonus.status as user_bonus_status', 'user_bonus.id as user_bonus_id') - ->orderBy('bonus.money','desc')->get(); - - $res['list'] = $bonus_list; - - return $res; - } - - public static function getUserBonusByid(array $param) - { - extract($param); - - $where['user_bonus.user_id'] = $user_id; - $where['bonus.status'] = 0; - $where['user_bonus.id'] = $user_bonus_id; - - $model = new UserBonus; - if(isset($min_amount)){$model = $model->where('bonus.min_amount', '<=', $min_amount)->where('bonus.money', '<=', $min_amount);} //满多少使用 - $model = $model->where('bonus.end_time', '>=', date('Y-m-d H:i:s')); //有效期 - - $bonus = $model->join('bonus', 'bonus.id', '=', 'user_bonus.bonus_id')->where($where) - ->select('bonus.*', 'user_bonus.user_id', 'user_bonus.used_time', 'user_bonus.get_time', 'user_bonus.status as user_bonus_status', 'user_bonus.id as user_bonus_id') - ->first(); - - return $bonus; - } */ } \ No newline at end of file diff --git a/app/Http/Requests/CommentRequest.php b/app/Http/Requests/CommentRequest.php index ad06d26..756751f 100644 --- a/app/Http/Requests/CommentRequest.php +++ b/app/Http/Requests/CommentRequest.php @@ -8,7 +8,7 @@ class CommentRequest extends BaseRequest 'id' => 'required|integer', 'comment_type' => 'required|integer|between:0,1', 'id_value' => 'required|integer', - 'comment_rank' => 'required|integer|between:1,5', + 'comment_rank' => 'integer|between:1,5', 'add_time' => 'required|integer', 'ip_address' => 'max:20', 'status' => 'integer|between:0,1', @@ -26,7 +26,6 @@ class CommentRequest extends BaseRequest 'comment_type.between' => '用户评论的类型;0评论的是商品,1评论的是文章', 'id_value.required' => '文章或者商品的id必填', 'id_value.integer' => '文章或者商品的id必须为数字', - 'comment_rank.required' => '评价等级必填', 'comment_rank.integer' => '评价等级必须为数字', 'comment_rank.between' => '评价等级,1到5星', 'add_time.required' => '添加时间必填', @@ -43,8 +42,8 @@ class CommentRequest extends BaseRequest //场景验证规则 protected $scene = [ - 'add' => ['comment_type', 'id_value', 'comment_rank', 'add_time', 'ip_address', 'status', 'parent_id', 'user_id', 'is_anonymous'], - 'edit' => ['comment_type', 'id_value', 'comment_rank', 'add_time', 'ip_address', 'status', 'parent_id', 'user_id', 'is_anonymous'], + 'add' => ['comment_type', 'id_value', 'comment_rank', 'ip_address', 'status', 'parent_id', 'user_id', 'is_anonymous'], + 'edit' => ['comment_type', 'id_value', 'comment_rank', 'ip_address', 'status', 'parent_id', 'user_id', 'is_anonymous'], 'del' => ['id'], ]; diff --git a/app/Http/Requests/UserBonusRequest.php b/app/Http/Requests/UserBonusRequest.php new file mode 100644 index 0000000..3dc493a --- /dev/null +++ b/app/Http/Requests/UserBonusRequest.php @@ -0,0 +1,97 @@ + 'required|integer', + 'bonus_id' => 'required|integer', + 'user_id' => 'required|integer', + 'used_time' => 'integer', + 'get_time' => 'required|integer', + 'status' => 'integer|between:0,2', + ]; + + //总的自定义错误信息 + protected $messages = [ + 'id.required' => 'ID必填', + 'id.integer' => 'ID必须为数字', + 'bonus_id.required' => '红包ID必填', + 'bonus_id.integer' => '红包ID必须为数字', + 'user_id.required' => '用户ID必填', + 'user_id.integer' => '用户ID必须为数字', + 'used_time.integer' => '优惠券使用时间格式不正确', + 'get_time.required' => '优惠券获得时间必填', + 'get_time.integer' => '优惠券获得时间格式不正确', + 'status.integer' => '优惠券状态必须是数字', + 'status.between' => '优惠券状态,0未使用1已使用2已过期', + ]; + + //场景验证规则 + protected $scene = [ + 'add' => ['bonus_id', 'user_id'], + 'edit' => ['bonus_id', 'user_id'], + 'del' => ['id'], + ]; + + /** + * Determine if the user is authorized to make this request. + * + * @return bool + */ + public function authorize() + { + return true; //修改为true + } + + /** + * Get the validation rules that apply to the request. + * + * @return array + */ + public function rules() + { + return $this->rules; + } + + /** + * 获取被定义验证规则的错误消息. + * + * @return array + */ + public function messages() + { + return $this->messages; + } + + //获取场景验证规则 + public function getSceneRules($name, $fields = null) + { + $res = array(); + + if(!isset($this->scene[$name])) + { + return false; + } + + $scene = $this->scene[$name]; + if($fields != null && is_array($fields)) + { + $scene = $fields; + } + + foreach($scene as $k=>$v) + { + if(isset($this->rules[$v])){$res[$v] = $this->rules[$v];} + } + + return $res; + } + + //获取场景验证规则自定义错误信息 + public function getSceneRulesMessages() + { + return $this->messages; + } +} \ No newline at end of file