Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
黄成意
/
php_frq_api
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
261ac9f2
authored
Jun 08, 2021
by
连敬荣
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
代码重构
parent
7d2761e2
Show whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
261 additions
and
5 deletions
app/Http/Controllers/DataController.php
app/Http/routes/api.php
app/Model/InquiryItemsAssignModel.php
app/Model/InquiryItemsModel.php
app/Model/InquiryItemsReportModel.php
app/Model/InquiryModel.php
app/Model/InquiryUsersModel.php
app/Http/Controllers/DataController.php
View file @
261ac9f2
...
...
@@ -2,11 +2,14 @@
namespace
App\Http\Controllers
;
use
App\Http\Queue\RabbitQueueModel
;
use
App\Http\Utils\ApiCode
;
use
App\Model\CommonModel
;
use
App\Model\InquiryItemsAssignModel
;
use
App\Model\InquiryItemsModel
;
use
App\Model\InquiryItemsReportModel
;
use
App\Model\InquiryModel
;
use
App\Model\InquiryUsersModel
;
use
Dompdf\Exception
;
use
Illuminate\Http\Request
;
use
DB
;
...
...
@@ -17,6 +20,7 @@ use App\Http\Controllers\Controller;
class
DataController
extends
Controller
{
private
$STATUS_CLOSED
=
4
;
private
$STATUS_ASSIGNED
=
4
;
public
function
createInquiryItemsDetail
(
Request
$request
){
$userInfo
=
$this
->
user
();
$input
=
$request
->
input
();
...
...
@@ -132,8 +136,215 @@ class DataController extends Controller
}
}
public
function
deleteInquiryItemsDetail
(
Request
$request
){
public
function
deleteInquiryItemsDetail
(
Request
$request
){
//删除询价明细
$inquiryItemsModel
=
new
InquiryItemsModel
();
Export
(
$inquiryItemsModel
->
DeleteInquiryItems
(
$request
->
input
()));
}
public
function
creatInquiry
(
Request
$request
){
//从草稿正式生成询价单
$inquiryModel
=
new
InquiryModel
();
$input
=
$request
->
input
();
$inquiryItemsModel
=
new
InquiryItemsModel
();
$inquiryUserModel
=
new
InquiryUsersModel
();
$inquiryItemsReportModel
=
new
InquiryItemsReportModel
();
if
(
empty
(
$input
[
"inquiry_id"
]))
{
Export
(
1001
,
"缺少询价单号"
);
exit
();
}
if
(
empty
(
$input
[
"user"
]))
{
Export
(
1002
,
"请选择客户"
);
exit
();
}
if
(
empty
(
$input
[
"delivery_place"
]))
{
Export
(
1002
,
"请选择交货地"
);
exit
();
}
$inquiry_id
=
$input
[
"inquiry_id"
];
// $hasItems = (new InquiryItemsModel())->where("inquiry_id",$inquiry_id)->count();
$hasItems
=
$inquiryItemsModel
->
hasItems
(
$inquiry_id
);
if
(
!
$hasItems
){
return
[
1001
,
"询价明细不得为空!"
];
}
$data
=
[
"status"
=>
1
,
#启用
"remark"
=>
$input
[
"remark"
],
"delivery_place"
=>
$input
[
"delivery_place"
],
"currency"
=>
$input
[
"delivery_place"
],
"user_types"
=>
$input
[
"user_types"
],
//询价客户类型: 1 个人 2 公司
"create_time"
=>
time
(),
"update_time"
=>
time
(),
];
$user
=
\GuzzleHttp\json_decode
(
$input
[
"user"
],
true
);
if
(
$input
[
"user_types"
]
==
1
)
{
#个人询价
if
(
$user
[
0
][
"value"
]
==
0
)
{
#客户id是0
// $userInfo= (new InquiryUsersModel())->where(["create_uid" => $input["user_id"], "user_name" => $user[0]["name"]])->first();
$userInfo
=
$inquiryUserModel
->
getUserInfo
(
$input
,
$user
);
if
(
$userInfo
){
$userId
=
$userInfo
->
id
;
}
else
{
// $userId = $inquiryUserModel->insertGetId(["create_uid" => $input["user_id"], "user_name" => $user[0]["name"], "create_time" => time()]);
$userId
=
$inquiryUserModel
->
getUserId
(
$input
,
$user
);
}
}
else
{
$userId
=
$user
[
0
][
"value"
];
}
$data
[
"user_id"
]
=
$userId
;
$data
[
"user_name"
]
=
$user
[
0
][
"name"
];
}
else
{
$data
[
"com_id"
]
=
$user
[
0
][
"value"
];
$data
[
"com_name"
]
=
$user
[
0
][
"name"
];
}
$check
=
$inqueryId
=
$this
->
where
(
"id"
,
$input
[
"inquiry_id"
])
->
update
(
$data
);
// 检查询价明细是否需要报价,若无需报价则更新询价明细报价表
// $inquiry_items = (new InquiryItemsModel())->where("inquiry_id",$inquiry_id)->get()->toArray();
$inquiry_items
=
$inquiryItemsModel
->
getInquiryItems
(
$inquiry_id
);
foreach
(
$inquiry_items
as
$item
)
{
if
(
$item
[
'is_quote'
]
==
1
)
continue
;
$reportArr
=
[];
$reportArr
[
'goods_name'
]
=
$item
[
'goods_name'
];
$reportArr
[
'goods_name_pro'
]
=
$item
[
'goods_name'
];
$reportArr
[
'brand_id'
]
=
$item
[
'brand_id'
];
$reportArr
[
'brand_name'
]
=
$item
[
'brand_name'
];
$reportArr
[
'supplier_name'
]
=
'猎芯联营'
;
$reportArr
[
'inquiry_number'
]
=
$item
[
'inquiry_number'
];
$reportArr
[
'currency'
]
=
$input
[
"delivery_place"
];
if
(
$input
[
"delivery_place"
]
==
1
)
{
$reportArr
[
'price_rmb'
]
=
$item
[
'target_price'
];
}
else
{
$reportArr
[
'price_origin'
]
=
$item
[
'target_price'
];
}
$reportArr
[
'delivery_time'
]
=
$item
[
'delivery_time'
];
$reportArr
[
'class_id2'
]
=
$item
[
'class_id2'
];
$reportArr
[
'class_id2_name'
]
=
$item
[
'class_id2_name'
];
$reportArr
[
'batch'
]
=
$item
[
'batch'
];
// (new InquiryItemsReportModel())->where("inquiry_items_id", $item['id'])->update($reportArr);
$inquiryItemsReportModel
->
updateIquiryItemsReport
(
$item
,
$reportArr
);
}
// 加入队列, 后续会把询价单分发到云芯的供应商
$RabbitQueueModel
=
new
RabbitQueueModel
();
$RabbitQueueModel
->
push
(
"frq_add_inquiry"
,
$input
[
"inquiry_id"
]);
Export
(
ApiCode
::
API_CODE_SUCCESS
,
"操作成功"
);
exit
();
}
public
function
editInquiryItemDetail
(
Request
$request
){
//修改单挑询价明细
$inquiryItemsModel
=
new
InquiryItemsModel
();
$inquiry_items_id
=
@
$request
[
"inquiry_items_id"
]
?
$request
[
"inquiry_items_id"
]
:
""
;
if
(
!
$inquiry_items_id
){
return
[
ApiCode
::
API_CODE_DATA_INVALID
,
"修改明细ID不得为空"
];
}
if
(
empty
(
$request
[
"goods_name"
]))
return
[
ApiCode
::
API_CODE_DATA_EMPTY
,
"请选择型号名称"
];
if
(
empty
(
$request
[
"brand_s"
]))
return
[
ApiCode
::
API_CODE_DATA_EMPTY
,
"请选择品牌名称"
];
if
(
empty
(
$request
[
"inquiry_number"
]))
return
[
ApiCode
::
API_CODE_DATA_EMPTY
,
"请输入询价数量"
];
if
(
empty
(
$request
[
"batch"
]))
return
[
ApiCode
::
API_CODE_DATA_EMPTY
,
"请输入批次要求"
];
if
(
empty
(
$request
[
"delivery_time"
]))
return
[
ApiCode
::
API_CODE_DATA_EMPTY
,
"请选择交货日期"
];
try
{
$con
=
DB
::
connection
(
'rfq'
);
$con
->
beginTransaction
();
$InquiryItemsAssignModel
=
(
new
InquiryItemsAssignModel
());
#更新明细
$requestrandInfo
=
json_decode
(
$request
[
"brand_s"
],
true
);
$request
[
"brand_id"
]
=
$requestrandInfo
[
0
][
"value"
];
$request
[
"brand_name"
]
=
$requestrandInfo
[
0
][
"name"
];
$updateArr
=
[
"goods_name"
=>@
$request
[
"goods_name"
]
?
$request
[
"goods_name"
]
:
""
,
"brand_id"
=>@
$request
[
"brand_id"
]
?
$request
[
"brand_id"
]
:
0
,
"brand_name"
=>@
$request
[
"brand_name"
]
?
$request
[
"brand_name"
]
:
""
,
"class_id2"
=>@
$request
[
"class_id2"
]
?
$request
[
"class_id2"
]
:
0
,
"class_id2_name"
=>@
$request
[
"class_id2_name"
]
?
$request
[
"class_id2_name"
]
:
""
,
"inquiry_number"
=>@
$request
[
"inquiry_number"
]
?
$request
[
"inquiry_number"
]
:
0
,
"target_price"
=>@
$request
[
"target_price"
]
?
$request
[
"target_price"
]
:
0
,
"delivery_time"
=>@
$request
[
"delivery_time"
]
?
$request
[
"delivery_time"
]
:
""
,
"batch"
=>@
$request
[
"batch"
]
?
$request
[
"batch"
]
:
""
,
"assign_type"
=>@
$request
[
"pur_s"
]
!=
""
?
1
:
2
,
"remark"
=>@
$request
[
"remark"
]
?
$request
[
"remark"
]
:
""
,
"flag"
=>
0
,
#重新自动报价
"create_time"
=>
time
()
,
"update_time"
=>
time
()
,
];
// 无需报价没勾选,则默认为待报价
if
(
isset
(
$request
[
'is_quote'
])
&&
$request
[
'is_quote'
]
==
'on'
)
{
$updateArr
[
'is_quote'
]
=
-
1
;
$updateArr
[
'status'
]
=
5
;
}
else
{
$updateArr
[
'is_quote'
]
=
1
;
$updateArr
[
'status'
]
=
1
;
}
// $inquiryItemsModel->where("id",$inquiry_items_id)->update($updateArr);
$inquiryItemsModel
->
updateInquiryItemsDetail
(
$inquiry_items_id
,
$updateArr
);
#清空指定人
// $InquiryItemsAssignModel->where("inquiry_items_id",$inquiry_items_id)->delete();
$InquiryItemsAssignModel
->
clearOutAssign
(
$inquiry_items_id
);
#插入采购
if
(
@
$request
[
"pur_s"
]
!=
""
){
$purArr
=
json_decode
(
$request
[
"pur_s"
],
true
);
#指定采购
$assignInsert
=
[];
#指定领取人
foreach
(
$purArr
as
$f
=>
$c
){
array_push
(
$assignInsert
,[
"inquiry_items_id"
=>
$inquiry_items_id
,
"assign_uid"
=>
$c
[
"uid"
],
"assign_name"
=>
$c
[
"user_name"
],
"create_time"
=>
time
(),
]);
}
if
(
count
(
$assignInsert
)
>
0
){
#插入指定人
// $InquiryItemsAssignModel->insert($assignInsert);
$InquiryItemsAssignModel
->
insertAssign
(
$assignInsert
);
}
// $inquiryItemsModel->where('id', $inquiry_items_id)->update(['status' => 4]); // 存在指定采购,则标记状态为已领取
$inquiryItemsModel
->
updateInquiryItemsStatus
(
$inquiry_items_id
,
$this
->
STATUS_ASSIGNED
);
}
#发送消息
$itemArr
=
$inquiryItemsModel
->
getItemArr
(
$inquiry_items_id
);
//where("id",$inquiry_items_id)->first()->toArray(); #明细
$mainArr
=
(
new
InquiryModel
())
->
getMainArr
(
$itemArr
);
//where("id",$itemArr["inquiry_id"])->first()->toArray(); #主单状态
if
(
$mainArr
[
"status"
]
==
1
){
# 启动
#发送修改询价信息
$CommonModel
=
new
CommonModel
();
$assignInfo
=
(
new
InquiryItemsAssignModel
())
->
getAssignInfo
(
$inquiry_items_id
);
//select("assign_uid")->where("inquiry_items_id",$inquiry_items_id)->get();
if
(
$assignInfo
){
$assignInfoArr
=
$assignInfo
->
toArray
();
$msg
=
$request
[
"user_name"
]
.
'已修改询价,询价单号:'
.
$mainArr
[
"inquiry_sn"
]
.
',内容改动后:型号:'
.
$updateArr
[
"goods_name"
]
.
',品牌:'
.
$updateArr
[
"brand_name"
]
.
',批次要求:'
.
$updateArr
[
"batch"
]
.
',交货日期:'
.
(
$updateArr
[
"delivery_time"
]
>
6
?
(
$updateArr
[
"delivery_time"
]
/
7
)
.
"周"
:
$updateArr
[
"delivery_time"
]
.
"天"
)
.
',询价数量:'
.
$updateArr
[
"inquiry_number"
];
foreach
(
$assignInfoArr
as
$k
=>
$v
){
$CommonModel
->
send_msg
(
$v
[
"assign_uid"
],
$msg
);
}
}
}
#修改询价日志
\App\Model\OpLogModel
::
log
([
'types'
=>
1
,
'relation_id'
=>
$inquiry_items_id
,
#明细id
'relation_sn'
=>
$mainArr
[
"inquiry_sn"
],
'content'
=>
'修改询价,型号:'
.
$updateArr
[
"goods_name"
]
.
" 品牌名称:"
.
$updateArr
[
"brand_name"
]
.
" 货期:"
.
$updateArr
[
"delivery_time"
]
.
" 询价数量:"
.
$updateArr
[
"inquiry_number"
]
.
" 批次:"
.
$updateArr
[
"batch"
]
.
" 目标价:"
.
$updateArr
[
"target_price"
],
'create_uid'
=>
$request
[
'user_id'
],
'create_name'
=>
$request
[
"user_name"
],
]);
$con
->
commit
();
Export
(
ApiCode
::
API_CODE_SUCCESS
,
"修改成功"
);
exit
();
}
catch
(
\Exception
$e
)
{
$con
->
rollBack
();
Export
(
1001
,
"修改失败"
.
$e
->
getMessage
());
exit
();
}
}
}
app/Http/routes/api.php
View file @
261ac9f2
...
...
@@ -6,4 +6,5 @@ Route::Get('/ApiBrandList','SearchController@getBrandList');//新增询价查询
Route
::
Post
(
'/ApiCheckGoods'
,
'SearchController@checkUniqueGoods'
);
//检查是否已经存在询价单;
Route
::
Post
(
'/ApiCreateOneItems'
,
'DataController@createInquiryItemsDetail'
);
//创建一条询价明细;
Route
::
Post
(
'/api/ApiDeleteInquiryItems'
,
'DataController@deleteInquiryItemsDetail'
);
//删除询价明细;
//
Route
::
Post
(
'/api/ApiEditInquiry'
,
'DataController@ApiEditInquiry'
);
//
新增询价
;
\ No newline at end of file
Route
::
Post
(
'/api/ApiEditInquiry'
,
'DataController@creatInquiry'
);
//新增询价;
Route
::
Post
(
'/ApiUpdateOneItems'
,
'DataController@editInquiryItemDetail'
);
//
修改单条明细记录
;
\ No newline at end of file
app/Model/InquiryItemsAssignModel.php
View file @
261ac9f2
...
...
@@ -68,6 +68,15 @@ class InquiryItemsAssignModel extends Model
return
$this
->
where
(
$map
)
->
delete
();
}
public
function
clearOutAssign
(
$inquiry_items_id
){
//清空指定人
$this
->
where
(
"inquiry_items_id"
,
$inquiry_items_id
)
->
delete
();
}
public
function
insertAssign
(
$assignInsert
){
//插入指定人
$this
->
insert
(
$assignInsert
);
}
public
function
getAssignInfo
(
$inquiry_items_id
){
$assignInfo
=
$this
->
select
(
"assign_uid"
)
->
where
(
"inquiry_items_id"
,
$inquiry_items_id
)
->
get
();
return
$assignInfo
;
}
}
\ No newline at end of file
app/Model/InquiryItemsModel.php
View file @
261ac9f2
...
...
@@ -665,4 +665,20 @@ class InquiryItemsModel extends Model
public
function
updateInquiryItemsStatus
(
$inquiryItemsId
,
$status
){
$this
->
where
(
'id'
,
$inquiryItemsId
)
->
update
([
'status'
=>
$status
]);
// 存在指定采购,则标记状态为已领取
}
public
function
hasItems
(
$inquiry_id
){
//判断是否存在明细
$hasItems
=
$this
->
where
(
"inquiry_id"
,
$inquiry_id
)
->
count
();
return
$hasItems
;
}
public
function
getInquiryItems
(
$inquiry_id
){
$inquiry_items
=
(
new
InquiryItemsModel
())
->
where
(
"inquiry_id"
,
$inquiry_id
)
->
get
()
->
toArray
();
return
$inquiry_items
;
}
public
function
updateInquiryItemsDetail
(
$inquiry_items_id
,
$updateArr
){
$this
->
where
(
"id"
,
$inquiry_items_id
)
->
update
(
$updateArr
);
}
public
function
getItemArr
(
$inquiry_items_id
){
$itemArr
=
$this
->
where
(
"id"
,
$inquiry_items_id
)
->
first
()
->
toArray
();
#明细
return
$itemArr
;
}
}
\ No newline at end of file
app/Model/InquiryItemsReportModel.php
View file @
261ac9f2
...
...
@@ -236,5 +236,8 @@ class InquiryItemsReportModel extends Model
return
$check
!=
count
(
$itemsIdArr
)
?
[
1001
,
$types
==
1
?
"存在没选中的询价单!"
:
"存在没确定的询价单!"
]
:
[
0
,
"通过"
];
}
public
function
updateIquiryItemsReport
(
$item
,
$reportArr
){
$this
->
where
(
"inquiry_items_id"
,
$item
[
'id'
])
->
update
(
$reportArr
);
}
}
\ No newline at end of file
app/Model/InquiryModel.php
View file @
261ac9f2
...
...
@@ -571,6 +571,9 @@ class InquiryModel extends Model
$res
=
$con
->
select
(
$sql1
);
return
@
$res
[
0
][
"count"
];
}
public
function
getMainArr
(
$itemArr
){
//获取主表单状态
$mainArr
=
$this
->
where
(
"id"
,
$itemArr
[
"inquiry_id"
])
->
first
()
->
toArray
();
return
$mainArr
;
}
}
\ No newline at end of file
app/Model/InquiryUsersModel.php
View file @
261ac9f2
...
...
@@ -20,5 +20,13 @@ class InquiryUsersModel extends Model
protected
$primaryKey
=
'id'
;
public
$timestamps
=
false
;
public
function
getUserInfo
(
$input
,
$user
){
$userInfo
=
(
new
InquiryUsersModel
())
->
where
([
"create_uid"
=>
$input
[
"user_id"
],
"user_name"
=>
$user
[
0
][
"name"
]])
->
first
();
return
$userInfo
;
}
public
function
getUserId
(
$input
,
$user
){
$userId
=
$this
->
insertGetId
([
"create_uid"
=>
$input
[
"user_id"
],
"user_name"
=>
$user
[
0
][
"name"
],
"create_time"
=>
time
()]);
return
$userId
;
}
}
\ No newline at end of file
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