林一峰
7 years ago
21 changed files with 1008 additions and 134 deletions
-
26app/Common/Helper.php
-
2app/Http/Controllers/Admin/GoodsController.php
-
158app/Http/Controllers/Api/BonusController.php
-
56app/Http/Controllers/Api/CustomController.php
-
58app/Http/Controllers/Api/GoodsController.php
-
66app/Http/Controllers/Api/ImageController.php
-
6app/Http/Controllers/Api/IndexController.php
-
133app/Http/Controllers/Api/UserController.php
-
1app/Http/Controllers/Api/UserMoneyController.php
-
1app/Http/Controllers/Api/UserPointController.php
-
4app/Http/Controllers/Home/IndexController.php
-
83app/Http/Model/Bonus.php
-
172app/Http/Model/Cart.php
-
182app/Http/Model/Goods.php
-
71app/Http/Model/GoodsType.php
-
1app/Http/Model/Slide.php
-
85app/Http/Model/UserBonus.php
-
5app/Http/Model/UserMoney.php
-
4app/Http/Model/UserPoint.php
-
8resources/views/home/index/test.blade.php
-
20routes/web.php
@ -0,0 +1,158 @@ |
|||
<?php |
|||
namespace App\Http\Controllers\Api; |
|||
|
|||
use App\Http\Controllers\Api\CommonController; |
|||
use Illuminate\Http\Request; |
|||
use App\Common\ReturnData; |
|||
use App\Common\Token; |
|||
use App\Http\Model\Bonus; |
|||
use App\Http\Model\UserBonus; |
|||
|
|||
class BonusController extends CommonController |
|||
{ |
|||
public function __construct() |
|||
{ |
|||
parent::__construct(); |
|||
} |
|||
|
|||
//可用获取的优惠券列表
|
|||
public function bonusList(Request $request) |
|||
{ |
|||
//参数
|
|||
$data['limit'] = $request->input('limit', 10); |
|||
$data['offset'] = $request->input('offset', 0); |
|||
$data['user_id'] = Token::$uid; |
|||
|
|||
$res = Bonus::getList($data); |
|||
if(!$res) |
|||
{ |
|||
return ReturnData::create(ReturnData::SYSTEM_FAIL,null,$res); |
|||
} |
|||
|
|||
return ReturnData::create(ReturnData::SUCCESS,$res); |
|||
} |
|||
|
|||
//添加优惠券
|
|||
public function bonusAdd(Request $request) |
|||
{ |
|||
//参数
|
|||
$data['name'] = $request->input('name',null); |
|||
$data['money'] = $request->input('money',null); |
|||
$data['min_amount'] = $request->input('min_amount',null); |
|||
$data['start_time'] = $request->input('start_time',null); |
|||
$data['end_time'] = $request->input('end_time',null); |
|||
if($request->input('point', null) !== null){$data['point'] = $request->input('point');} |
|||
if($request->input('status', null) !== null){$data['status'] = $request->input('status');} |
|||
$data['add_time'] = time(); |
|||
|
|||
if($data['name']===null || $data['money']===null || $data['min_amount']===null || $data['start_time']===null || $data['end_time']===null) |
|||
{ |
|||
return ReturnData::create(ReturnData::PARAMS_ERROR); |
|||
} |
|||
|
|||
if($data['start_time'] >= $data['end_time']) |
|||
{ |
|||
return ReturnData::create(ReturnData::PARAMS_ERROR,null,'有效期错误'); |
|||
} |
|||
|
|||
//正则验证时间格式,未作
|
|||
|
|||
$res = Bonus::add($data); |
|||
if($res !== true) |
|||
{ |
|||
return ReturnData::create(ReturnData::SYSTEM_FAIL,null,$res); |
|||
} |
|||
|
|||
return ReturnData::create(ReturnData::SUCCESS,$res); |
|||
} |
|||
|
|||
//修改优惠券
|
|||
public function bonusUpdate(Request $request) |
|||
{ |
|||
//参数
|
|||
$id = $request->input('id',null); |
|||
$data['name'] = $request->input('name',null); |
|||
$data['money'] = $request->input('money',null); |
|||
$data['min_amount'] = $request->input('min_amount',null); |
|||
$data['start_time'] = $request->input('start_time',null); |
|||
$data['end_time'] = $request->input('end_time',null); |
|||
if($request->input('point', null) !== null){$data['point'] = $request->input('point');} |
|||
if($request->input('status', null) !== null){$data['status'] = $request->input('status');} |
|||
|
|||
if($id===null || $data['name']===null || $data['money']===null || $data['min_amount']===null || $data['start_time']===null || $data['end_time']===null) |
|||
{ |
|||
return ReturnData::create(ReturnData::PARAMS_ERROR); |
|||
} |
|||
|
|||
if($data['start_time'] >= $data['end_time']) |
|||
{ |
|||
return ReturnData::create(ReturnData::PARAMS_ERROR,null,'有效期错误'); |
|||
} |
|||
|
|||
//正则验证时间格式,未作
|
|||
|
|||
$res = Bonus::modify(array('id'=>$id),$data); |
|||
if($res !== true) |
|||
{ |
|||
return ReturnData::create(ReturnData::SYSTEM_FAIL,null,$res); |
|||
} |
|||
|
|||
return ReturnData::create(ReturnData::SUCCESS,$res); |
|||
} |
|||
|
|||
//删除优惠券
|
|||
public function bonusDelete(Request $request) |
|||
{ |
|||
//参数
|
|||
$id = $request->input('id',null); |
|||
if($id===null) |
|||
{ |
|||
return ReturnData::create(ReturnData::PARAMS_ERROR); |
|||
} |
|||
|
|||
$res = Bonus::remove($id); |
|||
if($res !== true) |
|||
{ |
|||
return ReturnData::create(ReturnData::SYSTEM_FAIL,null,$res); |
|||
} |
|||
|
|||
return ReturnData::create(ReturnData::SUCCESS,$res); |
|||
} |
|||
|
|||
//用户获取优惠券
|
|||
public function userGetBonus(Request $request) |
|||
{ |
|||
//参数
|
|||
$data['bonus_id'] = $request->input('bonus_id',null); |
|||
if($data['bonus_id']===null) |
|||
{ |
|||
return ReturnData::create(ReturnData::PARAMS_ERROR); |
|||
} |
|||
|
|||
$data['user_id'] = Token::$uid; |
|||
|
|||
$res = UserBonus::add($data); |
|||
if($res !== true) |
|||
{ |
|||
return ReturnData::create(ReturnData::SYSTEM_FAIL,null,$res); |
|||
} |
|||
|
|||
return ReturnData::create(ReturnData::SUCCESS,$res); |
|||
} |
|||
|
|||
//用户优惠券列表
|
|||
public function userBonusList(Request $request) |
|||
{ |
|||
//参数
|
|||
$data['used_time'] = 0; |
|||
$data['user_id'] = Token::$uid; |
|||
|
|||
$res = UserBonus::getList($data); |
|||
if(!$res) |
|||
{ |
|||
return ReturnData::create(ReturnData::SYSTEM_FAIL,null,$res); |
|||
} |
|||
|
|||
return ReturnData::create(ReturnData::SUCCESS,$res); |
|||
} |
|||
} |
@ -0,0 +1,56 @@ |
|||
<?php |
|||
namespace App\Http\Controllers\Api; |
|||
|
|||
use App\Http\Controllers\Api\CommonController; |
|||
use Illuminate\Http\Request; |
|||
use App\Common\ReturnData; |
|||
use App\Common\Token; |
|||
|
|||
class CustomController extends CommonController |
|||
{ |
|||
public function __construct() |
|||
{ |
|||
parent::__construct(); |
|||
} |
|||
|
|||
public function userMoneyList(Request $request) |
|||
{ |
|||
//参数
|
|||
$data['limit'] = $request->input('limit', 10); |
|||
$data['offset'] = $request->input('offset', 0); |
|||
if($request->input('type', null) !== null){$data['type'] = $request->input('type');} |
|||
|
|||
$res = UserMoney::getList($data); |
|||
if(!$res) |
|||
{ |
|||
return ReturnData::create(ReturnData::SYSTEM_FAIL); |
|||
} |
|||
|
|||
return ReturnData::create(ReturnData::SUCCESS,$res); |
|||
} |
|||
|
|||
//添加余额明细
|
|||
public function userMoneyAdd(Request $request) |
|||
{ |
|||
//参数
|
|||
$data['type'] = $request->input('type',null); |
|||
$data['money'] = $request->input('money',null); |
|||
$data['des'] = $request->input('des',null); |
|||
if($request->input('user_money', null) !== null){$data['user_money'] = $request->input('user_money');} |
|||
$data['add_time'] = time(); |
|||
$data['user_id'] = Token::$uid; |
|||
|
|||
if($data['type']===null || $data['money']===null || $data['des']===null) |
|||
{ |
|||
return ReturnData::create(ReturnData::PARAMS_ERROR); |
|||
} |
|||
|
|||
$res = UserMoney::add($data); |
|||
if(!$res) |
|||
{ |
|||
return ReturnData::create(ReturnData::SYSTEM_FAIL); |
|||
} |
|||
|
|||
return ReturnData::create(ReturnData::SUCCESS,$res); |
|||
} |
|||
} |
@ -0,0 +1,58 @@ |
|||
<?php |
|||
namespace App\Http\Controllers\Api; |
|||
|
|||
use App\Http\Controllers\Api\CommonController; |
|||
use Illuminate\Http\Request; |
|||
use App\Common\ReturnData; |
|||
use App\Common\Token; |
|||
use App\Http\Model\Goods; |
|||
|
|||
class GoodsController extends CommonController |
|||
{ |
|||
public function __construct() |
|||
{ |
|||
parent::__construct(); |
|||
} |
|||
|
|||
public function goodsList(Request $request) |
|||
{ |
|||
//参数
|
|||
$data['limit'] = $request->input('limit', 10); |
|||
$data['offset'] = $request->input('offset', 0); |
|||
if($request->input('type', null) !== null){$data['type'] = $request->input('type');} |
|||
$data['user_id'] = Token::$uid; |
|||
|
|||
$res = Goods::getList($data); |
|||
if($res === false) |
|||
{ |
|||
return ReturnData::create(ReturnData::SYSTEM_FAIL); |
|||
} |
|||
|
|||
return ReturnData::create(ReturnData::SUCCESS,$res); |
|||
} |
|||
|
|||
//添加余额明细
|
|||
public function userMoneyAdd(Request $request) |
|||
{ |
|||
//参数
|
|||
$data['type'] = $request->input('type',null); |
|||
$data['money'] = $request->input('money',null); |
|||
$data['des'] = $request->input('des',null); |
|||
if($request->input('user_money', null) !== null){$data['user_money'] = $request->input('user_money');} |
|||
$data['add_time'] = time(); |
|||
$data['user_id'] = Token::$uid; |
|||
|
|||
if($data['type']===null || $data['money']===null || $data['des']===null) |
|||
{ |
|||
return ReturnData::create(ReturnData::PARAMS_ERROR); |
|||
} |
|||
|
|||
$res = UserMoney::add($data); |
|||
if(!$res) |
|||
{ |
|||
return ReturnData::create(ReturnData::SYSTEM_FAIL); |
|||
} |
|||
|
|||
return ReturnData::create(ReturnData::SUCCESS,$res); |
|||
} |
|||
} |
@ -0,0 +1,66 @@ |
|||
<?php |
|||
namespace App\Http\Controllers\Api; |
|||
|
|||
use App\Http\Controllers\Api\CommonController; |
|||
use Illuminate\Http\Request; |
|||
use App\Common\ReturnData; |
|||
use App\Common\Helper; |
|||
|
|||
class ImageController extends CommonController |
|||
{ |
|||
public function __construct() |
|||
{ |
|||
parent::__construct(); |
|||
} |
|||
|
|||
//文件上传,成功返回路径,不含域名
|
|||
public function imageUpload(Request $request) |
|||
{ |
|||
$file = $_FILES['file'];//得到传输的数据
|
|||
|
|||
$type = strtolower(substr(strrchr($file["name"], '.'), 1)); //文件后缀
|
|||
|
|||
$image_path = '/uploads/'.date('Y/m',time()).'/'.date('Ymdhis',time()).rand(1000,9999).'.'.$type; |
|||
$uploads_path = '/uploads/'.date('Y/m',time()); //存储路径
|
|||
|
|||
$allow_type = array('jpg','jpeg','gif','png','doc','docx','txt'); //定义允许上传的类型
|
|||
|
|||
//判断文件类型是否被允许上传
|
|||
if(!in_array($type, $allow_type)) |
|||
{ |
|||
//如果不被允许,则直接停止程序运行
|
|||
return ReturnData::create(ReturnData::SYSTEM_FAIL,null,'文件格式不正确'); |
|||
} |
|||
|
|||
//判断是否是通过HTTP POST上传的
|
|||
if(!is_uploaded_file($file['tmp_name'])) |
|||
{ |
|||
//如果不是通过HTTP POST上传的
|
|||
return ReturnData::create(ReturnData::SYSTEM_FAIL); |
|||
} |
|||
|
|||
//文件小于1M
|
|||
if ($file["size"] < 102400) |
|||
{ |
|||
if ($file["error"] > 0) |
|||
{ |
|||
return ReturnData::create(ReturnData::SYSTEM_FAIL,null,$file["error"]); |
|||
} |
|||
else |
|||
{ |
|||
if(!file_exists($uploads_path)) |
|||
{ |
|||
Helper::createDir($uploads_path); //创建文件夹;
|
|||
} |
|||
|
|||
move_uploaded_file($file["tmp_name"], base_path('public').$image_path); |
|||
} |
|||
} |
|||
else |
|||
{ |
|||
return ReturnData::create(ReturnData::SYSTEM_FAIL,null,'文件不得超过1M'); |
|||
} |
|||
|
|||
return ReturnData::create(ReturnData::SUCCESS,$image_path); |
|||
} |
|||
} |
@ -0,0 +1,83 @@ |
|||
<?php |
|||
namespace App\Http\Model; |
|||
|
|||
class Bonus extends BaseModel |
|||
{ |
|||
//优惠券
|
|||
|
|||
protected $table = 'bonus'; |
|||
public $timestamps = false; |
|||
|
|||
/** |
|||
* 不能被批量赋值的属性 |
|||
* |
|||
* @var array |
|||
*/ |
|||
protected $guarded = []; |
|||
|
|||
const STATUS = 0; // 优惠券可以
|
|||
|
|||
//获取列表
|
|||
public static function getList(array $param) |
|||
{ |
|||
extract($param); //参数:limit,offset
|
|||
|
|||
$limit = isset($limit) ? $limit : 10; |
|||
$offset = isset($offset) ? $offset : 0; |
|||
$where['status'] = self::STATUS; |
|||
|
|||
$model = new Bonus; |
|||
|
|||
$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()->toArray(); |
|||
} |
|||
else |
|||
{ |
|||
return false; |
|||
} |
|||
|
|||
return $res; |
|||
} |
|||
|
|||
public static function getOne($id) |
|||
{ |
|||
return self::where('id', $id)->first()->toArray(); |
|||
} |
|||
|
|||
public static function add(array $data) |
|||
{ |
|||
if ($id = self::insertGetId($data)) |
|||
{ |
|||
return true; |
|||
} |
|||
|
|||
return false; |
|||
} |
|||
|
|||
public static function modify($where, array $data) |
|||
{ |
|||
if (self::where($where)->update($data)!==false) |
|||
{ |
|||
return true; |
|||
} |
|||
|
|||
return false; |
|||
} |
|||
|
|||
//删除一条记录
|
|||
public static function remove($id) |
|||
{ |
|||
if (!self::whereIn('id', explode(',', $id))->delete()) |
|||
{ |
|||
return false; |
|||
} |
|||
|
|||
return true; |
|||
} |
|||
} |
@ -0,0 +1,172 @@ |
|||
<?php |
|||
namespace App\Http\Model; |
|||
|
|||
class Cart extends BaseModel |
|||
{ |
|||
//产品模型
|
|||
|
|||
/** |
|||
* 关联到模型的数据表 |
|||
* |
|||
* @var string |
|||
*/ |
|||
protected $table = 'cart'; |
|||
|
|||
/** |
|||
* 表明模型是否应该被打上时间戳 |
|||
* 默认情况下,Eloquent 期望 created_at 和updated_at 已经存在于数据表中,如果你不想要这些 Laravel 自动管理的数据列,在模型类中设置 $timestamps 属性为 false |
|||
* |
|||
* @var bool |
|||
*/ |
|||
public $timestamps = false; |
|||
|
|||
//protected $guarded = []; //$guarded包含你不想被赋值的字段数组。
|
|||
//protected $fillable = ['name']; //定义哪些字段是可以进行赋值的,与$guarded相反
|
|||
|
|||
/** |
|||
* The connection name for the model. |
|||
* 默认情况下,所有的 Eloquent 模型使用应用配置中的默认数据库连接,如果你想要为模型指定不同的连接,可以通过 $connection 属性来设置 |
|||
* @var string |
|||
*/ |
|||
//protected $connection = 'connection-name';
|
|||
|
|||
const STATUS = 0; //商品是否删除,0未删除
|
|||
|
|||
//获取列表
|
|||
public static function getList($uid) |
|||
{ |
|||
$goods = self::join('goods', 'goods.id', '=', 'cart.goods_id') |
|||
->where('cart.user_id', $uid) |
|||
->where('goods.status', 0) |
|||
->select('cart.*') |
|||
->get(); |
|||
|
|||
if($goods) |
|||
{ |
|||
foreach ($goods as $key => $value) |
|||
{ |
|||
//订货数量大于0
|
|||
if ($value->goods_number > 0) |
|||
{ |
|||
$goods->goods_price = $goods_price = Goods::get_final_price($value->goods_id); |
|||
|
|||
//更新购物车中的商品数量
|
|||
self::where('id', $value->id)->update(array('goods_price' => $goods_price)); |
|||
|
|||
} |
|||
} |
|||
} |
|||
|
|||
return $goods->toArray(); |
|||
} |
|||
|
|||
public static function getOne($id) |
|||
{ |
|||
if(isset($status)){$where['status'] = $status;}else{$where['status'] = self::STATUS;} |
|||
$where['id'] = $id; |
|||
|
|||
$goods = self::where($where)->first()->toArray(); |
|||
|
|||
$goods['price'] = get_final_price($id); |
|||
|
|||
return $goods; |
|||
} |
|||
|
|||
public static function add(array $data) |
|||
{ |
|||
if ($id = self::insertGetId($data)) |
|||
{ |
|||
return $id; |
|||
} |
|||
|
|||
return false; |
|||
} |
|||
|
|||
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; |
|||
} |
|||
|
|||
/** |
|||
* 取得商品最终使用价格 |
|||
* |
|||
* @param string $goods_id 商品编号 |
|||
* @param string $goods_num 购买数量 |
|||
* |
|||
* @return 商品最终购买价格 |
|||
*/ |
|||
public static function get_final_price($goods_id) |
|||
{ |
|||
$final_price = '0'; //商品最终购买价格
|
|||
$promote_price = '0'; //商品促销价格
|
|||
$user_price = '0'; //商品会员价格,预留
|
|||
|
|||
//取得商品促销价格列表
|
|||
$goods = Goods::where('id',$goods_id)->where('status',0)->first(['promote_price','promote_start_date','promote_end_date','price']); |
|||
$final_price = $goods->price; |
|||
|
|||
// 计算商品的促销价格
|
|||
if ($goods->promote_price > 0) |
|||
{ |
|||
$promote_price = self::bargain_price($goods->promote_price, $goods->promote_start_date, $goods->promote_end_date); |
|||
} |
|||
else |
|||
{ |
|||
$promote_price = 0; |
|||
} |
|||
|
|||
if ($promote_price != 0) |
|||
{ |
|||
$final_price = $promote_price; |
|||
} |
|||
|
|||
//返回商品最终购买价格
|
|||
return $final_price; |
|||
} |
|||
|
|||
/** |
|||
* 判断某个商品是否正在特价促销期 |
|||
* |
|||
* @access public |
|||
* @param float $price 促销价格 |
|||
* @param string $start 促销开始日期 |
|||
* @param string $end 促销结束日期 |
|||
* @return float 如果还在促销期则返回促销价,否则返回0 |
|||
*/ |
|||
public static function bargain_price($price, $start, $end) |
|||
{ |
|||
if ($price == 0) |
|||
{ |
|||
return 0; |
|||
} |
|||
else |
|||
{ |
|||
$time = time(); |
|||
|
|||
if ($time >= $start && $time <= $end) |
|||
{ |
|||
return $price; |
|||
} |
|||
else |
|||
{ |
|||
return 0; |
|||
} |
|||
} |
|||
} |
|||
} |
@ -0,0 +1,85 @@ |
|||
<?php |
|||
namespace App\Http\Model; |
|||
|
|||
class UserBonus extends BaseModel |
|||
{ |
|||
//用户优惠券
|
|||
|
|||
protected $table = 'user_bonus'; |
|||
public $timestamps = false; |
|||
|
|||
/** |
|||
* 不能被批量赋值的属性 |
|||
* |
|||
* @var array |
|||
*/ |
|||
protected $guarded = []; |
|||
|
|||
//获取列表
|
|||
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($used_time)){$where['used_time'] = $used_time;} |
|||
|
|||
$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()->toArray(); |
|||
} |
|||
else |
|||
{ |
|||
return false; |
|||
} |
|||
|
|||
return $res; |
|||
} |
|||
|
|||
public static function getOne($id) |
|||
{ |
|||
return self::where('id', $id)->first()->toArray(); |
|||
} |
|||
|
|||
public static function add(array $data) |
|||
{ |
|||
if(self::where($data)->first()){return '亲,您已获取!';} |
|||
|
|||
if ($id = self::insertGetId($data)) |
|||
{ |
|||
return true; |
|||
} |
|||
|
|||
return false; |
|||
} |
|||
|
|||
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; |
|||
} |
|||
} |
@ -0,0 +1,8 @@ |
|||
<!DOCTYPE html><html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8" /><meta http-equiv="Cache-Control" content="no-siteapp" /><meta http-equiv="Cache-Control" content="no-transform" /><meta name="mobile-agent" content="format=xhtml;url=http://m.bnbni.com/cat{dede:type}[field:id/]{/dede:type}/id{dede:field name='aid' /}"> |
|||
<title>笔记本电脑相关知识</title></head><body><script>site();</script> |
|||
<form action="/dataapi/image_upload" name="form" method="post" enctype="multipart/form-data">{{ csrf_field() }} |
|||
<input type="file" name="file" /> |
|||
<input type="submit" name="submit" value="上传" /> |
|||
<input type="text" name="token" value="72d623d26a1a6d61186a97f9ccf752f7" /> |
|||
</form> |
|||
</body></html> |
Write
Preview
Loading…
Cancel
Save
Reference in new issue