Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
openApi
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
hj
openApi
Commits
36251951
Commit
36251951
authored
Jun 06, 2022
by
hangjun83
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
罗恩工具类更新
parent
ba6f28e0
Changes
19
Hide whitespace changes
Inline
Side-by-side
Showing
19 changed files
with
1857 additions
and
1 deletion
+1857
-1
server/app/Http/Controllers/V1/RhawnOrdersController.php
server/app/Http/Controllers/V1/RhawnOrdersController.php
+204
-0
server/app/Jobs/RhawnSorderRefundJob.php
server/app/Jobs/RhawnSorderRefundJob.php
+86
-0
server/app/Providers/RepositoryServiceProvider.php
server/app/Providers/RepositoryServiceProvider.php
+3
-0
server/app/Repositories/Contracts/RhawnSoitemsRepository.php
server/app/Repositories/Contracts/RhawnSoitemsRepository.php
+21
-0
server/app/Repositories/Contracts/RhawnSorderRefundRepository.php
...pp/Repositories/Contracts/RhawnSorderRefundRepository.php
+21
-0
server/app/Repositories/Contracts/RhawnSordersRepository.php
server/app/Repositories/Contracts/RhawnSordersRepository.php
+21
-0
server/app/Repositories/Criteria/RhawnSorderRefundCriteria.php
...r/app/Repositories/Criteria/RhawnSorderRefundCriteria.php
+31
-0
server/app/Repositories/Eloquent/RhawnSoitemsRepositoryEloquent.php
.../Repositories/Eloquent/RhawnSoitemsRepositoryEloquent.php
+119
-0
server/app/Repositories/Eloquent/RhawnSorderRefundRepositoryEloquent.php
...sitories/Eloquent/RhawnSorderRefundRepositoryEloquent.php
+86
-0
server/app/Repositories/Eloquent/RhawnSordersRepositoryEloquent.php
.../Repositories/Eloquent/RhawnSordersRepositoryEloquent.php
+97
-0
server/app/Repositories/Models/RhawnSoitems.php
server/app/Repositories/Models/RhawnSoitems.php
+58
-0
server/app/Repositories/Models/RhawnSorderRefund.php
server/app/Repositories/Models/RhawnSorderRefund.php
+36
-0
server/app/Repositories/Models/RhawnSorders.php
server/app/Repositories/Models/RhawnSorders.php
+58
-0
server/app/Services/BhOrdersService.php
server/app/Services/BhOrdersService.php
+1
-1
server/app/Services/RhawnOrdersService.php
server/app/Services/RhawnOrdersService.php
+799
-0
server/app/Support/Traits/InitMenusAndPermission.php
server/app/Support/Traits/InitMenusAndPermission.php
+77
-0
server/config/database.php
server/config/database.php
+15
-0
server/database/seeds/local/RhSalesOrderRefundMenuSeeder.php
server/database/seeds/local/RhSalesOrderRefundMenuSeeder.php
+113
-0
server/routes/api/tools.php
server/routes/api/tools.php
+11
-0
No files found.
server/app/Http/Controllers/V1/RhawnOrdersController.php
0 → 100644
View file @
36251951
<?php
/*
* This file is part of the Jiannei/lumen-api-starter.
*
* (c) Jiannei <longjian.huang@foxmail.com>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace
App\Http\Controllers\V1
;
use
App\Services\RhawnOrdersService
;
use
Illuminate\Http\Request
;
use
Jiannei\Enum\Laravel\Repositories\Enums\LogEnum
;
use
Jiannei\Response\Laravel\Support\Facades\Response
;
use
App\Http\Controllers\V1\Controller
;
use
App\Support\Traits\Helpers
;
class
RhawnOrdersController
extends
Controller
{
use
Helpers
;
protected
$rhawnOrdersService
=
null
;
public
function
__construct
(
RhawnOrdersService
$rhawnOrdersService
)
{
$this
->
rhawnOrdersService
=
$rhawnOrdersService
;
}
/**
* 添加一个订单退货人任务
* @param Request $request
* @return \Illuminate\Http\JsonResponse|\Illuminate\Http\Resources\Json\JsonResource
*/
public
function
addSorderRefundTask
(
Request
$request
)
{
$message
=
[
'name.required'
=>
"任务名称必填"
,
'orderNo.required'
=>
"订单号必填"
,
'itemId.required'
=>
"订单购买项必填"
,
'pId.required'
=>
"订单产品必选"
,
'handleFee.required'
=>
"手续费费用必填"
,
'transferPre.required'
=>
"是否转预存必选"
,
];
$this
->
validateRequest
(
$request
,
$message
);
try
{
$order
=
$this
->
rhawnOrdersService
->
addSordersRefundTask
(
$request
);
return
Response
::
success
(
$order
,
'添加成功'
);
}
catch
(
\Exception
$exception
){
return
Response
::
fail
(
$exception
->
getMessage
(),
500
);
}
}
public
function
editSorderRefundTask
(
Request
$request
)
{
$message
=
[
'taskId.required'
=>
"任务id必填"
,
'name.required'
=>
"任务名称必填"
,
'orderNo.required'
=>
"订单号必填"
,
'itemId.required'
=>
"订单购买项必填"
,
'pId.required'
=>
"订单产品必选"
,
'refundNums.required'
=>
"退货数量必填"
,
'handleFee.required'
=>
"手续费费用必填"
,
'transferPre.required'
=>
"是否转预存必选"
,
];
$this
->
validateRequest
(
$request
,
$message
);
try
{
$order
=
$this
->
rhawnOrdersService
->
addSordersRefundTask
(
$request
);
return
Response
::
success
(
$order
,
'编辑成功'
);
}
catch
(
\Exception
$exception
){
return
Response
::
fail
(
$exception
->
getMessage
(),
500
);
}
}
public
function
delSorderRefundTask
(
Request
$request
)
{
$message
=
[
'taskId.required'
=>
"任务id必传"
,
];
$this
->
validateRequest
(
$request
,
$message
);
try
{
$task
=
$this
->
rhawnOrdersService
->
delSorderRefundTask
(
$request
);
return
Response
::
success
(
$task
,
'操作成功'
);
}
catch
(
\Exception
$exception
){
return
Response
::
fail
(
$exception
->
getMessage
(),
500
);
}
}
/**
* 获取订单退货任务列表
* @param Request $request
* @return \Illuminate\Http\JsonResponse|\Illuminate\Http\Resources\Json\JsonResource
*/
public
function
getSorderRefundTaskToPage
(
Request
$request
)
{
$message
=
[
'type.required'
=>
"类型无效"
,
];
$this
->
validateRequest
(
$request
,
$message
);
try
{
$task
=
$this
->
rhawnOrdersService
->
getSordersRefundTask
(
$request
);
return
Response
::
success
(
$task
,
'添加成功'
);
}
catch
(
\Exception
$exception
){
return
Response
::
fail
(
$exception
->
getMessage
(),
500
);
}
}
/**
* 获取库存数据
* @param Request $request
* @return \Illuminate\Http\JsonResponse|\Illuminate\Http\Resources\Json\JsonResource
*/
public
function
getRhawnSordersStock
(
Request
$request
)
{
$message
=
[
'orderItemId.required'
=>
"id必传"
,
];
$this
->
validateRequest
(
$request
,
$message
);
try
{
$task
=
$this
->
rhawnOrdersService
->
getSordersStock
(
$request
);
return
Response
::
success
(
$this
->
formatKeysfromArray
(
$task
),
'添加成功'
);
}
catch
(
\Exception
$exception
){
return
Response
::
fail
(
$exception
->
getMessage
(),
500
);
}
}
/**
* 执行罗恩退货任务
* @param Request $request
* @return \Illuminate\Http\JsonResponse|\Illuminate\Http\Resources\Json\JsonResource
*/
public
function
execRhawnSorderRefundTask
(
Request
$request
)
{
$message
=
[
'taskId.required'
=>
"任务id必填"
,
];
$this
->
validateRequest
(
$request
,
$message
);
try
{
$this
->
rhawnOrdersService
->
execSordersRefundTask
(
$request
);
return
Response
::
success
([],
'操作成功'
);
}
catch
(
\Exception
$exception
){
return
Response
::
fail
(
$exception
->
getMessage
(),
500
);
}
}
/**
* 查询订单详情
* @param Request $request
* @return \Illuminate\Http\JsonResponse|\Illuminate\Http\Resources\Json\JsonResource
*/
public
function
getSordersDetail
(
Request
$request
)
{
$message
=
[
'orderNo.required'
=>
"订单号必填"
,
];
$this
->
validateRequest
(
$request
,
$message
);
try
{
$order
=
$this
->
rhawnOrdersService
->
getSorderDetail
(
$request
);
return
Response
::
success
(
$this
->
formatKeysfromArray
(
$order
),
'更新成功'
);
}
catch
(
\Exception
$exception
){
return
Response
::
fail
(
$exception
->
getMessage
(),
500
);
}
}
public
function
getSorderRefundTaskLogsToPage
(
Request
$request
)
{
$message
=
[
'taskId.required'
=>
"任务id必填"
,
];
$this
->
validateRequest
(
$request
,
$message
);
try
{
$logs
=
$this
->
rhawnOrdersService
->
getRhawnSorderTaskLog
(
$request
);
return
Response
::
success
(
$this
->
formatKeysfromArray
(
$logs
),
'操作成功'
);
}
catch
(
\Exception
$exception
){
return
Response
::
fail
(
$exception
->
getMessage
(),
500
);
}
}
public
function
getSorderDetailByTaskId
(
Request
$request
)
{
$message
=
[
'taskId.required'
=>
"任务id必填"
,
];
$this
->
validateRequest
(
$request
,
$message
);
try
{
$logs
=
$this
->
rhawnOrdersService
->
getRhawnSorderDetailByTaskId
(
$request
);
return
Response
::
success
(
$this
->
formatKeysfromArray
(
$logs
),
'操作成功'
);
}
catch
(
\Exception
$exception
){
return
Response
::
fail
(
$exception
->
getMessage
(),
500
);
}
}
}
server/app/Jobs/RhawnSorderRefundJob.php
0 → 100644
View file @
36251951
<?php
/*
* This file is part of the Jiannei/lumen-api-starter.
*
* (c) Jiannei <longjian.huang@foxmail.com>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace
App\Jobs
;
use
App\Repositories\Contracts\RhawnSorderRefundRepository
;
use
App\Services\RhawnOrdersService
;
use
Illuminate\Support\Facades\DB
;
class
RhawnSorderRefundJob
extends
Job
{
protected
$refundInfo
;
public
function
__construct
(
$refundInfo
)
{
$this
->
refundInfo
=
$refundInfo
;
}
/**
* Execute the job.
*/
public
function
handle
()
{
try
{
app
(
RhawnSorderRefundRepository
::
class
)
->
update
([
'status'
=>
'running'
],
$this
->
refundInfo
[
'id'
]);
$note
=
null
;
$refundInfo
=
json_decode
(
$this
->
refundInfo
[
'exec_content'
]);
$service
=
app
(
RhawnOrdersService
::
class
);
$service
->
sOrderRefund
(
$refundInfo
,
$note
);
//对任务进行更新
$update
=
[];
$update
[
'status'
]
=
'finish'
;
$update
[
'exec_nums'
]
=
$this
->
refundInfo
[
'exec_nums'
]
+
1
;
$update
[
'error_message'
]
=
''
;
if
(
$note
&&
count
(
$note
)
>
0
){
$update
[
'error_message'
]
=
json_encode
(
$note
,
JSON_UNESCAPED_UNICODE
);
}
}
catch
(
\Exception
$e
){
//对任务进行更新
$update
=
[];
$update
[
'status'
]
=
'error'
;
$update
[
'error_message'
]
=
$e
->
getMessage
();
$update
[
'exec_nums'
]
=
intval
(
$this
->
refundInfo
[
'exec_nums'
]
+
1
);
}
try
{
$db
=
DB
::
connection
(
'mysql'
);
$db
->
beginTransaction
();
$update
[
'updated_at'
]
=
date
(
'Y-m-d H:i:s'
,
time
());
app
(
RhawnSorderRefundRepository
::
class
)
->
update
(
$update
,
$this
->
refundInfo
[
'id'
]);
$logInsert
=
[];
$logInsert
[
'task_id'
]
=
$this
->
refundInfo
[
'id'
];
if
(
isset
(
$update
[
'error_message'
])
&&
!
empty
(
$update
[
'error_message'
])){
$logInsert
[
'content'
]
=
$update
[
'error_message'
];
}
else
{
$logInsert
[
'content'
]
=
'执行完成'
;
}
$logInsert
[
'created_at'
]
=
date
(
'Y-m-d H:i:s'
,
time
());
$logInsert
[
'updated_at'
]
=
date
(
'Y-m-d H:i:s'
,
time
());
$db
->
table
(
'task_log'
)
->
insertGetId
(
$logInsert
);
$db
->
commit
();
}
catch
(
\Exception
$e
){
$db
->
rollback
();
throw
$e
;
}
}
}
server/app/Providers/RepositoryServiceProvider.php
View file @
36251951
...
@@ -28,6 +28,9 @@ class RepositoryServiceProvider extends LumenRepositoryServiceProvider
...
@@ -28,6 +28,9 @@ class RepositoryServiceProvider extends LumenRepositoryServiceProvider
'App\Repositories\Contracts\BhSoitemsRepository'
=>
'App\Repositories\Eloquent\BhSoitemsRepositoryEloquent'
,
'App\Repositories\Contracts\BhSoitemsRepository'
=>
'App\Repositories\Eloquent\BhSoitemsRepositoryEloquent'
,
'App\Repositories\Contracts\BhSorderRefundRepository'
=>
'App\Repositories\Eloquent\BhSorderRefundRepositoryEloquent'
,
'App\Repositories\Contracts\BhSorderRefundRepository'
=>
'App\Repositories\Eloquent\BhSorderRefundRepositoryEloquent'
,
'App\Repositories\Contracts\ToolsTaskRepository'
=>
'App\Repositories\Eloquent\ToolsTaskRepositoryEloquent'
,
'App\Repositories\Contracts\ToolsTaskRepository'
=>
'App\Repositories\Eloquent\ToolsTaskRepositoryEloquent'
,
'App\Repositories\Contracts\RhawnSordersRepository'
=>
'App\Repositories\Eloquent\RhawnSordersRepositoryEloquent'
,
'App\Repositories\Contracts\RhawnSoitemsRepository'
=>
'App\Repositories\Eloquent\RhawnSoitemsRepositoryEloquent'
,
'App\Repositories\Contracts\RhawnSorderRefundRepository'
=>
'App\Repositories\Eloquent\RhawnSorderRefundRepositoryEloquent'
,
];
];
/**
/**
...
...
server/app/Repositories/Contracts/RhawnSoitemsRepository.php
0 → 100644
View file @
36251951
<?php
/*
* This file is part of the Jiannei/lumen-api-starter.
*
* (c) Jiannei <longjian.huang@foxmail.com>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace
App\Repositories\Contracts
;
use
Prettus\Repository\Contracts\RepositoryInterface
;
/**
* Interface UserRepository.
*/
interface
RhawnSoitemsRepository
extends
RepositoryInterface
{
}
server/app/Repositories/Contracts/RhawnSorderRefundRepository.php
0 → 100644
View file @
36251951
<?php
/*
* This file is part of the Jiannei/lumen-api-starter.
*
* (c) Jiannei <longjian.huang@foxmail.com>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace
App\Repositories\Contracts
;
use
Prettus\Repository\Contracts\RepositoryInterface
;
/**
* Interface UserRepository.
*/
interface
RhawnSorderRefundRepository
extends
RepositoryInterface
{
}
server/app/Repositories/Contracts/RhawnSordersRepository.php
0 → 100644
View file @
36251951
<?php
/*
* This file is part of the Jiannei/lumen-api-starter.
*
* (c) Jiannei <longjian.huang@foxmail.com>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace
App\Repositories\Contracts
;
use
Prettus\Repository\Contracts\RepositoryInterface
;
/**
* Interface UserRepository.
*/
interface
RhawnSordersRepository
extends
RepositoryInterface
{
}
server/app/Repositories/Criteria/RhawnSorderRefundCriteria.php
0 → 100644
View file @
36251951
<?php
/*
* This file is part of the Jiannei/lumen-api-starter.
*
* (c) Jiannei <longjian.huang@foxmail.com>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace
App\Repositories\Criteria
;
use
Illuminate\Database\Eloquent\Builder
;
use
App\Repositories\Criteria\Criteria
;
class
RhawnSorderRefundCriteria
extends
Criteria
{
protected
function
condition
(
Builder
$query
)
:
void
{
if
(
$this
->
request
->
has
(
'type'
)){
$query
->
where
(
'type'
,
'='
,
$this
->
request
->
get
(
'type'
));
}
}
protected
function
after
(
$model
)
{
$model
->
orderbyDesc
(
'id'
);
return
$model
;
}
}
server/app/Repositories/Eloquent/RhawnSoitemsRepositoryEloquent.php
0 → 100644
View file @
36251951
<?php
namespace
App\Repositories\Eloquent
;
use
App\Repositories\Contracts\RhawnSoitemsRepository
;
use
App\Repositories\Contracts\RhawnSordersRepository
;
use
App\Repositories\Criteria\RequestCriteria
;
use
App\Repositories\Eloquent\BaseRepository
;
use
App\Repositories\Models\RhawnSoitems
;
use
Prettus\Validator\Contracts\ValidatorInterface
;
/**
* Class UserRepositoryEloquent.
*/
class
RhawnSoitemsRepositoryEloquent
extends
BaseRepository
implements
RhawnSoitemsRepository
{
protected
$fieldSearchable
=
[
];
/**
* Specify Model class name.
*
* @return string
*/
public
function
model
()
{
return
RhawnSoitems
::
class
;
}
/**
* Boot up the repository, pushing criteria.
*
* @throws \Prettus\Repository\Exceptions\RepositoryException
*/
public
function
boot
()
{
$this
->
pushCriteria
(
app
(
RequestCriteria
::
class
));
}
/**
* 获取订单详情
* @param $orderId
* @return \Illuminate\Database\Eloquent\Builder[]|\Illuminate\Database\Eloquent\Collection
*/
public
function
getSorderItemsDetailFromOrderId
(
$orderId
)
{
$order
=
app
(
RhawnSordersRepository
::
class
)
->
find
(
$orderId
);
if
(
!
$order
){
throw
new
\LogicException
(
'该订单不存在!'
,
500
);
}
//查询订单的详情
$soItems
=
RhawnSoitems
::
query
()
->
join
(
'products'
,
'soitems.p_id'
,
'products.p_id'
)
->
join
(
'chemicals'
,
'products.c_id'
,
'chemicals.c_id'
)
->
join
(
'brands'
,
'products.b_id'
,
'brands.b_id'
)
->
where
(
'soitems.so_id'
,
$order
->
so_id
)
->
get
();
return
$soItems
;
}
public
function
getSorderItemsDetailFromItemId
(
$itemId
,
$pid
=
null
)
{
//查询订单的详情
$soItems
=
RhawnSoitems
::
query
()
->
join
(
'sorders'
,
'sorders.so_id'
,
'soitems.so_id'
)
->
join
(
'products'
,
'soitems.p_id'
,
'products.p_id'
)
->
join
(
'chemicals'
,
'products.c_id'
,
'chemicals.c_id'
)
->
join
(
'brands'
,
'products.b_id'
,
'brands.b_id'
)
->
where
(
'soitems.si_id'
,
$itemId
);
if
(
!
is_null
(
$pid
)){
$soItems
=
$soItems
->
where
(
'soitems.p_id'
,
$pid
);
}
$soItems
=
$soItems
->
get
();
return
$soItems
;
}
/**
* 根据si_id获取订单明细项
* @param $si_id
* @return \Illuminate\Database\Eloquent\Builder[]|\Illuminate\Database\Eloquent\Collection
*/
public
function
getSorderItemFromItemId
(
$si_id
)
{
$item
=
$this
->
find
(
$si_id
);
if
(
!
$item
){
throw
new
\LogicException
(
'该订单项不存在!'
,
500
);
}
//查询订单的详情
$soItems
=
RhawnSoitems
::
query
()
->
join
(
'products'
,
'soitems.p_id'
,
'products.p_id'
)
->
where
(
'soitems.si_id'
,
$si_id
)
->
get
();
return
$soItems
;
}
public
function
getOrderItemsStockFromItemIds
(
$id
)
{
$item
=
$this
->
find
(
$id
);
if
(
!
$item
){
throw
new
\LogicException
(
'该订单项不存在!'
,
500
);
}
//查询订单的详情
$soItemStock
=
RhawnSoitems
::
query
()
->
join
(
'dpdetail'
,
'dpdetail.si_id'
,
'soitems.si_id'
)
->
join
(
'pstock'
,
'pstock.pstk_id'
,
'dpdetail.pstk_id'
)
->
join
(
'products'
,
'soitems.p_id'
,
'products.p_id'
)
->
where
(
'soitems.si_id'
,
$id
)
->
where
(
'si_if_cancel'
,
0
)
->
where
(
'dpdetail.dpd_invoiced'
,
'='
,
0
)
->
get
();
return
$soItemStock
;
}
}
server/app/Repositories/Eloquent/RhawnSorderRefundRepositoryEloquent.php
0 → 100644
View file @
36251951
<?php
namespace
App\Repositories\Eloquent
;
use
App\Repositories\Contracts\RhawnSorderRefundRepository
;
use
App\Repositories\Criteria\RequestCriteria
;
use
App\Repositories\Models\RhawnSorderRefund
;
use
App\Repositories\Eloquent\BaseRepository
;
use
Illuminate\Support\Facades\DB
;
use
Prettus\Validator\Contracts\ValidatorInterface
;
/**
* Class UserRepositoryEloquent.
*/
class
RhawnSorderRefundRepositoryEloquent
extends
BaseRepository
implements
RhawnSorderRefundRepository
{
protected
$fieldSearchable
=
[
];
/**
* Specify Model class name.
*
* @return string
*/
public
function
model
()
{
return
RhawnSorderRefund
::
class
;
}
/**
* Boot up the repository, pushing criteria.
*
* @throws \Prettus\Repository\Exceptions\RepositoryException
*/
public
function
boot
()
{
$this
->
pushCriteria
(
app
(
RequestCriteria
::
class
));
}
/**
* 添加退款任务
* @param $request
*/
public
function
addRefundTask
(
$params
)
{
if
(
empty
(
$params
)){
throw
new
\LogicException
(
'参数为空!'
,
500
);
}
$task
=
[];
$task
[
'name'
]
=
$params
[
'name'
];
unset
(
$params
[
'name'
]);
$task
[
'exec_content'
]
=
json_encode
(
$params
);
$task
[
'create_by'
]
=
auth
()
->
user
()
->
id
;
$task
[
'status'
]
=
'notexec'
;
$task
[
'type'
]
=
'rhawn_sorder_refund'
;
if
(
isset
(
$params
[
'task_id'
])
&&
!
empty
(
$params
[
'task_id'
])){
$id
=
$params
[
'task_id'
];
return
$this
->
update
(
$task
,
$id
);
}
else
{
return
$this
->
create
(
$task
);
}
}
public
function
delRefundTask
(
$params
)
{
if
(
empty
(
$params
)){
throw
new
\LogicException
(
'参数为空!'
,
500
);
}
DB
::
beginTransaction
();
try
{
$this
->
delete
(
$params
[
'task_id'
]);
DB
::
table
(
'task_log'
)
->
where
(
'task_id'
,
$params
[
'task_id'
])
->
delete
();
DB
::
commit
();
}
catch
(
\Exception
$e
){
DB
::
rollback
();
}
}
}
server/app/Repositories/Eloquent/RhawnSordersRepositoryEloquent.php
0 → 100644
View file @
36251951
<?php
namespace
App\Repositories\Eloquent
;
use
App\Repositories\Contracts\RhawnSordersRepository
;
use
App\Repositories\Criteria\RequestCriteria
;
use
App\Repositories\Models\RhawnSorders
;
use
App\Repositories\Eloquent\BaseRepository
;
use
Illuminate\Support\Facades\DB
;
use
Prettus\Validator\Contracts\ValidatorInterface
;
/**
* Class UserRepositoryEloquent.
*/
class
RhawnSordersRepositoryEloquent
extends
BaseRepository
implements
RhawnSordersRepository
{
protected
$fieldSearchable
=
[
];
/**
* Specify Model class name.
*
* @return string
*/
public
function
model
()
{
return
RhawnSorders
::
class
;
}
/**
* Boot up the repository, pushing criteria.
*
* @throws \Prettus\Repository\Exceptions\RepositoryException
*/
public
function
boot
()
{
$this
->
pushCriteria
(
app
(
RequestCriteria
::
class
));
}
/**
* 返回指定订单编号的订单信息
* @param $order_no
* @return mixed
*/
public
function
getSorderFromOrderNo
(
$orderNo
)
{
$where
=
[
'so_no'
=>
$orderNo
];
return
$this
->
findWhere
(
$where
)
->
first
();
}
/**
* 获取订单详情
* @param $orderNo
* @return mixed
*/
public
function
getSorderItemsFromOrderNo
(
$orderNo
){
$soItems
=
$this
->
join
(
'soitems'
,
'soitems.so_id'
,
'sorders.so_id'
)
->
where
(
'sorders.so_no'
,
$orderNo
)
->
get
();
return
$soItems
;
}
/**
* 获取订单相关信息(包括,产品,客户,品牌等)
* @param $so_id
* @return mixed
*/
public
function
getSorderDetailFromOrderId
(
$so_id
)
{
$sOrderInfo
=
$this
->
join
(
'customers'
,
'sorders.cus_id'
,
'customers.cus_id'
)
->
where
(
'sorders.so_id'
,
$so_id
)
->
get
();
if
(
!
$sOrderInfo
){
return
;
}
$sOrderInfo
=
current
(
$sOrderInfo
->
toArray
());
$items
=
DB
::
connection
(
'bh_mysql'
)
->
table
(
'soitems'
)
->
join
(
'products'
,
'soitems.p_id'
,
'products.p_id'
)
->
join
(
'chemicals'
,
'products.c_id'
,
'chemicals.c_id'
)
->
join
(
'brands'
,
'products.b_id'
,
'brands.b_id'
)
->
where
(
'soitems.so_id'
,
$so_id
)
->
get
();
if
(
!
$items
){
$sOrderInfo
[
'items'
]
=
[];
}
$sOrderInfo
[
'items'
]
=
$items
->
toArray
();
return
$sOrderInfo
;
}
}
server/app/Repositories/Models/RhawnSoitems.php
0 → 100644
View file @
36251951
<?php
/*
* This file is part of the Jiannei/lumen-api-starter.
*
* (c) Jiannei <longjian.huang@foxmail.com>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace
App\Repositories\Models
;
class
RhawnSoitems
extends
Model
{
// 销售订单
protected
$table
=
'soitems'
;
protected
$connection
=
'rhawn_mysql'
;
protected
$primaryKey
=
'si_id'
;
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected
$fillable
=
[
];
protected
$guarded
=
[
'created_at'
,
'updated_at'
];
/**
* The attributes excluded from the model's JSON form.
*
* @var array
*/
protected
$hidden
=
[
];
/**
* update时不做自动更新时间操作
* @return null
*/
public
function
getUpdatedAtColumn
()
{
return
null
;
}
public
function
getCreatedAtColumn
()
{
return
null
;
}
}
\ No newline at end of file
server/app/Repositories/Models/RhawnSorderRefund.php
0 → 100644
View file @
36251951
<?php
/*
* This file is part of the Jiannei/lumen-api-starter.
*
* (c) Jiannei <longjian.huang@foxmail.com>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace
App\Repositories\Models
;
class
RhawnSorderRefund
extends
Model
{
protected
$table
=
'tools_task'
;
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected
$fillable
=
[
'id'
,
'name'
,
'exec_content'
,
'status'
,
'error_message'
,
'type'
,
'exec_nums'
,
'create_by'
];
/**
* The attributes excluded from the model's JSON form.
*
* @var array
*/
protected
$hidden
=
[
];
}
\ No newline at end of file
server/app/Repositories/Models/RhawnSorders.php
0 → 100644
View file @
36251951
<?php
/*
* This file is part of the Jiannei/lumen-api-starter.
*
* (c) Jiannei <longjian.huang@foxmail.com>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace
App\Repositories\Models
;
class
RhawnSorders
extends
Model
{
// 销售订单
protected
$table
=
'sorders'
;
protected
$connection
=
'rhawn_mysql'
;
protected
$primaryKey
=
'so_id'
;
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected
$fillable
=
[
];
protected
$guarded
=
[
'created_at'
,
'updated_at'
];
/**
* The attributes excluded from the model's JSON form.
*
* @var array
*/
protected
$hidden
=
[
];
/**
* update时不做自动更新时间操作
* @return null
*/
public
function
getUpdatedAtColumn
()
{
return
null
;
}
public
function
getCreatedAtColumn
()
{
return
null
;
}
}
\ No newline at end of file
server/app/Services/BhOrdersService.php
View file @
36251951
...
@@ -222,7 +222,7 @@ class BhOrdersService
...
@@ -222,7 +222,7 @@ class BhOrdersService
$user
=
AdminUsers
::
find
(
$item
[
'create_by'
]);
$user
=
AdminUsers
::
find
(
$item
[
'create_by'
]);
$item
[
'create_by'
]
=
$user
->
username
;
$item
[
'create_by'
]
=
$user
->
username
;
$item
[
'content_string'
]
=
implode
(
'
.
'
,
$contentArr
);
$item
[
'content_string'
]
=
implode
(
'
<br / >
'
,
$contentArr
);
$item
=
array_merge
(
$item
,
$execArr
);
$item
=
array_merge
(
$item
,
$execArr
);
return
$item
;
return
$item
;
});
});
...
...
server/app/Services/RhawnOrdersService.php
0 → 100644
View file @
36251951
<?php
/*
* This file is part of the Jiannei/lumen-api-starter.
*
* (c) Jiannei <longjian.huang@foxmail.com>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/
namespace
App\Services
;
use
App\Jobs\RhawnSorderRefundJob
;
use
App\Repositories\Contracts\BhPordersRepository
;
use
App\Repositories\Contracts\BhSordersRepository
;
use
App\Repositories\Contracts\RhawnSoitemsRepository
;
use
App\Repositories\Contracts\RhawnSorderRefundRepository
;
use
App\Repositories\Contracts\RhawnSordersRepository
;
use
App\Repositories\Contracts\ToolsTaskRepository
;
use
App\Repositories\Criteria\RhawnSorderRefundCriteria
;
use
App\Repositories\Enums\ResponseCodeEnum
;
use
App\Repositories\Models\AdminUsers
;
use
App\Support\Traits\Helpers
;
use
Illuminate\Support\Facades\DB
;
class
RhawnOrdersService
{
use
Helpers
;
/**
* 获取订单详情
* @param $request
*/
public
function
getSorderDetail
(
$request
)
{
$params
=
$this
->
formatKeysfromArray
(
$request
->
all
(),
'toUnderScore'
);
if
(
!
isset
(
$params
[
'order_no'
])
||
empty
(
$params
[
'order_no'
])){
throw
new
BadQueryStringException
(
'订单编号错误'
,
500
);
}
$sOrder
=
app
(
RhawnSordersRepository
::
class
)
->
getSorderFromOrderNo
(
$params
[
'order_no'
]);
if
(
!
$sOrder
){
throw
new
\LogicException
(
'该订单编号不存在!'
,
500
);
}
//查询订单的详情
$soItems
=
app
(
RhawnSoitemsRepository
::
class
)
->
getSorderItemsDetailFromOrderId
(
$sOrder
->
so_id
);
$soItems
=
$soItems
->
toArray
();
$returnItem
=
[];
if
(
$soItems
){
foreach
(
$soItems
as
$item
){
$temp
=
[];
$temp
[
'b_cn_name'
]
=
$item
[
'b_cn_name'
];
$temp
[
'p_code'
]
=
$item
[
'p_code'
];
$temp
[
'c_cas'
]
=
$item
[
'c_cas'
];
$temp
[
'p_cn_name'
]
=
$item
[
'p_cn_name'
];
$temp
[
'si_price'
]
=
$item
[
'si_price'
];
$temp
[
'si_discount'
]
=
$item
[
'si_discount'
];
$temp
[
'si_p_tod'
]
=
$item
[
'si_p_tod'
];
$temp
[
'si_num'
]
=
$item
[
'si_num'
];
$temp
[
'si_amount'
]
=
$item
[
'si_amount'
];
$temp
[
'si_vamount'
]
=
$item
[
'si_vamount'
];
$temp
[
'si_note'
]
=
$item
[
'si_notes'
];
$temp
[
'si_num'
]
=
$item
[
'si_num'
];
$temp
[
'p_id'
]
=
$item
[
'p_id'
];
$temp
[
'si_id'
]
=
$item
[
'si_id'
];
$temp
[
'so_no'
]
=
$sOrder
->
so_no
;
if
(
$item
[
'si_if_cancel'
]
==
0
){
$returnItem
[]
=
$temp
;
}
}
}
return
$returnItem
;
}
/**
* 获取销售订单库存批次
* @param $request
*/
public
function
getSordersStock
(
$request
)
{
$params
=
$this
->
formatKeysfromArray
(
$request
->
all
(),
'toUnderScore'
);
$repository
=
app
(
RhawnSoitemsRepository
::
class
);
$result
=
$repository
->
getOrderItemsStockFromItemIds
(
$params
[
'order_item_id'
]);
$returnItemStock
=
[];
if
(
$result
&&
!
empty
(
$result
)){
foreach
(
$result
as
$res
){
$temp
=
[];
$temp
[
'dpd_num'
]
=
$res
[
'dpd_num'
];
$temp
[
'si_id'
]
=
$res
[
'si_id'
];
$temp
[
'pstk_id'
]
=
$res
[
'pstk_id'
];
$temp
[
'pstk_num'
]
=
$res
[
'pstk_num'
];
$temp
[
'pstk_no'
]
=
$res
[
'pstk_no'
];
$returnItemStock
[]
=
$temp
;
}
}
return
$returnItemStock
;
}
public
function
addSordersRefundTask
(
$request
)
{
$params
=
$this
->
formatKeysfromArray
(
$request
->
all
(),
'toUnderScore'
);
$sOrder
=
app
(
RhawnSordersRepository
::
class
)
->
getSorderFromOrderNo
(
$params
[
'order_no'
]);
if
(
!
$sOrder
){
throw
new
\LogicException
(
'该订单编号不存在!'
,
500
);
}
if
(
isset
(
$params
[
'task_id'
])
&&
!
empty
(
$params
[
'task_id'
])){
if
(
!
app
(
RhawnSorderRefundRepository
::
class
)
->
find
(
$params
[
'task_id'
])){
throw
new
\LogicException
(
'该任务不存在!'
,
500
);
}
}
if
(
$params
[
'transfer_pre'
]
==
'true'
){
$params
[
'transfer_pre'
]
=
1
;
}
else
{
$params
[
'transfer_pre'
]
=
0
;
}
//先查询库存信息
$repository
=
app
(
RhawnSoitemsRepository
::
class
);
$stockResult
=
$repository
->
getOrderItemsStockFromItemIds
(
$params
[
'item_id'
]);
if
(
empty
(
$stockResult
)
||
!
$stockResult
){
throw
new
\LogicException
(
'订单明细id不存在!'
,
500
);
}
// 验证库存和发货数量
if
(
!
empty
(
$params
[
'refund_nums'
])){
$pstk_ids
=
$refundNums
=
[];
foreach
(
explode
(
','
,
$params
[
'refund_nums'
])
as
$num
)
{
$pstkArr
=
explode
(
'|'
,
$num
);
$refundNums
[
$pstkArr
[
0
]]
=
$pstkArr
[
1
];
$pstk_ids
[]
=
$pstkArr
[
0
];
}
//分组查询发货数量
$dbConnect
=
DB
::
connection
(
'rhawn_mysql'
);
$dpdSum
=
$dbConnect
->
table
(
'dpdetail'
)
->
whereIn
(
'pstk_id'
,
$pstk_ids
)
->
where
(
'dpd_invoiced'
,
'='
,
0
)
->
groupBy
(
'pstk_id'
)
->
select
(
DB
::
raw
(
"sum(dpd_num) as num"
),)
->
get
();
if
(
!
$dpdSum
||
empty
(
$dpdSum
))
{
throw
new
\LogicException
(
'【'
.
implode
(
','
,
$pstk_ids
)
.
'】对应的配货单数据不存在'
,
500
);
}
if
(
count
(
$dpdSum
)
<
count
(
$refundNums
))
{
throw
new
\LogicException
(
'需要退货的配送单不存在或已开票'
,
500
);
}
collect
(
$dpdSum
)
->
map
(
function
(
$dpd
)
use
(
$refundNums
)
{
foreach
(
$refundNums
as
$num
)
{
if
(
$num
>
$dpd
)
{
throw
new
\LogicException
(
'退货数量大于购买数量'
,
500
);
}
}
});
}
return
app
(
RhawnSorderRefundRepository
::
class
)
->
addRefundTask
(
$params
);
}
/**
* 删除销售订单退货任务
* @param $request
* @return mixed
*/
public
function
delSorderRefundTask
(
$request
)
{
$params
=
$this
->
formatKeysfromArray
(
$request
->
all
(),
'toUnderScore'
);
if
(
isset
(
$params
[
'task_id'
])
&&
!
empty
(
$params
[
'task_id'
])){
if
(
!
app
(
RhawnSorderRefundRepository
::
class
)
->
find
(
$params
[
'task_id'
])){
throw
new
\LogicException
(
'该任务不存在!'
,
500
);
}
}
return
app
(
RhawnSorderRefundRepository
::
class
)
->
delRefundTask
(
$params
);
}
/**
* 获取订单退货任务
* @param $request
* @return array
*/
public
function
getSordersRefundTask
(
$request
)
{
$params
=
$this
->
formatKeysfromArray
(
$request
->
all
(),
'toUnderScore'
);
if
(
!
$params
[
'page_size'
]
||
$params
[
'page_size'
]
==
0
){
$params
[
'page_size'
]
=
10
;
}
$repostiroy
=
app
(
RhawnSorderRefundRepository
::
class
);
$repostiroy
->
pushCriteria
(
new
RhawnSorderRefundCriteria
(
$request
));
$tasks
=
$repostiroy
->
customPaginate
(
$params
[
'page_size'
]);
if
(
$tasks
){
$allItems
=
collect
(
$tasks
[
'data'
])
->
map
(
function
(
$item
){
$contentArr
=
[];
$execArr
=
json_decode
(
$item
[
'exec_content'
],
true
);
foreach
(
$execArr
as
$key
=>
$content
){
switch
(
$key
){
case
'order_no'
:
$contentArr
[]
=
'【销售订单号】:'
.
$content
;
break
;
case
'refund_nums'
:
if
(
!
empty
(
$content
)){
$nums
=
explode
(
','
,
$content
);
$subContentArr
=
[];
foreach
(
$nums
as
$k
=>
$num
){
$temp
=
explode
(
'|'
,
$num
);
$subContentArr
[]
=
'<br /> 【批号id】:'
.
$temp
[
0
];
$subContentArr
[]
=
'<br /> 【退货数量】:'
.
$temp
[
1
];
}
$contentArr
[]
=
'【现货退货数量】:'
.
implode
(
""
,
$subContentArr
);
break
;
}
else
{
$contentArr
[]
=
'【现货退货数量】:0'
;
break
;
}
case
'handle_fee'
:
$contentArr
[]
=
'【手续费费用】:'
.
$content
;
break
;
case
'item_id'
:
$contentArr
[]
=
'【销售订单明细项】:'
.
$content
;
break
;
case
'transfer_pre'
:
$content
=
$content
==
'1'
?
'是'
:
'否'
;
$contentArr
[]
=
'【是否转预存】:'
.
$content
;
break
;
case
'futures_num'
:
$contentArr
[]
=
'【期货退货数量】:'
.
$content
;
break
;
}
}
$user
=
AdminUsers
::
find
(
$item
[
'create_by'
]);
$item
[
'create_by'
]
=
$user
->
username
;
$item
[
'content_string'
]
=
implode
(
'<br />'
,
$contentArr
);
$item
=
array_merge
(
$item
,
$execArr
);
return
$item
;
});
$tasks
[
'data'
]
=
$allItems
->
toArray
();
$tasks
=
$this
->
formatKeysfromArray
(
$tasks
);
}
return
$tasks
;
}
/**
* 通过任务id获取销售订单任务详情
* @param $request
* @return array
*/
public
function
getRhawnSorderDetailByTaskId
(
$request
)
{
$params
=
$this
->
formatKeysfromArray
(
$request
->
all
(),
'toUnderScore'
);
$task
=
app
(
RhawnSorderRefundRepository
::
class
)
->
find
(
$params
[
'task_id'
]);
if
(
!
$task
){
throw
new
\LogicException
(
'任务不存在!'
,
500
);
}
$task
=
$task
->
toArray
();
$content
=
json_decode
(
$task
[
'exec_content'
],
true
);
$pstkNums
=
[];
if
(
!
empty
(
$content
[
'refund_nums'
])){
foreach
(
explode
(
','
,
$content
[
'refund_nums'
])
as
$num
){
$numArr
=
explode
(
'|'
,
$num
);
$pstkNums
[
$numArr
[
0
]]
=
$numArr
[
1
];
}
}
//获取销售订单item数据
$result
=
app
(
RhawnSoitemsRepository
::
class
)
->
getOrderItemsStockFromItemIds
(
$content
[
'item_id'
]);
$returnItemStock
=
[];
if
(
$result
&&
!
empty
(
$result
)){
foreach
(
$result
as
$res
){
$temp
=
[];
$temp
[
'dpd_num'
]
=
$res
[
'dpd_num'
];
$temp
[
'si_id'
]
=
$res
[
'si_id'
];
$temp
[
'pstk_id'
]
=
$res
[
'pstk_id'
];
$temp
[
'pstk_num'
]
=
$res
[
'pstk_num'
];
$temp
[
'pstk_no'
]
=
$res
[
'pstk_no'
];
$temp
[
'p_cn_name'
]
=
$res
[
'p_cn_name'
];
$temp
[
'refund_nums'
]
=
$pstkNums
[
$res
[
'pstk_id'
]];
$returnItemStock
[]
=
$temp
;
}
}
return
$returnItemStock
;
}
/**
* 手动执行脚本
* @param $request
*/
public
function
execSordersRefundTask
(
$request
)
{
$params
=
$this
->
formatKeysfromArray
(
$request
->
all
(),
'toUnderScore'
);
$orderRefund
=
app
(
RhawnSorderRefundRepository
::
class
)
->
find
(
$params
[
'task_id'
]);
$refundJob
=
(
new
RhawnSorderRefundJob
(
$orderRefund
->
toArray
()))
->
delay
(
100
)
->
onQueue
(
'slow'
);
app
(
'Illuminate\Contracts\Bus\Dispatcher'
)
->
dispatch
(
$refundJob
);
}
/**
* 处理退货逻辑
* @param $refundInfo
*/
public
function
sOrderRefund
(
$refundInfo
,
&
$note
)
{
$sOrder
=
app
(
RhawnSordersRepository
::
class
)
->
getSorderItemsFromOrderNo
(
$refundInfo
->
order_no
);
if
(
!
$sOrder
){
throw
new
\LogicException
(
'该订单号不存在!'
,
500
);
}
try
{
$dbConnect
=
DB
::
connection
(
'rhawn_mysql'
);
$dbConnect
->
beginTransaction
();
// 处理订单退货项
foreach
(
$sOrder
->
toArray
()
as
$orderitem
){
if
(
$refundInfo
->
item_id
==
$orderitem
[
'si_id'
])
{
// 先处理源数据
$currentPrice
=
floatval
(
$orderitem
[
'si_discount'
]);
$currentAmount
=
floatval
(
$orderitem
[
'si_amount'
]);
// 退货剩余数量
$numArr
=
!
empty
(
$refundInfo
->
refund_nums
)
?
explode
(
','
,
$refundInfo
->
refund_nums
)
:
''
;
$futuresNum
=
$refundInfo
->
futures_num
&&
$refundInfo
->
futures_num
>
0
?
$refundInfo
->
futures_num
:
0
;
// 预判断退货数量
if
(
!
empty
(
$numArr
))
{
$pstk_ids
=
[];
$refundNums
=
[];
foreach
(
$numArr
as
$num
)
{
$pstkArr
=
explode
(
'|'
,
$num
);
$refundNums
[
$pstkArr
[
0
]]
=
$pstkArr
[
1
];
$pstk_ids
[]
=
$pstkArr
[
0
];
}
//分组查询发货数量
$dpdSum
=
$dbConnect
->
table
(
'dpdetail'
)
->
whereIn
(
'pstk_id'
,
$pstk_ids
)
->
where
(
'dpd_invoiced'
,
'='
,
0
)
->
groupBy
(
'pstk_id'
)
->
select
(
DB
::
raw
(
"sum(dpd_num) as num"
),)
->
get
();
if
(
!
$dpdSum
||
empty
(
$dpdSum
))
{
throw
new
\LogicException
(
'【'
.
implode
(
','
,
$pstk_ids
)
.
'】对应的配货单数据不存在'
,
500
);
}
if
(
count
(
$dpdSum
)
<
count
(
$refundNums
))
{
throw
new
\LogicException
(
'需要退货的配送单不存在或已开票'
,
500
);
}
collect
(
$dpdSum
)
->
map
(
function
(
$dpd
)
use
(
$refundNums
)
{
foreach
(
$refundNums
as
$num
)
{
if
(
$num
>
$dpd
)
{
throw
new
\LogicException
(
'退货数量大于购买数量'
,
500
);
}
}
});
}
// 如果是期货,强行初始一个数组执行一次
if
(
$futuresNum
>
0
){
$refundNums
[
0
]
=
$futuresNum
;
}
if
(
!
empty
(
$refundNums
))
{
foreach
(
$refundNums
as
$pstk_id
=>
$num
)
{
$currentProcessNums
=
$num
;
// 如果有期货数量优先处理
if
(
$futuresNum
>
0
)
{
$currentProcessNums
=
$futuresNum
;
}
//修改item数据项
$service
=
app
(
RhawnSoitemsRepository
::
class
);
$soItem
=
$service
->
findWhere
([
'si_id'
=>
$orderitem
[
'si_id'
],
'si_if_cancel'
=>
0
]);
$soItem
=
current
(
$soItem
->
toArray
());
if
(
empty
(
$soItem
)
||
count
(
$soItem
)
==
0
)
{
throw
new
\LogicException
(
'购买项数据id:'
.
$orderitem
[
'si_id'
]
.
'数据不存在或已取消!'
,
500
);
}
// 判断有期货的时候退货数量是否大于soitem的数量
if
(
$futuresNum
>
0
&&
$futuresNum
>
$soItem
[
'si_assigned_num'
]){
throw
new
\LogicException
(
'期货退货数量大于已分配数量'
,
500
);
}
// 判断现货退货数量是否大于soitem的数量
if
(
$num
>
(
$soItem
[
'si_num'
]
-
$soItem
[
'si_assigned_num'
])){
throw
new
\LogicException
(
'现货退货数量大于已分配数量'
,
500
);
}
//更新原本数据
$updateArr
=
[];
$createArr
=
[];
$updatedItem
=
[];
//如果取消的是全部
if
((
$currentProcessNums
-
$orderitem
[
'si_num'
])
==
0
)
{
// 如果需要手续费
if
(
isset
(
$refundInfo
->
handle_fee
)
&&
$refundInfo
->
handle_fee
>
0
)
{
$createArr
=
$soItem
;
unset
(
$createArr
[
'si_id'
]);
$createArr
[
'si_num'
]
=
$orderitem
[
'si_num'
];
$createArr
[
'si_assigned_num'
]
=
$createArr
[
'si_num'
];
$createArr
[
'si_amount'
]
=
bcsub
(
$orderitem
[
'si_amount'
],
$refundInfo
->
handle_fee
,
2
);
$createArr
[
'si_discount'
]
=
bcdiv
(
$createArr
[
'si_amount'
],
$orderitem
[
'si_num'
],
2
);
$updateArr
[
'si_num'
]
=
$currentProcessNums
;
//$updateArr['si_assigned_num'] = $updateArr['si_num'];
$updateArr
[
'si_amount'
]
=
$refundInfo
->
handle_fee
;
$updateArr
[
'si_discount'
]
=
bcdiv
(
$updateArr
[
'si_amount'
],
$currentProcessNums
,
2
);
}
else
{
$updatedItem
[
'cancel_si_id'
]
=
$orderitem
[
'si_id'
];
}
}
// 部分退货
else
{
if
(
$futuresNum
>
0
)
{
$updateArr
[
'si_num'
]
=
$orderitem
[
'si_num'
]
-
$futuresNum
;
$updateArr
[
'si_assigned_num'
]
=
$orderitem
[
'si_assigned_num'
]
-
$futuresNum
;
}
else
{
$updateArr
[
'si_num'
]
=
bcsub
(
$orderitem
[
'si_num'
],
$currentProcessNums
);
// 如果数量只有1,且退货数量相等
//$updateArr['si_assigned_num'] = $updateArr['si_num'];
}
$updateArr
[
'si_amount'
]
=
bcmul
(
$orderitem
[
'si_discount'
],
$updateArr
[
'si_num'
],
2
);
if
(
isset
(
$refundInfo
->
handle_fee
)
&&
$refundInfo
->
handle_fee
>
0
)
{
$updateArr
[
'si_amount'
]
=
bcadd
(
$updateArr
[
'si_amount'
],
$refundInfo
->
handle_fee
,
2
);
}
$updateArr
[
'si_discount'
]
=
bcdiv
(
$updateArr
[
'si_amount'
],
$updateArr
[
'si_num'
],
2
);
// 新增
$createArr
=
$soItem
;
unset
(
$createArr
[
'si_id'
]);
$createArr
[
'si_num'
]
=
$currentProcessNums
;
if
(
isset
(
$refundInfo
->
handle_fee
)
&&
floatval
(
$refundInfo
->
handle_fee
)
>
0
)
{
$createArr
[
'si_amount'
]
=
abs
(
bcsub
(
$currentAmount
,
$updateArr
[
'si_amount'
],
2
));
$createArr
[
'si_discount'
]
=
bcdiv
(
$createArr
[
'si_amount'
],
$createArr
[
'si_num'
],
2
);
}
// 没有手续费的情况下
else
{
$createArr
[
'si_discount'
]
=
$soItem
[
'si_discount'
];
$createArr
[
'si_amount'
]
=
bcmul
(
$soItem
[
'si_discount'
],
$currentProcessNums
,
2
);
}
$createArr
[
'si_num'
]
=
$currentProcessNums
;
if
(
$futuresNum
>
0
)
{
$createArr
[
'si_assigned_num'
]
=
0
;
}
else
{
$createArr
[
'si_assigned_num'
]
=
$createArr
[
'si_num'
];
}
if
(
$createArr
[
'si_amount'
]
<
0
)
{
throw
new
\LogicException
(
'手续费异常,处理失败!'
,
500
);
}
}
if
(
!
empty
(
$updateArr
))
{
$update
=
$service
->
update
(
$updateArr
,
$soItem
[
'si_id'
]);
$updatedItem
[
'update'
]
=
$update
->
toArray
();
}
else
{
$updatedItem
[
'update'
]
=
$orderitem
;
}
//判断是否能除尽
if
(
!
empty
(
$updateArr
))
{
$amount
=
bcmul
(
$updateArr
[
'si_discount'
],
$updateArr
[
'si_num'
],
2
);
if
(
$updateArr
[
'si_amount'
]
!=
$amount
)
{
$note
[]
=
'si_id = '
.
$soItem
[
'si_id'
]
.
'的数据有除不尽的情况,请手工处理'
;
}
}
if
(
!
empty
(
$createArr
))
{
$newItem
=
$service
->
create
(
$createArr
);
$updatedItem
[
'create'
]
=
$newItem
->
toArray
();
// 如果是部分退货
if
(
$currentProcessNums
>
0
||
(
$currentProcessNums
==
0
&&
$refundInfo
->
handle_fee
>
0
))
{
$updatedItem
[
'cancel_si_id'
]
=
$updatedItem
[
'create'
][
'si_id'
];
}
}
else
{
$updatedItem
[
'create'
]
=
$soItem
;
$updatedItem
[
'cancel_si_id'
]
=
$updatedItem
[
'create'
][
'si_id'
];
}
$updatedItem
[
'total'
]
=
$currentAmount
;
// 如果没有期货数量,dpdetail只处理现货数量
if
(
$futuresNum
==
0
)
{
// 获取实际现货数量
$dpdDetail
=
$dbConnect
->
table
(
'dpdetail'
)
->
where
(
'si_id'
,
$orderitem
[
'si_id'
])
->
where
(
'pstk_id'
,
$pstk_id
)
->
get
()
->
first
();
//$dpdDetail = $dpdDetail->toArray();
if
(
$dpdDetail
)
{
// 更新当前记录
$dpUpdateArr
=
[];
$dpUpdateArr
[
'dpd_num'
]
=
$dpdDetail
->
dpd_num
-
$currentProcessNums
;
$dpUpdateArr
[
'dpd_amount'
]
=
bcmul
(
$updatedItem
[
'update'
][
'si_discount'
],
$dpUpdateArr
[
'dpd_num'
],
2
);
$dbConnect
->
table
(
'dpdetail'
)
->
where
(
'dpd_id'
,
$dpdDetail
->
dpd_id
)
->
update
(
$dpUpdateArr
);
// 如果是部分退货
if
(
$currentProcessNums
<
$dpdDetail
->
dpd_num
)
{
//添加新的取消记录
$dpCreateArr
=
$dpdDetail
;
unset
(
$dpCreateArr
->
dpd_id
);
$dpCreateArr
->
dpd_num
=
$currentProcessNums
;
$dpCreateArr
->
dpd_amount
=
bcmul
(
$updatedItem
[
'create'
][
'si_discount'
],
$currentProcessNums
,
2
);
$dpCreateArr
->
si_id
=
$updatedItem
[
'create'
][
'si_id'
];
$dpId
=
$dbConnect
->
table
(
'dpdetail'
)
->
insertGetId
((
array
)
$dpCreateArr
);
}
}
}
//预存款和退款处理
$this
->
cancelAndTransPrePay
(
$dbConnect
,
$updatedItem
[
'cancel_si_id'
],
$refundInfo
);
if
(
$currentProcessNums
>
0
)
{
if
(
$futuresNum
>
0
)
{
$futuresNum
=
0
;
}
$currentProcessNums
=
0
;
}
else
{
break
;
}
}
}
}
}
$dbConnect
->
commit
();
}
catch
(
\Exception
$e
){
$dbConnect
->
rollBack
();
throw
$e
;
}
}
/**
* 取消并转预存
* @param $db
* @param $si_id
*/
protected
function
cancelAndTransPrePay
(
$db
,
$si_id
,
$refundInfo
)
{
//获取订单明细项
$sOrderItem
=
app
(
RhawnSoitemsRepository
::
class
)
->
getSorderItemFromItemId
(
$si_id
);
$sOrderItem
=
current
(
$sOrderItem
->
toArray
());
if
(
$sOrderItem
[
'si_if_cancel'
]
==
1
){
throw
new
\LogicException
(
'已经取消过了,请不要重复操作!'
,
500
);
}
$sOrderDetail
=
app
(
RhawnSordersRepository
::
class
)
->
getSorderDetailFromOrderId
(
$sOrderItem
[
'so_id'
]);
if
(
!
$sOrderDetail
){
throw
new
\LogicException
(
'数据不存在!'
,
500
);
}
$sOrderDetail
[
'express'
]
=
0
;
foreach
(
$sOrderDetail
[
'items'
]
as
$k
=>
$v
){
if
(
$v
->
p_id
==
0
){
$sOrderDetail
[
'express'
]
=
$v
->
si_amount
;
unset
(
$sOrderDetail
[
'items'
][
$k
]);
}
}
/*if($sOrderDetail['so_pay_status'] == 0){
throw new \LogicException('未完成付款的订单不能取消转预存款!',500);
}*/
if
(
$sOrderDetail
[
'so_pay_status'
]
==
1
){
throw
new
\LogicException
(
'部分付款的订单不能取消明细,请联系管理员!'
,
500
);
}
if
(
$sOrderItem
[
'pi_id'
]
>
0
){
//判断对应的采购订单明细是否已经取消
$pOrderItems
=
$db
->
table
(
'poitems'
)
->
join
(
'porders'
,
'poitems.po_id'
,
'porders.po_id'
)
->
where
(
'poitems.pi_id'
,
$sOrderItem
[
'pi_id'
])
->
first
();
if
(
!
$pOrderItems
){
throw
new
\LogicException
(
'查询采购订单明细 ['
.
$sOrderItem
[
'pi_id'
]
.
'] 数据不存在!'
,
500
);
}
if
(
$pOrderItems
->
pi_status
!=
3
&&
$refundInfo
->
cancel_porder
==
1
){
throw
new
\LogicException
(
'请先取消采购订单:'
.
$pOrderItems
->
po_no
.
'中的对应采购订单明细!'
);
}
}
if
(
$sOrderItem
[
'si_assigned_num'
]
>
0
){
$dp_status
=
array
();
$invoiced_amount
=
0
;
$dpdetailInfos
=
$db
->
table
(
'dpdetail'
)
->
join
(
'dispatch'
,
'dpdetail.dp_id'
,
'dispatch.dp_id'
)
->
where
(
'dpdetail.si_id'
,
$sOrderItem
[
'si_id'
])
->
get
();
if
(
!
$dpdetailInfos
){
throw
new
\LogicException
(
'dpdetail ['
.
$sOrderItem
[
'si_id'
]
.
'] 配货单数据不存在!'
,
500
);
}
foreach
(
$dpdetailInfos
as
$k
=>
$v
){
$dp_status
[]
=
$v
->
dp_status
;
$invoiced_amount
+=
$v
->
dpd_invoiced
;
}
if
(
$invoiced_amount
!=
0
){
throw
new
\LogicException
(
'已经开过发票,不能取消!'
,
500
);
}
$dp_status
=
array_unique
(
$dp_status
);
if
(
in_array
(
'0'
,
$dp_status
)
||
in_array
(
'1'
,
$dp_status
)){
throw
new
\LogicException
(
'请物流部配合处理至已发货状态,再做取消操作!'
,
500
);
}
}
// 具体处理退货并转预存
$si_cancel_time
=
0
;
$siAmountTotal
=
$db
->
table
(
'soitems'
)
->
where
(
'so_id'
,
$sOrderItem
[
'so_id'
])
->
where
(
'si_id'
,
'<>'
,
$si_id
)
->
where
(
'si_if_cancel'
,
0
)
->
sum
(
'si_amount'
);
$siAmountTotalPid
=
$db
->
table
(
'soitems'
)
->
where
(
'so_id'
,
$sOrderItem
[
'so_id'
])
->
where
(
'si_id'
,
'<>'
,
$si_id
)
->
where
(
'si_if_cancel'
,
0
)
->
where
(
'p_id'
,
'>'
,
0
)
->
sum
(
'si_amount'
);
$soItem
=
app
(
RhawnSoitemsRepository
::
class
)
->
find
(
$si_id
);
if
(
$soItem
){
if
(
$soItem
[
'si_assigned_num'
]){
$dp
=
$db
->
table
(
'dpdetail'
)
->
where
(
'si_id'
,
$si_id
)
->
get
();
$dp
=
$dp
->
toArray
();
foreach
(
$dp
as
$k
=>
$v
){
if
(
$v
->
dp_id
==
0
&&
$v
->
stk_id
>
0
){
//清除已配货记录
$stock
=
$db
->
table
(
'stock'
)
->
where
(
'stk_id'
,
$v
[
'stk_id'
])
->
get
();
$stock
=
current
(
$stock
->
toArray
());
$stock_data
=
array
();
$stock_data
[
'stk_lock_num'
]
=
$stock
->
stk_lock_num
-
$v
->
dpd_num
;
if
(
$stock_data
[
'stk_lock_num'
]
<
0
){
$stock_data
[
'stk_lock_num'
]
=
0
;
}
$db
->
table
(
'stock'
)
->
where
(
'stk_id'
,
$v
->
stk_id
)
->
update
(
$stock_data
);
$db
->
table
(
'dpdetail'
)
->
delete
(
$v
->
dpd_id
);
$si_assigned_num
=
$soItem
[
'si_assigned_num'
]
-
$v
->
dpd_num
;
app
(
RhawnSoitemsRepository
::
class
)
->
update
([
'si_patch_status'
=>
'0'
,
'si_assigned_num'
=>
$si_assigned_num
],
$si_id
);
}
}
}
}
$customer
=
$db
->
table
(
'customers'
)
->
where
(
'cus_id'
,
$sOrderDetail
[
'cus_id'
])
->
first
();
//判断是否是最后一条非运费明细
$note
=
$sOrderDetail
[
'so_no'
]
.
'取消明细:'
.
$soItem
[
'p_code'
];
if
(
$siAmountTotalPid
>
0
){
$refund_amount
=
$soItem
[
'si_amount'
];
if
(
$sOrderDetail
[
'so_pay_status'
]
>
0
){
// 退款
if
(
$refundInfo
->
transfer_pre
==
0
){
$refund_data
=
[];
$refund_data
[
'r_company'
]
=
$customer
->
cus_company
;
$refund_data
[
'r_amount'
]
=
$refund_amount
;
$refund_data
[
'r_ctime'
]
=
time
();
$refund_data
[
'r_note'
]
=
$note
;
$refund_data
[
'r_bank_account'
]
=
''
;
$refund_data
[
'r_confirm_note'
]
=
''
;
$db
->
table
(
'refund'
)
->
insertGetId
(
$refund_data
);
}
else
{
$prepaylog_data
=
[];
$prepaylog_data
[
'cus_id'
]
=
$sOrderDetail
[
'cus_id'
];
$prepaylog_data
[
'prepaylog_amount'
]
=
$refund_amount
;
$prepaylog_data
[
'prepaylog_note'
]
=
$note
;
$prepaylog_data
[
'prepaylog_date'
]
=
time
();
$prepaylog_data
[
'prepaylog_time'
]
=
time
();
$prepaylog_data
[
'prepaylog_operator'
]
=
auth
()
->
user
()
->
id
;
$prepaylog_data
[
'prepaylog_unpay'
]
=
0
;
$prepaylog_data
[
'prepaylog_if_abnormal'
]
=
0
;
$prepaylog_data
[
'prepaylog_if_deposit'
]
=
0
;
$prepaylog_data
[
'prepaylog_if_deal'
]
=
0
;
$prepayId
=
$db
->
table
(
'prepaylog'
)
->
insertGetId
(
$prepaylog_data
);
$sum
=
$db
->
table
(
'prepaylog'
)
->
where
(
'cus_id'
,
$sOrderDetail
[
'cus_id'
])
->
sum
(
'prepaylog_amount'
);
$db
->
table
(
'customers'
)
->
where
(
'cus_id'
,
$sOrderDetail
[
'cus_id'
])
->
update
([
'cus_prepay'
=>
$sum
]);
$si_cancel_time
=
time
();
}
}
app
(
RhawnSordersRepository
::
class
)
->
update
([
'so_total'
=>
$siAmountTotal
],
$sOrderItem
[
'so_id'
]);
app
(
RhawnSoitemsRepository
::
class
)
->
update
([
'si_if_cancel'
=>
'1'
,
'si_cancel_time'
=>
$si_cancel_time
],
$si_id
);
}
else
{
if
(
$sOrderDetail
[
'so_pay_status'
]
>
0
){
//得到退款金额
$sOrder
=
app
(
BhSordersRepository
::
class
)
->
find
(
$sOrderItem
[
'so_id'
]);
if
(
!
$sOrder
)
{
throw
new
\LogicException
(
'数据不存在!'
,
500
);
}
$sOrder
=
$sOrder
->
toArray
();
$refund_amount
=
$sOrder
[
'so_total'
];
if
(
$refundInfo
->
transfer_pre
==
0
){
$refund_data
=
array
();
$refund_data
[
'r_company'
]
=
$customer
->
cus_company
;
$refund_data
[
'r_amount'
]
=
$refund_amount
;
$refund_data
[
'r_ctime'
]
=
time
();
$refund_data
[
'r_note'
]
=
$note
;
$refund_data
[
'r_bank_account'
]
=
''
;
$refund_data
[
'r_confirm_note'
]
=
''
;
$db
->
table
(
'refund'
)
->
insertGetId
(
$refund_data
);
}
else
{
$prepaylog_data
=
[];
$prepaylog_data
[
'cus_id'
]
=
$sOrderDetail
[
'cus_id'
];
$prepaylog_data
[
'prepaylog_amount'
]
=
$refund_amount
;
$prepaylog_data
[
'prepaylog_note'
]
=
$note
;
$prepaylog_data
[
'prepaylog_date'
]
=
time
();
$prepaylog_data
[
'prepaylog_time'
]
=
time
();
$prepaylog_data
[
'prepaylog_operator'
]
=
auth
()
->
user
()
->
id
;
$prepaylog_data
[
'prepaylog_unpay'
]
=
0
;
$prepaylog_data
[
'prepaylog_if_abnormal'
]
=
0
;
$prepaylog_data
[
'prepaylog_if_deposit'
]
=
0
;
$prepaylog_data
[
'prepaylog_if_deal'
]
=
0
;
$prepayId
=
$db
->
table
(
'prepaylog'
)
->
insertGetId
(
$prepaylog_data
);
$sum
=
$db
->
table
(
'prepaylog'
)
->
where
(
'cus_id'
,
$sOrderDetail
[
'cus_id'
])
->
sum
(
'prepaylog_amount'
);
$db
->
table
(
'customers'
)
->
where
(
'cus_id'
,
$sOrderDetail
[
'cus_id'
])
->
update
([
'cus_prepay'
=>
$sum
]);
$si_cancel_time
=
time
();
}
}
app
(
RhawnSordersRepository
::
class
)
->
update
([
'so_review_status'
=>
'3'
,
'so_total'
=>
'0'
],
$sOrderItem
[
'so_id'
]);
app
(
RhawnSoitemsRepository
::
class
)
->
update
([
'si_if_cancel'
=>
'1'
,
'si_cancel_time'
=>
$si_cancel_time
],
$si_id
);
}
$db
->
table
(
'logs'
)
->
insertGetId
(
[
'l_obj'
=>
$sOrderItem
[
'so_id'
],
'l_type'
=>
'sorders_mng'
,
'l_op'
=>
'cancelsi'
,
'l_op_name'
=>
'取消明细'
,
'l_note'
=>
$note
,
'l_timestamp'
=>
time
(),
'u_id'
=>
auth
()
->
user
()
->
id
]
);
return
true
;
}
public
function
getRhawnSorderTaskLog
(
$request
)
{
$params
=
$this
->
formatKeysfromArray
(
$request
->
all
(),
'toUnderScore'
);
if
(
!
isset
(
$params
[
'type'
])
||
empty
(
$params
[
'type'
])){
$params
[
'type'
]
=
'rhaw_nsorder_refund'
;
}
$taskService
=
app
(
ToolsTaskRepository
::
class
);
$taskLogsList
=
$taskService
->
getTaskLogsFromType
(
$params
[
'type'
],
$params
[
'task_id'
]);
return
$taskLogsList
;
}
}
server/app/Support/Traits/InitMenusAndPermission.php
0 → 100644
View file @
36251951
<?php
namespace
App\Support\Traits
;
use
App\Repositories\Contracts\MenusRepository
;
use
App\Repositories\Models\AdminUsers
;
use
App\Services\RoleAndPermissionsService
;
use
App\Repositories\Models\Menus
;
use
Illuminate\Support\Str
;
use
Spatie\Permission\Models\Permission
;
trait
InitMenusAndPermission
{
protected
$menusRepository
=
null
;
public
function
__construct
(
MenusRepository
$menusRepository
)
{
$this
->
menusRepository
=
$menusRepository
;
}
protected
function
initMenu
(
$menus
)
{
$menuModel
=
app
(
Menus
::
class
);
foreach
(
$menus
as
$menu
){
$parentMenu
=
$menuModel
->
where
(
'menu_name'
,
$menu
[
'parent_id'
])
->
first
();
if
(
!
$parentMenu
){
throw
new
\LogicException
(
'上级菜单不存在!'
,
500
);
}
if
(
'button'
==
$menu
[
'menu_type'
]){
$permission
=
Permission
::
query
()
->
where
([
'menu_id'
=>
0
,
'sys_default'
=>
1
,
'guard_name'
=>
config
(
'auth.defaults.guard'
),
'action'
=>
$menu
[
'action'
]])
->
first
();
if
(
!
$permission
){
throw
new
\LogicException
(
'按钮动作不存在!'
,
500
);
}
}
$filterParams
=
[];
collect
(
$this
->
menusRepository
->
rules
[
'create'
])
->
map
(
function
(
$rule
,
$key
)
use
(
$menu
,
&
$filterParams
){
if
(
isset
(
$menu
[
$key
])
&&
!
empty
(
$menu
[
$key
])){
$filterParams
[
$key
]
=
$menu
[
$key
];
}
else
{
$filterParams
[
$key
]
=
''
;
}
});
$filterParams
[
'parent_id'
]
=
$parentMenu
[
'id'
];
$filterParams
[
'menu_icon'
]
=
$menu
[
'menu_icon'
];
$filterParams
[
'component'
]
=
$menu
[
'component'
];
$filterParams
[
'created_by'
]
=
1
;
$filterParams
[
'status'
]
=
intval
(
$menu
[
'status'
]);
$result
=
$this
->
menusRepository
->
create
(
$filterParams
);
if
(
$result
){
$permission
=
[];
$permission
[
'name'
]
=
$result
[
'menu_name'
];
$permission
[
'menu_id'
]
=
$result
[
'id'
];
if
(
isset
(
$menu
[
'menu_type'
])
&&
!
empty
(
$menu
[
'menu_type'
])
&&
'button'
==
$menu
[
'menu_type'
]){
$permission
[
'action'
]
=
$menu
[
'menu_name'
];
$permission
[
'permission_type'
]
=
'button'
;
}
else
{
$permission
[
'permission_type'
]
=
'menu'
;
$permission
[
'action'
]
=
$menu
[
'menu_name'
]
.
'_list'
;
}
$permission
[
'sys_default'
]
=
0
;
$permission
[
'remark'
]
=
$result
[
'menu_name'
]
.
'的相关权限'
;
$permission
[
'guard_name'
]
=
config
(
'auth.defaults.guard'
);
//增加对应的按钮权限
$permissionResult
=
Permission
::
create
(
$permission
);
if
(
$permissionResult
){
$user
=
app
(
AdminUsers
::
class
)
->
where
(
'id'
,
1
)
->
get
()
->
first
();
app
(
RoleAndPermissionsService
::
class
)
->
assignRoleAndPermissionToUser
(
$permissionResult
,
$user
);
}
}
}
}
}
server/config/database.php
View file @
36251951
...
@@ -76,6 +76,21 @@ return [
...
@@ -76,6 +76,21 @@ return [
'engine'
=>
env
(
'BH_DB_ENGINE'
,
null
),
'engine'
=>
env
(
'BH_DB_ENGINE'
,
null
),
'timezone'
=>
env
(
'BH_DB_TIMEZONE'
,
'+00:00'
),
'timezone'
=>
env
(
'BH_DB_TIMEZONE'
,
'+00:00'
),
],
],
'rhawn_mysql'
=>
[
'driver'
=>
'mysql'
,
'host'
=>
env
(
'RHAWN_DB_HOST'
,
'127.0.0.1'
),
'port'
=>
env
(
'RHAWN_DB_PORT'
,
3306
),
'database'
=>
env
(
'RHAWN_DB_DATABASE'
,
'forge'
),
'username'
=>
env
(
'RHAWN_DB_USERNAME'
,
'forge'
),
'password'
=>
env
(
'RHAWN_DB_PASSWORD'
,
''
),
'unix_socket'
=>
env
(
'RHAWN_DB_SOCKET'
,
''
),
'charset'
=>
env
(
'RHAWN_DB_CHARSET'
,
'utf8mb4'
),
'collation'
=>
env
(
'RHAWN_DB_COLLATION'
,
'utf8mb4_unicode_ci'
),
'prefix'
=>
env
(
'RHAWN_DB_PREFIX'
,
''
),
'strict'
=>
env
(
'RHAWN_DB_STRICT_MODE'
,
true
),
'engine'
=>
env
(
'RHAWN_DB_ENGINE'
,
null
),
'timezone'
=>
env
(
'RHAWN_DB_TIMEZONE'
,
'+00:00'
),
],
'pgsql'
=>
[
'pgsql'
=>
[
'driver'
=>
'pgsql'
,
'driver'
=>
'pgsql'
,
...
...
server/database/seeds/local/RhSalesOrderRefundMenuSeeder.php
0 → 100644
View file @
36251951
<?php
use
App\Support\Traits\InitMenusAndPermission
;
use
Illuminate\Database\Seeder
;
use
Illuminate\Support\Facades\DB
;
class
RhSalesOrderRefundMenuSeeder
extends
Seeder
{
use
InitMenusAndPermission
;
public
function
run
()
{
//$this->command->getOutput()->info('正在初始化菜单数据中.');
try
{
DB
::
beginTransaction
();
// 初始化菜单及权限
$menus
=
[
[
'menu_name'
=>
'rhawn_sorder_refund'
,
'title'
=>
'罗恩销售订单退货'
,
'menu_path'
=>
'/tools/rhawn-sorder-refund'
,
'parent_id'
=>
'tools'
,
'menu_type'
=>
'page'
,
'menu_icon'
=>
'ios-laptop'
,
'component'
=>
'tools/rhawn/sorders-refund'
,
'status'
=>
1
,
'is_show'
=>
1
,
'sys_default'
=>
1
,
'sort'
=>
1.0
,
'created_by'
=>
0
,
'created_at'
=>
''
,
'updated_at'
=>
''
,
'action'
=>
''
,
],[
'menu_name'
=>
'rhawn_sorder_refund_add'
,
'title'
=>
'添加任务'
,
'menu_path'
=>
'#'
,
'parent_id'
=>
'rhawn_sorder_refund'
,
'menu_type'
=>
'button'
,
'menu_icon'
=>
'#'
,
'component'
=>
'#'
,
'status'
=>
1
,
'is_show'
=>
1
,
'sys_default'
=>
1
,
'sort'
=>
1.0
,
'created_by'
=>
0
,
'created_at'
=>
''
,
'updated_at'
=>
''
,
'action'
=>
'add'
,
],[
'menu_name'
=>
'rhawn_sorder_refund_edit'
,
'title'
=>
'编辑任务'
,
'menu_path'
=>
'#'
,
'parent_id'
=>
'rhawn_sorder_refund'
,
'menu_type'
=>
'button'
,
'menu_icon'
=>
'#'
,
'component'
=>
'#'
,
'status'
=>
1
,
'is_show'
=>
1
,
'sys_default'
=>
1
,
'sort'
=>
1.0
,
'created_by'
=>
0
,
'created_at'
=>
''
,
'updated_at'
=>
''
,
'action'
=>
'edit'
,
],[
'menu_name'
=>
'rhawn_sorder_refund_delete'
,
'title'
=>
'删除任务'
,
'menu_path'
=>
'#'
,
'parent_id'
=>
'rhawn_sorder_refund'
,
'menu_type'
=>
'button'
,
'menu_icon'
=>
'#'
,
'component'
=>
'#'
,
'status'
=>
1
,
'is_show'
=>
1
,
'sys_default'
=>
1
,
'sort'
=>
1.0
,
'created_by'
=>
0
,
'created_at'
=>
''
,
'updated_at'
=>
''
,
'action'
=>
'delete'
,
],[
'menu_name'
=>
'rhawn_sorder_refund_execute'
,
'title'
=>
'执行任务'
,
'menu_path'
=>
'#'
,
'parent_id'
=>
'rhawn_sorder_refund'
,
'menu_type'
=>
'button'
,
'menu_icon'
=>
'#'
,
'component'
=>
'#'
,
'status'
=>
1
,
'is_show'
=>
1
,
'sys_default'
=>
1
,
'sort'
=>
1.0
,
'created_by'
=>
0
,
'created_at'
=>
''
,
'updated_at'
=>
''
,
'action'
=>
'other'
,
],
];
$this
->
initMenu
(
$menus
);
DB
::
commit
();
$this
->
command
->
getOutput
()
->
info
(
'菜单数据初始化成功.'
);
}
catch
(
Exception
$e
){
$this
->
command
->
getOutput
()
->
error
(
'初始化菜单失败,原因:'
.
$e
->
getMessage
());
DB
::
rollback
();
}
}
}
server/routes/api/tools.php
View file @
36251951
...
@@ -29,6 +29,17 @@ $api->version('v1', function($api) {
...
@@ -29,6 +29,17 @@ $api->version('v1', function($api) {
$api
->
post
(
'/adminapi/tools/bh/delSorderRefundTask'
,
[
'permission'
=>
'tools.bh.order.search'
,
'uses'
=>
'BhOrdersController@delSorderRefundTask'
]);
$api
->
post
(
'/adminapi/tools/bh/delSorderRefundTask'
,
[
'permission'
=>
'tools.bh.order.search'
,
'uses'
=>
'BhOrdersController@delSorderRefundTask'
]);
$api
->
post
(
'/adminapi/tools/bh/getSorderDetailByTaskId'
,
[
'permission'
=>
'tools.bh.order.search'
,
'uses'
=>
'BhOrdersController@getSorderDetailByTaskId'
]);
$api
->
post
(
'/adminapi/tools/bh/getSorderDetailByTaskId'
,
[
'permission'
=>
'tools.bh.order.search'
,
'uses'
=>
'BhOrdersController@getSorderDetailByTaskId'
]);
// 罗恩销售订单
$api
->
post
(
'/adminapi/tools/rhawn/addSorderRefundTask'
,
[
'permission'
=>
'tools.rhawn.order.add'
,
'uses'
=>
'RhawnOrdersController@addSorderRefundTask'
]);
$api
->
post
(
'/adminapi/tools/rhawn/editSorderRefundTask'
,
[
'permission'
=>
'tools.rhawn.order.add'
,
'uses'
=>
'RhawnOrdersController@editSorderRefundTask'
]);
$api
->
post
(
'/adminapi/tools/rhawn/getSordersDetail'
,
[
'permission'
=>
'tools.rhawn.order.search'
,
'uses'
=>
'RhawnOrdersController@getSordersDetail'
]);
$api
->
get
(
'/adminapi/tools/rhawn/getRhawnSordersStock'
,
[
'permission'
=>
'tools.rhawn.order.search'
,
'uses'
=>
'RhawnOrdersController@getRhawnSordersStock'
]);
$api
->
get
(
'/adminapi/tools/rhawn/getSorderRefundTask'
,
[
'permission'
=>
'tools.rhawn.order.search'
,
'uses'
=>
'RhawnOrdersController@getSorderRefundTaskToPage'
]);
$api
->
post
(
'/adminapi/tools/rhawn/execRhawnSorderRefundTask'
,
[
'permission'
=>
'tools.rhawn.order.search'
,
'uses'
=>
'RhawnOrdersController@execRhawnSorderRefundTask'
]);
$api
->
get
(
'/adminapi/tools/rhawn/getSorderRefundTaskLogs'
,
[
'permission'
=>
'tools.rhawn.order.search'
,
'uses'
=>
'RhawnOrdersController@getSorderRefundTaskLogsToPage'
]);
$api
->
post
(
'/adminapi/tools/rhawn/delSorderRefundTask'
,
[
'permission'
=>
'tools.rhawn.order.search'
,
'uses'
=>
'RhawnOrdersController@delSorderRefundTask'
]);
$api
->
post
(
'/adminapi/tools/rhawn/getSorderDetailByTaskId'
,
[
'permission'
=>
'tools.rhawn.order.search'
,
'uses'
=>
'RhawnOrdersController@getSorderDetailByTaskId'
]);
});
});
});
});
...
...
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