Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
J
jwhx
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
sugar
jwhx
Commits
e63b5d85
Commit
e63b5d85
authored
Jan 04, 2025
by
xieyishang
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'dev' of
http://rungit.jxdsy.cn:10000/sugar/jwhx
into dev
parents
9caa333a
3767d592
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
336 additions
and
3 deletions
+336
-3
modules/Order/app/Controllers/Admin/Cashier.php
modules/Order/app/Controllers/Admin/Cashier.php
+111
-0
modules/Order/app/Services/CashierService.php
modules/Order/app/Services/CashierService.php
+216
-0
modules/Order/app/Services/OrderService.php
modules/Order/app/Services/OrderService.php
+1
-1
modules/Order/routes/admin.php
modules/Order/routes/admin.php
+6
-0
modules/Wechat/app/Services/NotifyService.php
modules/Wechat/app/Services/NotifyService.php
+1
-1
modules/Wechat/app/Services/PayService.php
modules/Wechat/app/Services/PayService.php
+1
-1
No files found.
modules/Order/app/Controllers/Admin/Cashier.php
0 → 100644
View file @
e63b5d85
<?php
// +----------------------------------------------------------------------
// | SentCMS [ WE CAN DO IT JUST THINK IT ]
// +----------------------------------------------------------------------
// | Copyright (c) 2024 http://www.tensent.cn All rights reserved.
// +----------------------------------------------------------------------
// | Author: molong <molong@tensent.cn> <http://www.tensent.cn>
// +----------------------------------------------------------------------
namespace
Modules\Order\Controllers\Admin
;
use
Illuminate\Http\Request
;
use
App\Http\Controllers\BaseController
;
use
Modules\Order\Services\CashierService
;
/**收银台
* Class Cashier
* @package Modules\Order\Controllers\Admin
*/
class
Cashier
extends
BaseController
{
/**
* @title 购物车列表
*
* @param Request $request
* @param CartService $service
* @return void
*/
public
function
index
(
Request
$request
,
CashierService
$service
){
try
{
$this
->
data
[
'data'
]
=
$service
->
getDataList
(
auth
(
'admin'
)
->
user
()[
'uid'
]);
}
catch
(
\Throwable
$th
)
{
$this
->
data
[
'code'
]
=
0
;
$this
->
data
[
'message'
]
=
$th
->
getMessage
();
}
return
response
()
->
json
(
$this
->
data
);
}
/**
* @title 添加购物车
*
* @param Request $request
* @param CartService $service
* @return void
*/
public
function
add
(
Request
$request
,
CashierService
$service
){
try
{
$this
->
data
[
'data'
]
=
$service
->
create
(
$request
);
}
catch
(
\Throwable
$th
)
{
$this
->
data
[
'code'
]
=
0
;
$this
->
data
[
'message'
]
=
$th
->
getMessage
();
}
return
response
()
->
json
(
$this
->
data
);
}
/**
* @title 更新购物车
*
* @param Request $request
* @param CartService $service
* @return void
*/
public
function
edit
(
Request
$request
,
CashierService
$service
){
try
{
$this
->
data
[
'data'
]
=
$service
->
update
(
$request
);
}
catch
(
\Throwable
$th
)
{
$this
->
data
[
'code'
]
=
0
;
$this
->
data
[
'message'
]
=
$th
->
getMessage
();
}
return
response
()
->
json
(
$this
->
data
);
}
/**
* @title 删除购物车
*
* @param Request $request
* @param CartService $service
* @return void
*/
public
function
delete
(
Request
$request
,
CashierService
$service
){
try
{
$this
->
data
[
'data'
]
=
$service
->
delete
(
$request
);
}
catch
(
\Throwable
$th
)
{
$this
->
data
[
'code'
]
=
0
;
$this
->
data
[
'message'
]
=
$th
->
getMessage
();
}
return
response
()
->
json
(
$this
->
data
);
}
/**
* @title 立即下单
*
* @param Request $request
* @param OrderService $service
* @return void
*/
public
function
simple
(
Request
$request
,
CashierService
$service
){
try
{
$this
->
data
[
'data'
]
=
$service
->
simple
(
$request
);
$this
->
data
[
'message'
]
=
'下单成功'
;
}
catch
(
\Throwable
$th
)
{
$this
->
data
[
'code'
]
=
0
;
$this
->
data
[
'message'
]
=
$th
->
getMessage
();
}
return
response
()
->
json
(
$this
->
data
);
}
}
\ No newline at end of file
modules/Order/app/Services/CashierService.php
0 → 100644
View file @
e63b5d85
<?php
// +----------------------------------------------------------------------
// | SentCMS [ WE CAN DO IT JUST THINK IT ]
// +----------------------------------------------------------------------
// | Copyright (c) 2024 http://www.tensent.cn All rights reserved.
// +----------------------------------------------------------------------
// | Author: molong <molong@tensent.cn> <http://www.tensent.cn>
// +----------------------------------------------------------------------
namespace
Modules\Order\Services
;
use
Illuminate\Support\Str
;
use
Modules\Goods\Models\GoodsSku
;
use
Modules\Member\Models\MemberAddress
;
use
Modules\Order\Models\Cart
;
use
Modules\Goods\Models\Goods
;
use
Modules\Order\Models\Order
;
use
Modules\Order\Models\OrderItem
;
class
CashierService
{
/**
* @title 获取购物车列表
*
* @return void
*/
public
function
getDataList
(
$admin_id
){
$data
=
Cart
::
with
([
'goods:id,title,price,cover,stock,sales,integral'
,
'store:id,title,cover'
,
'sku'
])
->
where
(
'admin_id'
,
$admin_id
)
->
get
();
return
$data
;
}
public
function
create
(
$request
){
$request
->
validate
([
'goods_sn'
=>
'required'
,
'num'
=>
'required'
,
],
[
'goods_sn.required'
=>
'商品编号不能为空'
,
'num.required'
=>
'商品数量不能为空'
,
]);
$goods_id
=
$request
->
input
(
'goods_id'
);
$goods_sku_id
=
$request
->
input
(
'goods_sku_id'
);
//通过扫码获取商品编号
if
(
!
empty
(
$request
->
input
(
'goods_sn'
))){
$goods_sn
=
$request
->
input
(
'goods_sn'
);
$firstChar
=
substr
(
$goods_sn
,
0
,
1
);
// 截取第一个字符
if
(
$firstChar
==
"G"
){
$goodsSN
=
Goods
::
where
([
'goods_sn'
=>
$goods_sn
])
->
find
();
$goods_id
=
empty
(
$goodsSN
)
?
$goods_id
:
$goodsSN
->
id
;
}
else
if
(
$firstChar
==
"S"
){
$goodsSKUSN
=
GoodsSku
::
where
([
'goods_sn'
=>
$goods_sn
])
->
find
();
$goods_id
=
empty
(
$goodsSKUSN
)
?
$goods_id
:
$goodsSKUSN
->
goods_id
;
$goods_sku_id
=
empty
(
$goodsSKUSN
)
?
$goods_id
:
$goodsSKUSN
->
id
;
}
}
/////////////////////////////////////////////////////////
$goods
=
Goods
::
find
(
$goods_id
);
if
(
!
$goods
){
throw
new
\Exception
(
"商品不存在!"
,
1
);
}
$cart
=
Cart
::
where
(
'goods_id'
,
$goods_id
)
->
where
(
'admin_id'
,
auth
(
'admin'
)
->
user
()[
'uid'
])
->
where
(
'goods_sku_id'
,
$goods_sku_id
);
if
(
$cart
->
doesntExist
()){
$cart
=
new
Cart
();
$request
->
merge
([
'admin_id'
=>
auth
(
'admin'
)
->
user
()[
'uid'
]
]);
foreach
(
$cart
->
setFilterFields
(
$request
->
all
())
as
$key
=>
$value
)
{
if
(
$value
!=
''
){
$cart
->
$key
=
$value
;
}
}
if
(
$cart
->
num
>
$goods
->
stock
){
throw
new
\Exception
(
"商品库存不足!"
,
1
);
}
}
else
{
$cart
=
$cart
->
first
();
if
(
$cart
->
num
>
$goods
->
stock
){
throw
new
\Exception
(
"商品库存不足!"
,
1
);
}
$cart
->
num
=
$cart
->
num
+
$request
->
input
(
'num'
,
1
);
}
$cart
->
save
();
return
$cart
;
}
public
function
update
(
$request
){
$cart
=
Cart
::
where
(
'id'
,
$request
->
input
(
'id'
))
->
where
(
'admin_id'
,
auth
(
'admin'
)
->
user
()[
'uid'
])
->
first
();
if
(
!
$cart
){
throw
new
\Exception
(
"购物车不存在!"
,
1
);
}
foreach
(
$cart
->
setFilterFields
(
$request
->
only
([
'goods_sku_id'
,
'num'
]))
as
$key
=>
$value
)
{
if
(
$value
){
$cart
->
$key
=
$value
;
}
}
$cart
->
save
();
return
$cart
;
}
public
function
delete
(
$request
){
if
(
$request
->
filled
(
'id'
)){
try
{
$cart
=
Cart
::
findOrFail
(
$request
->
input
(
'id'
));
}
catch
(
\Throwable
$th
)
{
throw
new
\Exception
(
"购物车不存在!"
,
1
);
}
$cart
->
delete
();
}
if
(
$request
->
filled
(
'ids'
)){
try
{
$cart
=
Cart
::
whereIn
(
'id'
,
$request
->
input
(
'ids'
));
}
catch
(
\Throwable
$th
)
{
throw
new
\Exception
(
$th
->
getMessage
(),
1
);
}
$cart
->
delete
();
}
return
$cart
;
}
/**
* @title 添加订单
*
* @param [type] $request
* @return void
*/
public
function
simple
(
$request
){
$request
->
validate
([
'carts'
=>
'required'
,
],
[
'carts.required'
=>
'请选择商品'
,
]);
$order
=
new
Order
();
$request
->
mergeIfMissing
([
'admin_id'
=>
auth
(
'admin'
)
->
user
()[
'uid'
]]);
if
(
$request
->
filled
(
'carts'
)){
$cartsQuery
=
Cart
::
with
([
'goods'
,
'sku'
])
->
whereIn
(
'id'
,
$request
->
input
(
'carts'
))
->
where
(
'admin_id'
,
'='
,
$request
->
input
(
'admin_id'
));
}
if
(
$cartsQuery
->
doesntExist
()){
throw
new
\Exception
(
"请先加入购物车!"
,
0
);
}
$orderGoods
=
[];
$carts
=
$cartsQuery
->
get
()
->
map
(
function
(
$item
)
use
(
&
$orderGoods
,
$request
)
{
if
(
!
$item
->
goods
){
throw
new
\Exception
(
"商品不存在!"
,
0
);
}
if
(
$item
->
goods
->
status
!=
1
){
throw
new
\Exception
(
"商品已下架!"
,
0
);
}
if
(
!
$item
->
goods
->
is_repeat_buy
){
$orderGoodsQuery
=
OrderItem
::
where
(
'goods_id'
,
'='
,
$item
->
goods_id
)
->
where
(
'admin_id'
,
'='
,
$request
->
input
(
'admin_id'
))
->
where
(
'status'
,
'>='
,
3
);
if
(
$orderGoodsQuery
->
exists
()){
throw
new
\Exception
(
"您已购买过此商品,当前产品不能复购!"
,
0
);
}
}
if
(
$item
->
sku
){
if
(
$item
->
sku
->
stock
<
$item
->
num
){
throw
new
\Exception
(
"商品库存不足!"
,
0
);
}
$item
->
amount
=
$item
->
sku
->
price
*
$item
->
num
;
$item
->
integral
=
$item
->
sku
->
integral
*
$item
->
num
;
}
else
{
if
(
$item
->
goods
->
stock
<
$item
->
num
){
throw
new
\Exception
(
"商品库存不足!"
,
0
);
}
$item
->
amount
=
$item
->
goods
->
price
*
$item
->
num
;
$item
->
integral
=
$item
->
goods
->
integral
*
$item
->
num
;
}
$orderGoods
[]
=
new
OrderItem
([
'member_id'
=>
0
,
'store_id'
=>
$item
->
store_id
,
'goods_id'
=>
$item
->
goods_id
,
'goods_sku_id'
=>
$item
->
goods_sku_id
,
'title'
=>
$item
->
goods
->
title
,
'cover'
=>
$item
->
goods
->
cover
,
'price'
=>
$item
->
goods
->
price
,
'integral'
=>
$item
->
goods
->
integral
,
'total_price'
=>
$item
->
amount
,
'total_integral'
=>
$item
->
integral
,
'num'
=>
$item
->
num
,
'status'
=>
0
,
]);
return
$item
;
});
$order
->
order_no
=
str_replace
(
'-'
,
''
,
Str
::
orderedUuid
());
$order
->
member_id
=
0
;
$order
->
invite_uid
=
$request
->
input
(
'invite_uid'
)
??
0
;
$order
->
pay_type
=
$request
->
input
(
'pay_type'
)
??
'wechat'
;
$order
->
amount
=
$carts
->
sum
(
'amount'
);
$order
->
integral
=
$carts
->
sum
(
'integral'
);
$order
->
status
=
0
;
$order
->
admin_id
=
auth
(
'admin'
)
->
user
()[
'uid'
];
$order
->
save
();
//下单完成后,删除购物车
$cartsQuery
->
delete
();
$order
->
detail
()
->
saveMany
(
$orderGoods
);
return
$order
;
}
}
modules/Order/app/Services/OrderService.php
View file @
e63b5d85
...
...
@@ -405,7 +405,7 @@ class OrderService {
* @return void
*/
public
function
update
(
$request
){
$order
=
Order
::
where
(
'id'
,
'='
,
$
data
[
'id'
]
)
->
first
();
$order
=
Order
::
where
(
'id'
,
'='
,
$
request
->
input
(
'id'
)
)
->
first
();
if
(
!
$order
){
throw
new
\Exception
(
"订单不存在!"
,
0
);
}
...
...
modules/Order/routes/admin.php
View file @
e63b5d85
...
...
@@ -26,4 +26,10 @@ Route::name('order.')->prefix('order')->middleware(['auth.check:admin'])->group(
Route
::
controller
(
Modules\Order\Controllers\Admin\Exchange
::
class
)
->
prefix
(
'exchange'
)
->
name
(
'exchange.'
)
->
group
(
function
()
{
Route
::
get
(
'/index'
,
'index'
)
->
name
(
'index'
);
});
Route
::
controller
(
Modules\Order\Controllers\Admin\Cashier
::
class
)
->
prefix
(
'cashier'
)
->
name
(
'cashier.'
)
->
group
(
function
()
{
Route
::
get
(
'/index'
,
'index'
)
->
name
(
'index'
);
Route
::
post
(
'/add'
,
'add'
)
->
name
(
'add'
);
Route
::
put
(
'/edit'
,
'edit'
)
->
name
(
'edit'
);
Route
::
delete
(
'/delete'
,
'delete'
)
->
name
(
'delete'
);
});
});
modules/Wechat/app/Services/NotifyService.php
View file @
e63b5d85
...
...
@@ -68,7 +68,7 @@ class NotifyService {
$app
=
new
Application
(
$config
);
$server
=
$app
->
getServer
();
Log
::
info
(
"转账到零钱异步返回通知:"
);
//
Log::info("转账到零钱异步返回通知:");
// 处理退款结果事件
//DB::connection()->enableQueryLog();
$data
=
MemberAccount
::
where
([
'status'
=>
1
,
'detail_status'
=>
null
])
->
whereNotNull
(
"out_batch_no"
)
->
select
()
->
get
();
...
...
modules/Wechat/app/Services/PayService.php
View file @
e63b5d85
...
...
@@ -30,6 +30,7 @@ class PayService {
case
'order'
:
$data
=
app
(
'Modules\Order\Services\OrderService'
)
->
getjsPayData
(
$request
,
$from
);
$description
=
"订单支付"
;
$data
->
amount
=
$data
->
amount
-
$data
->
integral
;
break
;
case
'payment'
:
$data
=
app
(
'Modules\Store\Services\PaymentService'
)
->
getjsPayData
(
$request
,
$from
);
...
...
@@ -40,7 +41,6 @@ class PayService {
$description
=
"订单支付"
;
break
;
}
$data
->
amount
=
$data
->
amount
-
$data
->
integral
;
$payData
=
[
'mchid'
=>
$config
[
'mch_id'
],
'appid'
=>
$config
[
'app_id'
],
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment