Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
Z
zptz-sass-kelaidian
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
李大见
zptz-sass-kelaidian
Commits
3d00d75e
提交
3d00d75e
authored
9月 14, 2024
作者:
窦斌
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'master' of
http://gitlab.bluearp.com/ldj/zptz-sass-kelaidian
上级
5edf03f1
f8e170f6
隐藏空白字符变更
内嵌
并排
正在显示
8 个修改的文件
包含
77 行增加
和
1214 行删除
+77
-1214
StatementsListController.php
...tp/Controllers/Api/MobileWeb/StatementsListController.php
+5
-67
TipsController.php
app/Http/Controllers/DatasBase/TipsController.php
+2
-2
PayController.php
app/Http/Controllers/Service/PayController.php
+11
-9
StatementsListValidator.php
...ests/Validators/Api/MobileWeb/StatementsListValidator.php
+3
-30
StatementsListService.php
app/Services/Api/MobileWeb/StatementsListService.php
+47
-1080
OrderDeductionFeeService.php
app/Services/OrderDeductionFeeService.php
+1
-1
OrderService.php
app/Services/OrderService.php
+6
-25
api.php
routes/api.php
+2
-0
没有找到文件。
app/Http/Controllers/Api/MobileWeb/StatementsListController.php
浏览文件 @
3d00d75e
...
...
@@ -47,85 +47,23 @@ class StatementsListController extends Controller
* @param Request $request [description]
* @return [type] [description]
*/
public
function
handle_ive
(
Request
$request
)
{
public
function
businessFirm
(
Request
$request
)
{
// 验证数据
$error_message
=
$this
->
dataValidator
->
handle_ive
Validator
(
$request
->
all
());
$error_message
=
$this
->
dataValidator
->
businessFirm
Validator
(
$request
->
all
());
if
(
$error_message
)
{
return
response
()
->
json
([
'ErrorCode'
=>
ErrorInc
::
INVALID_PARAM
,
'ErrorMessage'
=>
$error_message
->
first
(),
'Data'
=>
[
$error_message
]]);
}
$data
=
$request
->
all
();
$data
[
'ip'
]
=
$request
->
ip
();
$return_data
=
AftersaleOrderService
::
handle_ive
(
$data
);
$return_data
=
StatementsListService
::
businessFirm
(
$data
);
return
response
()
->
json
(
$return_data
);
}
/**
* 日常反馈
* @authors ldj
* @email 909490343@qq.com
* @date 2024-09-12
* @param Request $request [description]
* @return [type] [description]
*/
public
function
dailyFeedback
(
Request
$request
)
{
// 验证数据
$error_message
=
$this
->
dataValidator
->
dailyFeedbackValidator
(
$request
->
all
());
if
(
$error_message
)
{
return
response
()
->
json
([
'ErrorCode'
=>
ErrorInc
::
INVALID_PARAM
,
'ErrorMessage'
=>
$error_message
->
first
(),
'Data'
=>
[
$error_message
]]);
}
$data
=
$request
->
all
();
$data
[
'ip'
]
=
$request
->
ip
();
$return_data
=
AftersaleOrderService
::
dailyFeedback
(
$data
);
return
response
()
->
json
(
$return_data
);
}
/**
* 申请完成
* @authors ldj
* @email 909490343@qq.com
* @date 2024-09-12
* @param Request $request [description]
* @return [type] [description]
*/
public
function
quality
(
Request
$request
)
{
// 验证数据
$error_message
=
$this
->
dataValidator
->
dailyFeedbackValidator
(
$request
->
all
());
if
(
$error_message
)
{
return
response
()
->
json
([
'ErrorCode'
=>
ErrorInc
::
INVALID_PARAM
,
'ErrorMessage'
=>
$error_message
->
first
(),
'Data'
=>
[
$error_message
]]);
}
$data
=
$request
->
all
();
$data
[
'ip'
]
=
$request
->
ip
();
$return_data
=
AftersaleOrderService
::
quality
(
$data
);
return
response
()
->
json
(
$return_data
);
}
/**
* 上传图片
* @authors ldj
* @email 909490343@qq.com
* @date 2024-09-12
* @param Request $request [description]
*/
public
function
upload
(
Request
$request
)
{
$session
=
$request
[
'session'
];
// if (empty($request['file'])) {
// return response()->json(['ErrorCode' => 2, 'ErrorMessage' => '请上传文件', 'Data' => []]);
// }
$request
[
'path'
]
=
'./afterSale/'
.
date
(
'Ym'
);
$return_data
=
DealPicService
::
upload
(
$request
);
if
(
$return_data
[
'code'
]
==
200
)
{
return
response
()
->
json
([
'ErrorCode'
=>
1
,
'ErrorMessage'
=>
'上传成功'
,
'Data'
=>
$return_data
[
'data'
]]);
}
else
{
return
response
()
->
json
([
'ErrorCode'
=>
2
,
'ErrorMessage'
=>
$return_data
[
'msg'
],
'Data'
=>
''
]);
}
}
/**
* 详情
* @authors ldj
* @email 909490343@qq.com
* @date 2024-09-1
2
* @date 2024-09-1
3
* @param Request $request [description]
* @return [type] [description]
*/
...
...
@@ -137,7 +75,7 @@ class StatementsListController extends Controller
}
$data
=
$request
->
all
();
$data
[
'ip'
]
=
$request
->
ip
();
$return_data
=
AftersaleOrder
Service
::
info
(
$data
);
$return_data
=
StatementsList
Service
::
info
(
$data
);
return
response
()
->
json
(
$return_data
);
}
}
app/Http/Controllers/DatasBase/TipsController.php
浏览文件 @
3d00d75e
...
...
@@ -24,9 +24,9 @@ class TipsController extends BaseController
* @date 2021/9/10
*/
public
function
index
(
Request
$request
){
if
(
$
admin_pt_id
=
$request
->
get
(
'session_token'
)[
'admin_groupnew'
]
==
2
){
if
(
$
request
->
get
(
'session_token'
)[
'admin_groupnew'
]
==
2
||
$request
->
get
(
'session_token'
)[
'admin_groupnew'
]
==
3
){
$orderList
=
OrderList
::
where
(
'stauas'
,
20
)
->
where
(
'ser_id'
,
$request
->
get
(
'session_token'
)[
'id'
])
->
get
();
if
(
!
empty
(
$orderList
)
)
{
if
(
count
(
$orderList
)
>
0
)
{
$list
[
0
][
'msg'
]
=
"您有新工单未领取"
;
$list
[
0
][
'count'
]
=
count
(
$orderList
);
$list
[
0
][
'orderList'
]
=
$orderList
;
...
...
app/Http/Controllers/Service/PayController.php
浏览文件 @
3d00d75e
...
...
@@ -100,8 +100,18 @@ class PayController extends BaseController
if
(
$v
[
'reo_type'
]
==
1
){
$list
[
$k
][
'reo_type_name'
]
=
"充值"
;
if
(
$v
[
'reo_pay_way'
]
==
1
){
$list
[
$k
][
'reo_pay_way_name'
]
=
"微信"
;
}
elseif
(
$v
[
'reo_pay_way'
]
==
2
){
$list
[
$k
][
'reo_pay_way_name'
]
=
"支付宝"
;
}
elseif
(
$v
[
'reo_pay_way'
]
==
3
){
$list
[
$k
][
'reo_pay_way_name'
]
=
"线下打款"
;
}
else
{
$list
[
$k
][
'reo_pay_way_name'
]
=
"--"
;
}
}
elseif
(
$v
[
'reo_type'
]
==
2
){
$list
[
$k
][
'reo_type_name'
]
=
"扣费"
;
$list
[
$k
][
'reo_pay_way_name'
]
=
"派单扣费"
;
}
else
{
$list
[
$k
][
'reo_type_name'
]
=
"--"
;
}
...
...
@@ -120,15 +130,7 @@ class PayController extends BaseController
$list
[
$k
][
'reo_client_type_name'
]
=
"其他"
;
}
if
(
$v
[
'reo_pay_way'
]
==
1
){
$list
[
$k
][
'reo_pay_way_name'
]
=
"微信"
;
}
elseif
(
$v
[
'reo_pay_way'
]
==
2
){
$list
[
$k
][
'reo_pay_way_name'
]
=
"支付宝"
;
}
elseif
(
$v
[
'reo_pay_way'
]
==
3
){
$list
[
$k
][
'reo_pay_way_name'
]
=
"线下打款"
;
}
else
{
$list
[
$k
][
'reo_pay_way_name'
]
=
"--"
;
}
if
(
$v
[
'reo_pay_time'
]
==
'0000-00-00 00:00:00'
)
{
$list
[
$k
][
'reo_pay_time'
]
=
"--"
;
}
...
...
app/Http/Requests/Validators/Api/MobileWeb/StatementsListValidator.php
浏览文件 @
3d00d75e
...
...
@@ -40,44 +40,17 @@ class StatementsListValidator extends FormRequest
}
// 详情验证器
public
function
handle_ive
Validator
(
$data
)
public
function
businessFirm
Validator
(
$data
)
{
// 自定义错误消息
$messages
=
[
'id.required'
=>
'请选择售后单id'
,
'id.integer'
=>
'参数错误'
,
'quality_content.required'
=>
'请输入处理内容'
,
'quality_content.max'
=>
'参数错误'
,
'appoint_time.required'
=>
'请选择预约时间'
,
];
// 数据验证
$validator
=
Validator
::
make
(
$data
,
[
'id'
=>
'required|integer|min:1'
,
'quality_content'
=>
'required|string|max:50'
,
'appoint_time'
=>
'required'
,
],
$messages
);
// 判断数据验证是否成功
if
(
$validator
->
fails
())
{
return
$validator
->
errors
();
}
}
// 日常反馈验证器
public
function
dailyFeedbackValidator
(
$data
)
{
// 自定义错误消息
$messages
=
[
'id.required'
=>
'请选择售后单id'
,
'id.integer'
=>
'参数错误'
,
'remark.required'
=>
'请输入反馈内容'
,
'id.integer'
=>
'参数错误'
];
// 数据验证
$validator
=
Validator
::
make
(
$data
,
[
'id'
=>
'required|integer|min:1'
,
'remark'
=>
'required'
,
'id'
=>
'required|integer|min:1'
],
$messages
);
// 判断数据验证是否成功
...
...
app/Services/Api/MobileWeb/StatementsListService.php
浏览文件 @
3d00d75e
...
...
@@ -50,7 +50,7 @@ class StatementsListService extends Model
->
where
(
's.ser_id'
,
$session
[
'admin_id'
])
->
where
(
'list_service_type'
,
40
)
->
whereIn
(
'sett_status'
,
[
1
,
60
,
63
])
->
select
(
's.id'
,
's.sys_num'
,
's.create_time'
,
'all_price'
,
'list_id'
,
'om.goods_name'
,
'om.goods_num'
)
->
select
(
's.id'
,
's.sys_num'
,
's.create_time'
,
'all_price'
,
'list_id'
,
'om.goods_name'
,
'om.goods_num'
,
'o.id as wor_id'
,
'o.stauas as wor_state'
)
->
paginate
(
$show_count
);
$page
[
'count'
]
=
0
;
$page
[
'page'
]
=
0
;
...
...
@@ -60,6 +60,25 @@ class StatementsListService extends Model
$data
[
'page'
]
=
$page
;
$list_items
=
$list_data
->
items
();
foreach
(
$list_items
as
$key
=>
$value
)
{
switch
(
$value
[
'wor_state'
])
{
case
'10'
:
$list_items
[
$key
][
'wor_state'
]
=
1
;
break
;
case
'10'
:
$list_items
[
$key
][
'wor_state'
]
=
1
;
break
;
case
'10'
:
$list_items
[
$key
][
'wor_state'
]
=
1
;
break
;
case
'10'
:
$list_items
[
$key
][
'wor_state'
]
=
1
;
break
;
case
'10'
:
$list_items
[
$key
][
'wor_state'
]
=
1
;
break
;
}
}
if
(
$list_items
)
{
$list_items
=
CommonService
::
dataToArray
(
$list_items
);
$page
[
'count'
]
=
$list_data
->
total
();
//总数据个数
...
...
@@ -74,7 +93,7 @@ class StatementsListService extends Model
->
leftJoin
(
'company as c'
,
'c.com_id'
,
'='
,
'sl.company_id'
)
->
where
(
'stl_serid'
,
$session
[
'admin_id'
])
// ->where('stl_type', '!=', 4)
->
select
(
'stl_wat'
,
'stl_type'
,
'com_name'
,
'stl_startime'
,
'stl_endtime'
,
'stl_money'
)
->
select
(
'stl_wat'
,
'stl_type'
,
'com_name'
,
'stl_startime'
,
'stl_endtime'
,
'stl_money'
,
'stl_id'
)
->
orderByRaw
(
"stl_type asc,stl_endtime desc"
)
->
paginate
(
$show_count
);
$page
[
'count'
]
=
0
;
...
...
@@ -90,7 +109,9 @@ class StatementsListService extends Model
$getStauasName
=
self
::
getStauasName
();
foreach
(
$list_items
as
$key
=>
$value
)
{
$list_items
[
$key
][
'stl_type_name'
]
=
$getStauasName
[
$value
[
'stl_type'
]][
'name'
];
$list_items
[
$key
][
'pic_data'
]
=
DB
::
table
(
'pictures'
)
->
where
(
'sett_wat_num'
,
$value
[
'stl_wat'
])
->
get
();
$list_items
[
$key
][
'button'
]
=
[];
$list_items
[
$key
][
'button'
]
=
[[
'action'
=>
'info'
,
'name'
=>
'查看详情'
]];
if
(
in_array
(
$value
[
'stl_type'
],[
1
])){
...
...
@@ -134,1099 +155,45 @@ class StatementsListService extends Model
* @return \Illuminate\Http\JsonResponse
* |---------------------------------------------------------------------------------
*/
public
static
function
handle_ive
(
$request
)
public
static
function
businessFirm
(
$request
)
{
DB
::
beginTransaction
();
$session
=
$request
[
'session'
];
$find_data
=
DB
::
table
(
'
order_after
'
)
$find_data
=
DB
::
table
(
'
statements_list
'
)
->
where
(
'id'
,
$request
[
'id'
])
->
first
();
$order_num
=
$find_data
[
'order_num'
];
$status
=
$find_data
[
'status'
];
if
(
$status
!=
1
){
return
[
'ErrorCode'
=>
2
,
'ErrorMessage'
=>
'售后状态不正确'
,
'Data'
=>
''
];
if
(
$find_data
[
'stl_type'
]
!=
1
){
return
[
'ErrorCode'
=>
2
,
'ErrorMessage'
=>
'账单状态不正确'
,
'Data'
=>
''
];
}
$feek_time
=
date
(
'Y-m-d'
,
strtotime
(
"+1day"
))
.
' 17:30:00'
;
//明天下午5:30时间
$info
[
'feek_time'
]
=
$feek_time
;
$info
[
'status'
]
=
10
;
//改为处理中
$info
[
'day_time'
]
=
$request
[
'appoint_time'
];
$res
=
OrderAfter
::
where
(
'id'
,
$request
[
'id'
])
->
update
(
$info
);
if
(
$res
){
$rest
=
CommonService
::
accMe
(
$find_data
[
'sys_num'
],
'售后列表'
,
$request
[
'quality_content'
],
$find_data
[
'sys_num'
],
2
,
2
,
$session
[
'install_name'
],
$session
[
'install_id'
]);
if
(
$rest
){
CommonService
::
inserting_log
(
'售后列表'
,
$find_data
[
'sys_num'
],
'售后处理'
,
'售后列表'
,
$session
,
$request
[
'ip'
]);
//日志
//修改领取人
$get_id
=
OrderAfter
::
where
(
'id'
,
$request
[
'id'
])
->
value
(
'get_id'
);
if
(
!
$get_id
){
OrderAfter
::
where
(
'id'
,
$request
[
'id'
])
->
update
([
'get_id'
=>
$session
[
'id'
],
'get_time'
=>
date
(
"Y-m-d H:i:s"
)]);
}
DB
::
commit
();
return
[
'ErrorCode'
=>
1
,
'ErrorMessage'
=>
'操作成功'
,
'Data'
=>
[]];
}
else
{
DB
::
rollback
();
//回滚
return
[
'ErrorCode'
=>
ErrorInc
::
MYSQL_FAILED
,
'ErrorMessage'
=>
'操作失败'
,
'Data'
=>
[]];
}
}
else
{
DB
::
rollback
();
//回滚
return
[
'ErrorCode'
=>
ErrorInc
::
MYSQL_FAILED
,
'ErrorMessage'
=>
'操作失败'
,
'Data'
=>
[]];
}
}
/**
* 日常反馈
* @authors ldj
* @email 909490343@qq.com
* @date 2024-09-12
* @param [type] $data [description]
* @return [type] [description]
*/
public
static
function
dailyFeedback
(
$request
)
{
$session
=
$request
[
'session'
];
$find_data
=
DB
::
table
(
'order_after'
)
$info
[
'stl_type'
]
=
2
;
//改为处理中
$res
=
DB
::
table
(
'statements_list'
)
->
where
(
'id'
,
$request
[
'id'
])
->
first
();
DB
::
beginTransaction
();
$rest
=
CommonService
::
accMe
(
$find_data
[
'sys_num'
],
'售后列表'
,
$request
[
'remark'
],
$find_data
[
'sys_num'
],
2
,
2
,
$session
[
'install_name'
],
$session
[
'install_id'
]);
if
(
$rest
){
CommonService
::
inserting_log
(
'售后列表'
,
$find_data
[
'sys_num'
],
'日常反馈'
,
'售后列表'
,
$session
,
$request
[
'ip'
]);
//日志
DB
::
commit
();
return
[
'ErrorCode'
=>
1
,
'ErrorMessage'
=>
'操作成功'
,
'Data'
=>
[]];
}
else
{
DB
::
rollback
();
//回滚
return
[
'ErrorCode'
=>
ErrorInc
::
MYSQL_FAILED
,
'ErrorMessage'
=>
'操作失败'
,
'Data'
=>
[]];
}
}
/**
* 详情
* @authors ldj
* @email 909490343@qq.com
* @date 2024-09-12
* @param [type] $data [description]
* @return [type] [description]
*/
public
static
function
info
(
$data
)
{
$session
=
$data
[
'session'
];
$find_data
=
DB
::
table
(
'order_after'
)
->
where
(
'id'
,
$data
[
'id'
])
->
select
(
'id'
,
'after_num'
,
'shr_id'
,
'shr_name'
,
'shr_phone'
,
'shr_address'
,
'shr_sheng'
,
'shr_shi'
,
'shr_xian'
,
'good_names'
,
'create_time'
,
'deal_sertime'
,
'finish_time'
,
'status'
,
'sys_num'
,
'day_time'
,
'serial_number'
)
->
first
();
$remark
=
CommonService
::
orderRemarks
(
$find_data
[
'sys_num'
],
''
,
2
,
$session
[
'install_id'
]);
$image
=
DB
::
table
(
'feedsales'
)
->
where
(
'gl_id'
,
$find_data
[
'id'
])
->
where
(
'sys_num'
,
$find_data
[
'sys_num'
])
->
get
();
if
(
in_array
(
$find_data
[
'status'
],[
1
])){
$find_data
[
'button'
]
=
[[
'action'
=>
'handle_ive'
,
'name'
=>
'立即处理'
]];
}
if
(
in_array
(
$find_data
[
'status'
],[
10
])){
$find_data
[
'button'
]
=
[[
'action'
=>
'quality'
,
'name'
=>
'申请完成'
],[
'action'
=>
'dailyFeedback'
,
'name'
=>
'日常反馈'
]];
}
$return_data
[
'data'
]
=
$find_data
;
$return_data
[
'remark'
]
=
$remark
?
$remark
:
[];
$return_data
[
'image'
]
=
$image
;
return
[
'ErrorCode'
=>
1
,
'ErrorMessage'
=>
'操作成功'
,
'Data'
=>
$return_data
];
}
/**
* 申请完成
* @authors ldj
* @email 909490343@qq.com
* @date 2024-09-12
* @param [type] $data [description]
* @return [type] [description]
*/
public
static
function
quality
(
$data
)
{
$session
=
$data
(
'session'
);
$find_data
=
OrderAfter
::
where
(
'id'
,
$data
[
'id'
])
->
first
();
$serial_number
=
$find_data
[
'serial_number'
];
if
(
$find_data
[
'status'
]
==
1
||
$find_data
[
'status'
]
==
10
||
$find_data
[
'status'
]
==
15
){
}
else
{
return
[
'ErrorCode'
=>
2
,
'ErrorMessage'
=>
'售后状态错误'
,
'Data'
=>
[]];
}
Db
::
beginTransaction
();
$rest
=
CommonService
::
accMe
(
$find_data
[
'sys_num'
],
"售后订单"
,
"【售后】申请完成,"
.
$data
[
'quality_content'
],
$serial_number
,
'2'
,
$session
[
'admin_groupnew'
],
$session
[
'admin_acc'
],
$session
[
'id'
]);
if
(
$rest
){
if
(
$data
[
'file'
]
&&
$data
[
'file'
]
!=
[]){
$company_name
=
Admin
::
where
(
'id'
,
$find_data
[
'deal_serid'
])
->
value
(
"company_name"
);
$inst
=
InstallPerson
::
where
(
'admin_id'
,
$find_data
[
'deal_serid'
])
->
first
();
//安装人员
$sql
=
'INSERT INTO gone_feedsales (`type`,`gl_id`,`install_name`,`install_phone`,`install_time`,`admin_id`,`company_name`,`feedback_status`,`sys_num`,`is_type`,`feedback_pic`) VALUES'
;
$num
=
0
;
foreach
(
$data
[
'file'
]
as
$key
=>
$val
){
$num
=
$num
+
1
;
$sql
.=
"('"
.
$num
.
"','"
.
$data
[
'id'
]
.
"','"
.
$inst
[
'install_name'
]
.
"','"
.
$inst
[
'install_phone'
]
.
"','"
.
date
(
"Y-m-d H:i:s"
)
.
"','"
.
$find_data
[
'deal_serid'
]
.
"','"
.
$company_name
.
"','2','"
.
$find_data
[
'after_num'
]
.
"','2','"
.
$val
.
"'),"
;
}
$sql
=
substr
(
$sql
,
0
,
strlen
(
$sql
)
-
1
);
DB
::
insert
(
$sql
);
}
$get
[
'deal_time'
]
=
date
(
"Y-m-d H:i:s"
);
$get
[
'status'
]
=
'30'
;
$get
[
'trigyn'
]
=
'1'
;
if
(
$Olaf
[
'get_id'
]
<
1
){
$get
[
'get_id'
]
=
$session
[
'id'
];
$get
[
'get_time'
]
=
date
(
"Y-m-d H:i:s"
);
}
$result
=
OrderAfter
::
where
(
'id'
,
$Input
[
'id'
])
->
update
(
$get
);
if
(
$result
){
$after_num
=
OrderAfter
::
where
(
'id'
,
$Input
[
'id'
])
->
select
(
'after_num'
,
'p_id'
)
->
first
();
$get
[
'after_num'
]
=
$after_num
[
'after_num'
];
DB
::
commit
();
$this
->
operatingTime
(
$Input
[
'sys_num'
],
'申请质保完成时间'
,
date
(
"Y-m-d H:i:s"
),
$Olaf
[
'order_num'
],
$session
[
'admin_acc'
]);
//订单操作时间
$this
->
insertingLog
(
"申请质保完成,"
,
$Input
[
'sys_num'
],
"订单("
.
$serial_number
.
")"
,
"派工单列表"
,
$request
->
ip
(),
$session
[
'admin_acc'
]);
//日志
return
$this
->
success
(
'操作成功'
);
exit
;
}
else
{
DB
::
rollBack
();
return
$this
->
error
(
'操作失败'
,
ErrorInc
::
MYSQL_FAILED
);
exit
;
}
}
else
{
DB
::
rollBack
();
return
$this
->
error
(
'添加备注失败'
,
ErrorInc
::
MYSQL_FAILED
);
exit
;
}
}
/**|---------------------------------------------------------------------------------
* @name 获取接单技师
* @param int $request 请求参数
* @param int $old_install_id 老技师id
* @retrun \Illuminate\Http\JsonResponse
* @author dou 2024/9/10 16:36
* |---------------------------------------------------------------------------------
*/
public
static
function
getPerson
(
$request
,
$old_install_id
=
0
){
$session
=
$request
[
'session'
];
$order_list
=
OrderList
::
where
(
'id'
,
$request
[
'id'
])
->
select
(
'ser_id'
,
'customer_id'
)
->
first
();
if
(
$order_list
){
$dress
=
User
::
where
(
'id'
,
$order_list
[
'customer_id'
])
->
select
(
'shr_sheng'
,
'shr_shi'
,
'shr_xian'
,
'shr_adress'
)
->
first
();
$end
=
CommonService
::
jingwei
(
$dress
[
'shr_sheng'
],
$dress
[
'shr_sheng'
]
.
$dress
[
'shr_shi'
]
.
$dress
[
'shr_xian'
]
.
$dress
[
'shr_adress'
]);
if
(
empty
(
$old_install_id
))
{
$list
=
InstallPerson
::
where
(
'install_is_type'
,
1
)
->
where
(
'delet_y'
,
1
)
->
where
(
'admin_id'
,
$session
[
'admin_id'
])
->
select
(
'id'
,
'install_name'
,
'longitude'
,
'latitude'
,
'install_province'
,
'install_city'
,
'install_cuntry'
,
'install_address'
)
->
get
();
}
else
{
$list
=
InstallPerson
::
where
(
'install_is_type'
,
1
)
->
where
(
'delet_y'
,
1
)
->
where
(
'admin_id'
,
$session
[
'admin_id'
])
->
where
(
'id'
,
'!='
,
$old_install_id
)
->
select
(
'id'
,
'install_name'
,
'longitude'
,
'latitude'
,
'install_province'
,
'install_city'
,
'install_cuntry'
,
'install_address'
)
->
get
();
}
if
(
$list
){
$list
=
CommonService
::
dataToArray
(
$list
);
foreach
(
$list
as
$kri
=>
$vri
){
if
(
$vri
[
'longitude'
]
&&
$vri
[
'latitude'
]){
$start
=
$vri
[
'longitude'
]
.
','
.
$vri
[
'latitude'
];
}
else
{
$start
=
CommonService
::
jingwei
(
$vri
[
'install_province'
],
$vri
[
'install_province'
]
.
$vri
[
'install_city'
]
.
$vri
[
'install_cuntry'
]
.
$vri
[
'install_address'
]);
}
if
(
$vri
[
'install_address'
]
==
''
||
$start
==
''
){
$list
[
$kri
][
'juli'
]
=
''
;
$list
[
$kri
][
'jl'
]
=
100000
;
$lists
[]
=
$list
[
$kri
];
unset
(
$list
[
$kri
]);
continue
;
}
else
{
$jingwei
[]
=
$start
;
}
}
if
(
!
empty
(
$jingwei
)
&&
!
empty
(
$end
)){
$jingwei
=
implode
(
'|'
,
$jingwei
);
$res
=
CommonService
::
juli
(
$jingwei
,
$end
,
2
);
}
else
{
$res
=
[];
}
$num_
=
0
;
foreach
(
$list
as
$k
=>
$v
)
{
if
(
!
isset
(
$res
[
$num_
]))
{
$list
[
$k
][
'juli'
]
=
''
;
$list
[
$k
][
'jl'
]
=
100000
;
}
else
{
$list
[
$k
][
'juli'
]
=
round
(
$res
[
$num_
][
'distance'
]
/
1000
,
2
)
.
'公里'
;
$list
[
$k
][
'jl'
]
=
round
(
$res
[
$num_
][
'distance'
]
/
1000
,
2
);
}
$num_
++
;
}
if
(
!
empty
(
$lists
)
&&
!
empty
(
$list
))
{
$list
=
array_merge
(
$list
,
$lists
);
}
elseif
(
!
empty
(
$lists
)){
$list
=
$lists
;
}
$list
=
CommonService
::
resetListKey
(
$list
);
foreach
(
$list
as
$k
=>
$v
){
$num
[]
=
$v
[
'jl'
];
if
(
$v
[
'jl'
]
==
100000
){
unset
(
$list
[
$k
][
'jl'
]);
}
}
array_multisort
(
$num
,
SORT_NUMERIC
,
SORT_ASC
,
$list
);
return
[
'ErrorCode'
=>
1
,
'ErrorMessage'
=>
'暂无数据'
,
'Data'
=>
$list
];
}
else
{
return
[
'ErrorCode'
=>
1
,
'ErrorMessage'
=>
'无可派单技师'
,
'Data'
=>
$list
];
}
}
else
{
return
[
'ErrorCode'
=>
ErrorInc
::
DATA_EMPTY
,
'ErrorMessage'
=>
'未获取订单信息'
,
'Data'
=>
''
];
}
}
// 接单
public
static
function
receiving
(
$request
,
$ip
)
{
$session
=
$request
[
'session'
];
// 查询服务单表信息
$orderListArr
=
OrderList
::
where
(
'id'
,
$request
[
'id'
])
->
where
(
'is_delete'
,
1
)
->
first
();
if
(
empty
(
$orderListArr
)){
return
[
'ErrorCode'
=>
ErrorInc
::
DATA_EMPTY
,
'ErrorMessage'
=>
'未查询到订单'
,
'Data'
=>
[]];
}
$orderListArr
=
CommonService
::
dataToArray
(
$orderListArr
);
// 判断是否派单是否锁定
if
(
!
in_array
(
$orderListArr
[
'stauas'
],
[
10
,
20
])){
return
[
'ErrorCode'
=>
ErrorInc
::
BUSINESS_FORBID
,
'ErrorMessage'
=>
'当前服务单不是待接单状态!'
,
'Data'
=>
[]];
}
if
(
$orderListArr
[
'locklist_type'
]
!=
1
)
{
return
[
'ErrorCode'
=>
ErrorInc
::
BUSINESS_FORBID
,
'ErrorMessage'
=>
'当前服务单已锁定,无法接单!'
,
'Data'
=>
[]];
}
$MsgArr
=
OrderMsg
::
where
(
'id'
,
$orderListArr
[
'order_goods_id'
])
->
select
(
"goods_id"
,
"goods_name"
,
"goods_brand"
,
"goods_price"
)
->
first
();
$goods_name
=
$MsgArr
[
'goods_name'
];
$goods_id
=
$MsgArr
[
'goods_id'
];
$goods_brands
=
$MsgArr
[
'goods_brand'
];
$goods_name
=
trim
(
$goods_name
,
','
);
$goods_id
=
trim
(
$goods_id
,
','
);
$instArr
=
InstallPerson
::
where
(
'id'
,
$request
[
'receive_install_id'
])
->
select
(
"install_name"
,
"install_phone"
,
"plate_num"
)
->
first
();
if
(
!
$instArr
){
return
[
'ErrorCode'
=>
ErrorInc
::
BUSINESS_FORBID
,
'ErrorMessage'
=>
'技师不存在!'
,
'Data'
=>
[]];
}
$supply_price
=
GhPrice
::
where
(
'goods_id'
,
$MsgArr
[
'goods_id'
])
->
where
(
'ser_id'
,
$orderListArr
[
'ser_id'
])
->
orderBy
(
'id'
,
'Desc'
)
->
value
(
'supply_price'
);
if
(
!
$supply_price
){
$supply_price
=
GhPrice
::
where
(
'goods_id'
,
$MsgArr
[
'goods_id'
])
->
where
(
'ser_id'
,
0
)
->
orderBy
(
'id'
,
'Desc'
)
->
value
(
'supply_price'
);
if
(
!
$supply_price
){
$supply_price
=
'0.00'
;
}
}
//end Dong
$arr
[
'sys_num'
]
=
$orderListArr
[
'sys_num'
];
//系统单号
$arr
[
'order_num'
]
=
$orderListArr
[
'order_num'
];
//平台单号
$arr
[
'serial_number'
]
=
$request
[
'id'
];
//关联的order_list_id
$arr
[
'msg_id'
]
=
$orderListArr
[
'order_goods_id'
];
//关联msg_id
$arr
[
'p_id'
]
=
$orderListArr
[
'p_id'
];
//平台id
$arr
[
'list_id'
]
=
$orderListArr
[
'serial_number'
];
//派工单编号
$arr
[
'ser_id'
]
=
$orderListArr
[
'ser_id'
];
//服务中心id
$arr
[
'type'
]
=
2
;
//出售方式
// 上门安装
$arr
[
'installperson'
]
=
$request
[
'receive_install_id'
];
// 安装人id
$arr
[
'intall_person'
]
=
$instArr
[
'install_name'
];
// 安装人名称
$arr
[
'intall_phone'
]
=
$instArr
[
'install_phone'
];
// 安装人电话
$is_bool
=
"到店安装"
;
$info
[
'installation'
]
=
2
;
//安装分类(上门安装)
// 供货价
$arr
[
'order_price'
]
=
$supply_price
;
//供货价
// 总金额
$all_price
=
$supply_price
;
//Dong
$arr
[
'all_price'
]
=
$all_price
;
// 结算状态
$arr
[
'sett_status'
]
=
1
;
// 工单状态
$arr
[
'list_service_type'
]
=
30
;
// 客户id
$arr
[
'customer_id'
]
=
$orderListArr
[
'customer_id'
];
$arr
[
'category'
]
=
$orderListArr
[
'category'
];
$arr
[
'sel_type'
]
=
$orderListArr
[
'orli_type'
];
$arr
[
'pay_types'
]
=
$orderListArr
[
'pay_typel'
];
//支付方式
$arr
[
'goods_brand'
]
=
$goods_brands
;
// 锁定状态
$submit_stauas
=
SubmitPlease
::
where
(
'submit_sys_num'
,
$orderListArr
[
'sys_num'
])
->
where
(
'msg_id'
,
$orderListArr
[
'order_goods_id'
])
->
orderBy
(
'id'
,
'DESC'
)
->
value
(
'submit_stauas'
);
if
(
$submit_stauas
==
1
){
$arr
[
'locked'
]
=
2
;
}
/**追 溯**/
$times
=
date
(
'Y-m-d H:i:s'
);
$sometime
=
substr
(
date
(
'Y-m-d H:i:s'
,
strtotime
(
"
$times
-2 month"
)),
0
,
10
);
//入仓时间
$info
[
'goods_name'
]
=
$goods_name
;
//产品名称
$info
[
'manufacturer'
]
=
GoodsBrand
::
where
(
"brand_name"
,
$MsgArr
[
'goods_brand'
])
->
where
(
'company_id'
,
$orderListArr
[
'company_id'
])
->
value
(
'brand_remark'
);
//生产厂家
$info
[
'transport'
]
=
$sometime
;
//入仓时间
$info
[
'order_time'
]
=
substr
(
$times
,
0
,
10
);
//下单时间
$info
[
'install_one'
]
=
$instArr
[
'install_name'
];
//安装人
$info
[
'replacing_time'
]
=
substr
(
date
(
'Y-m-d H:i:s'
,
strtotime
(
'+2 year'
)),
0
,
10
);
//建议更换时间
/**派工单**/
$post
[
'stauas'
]
=
30
;
//派工单状态
$post
[
'install_id'
]
=
$_POST
[
'id'
];
//安装人id
$post
[
'intall_person'
]
=
$instArr
[
'install_name'
];
//安装人姓名
$post
[
'intall_phone'
]
=
$instArr
[
'install_phone'
];
//安装人电话
$post
[
'goods_brand'
]
=
$goods_brands
;
$post
[
'goods_type'
]
=
3
;
//接单直接到安装中,略过检验 Dong
$post
[
'get_time'
]
=
date
(
"Y-m-d H:i:s"
);
/**订 单**/
$get
[
'order_status'
]
=
30
;
//订单状态
$get
[
'intall_person'
]
=
$instArr
[
'install_name'
];
//安装人姓名
$get
[
'intall_phone'
]
=
$instArr
[
'install_phone'
];
//安装人电话
$returncount
=
OrderList
::
where
(
'sys_num'
,
$orderListArr
[
'sys_num'
])
->
where
(
'stauas'
,
20
)
->
count
();
DB
::
beginTransaction
();
//开启事务
if
(
$returncount
==
1
){
$restOrderList
=
OrderList
::
where
(
'id'
,
$request
[
'id'
])
->
update
(
$post
);
$restOrder
=
Orders
::
where
(
'sys_num'
,
$orderListArr
[
'sys_num'
])
->
update
(
$get
);
if
(
$restOrderList
&&
$restOrder
){
$restult
=
1
;
}
else
{
$restult
=
0
;
}
}
else
{
$restOrderList
=
OrderList
::
where
(
'id'
,
$request
[
'id'
])
->
update
(
$post
);
if
(
$restOrderList
){
$restult
=
1
;
}
else
{
$restult
=
0
;
}
}
$arr
[
'company_id'
]
=
$orderListArr
[
'company_id'
];
$arr
[
'agency_id'
]
=
$orderListArr
[
'agency_id'
];
$dou
=
SettlementList
::
insertGetId
(
$arr
);
if
(
$restult
==
1
&&
$dou
){
DB
::
commit
();
Management
::
where
(
'trace_code'
,
$orderListArr
[
'serial_number'
])
->
update
(
$info
);
if
(
$dou
){
self
::
calculates
(
$dou
,
$orderListArr
,
$supply_price
,
$supply_price
,
$session
);
//计算奖惩金额以及评分
}
$weixin
[
'ser_id'
]
=
$_POST
[
'id'
];
$weixin
[
'order_num'
]
=
$orderListArr
[
'order_num'
];
//平台单号
$weixin
[
'goods_name'
]
=
'安装服务'
;
//$v['goods_name'];
$weixin
[
'serial_number'
]
=
$orderListArr
[
'serial_number'
];
$weixin
[
'install_type'
]
=
2
;
CommonService
::
requestPost
(
'http://zptzchat.bluearp.com/m/index.php/BindingAccount/push_order'
,
$weixin
);
//begin Dong
$company_name
=
Admin
::
where
(
'id'
,
$orderListArr
[
'ser_id'
])
->
select
(
"admin_acc"
,
"company_name"
,
"reward"
)
->
first
();
//服务中心名称
$douId
=
SettlementList
::
where
(
'list_id'
,
$orderListArr
[
'serial_number'
])
->
value
(
'id'
);
$res
=
SettlementMoney
::
where
(
'sem_slid'
,
$douId
)
->
where
(
'sem_type'
,
17
)
->
first
();
if
(
!
$res
){
$payout_time
=
OrderTime
::
where
(
"serial_number"
,
$orderListArr
[
'serial_number'
])
->
where
(
"is_type"
,
'接单时间'
)
->
orderBy
(
"id"
,
'DESC'
)
->
value
(
'create_time'
);
//获取奖罚起始时间
$money_type
=
SetmoneyType
::
where
(
"sety_id"
,
'17'
)
->
pluck
(
'sety_price'
,
'sety_id'
);
$zero1
=
time
();
//strtotime (date("Y-m-d H:i:s")); //当前时间 ,注意H 是24小时 h是12小时
$zero2
=
strtotime
(
$payout_time
);
//过年时间,不能写2014-1-21 24:00:00 这样不对
$guonian
=
(
$zero1
-
$zero2
)
/
60
;
//60s*60min*24h
if
(
$guonian
<=
17
&&
$company_name
[
'reward'
]){
$money
[
'sem_slid'
]
=
$douId
;
$money
[
'sem_synum'
]
=
$orderListArr
[
'sys_num'
];
$money
[
'sem_creacter'
]
=
$company_name
[
'admin_acc'
];
$money
[
'sem_price'
]
=
$money_type
[
17
];
$money
[
'sem_type'
]
=
17
;
SettlementMoney
::
insert
(
$money
);
$all_price
[
'all_price'
]
=
SettlementMoney
::
where
(
'sem_slid'
,
$douId
)
->
sum
(
'sem_price'
);
SettlementList
::
where
(
"id"
,
$douId
)
->
update
(
$all_price
);
}
}
//end Dong
$content
=
"订单"
.
$is_bool
.
"("
.
$orderListArr
[
'serial_number'
]
.
")"
;
self
::
operating_time
(
$orderListArr
[
'serial_number'
],
'接单时间'
,
date
(
"Y-m-d H-i-s"
),
$orderListArr
[
'order_num'
],
$session
);
//订单操作时间
self
::
add_thistory
(
$orderListArr
[
'serial_number'
],
'tih_acceptime'
,
date
(
"Y-m-d H:i:s"
),
$orderListArr
[
'ser_id'
],
2
,
$session
);
//添加历史时间
CommonService
::
inserting_log
(
'接单1,'
,
$orderListArr
[
'sys_num'
],
$content
,
'派工单'
,
$session
,
$ip
);
//日志
return
[
'ErrorCode'
=>
1
,
'ErrorMessage'
=>
'操作成功'
,
'Data'
=>
[]];
}
else
{
DB
::
rollback
();
//回滚
return
[
'ErrorCode'
=>
ErrorInc
::
MYSQL_FAILED
,
'ErrorMessage'
=>
'操作失败'
,
'Data'
=>
[]];
}
}
// 拒单
public
static
function
refuse
(
$request
,
$ip
)
{
$session
=
$request
[
'session'
];
$orderListArr
=
OrderList
::
where
(
'id'
,
$request
[
'id'
])
->
select
(
"order_num"
,
"sys_num"
,
"stauas"
,
"ser_id"
,
"p_id"
,
"ol_dispamount"
,
"serial_number"
)
->
first
();
$returncount
=
OrderList
::
where
(
'sys_num'
,
$orderListArr
[
'sys_num'
])
->
select
(
"serial_number"
)
->
get
();
$returncount
=
CommonService
::
dataToArray
(
$returncount
);
$serial_number
=
array_unique
(
array_column
(
$returncount
,
'serial_number'
));
//派工单号
if
(
$orderListArr
[
'stauas'
]
<>
10
&&
$orderListArr
[
'stauas'
]
<>
20
&&
$orderListArr
[
'stauas'
]
<>
30
){
// 拒单失败!该单状态不正确!
return
[
'ErrorCode'
=>
ErrorInc
::
MYSQL_STEP_FAILED
,
'ErrorMessage'
=>
'订单状态错误请刷新后操作:检索码01'
,
'Data'
=>
[]];
}
else
{
if
(
$orderListArr
[
'stauas'
]
!=
$_POST
[
'stauas'
]){
return
[
'ErrorCode'
=>
ErrorInc
::
MYSQL_STEP_FAILED
,
'ErrorMessage'
=>
'订单状态错误请刷新后操作:检索码02'
,
'Data'
=>
[]];
}
}
if
(
count
(
$returncount
)
>
1
&&
$request
[
'refuseType'
]
==
1
){
// 该订单有多款商品,该工单不可拒单
return
[
'ErrorCode'
=>
201
,
'ErrorMessage'
=>
'订单包含多个商品是否全部拒单'
,
'Data'
=>
[]];
}
DB
::
beginTransaction
();
//开启事务
$rest
=
CommonService
::
accMe
(
$orderListArr
[
'sys_num'
],
'派工单列表web'
,
"拒单,"
.
$_POST
[
'note_content'
],
implode
(
','
,
$serial_number
),
2
,
2
,
$session
[
'install_name'
],
$session
[
'install_id'
]);
$resultOrderList
=
OrderList
::
where
(
"sys_num"
,
$orderListArr
[
'sys_num'
])
->
delete
();
if
(
$orderListArr
[
'stauas'
]
==
30
){
$settListArr
=
SettlementList
::
where
(
"sys_num"
,
$orderListArr
[
'sys_num'
])
->
where
(
"sett_status"
,
'>'
,
1
)
->
first
();
if
(
!
empty
(
$settListArr
)){
// 该单已审核
return
[
'ErrorCode'
=>
ErrorInc
::
MYSQL_STEP_FAILED
,
'ErrorMessage'
=>
'存在结算工单不可拒单'
,
'Data'
=>
[]];
}
$resultsettList
=
SettlementList
::
where
(
"sys_num"
,
$orderListArr
[
'sys_num'
])
->
delete
();
}
else
{
$resultsettList
=
true
;
}
$data
[
'ser_id'
]
=
0
;
$data
[
'order_status'
]
=
10
;
$resultOrder
=
Orders
::
where
(
"sys_num"
,
$orderListArr
[
'sys_num'
])
->
update
(
$data
);
if
(
$resultOrderList
&&
$rest
&&
$resultsettList
&&
$resultOrder
){
->
update
(
$info
);
if
(
$res
){
DB
::
commit
();
OrderTime
::
whereIn
(
'serial_number'
,
$serial_number
)
->
delete
();
//删除工单操作时间
SettlementMoney
::
where
(
'sem_synum'
,
$orderListArr
[
'sys_num'
])
->
delete
();
//金额信息接单后生成
// M("settlement_count")->where("`cou_synum`='".$_POST['sys_num']."'")->delete();//评分信息接单后生成
DB
::
table
(
'order_score'
)
->
whereIn
(
"orsc_sernum"
,
$serial_number
)
->
delete
();
//评分信息接单后生成
Management
::
whereIn
(
'trace_code'
,
$serial_number
)
->
delete
();
CommonService
::
inserting_log
(
'拒单,'
,
$orderListArr
[
'sys_num'
],
'订单('
.
$orderListArr
[
'order_num'
]
.
')'
,
'派工单web'
,
$session
,
$ip
);
//日志
self
::
operating_time
(
$orderListArr
[
'serial_number'
],
'拒单时间'
,
date
(
"Y-m-d H:i:s"
),
$orderListArr
[
'order_num'
],
$session
);
//订单操作时间
OrderRejected
::
insert
([
'or_order_num'
=>
$orderListArr
[
'order_num'
],
'or_ser_id'
=>
$orderListArr
[
'ser_id'
],
'or_creact_time'
=>
date
(
"Y-m-d H:i:s"
),
'or_centent'
=>
'门店自主拒单'
]);
return
[
'ErrorCode'
=>
1
,
'ErrorMessage'
=>
'操作成功'
,
'Data'
=>
[]];
return
[
'ErrorCode'
=>
1
,
'ErrorMessage'
=>
'确认成功'
,
'Data'
=>
[]];
}
else
{
DB
::
rollback
();
//回滚
return
[
'ErrorCode'
=>
ErrorInc
::
MYSQL_FAILED
,
'ErrorMessage'
=>
'操作失败'
,
'Data'
=>
[]];
}
}
/**|---------------------------------------------------------------------------------
* @name 预约安装
* @param int id 订单单号
* @param string day_time 预约是啊金
* @retrun \Illuminate\Http\JsonResponse /multitype:array
* @author dou 2024/9/11 0:36
* |---------------------------------------------------------------------------------
*/
public
static
function
contact
(
$request
,
$ip
){
public
static
function
info
(
$request
)
{
$session
=
$request
[
'session'
];
$orderListArr
=
OrderTime
::
where
(
"id"
,
$request
[
'id'
])
->
select
(
"order_num"
,
"sys_num"
,
"stauas"
,
"ser_id"
,
"p_id"
,
"customer_id"
,
"serial_number"
,
"ol_dispamount"
)
->
first
();
if
(
$orderListArr
[
'stauas'
]
<>
30
){
// 拒单失败!该单状态不正确!
return
[
'ErrorCode'
=>
ErrorInc
::
MYSQL_STEP_FAILED
,
'ErrorMessage'
=>
'订单状态错误请刷新后操作:检索码01'
,
'Data'
=>
[]];
}
$data
[
'day_time'
]
=
$request
[
'delay_time'
];
$res
=
Orders
::
where
(
"sys_num"
,
$orderListArr
[
'sys_num'
])
->
update
(
$data
);
$ress
=
OrderList
::
where
(
"id"
,
$request
[
'id'
])
->
update
(
$data
);
if
(
$res
&&
$ress
){
self
::
operating_time
(
$orderListArr
[
'serial_number'
],
'安装预约时间'
,
date
(
"Y-m-d H-i-s"
),
$orderListArr
[
'order_num'
],
$session
);
//订单操作时间
self
::
updateLineSrate
(
$request
[
'coordinate'
],
2
,
$orderListArr
[
'serial_number'
],
$orderListArr
[
'sys_num'
],
$orderListArr
[
'order_num'
]);
return
[
'ErrorCode'
=>
1
,
'ErrorMessage'
=>
'操作成功'
,
'Data'
=>
[]];
}
else
{
return
[
'ErrorCode'
=>
ErrorInc
::
MYSQL_FAILED
,
'ErrorMessage'
=>
'操作失败'
,
'Data'
=>
[]];
}
}
// 检验
public
static
function
inspect
(
$request
)
{
// 查询工单表信息
$find_design_order
=
DB
::
table
(
'orders'
)
->
where
(
'id'
,
$request
[
'id'
])
->
where
(
'is_delete'
,
1
)
->
select
(
'id'
,
'sys_num'
,
'order_num'
,
'order_status'
,
'lock_type'
,
'orders_sertatus'
,
'ser_id'
,
'p_id'
)
->
first
();
// 判断是否已派单
if
(
empty
(
$find_design_order
))
{
return
[
'ErrorCode'
=>
ErrorInc
::
DATA_EMPTY
,
'ErrorMessage'
=>
'未查询到订单'
,
'Data'
=>
[]];
}
$find_design_order
=
objectToArray
(
$find_design_order
);
if
(
$find_design_order
[
'orders_sertatus'
]
!=
2
)
{
return
[
'ErrorCode'
=>
ErrorInc
::
BUSINESS_FORBID
,
'ErrorMessage'
=>
'当前服务单不是待检验,无法检验!'
,
'Data'
=>
[]];
}
if
(
$find_design_order
[
'lock_type'
]
!=
1
)
{
return
[
'ErrorCode'
=>
ErrorInc
::
BUSINESS_FORBID
,
'ErrorMessage'
=>
'当前服务单已锁定,无法检验!'
,
'Data'
=>
[]];
}
$user_info
=
CommonService
::
webgetUserInfo
(
$request
[
'api_token'
]);
DB
::
beginTransaction
();
$find_orli_data
=
DB
::
table
(
'order_list'
)
->
where
(
'sys_num'
,
$find_design_order
[
'sys_num'
])
->
where
(
'order_num'
,
$find_design_order
[
'order_num'
])
->
where
(
'is_delete'
,
1
)
->
select
(
'id'
,
'serial_number'
,
'stauas'
)
->
get
()
->
toArray
();
if
(
empty
(
$find_orli_data
))
{
return
[
'ErrorCode'
=>
ErrorInc
::
DATA_EMPTY
,
'ErrorMessage'
=>
'未查询到服务工单'
,
'Data'
=>
[]];
}
$find_orli_data
=
objectToArray
(
$find_orli_data
);
// 批量添加时间节点
foreach
(
$find_orli_data
as
$key
=>
$val
)
{
timeLog
(
$val
[
'serial_number'
],
$find_design_order
[
'order_num'
],
$user_info
->
install_name
,
"检验时间"
,
date
(
'Y-m-d H:i:s'
));
}
// 更改工单信息
$service_data
=
[];
$service_data
[
'stauas'
]
=
3
;
//工单状态:1未接单2已接单3安装中
$service_data
[
'service_state'
]
=
4
;
//技师服务状态:0未派单1未接单2已接单(未检验)3已拒单4已检验5安装中6完成待审核
$deor_res
=
DB
::
table
(
'order_list'
)
->
where
(
'sys_num'
,
$find_design_order
[
'sys_num'
])
->
where
(
'order_num'
,
$find_design_order
[
'order_num'
])
->
where
(
'is_delete'
,
1
)
->
update
(
$service_data
);
$order_res
=
DB
::
table
(
'orders'
)
->
where
(
'id'
,
$request
[
'id'
])
->
update
([
'orders_sertatus'
=>
4
]);
if
(
$deor_res
&&
$order_res
)
{
DB
::
commit
();
sertimeLog
(
$find_design_order
[
'sys_num'
],
$find_design_order
[
'order_num'
],
$user_info
->
install_name
,
"检验时间"
,
date
(
'Y-m-d H:i:s'
),
$find_design_order
[
'ser_id'
]);
return
[
'ErrorCode'
=>
1
,
'ErrorMessage'
=>
'检验成功'
,
'Data'
=>
[]];
}
else
{
DB
::
rollback
();
return
[
'ErrorCode'
=>
500
,
'ErrorMessage'
=>
'失败'
,
'Data'
=>
[]];
}
}
// 开始安装
public
static
function
startInstall
(
$request
)
{
// 查询工单表信息
$find_design_order
=
DB
::
table
(
'orders'
)
->
where
(
'id'
,
$request
[
'id'
])
->
where
(
'is_delete'
,
1
)
->
select
(
'id'
,
'sys_num'
,
'order_num'
,
'order_status'
,
'lock_type'
,
'orders_sertatus'
,
'ser_id'
,
'p_id'
)
->
first
();
// 判断是否已派单
if
(
empty
(
$find_design_order
))
{
return
[
'ErrorCode'
=>
ErrorInc
::
DATA_EMPTY
,
'ErrorMessage'
=>
'未查询到订单'
,
'Data'
=>
[]];
}
$find_design_order
=
objectToArray
(
$find_design_order
);
if
(
$find_design_order
[
'orders_sertatus'
]
!=
4
)
{
return
[
'ErrorCode'
=>
ErrorInc
::
BUSINESS_FORBID
,
'ErrorMessage'
=>
'当前服务单未检验!'
,
'Data'
=>
[]];
}
if
(
$find_design_order
[
'lock_type'
]
!=
1
)
{
return
[
'ErrorCode'
=>
ErrorInc
::
BUSINESS_FORBID
,
'ErrorMessage'
=>
'当前服务单已锁定,无法拒单!'
,
'Data'
=>
[]];
}
$user_info
=
CommonService
::
webgetUserInfo
(
$request
[
'api_token'
]);
DB
::
beginTransaction
();
$find_orli_data
=
DB
::
table
(
'order_list'
)
->
where
(
'sys_num'
,
$find_design_order
[
'sys_num'
])
->
where
(
'order_num'
,
$find_design_order
[
'order_num'
])
->
where
(
'is_delete'
,
1
)
->
select
(
'id'
,
'serial_number'
,
'stauas'
)
->
get
()
->
toArray
();
if
(
empty
(
$find_orli_data
))
{
return
[
'ErrorCode'
=>
ErrorInc
::
DATA_EMPTY
,
'ErrorMessage'
=>
'未查询到服务工单'
,
'Data'
=>
[]];
}
$find_orli_data
=
objectToArray
(
$find_orli_data
);
// 批量添加时间节点
foreach
(
$find_orli_data
as
$key
=>
$val
)
{
timeLog
(
$val
[
'serial_number'
],
$find_design_order
[
'order_num'
],
$user_info
->
install_name
,
"开始安装"
,
date
(
'Y-m-d H:i:s'
));
}
// 更改工单信息
$service_data
=
[];
$service_data
[
'stauas'
]
=
3
;
//工单状态:1未接单2已接单3安装中
$service_data
[
'service_state'
]
=
5
;
//技师服务状态:0未派单1未接单2已接单3已拒单4已检验5安装中6已安装完成
$deor_res
=
DB
::
table
(
'order_list'
)
->
where
(
'sys_num'
,
$find_design_order
[
'sys_num'
])
->
where
(
'order_num'
,
$find_design_order
[
'order_num'
])
->
where
(
'is_delete'
,
1
)
->
update
(
$service_data
);
$order_res
=
DB
::
table
(
'orders'
)
->
where
(
'id'
,
$request
[
'id'
])
->
update
([
'orders_sertatus'
=>
5
]);
if
(
$deor_res
&&
$order_res
)
{
DB
::
commit
();
// czrzLog("拒单,", $find_design_order['serial_number'], "移动端技师拒单", "订单系统", request::ip(), $user_info->install_name);
sertimeLog
(
$find_design_order
[
'sys_num'
],
$find_design_order
[
'order_num'
],
$user_info
->
install_name
,
"开始安装"
,
date
(
'Y-m-d H:i:s'
),
$find_design_order
[
'ser_id'
]);
return
[
'ErrorCode'
=>
1
,
'ErrorMessage'
=>
'已开始施工'
,
'Data'
=>
[]];
}
else
{
DB
::
rollback
();
return
[
'ErrorCode'
=>
500
,
'ErrorMessage'
=>
'开始施工失败'
,
'Data'
=>
[]];
}
}
// 申请完成
public
static
function
installFeedback
(
$request
)
{
// 查询工单表信息
$find_design_order
=
DB
::
table
(
'orders'
)
->
where
(
'id'
,
$request
[
'id'
])
->
where
(
'is_delete'
,
1
)
->
select
(
'id'
,
'sys_num'
,
'order_num'
,
'order_status'
,
'lock_type'
,
'orders_sertatus'
,
'ser_id'
,
'p_id'
)
->
first
();
// 判断是否已派单
if
(
empty
(
$find_design_order
))
{
return
[
'ErrorCode'
=>
ErrorInc
::
DATA_EMPTY
,
'ErrorMessage'
=>
'未查询到订单'
,
'Data'
=>
[]];
}
$find_design_order
=
objectToArray
(
$find_design_order
);
if
(
$find_design_order
[
'orders_sertatus'
]
!=
5
)
{
return
[
'ErrorCode'
=>
ErrorInc
::
BUSINESS_FORBID
,
'ErrorMessage'
=>
'当前工单未安装!'
,
'Data'
=>
[]];
}
if
(
$find_design_order
[
'lock_type'
]
!=
1
)
{
return
[
'ErrorCode'
=>
ErrorInc
::
BUSINESS_FORBID
,
'ErrorMessage'
=>
'当前工单已锁定,无法拒单!'
,
'Data'
=>
[]];
}
$user_info
=
CommonService
::
webgetUserInfo
(
$request
[
'api_token'
]);
// 获取所有的工单数据
$order_list
=
DB
::
table
(
'order_list'
)
->
where
(
'sys_num'
,
$find_design_order
[
'sys_num'
])
->
where
(
'is_delete'
,
1
)
->
select
(
'id'
,
'serial_number'
,
'service_state'
,
'orli_reject'
)
->
get
();
if
(
empty
(
$order_list
))
{
return
[
'ErrorCode'
=>
ErrorInc
::
DATA_EMPTY
,
'ErrorMessage'
=>
'未查询到服务工单'
,
'Data'
=>
[]];
}
$order_list
=
objectToArray
(
$order_list
);
// 顺便判断一下工单状态
foreach
(
$order_list
as
$key
=>
$val
)
{
if
(
$val
[
'service_state'
]
!=
5
&&
$val
[
'service_state'
]
!=
6
)
{
return
[
'ErrorCode'
=>
ErrorInc
::
BUSINESS_FORBID
,
'ErrorMessage'
=>
'当前工单不是施工反馈状态!'
,
'Data'
=>
[]];
}
}
DB
::
beginTransaction
();
// 更改工单信息
$service_data
=
[];
$service_data
[
'stauas'
]
=
4
;
//工单状态:1未接单2已接单3安装中4待完成5已完成6已拒单7已撤销
$service_data
[
'service_state'
]
=
6
;
//技师服务状态:0未派单1未接单2已接单3已拒单4已检验5安装中6已安装完成
$service_data
[
'update_time'
]
=
date
(
'Y-m-d H:i:s'
);
$service_data
[
'orli_reject'
]
=
1
;
// 更改服务工单结算表
$seli_edit_data
=
[];
$seli_edit_data
[
'list_service_type'
]
=
$service_data
[
'stauas'
];
//派工单状态:1未接单2已接单【废弃】3安装中4完成待审核5已完成6已拒单7已撤销8延期审图9延期结算
$seli_edit_data
[
'update_time'
]
=
date
(
'Y-m-d H:i:s'
);
//更新时间
$is_edit
=
0
;
$is_over
=
0
;
$deor_res
=
true
;
foreach
(
$order_list
as
$key
=>
$val
)
{
if
(
$val
[
'service_state'
]
==
6
&&
$val
[
'orli_reject'
]
==
1
){
$is_edit
++
;
continue
;
}
// 部分完成则判断是否有上传图片
if
(
$request
[
'type'
]
==
1
){
// 判断是否有图片反馈
$feed_res
=
Db
::
table
(
'feedback'
)
->
where
(
'gl_id'
,
$val
[
'id'
])
->
where
(
'is_delete'
,
1
)
->
select
(
"id"
)
->
get
()
->
toArray
();
if
(
empty
(
$feed_res
)){
$is_over
++
;
continue
;
}
}
$is_edit
++
;
// 更改工单信息
$orli_res
=
DB
::
table
(
'order_list'
)
->
where
(
'id'
,
$val
[
'id'
])
->
update
(
$service_data
);
if
(
!
$orli_res
){
$deor_res
=
$orli_res
;
}
$seli_edit_res
=
DB
::
table
(
'settlement_list'
)
->
where
(
'serial_number'
,
$val
[
'serial_number'
])
->
where
(
'list_id'
,
$val
[
'id'
])
->
update
(
$seli_edit_data
);
timeLog
(
$val
[
'serial_number'
],
$find_design_order
[
'order_num'
],
$user_info
->
install_name
,
"反馈时间"
,
date
(
'Y-m-d H:i:s'
));
}
$order_data
=
[];
$order_data
[
'order_status'
]
=
8
;
$order_data
[
'update_time'
]
=
date
(
'Y-m-d H:i:s'
);
$order_data
[
'orders_sertatus'
]
=
5
;
if
(
$is_over
==
0
){
$order_data
[
'orders_sertatus'
]
=
6
;
}
// 更改订单信息
$ord_res
=
DB
::
table
(
'orders'
)
->
where
(
'id'
,
$find_design_order
[
'id'
])
->
update
(
$order_data
);
if
(
$deor_res
&&
$ord_res
)
{
DB
::
commit
();
$str
=
$order_data
[
'orders_sertatus'
]
==
5
?
'部分反馈'
:
'反馈时间'
;
sertimeLog
(
$find_design_order
[
'sys_num'
],
$find_design_order
[
'order_num'
],
$user_info
->
install_name
,
$str
,
date
(
'Y-m-d H:i:s'
),
$find_design_order
[
'ser_id'
]);
return
[
'ErrorCode'
=>
1
,
'ErrorMessage'
=>
'施工申请完成'
,
'Data'
=>
[]];
}
else
{
DB
::
rollback
();
return
[
'ErrorCode'
=>
500
,
'ErrorMessage'
=>
'申请完成失败'
,
'Data'
=>
[]];
}
}
// 施工图片反馈
public
static
function
imageFeedback
(
$request
){
// 查询工单表信息
$find_design_order
=
DB
::
table
(
'order_list'
)
->
where
(
'id'
,
$request
[
'id'
])
->
where
(
'is_delete'
,
1
)
->
select
(
'id'
,
'serial_number'
,
'sys_num'
,
'order_num'
,
'ord_id'
,
'service_state'
,
'lock_state'
,
'ser_id'
,
'p_id'
)
->
first
();
// 判断是否已派单
if
(
empty
(
$find_design_order
))
{
return
[
'ErrorCode'
=>
ErrorInc
::
DATA_EMPTY
,
'ErrorMessage'
=>
'未查询到订单'
,
'Data'
=>
[]];
}
$find_design_order
=
objectToArray
(
$find_design_order
);
if
(
$find_design_order
[
'service_state'
]
!=
5
)
{
return
[
'ErrorCode'
=>
ErrorInc
::
BUSINESS_FORBID
,
'ErrorMessage'
=>
'当前工单状态错误!'
,
'Data'
=>
[]];
}
$find_inpe_data
=
DB
::
table
(
'install_person'
)
->
where
(
'admin_id'
,
$request
[
'admin_id'
])
->
where
(
'delet_y'
,
1
)
->
select
(
'install_name'
,
'install_phone'
)
->
first
();
$find_inpe_data
=
objectToArray
(
$find_inpe_data
);
// 查询成员账号信息表
$find_adm_data
=
DB
::
table
(
'admin'
)
->
where
(
'id'
,
$request
[
'admin_id'
])
->
select
(
'admin_acc'
,
'company_name'
)
->
first
();
$find_adm_data
=
objectToArray
(
$find_adm_data
);
$image_url
=
$request
[
'image_url'
];
$image_id
=
$request
[
'image_id'
];
$image_type
=
$request
[
'image_type'
];
if
(
$image_url
==
'undefined'
){
return
[
'ErrorCode'
=>
500
,
'ErrorMessage'
=>
$image_type
.
'上传失败请重新上传'
,
'Data'
=>
[]];
}
DB
::
beginTransaction
();
$edit_res
=
true
;
// 不是0 则为编辑
if
(
$image_id
!=
0
){
$image_data
=
Db
::
table
(
'feedback'
)
->
where
(
'gl_id'
,
$request
[
'id'
])
->
where
(
'is_delete'
,
1
)
->
where
(
'id'
,
$image_id
)
->
select
(
'feedback_pic'
)
->
first
();
if
(
!
empty
(
$image_data
)){
$image_path
=
$image_data
->
feedback_pic
;
// http://3m127.bluearp.com/storage/app/public/image/2022/11/15/166848425637152.jpg
// http://3m127.bluearp.com/storage/image/2022/11/15/166848420917354.jpg
// url 路径里 app/public 被忽略了;
// $image_path=str_replace('storage/image','storage/app/public/image',$image_path);
// $image_path=substr($image_path,strpos($image_path,'storage/app'));
$image_path
=
substr
(
$image_path
,
strpos
(
$image_path
,
'storage'
));
// dd(11);
if
(
file_exists
(
$image_path
)){
unlink
(
$image_path
);
}
Db
::
table
(
'feedback'
)
->
where
(
'gl_id'
,
$request
[
'id'
])
->
where
(
'is_delete'
,
1
)
->
where
(
'id'
,
$image_id
)
->
delete
();
}
}
$add_feed
=
[];
$add_feed
[
'type'
]
=
1
;
//图片类型
$add_feed
[
'gl_id'
]
=
$request
[
'id'
];
//反馈关联id
$add_feed
[
'install_name'
]
=
$find_inpe_data
[
'install_name'
];
//安装人员姓名
$add_feed
[
'install_phone'
]
=
$find_inpe_data
[
'install_phone'
];
//安装电话
$add_feed
[
'install_remark'
]
=
''
;
//安装备注
$add_feed
[
'install_time'
]
=
date
(
'Y-m-d H:i:s'
);
//安装时间
$add_feed
[
'admin_id'
]
=
$request
[
'admin_id'
];
//所属服务中心id
$add_feed
[
'company_name'
]
=
$find_adm_data
[
'company_name'
];
//服务中心名称
$add_feed
[
'feedback_status'
]
=
2
;
//是否安装
$add_feed
[
'feedback_pic'
]
=
$image_url
;
//凭证图片
$add_feed
[
'sys_num'
]
=
'rwfk'
.
$request
[
'id'
];
//所属服务中心id
$add_feed
[
'is_type'
]
=
2
;
//1微信2第三方
$add_feed
[
'type_name'
]
=
$image_type
;
//类型名称
$add_feed_id
=
DB
::
table
(
'feedback'
)
->
insertGetId
(
$add_feed
);
if
(
$add_feed_id
&&
$edit_res
)
{
DB
::
commit
();
return
[
'ErrorCode'
=>
1
,
'ErrorMessage'
=>
'图片回传成功'
,
'Data'
=>
[
'feed_id'
=>
$add_feed_id
]];
}
else
{
DB
::
rollback
();
return
[
'ErrorCode'
=>
500
,
'ErrorMessage'
=>
$add_feed_id
.
'图片回传失败'
.
$edit_res
,
'Data'
=>
[]];
}
}
// 施工时 车牌车架号反馈
public
static
function
LicenseFeedback
(
$request
){
// 查询工单表信息
$find_design_order
=
DB
::
table
(
'orders'
)
->
where
(
'id'
,
$request
[
'id'
])
->
where
(
'is_delete'
,
1
)
->
select
(
'id'
,
'sys_num'
,
'order_num'
,
'order_status'
,
'lock_type'
,
'orders_sertatus'
,
'ser_id'
,
'p_id'
)
$data
=
DB
::
table
(
'statements_list'
)
->
where
(
'stl_id'
,
$request
[
'id'
])
->
select
(
'stl_money'
,
'stl_wat'
)
->
first
();
// 判断是否已派单
if
(
empty
(
$find_design_order
))
{
return
[
'ErrorCode'
=>
ErrorInc
::
DATA_EMPTY
,
'ErrorMessage'
=>
'未查询到订单'
,
'Data'
=>
[]];
}
$find_design_order
=
objectToArray
(
$find_design_order
);
if
(
$find_design_order
[
'orders_sertatus'
]
!=
5
)
{
return
[
'ErrorCode'
=>
ErrorInc
::
BUSINESS_FORBID
,
'ErrorMessage'
=>
'当前服务单状态错误!'
,
'Data'
=>
[]];
}
if
(
$find_design_order
[
'lock_type'
]
!=
1
)
{
return
[
'ErrorCode'
=>
ErrorInc
::
BUSINESS_FORBID
,
'ErrorMessage'
=>
'当前服务单已锁定,无法反馈!'
,
'Data'
=>
[]];
}
$license_plate
=
$request
[
'license_plate'
];
if
(
$license_plate
!=
''
){
$repeat_res
=
DB
::
table
(
'order_list'
)
->
where
(
'sys_num'
,
$find_design_order
[
'sys_num'
])
->
where
(
'is_delete'
,
1
)
->
where
(
'id'
,
'<>'
,
$request
[
'gd_id'
])
->
where
(
'license_plate'
,
$license_plate
)
->
select
(
'id'
)
->
get
()
->
toArray
();
if
(
!
empty
(
$repeat_res
)){
return
[
'ErrorCode'
=>
ErrorInc
::
BUSINESS_FORBID
,
'ErrorMessage'
=>
'车牌/车架号填写重复'
,
'Data'
=>
[]];
}
}
$res
=
DB
::
table
(
'order_list'
)
->
where
(
'sys_num'
,
$find_design_order
[
'sys_num'
])
->
where
(
'is_delete'
,
1
)
->
where
(
'id'
,
$request
[
'gd_id'
])
->
update
([
'license_plate'
=>
(
string
)
$license_plate
,
'update_time'
=>
date
(
'Y-m-d H:i:s'
)]);
if
(
$res
){
return
[
'ErrorCode'
=>
1
,
'ErrorMessage'
=>
'回传车架号成功'
,
'Data'
=>
[]];
}
else
{
return
[
'ErrorCode'
=>
ErrorInc
::
BUSINESS_FORBID
,
'ErrorMessage'
=>
'保存车架号失败'
,
'Data'
=>
[]];
}
}
// 获取工单反馈信息
public
static
function
getFeedback
(
$request
)
{
// 查询服务单表信息
$orders_data
=
DB
::
table
(
'orders'
)
->
where
(
'id'
,
$request
[
'id'
])
->
where
(
'is_delete'
,
1
)
->
select
(
'id'
,
'sys_num'
)
->
first
();
if
(
empty
(
$orders_data
))
{
return
[
'ErrorCode'
=>
ErrorInc
::
DATA_EMPTY
,
'ErrorMessage'
=>
'未查询到服务单'
,
'Data'
=>
[]];
}
// 获取所有的工单数据
$order_list
=
DB
::
table
(
'order_list'
)
->
where
(
'sys_num'
,
$orders_data
->
sys_num
)
->
where
(
'is_delete'
,
1
)
->
select
(
'id'
,
'serial_number'
,
"sys_num"
,
'license_plate'
,
'service_state'
,
'orli_reject'
)
->
orderBy
(
'service_state'
)
->
get
();
if
(
empty
(
$order_list
))
{
return
[
'ErrorCode'
=>
ErrorInc
::
DATA_EMPTY
,
'ErrorMessage'
=>
'未查询到工单'
,
'Data'
=>
[]];
}
$order_list
=
objectToArray
(
$order_list
);
$no_pic
=
[];
$no_pic
[
'gl_id'
]
=
0
;
$no_pic
[
'feedback_pic'
]
=
config
(
'apisystem.HTTP_URL'
)
.
'image/icon/webapp_no_pictures.png'
;
$no_pic
[
'type_name'
]
=
'暂无图片'
;
foreach
(
$order_list
as
$key
=>
$val
)
{
// 查询反馈信息
$list_data
=
DB
::
table
(
'feedback'
)
->
where
(
'gl_id'
,
$val
[
'id'
])
->
where
(
'is_delete'
,
1
)
->
select
(
"id"
,
'gl_id'
,
'feedback_pic'
,
'type_name'
)
->
orderBy
(
'type_name'
,
'asc'
)
->
get
()
->
toArray
();
if
(
empty
(
$list_data
))
{
$list_data
=
[
$no_pic
];
}
$order_list
[
$key
][
'list_data'
]
=
$list_data
;
}
return
[
'ErrorCode'
=>
1
,
'ErrorMessage'
=>
'获取信息成功'
,
'Data'
=>
$order_list
];
}
// 获取技师
public
static
function
getInstallPerson
(
$request
)
{
// 查询工单表信息
$find_inpe_data
=
InstallPerson
::
where
(
'delet_y'
,
1
)
->
where
(
'admin_id'
,
$request
[
'admin_id'
])
->
where
(
'install_is_type'
,
1
)
//状态:1启用2停用
->
where
(
function
(
$query
)
use
(
$request
)
{
if
(
!
empty
(
$request
[
'install_name'
]))
{
$query
->
where
(
'check_code'
,
'like'
,
'%'
.
$request
[
'install_name'
]
.
'%'
)
->
orWhere
(
'install_name'
,
'like'
,
'%'
.
$request
[
'install_name'
]
.
'%'
);
}
})
->
select
(
'id'
,
'check_code'
,
'install_name'
)
->
get
()
->
toArray
();
return
[
'ErrorCode'
=>
1
,
'ErrorMessage'
=>
'获取成功'
,
'Data'
=>
$find_inpe_data
];
}
// 获取标签
public
static
function
getLabel
(
$request
)
{
// 查询工单表信息
$find_sety_data
=
DB
::
table
(
'setmoney_type'
)
->
where
(
'lt_parent_id'
,
694
)
->
where
(
'lt_statues'
,
1
)
->
where
(
function
(
$query
)
use
(
$request
)
{
if
(
!
empty
(
$request
[
'sety_name'
]))
{
$query
->
where
(
'sety_name'
,
'like'
,
'%'
.
$request
[
'sety_name'
]
.
'%'
);
}
})
->
select
(
'sety_id'
,
'sety_name'
)
->
get
()
->
toArray
();
return
[
'ErrorCode'
=>
1
,
'ErrorMessage'
=>
'获取成功'
,
'Data'
=>
$find_sety_data
];
}
// 获取操作记录
public
static
function
operatingRecord
(
$request
)
{
// 查询操作表信息
$find_data
=
DB
::
table
(
'orderserver_time'
)
->
where
(
'serial_number'
,
$request
[
'serial_number'
])
->
where
(
'ser_id'
,
$request
[
'admin_id'
])
->
select
(
'create_time'
,
'is_type'
)
->
orderby
(
'id'
,
'desc'
)
->
get
()
->
toArray
();
return
[
'ErrorCode'
=>
1
,
'ErrorMessage'
=>
'获取成功'
,
'Data'
=>
$find_data
];
}
// 订单操作时间
public
static
function
operating_time
(
$num
,
$type
,
$time
,
$order_num
,
$session
){
$data
[
'serial_number'
]
=
$num
;
$data
[
'create_name'
]
=
$session
[
'install_name'
];
$data
[
'is_type'
]
=
$type
;
$data
[
'create_time'
]
=
$time
;
$data
[
'order_num'
]
=
$order_num
;
$result
=
OrderTime
::
insert
(
$data
);
if
(
$result
){
return
1
;
}
else
{
return
2
;
}
}
//添加时间戳
public
static
function
add_thistory
(
$number
,
$timetype
,
$time
,
$ser_id
,
$type
,
$session
){
if
(
$type
==
1
){
$poss
[
$timetype
]
=
strtotime
(
$time
);
$poss
[
'tih_serid'
]
=
$ser_id
;
$poss
[
'tih_number'
]
=
$number
;
$poss
[
'company_type'
]
=
$session
[
'install_name'
];
DB
::
table
(
'time_history'
)
->
insert
(
$poss
);
}
else
{
$poss
[
$timetype
]
=
strtotime
(
$time
);
DB
::
table
(
'time_history'
)
->
where
(
"tih_number"
,
$number
)
->
update
(
$poss
);
}
}
/**|---------------------------------------------------------------------------------
* @name 同步施工节点
* @param string $coordinate 坐标
* @param string $line_state 节点状态
* @param string $line_serm 工单号
* @param string $line_sysnum 系统单号
* @param string $line_number 单号
* @retrun \Illuminate\Http\JsonResponse /multitype:array
* @author dou 2024/9/11 0:45
* |---------------------------------------------------------------------------------
*/
public
static
function
updateLineSrate
(
$coordinate
,
$line_state
,
$line_serm
,
$line_sysnum
,
$line_number
){
$install_line
=
InstallLine
::
where
(
"line_serm"
,
$line_serm
)
->
first
();
switch
(
$line_state
){
case
2
:
$line
[
'line_contact'
]
=
$coordinate
;
$line
[
'line_contact_time'
]
=
date
(
"Y-m-d H:i:s"
);
break
;
case
3
:
$line
[
'line_start'
]
=
$coordinate
;
$line
[
'line_start_time'
]
=
date
(
"Y-m-d H:i:s"
);
break
;
case
4
:
$line
[
'line_arrive'
]
=
$coordinate
;
$line
[
'line_arrive_time'
]
=
date
(
"Y-m-d H:i:s"
);
break
;
case
5
:
$line
[
'line_task'
]
=
$coordinate
;
$line
[
'line_task_time'
]
=
date
(
"Y-m-d H:i:s"
);
break
;
case
6
:
$line
[
'line_end'
]
=
$coordinate
;
$line
[
'line_end_time'
]
=
date
(
"Y-m-d H:i:s"
);
break
;
default
:
return
false
;
break
;
}
$line
[
'line_lasttime'
]
=
date
(
"Y-m-d H:i:s"
);
$line
[
'line_state'
]
=
$line_state
;
if
(
empty
(
$install_line
)){
$line
[
'line_serm'
]
=
$line_serm
;
$line
[
'line_sysnum'
]
=
$line_sysnum
;
$line
[
'line_number'
]
=
$line_number
;
$line
[
'line_serm'
]
=
$line_serm
;
$res
=
InstallLine
::
insert
(
$line
);
}
else
{
$line_states
=
$line_state
-
1
;
if
(
$line_states
<
$install_line
[
'line_state'
]){
return
false
;
}
else
{
$res
=
InstallLine
::
where
(
"line_serm"
,
$line_serm
)
->
update
(
$line
);
}
}
return
$res
;
}
#计算奖惩金额以及评分
public
static
function
calculates
(
$dou
,
$orderListArr
,
$supply_price
,
$manhourfee
,
$session
){
#商品供货金额
$money
[
'sem_slid'
]
=
$dou
;
$money
[
'sem_synum'
]
=
$orderListArr
[
'sys_num'
];
$money
[
'sem_price'
]
=
$manhourfee
;
$money
[
'sem_creacter'
]
=
$session
[
'install_name'
];
$money
[
'sem_type'
]
=
1
;
$money
[
'add_time'
]
=
date
(
"Y-m-d H:i:s"
);
SettlementMoney
::
insert
(
$money
);
// #开始计算奖惩金额以及评分
// $payout_time = OrderTime::where('serial_number',$orderListArr['serial_number'])
// ->where('is_type','起始时间')
// ->orderBy('id','DESC')
// ->value('create_time');//获取奖罚起始时间
// $zero1 = time();
// $zero2 = strtotime($payout_time);
// $guonian = ($zero1-$zero2)/60;
// #计算评分
// if($guonian<=5){
// $score['orsc_grade'] = 5;
// }if($guonian>5 && $guonian<=10){
// $score['orsc_grade'] = 2;
// }if($guonian>10){
// $score['orsc_grade'] = 1;
// }
// $score['orsc_sernum'] = $orderListArr['serial_number'];
// $score['orsc_slid'] = $dou;
// $score['orsc_creacter'] = $session['install_name'];
// $score['orsc_type'] = 1;
// DB::table("order_score")->insert($score);
// //默认生成平台评分十分
// $scoreq['orsc_grade'] = 5;
// $scoreq['orsc_sernum'] = $orderListArr['serial_number'];
// $scoreq['orsc_slid'] = $dou;
// $scoreq['orsc_creacter'] = $session['install_name'];
// $scoreq['orsc_type']=2;
// DB::table("order_score")->insert($score);
$info_data
=
DB
::
table
(
'settlement_list as s'
)
->
leftJoin
(
'order_list as o'
,
'o.serial_number'
,
'='
,
's.list_id'
)
->
leftJoin
(
'order_msg as om'
,
'om.id'
,
'='
,
'o.order_goods_id'
)
->
where
(
's.ser_id'
,
$session
[
'admin_id'
])
->
where
(
'wat_num'
,
$data
[
'stl_wat'
])
->
select
(
's.id'
,
's.sys_num'
,
's.create_time'
,
'all_price'
,
'list_id'
,
'om.goods_name'
,
'om.goods_num'
)
->
get
();
$data
[
'info_data'
]
=
$info_data
;
return
[
'ErrorCode'
=>
1
,
'ErrorMessage'
=>
'成功'
,
'Data'
=>
$data
];
}
}
app/Services/OrderDeductionFeeService.php
浏览文件 @
3d00d75e
...
...
@@ -66,7 +66,7 @@ class OrderDeductionFeeService extends Service
$add_dfee
[
'reo_pay_time'
]
=
date
(
'Y-m-d H:i:s'
);
$add_dfee
[
'reo_pay_way'
]
=
1
;
$add_dfee
[
'reo_type'
]
=
2
;
$add_dfee
[
'reo_client_type'
]
=
2
;
$add_dfee
[
'reo_client_type'
]
=
$find_company_info
[
'com_type'
]
;
$update
[
'adre_banlance'
]
=
$find_balance
[
'adre_banlance'
]
+
$data
[
'reo_price'
];
if
((
$update
[
'adre_banlance'
]
+
$find_balance
[
'adre_credit_limit'
])
<=
0
)
{
return
[
'code'
=>
500
,
'msg'
=>
'余额不足,请充值'
];
...
...
app/Services/OrderService.php
浏览文件 @
3d00d75e
...
...
@@ -979,7 +979,6 @@ class OrderService extends Service
DB
::
beginTransaction
();
$shr_code
=
UserService
::
getUserBy
(
'id'
,
$orderinfo
[
'new_customer_id'
],[
'shr_code'
,
'is_jdservice'
]);
if
(
$shr_code
[
'shr_code'
]
==
''
){
// DB::beginTransaction();
$appoint_code
=
OrderService
::
creactCode
(
$orderinfo
[
'p_id'
]);
if
(
$appoint_code
){
$user
[
'shr_code'
]
=
$appoint_code
;
...
...
@@ -992,13 +991,11 @@ class OrderService extends Service
DB
::
rollback
();
return
[
'Data'
=>
''
,
'ErrorMessage'
=>
'生成客户识别码失败,请重试!'
,
'ErrorCode'
=>
ErrorInc
::
MYSQL_FAILED
];
}
// DB::commit();
}
if
(
$orderinfo
[
'order_status'
]
>
10
)
{
DB
::
rollback
();
return
[
'Data'
=>
''
,
'ErrorMessage'
=>
'派单失败,该订单状态不正确,请刷新核实!'
,
'ErrorCode'
=>
ErrorInc
::
REQUEST_FORBIDDEN
];
}
else
{
$sub_types
=
PlatformService
::
getFieldsById
(
$orderinfo
[
'p_id'
],[
'bus_type'
,
'pcl_id'
]);
$pcl_id
=
$sub_types
[
'pcl_id'
];
$sub_type
=
$sub_types
[
'bus_type'
];
...
...
@@ -1032,7 +1029,6 @@ class OrderService extends Service
}
}
}
// DB::commit();
}
else
{
return
[
'Data'
=>
''
,
'ErrorMessage'
=>
'下属商品数据异常'
,
'ErrorCode'
=>
ErrorInc
::
INVALID_PARAM
];
}
...
...
@@ -1080,10 +1076,6 @@ class OrderService extends Service
$pt_instData
[]
=
$pt_install
;
DB
::
table
(
'pt_installog'
)
->
insert
(
$pt_instData
);
// if($pt_data['pt_warnamount'] >= ($pt_data['pt_prepamount']-$pt_data['pt_dispamount']) && $pt_data['pt_warnuserid']){
// //
// $this->addNotice_Message(3,1,1,2,[$pt_data['pt_warnuserid']],'预充值金额不足',"平台:".$pt_data['pt_name'].",预充值金额已低于上次充值的30%的份额了。请前往平台管理进行充值操作");
// }
}
else
{
$pt_res
=
true
;
}
...
...
@@ -1155,15 +1147,12 @@ class OrderService extends Service
/***订单操作时间***/
$BaseController
->
operatingTime
(
$number
,
'下单时间'
,
$orderinfo
[
'create_time'
],
$orderinfo
[
'order_num'
],
$session
[
'admin_acc'
]);
//订单操作时间
$BaseController
->
operatingTime
(
$number
,
'派单时间'
,
date
(
"Y-m-d H:i:s"
),
$orderinfo
[
'order_num'
],
$session
[
'admin_acc'
]);
//订单操作时间
// $BaseController->operatingTime($number, '起始时间', $payout_time, $orderinfo['order_num'], $session['admin_acc']);//订单操作时间
$BaseController
->
addThistory
(
$number
,
'tih_crecttime'
,
$payout_time
,
$input
[
'ser_id'
],
1
);
//添加历史时间
/***************半径推送******************************/
// $store=SyncStores::where("ser_id",$input['ser_id'])->where("type",2)->value('id');
$store
=
CommonService
::
getSyncStores
(
$input
[
'ser_id'
],
$orderinfo
[
'category'
]);
if
(
!
empty
(
$store
)){
$pt_id_arr
=
PlatformService
::
getPtIdByPtType
();
// $supply_price = DB::table('gh_price')->where(['goods_id'=>$v['goods_id'],'ser_id'=>'0'])->orderBy('id',"DESC")->value('supply_price');
if
(
in_array
(
$orderinfo
[
'p_id'
],
$pt_id_arr
)){
$supply_price
=
GhXPrice
::
whereRaw
(
"`goods_id`='"
.
$v
[
'goods_id'
]
.
"' and `ser_id`=0"
)
->
orderBy
(
'id'
,
'DESC'
)
->
value
(
'supply_price'
);
}
else
{
...
...
@@ -1233,24 +1222,13 @@ class OrderService extends Service
$arr
[
'company_id'
]
=
$orderinfo
[
'company_id'
];
$returnMan
=
Management
::
insert
(
$arr
);
if
(
$returnOrderList
)
{
// if(!empty($serid)){
// $weixin['ser_id'] = $serid;
// }else{
$weixin
[
'ser_id'
]
=
$input
[
'ser_id'
];
// }
$weixin
[
'ser_id'
]
=
$input
[
'ser_id'
];
$weixin
[
'order_num'
]
=
$orderinfo
[
'order_num'
];
$weixin
[
'goods_name'
]
=
'安装服务'
;
//$v['goods_name'];
$weixin
[
'serial_number'
]
=
$number
;
$weixin
[
'dress'
]
=
$shr_phone
[
'shr_sheng'
]
.
$shr_phone
[
'shr_shi'
]
.
$shr_phone
[
'shr_xian'
]
.
$shr_phone
[
'shr_adress'
];
CommonService
::
requestPost
(
'http://zptzchat.bluearp.com/m/index.php/BindingAccount/push_order'
,
$weixin
);
/* if($v['category']==3) {
$smart_store = $input['smart_store']??1;
if($input['ser_id']<>'2006' && $input['ser_id']<>'2446' && $input['ser_id']<>'2445' && $input['ser_id']<>'3618' && $input['ser_id']<>'2697' && $input['ser_id']<>'4012' && $input['ser_id']<>'7098' && $input['ser_id']<>'7099' && $input['ser_id']<>'7655' && $smart_store !=2) {
self::server_order($orderinfo['p_id'], $input['sys_num'], $orderinfo['new_customer_id'], $v['id'], $input['ser_id'], $orderinfo['order_num'], $session);
}
}*/
/*--------------------------添加订单执行统计记录开始------------------------------------*/
$relation
[
'sys_num'
]
=
$input
[
'sys_num'
];
//系统单号
...
...
@@ -1273,7 +1251,6 @@ class OrderService extends Service
/*--------------------------添加订单执行统计记录结束------------------------------------*/
/*--------------------------添加工单回访记录开始------------------------------------*/
// $visit_sys = OrderVisit::where('ov_sys', $input['sys_num'])->value("ov_id");
$visit_data
[
'ov_serial'
]
=
$number
;
$visit_data
[
'ov_sys'
]
=
$input
[
'sys_num'
];
$visit_data
[
'ov_order'
]
=
$orderinfo
[
'order_num'
];
...
...
@@ -1305,9 +1282,13 @@ class OrderService extends Service
// 扣费
$post_data
[
'adm_id'
]
=
$orderinfo
[
'admin_id'
];
$post_data
[
'company_id'
]
=
$orderinfo
[
'company_id'
];
$post_data
[
'order_number'
]
=
$
orderinfo
[
'sys_num'
];
$post_data
[
'order_number'
]
=
$
input
[
'sys_num'
];
$post_data
[
'reo_price'
]
=
-
0.5
;
$reduce_price
=
OrderDeductionFeeService
::
deductFee
(
$post_data
);
if
(
$reduce_price
[
'code'
]
==
500
)
{
DB
::
rollback
();
return
[
'Data'
=>
''
,
'ErrorMessage'
=>
$reduce_price
[
'msg'
],
'ErrorCode'
=>
2
];
}
if
(
$returnOrder
&&
$returnOrderList
&&
$returnMan
&&
$pt_res
)
{
DB
::
commit
();
...
...
routes/api.php
浏览文件 @
3d00d75e
...
...
@@ -1472,5 +1472,7 @@ Route::namespace('Api')->group(function () {
// 账单列表
Route
::
post
(
'w1/statement/index'
,
'MobileWeb\StatementsListController@index'
);
//列表页
Route
::
post
(
'w1/statement/info'
,
'MobileWeb\StatementsListController@info'
);
//列表页
Route
::
post
(
'w1/statement/businessFirm'
,
'MobileWeb\StatementsListController@businessFirm'
);
//商家确认
});
});
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论