Toggle navigation
Toggle navigation
This project
Loading...
Sign in
OnePoem
/
OnePoem-Server
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Snippets
Network
Create a new issue
Builds
Commits
Issue Boards
Authored by
李帅
2022-03-11 19:29:56 +0800
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
76d661b479147e65af9eb81c3904b06028bdf7d7
76d661b4
1 parent
e06946c0
1.会员模板页面完成。
2.订单还在构思。
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
103 additions
and
11 deletions
app/Http/Controllers/V1/OrderController.php
app/Http/Controllers/V1/TemplateController.php
app/Jobs/CancelUnpaidOrder.php
app/Models/Order.php
database/migrations/2022_01_12_072821_create_order_table.php
routes/api.php
app/Http/Controllers/V1/OrderController.php
View file @
76d661b
...
...
@@ -3,6 +3,7 @@
namespace
App\Http\Controllers\V1
;
use
App\Http\Controllers\Controller
;
use
App\Jobs\CancelUnpaidOrder
;
use
App\Models\MembershipGood
;
use
App\Models\Order
;
use
App\Models\OrderGood
;
...
...
@@ -10,6 +11,7 @@ use Carbon\Carbon;
use
Illuminate\Http\Request
;
use
Illuminate\Support\Facades\Auth
;
use
Illuminate\Support\Facades\DB
;
use
Illuminate\Support\Facades\Log
;
use
Illuminate\Support\Facades\Validator
;
use
Jiannei\Response\Laravel\Support\Facades\Response
;
...
...
@@ -17,7 +19,12 @@ class OrderController extends Controller
{
public
function
index
(
Request
$request
)
{
// $user_id = Auth::user()->getAuthIdentifier(); todo
$user_id
=
1
;
$orders
=
Order
::
query
()
->
where
(
'user_id'
,
$user_id
)
->
simplePaginate
(
10
);
return
Response
::
success
(
$orders
);
}
public
function
store
(
Request
$request
)
...
...
@@ -30,16 +37,26 @@ class OrderController extends Controller
if
(
$validator
->
fails
())
return
Response
::
fail
(
'缺少参数'
,
500
,
$validator
->
errors
());
$user_id
=
Auth
::
user
()
->
getAuthIdentifier
();
// $user_id = Auth::user()->getAuthIdentifier(); todo
$user_id
=
1
;
$order
=
$this
->
build
(
$user_id
,
$data
[
'goods_id'
],
$this
->
getClientTerminal
());
return
Response
::
success
(
$order
);
if
(
!
$order
)
return
Response
::
fail
(
''
,
500
,
$order
);
return
Response
::
success
([
'order_sn'
=>
$order
]);
}
public
function
show
(
$id
)
{
// $user_id = Auth::user()->getAuthIdentifier(); todo
$user_id
=
1
;
$order
=
Order
::
query
()
->
where
(
'order_sn'
,
$id
)
->
where
(
'user_id'
,
$user_id
)
->
first
();
if
(
!
$order
)
return
Response
::
fail
(
'order_sn fail'
,
500
);
return
Response
::
success
(
$order
);
}
/**
...
...
@@ -71,6 +88,8 @@ class OrderController extends Controller
$order
->
goods_amount
=
$membership_good
->
price
;
$order
->
status
=
Order
::
UNPAID
;
$order
->
source
=
$source
;
$order
->
thumbnail
=
$membership
->
getSingleImage
();
$order
->
cancel_time
=
Carbon
::
now
()
->
addSeconds
(
Order
::
TIMEOUT
);
$order
->
save
();
...
...
@@ -87,16 +106,16 @@ class OrderController extends Controller
$order
->
goods
=
$order_good
;
CancelUnpaidOrder
::
dispatch
(
$order
)
->
delay
(
Order
::
TIMEOUT
);
// todo 超时处理,建议给Job处理
// if ($pay_amount == 0) { //0元购就不执行回调了
// $this->freePay($order);
// }
return
$order
;
if
(
$pay_amount
==
0
)
{
//0元购就不执行回调了
$this
->
freePay
(
$order
);
}
return
$order_sn
;
});
}
catch
(
\Exception
$exception
){
return
Response
::
fail
(
''
,
500
,
$exception
->
getMessage
());
Log
::
error
(
$exception
->
getMessage
());
return
$exception
->
getMessage
();
}
}
...
...
app/Http/Controllers/V1/TemplateController.php
0 → 100644
View file @
76d661b
<?php
namespace
App\Http\Controllers\V1
;
use
App\Http\Controllers\Controller
;
use
App\Models\VideoTemp
;
use
Illuminate\Http\Request
;
use
Jiannei\Response\Laravel\Support\Facades\Response
;
class
TemplateController
extends
Controller
{
//
public
function
index
()
{
$temps
=
VideoTemp
::
query
()
->
where
(
'state'
,
1
)
->
get
();
return
Response
::
success
(
$temps
);
}
}
app/Jobs/CancelUnpaidOrder.php
0 → 100644
View file @
76d661b
<?php
namespace
App\Jobs
;
use
App\Models\Order
;
use
Illuminate\Bus\Queueable
;
use
Illuminate\Contracts\Queue\ShouldBeUnique
;
use
Illuminate\Contracts\Queue\ShouldQueue
;
use
Illuminate\Foundation\Bus\Dispatchable
;
use
Illuminate\Queue\InteractsWithQueue
;
use
Illuminate\Queue\SerializesModels
;
class
CancelUnpaidOrder
implements
ShouldQueue
{
use
Dispatchable
,
InteractsWithQueue
,
Queueable
,
SerializesModels
;
public
$order
;
/**
* Create a new job instance.
* @param $order
* @return void
*/
public
function
__construct
(
Order
$order
)
{
$this
->
order
=
$order
;
}
/**
* Execute the job.
*
* @return void
*/
public
function
handle
()
{
if
(
$this
->
order
->
status
>=
Order
::
USER_CANCEL
){
return
;
}
$this
->
order
->
timeoutCanceled
();
}
}
app/Models/Order.php
View file @
76d661b
...
...
@@ -21,7 +21,7 @@ class Order extends Model
const
TIMEOUT_CANCEL
=
102
;
/** 商户取消*/
const
MERCHANT_CANCEL
=
10
2
;
const
MERCHANT_CANCEL
=
10
3
;
/** 已支付*/
// 回调
const
PAID
=
201
;
...
...
@@ -29,10 +29,13 @@ class Order extends Model
/** 已完成*/
// 回调并且业务逻辑(加天数、加销量)执行完毕
const
DONE
=
204
;
/** 订单超时时间 30分钟 */
const
TIMEOUT
=
1800
;
public
function
order_goods
()
{
return
$this
->
hasOne
(
'App\Models\OrderGood'
,
'order_sn'
);
return
$this
->
hasOne
(
'App\Models\OrderGood'
,
'order_sn'
,
'order_sn'
);
}
/**
...
...
@@ -45,4 +48,9 @@ class Order extends Model
$Sn
=
$prefix
.
strtoupper
(
dechex
(
date
(
'm'
)))
.
date
(
'd'
)
.
substr
(
time
(),
-
5
)
.
substr
(
microtime
(),
2
,
5
)
.
sprintf
(
'%02d'
,
rand
(
0
,
99
));
return
$Sn
;
}
public
function
timeoutCanceled
()
{
}
}
\ No newline at end of file
...
...
database/migrations/2022_01_12_072821_create_order_table.php
View file @
76d661b
...
...
@@ -18,6 +18,7 @@ class CreateOrderTable extends Migration
$table
->
string
(
'order_sn'
)
->
index
()
->
default
(
''
)
->
comment
(
'订单号'
);
$table
->
unsignedBigInteger
(
'user_id'
)
->
index
()
->
comment
(
'用户id'
);
$table
->
string
(
'description'
)
->
default
(
''
)
->
comment
(
'订单描述'
);
$table
->
string
(
'thumbnail'
)
->
default
(
''
)
->
comment
(
'缩略图'
);
$table
->
decimal
(
'pay_amount'
)
->
comment
(
'实付金额'
);
$table
->
decimal
(
'goods_amount'
)
->
comment
(
'商品金额'
);
$table
->
unsignedSmallInteger
(
'status'
)
->
comment
(
'订单状态:100待付款 101用户取消 102超时取消 103商户取消 201已付款 204已完成'
);
...
...
routes/api.php
View file @
76d661b
...
...
@@ -33,6 +33,9 @@ Route::prefix('v1')->namespace('App\Http\Controllers\V1')->group(function (Route
/** 临境 */
$api
->
apiResource
(
'/immersive'
,
'ImmerseController'
);
/** 模板 */
$api
->
apiResource
(
'/template'
,
'TemplateController'
);
/** 创建订单 */
$api
->
apiResource
(
'/order'
,
'OrderController'
);
...
...
Please
register
or
login
to post a comment