|
@@ -6,6 +6,7 @@ use App\Model\AdSize;
|
|
use App\Model\AdPlace;
|
|
use App\Model\AdPlace;
|
|
use App\Model\Order;
|
|
use App\Model\Order;
|
|
use App\Model\OrderAd;
|
|
use App\Model\OrderAd;
|
|
|
|
+use App\Model\ShoppingCart;
|
|
use App\Model\Website;
|
|
use App\Model\Website;
|
|
use App\Tools\Result;
|
|
use App\Tools\Result;
|
|
use Carbon\Carbon;
|
|
use Carbon\Carbon;
|
|
@@ -56,12 +57,12 @@ class OrderService implements OrderServiceInterface
|
|
}
|
|
}
|
|
$rep = AdPlace::whereIn('ad_place.id', $place_id)
|
|
$rep = AdPlace::whereIn('ad_place.id', $place_id)
|
|
->leftJoin('website', 'ad_place.website_id', 'website.id')
|
|
->leftJoin('website', 'ad_place.website_id', 'website.id')
|
|
- ->leftJoin('ad_size','ad_place.ad_size_id','ad_size.id')
|
|
|
|
- ->select('ad_place.*', 'website.website_name', 'website.id')
|
|
|
|
|
|
+ ->leftJoin('ad_size', 'ad_place.ad_size_id', 'ad_size.id')
|
|
|
|
+ ->select('ad_place.*', 'website.website_name', 'website.id', 'ad_size.*')
|
|
->selectSub('website.id', 'webid')
|
|
->selectSub('website.id', 'webid')
|
|
->selectSub('ad_place.id', 'pid')
|
|
->selectSub('ad_place.id', 'pid')
|
|
- ->selectSub('ad_size.width','size_width')
|
|
|
|
- ->selectSub('ad_size.height','size_height')
|
|
|
|
|
|
+ ->selectSub('ad_size.width', 'size_width')
|
|
|
|
+ ->selectSub('ad_size.height', 'size_height')
|
|
->orderBy("website.id", "asc")
|
|
->orderBy("website.id", "asc")
|
|
->limit($data['pageSize'])
|
|
->limit($data['pageSize'])
|
|
->offset(($data['page'] - 1) * $data['pageSize'])
|
|
->offset(($data['page'] - 1) * $data['pageSize'])
|
|
@@ -70,12 +71,12 @@ class OrderService implements OrderServiceInterface
|
|
} else {
|
|
} else {
|
|
$rep = AdPlace::where($where)
|
|
$rep = AdPlace::where($where)
|
|
->leftJoin('website', 'ad_place.website_id', 'website.id')
|
|
->leftJoin('website', 'ad_place.website_id', 'website.id')
|
|
- ->leftJoin('ad_size','ad_place.ad_size_id','ad_size.id')
|
|
|
|
- ->select('ad_place.*', 'website.website_name', 'website.id')
|
|
|
|
|
|
+ ->leftJoin('ad_size', 'ad_place.ad_size_id', 'ad_size.id')
|
|
|
|
+ ->select('ad_place.*', 'website.website_name', 'website.id', 'ad_size.*')
|
|
->selectSub('website.id', 'webid')
|
|
->selectSub('website.id', 'webid')
|
|
->selectSub('ad_place.id', 'pid')
|
|
->selectSub('ad_place.id', 'pid')
|
|
- ->selectSub('ad_size.width','size_width')
|
|
|
|
- ->selectSub('ad_size.height','size_height')
|
|
|
|
|
|
+ ->selectSub('ad_size.width', 'size_width')
|
|
|
|
+ ->selectSub('ad_size.height', 'size_height')
|
|
->orderBy("website.id", "asc")
|
|
->orderBy("website.id", "asc")
|
|
->limit($data['pageSize'])
|
|
->limit($data['pageSize'])
|
|
->offset(($data['page'] - 1) * $data['pageSize'])
|
|
->offset(($data['page'] - 1) * $data['pageSize'])
|
|
@@ -87,24 +88,25 @@ class OrderService implements OrderServiceInterface
|
|
$time = ($endTime - $startTime) / (24 * 60 * 60);
|
|
$time = ($endTime - $startTime) / (24 * 60 * 60);
|
|
$roundedValue = round($time, 2);
|
|
$roundedValue = round($time, 2);
|
|
$days = number_format($roundedValue, 2, '.', '');
|
|
$days = number_format($roundedValue, 2, '.', '');
|
|
- $data = [
|
|
|
|
|
|
+ $result = [
|
|
'rows' => $rep->toArray(),
|
|
'rows' => $rep->toArray(),
|
|
'count' => $count,
|
|
'count' => $count,
|
|
'days' => $days,
|
|
'days' => $days,
|
|
];
|
|
];
|
|
|
|
|
|
- if (empty($data['rows'])) {
|
|
|
|
|
|
+ if (empty($result['rows'])) {
|
|
return Result::error("暂无符合您条件的广告位!");
|
|
return Result::error("暂无符合您条件的广告位!");
|
|
|
|
|
|
}
|
|
}
|
|
} else {
|
|
} else {
|
|
- $data = AdSize::get();
|
|
|
|
- if (empty($data)) {
|
|
|
|
|
|
+ $result = AdSize::get();
|
|
|
|
+ if (empty($result)) {
|
|
return Result::error('暂无广告尺寸!');
|
|
return Result::error('暂无广告尺寸!');
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
- return Result::success($data);
|
|
|
|
|
|
+ return Result::success($result);
|
|
|
|
+
|
|
}
|
|
}
|
|
/**
|
|
/**
|
|
* 添加订单
|
|
* 添加订单
|
|
@@ -186,7 +188,7 @@ class OrderService implements OrderServiceInterface
|
|
'admin_user.user_name as admin_user_name',
|
|
'admin_user.user_name as admin_user_name',
|
|
'user.user_name as user_name'
|
|
'user.user_name as user_name'
|
|
)
|
|
)
|
|
- ->orderBy('order.id');
|
|
|
|
|
|
+ ->orderBy('order.id', 'desc');
|
|
|
|
|
|
// 执行分页查询
|
|
// 执行分页查询
|
|
$result = $query->paginate($perPage, ['*'], 'page', $page);
|
|
$result = $query->paginate($perPage, ['*'], 'page', $page);
|
|
@@ -441,7 +443,7 @@ class OrderService implements OrderServiceInterface
|
|
}
|
|
}
|
|
//去掉时间冲突并且符合图片尺寸的广告位
|
|
//去掉时间冲突并且符合图片尺寸的广告位
|
|
$placeids = AdPlace::whereNotIn('id', $pid)->where($where)->select('id', 'website_id')->get()->all();
|
|
$placeids = AdPlace::whereNotIn('id', $pid)->where($where)->select('id', 'website_id')->get()->all();
|
|
- if(empty($placeids)){
|
|
|
|
|
|
+ if (empty($placeids)) {
|
|
return Result::error('暂无数据!');
|
|
return Result::error('暂无数据!');
|
|
}
|
|
}
|
|
|
|
|
|
@@ -461,12 +463,12 @@ class OrderService implements OrderServiceInterface
|
|
->whereIn('ad_place.id', $place_id)
|
|
->whereIn('ad_place.id', $place_id)
|
|
->where('ad_place.website_id', $data['website_id'])
|
|
->where('ad_place.website_id', $data['website_id'])
|
|
->leftJoin('website', 'ad_place.website_id', 'website.id')
|
|
->leftJoin('website', 'ad_place.website_id', 'website.id')
|
|
- ->leftJoin('ad_size','ad_place.ad_size_id','ad_size.id')
|
|
|
|
- ->select('ad_place.*', 'website.website_name', 'website.id')
|
|
|
|
|
|
+ ->leftJoin('ad_size', 'ad_place.ad_size_id', 'ad_size.id')
|
|
|
|
+ ->select('ad_place.*', 'website.website_name', 'website.id', 'ad_size.*')
|
|
->selectSub('website.id', 'webid')
|
|
->selectSub('website.id', 'webid')
|
|
->selectSub('ad_place.id', 'pid')
|
|
->selectSub('ad_place.id', 'pid')
|
|
- ->selectSub('ad_size.width','size_width')
|
|
|
|
- ->selectSub('ad_size.height','size_height')
|
|
|
|
|
|
+ ->selectSub('ad_size.width', 'size_width')
|
|
|
|
+ ->selectSub('ad_size.height', 'size_height')
|
|
->orderBy("website.id", "asc")
|
|
->orderBy("website.id", "asc")
|
|
->limit($data['pageSize'])
|
|
->limit($data['pageSize'])
|
|
->offset(($data['page'] - 1) * $data['pageSize'])
|
|
->offset(($data['page'] - 1) * $data['pageSize'])
|
|
@@ -481,12 +483,12 @@ class OrderService implements OrderServiceInterface
|
|
$rep = AdPlace::where($where)
|
|
$rep = AdPlace::where($where)
|
|
->where('ad_place.website_id', $data['website_id'])
|
|
->where('ad_place.website_id', $data['website_id'])
|
|
->leftJoin('website', 'ad_place.website_id', 'website.id')
|
|
->leftJoin('website', 'ad_place.website_id', 'website.id')
|
|
- ->leftJoin('ad_size','ad_place.ad_size_id','ad_size.id')
|
|
|
|
- ->select('ad_place.*', 'website.website_name', 'website.id')
|
|
|
|
|
|
+ ->leftJoin('ad_size', 'ad_place.ad_size_id', 'ad_size.id')
|
|
|
|
+ ->select('ad_place.*', 'website.website_name', 'website.id', 'ad_size.*')
|
|
->selectSub('website.id', 'webid')
|
|
->selectSub('website.id', 'webid')
|
|
->selectSub('ad_place.id', 'pid')
|
|
->selectSub('ad_place.id', 'pid')
|
|
- ->selectSub('ad_size.width','size_width')
|
|
|
|
- ->selectSub('ad_size.height','size_height')
|
|
|
|
|
|
+ ->selectSub('ad_size.width', 'size_width')
|
|
|
|
+ ->selectSub('ad_size.height', 'size_height')
|
|
->orderBy("website.id", "asc")
|
|
->orderBy("website.id", "asc")
|
|
->limit($data['pageSize'])
|
|
->limit($data['pageSize'])
|
|
->offset(($data['page'] - 1) * $data['pageSize'])
|
|
->offset(($data['page'] - 1) * $data['pageSize'])
|
|
@@ -514,7 +516,7 @@ class OrderService implements OrderServiceInterface
|
|
$result = [
|
|
$result = [
|
|
'rows' => $rep->toArray(),
|
|
'rows' => $rep->toArray(),
|
|
'count' => $count,
|
|
'count' => $count,
|
|
- 'days' => $days
|
|
|
|
|
|
+ 'days' => $days,
|
|
];
|
|
];
|
|
return Result::success($result);
|
|
return Result::success($result);
|
|
}
|
|
}
|
|
@@ -657,7 +659,6 @@ class OrderService implements OrderServiceInterface
|
|
if (empty($rep)) {
|
|
if (empty($rep)) {
|
|
return Result::error("您暂时还没有下单");
|
|
return Result::error("您暂时还没有下单");
|
|
} else {
|
|
} else {
|
|
-
|
|
|
|
$data = [
|
|
$data = [
|
|
'rows' => $rep,
|
|
'rows' => $rep,
|
|
'count' => $count,
|
|
'count' => $count,
|
|
@@ -754,5 +755,120 @@ class OrderService implements OrderServiceInterface
|
|
}
|
|
}
|
|
return Result::success($order);
|
|
return Result::success($order);
|
|
}
|
|
}
|
|
|
|
+ /**
|
|
|
|
+ * 创建购物车
|
|
|
|
+ * @param
|
|
|
|
+ * @return void
|
|
|
|
+ */
|
|
|
|
+ public function addShoppingCart(array $data): array
|
|
|
|
+ {
|
|
|
|
+ $shop = ShoppingCart::where('user_id', $data['user_id'])->get()->all();
|
|
|
|
+ $time = time();
|
|
|
|
+ $timestamp = date('YmdHis', $time);
|
|
|
|
+ $randomNumber = mt_rand(100, 999);
|
|
|
|
+ $shopping_id = $randomNumber . $timestamp; // 时间戳与随机数拼接
|
|
|
|
+ Db::beginTransaction();
|
|
|
|
+ try {
|
|
|
|
+ if (!empty($shop)) {
|
|
|
|
+ $del_shop = ShoppingCart::where('user_id', $data['user_id'])->delete();
|
|
|
|
+ if (empty($del_shop)) {
|
|
|
|
+ return Result::error("删除失败");
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ $shop = [
|
|
|
|
+ 'user_id' => $data['user_id'],
|
|
|
|
+ 'shopping_id' => $shopping_id,
|
|
|
|
+ 'created_at' => date('Y-m-d H:i:s', time()),
|
|
|
|
+ 'updated_at' => date('Y-m-d H:i:s', time())
|
|
|
|
+ ];
|
|
|
|
+ $result = ShoppingCart::insert($shop);
|
|
|
|
+ Db::commit();
|
|
|
|
+ } catch (\Exception $e) {
|
|
|
|
+ Db::rollBack();
|
|
|
|
+ return Result::error($e->getMessage());
|
|
|
|
+ }
|
|
|
|
+ if(empty($result)){
|
|
|
|
+ return Result::error("创建失败");
|
|
|
|
+ }else{
|
|
|
|
+ return Result::success($shopping_id);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ /**
|
|
|
|
+ * 获取购物车中的广告位
|
|
|
|
+ * @param
|
|
|
|
+ * @return void
|
|
|
|
+ */
|
|
|
|
+ public function getShoppingCartAD(array $data): array
|
|
|
|
+ {
|
|
|
|
+ $result = ShoppingCart::where('shopping_id', $data['shopping_id'])
|
|
|
|
+ ->where('user_id',$data['user_id'])
|
|
|
|
+ ->orderBy('pid')
|
|
|
|
+ ->get()
|
|
|
|
+ ->toArray();
|
|
|
|
+ if (empty($result)) {
|
|
|
|
+ return Result::error("购物车id错误");
|
|
|
|
+ }else{
|
|
|
|
+ return Result::success($result);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ /**
|
|
|
|
+ * 添加购物车中的广告位
|
|
|
|
+ * @param
|
|
|
|
+ * @return void
|
|
|
|
+ */
|
|
|
|
+ public function addShoppingCartAD(array $data): array
|
|
|
|
+ {
|
|
|
|
+ $shop = ShoppingCart::where('shopping_id', $data['shopping_id'])->where('user_id',$data['user_id'])->first();
|
|
|
|
+ if (empty($shop)) {
|
|
|
|
+ return Result::error("购物车id错误");
|
|
|
|
+ }else{
|
|
|
|
+ $ad = AdPlace::where('ad_place.id', $data['pid'])
|
|
|
|
+ ->leftJoin('website','ad_place.website_id','website.id')
|
|
|
|
+ ->select('ad_place.id as pid','website.id as website_id')
|
|
|
|
+ ->first();
|
|
|
|
+ if(empty($ad)) {
|
|
|
|
+ return Result::error("广告位id错误");
|
|
|
|
+ }
|
|
|
|
+ if(empty($shop['pid']) && empty($shop['website_id'])){
|
|
|
|
+ $result = ShoppingCart::where('shopping_id', $shop['shopping_id'])->where('user_id',$data['user_id'])->update(['pid' => $ad['pid'],'website_id' => $ad['website_id']]);
|
|
|
|
+ }else{
|
|
|
|
+ if($data['pid'] == $shop['pid']){
|
|
|
|
+ return Result::error("购物车中已存在该广告位");
|
|
|
|
+ }
|
|
|
|
+ $shop_ad = [
|
|
|
|
+ 'pid' => $ad['pid'],
|
|
|
|
+ 'website_id' => $ad['website_id'],
|
|
|
|
+ 'shopping_id' => $shop['shopping_id'],
|
|
|
|
+ 'user_id' => $data['user_id']
|
|
|
|
+ ];
|
|
|
|
+ $result = ShoppingCart::insertGetId($shop_ad);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ if(empty($result)){
|
|
|
|
+ return Result::error("添加失败");
|
|
|
|
+ }else{
|
|
|
|
+ return Result::success($result);
|
|
|
|
+ }
|
|
|
|
|
|
|
|
+ }
|
|
|
|
+ /**
|
|
|
|
+ * 删除购物车中的广告位
|
|
|
|
+ * @param
|
|
|
|
+ * @return void
|
|
|
|
+ */
|
|
|
|
+ public function delShoppingCartAD(array $data): array
|
|
|
|
+ {
|
|
|
|
+ $shop = ShoppingCart::where('shopping_id', $data['shopping_id'])->where('user_id',$data['user_id'])->where('pid',$data['pid'])->first();
|
|
|
|
+ if (empty($shop)) {
|
|
|
|
+ return Result::error("不存在此条记录!(参数错误)");
|
|
|
|
+ }else{
|
|
|
|
+ $result = ShoppingCart::where('shopping_id', $shop['shopping_id'])->where('user_id',$data['user_id'])->where('pid',$data['pid'])->delete();
|
|
|
|
+ }
|
|
|
|
+ if(empty($result)){
|
|
|
|
+ return Result::error("删除失败");
|
|
|
|
+ }else{
|
|
|
|
+ return Result::success($result);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
}
|
|
}
|